@opencode-ai/cli-linux-x64-baseline 0.0.0-beta-202606070135 → 0.0.0-beta-202606070341

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 (157) hide show
  1. package/bin/{chunk-batbn700.js.map → chunk-05fp9qhj.js.map} +1 -1
  2. package/bin/{chunk-2xg3r6tg.js.map → chunk-0rt5fa6a.js.map} +1 -1
  3. package/bin/{chunk-f9y6s5dn.js.map → chunk-10qv9deg.js.map} +1 -1
  4. package/bin/{chunk-5nrsp9q6.js.map → chunk-1cgdjn8m.js.map} +1 -1
  5. package/bin/{chunk-3n9pdrx3.js.map → chunk-2fd2ek5e.js.map} +1 -1
  6. package/bin/{chunk-bn24wn97.js.map → chunk-2gb8zd2b.js.map} +1 -1
  7. package/bin/{chunk-450wf5my.js.map → chunk-3h4x50b1.js.map} +3 -5
  8. package/bin/{chunk-1jjzc8en.js.map → chunk-3qt4ycsw.js.map} +1 -1
  9. package/bin/{chunk-58vn4c6w.js.map → chunk-3y5pdhm2.js.map} +1 -1
  10. package/bin/{chunk-pvzmxwq4.js.map → chunk-3z95atyh.js.map} +2 -2
  11. package/bin/{chunk-c8d6exp6.js.map → chunk-48e21wbj.js.map} +1 -1
  12. package/bin/{chunk-4ms773bs.js.map → chunk-48yrbn32.js.map} +1 -1
  13. package/bin/{chunk-ph9dmmvn.js.map → chunk-499aev4j.js.map} +1 -1
  14. package/bin/{chunk-ja4gvevm.js.map → chunk-4gka4qwt.js.map} +2 -2
  15. package/bin/{chunk-gkp105m1.js.map → chunk-4qmff4a3.js.map} +2 -2
  16. package/bin/{chunk-by396bn8.js.map → chunk-4tmqmq5d.js.map} +2 -2
  17. package/bin/{chunk-1t0z2045.js.map → chunk-4wpwdxpa.js.map} +1 -1
  18. package/bin/{chunk-js7k34h1.js.map → chunk-4y9wtqet.js.map} +1 -1
  19. package/bin/{chunk-2smkzsm0.js.map → chunk-55psbhx5.js.map} +1 -1
  20. package/bin/{chunk-nt4j4qn7.js.map → chunk-5aaaxhz7.js.map} +3 -46
  21. package/bin/{chunk-1wmx8tsn.js.map → chunk-5f3d160g.js.map} +1 -1
  22. package/bin/{chunk-486k26x4.js.map → chunk-5ftm28vq.js.map} +1 -1
  23. package/bin/{chunk-v1acxjrb.js.map → chunk-5kwnbv5g.js.map} +1 -1
  24. package/bin/{chunk-7zf65mwn.js.map → chunk-5kxrvphv.js.map} +1 -1
  25. package/bin/{chunk-fagcz4bm.js.map → chunk-5pacvbkg.js.map} +1 -1
  26. package/bin/{chunk-7ncbpxpg.js.map → chunk-5pndz20y.js.map} +1 -1
  27. package/bin/{chunk-qpq4dt1k.js.map → chunk-5ydpqxww.js.map} +1 -1
  28. package/bin/{chunk-y6a29a3y.js.map → chunk-6q85vzzj.js.map} +2 -2
  29. package/bin/{chunk-crtva7a7.js.map → chunk-6qa7ykvy.js.map} +1 -1
  30. package/bin/{chunk-dchn9wc0.js.map → chunk-7948j39q.js.map} +2 -2
  31. package/bin/{chunk-d9ay6qca.js.map → chunk-7bpk4cqn.js.map} +1 -1
  32. package/bin/{chunk-f1qyv4kk.js.map → chunk-7ggvm323.js.map} +2 -2
  33. package/bin/{chunk-k8aw4xj3.js.map → chunk-7r380v9f.js.map} +1 -1
  34. package/bin/{chunk-44j7qpyj.js.map → chunk-81mnkg86.js.map} +1 -1
  35. package/bin/{chunk-zvpzr2js.js.map → chunk-87n0jkba.js.map} +2 -2
  36. package/bin/{chunk-gwxy1wg6.js.map → chunk-8xb96qzm.js.map} +1 -1
  37. package/bin/{chunk-v6cygzb1.js.map → chunk-909tgy1d.js.map} +1 -1
  38. package/bin/{chunk-6rg8mz6n.js.map → chunk-90fg4snn.js.map} +1 -1
  39. package/bin/{chunk-aj3x1xcd.js.map → chunk-939bqrs1.js.map} +2 -2
  40. package/bin/{chunk-5xwb5vn4.js.map → chunk-96er5cxq.js.map} +2 -2
  41. package/bin/{chunk-1y9ks4m5.js.map → chunk-9726hg59.js.map} +2 -2
  42. package/bin/{chunk-9cpbbkbt.js.map → chunk-9gf2rcv2.js.map} +1 -1
  43. package/bin/{chunk-g06twqwt.js.map → chunk-9m8rrkwg.js.map} +1 -1
  44. package/bin/{chunk-xjz65pxd.js.map → chunk-9trd2zkq.js.map} +1 -1
  45. package/bin/{chunk-tergaht9.js.map → chunk-a30gdgc2.js.map} +1 -1
  46. package/bin/{chunk-8yjmjvhy.js.map → chunk-a8prqfgz.js.map} +1 -1
  47. package/bin/{chunk-yerk1fzb.js.map → chunk-aq2f37cy.js.map} +1 -1
  48. package/bin/{chunk-zqryz83b.js.map → chunk-b05rf252.js.map} +1 -1
  49. package/bin/{chunk-ft5qxnpv.js.map → chunk-bqpg7gvj.js.map} +2 -2
  50. package/bin/{chunk-bjtanfsz.js.map → chunk-br7g6m34.js.map} +1 -1
  51. package/bin/chunk-brrh8yjw.js.map +9 -0
  52. package/bin/{chunk-qgadgd0b.js.map → chunk-btjc5b7c.js.map} +1 -1
  53. package/bin/{chunk-nczqpjnh.js.map → chunk-c16y8gcj.js.map} +1 -1
  54. package/bin/{chunk-j7nfke6k.js.map → chunk-c2g1t122.js.map} +1 -1
  55. package/bin/chunk-c5fx9pay.js.map +11 -0
  56. package/bin/{chunk-sdcb4sn6.js.map → chunk-c5qj3e1d.js.map} +2 -2
  57. package/bin/{chunk-8ah9fn8w.js.map → chunk-cm5xvm32.js.map} +20 -259
  58. package/bin/{chunk-wpz2wytm.js.map → chunk-cx1kjnz8.js.map} +1 -1
  59. package/bin/{chunk-ge25qpx1.js.map → chunk-djyvvajf.js.map} +2 -2
  60. package/bin/{chunk-2bj59myd.js.map → chunk-dpk8gznc.js.map} +1 -1
  61. package/bin/{chunk-p0sfa7kg.js.map → chunk-dpmejjdk.js.map} +1 -1
  62. package/bin/{chunk-cg5eyefy.js.map → chunk-dv1a5221.js.map} +2 -2
  63. package/bin/{chunk-r30r82nt.js.map → chunk-dzcrh1de.js.map} +2 -2
  64. package/bin/chunk-e3f6jnbg.js.map +9 -0
  65. package/bin/{chunk-8y0z37en.js.map → chunk-e6vaj7yk.js.map} +1 -1
  66. package/bin/{chunk-hsjd5vq9.js.map → chunk-ee6am2zx.js.map} +2 -2
  67. package/bin/chunk-ee8dnwg2.js.map +9 -0
  68. package/bin/chunk-ez99znk3.js.map +9 -0
  69. package/bin/{chunk-dj3n1gz9.js.map → chunk-f61g49n7.js.map} +1 -1
  70. package/bin/{chunk-aj0knqvs.js.map → chunk-fsmpsxxr.js.map} +1 -1
  71. package/bin/{chunk-qyz33fk4.js.map → chunk-g5zy822d.js.map} +2 -2
  72. package/bin/{chunk-v0vac3qg.js.map → chunk-h7wjmzqp.js.map} +1 -1
  73. package/bin/chunk-hcm4f293.js.map +10 -0
  74. package/bin/{chunk-wyyfrvey.js.map → chunk-he0bhzn7.js.map} +2 -2
  75. package/bin/{chunk-rtdfgszz.js.map → chunk-hnegzh4v.js.map} +1 -1
  76. package/bin/{chunk-np19gw2e.js.map → chunk-hrbn78d7.js.map} +1 -1
  77. package/bin/{chunk-pyxc7s1n.js.map → chunk-hscdbysq.js.map} +1 -1
  78. package/bin/{chunk-b8wv1019.js.map → chunk-hzezyeyw.js.map} +2 -2
  79. package/bin/{chunk-2d69p4k2.js.map → chunk-hzqdreq7.js.map} +1 -1
  80. package/bin/{chunk-q8x5h461.js.map → chunk-j91tz9rm.js.map} +1 -1
  81. package/bin/{chunk-q3zwjyfs.js.map → chunk-j9r4h5bb.js.map} +1 -1
  82. package/bin/chunk-jkev33xw.js.map +9 -0
  83. package/bin/{chunk-rgmb1xqh.js.map → chunk-jm6tkz5f.js.map} +1 -1
  84. package/bin/chunk-k01b2gy8.js.map +9 -0
  85. package/bin/{chunk-hx4hrnc1.js.map → chunk-kkzyajcv.js.map} +1 -1
  86. package/bin/{chunk-6rh497a8.js.map → chunk-kybvcz3m.js.map} +2 -2
  87. package/bin/{chunk-d35vqxtw.js.map → chunk-kz9hh383.js.map} +1 -1
  88. package/bin/{chunk-246az8th.js.map → chunk-m55hbzq0.js.map} +1 -1
  89. package/bin/{chunk-4z9x1zr9.js.map → chunk-m7c110kc.js.map} +1 -1
  90. package/bin/{chunk-dz7a5fyh.js.map → chunk-mtybk1nf.js.map} +1 -1
  91. package/bin/chunk-ncn019v2.js.map +9 -0
  92. package/bin/{chunk-s443c557.js.map → chunk-ndj7nh0w.js.map} +1 -1
  93. package/bin/{chunk-sr1stzc8.js.map → chunk-ndk4gwrm.js.map} +1 -1
  94. package/bin/{chunk-6htwbfva.js.map → chunk-nnsvtet8.js.map} +1 -1
  95. package/bin/{chunk-5xb90022.js.map → chunk-nt1c5mqb.js.map} +1 -1
  96. package/bin/{chunk-rect24wp.js.map → chunk-p1d9trz2.js.map} +1 -1
  97. package/bin/{chunk-m079q5wy.js.map → chunk-p5afyz25.js.map} +2 -2
  98. package/bin/{chunk-hp5q16b5.js.map → chunk-phfqfc4t.js.map} +1 -1
  99. package/bin/{chunk-bya07nz0.js.map → chunk-pvkeyh1p.js.map} +2 -2
  100. package/bin/{chunk-8dxqz4vx.js.map → chunk-pw9ct81w.js.map} +1 -1
  101. package/bin/{chunk-3k9dpvrx.js.map → chunk-qt51te01.js.map} +1 -1
  102. package/bin/{chunk-ssx3czmy.js.map → chunk-qy6gjyw5.js.map} +1 -1
  103. package/bin/{chunk-dhr2x6qc.js.map → chunk-qz5vnm3c.js.map} +1 -1
  104. package/bin/chunk-r6yrvg5j.js.map +9 -0
  105. package/bin/{chunk-8wpfm04w.js.map → chunk-r9wp1afs.js.map} +1 -1
  106. package/bin/chunk-rjfqk79v.js.map +52 -0
  107. package/bin/chunk-rpd6vmne.js.map +9 -0
  108. package/bin/{chunk-mgnakf8s.js.map → chunk-s0awhweq.js.map} +1 -1
  109. package/bin/{chunk-0yq28232.js.map → chunk-s5c4sfp5.js.map} +1 -1
  110. package/bin/{chunk-3qk1pb08.js.map → chunk-s657e3ke.js.map} +1 -1
  111. package/bin/{chunk-3brw1pw4.js.map → chunk-sncx1k0z.js.map} +1 -1
  112. package/bin/{chunk-tavtxn5h.js.map → chunk-sreqhwz9.js.map} +1 -1
  113. package/bin/{chunk-vpvnvwmt.js.map → chunk-sz631sne.js.map} +1 -1
  114. package/bin/{chunk-f9tdbqgp.js.map → chunk-t00n3rnx.js.map} +1 -1
  115. package/bin/{chunk-fq7bynm6.js.map → chunk-t2td1sc9.js.map} +1 -1
  116. package/bin/chunk-t4nkeekn.js.map +9 -0
  117. package/bin/chunk-t4tqngvv.js.map +9 -0
  118. package/bin/{chunk-ppfx93e4.js.map → chunk-t6czxcqq.js.map} +1 -1
  119. package/bin/{chunk-0nd737ze.js.map → chunk-thfw2jz7.js.map} +2 -2
  120. package/bin/{chunk-563dfx2j.js.map → chunk-tk75chdk.js.map} +1 -1
  121. package/bin/{chunk-0793sf45.js.map → chunk-ttfd0sfs.js.map} +1 -1
  122. package/bin/{chunk-ds933zn3.js.map → chunk-tyywhdv4.js.map} +1 -1
  123. package/bin/{chunk-ravdtrkh.js.map → chunk-v1y7arsq.js.map} +1 -1
  124. package/bin/{chunk-wz3xs8cy.js.map → chunk-vh8jxepn.js.map} +1 -1
  125. package/bin/{chunk-k3ts9xpy.js.map → chunk-vky181th.js.map} +1 -1
  126. package/bin/chunk-w1tn935z.js.map +249 -0
  127. package/bin/chunk-w2fwsby9.js.map +9 -0
  128. package/bin/{chunk-2hks567y.js.map → chunk-wg7e48sv.js.map} +1 -1
  129. package/bin/{chunk-28s2mk7f.js.map → chunk-wk8c66se.js.map} +1 -1
  130. package/bin/{chunk-9c7xnc0x.js.map → chunk-wkmy91yj.js.map} +2 -2
  131. package/bin/{chunk-6253rdsr.js.map → chunk-ws5m6p05.js.map} +1 -1
  132. package/bin/{chunk-8bxm2kba.js.map → chunk-wxbka4wt.js.map} +2 -2
  133. package/bin/{chunk-29kb6j3j.js.map → chunk-xg79ex3h.js.map} +2 -2
  134. package/bin/{chunk-6w6d1n0t.js.map → chunk-xh7gkqch.js.map} +1 -1
  135. package/bin/{chunk-tz8qtdwa.js.map → chunk-y8skr3xe.js.map} +1 -1
  136. package/bin/{chunk-094xfckf.js.map → chunk-yn8a5j0g.js.map} +1 -1
  137. package/bin/{chunk-xvws3mwn.js.map → chunk-ytrxyzwz.js.map} +1 -1
  138. package/bin/{chunk-4054rvaa.js.map → chunk-yyvwx773.js.map} +1 -1
  139. package/bin/{chunk-kmekc1yp.js.map → chunk-zw6185y4.js.map} +1 -1
  140. package/bin/chunk-zyh71mnn.js.map +9 -0
  141. package/bin/index.js.map +2 -2
  142. package/bin/lildax +0 -0
  143. package/package.json +1 -1
  144. package/bin/chunk-6s3csv0j.js.map +0 -9
  145. package/bin/chunk-74b9ws32.js.map +0 -9
  146. package/bin/chunk-8gm05p8e.js.map +0 -9
  147. package/bin/chunk-9tkjjdfk.js.map +0 -9
  148. package/bin/chunk-akzq0e1c.js.map +0 -9
  149. package/bin/chunk-b2qe4te3.js.map +0 -9
  150. package/bin/chunk-ddyf549n.js.map +0 -9
  151. package/bin/chunk-dk0n091y.js.map +0 -9
  152. package/bin/chunk-e68nzs1t.js.map +0 -9
  153. package/bin/chunk-s9hm0vet.js.map +0 -9
  154. package/bin/chunk-taf0vcvn.js.map +0 -9
  155. package/bin/chunk-vhjc1xhb.js.map +0 -9
  156. package/bin/chunk-zzxk5t69.js.map +0 -9
  157. /package/bin/{chunk-tf648vq4.js.map → chunk-d041wxv6.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../node_modules/.bun/ini@7.0.0/node_modules/ini/lib/ini.js", "../../node_modules/.bun/toml@4.1.1/node_modules/toml/lib/parser.js", "../../node_modules/.bun/toml@4.1.1/node_modules/toml/lib/compiler.js", "../../node_modules/.bun/toml@4.1.1/node_modules/toml/index.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/nodes/identity.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/visit.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/doc/directives.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/doc/anchors.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/doc/applyReviver.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/nodes/toJS.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/nodes/Node.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/nodes/Alias.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/nodes/Scalar.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/doc/createNode.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/nodes/Collection.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/stringify/stringifyComment.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/stringify/foldFlowLines.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/stringify/stringifyString.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/stringify/stringify.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/stringify/stringifyPair.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/log.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/merge.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/nodes/addPairToJSMap.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/nodes/Pair.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/stringify/stringifyCollection.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/nodes/YAMLMap.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/common/map.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/nodes/YAMLSeq.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/common/seq.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/common/string.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/common/null.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/core/bool.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/stringify/stringifyNumber.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/core/float.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/core/int.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/core/schema.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/json/schema.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/binary.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/pairs.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/omap.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/bool.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/float.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/int.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/set.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/schema.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/tags.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/Schema.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/stringify/stringifyDocument.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/doc/Document.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/errors.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-props.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/util-contains-newline.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/util-flow-indent-check.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/util-map-includes.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-block-map.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-block-seq.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-end.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-flow-collection.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/compose-collection.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-block-scalar.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-flow-scalar.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/compose-scalar.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/util-empty-scalar-position.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/compose-node.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/compose-doc.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/composer.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/parse/cst-scalar.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/parse/cst-stringify.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/parse/cst-visit.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/parse/cst.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/parse/lexer.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/parse/line-counter.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/parse/parser.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/public-api.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/Runtime.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/CliError.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/Primitive.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/index.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/Terminal.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/internal/ansi.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/Prompt.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/Param.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/Argument.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/Flag.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/Console.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/unstable/cli/CliOutput.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/internal/completions/bash.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/internal/completions/fish.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/internal/completions/zsh.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/Completions.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/internal/config.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/internal/command.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/internal/completions/descriptor.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/internal/help.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/GlobalFlag.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/internal/lexer.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/internal/auto-suggest.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/internal/parser.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/Command.js", "src/framework/spec.ts", "src/commands/commands.ts", "../../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", "../sdk/js/src/v2/gen/core/serverSentEvents.gen.ts", "../sdk/js/src/v2/gen/core/pathSerializer.gen.ts", "../sdk/js/src/v2/gen/core/utils.gen.ts", "../sdk/js/src/v2/gen/core/auth.gen.ts", "../sdk/js/src/v2/gen/core/bodySerializer.gen.ts", "../sdk/js/src/v2/gen/client/utils.gen.ts", "../sdk/js/src/v2/gen/client/client.gen.ts", "../sdk/js/src/v2/gen/core/params.gen.ts", "../sdk/js/src/v2/gen/client.gen.ts", "../sdk/js/src/v2/gen/sdk.gen.ts", "../sdk/js/src/error-interceptor.ts", "../sdk/js/src/v2/client.ts", "../server/src/auth.ts", "src/services/daemon.ts", "src/framework/runtime.ts"],
3
+ "sources": ["../../node_modules/.bun/ini@7.0.0/node_modules/ini/lib/ini.js", "../../node_modules/.bun/toml@4.1.1/node_modules/toml/lib/parser.js", "../../node_modules/.bun/toml@4.1.1/node_modules/toml/lib/compiler.js", "../../node_modules/.bun/toml@4.1.1/node_modules/toml/index.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/nodes/identity.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/visit.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/doc/directives.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/doc/anchors.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/doc/applyReviver.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/nodes/toJS.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/nodes/Node.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/nodes/Alias.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/nodes/Scalar.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/doc/createNode.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/nodes/Collection.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/stringify/stringifyComment.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/stringify/foldFlowLines.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/stringify/stringifyString.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/stringify/stringify.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/stringify/stringifyPair.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/log.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/merge.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/nodes/addPairToJSMap.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/nodes/Pair.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/stringify/stringifyCollection.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/nodes/YAMLMap.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/common/map.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/nodes/YAMLSeq.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/common/seq.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/common/string.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/common/null.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/core/bool.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/stringify/stringifyNumber.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/core/float.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/core/int.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/core/schema.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/json/schema.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/binary.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/pairs.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/omap.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/bool.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/float.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/int.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/set.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/schema.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/tags.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/schema/Schema.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/stringify/stringifyDocument.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/doc/Document.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/errors.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-props.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/util-contains-newline.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/util-flow-indent-check.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/util-map-includes.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-block-map.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-block-seq.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-end.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-flow-collection.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/compose-collection.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-block-scalar.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-flow-scalar.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/compose-scalar.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/util-empty-scalar-position.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/compose-node.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/compose-doc.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/compose/composer.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/parse/cst-scalar.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/parse/cst-stringify.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/parse/cst-visit.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/parse/cst.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/parse/lexer.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/parse/line-counter.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/parse/parser.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/public-api.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/Runtime.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/CliError.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/Primitive.js", "../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/index.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/internal/ansi.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/Prompt.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/Param.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/Argument.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/Flag.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/Console.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/CliOutput.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/internal/completions/bash.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/internal/completions/fish.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/internal/completions/zsh.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/Completions.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/internal/config.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/internal/command.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/internal/completions/descriptor.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/internal/help.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/GlobalFlag.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/internal/lexer.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/internal/auto-suggest.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/internal/parser.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/cli/Command.js", "src/framework/spec.ts", "src/commands/commands.ts", "../sdk/js/src/v2/gen/core/serverSentEvents.gen.ts", "../sdk/js/src/v2/gen/core/pathSerializer.gen.ts", "../sdk/js/src/v2/gen/core/utils.gen.ts", "../sdk/js/src/v2/gen/core/auth.gen.ts", "../sdk/js/src/v2/gen/core/bodySerializer.gen.ts", "../sdk/js/src/v2/gen/client/utils.gen.ts", "../sdk/js/src/v2/gen/client/client.gen.ts", "../sdk/js/src/v2/gen/core/params.gen.ts", "../sdk/js/src/v2/gen/client.gen.ts", "../sdk/js/src/v2/gen/sdk.gen.ts", "../sdk/js/src/error-interceptor.ts", "../sdk/js/src/v2/client.ts", "../server/src/auth.ts", "src/services/daemon.ts", "src/framework/runtime.ts"],
4
4
  "sourcesContent": [
5
5
  "const { hasOwnProperty } = Object.prototype\n\nconst encode = (obj, opt = {}) => {\n if (typeof opt === 'string') {\n opt = { section: opt }\n }\n opt.align = opt.align === true\n opt.newline = opt.newline === true\n opt.sort = opt.sort === true\n opt.whitespace = opt.whitespace === true || opt.align === true\n // The `typeof` check is required because accessing the `process` directly fails on browsers.\n /* istanbul ignore next */\n opt.platform = opt.platform || (typeof process !== 'undefined' && process.platform)\n opt.bracketedArray = opt.bracketedArray !== false\n\n /* istanbul ignore next */\n const eol = opt.platform === 'win32' ? '\\r\\n' : '\\n'\n const separator = opt.whitespace ? ' = ' : '='\n const children = []\n\n const keys = opt.sort ? Object.keys(obj).sort() : Object.keys(obj)\n\n let padToChars = 0\n // If aligning on the separator, then padToChars is determined as follows:\n // 1. Get the keys\n // 2. Exclude keys pointing to objects unless the value is null or an array\n // 3. Add `[]` to array keys\n // 4. Ensure non empty set of keys\n // 5. Reduce the set to the longest `safe` key\n // 6. Get the `safe` length\n if (opt.align) {\n padToChars = safe(\n (\n keys\n .filter(k => obj[k] === null || Array.isArray(obj[k]) || typeof obj[k] !== 'object')\n .map(k => Array.isArray(obj[k]) ? `${k}[]` : k)\n )\n .concat([''])\n .reduce((a, b) => safe(a).length >= safe(b).length ? a : b)\n ).length\n }\n\n let out = ''\n const arraySuffix = opt.bracketedArray ? '[]' : ''\n\n for (const k of keys) {\n const val = obj[k]\n if (val && Array.isArray(val)) {\n for (const item of val) {\n out += safe(`${k}${arraySuffix}`).padEnd(padToChars, ' ') + separator + safe(item) + eol\n }\n } else if (val && typeof val === 'object') {\n children.push(k)\n } else {\n out += safe(k).padEnd(padToChars, ' ') + separator + safe(val) + eol\n }\n }\n\n if (opt.section && out.length) {\n out = '[' + safe(opt.section) + ']' + (opt.newline ? eol + eol : eol) + out\n }\n\n for (const k of children) {\n const nk = splitSections(k, '.').join('\\\\.')\n const section = (opt.section ? opt.section + '.' : '') + nk\n const child = encode(obj[k], {\n ...opt,\n section,\n })\n if (out.length && child.length) {\n out += eol\n }\n\n out += child\n }\n\n return out\n}\n\nfunction splitSections (str, separator) {\n var lastMatchIndex = 0\n var lastSeparatorIndex = 0\n var nextIndex = 0\n var sections = []\n\n do {\n nextIndex = str.indexOf(separator, lastMatchIndex)\n\n if (nextIndex !== -1) {\n lastMatchIndex = nextIndex + separator.length\n\n if (nextIndex > 0 && str[nextIndex - 1] === '\\\\') {\n continue\n }\n\n sections.push(str.slice(lastSeparatorIndex, nextIndex))\n lastSeparatorIndex = nextIndex + separator.length\n }\n } while (nextIndex !== -1)\n\n sections.push(str.slice(lastSeparatorIndex))\n\n return sections\n}\n\nconst decode = (str, opt = {}) => {\n opt.bracketedArray = opt.bracketedArray !== false\n const out = Object.create(null)\n let p = out\n let section = null\n // section |key = value\n const re = /^\\[([^\\]]*)\\]\\s*$|^([^=]+)(=(.*))?$/i\n const lines = str.split(/[\\r\\n]+/g)\n const duplicates = {}\n\n for (const line of lines) {\n if (!line || line.match(/^\\s*[;#]/) || line.match(/^\\s*$/)) {\n continue\n }\n const match = line.match(re)\n if (!match) {\n continue\n }\n if (match[1] !== undefined) {\n section = unsafe(match[1])\n if (section === '__proto__') {\n // not allowed\n // keep parsing the section, but don't attach it.\n p = Object.create(null)\n continue\n }\n p = out[section] = out[section] || Object.create(null)\n continue\n }\n const keyRaw = unsafe(match[2])\n let isArray\n if (opt.bracketedArray) {\n isArray = keyRaw.length > 2 && keyRaw.slice(-2) === '[]'\n } else {\n duplicates[keyRaw] = (duplicates?.[keyRaw] || 0) + 1\n isArray = duplicates[keyRaw] > 1\n }\n const key = isArray && keyRaw.endsWith('[]')\n ? keyRaw.slice(0, -2) : keyRaw\n\n if (key === '__proto__') {\n continue\n }\n const valueRaw = match[3] ? unsafe(match[4]) : true\n const value = valueRaw === 'true' ||\n valueRaw === 'false' ||\n valueRaw === 'null' ? JSON.parse(valueRaw)\n : valueRaw\n\n // Convert keys with '[]' suffix to an array\n if (isArray) {\n if (!hasOwnProperty.call(p, key)) {\n p[key] = []\n } else if (!Array.isArray(p[key])) {\n p[key] = [p[key]]\n }\n }\n\n // safeguard against resetting a previously defined\n // array by accidentally forgetting the brackets\n if (Array.isArray(p[key])) {\n p[key].push(value)\n } else {\n p[key] = value\n }\n }\n\n // {a:{y:1},\"a.b\":{x:2}} --> {a:{y:1,b:{x:2}}}\n // use a filter to return the keys that have to be deleted.\n const remove = []\n for (const k of Object.keys(out)) {\n if (!hasOwnProperty.call(out, k) ||\n typeof out[k] !== 'object' ||\n Array.isArray(out[k])) {\n continue\n }\n\n // see if the parent section is also an object.\n // if so, add it to that, and mark this one for deletion\n const parts = splitSections(k, '.')\n p = out\n const l = parts.pop()\n const nl = l.replace(/\\\\\\./g, '.')\n for (const part of parts) {\n if (part === '__proto__') {\n continue\n }\n if (!hasOwnProperty.call(p, part) || typeof p[part] !== 'object') {\n p[part] = Object.create(null)\n }\n p = p[part]\n }\n if (p === out && nl === l) {\n continue\n }\n\n p[nl] = out[k]\n remove.push(k)\n }\n for (const del of remove) {\n delete out[del]\n }\n\n return out\n}\n\nconst isQuoted = val => {\n return (val.startsWith('\"') && val.endsWith('\"')) ||\n (val.startsWith(\"'\") && val.endsWith(\"'\"))\n}\n\nconst safe = val => {\n if (\n typeof val !== 'string' ||\n val.match(/[=\\r\\n]/) ||\n val.match(/^\\[/) ||\n (val.length > 1 && isQuoted(val)) ||\n val !== val.trim()\n ) {\n return JSON.stringify(val)\n }\n return val.split(';').join('\\\\;').split('#').join('\\\\#')\n}\n\nconst unsafe = val => {\n val = (val || '').trim()\n if (isQuoted(val)) {\n // remove the single quotes before calling JSON.parse\n if (val.charAt(0) === \"'\") {\n val = val.slice(1, -1)\n }\n try {\n val = JSON.parse(val)\n } catch {\n // ignore errors\n }\n } else {\n // walk the val to find the first not-escaped ; character\n let esc = false\n let unesc = ''\n for (let i = 0, l = val.length; i < l; i++) {\n const c = val.charAt(i)\n if (esc) {\n if ('\\\\;#'.indexOf(c) !== -1) {\n unesc += c\n } else {\n unesc += '\\\\' + c\n }\n\n esc = false\n } else if (';#'.indexOf(c) !== -1) {\n break\n } else if (c === '\\\\') {\n esc = true\n } else {\n unesc += c\n }\n }\n if (esc) {\n unesc += '\\\\'\n }\n\n return unesc.trim()\n }\n return val\n}\n\nmodule.exports = {\n parse: decode,\n decode,\n stringify: encode,\n encode,\n safe,\n unsafe,\n}\n",
6
6
  "// @generated by Peggy 5.1.0.\n//\n// https://peggyjs.org/\n\n\"use strict\";\n\nclass peg$SyntaxError extends SyntaxError {\n constructor(message, expected, found, location) {\n super(message);\n this.expected = expected;\n this.found = found;\n this.location = location;\n this.name = \"SyntaxError\";\n }\n\n format(sources) {\n let str = \"Error: \" + this.message;\n if (this.location) {\n let src = null;\n const st = sources.find(s => s.source === this.location.source);\n if (st) {\n src = st.text.split(/\\r\\n|\\n|\\r/g);\n }\n const s = this.location.start;\n const offset_s = (this.location.source && (typeof this.location.source.offset === \"function\"))\n ? this.location.source.offset(s)\n : s;\n const loc = this.location.source + \":\" + offset_s.line + \":\" + offset_s.column;\n if (src) {\n const e = this.location.end;\n const filler = \"\".padEnd(offset_s.line.toString().length, \" \");\n const line = src[s.line - 1];\n const last = s.line === e.line ? e.column : line.length + 1;\n const hatLen = (last - s.column) || 1;\n str += \"\\n --> \" + loc + \"\\n\"\n + filler + \" |\\n\"\n + offset_s.line + \" | \" + line + \"\\n\"\n + filler + \" | \" + \"\".padEnd(s.column - 1, \" \")\n + \"\".padEnd(hatLen, \"^\");\n } else {\n str += \"\\n at \" + loc;\n }\n }\n return str;\n }\n\n static buildMessage(expected, found) {\n function hex(ch) {\n return ch.codePointAt(0).toString(16).toUpperCase();\n }\n\n const nonPrintable = Object.prototype.hasOwnProperty.call(RegExp.prototype, \"unicode\")\n ? new RegExp(\"[\\\\p{C}\\\\p{Mn}\\\\p{Mc}]\", \"gu\")\n : null;\n function unicodeEscape(s) {\n if (nonPrintable) {\n return s.replace(nonPrintable, ch => \"\\\\u{\" + hex(ch) + \"}\");\n }\n return s;\n }\n\n function literalEscape(s) {\n return unicodeEscape(s\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/\"/g, \"\\\\\\\"\")\n .replace(/\\0/g, \"\\\\0\")\n .replace(/\\t/g, \"\\\\t\")\n .replace(/\\n/g, \"\\\\n\")\n .replace(/\\r/g, \"\\\\r\")\n .replace(/[\\x00-\\x0F]/g, ch => \"\\\\x0\" + hex(ch))\n .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, ch => \"\\\\x\" + hex(ch)));\n }\n\n function classEscape(s) {\n return unicodeEscape(s\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/\\]/g, \"\\\\]\")\n .replace(/\\^/g, \"\\\\^\")\n .replace(/-/g, \"\\\\-\")\n .replace(/\\0/g, \"\\\\0\")\n .replace(/\\t/g, \"\\\\t\")\n .replace(/\\n/g, \"\\\\n\")\n .replace(/\\r/g, \"\\\\r\")\n .replace(/[\\x00-\\x0F]/g, ch => \"\\\\x0\" + hex(ch))\n .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, ch => \"\\\\x\" + hex(ch)));\n }\n\n const DESCRIBE_EXPECTATION_FNS = {\n literal(expectation) {\n return \"\\\"\" + literalEscape(expectation.text) + \"\\\"\";\n },\n\n class(expectation) {\n const escapedParts = expectation.parts.map(\n part => (Array.isArray(part)\n ? classEscape(part[0]) + \"-\" + classEscape(part[1])\n : classEscape(part))\n );\n\n return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts.join(\"\") + \"]\" + (expectation.unicode ? \"u\" : \"\");\n },\n\n any() {\n return \"any character\";\n },\n\n end() {\n return \"end of input\";\n },\n\n other(expectation) {\n return expectation.description;\n },\n };\n\n function describeExpectation(expectation) {\n return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);\n }\n\n function describeExpected(expected) {\n const descriptions = expected.map(describeExpectation);\n descriptions.sort();\n\n if (descriptions.length > 0) {\n let j = 1;\n for (let i = 1; i < descriptions.length; i++) {\n if (descriptions[i - 1] !== descriptions[i]) {\n descriptions[j] = descriptions[i];\n j++;\n }\n }\n descriptions.length = j;\n }\n\n switch (descriptions.length) {\n case 1:\n return descriptions[0];\n\n case 2:\n return descriptions[0] + \" or \" + descriptions[1];\n\n default:\n return descriptions.slice(0, -1).join(\", \")\n + \", or \"\n + descriptions[descriptions.length - 1];\n }\n }\n\n function describeFound(found) {\n return found ? \"\\\"\" + literalEscape(found) + \"\\\"\" : \"end of input\";\n }\n\n return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n }\n}\n\nfunction peg$parse(input, options) {\n options = options !== undefined ? options : {};\n\n const peg$FAILED = {};\n const peg$source = options.grammarSource;\n\n const peg$startRuleFunctions = {\n start: peg$parsestart,\n };\n let peg$startRuleFunction = peg$parsestart;\n\n const peg$c0 = \"#\";\n const peg$c1 = \"[\";\n const peg$c2 = \"]\";\n const peg$c3 = \".\";\n const peg$c4 = \"=\";\n const peg$c5 = \"inf\";\n const peg$c6 = \"nan\";\n const peg$c7 = \"\\\"\\\"\\\"\";\n const peg$c8 = \"\\\"\";\n const peg$c9 = \"'''\";\n const peg$c10 = \"'\";\n const peg$c11 = \"\\\\\";\n const peg$c12 = \"\\r\\n\";\n const peg$c13 = \"\\\"\\\"\";\n const peg$c14 = \"''\";\n const peg$c15 = \"0\";\n const peg$c16 = \"0x\";\n const peg$c17 = \"0o\";\n const peg$c18 = \"0b\";\n const peg$c19 = \"true\";\n const peg$c20 = \"false\";\n const peg$c21 = \",\";\n const peg$c22 = \"{\";\n const peg$c23 = \"}\";\n const peg$c24 = \"-\";\n const peg$c25 = \":\";\n const peg$c26 = \"z\";\n const peg$c27 = \"t\";\n const peg$c28 = \" \";\n const peg$c29 = \"\\n\";\n const peg$c30 = \"\\r\";\n const peg$c31 = \"\\\\U\";\n const peg$c32 = \"\\\\u\";\n const peg$c33 = \"\\\\x\";\n\n const peg$r0 = /^[\\t -~\\x80-\\uFFFF]/;\n const peg$r1 = /^[+\\-]/;\n const peg$r2 = /^[^\"\\\\\\0-\\b\\v-\\x1F\\x7F\\r]/;\n const peg$r3 = /^[^'\\0-\\b\\v-\\x1F\\x7F\\r]/;\n const peg$r4 = /^[^\"\\\\\\0-\\b\\n-\\x1F\\x7F]/;\n const peg$r5 = /^[^'\\0-\\b\\n-\\x1F\\x7F]/;\n const peg$r6 = /^[eE]/;\n const peg$r7 = /^[0-9_]/;\n const peg$r8 = /^[1-9]/;\n const peg$r9 = /^[_]/;\n const peg$r10 = /^[0-9]/;\n const peg$r11 = /^[0-9a-fA-F]/;\n const peg$r12 = /^[0-7]/;\n const peg$r13 = /^[01]/;\n const peg$r14 = /^[ \\t]/;\n const peg$r15 = /^[A-Za-z0-9_\\-]/;\n const peg$r16 = /^[\"\\\\btnfre]/;\n\n const peg$e0 = peg$literalExpectation(\"#\", false);\n const peg$e1 = peg$classExpectation([\"\\t\", [\" \", \"~\"], [\"\\x80\", \"\\uFFFF\"]], false, false, false);\n const peg$e2 = peg$literalExpectation(\"[\", false);\n const peg$e3 = peg$literalExpectation(\"]\", false);\n const peg$e4 = peg$literalExpectation(\".\", false);\n const peg$e5 = peg$literalExpectation(\"=\", false);\n const peg$e6 = peg$classExpectation([\"+\", \"-\"], false, false, false);\n const peg$e7 = peg$literalExpectation(\"inf\", false);\n const peg$e8 = peg$literalExpectation(\"nan\", false);\n const peg$e9 = peg$literalExpectation(\"\\\"\\\"\\\"\", false);\n const peg$e10 = peg$literalExpectation(\"\\\"\", false);\n const peg$e11 = peg$literalExpectation(\"'''\", false);\n const peg$e12 = peg$literalExpectation(\"'\", false);\n const peg$e13 = peg$literalExpectation(\"\\\\\", false);\n const peg$e14 = peg$anyExpectation();\n const peg$e15 = peg$literalExpectation(\"\\r\\n\", false);\n const peg$e16 = peg$classExpectation([\"\\\"\", \"\\\\\", [\"\\0\", \"\\b\"], [\"\\v\", \"\\x1F\"], \"\\x7F\", \"\\r\"], true, false, false);\n const peg$e17 = peg$literalExpectation(\"\\\"\\\"\", false);\n const peg$e18 = peg$classExpectation([\"'\", [\"\\0\", \"\\b\"], [\"\\v\", \"\\x1F\"], \"\\x7F\", \"\\r\"], true, false, false);\n const peg$e19 = peg$literalExpectation(\"''\", false);\n const peg$e20 = peg$classExpectation([\"\\\"\", \"\\\\\", [\"\\0\", \"\\b\"], [\"\\n\", \"\\x1F\"], \"\\x7F\"], true, false, false);\n const peg$e21 = peg$classExpectation([\"'\", [\"\\0\", \"\\b\"], [\"\\n\", \"\\x1F\"], \"\\x7F\"], true, false, false);\n const peg$e22 = peg$classExpectation([\"e\", \"E\"], false, false, false);\n const peg$e23 = peg$literalExpectation(\"0\", false);\n const peg$e24 = peg$literalExpectation(\"0x\", false);\n const peg$e25 = peg$literalExpectation(\"0o\", false);\n const peg$e26 = peg$literalExpectation(\"0b\", false);\n const peg$e27 = peg$classExpectation([[\"0\", \"9\"], \"_\"], false, false, false);\n const peg$e28 = peg$classExpectation([[\"1\", \"9\"]], false, false, false);\n const peg$e29 = peg$classExpectation([\"_\"], false, false, false);\n const peg$e30 = peg$classExpectation([[\"0\", \"9\"]], false, false, false);\n const peg$e31 = peg$classExpectation([[\"0\", \"9\"], [\"a\", \"f\"], [\"A\", \"F\"]], false, false, false);\n const peg$e32 = peg$classExpectation([[\"0\", \"7\"]], false, false, false);\n const peg$e33 = peg$classExpectation([\"0\", \"1\"], false, false, false);\n const peg$e34 = peg$literalExpectation(\"true\", false);\n const peg$e35 = peg$literalExpectation(\"false\", false);\n const peg$e36 = peg$literalExpectation(\",\", false);\n const peg$e37 = peg$literalExpectation(\"{\", false);\n const peg$e38 = peg$literalExpectation(\"}\", false);\n const peg$e39 = peg$literalExpectation(\"-\", false);\n const peg$e40 = peg$literalExpectation(\":\", false);\n const peg$e41 = peg$literalExpectation(\"Z\", true);\n const peg$e42 = peg$literalExpectation(\"T\", true);\n const peg$e43 = peg$literalExpectation(\" \", false);\n const peg$e44 = peg$classExpectation([\" \", \"\\t\"], false, false, false);\n const peg$e45 = peg$literalExpectation(\"\\n\", false);\n const peg$e46 = peg$literalExpectation(\"\\r\", false);\n const peg$e47 = peg$classExpectation([[\"A\", \"Z\"], [\"a\", \"z\"], [\"0\", \"9\"], \"_\", \"-\"], false, false, false);\n const peg$e48 = peg$classExpectation([\"\\\"\", \"\\\\\", \"b\", \"t\", \"n\", \"f\", \"r\", \"e\"], false, false, false);\n const peg$e49 = peg$literalExpectation(\"\\\\U\", false);\n const peg$e50 = peg$literalExpectation(\"\\\\u\", false);\n const peg$e51 = peg$literalExpectation(\"\\\\x\", false);\n\n function peg$f0() { return nodes }\n function peg$f1(name) { addNode(node('ArrayPath', name, offset())) }\n function peg$f2(name) { addNode(node('ObjectPath', name, offset())) }\n function peg$f3(parts, name) { return parts.concat(name) }\n function peg$f4(name) { return [name] }\n function peg$f5(name) { return name }\n function peg$f6(name) { return name }\n function peg$f7(keys, value) { addNode(node('Assign', value, offset(), keys)) }\n function peg$f8(node) { return node.value }\n function peg$f9(node) { return node.value }\n function peg$f10(sign) { return node('Float', sign === '-' ? -Infinity : Infinity, offset()) }\n function peg$f11(sign) { return node('Float', NaN, offset()) }\n function peg$f12(body) { return node('String', body, offset()) }\n function peg$f13(chars) { return node('String', chars.join(''), offset()) }\n function peg$f14(body) { return node('String', body, offset()) }\n function peg$f15(chars) { return node('String', chars.join(''), offset()) }\n function peg$f16(head, parts, tail) {\n var result = head.join('');\n for (var i = 0; i < parts.length; i++) { result += parts[i][0] + parts[i][1].join(''); }\n return result + (tail || '');\n }\n function peg$f17() { genError(\"Invalid escape sequence\", offset()) }\n function peg$f18() { return \"\\n\" }\n function peg$f19() { return '' }\n function peg$f20() { return '\"\"' }\n function peg$f21() { return '\"' }\n function peg$f22() { return '\"\"' }\n function peg$f23() { return '\"' }\n function peg$f24(head, parts, tail) {\n var result = head.join('');\n for (var i = 0; i < parts.length; i++) { result += parts[i][0] + parts[i][1].join(''); }\n return result + (tail || '');\n }\n function peg$f25() { return \"\\n\" }\n function peg$f26() { return \"''\" }\n function peg$f27() { return \"'\" }\n function peg$f28() { return \"''\" }\n function peg$f29() { return \"'\" }\n function peg$f30() { genError(\"Invalid escape sequence\", offset()) }\n function peg$f31(left, right) { return node('Float', parseFloat(stripUnderscores(left + 'e' + right)), offset()) }\n function peg$f32(text) { return node('Float', parseFloat(stripUnderscores(text)), offset()) }\n function peg$f33(sign, digits, frac) { return (sign === '-' ? '-' : '') + digits + '.' + frac }\n function peg$f34(sign, digits, frac) { return (sign === '-' ? '-' : '') + digits + '.' + frac }\n function peg$f35(sign, digits) { return (sign === '-' ? '-' : '') + digits }\n function peg$f36() { return '0' }\n function peg$f37(sign, digits) { return (sign || '') + digits }\n function peg$f38(digits) { return node('Integer', parseInt(stripUnderscores(digits), 16), offset()) }\n function peg$f39(digits) { return node('Integer', parseInt(stripUnderscores(digits), 8), offset()) }\n function peg$f40(digits) { return node('Integer', parseInt(stripUnderscores(digits), 2), offset()) }\n function peg$f41(text) { return node('Integer', parseInt(stripUnderscores(text), 10), offset()) }\n function peg$f42(sign) { return (sign || '') + '0' }\n function peg$f43(sign, digits) { return (sign || '') + digits }\n function peg$f44() { return node('Boolean', true, offset()) }\n function peg$f45() { return node('Boolean', false, offset()) }\n function peg$f46() { return node('Array', [], offset()) }\n function peg$f47(head, v) { return v }\n function peg$f48(head, tail) {\n tail.unshift(head); return node('Array', tail, offset())\n }\n function peg$f49() { return node('InlineTable', [], offset()) }\n function peg$f50(head, e) { return e }\n function peg$f51(head, tail) {\n tail.unshift(head); return node('InlineTable', tail, offset())\n }\n function peg$f52(keys, value) { return node('InlineTableValue', value, offset(), keys) }\n function peg$f53(parts, last) { return parts.concat(last) }\n function peg$f54(k) { return [k] }\n function peg$f55(k) { return k }\n function peg$f56(t, frac) { return frac ? t + frac : t }\n function peg$f57(t) { return t + ':00' }\n function peg$f58() { return \"Z\" }\n function peg$f59(d, t, o) { var off = offset(); validateDate(d, off); validateTime(t, off); validateOffset(o, off); return node('Date', new Date(d + \"T\" + t + o), off) }\n function peg$f60(d, t) { var off = offset(); validateDate(d, off); validateTime(t, off); return node('LocalDateTime', d + \"T\" + t, off) }\n function peg$f61(d) { var off = offset(); validateDate(d, off); return node('LocalDate', d, off) }\n function peg$f62(t) { var off = offset(); validateTime(t, off); return node('LocalTime', t, off) }\n function peg$f63(ch) { return ch === 'n' ? '\\n' : ch === 't' ? '\\t' : ch === 'r' ? '\\r' : ch === '\\\\' ? '\\\\' : ch === '\"' ? '\"' : ch === 'b' ? '\\b' : ch === 'f' ? '\\f' : '\\x1B' }\n function peg$f64(digits) { return convertCodePoint(digits) }\n function peg$f65(digits) { return convertCodePoint(digits) }\n function peg$f66(digits) { return convertCodePoint(digits) }\n let peg$currPos = options.peg$currPos | 0;\n let peg$savedPos = peg$currPos;\n const peg$posDetailsCache = [{ line: 1, column: 1 }];\n let peg$maxFailPos = peg$currPos;\n let peg$maxFailExpected = options.peg$maxFailExpected || [];\n let peg$silentFails = options.peg$silentFails | 0;\n\n let peg$result;\n\n if (options.startRule) {\n if (!(options.startRule in peg$startRuleFunctions)) {\n throw new Error(\"Can't start parsing from rule \\\"\" + options.startRule + \"\\\".\");\n }\n\n peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n\n function text() {\n return input.substring(peg$savedPos, peg$currPos);\n }\n\n function offset() {\n return peg$savedPos;\n }\n\n function range() {\n return {\n source: peg$source,\n start: peg$savedPos,\n end: peg$currPos,\n };\n }\n\n function location() {\n return peg$computeLocation(peg$savedPos, peg$currPos);\n }\n\n function expected(description, location) {\n location = location !== undefined\n ? location\n : peg$computeLocation(peg$savedPos, peg$currPos);\n\n throw peg$buildStructuredError(\n [peg$otherExpectation(description)],\n input.substring(peg$savedPos, peg$currPos),\n location\n );\n }\n\n function error(message, location) {\n location = location !== undefined\n ? location\n : peg$computeLocation(peg$savedPos, peg$currPos);\n\n throw peg$buildSimpleError(message, location);\n }\n\n function peg$getUnicode(pos = peg$currPos) {\n const cp = input.codePointAt(pos);\n if (cp === undefined) {\n return \"\";\n }\n return String.fromCodePoint(cp);\n }\n\n function peg$literalExpectation(text, ignoreCase) {\n return { type: \"literal\", text, ignoreCase };\n }\n\n function peg$classExpectation(parts, inverted, ignoreCase, unicode) {\n return { type: \"class\", parts, inverted, ignoreCase, unicode };\n }\n\n function peg$anyExpectation() {\n return { type: \"any\" };\n }\n\n function peg$endExpectation() {\n return { type: \"end\" };\n }\n\n function peg$otherExpectation(description) {\n return { type: \"other\", description };\n }\n\n function peg$computePosDetails(pos) {\n let details = peg$posDetailsCache[pos];\n let p;\n\n if (details) {\n return details;\n } else {\n if (pos >= peg$posDetailsCache.length) {\n p = peg$posDetailsCache.length - 1;\n } else {\n p = pos;\n while (!peg$posDetailsCache[--p]) {}\n }\n\n details = peg$posDetailsCache[p];\n details = {\n line: details.line,\n column: details.column,\n };\n\n while (p < pos) {\n if (input.charCodeAt(p) === 10) {\n details.line++;\n details.column = 1;\n } else {\n details.column++;\n }\n\n p++;\n }\n\n peg$posDetailsCache[pos] = details;\n\n return details;\n }\n }\n\n function peg$computeLocation(startPos, endPos, offset) {\n const startPosDetails = peg$computePosDetails(startPos);\n const endPosDetails = peg$computePosDetails(endPos);\n\n const res = {\n source: peg$source,\n start: {\n offset: startPos,\n line: startPosDetails.line,\n column: startPosDetails.column,\n },\n end: {\n offset: endPos,\n line: endPosDetails.line,\n column: endPosDetails.column,\n },\n };\n if (offset && peg$source && (typeof peg$source.offset === \"function\")) {\n res.start = peg$source.offset(res.start);\n res.end = peg$source.offset(res.end);\n }\n return res;\n }\n\n function peg$fail(expected) {\n if (peg$currPos < peg$maxFailPos) { return; }\n\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n\n peg$maxFailExpected.push(expected);\n }\n\n function peg$buildSimpleError(message, location) {\n return new peg$SyntaxError(message, null, null, location);\n }\n\n function peg$buildStructuredError(expected, found, location) {\n return new peg$SyntaxError(\n peg$SyntaxError.buildMessage(expected, found),\n expected,\n found,\n location\n );\n }\n\n function peg$parsestart() {\n let s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parseline();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parseline();\n }\n peg$savedPos = s0;\n s1 = peg$f0();\n s0 = s1;\n\n return s0;\n }\n\n function peg$parseline() {\n let s0, s1, s2, s3, s4, s5, s6;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parseS();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parseS();\n }\n s2 = peg$parseexpression();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parseS();\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parseS();\n }\n s4 = peg$parsecomment();\n if (s4 === peg$FAILED) {\n s4 = null;\n }\n s5 = [];\n s6 = peg$parseNL();\n if (s6 !== peg$FAILED) {\n while (s6 !== peg$FAILED) {\n s5.push(s6);\n s6 = peg$parseNL();\n }\n } else {\n s5 = peg$FAILED;\n }\n if (s5 === peg$FAILED) {\n s5 = peg$parseEOF();\n }\n if (s5 !== peg$FAILED) {\n s1 = [s1, s2, s3, s4, s5];\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parseS();\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parseS();\n }\n } else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parseNL();\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parseNL();\n }\n } else {\n s2 = peg$FAILED;\n }\n if (s2 === peg$FAILED) {\n s2 = peg$parseEOF();\n }\n if (s2 !== peg$FAILED) {\n s1 = [s1, s2];\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$parseNL();\n }\n }\n\n return s0;\n }\n\n function peg$parseexpression() {\n let s0;\n\n s0 = peg$parsecomment();\n if (s0 === peg$FAILED) {\n s0 = peg$parsetable_or_array_path();\n if (s0 === peg$FAILED) {\n s0 = peg$parseassignment();\n }\n }\n\n return s0;\n }\n\n function peg$parsecomment() {\n let s0, s1, s2, s3;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 35) {\n s1 = peg$c0;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e0); }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = input.charAt(peg$currPos);\n if (peg$r0.test(s3)) {\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e1); }\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = input.charAt(peg$currPos);\n if (peg$r0.test(s3)) {\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e1); }\n }\n }\n s1 = [s1, s2];\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parsetable_or_array_path() {\n let s0, s1, s2, s3, s4, s5, s6, s7;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 91) {\n s1 = peg$c1;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e2); }\n }\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 91) {\n s2 = peg$c1;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e2); }\n }\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parseS();\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parseS();\n }\n s4 = peg$parsetable_key();\n if (s4 !== peg$FAILED) {\n s5 = [];\n s6 = peg$parseS();\n while (s6 !== peg$FAILED) {\n s5.push(s6);\n s6 = peg$parseS();\n }\n if (input.charCodeAt(peg$currPos) === 93) {\n s6 = peg$c2;\n peg$currPos++;\n } else {\n s6 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e3); }\n }\n if (s6 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 93) {\n s7 = peg$c2;\n peg$currPos++;\n } else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e3); }\n }\n if (s7 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f1(s4);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 91) {\n s1 = peg$c1;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e2); }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parseS();\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parseS();\n }\n s3 = peg$parsetable_key();\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$parseS();\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$parseS();\n }\n if (input.charCodeAt(peg$currPos) === 93) {\n s5 = peg$c2;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e3); }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f2(s3);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n\n return s0;\n }\n\n function peg$parsetable_key() {\n let s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsedot_ended_table_key_part();\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsedot_ended_table_key_part();\n }\n } else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsetable_key_part();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f3(s1, s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parsetable_key_part();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f4(s1);\n }\n s0 = s1;\n }\n\n return s0;\n }\n\n function peg$parsetable_key_part() {\n let s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parseS();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parseS();\n }\n s2 = peg$parsesimple_key();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parseS();\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parseS();\n }\n peg$savedPos = s0;\n s0 = peg$f5(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parsedot_ended_table_key_part() {\n let s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parseS();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parseS();\n }\n s2 = peg$parsesimple_key();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parseS();\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parseS();\n }\n if (input.charCodeAt(peg$currPos) === 46) {\n s4 = peg$c3;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e4); }\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f6(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parseassignment() {\n let s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n s1 = peg$parseinline_key();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parseS();\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parseS();\n }\n if (input.charCodeAt(peg$currPos) === 61) {\n s3 = peg$c4;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e5); }\n }\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$parseS();\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$parseS();\n }\n s5 = peg$parsevalue();\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f7(s1, s5);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parsekey() {\n let s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parseASCII_BASIC();\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parseASCII_BASIC();\n }\n } else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n } else {\n s0 = s1;\n }\n\n return s0;\n }\n\n function peg$parsequoted_key() {\n let s0, s1;\n\n s0 = peg$currPos;\n s1 = peg$parsedouble_quoted_single_line_string();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f8(s1);\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parsesingle_quoted_single_line_string();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f9(s1);\n }\n s0 = s1;\n }\n\n return s0;\n }\n\n function peg$parsevalue() {\n let s0;\n\n s0 = peg$parsestring();\n if (s0 === peg$FAILED) {\n s0 = peg$parsenumber_or_date();\n if (s0 === peg$FAILED) {\n s0 = peg$parseboolean();\n if (s0 === peg$FAILED) {\n s0 = peg$parsearray();\n if (s0 === peg$FAILED) {\n s0 = peg$parseinline_table();\n }\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsenumber_or_date() {\n let s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = input.charAt(peg$currPos);\n if (peg$r1.test(s1)) {\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e6); }\n }\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n if (input.substr(peg$currPos, 3) === peg$c5) {\n s2 = peg$c5;\n peg$currPos += 3;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e7); }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f10(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = input.charAt(peg$currPos);\n if (peg$r1.test(s1)) {\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e6); }\n }\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n if (input.substr(peg$currPos, 3) === peg$c6) {\n s2 = peg$c6;\n peg$currPos += 3;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e8); }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f11(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$parsedatetime();\n if (s0 === peg$FAILED) {\n s0 = peg$parsefloat();\n if (s0 === peg$FAILED) {\n s0 = peg$parseinteger();\n }\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsestring() {\n let s0;\n\n s0 = peg$parsedouble_quoted_multiline_string();\n if (s0 === peg$FAILED) {\n s0 = peg$parsedouble_quoted_single_line_string();\n if (s0 === peg$FAILED) {\n s0 = peg$parsesingle_quoted_multiline_string();\n if (s0 === peg$FAILED) {\n s0 = peg$parsesingle_quoted_single_line_string();\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsedouble_quoted_multiline_string() {\n let s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 3) === peg$c7) {\n s1 = peg$c7;\n peg$currPos += 3;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e9); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseNL();\n if (s2 === peg$FAILED) {\n s2 = null;\n }\n s3 = peg$parsemlb_body();\n if (input.substr(peg$currPos, 3) === peg$c7) {\n s4 = peg$c7;\n peg$currPos += 3;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e9); }\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f12(s3);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parsedouble_quoted_single_line_string() {\n let s0, s1, s2, s3;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 34) {\n s1 = peg$c8;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e10); }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parsestring_char();\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsestring_char();\n }\n if (input.charCodeAt(peg$currPos) === 34) {\n s3 = peg$c8;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e10); }\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f13(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parsesingle_quoted_multiline_string() {\n let s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 3) === peg$c9) {\n s1 = peg$c9;\n peg$currPos += 3;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e11); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseNL();\n if (s2 === peg$FAILED) {\n s2 = null;\n }\n s3 = peg$parsemll_body();\n if (input.substr(peg$currPos, 3) === peg$c9) {\n s4 = peg$c9;\n peg$currPos += 3;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e11); }\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f14(s3);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parsesingle_quoted_single_line_string() {\n let s0, s1, s2, s3;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 39) {\n s1 = peg$c10;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e12); }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parseliteral_char();\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parseliteral_char();\n }\n if (input.charCodeAt(peg$currPos) === 39) {\n s3 = peg$c10;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e12); }\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f15(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parsemlb_body() {\n let s0, s1, s2, s3, s4, s5, s6;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsemlb_content();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsemlb_content();\n }\n s2 = [];\n s3 = peg$currPos;\n s4 = peg$parsemlb_quotes();\n if (s4 !== peg$FAILED) {\n s5 = [];\n s6 = peg$parsemlb_content();\n if (s6 !== peg$FAILED) {\n while (s6 !== peg$FAILED) {\n s5.push(s6);\n s6 = peg$parsemlb_content();\n }\n } else {\n s5 = peg$FAILED;\n }\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = peg$parsemlb_quotes();\n if (s4 !== peg$FAILED) {\n s5 = [];\n s6 = peg$parsemlb_content();\n if (s6 !== peg$FAILED) {\n while (s6 !== peg$FAILED) {\n s5.push(s6);\n s6 = peg$parsemlb_content();\n }\n } else {\n s5 = peg$FAILED;\n }\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n s3 = peg$parsemlb_trailing();\n if (s3 === peg$FAILED) {\n s3 = null;\n }\n peg$savedPos = s0;\n s0 = peg$f16(s1, s2, s3);\n\n return s0;\n }\n\n function peg$parsemlb_content() {\n let s0, s1, s2;\n\n s0 = peg$parseESCAPED();\n if (s0 === peg$FAILED) {\n s0 = peg$parsemlb_escaped_newline();\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 92) {\n s1 = peg$c11;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e13); }\n }\n if (s1 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e14); }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f17();\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c12) {\n s1 = peg$c12;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e15); }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f18();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = [];\n s2 = input.charAt(peg$currPos);\n if (peg$r2.test(s2)) {\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e16); }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = input.charAt(peg$currPos);\n if (peg$r2.test(s2)) {\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e16); }\n }\n }\n } else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n } else {\n s0 = s1;\n }\n }\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsemlb_escaped_newline() {\n let s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 92) {\n s1 = peg$c11;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e13); }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parseS();\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parseS();\n }\n s3 = peg$parseNL();\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$parseNLS();\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$parseNLS();\n }\n peg$savedPos = s0;\n s0 = peg$f19();\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parsemlb_quotes() {\n let s0, s1, s2, s3;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c13) {\n s1 = peg$c13;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e17); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n peg$silentFails++;\n if (input.charCodeAt(peg$currPos) === 34) {\n s3 = peg$c8;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e10); }\n }\n peg$silentFails--;\n if (s3 === peg$FAILED) {\n s2 = undefined;\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f20();\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 34) {\n s1 = peg$c8;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e10); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n peg$silentFails++;\n if (input.charCodeAt(peg$currPos) === 34) {\n s3 = peg$c8;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e10); }\n }\n peg$silentFails--;\n if (s3 === peg$FAILED) {\n s2 = undefined;\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f21();\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n\n return s0;\n }\n\n function peg$parsemlb_trailing() {\n let s0, s1, s2, s3;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c13) {\n s1 = peg$c13;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e17); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n peg$silentFails++;\n if (input.substr(peg$currPos, 3) === peg$c7) {\n s3 = peg$c7;\n peg$currPos += 3;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e9); }\n }\n peg$silentFails--;\n if (s3 !== peg$FAILED) {\n peg$currPos = s2;\n s2 = undefined;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f22();\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 34) {\n s1 = peg$c8;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e10); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n peg$silentFails++;\n if (input.substr(peg$currPos, 3) === peg$c7) {\n s3 = peg$c7;\n peg$currPos += 3;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e9); }\n }\n peg$silentFails--;\n if (s3 !== peg$FAILED) {\n peg$currPos = s2;\n s2 = undefined;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f23();\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n\n return s0;\n }\n\n function peg$parsemll_body() {\n let s0, s1, s2, s3, s4, s5, s6;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsemll_content();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsemll_content();\n }\n s2 = [];\n s3 = peg$currPos;\n s4 = peg$parsemll_quotes();\n if (s4 !== peg$FAILED) {\n s5 = [];\n s6 = peg$parsemll_content();\n if (s6 !== peg$FAILED) {\n while (s6 !== peg$FAILED) {\n s5.push(s6);\n s6 = peg$parsemll_content();\n }\n } else {\n s5 = peg$FAILED;\n }\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = peg$parsemll_quotes();\n if (s4 !== peg$FAILED) {\n s5 = [];\n s6 = peg$parsemll_content();\n if (s6 !== peg$FAILED) {\n while (s6 !== peg$FAILED) {\n s5.push(s6);\n s6 = peg$parsemll_content();\n }\n } else {\n s5 = peg$FAILED;\n }\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n s3 = peg$parsemll_trailing();\n if (s3 === peg$FAILED) {\n s3 = null;\n }\n peg$savedPos = s0;\n s0 = peg$f24(s1, s2, s3);\n\n return s0;\n }\n\n function peg$parsemll_content() {\n let s0, s1, s2;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c12) {\n s1 = peg$c12;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e15); }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f25();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = [];\n s2 = input.charAt(peg$currPos);\n if (peg$r3.test(s2)) {\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e18); }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = input.charAt(peg$currPos);\n if (peg$r3.test(s2)) {\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e18); }\n }\n }\n } else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n } else {\n s0 = s1;\n }\n }\n\n return s0;\n }\n\n function peg$parsemll_quotes() {\n let s0, s1, s2, s3;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c14) {\n s1 = peg$c14;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e19); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n peg$silentFails++;\n if (input.charCodeAt(peg$currPos) === 39) {\n s3 = peg$c10;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e12); }\n }\n peg$silentFails--;\n if (s3 === peg$FAILED) {\n s2 = undefined;\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f26();\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 39) {\n s1 = peg$c10;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e12); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n peg$silentFails++;\n if (input.charCodeAt(peg$currPos) === 39) {\n s3 = peg$c10;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e12); }\n }\n peg$silentFails--;\n if (s3 === peg$FAILED) {\n s2 = undefined;\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f27();\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n\n return s0;\n }\n\n function peg$parsemll_trailing() {\n let s0, s1, s2, s3;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c14) {\n s1 = peg$c14;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e19); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n peg$silentFails++;\n if (input.substr(peg$currPos, 3) === peg$c9) {\n s3 = peg$c9;\n peg$currPos += 3;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e11); }\n }\n peg$silentFails--;\n if (s3 !== peg$FAILED) {\n peg$currPos = s2;\n s2 = undefined;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f28();\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 39) {\n s1 = peg$c10;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e12); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n peg$silentFails++;\n if (input.substr(peg$currPos, 3) === peg$c9) {\n s3 = peg$c9;\n peg$currPos += 3;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e11); }\n }\n peg$silentFails--;\n if (s3 !== peg$FAILED) {\n peg$currPos = s2;\n s2 = undefined;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f29();\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n\n return s0;\n }\n\n function peg$parsestring_char() {\n let s0, s1, s2;\n\n s0 = peg$parseESCAPED();\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 92) {\n s1 = peg$c11;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e13); }\n }\n if (s1 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e14); }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f30();\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = [];\n s2 = input.charAt(peg$currPos);\n if (peg$r4.test(s2)) {\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e20); }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = input.charAt(peg$currPos);\n if (peg$r4.test(s2)) {\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e20); }\n }\n }\n } else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n } else {\n s0 = s1;\n }\n }\n }\n\n return s0;\n }\n\n function peg$parseliteral_char() {\n let s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = input.charAt(peg$currPos);\n if (peg$r5.test(s2)) {\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e21); }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = input.charAt(peg$currPos);\n if (peg$r5.test(s2)) {\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e21); }\n }\n }\n } else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n } else {\n s0 = s1;\n }\n\n return s0;\n }\n\n function peg$parsefloat() {\n let s0, s1, s2, s3;\n\n s0 = peg$currPos;\n s1 = peg$parsefloat_or_int_text();\n if (s1 !== peg$FAILED) {\n s2 = input.charAt(peg$currPos);\n if (peg$r6.test(s2)) {\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e22); }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsefloat_exp_text();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f31(s1, s3);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parsefloat_text();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f32(s1);\n }\n s0 = s1;\n }\n\n return s0;\n }\n\n function peg$parsefloat_text() {\n let s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n s1 = input.charAt(peg$currPos);\n if (peg$r1.test(s1)) {\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e6); }\n }\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n s2 = peg$parseFLOAT_DEC_INT();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 46) {\n s3 = peg$c3;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e4); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$currPos;\n s5 = peg$parseDEC_DIGIT_SEQ();\n if (s5 !== peg$FAILED) {\n s4 = input.substring(s4, peg$currPos);\n } else {\n s4 = s5;\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f33(s1, s2, s4);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parsefloat_or_int_text() {\n let s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n s1 = input.charAt(peg$currPos);\n if (peg$r1.test(s1)) {\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e6); }\n }\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n s2 = peg$parseFLOAT_DEC_INT();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 46) {\n s3 = peg$c3;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e4); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$currPos;\n s5 = peg$parseDEC_DIGIT_SEQ();\n if (s5 !== peg$FAILED) {\n s4 = input.substring(s4, peg$currPos);\n } else {\n s4 = s5;\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f34(s1, s2, s4);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = input.charAt(peg$currPos);\n if (peg$r1.test(s1)) {\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e6); }\n }\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n s2 = peg$parseFLOAT_DEC_INT();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f35(s1, s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n\n return s0;\n }\n\n function peg$parseFLOAT_DEC_INT() {\n let s0, s1;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 48) {\n s1 = peg$c15;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e23); }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f36();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parseDEC_INT_NOZERO_SEQ();\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n } else {\n s0 = s1;\n }\n }\n\n return s0;\n }\n\n function peg$parsefloat_exp_text() {\n let s0, s1, s2, s3;\n\n s0 = peg$currPos;\n s1 = input.charAt(peg$currPos);\n if (peg$r1.test(s1)) {\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e6); }\n }\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n s2 = peg$currPos;\n s3 = peg$parseDEC_DIGIT_SEQ();\n if (s3 !== peg$FAILED) {\n s2 = input.substring(s2, peg$currPos);\n } else {\n s2 = s3;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f37(s1, s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parseinteger() {\n let s0, s1, s2, s3;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c16) {\n s1 = peg$c16;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e24); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n s3 = peg$parseHEX_DIGIT_SEQ();\n if (s3 !== peg$FAILED) {\n s2 = input.substring(s2, peg$currPos);\n } else {\n s2 = s3;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f38(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c17) {\n s1 = peg$c17;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e25); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n s3 = peg$parseOCT_DIGIT_SEQ();\n if (s3 !== peg$FAILED) {\n s2 = input.substring(s2, peg$currPos);\n } else {\n s2 = s3;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f39(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c18) {\n s1 = peg$c18;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e26); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n s3 = peg$parseBIN_DIGIT_SEQ();\n if (s3 !== peg$FAILED) {\n s2 = input.substring(s2, peg$currPos);\n } else {\n s2 = s3;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f40(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parsedec_integer_text();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f41(s1);\n }\n s0 = s1;\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsedec_integer_text() {\n let s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n s1 = input.charAt(peg$currPos);\n if (peg$r1.test(s1)) {\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e6); }\n }\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n if (input.charCodeAt(peg$currPos) === 48) {\n s2 = peg$c15;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e23); }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$currPos;\n peg$silentFails++;\n s4 = input.charAt(peg$currPos);\n if (peg$r7.test(s4)) {\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e27); }\n }\n peg$silentFails--;\n if (s4 === peg$FAILED) {\n s3 = undefined;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$currPos;\n peg$silentFails++;\n if (input.charCodeAt(peg$currPos) === 46) {\n s5 = peg$c3;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e4); }\n }\n peg$silentFails--;\n if (s5 === peg$FAILED) {\n s4 = undefined;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f42(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = input.charAt(peg$currPos);\n if (peg$r1.test(s1)) {\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e6); }\n }\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n s2 = peg$currPos;\n s3 = peg$parseDEC_INT_NOZERO_SEQ();\n if (s3 !== peg$FAILED) {\n s2 = input.substring(s2, peg$currPos);\n } else {\n s2 = s3;\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$currPos;\n peg$silentFails++;\n if (input.charCodeAt(peg$currPos) === 46) {\n s4 = peg$c3;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e4); }\n }\n peg$silentFails--;\n if (s4 === peg$FAILED) {\n s3 = undefined;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f43(s1, s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n\n return s0;\n }\n\n function peg$parseDEC_INT_NOZERO_SEQ() {\n let s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n s1 = input.charAt(peg$currPos);\n if (peg$r8.test(s1)) {\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e28); }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n s4 = input.charAt(peg$currPos);\n if (peg$r9.test(s4)) {\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e29); }\n }\n if (s4 === peg$FAILED) {\n s4 = null;\n }\n s5 = input.charAt(peg$currPos);\n if (peg$r10.test(s5)) {\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e30); }\n }\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = input.charAt(peg$currPos);\n if (peg$r9.test(s4)) {\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e29); }\n }\n if (s4 === peg$FAILED) {\n s4 = null;\n }\n s5 = input.charAt(peg$currPos);\n if (peg$r10.test(s5)) {\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e30); }\n }\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n s1 = [s1, s2];\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parseDEC_DIGIT_SEQ() {\n let s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n s1 = input.charAt(peg$currPos);\n if (peg$r10.test(s1)) {\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e30); }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n s4 = input.charAt(peg$currPos);\n if (peg$r9.test(s4)) {\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e29); }\n }\n if (s4 === peg$FAILED) {\n s4 = null;\n }\n s5 = input.charAt(peg$currPos);\n if (peg$r10.test(s5)) {\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e30); }\n }\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = input.charAt(peg$currPos);\n if (peg$r9.test(s4)) {\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e29); }\n }\n if (s4 === peg$FAILED) {\n s4 = null;\n }\n s5 = input.charAt(peg$currPos);\n if (peg$r10.test(s5)) {\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e30); }\n }\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n s1 = [s1, s2];\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parseHEX_DIGIT_SEQ() {\n let s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n s1 = input.charAt(peg$currPos);\n if (peg$r11.test(s1)) {\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e31); }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n s4 = input.charAt(peg$currPos);\n if (peg$r9.test(s4)) {\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e29); }\n }\n if (s4 === peg$FAILED) {\n s4 = null;\n }\n s5 = input.charAt(peg$currPos);\n if (peg$r11.test(s5)) {\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e31); }\n }\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = input.charAt(peg$currPos);\n if (peg$r9.test(s4)) {\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e29); }\n }\n if (s4 === peg$FAILED) {\n s4 = null;\n }\n s5 = input.charAt(peg$currPos);\n if (peg$r11.test(s5)) {\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e31); }\n }\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n s1 = [s1, s2];\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parseOCT_DIGIT_SEQ() {\n let s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n s1 = input.charAt(peg$currPos);\n if (peg$r12.test(s1)) {\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e32); }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n s4 = input.charAt(peg$currPos);\n if (peg$r9.test(s4)) {\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e29); }\n }\n if (s4 === peg$FAILED) {\n s4 = null;\n }\n s5 = input.charAt(peg$currPos);\n if (peg$r12.test(s5)) {\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e32); }\n }\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = input.charAt(peg$currPos);\n if (peg$r9.test(s4)) {\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e29); }\n }\n if (s4 === peg$FAILED) {\n s4 = null;\n }\n s5 = input.charAt(peg$currPos);\n if (peg$r12.test(s5)) {\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e32); }\n }\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n s1 = [s1, s2];\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parseBIN_DIGIT_SEQ() {\n let s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n s1 = input.charAt(peg$currPos);\n if (peg$r13.test(s1)) {\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e33); }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n s4 = input.charAt(peg$currPos);\n if (peg$r9.test(s4)) {\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e29); }\n }\n if (s4 === peg$FAILED) {\n s4 = null;\n }\n s5 = input.charAt(peg$currPos);\n if (peg$r13.test(s5)) {\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e33); }\n }\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = input.charAt(peg$currPos);\n if (peg$r9.test(s4)) {\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e29); }\n }\n if (s4 === peg$FAILED) {\n s4 = null;\n }\n s5 = input.charAt(peg$currPos);\n if (peg$r13.test(s5)) {\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e33); }\n }\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n s1 = [s1, s2];\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parseboolean() {\n let s0, s1;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 4) === peg$c19) {\n s1 = peg$c19;\n peg$currPos += 4;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e34); }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f44();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 5) === peg$c20) {\n s1 = peg$c20;\n peg$currPos += 5;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e35); }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f45();\n }\n s0 = s1;\n }\n\n return s0;\n }\n\n function peg$parsearray() {\n let s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 91) {\n s1 = peg$c1;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e2); }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parsearray_sep();\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsearray_sep();\n }\n if (input.charCodeAt(peg$currPos) === 93) {\n s3 = peg$c2;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e3); }\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f46();\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 91) {\n s1 = peg$c1;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e2); }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parsearray_sep();\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsearray_sep();\n }\n s3 = peg$parsevalue();\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$currPos;\n s6 = [];\n s7 = peg$parsearray_sep();\n while (s7 !== peg$FAILED) {\n s6.push(s7);\n s7 = peg$parsearray_sep();\n }\n if (input.charCodeAt(peg$currPos) === 44) {\n s7 = peg$c21;\n peg$currPos++;\n } else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e36); }\n }\n if (s7 !== peg$FAILED) {\n s8 = [];\n s9 = peg$parsearray_sep();\n while (s9 !== peg$FAILED) {\n s8.push(s9);\n s9 = peg$parsearray_sep();\n }\n s9 = peg$parsevalue();\n if (s9 !== peg$FAILED) {\n peg$savedPos = s5;\n s5 = peg$f47(s3, s9);\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$currPos;\n s6 = [];\n s7 = peg$parsearray_sep();\n while (s7 !== peg$FAILED) {\n s6.push(s7);\n s7 = peg$parsearray_sep();\n }\n if (input.charCodeAt(peg$currPos) === 44) {\n s7 = peg$c21;\n peg$currPos++;\n } else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e36); }\n }\n if (s7 !== peg$FAILED) {\n s8 = [];\n s9 = peg$parsearray_sep();\n while (s9 !== peg$FAILED) {\n s8.push(s9);\n s9 = peg$parsearray_sep();\n }\n s9 = peg$parsevalue();\n if (s9 !== peg$FAILED) {\n peg$savedPos = s5;\n s5 = peg$f47(s3, s9);\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n }\n s5 = [];\n s6 = peg$parsearray_sep();\n while (s6 !== peg$FAILED) {\n s5.push(s6);\n s6 = peg$parsearray_sep();\n }\n if (input.charCodeAt(peg$currPos) === 44) {\n s6 = peg$c21;\n peg$currPos++;\n } else {\n s6 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e36); }\n }\n if (s6 === peg$FAILED) {\n s6 = null;\n }\n s7 = [];\n s8 = peg$parsearray_sep();\n while (s8 !== peg$FAILED) {\n s7.push(s8);\n s8 = peg$parsearray_sep();\n }\n if (input.charCodeAt(peg$currPos) === 93) {\n s8 = peg$c2;\n peg$currPos++;\n } else {\n s8 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e3); }\n }\n if (s8 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f48(s3, s4);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n\n return s0;\n }\n\n function peg$parsearray_sep() {\n let s0;\n\n s0 = peg$parseS();\n if (s0 === peg$FAILED) {\n s0 = peg$parseNL();\n if (s0 === peg$FAILED) {\n s0 = peg$parsecomment();\n }\n }\n\n return s0;\n }\n\n function peg$parseinline_table() {\n let s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c22;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e37); }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parseinline_sep();\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parseinline_sep();\n }\n if (input.charCodeAt(peg$currPos) === 125) {\n s3 = peg$c23;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e38); }\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f49();\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c22;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e37); }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parseinline_sep();\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parseinline_sep();\n }\n s3 = peg$parseinline_table_entry();\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$currPos;\n s6 = [];\n s7 = peg$parseinline_sep();\n while (s7 !== peg$FAILED) {\n s6.push(s7);\n s7 = peg$parseinline_sep();\n }\n if (input.charCodeAt(peg$currPos) === 44) {\n s7 = peg$c21;\n peg$currPos++;\n } else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e36); }\n }\n if (s7 !== peg$FAILED) {\n s8 = [];\n s9 = peg$parseinline_sep();\n while (s9 !== peg$FAILED) {\n s8.push(s9);\n s9 = peg$parseinline_sep();\n }\n s9 = peg$parseinline_table_entry();\n if (s9 !== peg$FAILED) {\n peg$savedPos = s5;\n s5 = peg$f50(s3, s9);\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$currPos;\n s6 = [];\n s7 = peg$parseinline_sep();\n while (s7 !== peg$FAILED) {\n s6.push(s7);\n s7 = peg$parseinline_sep();\n }\n if (input.charCodeAt(peg$currPos) === 44) {\n s7 = peg$c21;\n peg$currPos++;\n } else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e36); }\n }\n if (s7 !== peg$FAILED) {\n s8 = [];\n s9 = peg$parseinline_sep();\n while (s9 !== peg$FAILED) {\n s8.push(s9);\n s9 = peg$parseinline_sep();\n }\n s9 = peg$parseinline_table_entry();\n if (s9 !== peg$FAILED) {\n peg$savedPos = s5;\n s5 = peg$f50(s3, s9);\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n }\n s5 = [];\n s6 = peg$parseinline_sep();\n while (s6 !== peg$FAILED) {\n s5.push(s6);\n s6 = peg$parseinline_sep();\n }\n if (input.charCodeAt(peg$currPos) === 44) {\n s6 = peg$c21;\n peg$currPos++;\n } else {\n s6 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e36); }\n }\n if (s6 === peg$FAILED) {\n s6 = null;\n }\n s7 = [];\n s8 = peg$parseinline_sep();\n while (s8 !== peg$FAILED) {\n s7.push(s8);\n s8 = peg$parseinline_sep();\n }\n if (input.charCodeAt(peg$currPos) === 125) {\n s8 = peg$c23;\n peg$currPos++;\n } else {\n s8 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e38); }\n }\n if (s8 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f51(s3, s4);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n\n return s0;\n }\n\n function peg$parseinline_table_entry() {\n let s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n s1 = peg$parseinline_key();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parseS();\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parseS();\n }\n if (input.charCodeAt(peg$currPos) === 61) {\n s3 = peg$c4;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e5); }\n }\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$parseS();\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$parseS();\n }\n s5 = peg$parsevalue();\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f52(s1, s5);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parseinline_sep() {\n let s0;\n\n s0 = peg$parseS();\n if (s0 === peg$FAILED) {\n s0 = peg$parseNL();\n if (s0 === peg$FAILED) {\n s0 = peg$parsecomment();\n }\n }\n\n return s0;\n }\n\n function peg$parseinline_key() {\n let s0, s1, s2, s3;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parseinline_dot_key_part();\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parseinline_dot_key_part();\n }\n } else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parseS();\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parseS();\n }\n s3 = peg$parsesimple_key();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f53(s1, s3);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parsesimple_key();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f54(s1);\n }\n s0 = s1;\n }\n\n return s0;\n }\n\n function peg$parseinline_dot_key_part() {\n let s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parseS();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parseS();\n }\n s2 = peg$parsesimple_key();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parseS();\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parseS();\n }\n if (input.charCodeAt(peg$currPos) === 46) {\n s4 = peg$c3;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e4); }\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f55(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parsesimple_key() {\n let s0;\n\n s0 = peg$parsekey();\n if (s0 === peg$FAILED) {\n s0 = peg$parsequoted_key();\n }\n\n return s0;\n }\n\n function peg$parsesecfragment() {\n let s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 46) {\n s2 = peg$c3;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e4); }\n }\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parseDIGIT();\n if (s4 !== peg$FAILED) {\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parseDIGIT();\n }\n } else {\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n } else {\n s0 = s1;\n }\n\n return s0;\n }\n\n function peg$parsedate_part() {\n let s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11;\n\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = peg$parseDIGIT();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseDIGIT();\n if (s3 !== peg$FAILED) {\n s4 = peg$parseDIGIT();\n if (s4 !== peg$FAILED) {\n s5 = peg$parseDIGIT();\n if (s5 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 45) {\n s6 = peg$c24;\n peg$currPos++;\n } else {\n s6 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e39); }\n }\n if (s6 !== peg$FAILED) {\n s7 = peg$parseDIGIT();\n if (s7 !== peg$FAILED) {\n s8 = peg$parseDIGIT();\n if (s8 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 45) {\n s9 = peg$c24;\n peg$currPos++;\n } else {\n s9 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e39); }\n }\n if (s9 !== peg$FAILED) {\n s10 = peg$parseDIGIT();\n if (s10 !== peg$FAILED) {\n s11 = peg$parseDIGIT();\n if (s11 !== peg$FAILED) {\n s2 = [s2, s3, s4, s5, s6, s7, s8, s9, s10, s11];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n } else {\n s0 = s1;\n }\n\n return s0;\n }\n\n function peg$parsetime_part() {\n let s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10;\n\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = peg$currPos;\n s3 = peg$parseDIGIT();\n if (s3 !== peg$FAILED) {\n s4 = peg$parseDIGIT();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 58) {\n s5 = peg$c25;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e40); }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parseDIGIT();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseDIGIT();\n if (s7 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 58) {\n s8 = peg$c25;\n peg$currPos++;\n } else {\n s8 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e40); }\n }\n if (s8 !== peg$FAILED) {\n s9 = peg$parseDIGIT();\n if (s9 !== peg$FAILED) {\n s10 = peg$parseDIGIT();\n if (s10 !== peg$FAILED) {\n s3 = [s3, s4, s5, s6, s7, s8, s9, s10];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s1 = input.substring(s1, peg$currPos);\n } else {\n s1 = s2;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsesecfragment();\n if (s2 === peg$FAILED) {\n s2 = null;\n }\n peg$savedPos = s0;\n s0 = peg$f56(s1, s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = peg$currPos;\n s3 = peg$parseDIGIT();\n if (s3 !== peg$FAILED) {\n s4 = peg$parseDIGIT();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 58) {\n s5 = peg$c25;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e40); }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parseDIGIT();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseDIGIT();\n if (s7 !== peg$FAILED) {\n s3 = [s3, s4, s5, s6, s7];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s1 = input.substring(s1, peg$currPos);\n } else {\n s1 = s2;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n peg$silentFails++;\n if (input.charCodeAt(peg$currPos) === 58) {\n s3 = peg$c25;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e40); }\n }\n peg$silentFails--;\n if (s3 === peg$FAILED) {\n s2 = undefined;\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f57(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n\n return s0;\n }\n\n function peg$parseoffset() {\n let s0, s1, s2, s3, s4, s5, s6, s7;\n\n s0 = peg$currPos;\n s1 = input.charAt(peg$currPos);\n if (s1.toLowerCase() === peg$c26) {\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e41); }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f58();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = input.charAt(peg$currPos);\n if (peg$r1.test(s2)) {\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e6); }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parseDIGIT();\n if (s3 !== peg$FAILED) {\n s4 = peg$parseDIGIT();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 58) {\n s5 = peg$c25;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e40); }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parseDIGIT();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseDIGIT();\n if (s7 !== peg$FAILED) {\n s2 = [s2, s3, s4, s5, s6, s7];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n } else {\n s0 = s1;\n }\n }\n\n return s0;\n }\n\n function peg$parsedatetime() {\n let s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n s1 = peg$parsedate_part();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsedatetime_delim();\n if (s2 !== peg$FAILED) {\n s3 = peg$parsetime_part();\n if (s3 !== peg$FAILED) {\n s4 = peg$parseoffset();\n if (s4 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f59(s1, s3, s4);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parsedate_part();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsedatetime_delim();\n if (s2 !== peg$FAILED) {\n s3 = peg$parsetime_part();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f60(s1, s3);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parsedate_part();\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n peg$silentFails++;\n s3 = peg$parsedatetime_delim();\n peg$silentFails--;\n if (s3 === peg$FAILED) {\n s2 = undefined;\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f61(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parsetime_part();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f62(s1);\n }\n s0 = s1;\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsedatetime_delim() {\n let s0, s1, s2, s3;\n\n s0 = input.charAt(peg$currPos);\n if (s0.toLowerCase() === peg$c27) {\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e42); }\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 32) {\n s1 = peg$c28;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e43); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n peg$silentFails++;\n s3 = peg$parseDIGIT();\n peg$silentFails--;\n if (s3 !== peg$FAILED) {\n peg$currPos = s2;\n s2 = undefined;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s1 = [s1, s2];\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n\n return s0;\n }\n\n function peg$parseS() {\n let s0;\n\n s0 = input.charAt(peg$currPos);\n if (peg$r14.test(s0)) {\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e44); }\n }\n\n return s0;\n }\n\n function peg$parseNL() {\n let s0, s1, s2;\n\n if (input.charCodeAt(peg$currPos) === 10) {\n s0 = peg$c29;\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e45); }\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 13) {\n s1 = peg$c30;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e46); }\n }\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 10) {\n s2 = peg$c29;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e45); }\n }\n if (s2 !== peg$FAILED) {\n s1 = [s1, s2];\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n\n return s0;\n }\n\n function peg$parseNLS() {\n let s0;\n\n s0 = peg$parseNL();\n if (s0 === peg$FAILED) {\n s0 = peg$parseS();\n }\n\n return s0;\n }\n\n function peg$parseEOF() {\n let s0, s1;\n\n s0 = peg$currPos;\n peg$silentFails++;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e14); }\n }\n peg$silentFails--;\n if (s1 === peg$FAILED) {\n s0 = undefined;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parseDIGIT() {\n let s0;\n\n s0 = input.charAt(peg$currPos);\n if (peg$r10.test(s0)) {\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e30); }\n }\n\n return s0;\n }\n\n function peg$parseHEX() {\n let s0;\n\n s0 = input.charAt(peg$currPos);\n if (peg$r11.test(s0)) {\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e31); }\n }\n\n return s0;\n }\n\n function peg$parseASCII_BASIC() {\n let s0;\n\n s0 = input.charAt(peg$currPos);\n if (peg$r15.test(s0)) {\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e47); }\n }\n\n return s0;\n }\n\n function peg$parseESCAPED() {\n let s0, s1, s2;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 92) {\n s1 = peg$c11;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e13); }\n }\n if (s1 !== peg$FAILED) {\n s2 = input.charAt(peg$currPos);\n if (peg$r16.test(s2)) {\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e48); }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f63(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$parseESCAPED_UNICODE();\n }\n\n return s0;\n }\n\n function peg$parseESCAPED_UNICODE() {\n let s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11;\n\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c31) {\n s1 = peg$c31;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e49); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n s3 = peg$currPos;\n s4 = peg$parseHEX();\n if (s4 !== peg$FAILED) {\n s5 = peg$parseHEX();\n if (s5 !== peg$FAILED) {\n s6 = peg$parseHEX();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseHEX();\n if (s7 !== peg$FAILED) {\n s8 = peg$parseHEX();\n if (s8 !== peg$FAILED) {\n s9 = peg$parseHEX();\n if (s9 !== peg$FAILED) {\n s10 = peg$parseHEX();\n if (s10 !== peg$FAILED) {\n s11 = peg$parseHEX();\n if (s11 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7, s8, s9, s10, s11];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n s2 = input.substring(s2, peg$currPos);\n } else {\n s2 = s3;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f64(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c32) {\n s1 = peg$c32;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e50); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n s3 = peg$currPos;\n s4 = peg$parseHEX();\n if (s4 !== peg$FAILED) {\n s5 = peg$parseHEX();\n if (s5 !== peg$FAILED) {\n s6 = peg$parseHEX();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseHEX();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n s2 = input.substring(s2, peg$currPos);\n } else {\n s2 = s3;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f65(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c33) {\n s1 = peg$c33;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$e51); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n s3 = peg$currPos;\n s4 = peg$parseHEX();\n if (s4 !== peg$FAILED) {\n s5 = peg$parseHEX();\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n s2 = input.substring(s2, peg$currPos);\n } else {\n s2 = s3;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f66(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n }\n\n return s0;\n }\n\n\n var nodes = [];\n var inputText = input;\n\n function resolveLineCol(off) {\n var line = 1, col = 1;\n for (var i = 0; i < off; i++) {\n if (inputText.charCodeAt(i) === 10) { line++; col = 1; }\n else { col++; }\n }\n return { line: line, column: col };\n }\n\n function genError(err, off) {\n var pos = resolveLineCol(off);\n var ex = new Error(err);\n ex.line = pos.line;\n ex.column = pos.column;\n throw ex;\n }\n\n function addNode(node) {\n nodes.push(node);\n }\n\n function node(type, value, off, key) {\n var obj = { type: type, value: value, offset: off };\n if (key) obj.key = key;\n return obj;\n }\n\n function validateDate(dateStr, off) {\n var year = dateStr.charCodeAt(0) * 1000 + dateStr.charCodeAt(1) * 100 + dateStr.charCodeAt(2) * 10 + dateStr.charCodeAt(3) - 53328;\n var month = (dateStr.charCodeAt(5) - 48) * 10 + dateStr.charCodeAt(6) - 48;\n var day = (dateStr.charCodeAt(8) - 48) * 10 + dateStr.charCodeAt(9) - 48;\n if (month < 1 || month > 12) {\n genError(\"Invalid date: month \" + month + \" out of range.\", off);\n }\n var maxDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n if ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0) {\n maxDays[1] = 29;\n }\n if (day < 1 || day > maxDays[month - 1]) {\n genError(\"Invalid date: day \" + day + \" out of range for month \" + month + \".\", off);\n }\n }\n\n function validateTime(timeStr, off) {\n var hour = (timeStr.charCodeAt(0) - 48) * 10 + timeStr.charCodeAt(1) - 48;\n var minute = (timeStr.charCodeAt(3) - 48) * 10 + timeStr.charCodeAt(4) - 48;\n var second = (timeStr.charCodeAt(6) - 48) * 10 + timeStr.charCodeAt(7) - 48;\n if (hour > 23) {\n genError(\"Invalid time: hour \" + hour + \" out of range.\", off);\n }\n if (minute > 59) {\n genError(\"Invalid time: minute \" + minute + \" out of range.\", off);\n }\n if (second > 59) {\n genError(\"Invalid time: second \" + second + \" out of range.\", off);\n }\n }\n\n function validateOffset(offsetStr, off) {\n if (offsetStr === \"Z\" || offsetStr === \"z\") return;\n var hour = (offsetStr.charCodeAt(1) - 48) * 10 + offsetStr.charCodeAt(2) - 48;\n var minute = (offsetStr.charCodeAt(4) - 48) * 10 + offsetStr.charCodeAt(5) - 48;\n if (hour > 23) {\n genError(\"Invalid offset: hour \" + hour + \" out of range.\", off);\n }\n if (minute > 59) {\n genError(\"Invalid offset: minute \" + minute + \" out of range.\", off);\n }\n }\n\n function stripUnderscores(str) {\n return str.indexOf('_') === -1 ? str : str.replace(/_/g, '');\n }\n\n function convertCodePoint(str) {\n var num = parseInt(str, 16);\n\n if (\n num !== num ||\n num < 0 ||\n num > 0x10FFFF ||\n (num > 0xD7FF && num < 0xE000)\n ) {\n genError(\"Invalid Unicode escape code: \" + str, offset());\n } else {\n return String.fromCodePoint(num);\n }\n }\n\n peg$result = peg$startRuleFunction();\n\n const peg$success = (peg$result !== peg$FAILED && peg$currPos === input.length);\n function peg$throw() {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail(peg$endExpectation());\n }\n\n throw peg$buildStructuredError(\n peg$maxFailExpected,\n peg$maxFailPos < input.length ? peg$getUnicode(peg$maxFailPos) : null,\n peg$maxFailPos < input.length\n ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)\n : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)\n );\n }\n if (options.peg$library) {\n return /** @type {any} */ ({\n peg$result,\n peg$currPos,\n peg$FAILED,\n peg$maxFailExpected,\n peg$maxFailPos,\n peg$success,\n peg$throw: peg$success ? undefined : peg$throw,\n });\n }\n if (peg$success) {\n return peg$result;\n } else {\n peg$throw();\n }\n}\n\nmodule.exports = {\n StartRules: [\"start\"],\n SyntaxError: peg$SyntaxError,\n parse: peg$parse,\n};\n",
@@ -81,14 +81,12 @@
81
81
  "/**\n * The `CliError` module defines the structured error model used by the\n * unstable CLI parser and runner. It distinguishes command-line parse failures,\n * CLI definition problems, explicit help requests, and user handler failures so\n * applications can report errors consistently while still pattern matching on\n * the exact cause.\n *\n * **Common tasks**\n *\n * - Detect CLI errors at runtime with {@link isCliError}\n * - Represent parse failures such as unknown flags, missing required inputs, or\n * invalid argument values\n * - Attach parse or validation errors to {@link ShowHelp} when the runner should\n * render help text together with the failure\n * - Preserve command handler failures with {@link UserError}\n *\n * **Gotchas**\n *\n * - {@link ShowHelp} is a control-flow error, not a parse failure; it exits with\n * code `0` for explicit help and `1` when it carries errors\n * - Duplicate option names between parent and child commands are rejected\n * because the parent command claims the flag before the child can see it\n * - Suggestion-bearing errors keep suggestions separate from the primary cause\n * so help renderers can decide how much guidance to display\n *\n * @since 4.0.0\n */\nimport * as Predicate from \"../../Predicate.js\";\nimport * as Runtime from \"../../Runtime.js\";\nimport * as Schema from \"../../Schema.js\";\n/**\n * @category type IDs\n * @since 4.0.0\n */\nconst TypeId = \"~effect/cli/CliError\";\n/**\n * Type guard to check if a value is a CLI error.\n *\n * **Example** (Checking CLI errors)\n *\n * ```ts\n * import { Effect } from \"effect\"\n * import { CliError } from \"effect/unstable/cli\"\n *\n * const handleError = (error: unknown) => {\n * if (CliError.isCliError(error)) {\n * console.log(\"CLI Error:\", error.message)\n * return Effect.succeed(\"Handled CLI error\")\n * }\n * return Effect.fail(\"Unknown error\")\n * }\n *\n * // Example usage in error handling\n * const program = Effect.gen(function*() {\n * const result = yield* Effect.try({\n * try: () => ({ success: true }),\n * catch: (error) => error\n * })\n * handleError(result)\n * })\n * ```\n *\n * @category guards\n * @since 4.0.0\n */\nexport const isCliError = u => Predicate.hasProperty(u, TypeId);\n/**\n * Error thrown when an unrecognized option is encountered.\n *\n * **Example** (Creating unrecognized option errors)\n *\n * ```ts\n * import { Effect } from \"effect\"\n * import { CliError } from \"effect/unstable/cli\"\n *\n * // Creating an unrecognized option error\n * const unrecognizedError = new CliError.UnrecognizedOption({\n * option: \"--unknown-flag\",\n * command: [\"deploy\", \"production\"],\n * suggestions: [\"--verbose\", \"--force\"]\n * })\n *\n * console.log(unrecognizedError.message)\n * // \"Unrecognized flag: --unknown-flag in command deploy production\n * //\n * // Did you mean this?\n * // --verbose\n * // --force\"\n *\n * // In CLI parsing context\n * const parseCommand = Effect.gen(function*() {\n * // If parsing encounters unknown flag\n * return yield* unrecognizedError\n * })\n * ```\n *\n * @category models\n * @since 4.0.0\n */\nexport class UnrecognizedOption extends /*#__PURE__*/Schema.ErrorClass(`${TypeId}/UnrecognizedOption`)({\n _tag: /*#__PURE__*/Schema.tag(\"UnrecognizedOption\"),\n option: Schema.String,\n command: /*#__PURE__*/Schema.optional(/*#__PURE__*/Schema.Array(Schema.String)),\n suggestions: /*#__PURE__*/Schema.Array(Schema.String)\n}) {\n /**\n * Marks this value as a CLI parsing error for runtime guards.\n *\n * @since 4.0.0\n */\n [TypeId] = TypeId;\n /**\n * Formats the unrecognized option with command context and suggestions.\n *\n * @since 4.0.0\n */\n get message() {\n const suggestionText = this.suggestions.length > 0 ? `\\n\\n Did you mean this?\\n ${this.suggestions.join(\"\\n \")}` : \"\";\n const baseMessage = this.command ? `Unrecognized flag: ${this.option} in command ${this.command.join(\" \")}` : `Unrecognized flag: ${this.option}`;\n return baseMessage + suggestionText;\n }\n}\n/**\n * Error thrown when duplicate option names are detected between parent and child commands.\n *\n * **Example** (Creating duplicate option errors)\n *\n * ```ts\n * import { CliError } from \"effect/unstable/cli\"\n *\n * const duplicateError = new CliError.DuplicateOption({\n * option: \"--verbose\",\n * parentCommand: \"myapp\",\n * childCommand: \"deploy\"\n * })\n *\n * console.log(duplicateError.message)\n * // \"Duplicate flag name \"--verbose\" in parent command \"myapp\" and subcommand \"deploy\".\n * // Parent will always claim this flag (Mode A semantics). Consider renaming one of them to avoid confusion.\"\n * ```\n *\n * @category models\n * @since 4.0.0\n */\nexport class DuplicateOption extends /*#__PURE__*/Schema.ErrorClass(`${TypeId}/DuplicateOption`)({\n _tag: /*#__PURE__*/Schema.tag(\"DuplicateOption\"),\n option: Schema.String,\n parentCommand: Schema.String,\n childCommand: Schema.String\n}) {\n /**\n * Marks this value as a CLI configuration error for runtime guards.\n *\n * @since 4.0.0\n */\n [TypeId] = TypeId;\n /**\n * Explains which parent and child commands define the duplicate option.\n *\n * @since 4.0.0\n */\n get message() {\n return `Duplicate flag name \"${this.option}\" in parent command \"${this.parentCommand}\" and subcommand \"${this.childCommand}\". ` + `Parent will always claim this flag (Mode A semantics). Consider renaming one of them to avoid confusion.`;\n }\n}\n/**\n * Error thrown when a required option is missing.\n *\n * **Example** (Creating missing option errors)\n *\n * ```ts\n * import { Effect } from \"effect\"\n * import { CliError } from \"effect/unstable/cli\"\n *\n * const missingOptionError = new CliError.MissingOption({\n * option: \"api-key\"\n * })\n *\n * console.log(missingOptionError.message)\n * // \"Missing required flag: --api-key\"\n *\n * // In validation context\n * const validateRequiredOptions = (options: Record<string, string | undefined>) =>\n * Effect.gen(function*() {\n * const apiKey = options[\"api-key\"]\n * if (!apiKey) {\n * return yield* missingOptionError\n * }\n * return apiKey\n * })\n * ```\n *\n * @category models\n * @since 4.0.0\n */\nexport class MissingOption extends /*#__PURE__*/Schema.ErrorClass(`${TypeId}/MissingOption`)({\n _tag: /*#__PURE__*/Schema.tag(\"MissingOption\"),\n option: Schema.String\n}) {\n /**\n * Marks this value as a missing CLI option error for runtime guards.\n *\n * @since 4.0.0\n */\n [TypeId] = TypeId;\n /**\n * Formats the missing required flag for display.\n *\n * @since 4.0.0\n */\n get message() {\n return `Missing required flag: --${this.option}`;\n }\n}\n/**\n * Error thrown when a required positional argument is missing.\n *\n * **Example** (Creating missing argument errors)\n *\n * ```ts\n * import { Effect } from \"effect\"\n * import { CliError } from \"effect/unstable/cli\"\n *\n * const missingArgError = new CliError.MissingArgument({\n * argument: \"target\"\n * })\n *\n * console.log(missingArgError.message)\n * // \"Missing required argument: target\"\n *\n * // In argument parsing\n * const parseArguments = (args: Array<string>) =>\n * Effect.gen(function*() {\n * if (args.length === 0) {\n * return yield* missingArgError\n * }\n * return args[0]\n * })\n * ```\n *\n * @category models\n * @since 4.0.0\n */\nexport class MissingArgument extends /*#__PURE__*/Schema.ErrorClass(`${TypeId}/MissingArgument`)({\n _tag: /*#__PURE__*/Schema.tag(\"MissingArgument\"),\n argument: Schema.String\n}) {\n /**\n * Marks this value as a missing CLI argument error for runtime guards.\n *\n * @since 4.0.0\n */\n [TypeId] = TypeId;\n /**\n * Formats the missing required positional argument for display.\n *\n * @since 4.0.0\n */\n get message() {\n return `Missing required argument: ${this.argument}`;\n }\n}\n/**\n * Error thrown when an option or argument value is invalid.\n *\n * **Example** (Creating invalid value errors)\n *\n * ```ts\n * import { Effect } from \"effect\"\n * import { CliError } from \"effect/unstable/cli\"\n *\n * const invalidValueError = new CliError.InvalidValue({\n * option: \"port\",\n * value: \"abc123\",\n * expected: \"integer between 1 and 65535\",\n * kind: \"flag\"\n * })\n *\n * console.log(invalidValueError.message)\n * // \"Invalid value for flag --port: \"abc123\". Expected: integer between 1 and 65535\"\n *\n * // For positional arguments\n * const invalidArgError = new CliError.InvalidValue({\n * option: \"count\",\n * value: \"abc\",\n * expected: \"integer\",\n * kind: \"argument\"\n * })\n *\n * console.log(invalidArgError.message)\n * // \"Invalid value for argument <count>: \"abc\". Expected: integer\"\n * ```\n *\n * @category models\n * @since 4.0.0\n */\nexport class InvalidValue extends /*#__PURE__*/Schema.ErrorClass(`${TypeId}/InvalidValue`)({\n _tag: /*#__PURE__*/Schema.tag(\"InvalidValue\"),\n option: Schema.String,\n value: Schema.String,\n expected: Schema.String,\n kind: /*#__PURE__*/Schema.Union([/*#__PURE__*/Schema.Literal(\"flag\"), /*#__PURE__*/Schema.Literal(\"argument\")])\n}) {\n /**\n * Marks this value as an invalid CLI value error for runtime guards.\n *\n * @since 4.0.0\n */\n [TypeId] = TypeId;\n /**\n * Formats the invalid flag or argument value with the expected input.\n *\n * @since 4.0.0\n */\n get message() {\n if (this.kind === \"argument\") {\n return `Invalid value for argument <${this.option}>: \"${this.value}\". Expected: ${this.expected}`;\n }\n return `Invalid value for flag --${this.option}: \"${this.value}\". Expected: ${this.expected}`;\n }\n}\n/**\n * Error thrown when an unknown subcommand is encountered.\n *\n * **Example** (Creating unknown subcommand errors)\n *\n * ```ts\n * import { Effect } from \"effect\"\n * import { CliError } from \"effect/unstable/cli\"\n *\n * const unknownSubcommandError = new CliError.UnknownSubcommand({\n * subcommand: \"deplyo\", // typo\n * parent: [\"myapp\"],\n * suggestions: [\"deploy\", \"destroy\"]\n * })\n *\n * console.log(unknownSubcommandError.message)\n * // \"Unknown subcommand \"deplyo\" for \"myapp\"\n * //\n * // Did you mean this?\n * // deploy\n * // destroy\"\n *\n * // In subcommand parsing\n * const parseSubcommand = (subcommand: string) =>\n * Effect.gen(function*() {\n * const validCommands = [\"deploy\", \"destroy\", \"status\"]\n * if (!validCommands.includes(subcommand)) {\n * return yield* unknownSubcommandError\n * }\n * return subcommand\n * })\n * ```\n *\n * @category models\n * @since 4.0.0\n */\nexport class UnknownSubcommand extends /*#__PURE__*/Schema.ErrorClass(`${TypeId}/UnknownSubcommand`)({\n _tag: /*#__PURE__*/Schema.tag(\"UnknownSubcommand\"),\n subcommand: Schema.String,\n parent: /*#__PURE__*/Schema.optional(/*#__PURE__*/Schema.Array(Schema.String)),\n suggestions: /*#__PURE__*/Schema.Array(Schema.String)\n}) {\n /**\n * Marks this value as an unknown CLI subcommand error for runtime guards.\n *\n * @since 4.0.0\n */\n [TypeId] = TypeId;\n /**\n * Formats the unknown subcommand with parent command context and suggestions.\n *\n * @since 4.0.0\n */\n get message() {\n const suggestionText = this.suggestions.length > 0 ? `\\n\\n Did you mean this?\\n ${this.suggestions.join(\"\\n \")}` : \"\";\n return this.parent ? `Unknown subcommand \"${this.subcommand}\" for \"${this.parent.join(\" \")}\"${suggestionText}` : `Unknown subcommand \"${this.subcommand}\"${suggestionText}`;\n }\n}\n/**\n * Error wrapper for user handler failures in the CLI error channel.\n *\n * **Example** (Wrapping user errors)\n *\n * ```ts\n * import { Effect } from \"effect\"\n * import { CliError } from \"effect/unstable/cli\"\n *\n * // Wrapping user errors\n * const userError = new CliError.UserError({\n * cause: new Error(\"Database connection failed\")\n * })\n *\n * // In command handler\n * const deployCommand = Effect.gen(function*() {\n * const result = yield* Effect.try({\n * try: () => ({ deployed: true }),\n * catch: (error) => new CliError.UserError({ cause: error })\n * })\n * return result\n * })\n *\n * // In error handling\n * const handleError = (error: CliError.CliError): Effect.Effect<number> => {\n * if (error._tag === \"UserError\") {\n * console.log(\"Command failed:\", error.cause)\n * return Effect.succeed(1) // Exit code 1\n * }\n * return Effect.succeed(0)\n * }\n * ```\n *\n * @category models\n * @since 4.0.0\n */\nexport class UserError extends /*#__PURE__*/Schema.ErrorClass(`${TypeId}/UserError`)({\n _tag: /*#__PURE__*/Schema.tag(\"UserError\"),\n cause: Schema.Defect\n}) {\n /**\n * Marks this value as a user handler error for runtime guards.\n *\n * @since 4.0.0\n */\n [TypeId] = TypeId;\n}\n/**\n * Schema for concrete CLI errors that can be reported together with help output.\n *\n * **Details**\n *\n * This excludes `ShowHelp` itself, allowing parse and validation errors to be\n * stored in `ShowHelp.errors` without nesting another help-control value.\n *\n * @category models\n * @since 4.0.0\n */\nexport const NonShowHelpErrors = /*#__PURE__*/Schema.Union([UnrecognizedOption, DuplicateOption, MissingOption, MissingArgument, InvalidValue, UnknownSubcommand, UserError]);\n/**\n * Error data requesting CLI help rendering for a command path.\n *\n * **Details**\n *\n * It is used for explicit help requests and for parse or validation failures\n * that should be shown with help text. When `errors` is non-empty, the runtime\n * exit code is `1`; otherwise it is `0`.\n *\n * @category models\n * @since 4.0.0\n */\nexport class ShowHelp extends /*#__PURE__*/Schema.ErrorClass(`${TypeId}/ShowHelp`)({\n _tag: /*#__PURE__*/Schema.tag(\"ShowHelp\"),\n commandPath: /*#__PURE__*/Schema.Array(Schema.String),\n errors: /*#__PURE__*/Schema.Array(NonShowHelpErrors)\n}) {\n [TypeId] = TypeId;\n [Runtime.errorExitCode] = this.errors.length ? 1 : 0;\n [Runtime.errorReported] = false;\n get message() {\n return \"Help requested\";\n }\n}\n//# sourceMappingURL=CliError.js.map",
82
82
  "/**\n * The `Primitive` module defines the lowest-level value parsers used by the\n * unstable CLI package. A `Primitive<A>` takes one raw command-line string and\n * returns an `Effect` that either produces an `A` or fails with a parser\n * message.\n *\n * `Argument` and `Flag` build on primitives to add names, aliases, defaults,\n * prompts, config fallbacks, repetition, and help metadata. Use this module\n * directly when defining a custom CLI input shape or when composing parser\n * behavior before it becomes an argument or flag.\n *\n * **Mental model**\n *\n * - A primitive parses one value token; it does not know whether the token came\n * from a positional argument or a named flag.\n * - Parsing may be pure, such as {@link string}, {@link integer},\n * {@link boolean}, or {@link choice}, or effectful, such as {@link path},\n * {@link fileText}, {@link fileParse}, and {@link fileSchema}.\n * - Failure is represented as a string message so higher-level CLI parsers can\n * attach it to generated usage and help output.\n * - File and path primitives require filesystem and path services through the\n * parsing effect environment.\n *\n * **Common tasks**\n *\n * - Parse scalar values with {@link string}, {@link integer}, {@link float},\n * {@link boolean}, and {@link date}.\n * - Restrict input to named alternatives with {@link choice}.\n * - Resolve and validate filesystem paths with {@link path}.\n * - Read raw file content with {@link fileText}, parse structured files with\n * {@link fileParse}, or decode parsed content with {@link fileSchema}.\n * - Hide sensitive input with {@link redacted}.\n * - Parse `key=value` entries with {@link keyValuePair}.\n *\n * **Example** (Parsing raw CLI values)\n *\n * ```ts\n * import { Effect } from \"effect\"\n * import { Primitive } from \"effect/unstable/cli\"\n *\n * const parseValues = Effect.gen(function*() {\n * const port = yield* Primitive.integer.parse(\"8080\")\n * const mode = yield* Primitive.choice([\n * [\"dev\", \"development\"],\n * [\"prod\", \"production\"]\n * ] as const).parse(\"prod\")\n *\n * return { port, mode }\n * })\n * ```\n *\n * **Gotchas**\n *\n * - `choice` matches input strings exactly; it does not normalize casing or\n * trim whitespace.\n * - `fileParse` selects a parser from `options.format` or the file extension;\n * unsupported formats fail before schema decoding.\n * - {@link none} is a sentinel parser that always fails. It is used by higher\n * layers for parameters that must reject attached values.\n *\n * @since 4.0.0\n */\nimport * as Ini from \"ini\";\nimport * as Toml from \"toml\";\nimport * as Yaml from \"yaml\";\nimport * as Config from \"../../Config.js\";\nimport * as Effect from \"../../Effect.js\";\nimport * as FileSystem from \"../../FileSystem.js\";\nimport { format } from \"../../Formatter.js\";\nimport { identity } from \"../../Function.js\";\nimport * as Path from \"../../Path.js\";\nimport * as Redacted from \"../../Redacted.js\";\nimport * as Schema from \"../../Schema.js\";\nconst TypeId = \"~effect/cli/Primitive\";\nconst Proto = {\n [TypeId]: {\n _A: identity\n }\n};\n/** @internal */\nexport const isTrueValue = /*#__PURE__*/Schema.is(Config.TrueValues);\n/** @internal */\nexport const isFalseValue = /*#__PURE__*/Schema.is(Config.FalseValues);\n/** @internal */\nexport const isBoolean = p => p._tag === \"Boolean\";\nconst makePrimitive = (tag, parse) => Object.assign(Object.create(Proto), {\n _tag: tag,\n parse\n});\nconst makeSchemaPrimitive = (tag, schema) => {\n const toCodecStringTree = Schema.toCodecStringTree(schema);\n const decode = Schema.decodeUnknownEffect(toCodecStringTree);\n return makePrimitive(tag, value => Effect.mapError(decode(value), error => error.message));\n};\n/**\n * Creates a primitive that parses boolean values from string input.\n *\n * **Details**\n *\n * Recognizes various forms of true/false values:\n * - True values: \"true\", \"1\", \"y\", \"yes\", \"on\"\n * - False values: \"false\", \"0\", \"n\", \"no\", \"off\"\n *\n * **Example** (Parsing boolean values)\n *\n * ```ts\n * import { Effect } from \"effect\"\n * import { Primitive } from \"effect/unstable/cli\"\n *\n * const parseBoolean = Effect.gen(function*() {\n * const result1 = yield* Primitive.boolean.parse(\"true\")\n * console.log(result1) // true\n *\n * const result2 = yield* Primitive.boolean.parse(\"yes\")\n * console.log(result2) // true\n *\n * const result3 = yield* Primitive.boolean.parse(\"false\")\n * console.log(result3) // false\n *\n * const result4 = yield* Primitive.boolean.parse(\"0\")\n * console.log(result4) // false\n * })\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const boolean = /*#__PURE__*/makeSchemaPrimitive(\"Boolean\", Config.Boolean);\n/**\n * Creates a primitive that parses floating-point numbers from string input.\n *\n * **Example** (Parsing floating-point numbers)\n *\n * ```ts\n * import { Effect } from \"effect\"\n * import { Primitive } from \"effect/unstable/cli\"\n *\n * const parseFloat = Effect.gen(function*() {\n * const result1 = yield* Primitive.float.parse(\"3.14\")\n * console.log(result1) // 3.14\n *\n * const result2 = yield* Primitive.float.parse(\"-42.5\")\n * console.log(result2) // -42.5\n *\n * const result3 = yield* Primitive.float.parse(\"0\")\n * console.log(result3) // 0\n * })\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const float = /*#__PURE__*/makeSchemaPrimitive(\"Float\", Schema.Finite);\n/**\n * Creates a primitive that parses integer numbers from string input.\n *\n * **Example** (Parsing integer values)\n *\n * ```ts\n * import { Effect } from \"effect\"\n * import { Primitive } from \"effect/unstable/cli\"\n *\n * const parseInteger = Effect.gen(function*() {\n * const result1 = yield* Primitive.integer.parse(\"42\")\n * console.log(result1) // 42\n *\n * const result2 = yield* Primitive.integer.parse(\"-123\")\n * console.log(result2) // -123\n *\n * const result3 = yield* Primitive.integer.parse(\"0\")\n * console.log(result3) // 0\n * })\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const integer = /*#__PURE__*/makeSchemaPrimitive(\"Integer\", Schema.Int);\n/**\n * Creates a primitive that parses Date objects from string input.\n *\n * **Example** (Parsing date values)\n *\n * ```ts\n * import { Effect } from \"effect\"\n * import { Primitive } from \"effect/unstable/cli\"\n *\n * const parseDate = Effect.gen(function*() {\n * const result1 = yield* Primitive.date.parse(\"2023-12-25\")\n * console.log(result1) // Date object for December 25, 2023\n *\n * const result2 = yield* Primitive.date.parse(\"2023-12-25T10:30:00Z\")\n * console.log(result2) // Date object with time\n *\n * const result3 = yield* Primitive.date.parse(\"Dec 25, 2023\")\n * console.log(result3) // Date object parsed from natural format\n * })\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const date = /*#__PURE__*/makeSchemaPrimitive(\"Date\", Schema.DateValid);\n/**\n * Creates a primitive that accepts any string value without validation.\n *\n * **Example** (Parsing string values)\n *\n * ```ts\n * import { Effect } from \"effect\"\n * import { Primitive } from \"effect/unstable/cli\"\n *\n * const parseString = Effect.gen(function*() {\n * const result1 = yield* Primitive.string.parse(\"hello world\")\n * console.log(result1) // \"hello world\"\n *\n * const result2 = yield* Primitive.string.parse(\"\")\n * console.log(result2) // \"\"\n *\n * const result3 = yield* Primitive.string.parse(\"123\")\n * console.log(result3) // \"123\"\n * })\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const string = /*#__PURE__*/makePrimitive(\"String\", value => Effect.succeed(value));\n/**\n * Creates a primitive that accepts only specific choice values mapped to custom types.\n *\n * **Example** (Parsing choices)\n *\n * ```ts\n * import { Effect } from \"effect\"\n * import { Primitive } from \"effect/unstable/cli\"\n *\n * type LogLevel = \"debug\" | \"info\" | \"warn\" | \"error\"\n *\n * const logLevelPrimitive = Primitive.choice<LogLevel>([\n * [\"debug\", \"debug\"],\n * [\"info\", \"info\"],\n * [\"warn\", \"warn\"],\n * [\"error\", \"error\"]\n * ])\n *\n * const parseLogLevel = Effect.gen(function*() {\n * const result1 = yield* logLevelPrimitive.parse(\"info\")\n * console.log(result1) // \"info\"\n *\n * const result2 = yield* logLevelPrimitive.parse(\"debug\")\n * console.log(result2) // \"debug\"\n * })\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const choice = choices => {\n const choiceMap = new Map(choices);\n const validChoices = choices.map(([key]) => format(key)).join(\" | \");\n const primitive = makePrimitive(\"Choice\", value => {\n if (choiceMap.has(value)) {\n return Effect.succeed(choiceMap.get(value));\n }\n return Effect.fail(`Expected ${validChoices}, got ${format(value)}`);\n });\n return Object.assign(primitive, {\n choiceKeys: choices.map(([key]) => key)\n });\n};\n/**\n * Creates a primitive that validates and resolves file system paths.\n *\n * **Example** (Parsing file system paths)\n *\n * ```ts\n * import { Effect } from \"effect\"\n * import { Primitive } from \"effect/unstable/cli\"\n *\n * const program = Effect.gen(function*() {\n * // Parse a file path that must exist\n * const filePrimitive = Primitive.path(\"file\", true)\n * const filePath = yield* filePrimitive.parse(\"./package.json\")\n * console.log(filePath) // Absolute path to package.json\n *\n * // Parse a directory path\n * const dirPrimitive = Primitive.path(\"directory\", false)\n * const dirPath = yield* dirPrimitive.parse(\"./src\")\n * console.log(dirPath) // Absolute path to src directory\n *\n * // Parse any path type\n * const anyPrimitive = Primitive.path(\"either\", false)\n * const anyPath = yield* anyPrimitive.parse(\"./some/path\")\n * console.log(anyPath) // Absolute path\n * })\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const path = (pathType, mustExist) => makePrimitive(\"Path\", Effect.fnUntraced(function* (value) {\n const fs = yield* FileSystem.FileSystem;\n const path = yield* Path.Path;\n // Resolve the path to absolute\n const absolutePath = path.isAbsolute(value) ? value : path.resolve(value);\n // Check if path exists\n const exists = yield* Effect.mapError(fs.exists(absolutePath), error => `Failed to check path existence: ${error.message}`);\n // Validate existence requirements\n if (mustExist === true && !exists) {\n return yield* Effect.fail(`Path does not exist: ${absolutePath}`);\n }\n // Validate path type if it exists\n if (exists && pathType !== \"either\") {\n const stat = yield* Effect.mapError(fs.stat(absolutePath), error => `Failed to stat path: ${error.message}`);\n if (pathType === \"file\" && stat.type !== \"File\") {\n return yield* Effect.fail(`Path is not a file: ${absolutePath}`);\n }\n if (pathType === \"directory\" && stat.type !== \"Directory\") {\n return yield* Effect.fail(`Path is not a directory: ${absolutePath}`);\n }\n }\n return absolutePath;\n}));\n/**\n * Creates a primitive that wraps string input in `Redacted`.\n *\n * **Details**\n *\n * The wrapped value is hidden when formatted or inspected, while the original\n * string remains available through the `Redacted` API when explicitly needed.\n *\n * **Example** (Parsing redacted values)\n *\n * ```ts\n * import { Effect, Redacted } from \"effect\"\n * import { Primitive } from \"effect/unstable/cli\"\n *\n * const parseRedacted = Effect.gen(function*() {\n * const result = yield* Primitive.redacted.parse(\"secret-password\")\n * console.log(Redacted.value(result)) // \"secret-password\"\n * console.log(String(result)) // \"<redacted>\"\n * })\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const redacted = /*#__PURE__*/makePrimitive(\"Redacted\", value => Effect.succeed(Redacted.make(value)));\n/**\n * Creates a primitive that reads and returns the contents of a file as a string.\n *\n * **Example** (Reading file text)\n *\n * ```ts\n * import { Effect, Schema } from \"effect\"\n * import { Primitive } from \"effect/unstable/cli\"\n *\n * const ConfigSchema = Schema.Struct({\n * name: Schema.String,\n * version: Schema.String,\n * port: Schema.Number\n * })\n * const decodeConfig = Schema.decodeUnknownEffect(\n * Schema.fromJsonString(ConfigSchema)\n * )\n *\n * const readConfigFile = Effect.gen(function*() {\n * const content = yield* Primitive.fileText.parse(\"./config.json\")\n * console.log(content) // {\"name\":\"my-app\",\"version\":\"1.0.0\",\"port\":3000}\n *\n * const config = yield* decodeConfig(content)\n * console.log(config) // { name: \"my-app\", version: \"1.0.0\", port: 3000 }\n * return config\n * })\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const fileText = /*#__PURE__*/makePrimitive(\"FileText\", /*#__PURE__*/Effect.fnUntraced(function* (filePath) {\n const fs = yield* FileSystem.FileSystem;\n const path = yield* Path.Path;\n // Resolve to absolute path\n const absolutePath = path.isAbsolute(filePath) ? filePath : path.resolve(filePath);\n // Check if file exists\n const exists = yield* Effect.mapError(fs.exists(absolutePath), error => `Failed to check file existence: ${error.message}`);\n if (!exists) {\n return yield* Effect.fail(`File does not exist: ${absolutePath}`);\n }\n // Check if it's actually a file\n const stat = yield* Effect.mapError(fs.stat(absolutePath), error => `Failed to stat file: ${error.message}`);\n if (stat.type !== \"File\") {\n return yield* Effect.fail(`Path is not a file: ${absolutePath}`);\n }\n // Read file content\n const content = yield* Effect.mapError(fs.readFileString(absolutePath), error => `Failed to read file: ${error.message}`);\n return content;\n}));\nconst fileParsers = {\n ini: content => Ini.parse(content),\n json: content => JSON.parse(content),\n toml: content => Toml.parse(content),\n yml: content => Yaml.parse(content),\n yaml: content => Yaml.parse(content)\n};\n/**\n * Creates a primitive that reads a file and parses its content as structured\n * data.\n *\n * **Details**\n *\n * The parser is selected from `options.format` when provided, otherwise from\n * the file extension. Supported formats include INI, JSON, TOML, YAML, and YML.\n *\n * **Example** (Parsing file content)\n *\n * ```ts\n * import { Effect } from \"effect\"\n * import { Primitive } from \"effect/unstable/cli\"\n *\n * const tomlFilePrimitive = Primitive.fileParse({ format: \"toml\" })\n *\n * const loadConfig = Effect.gen(function*() {\n * const config = yield* tomlFilePrimitive.parse(\"./config.toml\")\n * console.log(config) // { name: \"my-app\", version: \"1.0.0\", port: 3000 }\n * return config\n * })\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const fileParse = options => {\n return makePrimitive(\"FileParse\", Effect.fnUntraced(function* (filePath) {\n const fileFormat = options?.format ?? filePath.split(\".\").pop();\n const parser = fileParsers[fileFormat];\n if (parser === undefined) {\n return yield* Effect.fail(`Unsupported file format: ${fileFormat}`);\n }\n const content = yield* fileText.parse(filePath);\n return yield* Effect.try({\n try: () => parser(content),\n catch: error => `Failed to parse '.${fileFormat}' file content: ${error}`\n });\n }));\n};\n/**\n * Reads and parses file content using the specified schema.\n *\n * **Example** (Parsing file content with a schema)\n *\n * ```ts\n * import { Effect, Schema } from \"effect\"\n * import { Primitive } from \"effect/unstable/cli\"\n *\n * const ConfigSchema = Schema.Struct({\n * name: Schema.String,\n * version: Schema.String,\n * port: Schema.Number\n * })\n *\n * const jsonConfigPrimitive = Primitive.fileSchema(ConfigSchema, {\n * format: \"json\"\n * })\n *\n * const loadConfig = Effect.gen(function*() {\n * const config = yield* jsonConfigPrimitive.parse(\"./config.json\")\n * console.log(config) // { name: \"my-app\", version: \"1.0.0\", port: 3000 }\n * return config\n * })\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const fileSchema = (schema, options) => {\n const decode = Schema.decodeUnknownEffect(schema);\n return makePrimitive(\"FileSchema\", Effect.fnUntraced(function* (filePath) {\n const content = yield* fileParse(options).parse(filePath);\n return yield* Effect.mapError(decode(content), error => options?.errorFormatter?.(error.issue) ?? error.toString());\n }));\n};\n/**\n * Parses a single `key=value` pair into a record object.\n *\n * **Example** (Parsing key-value pairs)\n *\n * ```ts\n * import { Effect } from \"effect\"\n * import { Primitive } from \"effect/unstable/cli\"\n *\n * const parseKeyValue = Effect.gen(function*() {\n * const result1 = yield* Primitive.keyValuePair.parse(\"name=john\")\n * console.log(result1) // { name: \"john\" }\n *\n * const result2 = yield* Primitive.keyValuePair.parse(\"port=3000\")\n * console.log(result2) // { port: \"3000\" }\n *\n * const result3 = yield* Primitive.keyValuePair.parse(\"debug=true\")\n * console.log(result3) // { debug: \"true\" }\n * })\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const keyValuePair = /*#__PURE__*/makePrimitive(\"KeyValuePair\", /*#__PURE__*/Effect.fnUntraced(function* (value) {\n const parts = value.split(\"=\");\n if (parts.length !== 2) {\n return yield* Effect.fail(`Invalid key=value format. Expected format: key=value, got: ${value}`);\n }\n const [key, val] = parts;\n if (!key || !val) {\n return yield* Effect.fail(`Invalid key=value format. Both key and value must be non-empty. Got: ${value}`);\n }\n return {\n [key]: val\n };\n}));\n/**\n * Creates a sentinel primitive that always fails to parse a value.\n *\n * **When to use**\n *\n * Use when you need flags that don't accept values.\n *\n * **Example** (Rejecting option values)\n *\n * ```ts\n * import { Effect } from \"effect\"\n * import { Primitive } from \"effect/unstable/cli\"\n *\n * const program = Effect.gen(function*() {\n * // This will always fail - useful for boolean flags\n * return yield* Primitive.none.parse(\"any-value\")\n * })\n *\n * // The above effect will fail with \"This option does not accept values\"\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const none = /*#__PURE__*/makePrimitive(\"None\", () => Effect.fail(\"This option does not accept values\"));\n/**\n * Gets a human-readable type name for a primitive.\n *\n * **When to use**\n *\n * Use when you need generating help documentation.\n *\n * **Example** (Getting primitive type names)\n *\n * ```ts\n * import { Primitive } from \"effect/unstable/cli\"\n *\n * console.log(Primitive.getTypeName(Primitive.string)) // \"string\"\n * console.log(Primitive.getTypeName(Primitive.integer)) // \"integer\"\n * console.log(Primitive.getTypeName(Primitive.boolean)) // \"boolean\"\n * console.log(Primitive.getTypeName(Primitive.date)) // \"date\"\n * console.log(Primitive.getTypeName(Primitive.keyValuePair)) // \"key=value\"\n *\n * const logLevelChoice = Primitive.choice([\n * [\"debug\", \"debug\"],\n * [\"info\", \"info\"]\n * ])\n * console.log(Primitive.getTypeName(logLevelChoice)) // \"choice\"\n * ```\n *\n * @category getters\n * @since 4.0.0\n */\nexport const getTypeName = primitive => {\n switch (primitive._tag) {\n case \"Boolean\":\n return \"boolean\";\n case \"String\":\n return \"string\";\n case \"Integer\":\n return \"integer\";\n case \"Float\":\n return \"number\";\n case \"Date\":\n return \"date\";\n case \"Path\":\n return \"path\";\n case \"Choice\":\n return \"choice\";\n case \"Redacted\":\n return \"string\";\n case \"FileText\":\n return \"file\";\n case \"FileParse\":\n return \"file\";\n case \"FileSchema\":\n return \"file\";\n case \"KeyValuePair\":\n return \"key=value\";\n case \"None\":\n return \"none\";\n default:\n return \"value\";\n }\n};\n/** @internal */\nexport const getChoiceKeys = primitive => primitive._tag === \"Choice\" ? primitive.choiceKeys : undefined;\n//# sourceMappingURL=Primitive.js.map",
83
83
  "'use strict';\n\nvar composer = require('./compose/composer.js');\nvar Document = require('./doc/Document.js');\nvar Schema = require('./schema/Schema.js');\nvar errors = require('./errors.js');\nvar Alias = require('./nodes/Alias.js');\nvar identity = require('./nodes/identity.js');\nvar Pair = require('./nodes/Pair.js');\nvar Scalar = require('./nodes/Scalar.js');\nvar YAMLMap = require('./nodes/YAMLMap.js');\nvar YAMLSeq = require('./nodes/YAMLSeq.js');\nvar cst = require('./parse/cst.js');\nvar lexer = require('./parse/lexer.js');\nvar lineCounter = require('./parse/line-counter.js');\nvar parser = require('./parse/parser.js');\nvar publicApi = require('./public-api.js');\nvar visit = require('./visit.js');\n\n\n\nexports.Composer = composer.Composer;\nexports.Document = Document.Document;\nexports.Schema = Schema.Schema;\nexports.YAMLError = errors.YAMLError;\nexports.YAMLParseError = errors.YAMLParseError;\nexports.YAMLWarning = errors.YAMLWarning;\nexports.Alias = Alias.Alias;\nexports.isAlias = identity.isAlias;\nexports.isCollection = identity.isCollection;\nexports.isDocument = identity.isDocument;\nexports.isMap = identity.isMap;\nexports.isNode = identity.isNode;\nexports.isPair = identity.isPair;\nexports.isScalar = identity.isScalar;\nexports.isSeq = identity.isSeq;\nexports.Pair = Pair.Pair;\nexports.Scalar = Scalar.Scalar;\nexports.YAMLMap = YAMLMap.YAMLMap;\nexports.YAMLSeq = YAMLSeq.YAMLSeq;\nexports.CST = cst;\nexports.Lexer = lexer.Lexer;\nexports.LineCounter = lineCounter.LineCounter;\nexports.Parser = parser.Parser;\nexports.parse = publicApi.parse;\nexports.parseAllDocuments = publicApi.parseAllDocuments;\nexports.parseDocument = publicApi.parseDocument;\nexports.stringify = publicApi.stringify;\nexports.visit = visit.visit;\nexports.visitAsync = visit.visitAsync;\n",
84
- "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",
85
84
  "/**\n * Internal ANSI escape sequence helpers used by the unstable CLI rendering\n * implementation. This module centralizes the control codes for text styling,\n * cursor movement, line erasing, and terminal notifications so renderers can\n * compose terminal output without scattering raw escape sequences throughout\n * the CLI internals.\n *\n * The helpers deliberately work with plain strings because terminal rendering\n * is sensitive to ordering: style codes must be reset after annotated text,\n * cursor operations must account for one-based terminal coordinates, and line\n * clearing usually needs to preserve the cursor position expected by the next\n * frame.\n */\nconst ESC = \"\\x1B[\";\nconst BEL = \"\\x07\";\nconst SEP = \";\";\n/** @internal */\nexport const reset = `${ESC}0m`;\n/** @internal */\nexport const bold = `${ESC}1m`;\n/** @internal */\nexport const italicized = `${ESC}3m`;\n/** @internal */\nexport const underlined = `${ESC}4m`;\n/** @internal */\nexport const strikethrough = `${ESC}9m`;\n/** @internal */\nexport const cursorShow = `${ESC}?25h`;\n/** @internal */\nexport const cursorHide = `${ESC}?25l`;\n/** @internal */\nexport const cursorLeft = `${ESC}G`;\n/** @internal */\nexport const cursorSavePosition = `${ESC}s`;\n/** @internal */\nexport const cursorRestorePosition = `${ESC}u`;\n/** @internal */\nexport const eraseLine = `${ESC}2K`;\n/** @internal */\nexport const beep = BEL;\n/** @internal */\nexport const black = `${ESC}30m`;\n/** @internal */\nexport const red = `${ESC}31m`;\n/** @internal */\nexport const green = `${ESC}32m`;\n/** @internal */\nexport const yellow = `${ESC}33m`;\n/** @internal */\nexport const blue = `${ESC}34m`;\n/** @internal */\nexport const magenta = `${ESC}35m`;\n/** @internal */\nexport const cyan = `${ESC}36m`;\n/** @internal */\nexport const white = `${ESC}37m`;\n/** @internal */\nexport const blackBright = `${ESC}90m`;\n/** @internal */\nexport const redBright = `${ESC}91m`;\n/** @internal */\nexport const greenBright = `${ESC}92m`;\n/** @internal */\nexport const yellowBright = `${ESC}93m`;\n/** @internal */\nexport const blueBright = `${ESC}94m`;\n/** @internal */\nexport const magentaBright = `${ESC}95m`;\n/** @internal */\nexport const cyanBright = `${ESC}96m`;\n/** @internal */\nexport const whiteBright = `${ESC}97m`;\nexport const annotate = (text, ...styles) => {\n const flat = styles.flat();\n return `${flat.join(\"\")}${text}${reset}`;\n};\nexport const combine = (...styles) => styles;\n/** @internal */\nexport const cursorTo = (column, row) => {\n if (row === undefined) {\n return `\\x1b${Math.max(column + 1, 0)} G`;\n }\n return `\\x1b${row + 1}${SEP}${Math.max(column + 1, 0)} H`;\n};\n/** @internal */\nexport const cursorDown = (lines = 1) => {\n return `${ESC}${lines}B`;\n};\n/** @internal */\nexport const cursorMove = (column, row = 0) => {\n let command = \"\";\n if (row < 0) {\n command += `${ESC}${-row}A`;\n }\n if (row > 0) {\n command += `${ESC}${row}B`;\n }\n if (column > 0) {\n command += `${ESC}${column}C`;\n }\n if (column < 0) {\n command += `${ESC}${-column}D`;\n }\n return command;\n};\n/** @internal */\nexport const eraseLines = rows => {\n let command = \"\";\n for (let i = 0; i < rows; i++) {\n command += `${ESC}2K` + (i < rows - 1 ? `${ESC}1A` : \"\");\n }\n if (rows > 0) {\n command += `${ESC}G`;\n }\n return command;\n};\n//# sourceMappingURL=ansi.js.map",
86
85
  "/**\n * The `Prompt` module provides composable, effectful building blocks for\n * interactive command-line questions. A `Prompt<A>` describes terminal UI that\n * renders frames, reads keyboard input, validates responses, and eventually\n * produces a value of type `A`.\n *\n * **Common tasks**\n *\n * - Ask for text, password, hidden, list, confirm, toggle, number, or date input\n * - Let users choose from select, autocomplete, multi-select, and file prompts\n * - Combine prompts with {@link all}, {@link map}, and {@link flatMap}\n * - Build specialized prompts with {@link custom}\n * - Run a prompt against the current terminal with {@link run}\n *\n * **Gotchas**\n *\n * - Prompts require terminal services and may fail with `Terminal.QuitError`\n * when input ends or the prompt is quit\n * - Rendering is frame-based: custom prompts must return ANSI output from\n * `render` and matching ANSI clearing output from `clear`\n * - Choices and file lists are paged by `maxPerPage`, so keyboard navigation\n * and filtering should account for hidden off-page entries\n * - `password` and `hidden` return `Redacted` values; unwrap them only at the\n * boundary where the secret is needed\n *\n * @since 4.0.0\n */\nimport * as Arr from \"../../Array.js\";\nimport * as Data from \"../../Data.js\";\nimport * as Effect from \"../../Effect.js\";\nimport * as Effectable from \"../../Effectable.js\";\nimport * as FileSystem from \"../../FileSystem.js\";\nimport { dual, pipe } from \"../../Function.js\";\nimport * as EffectNumber from \"../../Number.js\";\nimport * as Option from \"../../Option.js\";\nimport * as Path from \"../../Path.js\";\nimport * as Predicate from \"../../Predicate.js\";\nimport * as Queue from \"../../Queue.js\";\nimport * as Redacted from \"../../Redacted.js\";\nimport * as Terminal from \"../../Terminal.js\";\nimport * as Ansi from \"./internal/ansi.js\";\nconst TypeId = \"~effect/cli/Prompt\";\n/**\n * Returns `true` if the provided value is a `Prompt`.\n *\n * @category guards\n * @since 4.0.0\n */\nexport const isPrompt = u => Predicate.hasProperty(u, TypeId);\nconst defaultFigures = {\n arrowUp: \"↑\",\n arrowDown: \"↓\",\n arrowLeft: \"←\",\n arrowRight: \"→\",\n radioOn: \"◉\",\n radioOff: \"◯\",\n checkboxOn: \"☒\",\n checkboxOff: \"☐\",\n tick: \"✔\",\n cross: \"✖\",\n ellipsis: \"…\",\n pointerSmall: \"›\",\n line: \"─\",\n pointer: \"❯\"\n};\nconst windowsFigures = {\n arrowUp: defaultFigures.arrowUp,\n arrowDown: defaultFigures.arrowDown,\n arrowLeft: defaultFigures.arrowLeft,\n arrowRight: defaultFigures.arrowRight,\n radioOn: \"(*)\",\n radioOff: \"( )\",\n checkboxOn: \"[*]\",\n checkboxOff: \"[ ]\",\n tick: \"√\",\n cross: \"×\",\n ellipsis: \"...\",\n pointerSmall: \"»\",\n line: \"─\",\n pointer: \">\"\n};\n/** @internal */\nexport const platformFigures = /*#__PURE__*/Effect.map(/*#__PURE__*/Effect.sync(() => process.platform === \"win32\"), isWindows => isWindows ? windowsFigures : defaultFigures);\n/**\n * Runs all the provided prompts in sequence respecting the structure provided\n * in input.\n *\n * **Details**\n *\n * Supports either a tuple / iterable of prompts or a record / struct of prompts\n * as an argument.\n *\n * **Example** (Collecting prompt results)\n *\n * ```ts\n * import { Effect } from \"effect\"\n * import { Prompt } from \"effect/unstable/cli\"\n *\n * const username = Prompt.text({\n * message: \"Enter your username: \"\n * })\n *\n * const password = Prompt.password({\n * message: \"Enter your password: \",\n * validate: (value) =>\n * value.length === 0\n * ? Effect.fail(\"Password cannot be empty\")\n * : Effect.succeed(value)\n * })\n *\n * const allWithTuple = Prompt.all([username, password])\n *\n * const allWithRecord = Prompt.all({ username, password })\n * ```\n *\n * @category collecting & elements\n * @since 4.0.0\n */\nexport const all = function () {\n if (arguments.length === 1) {\n if (isPrompt(arguments[0])) {\n return map(arguments[0], x => [x]);\n } else if (Array.isArray(arguments[0])) {\n return allTupled(arguments[0]);\n } else {\n const entries = Object.entries(arguments[0]);\n let result = map(entries[0][1], value => ({\n [entries[0][0]]: value\n }));\n if (entries.length === 1) {\n return result;\n }\n const rest = entries.slice(1);\n for (const [key, prompt] of rest) {\n result = result.pipe(flatMap(record => prompt.pipe(map(value => ({\n ...record,\n [key]: value\n })))));\n }\n return result;\n }\n }\n return allTupled(arguments[0]);\n};\nconst annotateLine = line => Ansi.annotate(line, Ansi.bold);\nconst annotateErrorLine = line => Ansi.annotate(line, Ansi.combine(Ansi.italicized, Ansi.red));\n/**\n * Creates a confirmation prompt that asks the user to choose a boolean yes/no\n * value.\n *\n * **When to use**\n *\n * Use to ask for a yes/no answer that can be submitted directly.\n *\n * **Details**\n *\n * `initial` defaults to `false`. Enter submits the current default, yes-style\n * input submits `true`, no-style input submits `false`, and other input beeps.\n *\n * @see {@link toggle} for an interactive switch-before-submit boolean prompt\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const confirm = options => {\n const opts = {\n initial: false,\n ...options,\n label: {\n confirm: \"yes\",\n deny: \"no\",\n ...options.label\n },\n placeholder: {\n defaultConfirm: \"(Y/n)\",\n defaultDeny: \"(y/N)\",\n ...options.placeholder\n }\n };\n const initialState = {\n value: opts.initial\n };\n return custom(initialState, {\n render: handleConfirmRender(opts),\n process: input => handleConfirmProcess(input, opts.initial),\n clear: handleConfirmClear(opts)\n });\n};\n/**\n * Creates a custom `Prompt` from the specified initial state and handlers.\n *\n * **Details**\n *\n * The initial state can either be a pure value or an `Effect`. This is\n * particularly useful when the initial state of the `Prompt` must be computed\n * by performing an effectful computation, such as reading data from the file\n * system. A `Prompt` runs as a render loop: `render` returns ANSI output for\n * the current frame, the `Terminal` obtains user input, `process` returns the\n * next prompt action, and `clear` returns ANSI output used to clear the previous\n * frame.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const custom = (initialState, handlers) => {\n const op = Object.create(proto);\n op._tag = \"Loop\";\n op.initialState = initialState;\n op.render = handlers.render;\n op.process = handlers.process;\n op.clear = handlers.clear;\n return op;\n};\n/**\n * Creates a date prompt that lets the user edit a formatted date value and\n * validates the final `Date` before submission.\n *\n * **Details**\n *\n * `initial` defaults to the current `Date`, `dateMask` defaults to\n * `YYYY-MM-DD HH:mm:ss`, mask parsing creates editable date parts plus literal\n * tokens, `locales` customizes month and weekday labels, and `validate` runs on\n * submission.\n *\n * **Gotchas**\n *\n * A supplied `initial` `Date` is edited in place during prompt interaction.\n * Date edits use JavaScript `Date` setters, so out-of-range typed values can\n * normalize before validation. If the prompt is meant to be editable,\n * `dateMask` should contain at least one editable date token.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const date = options => {\n const opts = {\n initial: new Date(),\n dateMask: \"YYYY-MM-DD HH:mm:ss\",\n validate: Effect.succeed,\n ...options,\n locales: {\n ...defaultLocales,\n ...options.locales\n }\n };\n const dateParts = makeDateParts(opts.dateMask, opts.initial, opts.locales);\n const initialCursorPosition = dateParts.findIndex(part => !part.isToken());\n const initialState = {\n dateParts,\n typed: \"\",\n cursor: initialCursorPosition,\n value: opts.initial,\n error: Option.none()\n };\n return custom(initialState, {\n render: handleDateRender(opts),\n process: handleDateProcess(opts),\n clear: handleDateClear(opts)\n });\n};\n/**\n * Creates a file-system selection prompt and returns the selected path.\n *\n * **Details**\n *\n * The prompt can be configured to select files, directories, or either path\n * type.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const file = (options = {}) => {\n const opts = {\n type: options.type ?? \"file\",\n message: options.message ?? `Choose a file`,\n startingPath: Option.fromUndefinedOr(options.startingPath),\n default: Option.fromUndefinedOr(options.default),\n maxPerPage: options.maxPerPage ?? 10,\n filter: options.filter ?? (() => Effect.succeed(true))\n };\n const initialState = Effect.gen(function* () {\n const currentPath = yield* resolveCurrentPath(Option.none(), opts);\n const path = yield* Path.Path;\n const defaultPath = Option.map(opts.default, defaultValue => path.resolve(currentPath, defaultValue));\n const initialPath = Option.match(defaultPath, {\n onNone: () => currentPath,\n onSome: defaultPath => path.dirname(defaultPath)\n });\n const files = yield* getFileList(initialPath, opts);\n const cursor = Option.match(defaultPath, {\n onNone: () => 0,\n onSome: defaultPath => {\n const index = files.indexOf(path.basename(defaultPath));\n return index === -1 ? 0 : index;\n }\n });\n const confirm = Confirm.Hide();\n return {\n cursor,\n files,\n allFiles: files,\n query: \"\",\n path: Option.map(defaultPath, path.dirname),\n confirm\n };\n });\n return custom(initialState, {\n render: handleFileRender(opts),\n process: handleFileProcess(opts),\n clear: handleFileClear(opts)\n });\n};\n/**\n * Composes prompts by using the output of this prompt to create the next prompt.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const flatMap = /*#__PURE__*/dual(2, (self, f) => {\n const op = Object.create(proto);\n op._tag = \"OnSuccess\";\n op.prompt = self;\n op.onSuccess = f;\n return op;\n});\n/**\n * Creates a floating-point number prompt.\n *\n * **Details**\n *\n * The prompt supports minimum and maximum bounds, keyboard step sizes, display\n * precision, and additional validation before submission.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const float = options => {\n const opts = {\n default: 0,\n min: Number.NEGATIVE_INFINITY,\n max: Number.POSITIVE_INFINITY,\n incrementBy: 1,\n decrementBy: 1,\n precision: 2,\n validate: n => {\n if (n < opts.min) {\n return Effect.fail(`${n} must be greater than or equal to ${opts.min}`);\n }\n if (n > opts.max) {\n return Effect.fail(`${n} must be less than or equal to ${opts.max}`);\n }\n return Effect.succeed(n);\n },\n ...options\n };\n const initialValue = options.default === undefined ? \"\" : `${opts.default}`;\n const initialState = {\n cursor: initialValue.length,\n value: initialValue,\n error: Option.none()\n };\n return custom(initialState, {\n render: handleRenderFloat(opts),\n process: handleProcessFloat(opts),\n clear: handleNumberClear(opts)\n });\n};\n/**\n * Creates a text prompt that does not echo typed input and returns the\n * submitted value wrapped in `Redacted`.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const hidden = options => basePrompt(options, \"hidden\").pipe(map(Redacted.make));\n/**\n * Creates an integer prompt.\n *\n * **Details**\n *\n * The prompt supports minimum and maximum bounds, keyboard step sizes, and\n * additional validation before submission.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const integer = options => {\n const opts = {\n default: 0,\n min: Number.NEGATIVE_INFINITY,\n max: Number.POSITIVE_INFINITY,\n incrementBy: 1,\n decrementBy: 1,\n validate: n => {\n if (n < opts.min) {\n return Effect.fail(`${n} must be greater than or equal to ${opts.min}`);\n }\n if (n > opts.max) {\n return Effect.fail(`${n} must be less than or equal to ${opts.max}`);\n }\n return Effect.succeed(n);\n },\n ...options\n };\n const initialValue = options.default === undefined ? \"\" : `${opts.default}`;\n const initialState = {\n cursor: initialValue.length,\n value: initialValue,\n error: Option.none()\n };\n return custom(initialState, {\n render: handleRenderInteger(opts),\n process: handleProcessInteger(opts),\n clear: handleNumberClear(opts)\n });\n};\n/**\n * Creates a text prompt that returns an array of strings by splitting the\n * submitted input on the configured delimiter.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const list = options => text(options).pipe(map(output => output.split(options.delimiter || \",\")));\n/**\n * Transforms the output value produced by a prompt.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const map = /*#__PURE__*/dual(2, (self, f) => flatMap(self, a => succeed(f(a))));\n/**\n * Creates a password prompt that masks typed input and returns the submitted\n * value wrapped in `Redacted`.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const password = options => basePrompt(options, \"password\").pipe(map(Redacted.make));\n/**\n * Runs a prompt by reading terminal input and rendering prompt frames until the\n * prompt submits a value.\n *\n * **Gotchas**\n *\n * The returned effect may fail with `Terminal.QuitError` if terminal input ends\n * or the prompt is quit.\n *\n * @category execution\n * @since 4.0.0\n */\nexport const run = /*#__PURE__*/Effect.fnUntraced(function* (self) {\n const terminal = yield* Terminal.Terminal;\n const input = yield* terminal.readInput;\n return yield* runWithInput(self, terminal, input);\n}, /*#__PURE__*/Effect.mapError(() => new Terminal.QuitError({})), Effect.scoped);\nconst getSelectInitialIndex = choices => {\n let initialIndex = 0;\n let seenSelected = -1;\n for (let i = 0; i < choices.length; i++) {\n const choice = choices[i];\n if (choice.selected === true) {\n if (seenSelected !== -1) {\n throw new Error(\"InvalidArgumentException: only a single choice can be selected by default for Prompt.select\");\n }\n seenSelected = i;\n }\n }\n if (seenSelected !== -1) {\n initialIndex = seenSelected;\n }\n return initialIndex;\n};\n/**\n * Creates a prompt that lets the user select a single value from a list of\n * choices.\n *\n * **Gotchas**\n *\n * At most one choice may be marked as selected by default.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const select = options => {\n const opts = {\n maxPerPage: 10,\n ...options\n };\n const initialIndex = getSelectInitialIndex(opts.choices);\n return custom(initialIndex, {\n render: handleSelectRender(opts),\n process: handleSelectProcess(opts),\n clear: handleSelectClear(opts)\n });\n};\n/**\n * Creates a prompt that lets users filter select choices by typing.\n *\n * **Example** (Filtering choices with autocomplete)\n *\n * ```ts\n * import { Prompt } from \"effect/unstable/cli\"\n *\n * const language = Prompt.autoComplete({\n * message: \"Choose a language\",\n * choices: [\n * { title: \"TypeScript\", value: \"ts\" },\n * { title: \"Rust\", value: \"rs\" },\n * { title: \"Kotlin\", value: \"kt\" }\n * ]\n * })\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const autoComplete = options => {\n const opts = {\n maxPerPage: 10,\n filterLabel: \"filter\",\n filterPlaceholder: \"type to filter\",\n emptyMessage: \"No matches\",\n ...options\n };\n const initialIndex = getSelectInitialIndex(opts.choices);\n const filtered = filterAutoCompleteChoices(opts.choices, \"\");\n const index = filtered.length === 0 ? 0 : filtered.includes(initialIndex) ? initialIndex : filtered[0];\n const initialState = {\n query: \"\",\n index,\n filtered\n };\n return custom(initialState, {\n render: handleAutoCompleteRender(opts),\n process: handleAutoCompleteProcess(opts),\n clear: handleAutoCompleteClear(opts)\n });\n};\n/**\n * Creates a prompt that lets the user select multiple choices and returns their\n * values as an array.\n *\n * **Details**\n *\n * The prompt supports default selected choices, bulk-selection commands, and\n * minimum or maximum selection counts.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const multiSelect = options => {\n const opts = {\n maxPerPage: 10,\n ...options\n };\n // Seed initial selection from choices marked as selected: true\n const initialSelected = new Set();\n for (let i = 0; i < opts.choices.length; i++) {\n const choice = opts.choices[i];\n if (choice.selected === true) {\n initialSelected.add(i);\n }\n }\n const initialState = {\n index: 0,\n selectedIndices: initialSelected,\n error: Option.none()\n };\n return custom(initialState, {\n render: handleMultiSelectRender(opts),\n process: handleMultiSelectProcess(opts),\n clear: handleMultiSelectClear(opts)\n });\n};\n/**\n * Creates a `Prompt` which immediately succeeds with the specified value.\n *\n * **Details**\n *\n * This prompt does not attempt to obtain user input or render anything to the\n * screen.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const succeed = value => {\n const op = Object.create(proto);\n op._tag = \"Succeed\";\n op.value = value;\n return op;\n};\n/**\n * Creates a text-entry prompt that echoes input and returns the submitted\n * string after validation.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const text = options => basePrompt(options, \"text\");\n/**\n * Creates a toggle prompt that lets the user switch between active and inactive\n * states and returns the selected boolean value.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const toggle = options => {\n const opts = {\n initial: false,\n active: \"on\",\n inactive: \"off\",\n ...options\n };\n return custom(opts.initial, {\n render: handleToggleRender(opts),\n process: handleToggleProcess,\n clear: () => handleToggleClear(opts)\n });\n};\nconst proto = {\n ... /*#__PURE__*/Effectable.Prototype({\n label: \"Prompt\",\n evaluate() {\n return run(this);\n }\n }),\n [TypeId]: {\n _Output: _ => _\n }\n};\nconst allTupled = arg => {\n if (arg.length === 0) {\n return succeed([]);\n }\n if (arg.length === 1) {\n return map(arg[0], x => [x]);\n }\n let result = map(arg[0], x => [x]);\n for (let i = 1; i < arg.length; i++) {\n const curr = arg[i];\n result = flatMap(result, tuple => map(curr, a => [...tuple, a]));\n }\n return result;\n};\nconst runWithInput = (prompt, terminal, input) => Effect.suspend(() => {\n const op = prompt;\n switch (op._tag) {\n case \"Loop\":\n {\n return runLoop(op, terminal, input);\n }\n case \"OnSuccess\":\n {\n return Effect.flatMap(runWithInput(op.prompt, terminal, input), a => runWithInput(op.onSuccess(a), terminal, input));\n }\n case \"Succeed\":\n {\n return Effect.succeed(op.value);\n }\n }\n});\nconst runLoop = /*#__PURE__*/Effect.fnUntraced(function* (loop, terminal, input) {\n let state = Effect.isEffect(loop.initialState) ? yield* loop.initialState : loop.initialState;\n let action = Action.NextFrame({\n state\n });\n while (true) {\n const msg = yield* loop.render(state, action);\n yield* Effect.orDie(terminal.display(msg));\n const event = yield* Queue.take(input);\n action = yield* loop.process(event, state);\n switch (action._tag) {\n case \"Beep\":\n continue;\n case \"NextFrame\":\n {\n yield* Effect.orDie(terminal.display(yield* loop.clear(state, action)));\n state = action.state;\n continue;\n }\n case \"Submit\":\n {\n yield* Effect.orDie(terminal.display(yield* loop.clear(state, action)));\n const msg = yield* loop.render(state, action);\n yield* Effect.orDie(terminal.display(msg));\n return action.value;\n }\n }\n }\n}, (effect, _, terminal) => Effect.ensuring(effect, Effect.orDie(terminal.display(Ansi.cursorShow))));\nconst Action = /*#__PURE__*/Data.taggedEnum();\n/**\n * Clears all lines taken up by the specified `text`.\n */\nconst eraseText = (text, columns) => {\n if (columns === 0) {\n return Ansi.eraseLine + Ansi.cursorTo(0);\n }\n let rows = 0;\n const lines = text.split(NEWLINE_REGEXP);\n for (const line of lines) {\n rows += 1 + Math.floor(Math.max(line.length - 1, 0) / columns);\n }\n return Ansi.eraseLines(rows);\n};\nconst lines = (prompt, columns) => {\n const lines = prompt.split(NEWLINE_REGEXP);\n return columns === 0 ? lines.length : pipe(Arr.map(lines, line => Math.ceil(line.length / columns)), Arr.reduce(0, (left, right) => left + right));\n};\nconst clearOutputWithError = (outputText, columns, errorText) => {\n if (errorText !== undefined && errorText.length > 0) {\n return Ansi.cursorDown(lines(errorText, columns)) + eraseText(`\\n${errorText}`, columns) + eraseText(outputText, columns);\n }\n return eraseText(outputText, columns);\n};\nconst renderBeep = Ansi.beep;\nconst NEWLINE_REGEXP = /\\r?\\n/;\nconst handleConfirmClear = options => {\n return Effect.fnUntraced(function* (state, _) {\n const terminal = yield* Terminal.Terminal;\n const columns = yield* terminal.columns;\n const figures = yield* platformFigures;\n const confirmMessage = state.value ? options.placeholder.defaultConfirm : options.placeholder.defaultDeny;\n const promptText = renderConfirmOutput(confirmMessage, \"?\", figures.pointerSmall, options, {\n plain: true\n });\n const clearOutput = eraseText(promptText, columns);\n const resetCurrentLine = Ansi.eraseLine + Ansi.cursorLeft;\n return clearOutput + resetCurrentLine;\n });\n};\nconst renderConfirmOutput = (confirm, leadingSymbol, trailingSymbol, options, renderOptions) => renderPrompt(confirm, options.message, leadingSymbol, trailingSymbol, renderOptions);\nconst renderConfirmNextFrame = /*#__PURE__*/Effect.fnUntraced(function* (state, options) {\n const figures = yield* platformFigures;\n const leadingSymbol = Ansi.annotate(\"?\", Ansi.cyanBright);\n const trailingSymbol = Ansi.annotate(figures.pointerSmall, Ansi.blackBright);\n // Marking these explicitly as present with `!` because they always will be\n // and there is really no value in adding a `DeepRequired` type helper just\n // for these internal cases\n const confirmMessage = state.value ? options.placeholder.defaultConfirm : options.placeholder.defaultDeny;\n const confirm = Ansi.annotate(confirmMessage, Ansi.blackBright);\n const promptMsg = renderConfirmOutput(confirm, leadingSymbol, trailingSymbol, options);\n return Ansi.cursorHide + promptMsg;\n});\nconst renderConfirmSubmission = /*#__PURE__*/Effect.fnUntraced(function* (value, options) {\n const figures = yield* platformFigures;\n const leadingSymbol = Ansi.annotate(figures.tick, Ansi.green);\n const trailingSymbol = Ansi.annotate(figures.ellipsis, Ansi.blackBright);\n const confirmMessage = value ? options.label.confirm : options.label.deny;\n const promptMsg = renderConfirmOutput(confirmMessage, leadingSymbol, trailingSymbol, options);\n return promptMsg + \"\\n\";\n});\nconst handleConfirmRender = options => {\n return (_, action) => {\n return Action.$match(action, {\n Beep: () => Effect.succeed(renderBeep),\n NextFrame: ({\n state\n }) => renderConfirmNextFrame(state, options),\n Submit: ({\n value\n }) => renderConfirmSubmission(value, options)\n });\n };\n};\nconst TRUE_VALUE_REGEXP = /^y|t$/;\nconst FALSE_VALUE_REGEXP = /^n|f$/;\nconst handleConfirmProcess = (input, defaultValue) => {\n const value = Option.getOrElse(input.input, () => \"\");\n if (input.key.name === \"enter\" || input.key.name === \"return\") {\n return Effect.succeed(Action.Submit({\n value: defaultValue\n }));\n }\n if (TRUE_VALUE_REGEXP.test(value.toLowerCase())) {\n return Effect.succeed(Action.Submit({\n value: true\n }));\n }\n if (FALSE_VALUE_REGEXP.test(value.toLowerCase())) {\n return Effect.succeed(Action.Submit({\n value: false\n }));\n }\n return Effect.succeed(Action.Beep());\n};\nconst handleDateClear = options => {\n return Effect.fnUntraced(function* (state, _) {\n const terminal = yield* Terminal.Terminal;\n const columns = yield* terminal.columns;\n const figures = yield* platformFigures;\n const resetCurrentLine = Ansi.eraseLine + Ansi.cursorLeft;\n const parts = Arr.reduce(state.dateParts, \"\", (doc, part) => doc + part.toString());\n const promptText = renderDateOutput(\"?\", figures.pointerSmall, parts, options, {\n plain: true\n });\n const errorText = Option.isSome(state.error) ? Arr.match(state.error.value.split(NEWLINE_REGEXP), {\n onEmpty: () => \"\",\n onNonEmpty: errorLines => `${figures.pointerSmall} ${errorLines.join(\"\\n\")}`\n }) : \"\";\n const clearOutput = clearOutputWithError(promptText, columns, errorText);\n return clearOutput + resetCurrentLine;\n });\n};\nconst renderDateError = (state, pointer) => {\n if (Option.isSome(state.error)) {\n const errorLines = state.error.value.split(NEWLINE_REGEXP);\n if (Arr.isReadonlyArrayNonEmpty(errorLines)) {\n const prefix = Ansi.annotate(pointer, Ansi.red) + \" \";\n const lines = Arr.map(errorLines, str => annotateErrorLine(str));\n return Ansi.cursorSavePosition + \"\\n\" + prefix + lines.join(\"\\n\") + Ansi.cursorRestorePosition;\n }\n }\n return \"\";\n};\nconst renderParts = (state, submitted = false) => {\n return Arr.reduce(state.dateParts, \"\", (doc, part, currentIndex) => {\n const partDoc = part.toString();\n if (currentIndex === state.cursor && !submitted) {\n const annotation = Ansi.combine(Ansi.underlined, Ansi.cyanBright);\n return doc + Ansi.annotate(partDoc, annotation);\n }\n return doc + partDoc;\n });\n};\nconst renderDateOutput = (leadingSymbol, trailingSymbol, parts, options, renderOptions) => renderPrompt(parts, options.message, leadingSymbol, trailingSymbol, renderOptions);\nconst renderDateNextFrame = /*#__PURE__*/Effect.fnUntraced(function* (state, options) {\n const figures = yield* platformFigures;\n const leadingSymbol = Ansi.annotate(\"?\", Ansi.cyanBright);\n const trailingSymbol = Ansi.annotate(figures.pointerSmall, Ansi.blackBright);\n const parts = renderParts(state);\n const promptMsg = renderDateOutput(leadingSymbol, trailingSymbol, parts, options);\n const errorMsg = renderDateError(state, figures.pointerSmall);\n return Ansi.cursorHide + promptMsg + errorMsg;\n});\nconst renderDateSubmission = /*#__PURE__*/Effect.fnUntraced(function* (state, options) {\n const figures = yield* platformFigures;\n const leadingSymbol = Ansi.annotate(figures.tick, Ansi.green);\n const trailingSymbol = Ansi.annotate(figures.ellipsis, Ansi.blackBright);\n const parts = renderParts(state, true);\n const promptMsg = renderDateOutput(leadingSymbol, trailingSymbol, parts, options);\n return promptMsg + \"\\n\";\n});\nconst processUp = state => {\n state.dateParts[state.cursor].increment();\n return Action.NextFrame({\n state: {\n ...state,\n typed: \"\"\n }\n });\n};\nconst processDown = state => {\n state.dateParts[state.cursor].decrement();\n return Action.NextFrame({\n state: {\n ...state,\n typed: \"\"\n }\n });\n};\nconst processDateCursorLeft = state => {\n const previous = state.dateParts[state.cursor].previousPart();\n if (Option.isSome(previous)) {\n return Action.NextFrame({\n state: {\n ...state,\n typed: \"\",\n cursor: state.dateParts.indexOf(previous.value)\n }\n });\n }\n return Action.Beep();\n};\nconst processDateCursorRight = state => {\n const next = state.dateParts[state.cursor].nextPart();\n if (Option.isSome(next)) {\n return Action.NextFrame({\n state: {\n ...state,\n typed: \"\",\n cursor: state.dateParts.indexOf(next.value)\n }\n });\n }\n return Action.Beep();\n};\nconst processDateNext = state => {\n const next = state.dateParts[state.cursor].nextPart();\n const cursor = Option.match(next, {\n onNone: () => state.dateParts.findIndex(part => !part.isToken()),\n onSome: next => state.dateParts.indexOf(next)\n });\n return Action.NextFrame({\n state: {\n ...state,\n cursor\n }\n });\n};\nconst defaultDateProcessor = (value, state) => {\n if (/\\d/.test(value)) {\n const typed = state.typed + value;\n state.dateParts[state.cursor].setValue(typed);\n return Action.NextFrame({\n state: {\n ...state,\n typed\n }\n });\n }\n return Action.Beep();\n};\nconst defaultLocales = {\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n monthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n weekdays: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n weekdaysShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"]\n};\nconst handleDateRender = options => {\n return (state, action) => {\n return Action.$match(action, {\n Beep: () => Effect.succeed(renderBeep),\n NextFrame: ({\n state\n }) => renderDateNextFrame(state, options),\n Submit: () => renderDateSubmission(state, options)\n });\n };\n};\nconst handleDateProcess = options => {\n return (input, state) => {\n switch (input.key.name) {\n case \"left\":\n {\n return Effect.succeed(processDateCursorLeft(state));\n }\n case \"right\":\n {\n return Effect.succeed(processDateCursorRight(state));\n }\n case \"k\":\n case \"up\":\n {\n return Effect.succeed(processUp(state));\n }\n case \"j\":\n case \"down\":\n {\n return Effect.succeed(processDown(state));\n }\n case \"tab\":\n {\n return Effect.succeed(processDateNext(state));\n }\n case \"enter\":\n case \"return\":\n {\n return Effect.match(options.validate(state.value), {\n onFailure: error => Action.NextFrame({\n state: {\n ...state,\n error: Option.some(error)\n }\n }),\n onSuccess: value => Action.Submit({\n value\n })\n });\n }\n default:\n {\n return Effect.succeed(defaultDateProcessor(Option.getOrElse(input.input, () => \"\"), state));\n }\n }\n };\n};\nconst DATE_PART_REGEXP = /\\\\(.)|\"((?:\\\\[\"\\\\]|[^\"])+)\"|(D[Do]?|d{3,4}|d)|(M{1,4})|(YY(?:YY)?)|([aA])|([Hh]{1,2})|(m{1,2})|(s{1,2})|(S{1,4})|./g;\nconst regExpGroups = {\n 1: ({\n token,\n ...opts\n }) => new Token({\n token: token.replace(/\\\\(.)/g, \"$1\"),\n ...opts\n }),\n 2: opts => new Day(opts),\n 3: opts => new Month(opts),\n 4: opts => new Year(opts),\n 5: opts => new Meridiem(opts),\n 6: opts => new Hours(opts),\n 7: opts => new Minutes(opts),\n 8: opts => new Seconds(opts),\n 9: opts => new Milliseconds(opts)\n};\nconst makeDateParts = (dateMask, date, locales) => {\n const parts = [];\n let result = null;\n // oxlint-disable-next-line no-cond-assign\n while (result = DATE_PART_REGEXP.exec(dateMask)) {\n const match = result.shift();\n const index = result.findIndex(group => group !== undefined);\n if (index in regExpGroups) {\n const token = result[index] || match;\n parts.push(regExpGroups[index]({\n token,\n date,\n parts,\n locales\n }));\n } else {\n parts.push(new Token({\n token: result[index] || match,\n date,\n parts,\n locales\n }));\n }\n }\n const orderedParts = parts.reduce((array, element) => {\n const lastElement = array[array.length - 1];\n if (element.isToken() && lastElement !== undefined && lastElement.isToken()) {\n lastElement.setValue(element.token);\n } else {\n array.push(element);\n }\n return array;\n }, Arr.empty());\n parts.splice(0, parts.length, ...orderedParts);\n return parts;\n};\nclass DatePart {\n token;\n date;\n parts;\n locales;\n constructor(params) {\n this.token = params.token;\n this.locales = params.locales;\n this.date = params.date || new Date();\n this.parts = params.parts || [this];\n }\n /**\n * Returns `true` if this `DatePart` is a `Token`, `false` otherwise.\n */\n isToken() {\n return false;\n }\n /**\n * Retrieves the next date part in the list of parts.\n */\n nextPart() {\n const currentPartIndex = Option.getOrElse(Arr.findFirstIndex(this.parts, part => part === this), () => 0);\n return Arr.findFirst(this.parts.slice(currentPartIndex + 1), part => !part.isToken());\n }\n /**\n * Retrieves the previous date part in the list of parts.\n */\n previousPart() {\n const currentPartIndex = Arr.findFirstIndex(this.parts, part => part === this);\n if (Option.isSome(currentPartIndex)) {\n return Arr.findLast(this.parts.slice(0, currentPartIndex.value), part => !part.isToken());\n }\n return Option.none();\n }\n toString() {\n return String(this.date);\n }\n}\nclass Token extends DatePart {\n increment() {}\n decrement() {}\n setValue(value) {\n this.token = this.token + value;\n }\n isToken() {\n return true;\n }\n toString() {\n return this.token;\n }\n}\nclass Milliseconds extends DatePart {\n increment() {\n this.date.setMilliseconds(this.date.getMilliseconds() + 1);\n }\n decrement() {\n this.date.setMilliseconds(this.date.getMilliseconds() - 1);\n }\n setValue(value) {\n this.date.setMilliseconds(Number.parseInt(value.slice(-this.token.length)));\n }\n toString() {\n const millis = `${this.date.getMilliseconds()}`;\n return millis.padStart(4, \"0\").substring(0, this.token.length);\n }\n}\nclass Seconds extends DatePart {\n increment() {\n this.date.setSeconds(this.date.getSeconds() + 1);\n }\n decrement() {\n this.date.setSeconds(this.date.getSeconds() - 1);\n }\n setValue(value) {\n this.date.setSeconds(Number.parseInt(value.slice(-2)));\n }\n toString() {\n const seconds = `${this.date.getSeconds()}`;\n return this.token.length > 1 ? seconds.padStart(2, \"0\") : seconds;\n }\n}\nclass Minutes extends DatePart {\n increment() {\n this.date.setMinutes(this.date.getMinutes() + 1);\n }\n decrement() {\n this.date.setMinutes(this.date.getMinutes() - 1);\n }\n setValue(value) {\n this.date.setMinutes(Number.parseInt(value.slice(-2)));\n }\n toString() {\n const minutes = `${this.date.getMinutes()}`;\n return this.token.length > 1 ? minutes.padStart(2, \"0\") : minutes;\n }\n}\nclass Hours extends DatePart {\n increment() {\n this.date.setHours(this.date.getHours() + 1);\n }\n decrement() {\n this.date.setHours(this.date.getHours() - 1);\n }\n setValue(value) {\n this.date.setHours(Number.parseInt(value.slice(-2)));\n }\n toString() {\n const hours = /h/.test(this.token) ? this.date.getHours() % 12 || 12 : this.date.getHours();\n return this.token.length > 1 ? `${hours}`.padStart(2, \"0\") : `${hours}`;\n }\n}\nclass Day extends DatePart {\n increment() {\n this.date.setDate(this.date.getDate() + 1);\n }\n decrement() {\n this.date.setDate(this.date.getDate() - 1);\n }\n setValue(value) {\n this.date.setDate(Number.parseInt(value.slice(-2)));\n }\n toString() {\n const date = this.date.getDate();\n const day = this.date.getDay();\n switch (this.token) {\n case \"DD\":\n return `${date}`.padStart(2, \"0\");\n case \"Do\":\n return `${date}${this.ordinalIndicator(date)}`;\n case \"d\":\n return `${day + 1}`;\n case \"ddd\":\n return this.locales.weekdaysShort[day];\n case \"dddd\":\n return this.locales.weekdays[day];\n default:\n return `${date}`;\n }\n }\n ordinalIndicator(day) {\n switch (day % 10) {\n case 1:\n return \"st\";\n case 2:\n return \"nd\";\n case 3:\n return \"rd\";\n default:\n return \"th\";\n }\n }\n}\nclass Month extends DatePart {\n increment() {\n this.date.setMonth(this.date.getMonth() + 1);\n }\n decrement() {\n this.date.setMonth(this.date.getMonth() - 1);\n }\n setValue(value) {\n const month = Number.parseInt(value.slice(-2)) - 1;\n this.date.setMonth(month < 0 ? 0 : month);\n }\n toString() {\n const month = this.date.getMonth();\n switch (this.token.length) {\n case 2:\n return `${month + 1}`.padStart(2, \"0\");\n case 3:\n return this.locales.monthsShort[month];\n case 4:\n return this.locales.months[month];\n default:\n return `${month + 1}`;\n }\n }\n}\nclass Year extends DatePart {\n increment() {\n this.date.setFullYear(this.date.getFullYear() + 1);\n }\n decrement() {\n this.date.setFullYear(this.date.getFullYear() - 1);\n }\n setValue(value) {\n this.date.setFullYear(Number.parseInt(value.slice(-4)));\n }\n toString() {\n const year = `${this.date.getFullYear()}`.padStart(4, \"0\");\n return this.token.length === 2 ? year.substring(-2) : year;\n }\n}\nclass Meridiem extends DatePart {\n increment() {\n this.date.setHours((this.date.getHours() + 12) % 24);\n }\n decrement() {\n this.increment();\n }\n setValue(_value) {}\n toString() {\n const meridiem = this.date.getHours() > 12 ? \"pm\" : \"am\";\n return /A/.test(this.token) ? meridiem.toUpperCase() : meridiem;\n }\n}\nconst CONFIRM_MESSAGE = \"The selected directory contains files. Would you like to traverse the selected directory?\";\nconst FILE_FILTER_LABEL = \"filter\";\nconst FILE_FILTER_PLACEHOLDER = \"type to filter\";\nconst FILE_EMPTY_MESSAGE = \"No matches\";\nconst Confirm = /*#__PURE__*/Data.taggedEnum();\nconst showConfirmation = /*#__PURE__*/Confirm.$is(\"Show\");\nconst resolveCurrentPath = (path, options) => {\n if (Option.isSome(path)) {\n return Effect.succeed(path.value);\n }\n if (Option.isSome(options.startingPath)) {\n const startingPath = options.startingPath.value;\n return Effect.flatMap(FileSystem.FileSystem, fs =>\n // Ensure the user provided starting path exists\n Effect.orDie(fs.exists(startingPath)).pipe(Effect.flatMap(exists => exists ? Effect.void : Effect.die(`The provided starting path '${startingPath}' does not exist`)), Effect.as(startingPath)));\n }\n return Effect.sync(() => process.cwd());\n};\nconst getFileList = /*#__PURE__*/Effect.fnUntraced(function* (directory, options) {\n const fs = yield* FileSystem.FileSystem;\n const path = yield* Path.Path;\n const files = yield* Effect.orDie(fs.readDirectory(directory)).pipe(\n // Always prepend the `\"..\"` option to the file list but allow it\n // to be filtered out if the user so desires\n Effect.map(files => [\"..\", ...files]));\n return yield* Effect.filter(files, file => {\n const result = options.filter(file);\n const userDefinedFilter = Effect.isEffect(result) ? result : Effect.succeed(result);\n const directoryFilter = options.type === \"directory\" ? Effect.map(Effect.orDie(fs.stat(path.join(directory, file))), info => info.type === \"Directory\") : Effect.succeed(true);\n return Effect.zipWith(userDefinedFilter, directoryFilter, (a, b) => a && b);\n }, {\n concurrency: files.length\n });\n});\nconst filterFiles = (files, query) => {\n if (query.length === 0) {\n return files;\n }\n const normalizedQuery = query.toLowerCase();\n const filtered = [];\n for (let index = 0; index < files.length; index++) {\n if (files[index].toLowerCase().includes(normalizedQuery)) {\n filtered.push(files[index]);\n }\n }\n return filtered;\n};\nconst updateFileState = (state, query, allFiles = state.allFiles) => {\n const files = filterFiles(allFiles, query);\n if (files.length === 0) {\n return {\n ...state,\n query,\n allFiles,\n files,\n cursor: 0\n };\n }\n const selected = state.files[state.cursor];\n const cursor = selected === undefined ? 0 : files.indexOf(selected);\n return {\n ...state,\n query,\n allFiles,\n files,\n cursor: cursor === -1 ? 0 : cursor\n };\n};\nconst handleFileClear = options => {\n return Effect.fnUntraced(function* (state, _) {\n const terminal = yield* Terminal.Terminal;\n const columns = yield* terminal.columns;\n const path = yield* Path.Path;\n const figures = yield* platformFigures;\n const currentPath = yield* resolveCurrentPath(state.path, options);\n const selectedPath = state.files[state.cursor];\n const resolvedPath = selectedPath === undefined ? currentPath : path.resolve(currentPath, selectedPath);\n const resolvedPathText = `${figures.pointerSmall} ${resolvedPath}`;\n const isConfirming = showConfirmation(state.confirm);\n const promptText = isConfirming ? renderPrompt(\"(Y/n)\", CONFIRM_MESSAGE, \"?\", figures.pointerSmall, {\n plain: true\n }) : renderPrompt(renderFileFilter(state, {\n plain: true\n }), options.message, figures.tick, figures.ellipsis, {\n plain: true\n });\n const filesText = isConfirming ? \"\" : renderFiles(state, state.files, figures, options, {\n plain: true\n });\n const outputText = isConfirming ? `${promptText}\\n${resolvedPathText}` : `${promptText}\\n${resolvedPathText}\\n${filesText}`;\n const clearOutput = eraseText(outputText, columns);\n const resetCurrentLine = Ansi.eraseLine + Ansi.cursorLeft;\n return clearOutput + resetCurrentLine;\n });\n};\nconst renderPrompt = (confirm, message, leadingSymbol, trailingSymbol, options) => {\n const prefix = leadingSymbol + \" \";\n const annotate = options?.plain === true ? line => line : annotateLine;\n return Arr.match(message.split(NEWLINE_REGEXP), {\n onEmpty: () => prefix + \" \" + trailingSymbol + \" \" + confirm,\n onNonEmpty: promptLines => {\n const lines = Arr.map(promptLines, line => annotate(line));\n return prefix + lines.join(\"\\n\") + \" \" + trailingSymbol + \" \" + confirm;\n }\n });\n};\nconst renderPrefix = (state, toDisplay, currentIndex, length, figures, renderOptions) => {\n let prefix = \" \";\n if (currentIndex === toDisplay.startIndex && toDisplay.startIndex > 0) {\n prefix = figures.arrowUp;\n } else if (currentIndex === toDisplay.endIndex - 1 && toDisplay.endIndex < length) {\n prefix = figures.arrowDown;\n }\n if (state.cursor === currentIndex) {\n return renderOptions?.plain === true ? figures.pointer + prefix : Ansi.annotate(figures.pointer, Ansi.cyanBright) + prefix;\n }\n return prefix + \" \";\n};\nconst renderFileName = (file, isSelected, renderOptions) => {\n if (renderOptions?.plain === true) {\n return file;\n }\n return isSelected ? Ansi.annotate(file, Ansi.combine(Ansi.underlined, Ansi.cyanBright)) : file;\n};\nconst renderFileFilter = (state, renderOptions) => {\n const filterValue = state.query.length === 0 ? renderOptions?.plain === true ? FILE_FILTER_PLACEHOLDER : Ansi.annotate(FILE_FILTER_PLACEHOLDER, Ansi.blackBright) : renderOptions?.plain === true ? state.query : Ansi.annotate(state.query, Ansi.combine(Ansi.underlined, Ansi.cyanBright));\n return `[${FILE_FILTER_LABEL}: ${filterValue}]`;\n};\nconst renderFiles = (state, files, figures, options, renderOptions) => {\n const length = files.length;\n if (length === 0) {\n return renderOptions?.plain === true ? FILE_EMPTY_MESSAGE : Ansi.annotate(FILE_EMPTY_MESSAGE, Ansi.blackBright);\n }\n const toDisplay = entriesToDisplay(state.cursor, length, options.maxPerPage);\n const documents = [];\n for (let index = toDisplay.startIndex; index < toDisplay.endIndex; index++) {\n const isSelected = state.cursor === index;\n const prefix = renderPrefix(state, toDisplay, index, length, figures, renderOptions);\n const fileName = renderFileName(files[index], isSelected, renderOptions);\n documents.push(prefix + fileName);\n }\n return documents.join(\"\\n\");\n};\nconst renderFileNextFrame = /*#__PURE__*/Effect.fnUntraced(function* (state, options) {\n const path = yield* Path.Path;\n const figures = yield* platformFigures;\n const currentPath = yield* resolveCurrentPath(state.path, options);\n const selectedPath = state.files[state.cursor];\n const resolvedPath = selectedPath === undefined ? currentPath : path.resolve(currentPath, selectedPath);\n const resolvedPathMsg = Ansi.annotate(figures.pointerSmall + \" \" + resolvedPath, Ansi.blackBright);\n if (showConfirmation(state.confirm)) {\n const leadingSymbol = Ansi.annotate(\"?\", Ansi.cyanBright);\n const trailingSymbol = Ansi.annotate(figures.pointerSmall, Ansi.blackBright);\n const confirm = Ansi.annotate(\"(Y/n)\", Ansi.blackBright);\n const promptMsg = renderPrompt(confirm, CONFIRM_MESSAGE, leadingSymbol, trailingSymbol);\n return Ansi.cursorHide + promptMsg + \"\\n\" + resolvedPathMsg;\n }\n const leadingSymbol = Ansi.annotate(figures.tick, Ansi.green);\n const trailingSymbol = Ansi.annotate(figures.ellipsis, Ansi.blackBright);\n const promptMsg = renderPrompt(renderFileFilter(state), options.message, leadingSymbol, trailingSymbol);\n const files = renderFiles(state, state.files, figures, options);\n return Ansi.cursorHide + promptMsg + \"\\n\" + resolvedPathMsg + \"\\n\" + files;\n});\nconst renderFileSubmission = /*#__PURE__*/Effect.fnUntraced(function* (state, value, options) {\n const figures = yield* platformFigures;\n const leadingSymbol = Ansi.annotate(figures.tick, Ansi.green);\n const trailingSymbol = Ansi.annotate(figures.ellipsis, Ansi.blackBright);\n const promptMsg = renderPrompt(renderFileFilter(state), options.message, leadingSymbol, trailingSymbol);\n return promptMsg + \" \" + Ansi.annotate(value, Ansi.white) + \"\\n\";\n});\nconst handleFileRender = options => {\n return (state, action) => {\n return Action.$match(action, {\n Beep: () => Effect.succeed(renderBeep),\n NextFrame: ({\n state\n }) => renderFileNextFrame(state, options),\n Submit: ({\n value\n }) => renderFileSubmission(state, value, options)\n });\n };\n};\nconst processFileCursorUp = state => {\n if (state.files.length === 0) {\n return Effect.succeed(Action.Beep());\n }\n const cursor = state.cursor - 1;\n return Effect.succeed(Action.NextFrame({\n state: {\n ...state,\n cursor: cursor < 0 ? state.files.length - 1 : cursor\n }\n }));\n};\nconst processFileCursorDown = state => {\n if (state.files.length === 0) {\n return Effect.succeed(Action.Beep());\n }\n return Effect.succeed(Action.NextFrame({\n state: {\n ...state,\n cursor: (state.cursor + 1) % state.files.length\n }\n }));\n};\nconst processFileBackspace = state => {\n if (state.query.length === 0) {\n return Effect.succeed(Action.Beep());\n }\n const query = state.query.slice(0, state.query.length - 1);\n return Effect.succeed(Action.NextFrame({\n state: updateFileState(state, query)\n }));\n};\nconst processFileClear = state => Effect.succeed(Action.NextFrame({\n state: updateFileState(state, \"\")\n}));\nconst processFileInput = (input, state) => {\n if (input.length === 0) {\n return Effect.succeed(Action.Beep());\n }\n const query = state.query + input;\n return Effect.succeed(Action.NextFrame({\n state: updateFileState(state, query)\n }));\n};\nconst processSelection = /*#__PURE__*/Effect.fnUntraced(function* (state, options) {\n if (state.files.length === 0) {\n return Action.Beep();\n }\n const fs = yield* FileSystem.FileSystem;\n const path = yield* Path.Path;\n const currentPath = yield* resolveCurrentPath(state.path, options);\n const selectedPath = state.files[state.cursor];\n const resolvedPath = path.resolve(currentPath, selectedPath);\n const info = yield* Effect.orDie(fs.stat(resolvedPath));\n if (info.type === \"Directory\") {\n const files = yield* getFileList(resolvedPath, options);\n const filesWithoutParent = files.filter(file => file !== \"..\");\n // If the user selected a directory AND the prompt type can result with\n // a directory, we must confirm:\n // - If the selected directory has any files\n // - Confirm whether or not the user wants to traverse those files\n if (options.type === \"directory\" || options.type === \"either\") {\n return filesWithoutParent.length === 0\n // Directory is empty so it's safe to select it\n ? Action.Submit({\n value: resolvedPath\n })\n // Directory has contents - show confirmation to user\n : Action.NextFrame({\n state: {\n ...state,\n confirm: Confirm.Show()\n }\n });\n }\n return Action.NextFrame({\n state: {\n cursor: 0,\n files,\n allFiles: files,\n query: \"\",\n path: Option.some(resolvedPath),\n confirm: Confirm.Hide()\n }\n });\n }\n return Action.Submit({\n value: resolvedPath\n });\n});\nconst handleFileProcess = options => {\n return Effect.fnUntraced(function* (input, state) {\n if (input.key.ctrl) {\n if (input.key.name === \"u\") {\n if (showConfirmation(state.confirm)) {\n return Action.Beep();\n }\n return yield* processFileClear(state);\n }\n return Action.Beep();\n }\n switch (input.key.name) {\n case \"k\":\n case \"up\":\n {\n return yield* processFileCursorUp(state);\n }\n case \"j\":\n case \"down\":\n case \"tab\":\n {\n return yield* processFileCursorDown(state);\n }\n case \"backspace\":\n {\n if (showConfirmation(state.confirm)) {\n return Action.Beep();\n }\n return yield* processFileBackspace(state);\n }\n case \"enter\":\n case \"return\":\n {\n return yield* processSelection(state, options);\n }\n case \"y\":\n case \"t\":\n {\n if (showConfirmation(state.confirm)) {\n const path = yield* Path.Path;\n const currentPath = yield* resolveCurrentPath(state.path, options);\n const selectedPath = state.files[state.cursor];\n const resolvedPath = path.resolve(currentPath, selectedPath);\n const files = yield* getFileList(resolvedPath, options);\n return Action.NextFrame({\n state: {\n cursor: 0,\n files,\n allFiles: files,\n query: \"\",\n path: Option.some(resolvedPath),\n confirm: Confirm.Hide()\n }\n });\n }\n return yield* processFileInput(Option.getOrElse(input.input, () => \"\"), state);\n }\n case \"n\":\n case \"f\":\n {\n if (showConfirmation(state.confirm)) {\n const path = yield* Path.Path;\n const currentPath = yield* resolveCurrentPath(state.path, options);\n const selectedPath = state.files[state.cursor];\n const resolvedPath = path.resolve(currentPath, selectedPath);\n return Action.Submit({\n value: resolvedPath\n });\n }\n return yield* processFileInput(Option.getOrElse(input.input, () => \"\"), state);\n }\n default:\n {\n if (showConfirmation(state.confirm)) {\n return Action.Beep();\n }\n return yield* processFileInput(Option.getOrElse(input.input, () => \"\"), state);\n }\n }\n });\n};\nconst renderMultiSelectError = (state, pointer, renderOptions) => {\n if (Option.isSome(state.error)) {\n return Arr.match(state.error.value.split(NEWLINE_REGEXP), {\n onEmpty: () => \"\",\n onNonEmpty: errorLines => {\n if (renderOptions?.plain === true) {\n return `${pointer} ${errorLines.join(\"\\n\")}`;\n }\n const prefix = Ansi.annotate(pointer, Ansi.red) + \" \";\n const lines = Arr.map(errorLines, str => annotateErrorLine(str));\n return Ansi.cursorSavePosition + \"\\n\" + prefix + lines.join(\"\\n\") + Ansi.cursorRestorePosition;\n }\n });\n }\n return \"\";\n};\nconst renderChoiceDescription = (choice, isActive, renderOptions) => {\n if (!choice.disabled && choice.description && isActive) {\n return renderOptions?.plain === true ? \"- \" + choice.description : Ansi.annotate(\"- \" + choice.description, Ansi.blackBright);\n }\n return \"\";\n};\nconst metaOptionsCount = 2;\nconst renderMultiSelectTitle = (title, isHighlighted, renderOptions) => {\n if (renderOptions?.plain === true || !isHighlighted) {\n return title;\n }\n return Ansi.annotate(title, Ansi.combine(Ansi.underlined, Ansi.cyanBright));\n};\nconst renderMultiSelectChoices = (state, options, figures, renderOptions) => {\n const choices = options.choices;\n const totalChoices = choices.length;\n const selectedCount = state.selectedIndices.size;\n const allSelected = selectedCount === totalChoices;\n const selectAllText = allSelected ? options?.selectNone ?? \"Select None\" : options?.selectAll ?? \"Select All\";\n const inverseSelectionText = options?.inverseSelection ?? \"Inverse Selection\";\n const metaOptions = [{\n title: selectAllText\n }, {\n title: inverseSelectionText\n }];\n const allChoices = [...metaOptions, ...choices];\n const toDisplay = entriesToDisplay(state.index, allChoices.length, options.maxPerPage);\n const documents = [];\n for (let index = toDisplay.startIndex; index < toDisplay.endIndex; index++) {\n const choice = allChoices[index];\n const isHighlighted = state.index === index;\n let prefix = \" \";\n if (index === toDisplay.startIndex && toDisplay.startIndex > 0) {\n prefix = figures.arrowUp;\n } else if (index === toDisplay.endIndex - 1 && toDisplay.endIndex < allChoices.length) {\n prefix = figures.arrowDown;\n }\n if (index < metaOptions.length) {\n // Meta options\n const title = renderMultiSelectTitle(choice.title, isHighlighted, renderOptions);\n documents.push(prefix + \" \" + title);\n } else {\n // Regular choices\n const choiceIndex = index - metaOptions.length;\n const isSelected = state.selectedIndices.has(choiceIndex);\n const checkbox = isSelected ? figures.checkboxOn : figures.checkboxOff;\n const annotatedCheckbox = isHighlighted && renderOptions?.plain !== true ? Ansi.annotate(checkbox, Ansi.cyanBright) : checkbox;\n const title = renderMultiSelectTitle(choice.title, isHighlighted, renderOptions);\n const description = renderChoiceDescription(choice, isHighlighted, renderOptions);\n documents.push(prefix + \" \" + annotatedCheckbox + \" \" + title + \" \" + description);\n }\n }\n return documents.join(\"\\n\");\n};\nconst renderMultiSelectNextFrame = /*#__PURE__*/Effect.fnUntraced(function* (state, options) {\n const figures = yield* platformFigures;\n const choices = renderMultiSelectChoices(state, options, figures);\n const leadingSymbol = Ansi.annotate(\"?\", Ansi.cyanBright);\n const trailingSymbol = Ansi.annotate(figures.pointerSmall, Ansi.blackBright);\n const promptMsg = renderSelectOutput(leadingSymbol, trailingSymbol, options);\n const error = renderMultiSelectError(state, figures.pointer);\n return Ansi.cursorHide + promptMsg + \"\\n\" + choices + error;\n});\nconst renderMultiSelectSubmission = /*#__PURE__*/Effect.fnUntraced(function* (state, options) {\n const figures = yield* platformFigures;\n const selectedChoices = Array.from(state.selectedIndices).sort(EffectNumber.Order).map(index => options.choices[index].title);\n const selectedText = selectedChoices.join(\", \");\n const leadingSymbol = Ansi.annotate(figures.tick, Ansi.green);\n const trailingSymbol = Ansi.annotate(figures.ellipsis, Ansi.blackBright);\n const promptMsg = renderSelectOutput(leadingSymbol, trailingSymbol, options);\n return promptMsg + \" \" + Ansi.annotate(selectedText, Ansi.white) + \"\\n\";\n});\nconst processMultiSelectCursorUp = (state, totalChoices) => {\n const newIndex = state.index === 0 ? totalChoices - 1 : state.index - 1;\n return Effect.succeed(Action.NextFrame({\n state: {\n ...state,\n index: newIndex\n }\n }));\n};\nconst processMultiSelectCursorDown = (state, totalChoices) => {\n const newIndex = (state.index + 1) % totalChoices;\n return Effect.succeed(Action.NextFrame({\n state: {\n ...state,\n index: newIndex\n }\n }));\n};\nconst processSpace = (state, options) => {\n const selectedIndices = new Set(state.selectedIndices);\n if (state.index === 0) {\n if (state.selectedIndices.size === options.choices.length) {\n selectedIndices.clear();\n } else {\n for (let i = 0; i < options.choices.length; i++) {\n selectedIndices.add(i);\n }\n }\n } else if (state.index === 1) {\n for (let i = 0; i < options.choices.length; i++) {\n if (state.selectedIndices.has(i)) {\n selectedIndices.delete(i);\n } else {\n selectedIndices.add(i);\n }\n }\n } else {\n const choiceIndex = state.index - metaOptionsCount;\n if (selectedIndices.has(choiceIndex)) {\n selectedIndices.delete(choiceIndex);\n } else {\n selectedIndices.add(choiceIndex);\n }\n }\n return Effect.succeed(Action.NextFrame({\n state: {\n ...state,\n selectedIndices\n }\n }));\n};\nconst handleMultiSelectClear = options => Effect.fnUntraced(function* (state, _) {\n const terminal = yield* Terminal.Terminal;\n const columns = yield* terminal.columns;\n const figures = yield* platformFigures;\n const clearPrompt = Ansi.eraseLine + Ansi.cursorLeft;\n const promptText = renderSelectOutput(\"?\", figures.pointerSmall, options, {\n plain: true\n });\n const choicesText = renderMultiSelectChoices(state, options, figures, {\n plain: true\n });\n const errorText = renderMultiSelectError(state, figures.pointer, {\n plain: true\n });\n const clearOutput = clearOutputWithError(`${promptText}\\n${choicesText}`, columns, errorText);\n return clearOutput + clearPrompt;\n});\nconst handleMultiSelectProcess = options => {\n return (input, state) => {\n const totalChoices = options.choices.length + metaOptionsCount;\n switch (input.key.name) {\n case \"k\":\n case \"up\":\n {\n return processMultiSelectCursorUp({\n ...state,\n error: Option.none()\n }, totalChoices);\n }\n case \"j\":\n case \"down\":\n case \"tab\":\n {\n return processMultiSelectCursorDown({\n ...state,\n error: Option.none()\n }, totalChoices);\n }\n case \"space\":\n {\n return processSpace(state, options);\n }\n case \"enter\":\n case \"return\":\n {\n const selectedCount = state.selectedIndices.size;\n if (options.min !== undefined && selectedCount < options.min) {\n return Effect.succeed(Action.NextFrame({\n state: {\n ...state,\n error: Option.some(`At least ${options.min} are required`)\n }\n }));\n }\n if (options.max !== undefined && selectedCount > options.max) {\n return Effect.succeed(Action.NextFrame({\n state: {\n ...state,\n error: Option.some(`At most ${options.max} choices are allowed`)\n }\n }));\n }\n const selectedValues = Array.from(state.selectedIndices).sort(EffectNumber.Order).map(index => options.choices[index].value);\n return Effect.succeed(Action.Submit({\n value: selectedValues\n }));\n }\n default:\n {\n return Effect.succeed(Action.Beep());\n }\n }\n };\n};\nconst handleMultiSelectRender = options => {\n return (state, action) => {\n return Action.$match(action, {\n Beep: () => Effect.succeed(renderBeep),\n NextFrame: ({\n state\n }) => renderMultiSelectNextFrame(state, options),\n Submit: () => renderMultiSelectSubmission(state, options)\n });\n };\n};\nconst handleNumberClear = options => {\n return Effect.fnUntraced(function* (state, _) {\n const terminal = yield* Terminal.Terminal;\n const columns = yield* terminal.columns;\n const figures = yield* platformFigures;\n const resetCurrentLine = Ansi.eraseLine + Ansi.cursorLeft;\n const errorText = renderNumberError(state, figures.pointerSmall, {\n plain: true\n });\n const promptText = renderNumberOutput(state, \"?\", figures.pointerSmall, options, {\n plain: true\n });\n const clearOutput = clearOutputWithError(promptText, columns, errorText);\n return clearOutput + resetCurrentLine;\n });\n};\nconst renderNumberInput = (state, submitted, renderOptions) => {\n const value = state.value === \"\" ? \"\" : `${state.value}`;\n if (submitted || renderOptions?.plain === true) {\n return value;\n }\n const annotation = Option.isSome(state.error) ? Ansi.red : Ansi.combine(Ansi.underlined, Ansi.cyanBright);\n return Ansi.annotate(value, annotation);\n};\nconst renderNumberError = (state, pointer, renderOptions) => {\n if (Option.isSome(state.error)) {\n return Arr.match(state.error.value.split(NEWLINE_REGEXP), {\n onEmpty: () => \"\",\n onNonEmpty: errorLines => {\n if (renderOptions?.plain === true) {\n return `${pointer} ${errorLines.join(\"\\n\")}`;\n }\n const prefix = Ansi.annotate(pointer, Ansi.red) + \" \";\n const lines = Arr.map(errorLines, str => annotateErrorLine(str));\n return Ansi.cursorSavePosition + \"\\n\" + prefix + lines.join(\"\\n\") + Ansi.cursorRestorePosition;\n }\n });\n }\n return \"\";\n};\nconst renderNumberOutput = (state, leadingSymbol, trailingSymbol, options, renderOptions, submitted = false) => {\n const value = renderNumberInput(state, submitted, renderOptions);\n return renderPrompt(value, options.message, leadingSymbol, trailingSymbol, renderOptions);\n};\nconst renderNumberNextFrame = /*#__PURE__*/Effect.fnUntraced(function* (state, options) {\n const figures = yield* platformFigures;\n const leadingSymbol = Ansi.annotate(\"?\", Ansi.cyanBright);\n const trailingSymbol = Ansi.annotate(figures.pointerSmall, Ansi.blackBright);\n const errorMsg = renderNumberError(state, figures.pointerSmall);\n const promptMsg = renderNumberOutput(state, leadingSymbol, trailingSymbol, options);\n return promptMsg + errorMsg;\n});\nconst renderNumberSubmission = /*#__PURE__*/Effect.fnUntraced(function* (nextState, options) {\n const figures = yield* platformFigures;\n const leadingSymbol = Ansi.annotate(figures.tick, Ansi.green);\n const trailingSymbol = Ansi.annotate(figures.ellipsis, Ansi.blackBright);\n const promptMsg = renderNumberOutput(nextState, leadingSymbol, trailingSymbol, options, undefined, true);\n return promptMsg + \"\\n\";\n});\nconst processNumberBackspace = state => {\n if (state.value.length <= 0) {\n return Effect.succeed(Action.Beep());\n }\n const value = state.value.slice(0, state.value.length - 1);\n return Effect.succeed(Action.NextFrame({\n state: {\n ...state,\n value,\n error: Option.none()\n }\n }));\n};\nconst processNumberClear = state => Effect.succeed(Action.NextFrame({\n state: {\n ...state,\n cursor: 0,\n value: \"\",\n error: Option.none()\n }\n}));\nconst defaultIntProcessor = (input, state) => {\n if (state.value.length === 0 && input === \"-\") {\n return Effect.succeed(Action.NextFrame({\n state: {\n ...state,\n value: \"-\",\n error: Option.none()\n }\n }));\n }\n const parsed = Number.parseInt(state.value + input);\n if (Number.isNaN(parsed)) {\n return Effect.succeed(Action.Beep());\n } else {\n return Effect.succeed(Action.NextFrame({\n state: {\n ...state,\n value: `${parsed}`,\n error: Option.none()\n }\n }));\n }\n};\nconst defaultFloatProcessor = (input, state) => {\n if (input === \".\" && state.value.includes(\".\")) {\n return Effect.succeed(Action.Beep());\n }\n if (state.value.length === 0 && input === \"-\") {\n return Effect.succeed(Action.NextFrame({\n state: {\n ...state,\n value: \"-\",\n error: Option.none()\n }\n }));\n }\n const parsed = Number.parseFloat(state.value + input);\n if (Number.isNaN(parsed)) {\n return Effect.succeed(Action.Beep());\n } else {\n return Effect.succeed(Action.NextFrame({\n state: {\n ...state,\n value: input === \".\" ? `${parsed}.` : `${parsed}`,\n error: Option.none()\n }\n }));\n }\n};\nconst handleRenderInteger = options => {\n return (state, action) => {\n return Action.$match(action, {\n Beep: () => Effect.succeed(renderBeep),\n NextFrame: ({\n state\n }) => renderNumberNextFrame(state, options),\n Submit: () => renderNumberSubmission(state, options)\n });\n };\n};\nconst handleProcessInteger = options => {\n return (input, state) => {\n if (input.key.ctrl && input.key.name === \"u\") {\n return processNumberClear(state);\n }\n switch (input.key.name) {\n case \"backspace\":\n {\n return processNumberBackspace(state);\n }\n case \"k\":\n case \"up\":\n {\n return Effect.succeed(Action.NextFrame({\n state: {\n ...state,\n value: state.value === \"\" || state.value === \"-\" ? `${options.incrementBy}` : `${Number.parseInt(state.value) + options.incrementBy}`,\n error: Option.none()\n }\n }));\n }\n case \"j\":\n case \"down\":\n {\n return Effect.succeed(Action.NextFrame({\n state: {\n ...state,\n value: state.value === \"\" || state.value === \"-\" ? `-${options.decrementBy}` : `${Number.parseInt(state.value) - options.decrementBy}`,\n error: Option.none()\n }\n }));\n }\n case \"enter\":\n case \"return\":\n {\n const parsed = Number.parseInt(state.value);\n if (Number.isNaN(parsed)) {\n return Effect.succeed(Action.NextFrame({\n state: {\n ...state,\n error: Option.some(\"Must provide an integer value\")\n }\n }));\n } else {\n return Effect.match(options.validate(parsed), {\n onFailure: error => Action.NextFrame({\n state: {\n ...state,\n error: Option.some(error)\n }\n }),\n onSuccess: value => Action.Submit({\n value\n })\n });\n }\n }\n default:\n {\n return defaultIntProcessor(Option.getOrElse(input.input, () => \"\"), state);\n }\n }\n };\n};\nconst handleRenderFloat = options => {\n return (state, action) => {\n return Action.$match(action, {\n Beep: () => Effect.succeed(renderBeep),\n NextFrame: ({\n state\n }) => renderNumberNextFrame(state, options),\n Submit: () => renderNumberSubmission(state, options)\n });\n };\n};\nconst handleProcessFloat = options => {\n return (input, state) => {\n if (input.key.ctrl && input.key.name === \"u\") {\n return processNumberClear(state);\n }\n switch (input.key.name) {\n case \"backspace\":\n {\n return processNumberBackspace(state);\n }\n case \"k\":\n case \"up\":\n {\n return Effect.succeed(Action.NextFrame({\n state: {\n ...state,\n value: state.value === \"\" || state.value === \"-\" ? `${options.incrementBy}` : `${Number.parseFloat(state.value) + options.incrementBy}`,\n error: Option.none()\n }\n }));\n }\n case \"j\":\n case \"down\":\n {\n return Effect.succeed(Action.NextFrame({\n state: {\n ...state,\n value: state.value === \"\" || state.value === \"-\" ? `-${options.decrementBy}` : `${Number.parseFloat(state.value) - options.decrementBy}`,\n error: Option.none()\n }\n }));\n }\n case \"enter\":\n case \"return\":\n {\n const parsed = Number.parseFloat(state.value);\n if (Number.isNaN(parsed)) {\n return Effect.succeed(Action.NextFrame({\n state: {\n ...state,\n error: Option.some(\"Must provide a floating point value\")\n }\n }));\n } else {\n return Effect.flatMap(Effect.sync(() => EffectNumber.round(parsed, options.precision)), rounded => Effect.match(options.validate(rounded), {\n onFailure: error => Action.NextFrame({\n state: {\n ...state,\n error: Option.some(error)\n }\n }),\n onSuccess: value => Action.Submit({\n value\n })\n }));\n }\n }\n default:\n {\n return defaultFloatProcessor(Option.getOrElse(input.input, () => \"\"), state);\n }\n }\n };\n};\nconst filterAutoCompleteChoices = (choices, query) => {\n const normalizedQuery = query.toLowerCase();\n const indices = [];\n for (let i = 0; i < choices.length; i++) {\n if (choices[i].title.toLowerCase().includes(normalizedQuery)) {\n indices.push(i);\n }\n }\n return indices;\n};\nconst updateAutoCompleteState = (state, options, query) => {\n const filtered = filterAutoCompleteChoices(options.choices, query);\n if (filtered.length === 0) {\n return {\n ...state,\n query,\n filtered,\n index: 0\n };\n }\n if (filtered.includes(state.index)) {\n return {\n ...state,\n query,\n filtered\n };\n }\n return {\n ...state,\n query,\n filtered,\n index: filtered[0]\n };\n};\nconst autoCompleteCursor = state => Option.getOrElse(Arr.findFirstIndex(state.filtered, index => index === state.index), () => 0);\nconst renderSelectOutput = (leadingSymbol, trailingSymbol, options, renderOptions) => renderPrompt(\"\", options.message, leadingSymbol, trailingSymbol, renderOptions);\nconst renderAutoCompleteFilter = (state, options, renderOptions) => {\n const filterValue = state.query.length === 0 ? renderOptions?.plain === true ? options.filterPlaceholder : Ansi.annotate(options.filterPlaceholder, Ansi.blackBright) : renderOptions?.plain === true ? state.query : Ansi.annotate(state.query, Ansi.combine(Ansi.underlined, Ansi.cyanBright));\n return `[${options.filterLabel}: ${filterValue}]`;\n};\nconst renderAutoCompleteOutput = (state, leadingSymbol, trailingSymbol, options, renderOptions) => {\n const filter = renderAutoCompleteFilter(state, options, renderOptions);\n return renderPrompt(filter, options.message, leadingSymbol, trailingSymbol, renderOptions);\n};\nconst renderChoicePrefix = (state, choices, toDisplay, currentIndex, figures, renderOptions) => {\n let prefix = \" \";\n if (currentIndex === toDisplay.startIndex && toDisplay.startIndex > 0) {\n prefix = figures.arrowUp;\n } else if (currentIndex === toDisplay.endIndex - 1 && toDisplay.endIndex < choices.length) {\n prefix = figures.arrowDown;\n }\n if (renderOptions?.plain === true) {\n return state === currentIndex ? figures.pointer + prefix : prefix + \" \";\n }\n if (choices[currentIndex].disabled) {\n const annotation = Ansi.combine(Ansi.bold, Ansi.blackBright);\n return state === currentIndex ? Ansi.annotate(figures.pointer, annotation) + prefix : prefix + \" \";\n }\n return state === currentIndex ? Ansi.annotate(figures.pointer, Ansi.cyanBright) + prefix : prefix + \" \";\n};\nconst renderAutoCompleteChoicePrefix = (state, options, toDisplay, currentIndex, figures, renderOptions) => {\n let prefix = \" \";\n if (currentIndex === toDisplay.startIndex && toDisplay.startIndex > 0) {\n prefix = figures.arrowUp;\n } else if (currentIndex === toDisplay.endIndex - 1 && toDisplay.endIndex < state.filtered.length) {\n prefix = figures.arrowDown;\n }\n const choiceIndex = state.filtered[currentIndex];\n if (renderOptions?.plain === true) {\n return state.index === choiceIndex ? figures.pointer + prefix : prefix + \" \";\n }\n const choice = options.choices[choiceIndex];\n if (choice.disabled) {\n const annotation = Ansi.combine(Ansi.bold, Ansi.blackBright);\n return state.index === choiceIndex ? Ansi.annotate(figures.pointer, annotation) + prefix : prefix + \" \";\n }\n return state.index === choiceIndex ? Ansi.annotate(figures.pointer, Ansi.cyanBright) + prefix : prefix + \" \";\n};\nconst renderChoiceTitle = (choice, isSelected, renderOptions) => {\n if (renderOptions?.plain === true) {\n return choice.title;\n }\n const title = choice.title;\n if (isSelected) {\n return choice.disabled ? Ansi.annotate(title, Ansi.combine(Ansi.underlined, Ansi.blackBright)) : Ansi.annotate(title, Ansi.combine(Ansi.underlined, Ansi.cyanBright));\n }\n return choice.disabled ? Ansi.annotate(title, Ansi.combine(Ansi.strikethrough, Ansi.blackBright)) : title;\n};\nconst renderSelectChoices = (state, options, figures, renderOptions) => {\n const choices = options.choices;\n const toDisplay = entriesToDisplay(state, choices.length, options.maxPerPage);\n const documents = [];\n for (let index = toDisplay.startIndex; index < toDisplay.endIndex; index++) {\n const choice = choices[index];\n const isSelected = state === index;\n const prefix = renderChoicePrefix(state, choices, toDisplay, index, figures, renderOptions);\n const title = renderChoiceTitle(choice, isSelected, renderOptions);\n const description = renderChoiceDescription(choice, isSelected, renderOptions);\n documents.push(prefix + title + \" \" + description);\n }\n return documents.join(\"\\n\");\n};\nconst renderAutoCompleteChoices = (state, options, figures, renderOptions) => {\n if (state.filtered.length === 0) {\n return renderOptions?.plain === true ? options.emptyMessage : Ansi.annotate(options.emptyMessage, Ansi.blackBright);\n }\n const cursor = autoCompleteCursor(state);\n const toDisplay = entriesToDisplay(cursor, state.filtered.length, options.maxPerPage);\n const documents = [];\n for (let index = toDisplay.startIndex; index < toDisplay.endIndex; index++) {\n const choiceIndex = state.filtered[index];\n const choice = options.choices[choiceIndex];\n const isSelected = state.index === choiceIndex;\n const prefix = renderAutoCompleteChoicePrefix(state, options, toDisplay, index, figures, renderOptions);\n const title = renderChoiceTitle(choice, isSelected, renderOptions);\n const description = renderChoiceDescription(choice, isSelected, renderOptions);\n documents.push(prefix + title + \" \" + description);\n }\n return documents.join(\"\\n\");\n};\nconst renderSelectNextFrame = /*#__PURE__*/Effect.fnUntraced(function* (state, options) {\n const figures = yield* platformFigures;\n const choices = renderSelectChoices(state, options, figures);\n const leadingSymbol = Ansi.annotate(\"?\", Ansi.cyanBright);\n const trailingSymbol = Ansi.annotate(figures.pointerSmall, Ansi.blackBright);\n const promptMsg = renderSelectOutput(leadingSymbol, trailingSymbol, options);\n return Ansi.cursorHide + promptMsg + \"\\n\" + choices;\n});\nconst renderAutoCompleteNextFrame = /*#__PURE__*/Effect.fnUntraced(function* (state, options) {\n const figures = yield* platformFigures;\n const choices = renderAutoCompleteChoices(state, options, figures);\n const leadingSymbol = Ansi.annotate(\"?\", Ansi.cyanBright);\n const trailingSymbol = Ansi.annotate(figures.pointerSmall, Ansi.blackBright);\n const promptMsg = renderAutoCompleteOutput(state, leadingSymbol, trailingSymbol, options);\n return Ansi.cursorHide + promptMsg + \"\\n\" + choices;\n});\nconst renderSelectSubmission = /*#__PURE__*/Effect.fnUntraced(function* (state, options) {\n const figures = yield* platformFigures;\n const selected = options.choices[state].title;\n const leadingSymbol = Ansi.annotate(figures.tick, Ansi.green);\n const trailingSymbol = Ansi.annotate(figures.ellipsis, Ansi.blackBright);\n const promptMsg = renderSelectOutput(leadingSymbol, trailingSymbol, options);\n return promptMsg + \" \" + Ansi.annotate(selected, Ansi.white) + \"\\n\";\n});\nconst renderAutoCompleteSubmission = /*#__PURE__*/Effect.fnUntraced(function* (state, options) {\n const figures = yield* platformFigures;\n const selected = options.choices[state.index].title;\n const leadingSymbol = Ansi.annotate(figures.tick, Ansi.green);\n const trailingSymbol = Ansi.annotate(figures.ellipsis, Ansi.blackBright);\n const promptMsg = renderAutoCompleteOutput(state, leadingSymbol, trailingSymbol, options);\n return promptMsg + \" \" + Ansi.annotate(selected, Ansi.white) + \"\\n\";\n});\nconst processSelectCursorUp = (state, choices) => {\n if (state === 0) {\n return Effect.succeed(Action.NextFrame({\n state: choices.length - 1\n }));\n }\n return Effect.succeed(Action.NextFrame({\n state: state - 1\n }));\n};\nconst processSelectCursorDown = (state, choices) => {\n if (state === choices.length - 1) {\n return Effect.succeed(Action.NextFrame({\n state: 0\n }));\n }\n return Effect.succeed(Action.NextFrame({\n state: state + 1\n }));\n};\nconst processSelectNext = (state, choices) => {\n return Effect.succeed(Action.NextFrame({\n state: (state + 1) % choices.length\n }));\n};\nconst processAutoCompleteCursorUp = state => {\n if (state.filtered.length === 0) {\n return Effect.succeed(Action.Beep());\n }\n const cursor = autoCompleteCursor(state);\n const nextCursor = cursor === 0 ? state.filtered.length - 1 : cursor - 1;\n return Effect.succeed(Action.NextFrame({\n state: {\n ...state,\n index: state.filtered[nextCursor]\n }\n }));\n};\nconst processAutoCompleteCursorDown = state => {\n if (state.filtered.length === 0) {\n return Effect.succeed(Action.Beep());\n }\n const cursor = autoCompleteCursor(state);\n const nextCursor = (cursor + 1) % state.filtered.length;\n return Effect.succeed(Action.NextFrame({\n state: {\n ...state,\n index: state.filtered[nextCursor]\n }\n }));\n};\nconst processAutoCompleteNext = state => processAutoCompleteCursorDown(state);\nconst processAutoCompleteBackspace = (state, options) => {\n if (state.query.length === 0) {\n return Effect.succeed(Action.Beep());\n }\n const query = state.query.slice(0, state.query.length - 1);\n return Effect.succeed(Action.NextFrame({\n state: updateAutoCompleteState(state, options, query)\n }));\n};\nconst processAutoCompleteClear = (state, options) => Effect.succeed(Action.NextFrame({\n state: updateAutoCompleteState(state, options, \"\")\n}));\nconst processAutoCompleteInput = (input, state, options) => {\n if (input.length === 0) {\n return Effect.succeed(Action.Beep());\n }\n const query = state.query + input;\n return Effect.succeed(Action.NextFrame({\n state: updateAutoCompleteState(state, options, query)\n }));\n};\nconst handleSelectRender = options => {\n return (state, action) => {\n return Action.$match(action, {\n Beep: () => Effect.succeed(renderBeep),\n NextFrame: ({\n state\n }) => renderSelectNextFrame(state, options),\n Submit: () => renderSelectSubmission(state, options)\n });\n };\n};\nconst handleAutoCompleteRender = options => {\n return (state, action) => {\n return Action.$match(action, {\n Beep: () => Effect.succeed(renderBeep),\n NextFrame: ({\n state\n }) => renderAutoCompleteNextFrame(state, options),\n Submit: () => renderAutoCompleteSubmission(state, options)\n });\n };\n};\nconst handleSelectClear = options => Effect.fnUntraced(function* (state, _) {\n const terminal = yield* Terminal.Terminal;\n const columns = yield* terminal.columns;\n const figures = yield* platformFigures;\n const clearPrompt = Ansi.eraseLine + Ansi.cursorLeft;\n const promptText = renderSelectOutput(\"?\", figures.pointerSmall, options, {\n plain: true\n });\n const choicesText = renderSelectChoices(state, options, figures, {\n plain: true\n });\n const clearOutput = eraseText(`${promptText}\\n${choicesText}`, columns);\n return clearOutput + clearPrompt;\n});\nconst handleAutoCompleteClear = options => Effect.fnUntraced(function* (state, _) {\n const terminal = yield* Terminal.Terminal;\n const columns = yield* terminal.columns;\n const figures = yield* platformFigures;\n const clearPrompt = Ansi.eraseLine + Ansi.cursorLeft;\n const promptText = renderAutoCompleteOutput(state, \"?\", figures.pointerSmall, options, {\n plain: true\n });\n const choicesText = renderAutoCompleteChoices(state, options, figures, {\n plain: true\n });\n const clearOutput = eraseText(`${promptText}\\n${choicesText}`, columns);\n return clearOutput + clearPrompt;\n});\nconst handleSelectProcess = options => {\n return (input, state) => {\n switch (input.key.name) {\n case \"k\":\n case \"up\":\n {\n return processSelectCursorUp(state, options.choices);\n }\n case \"j\":\n case \"down\":\n {\n return processSelectCursorDown(state, options.choices);\n }\n case \"tab\":\n {\n return processSelectNext(state, options.choices);\n }\n case \"enter\":\n case \"return\":\n {\n const selected = options.choices[state];\n if (selected.disabled) {\n return Effect.succeed(Action.Beep());\n }\n return Effect.succeed(Action.Submit({\n value: selected.value\n }));\n }\n default:\n {\n return Effect.succeed(Action.Beep());\n }\n }\n };\n};\nconst handleAutoCompleteProcess = options => {\n return (input, state) => {\n if (input.key.ctrl) {\n if (input.key.name === \"u\") {\n return processAutoCompleteClear(state, options);\n }\n return Effect.succeed(Action.Beep());\n }\n switch (input.key.name) {\n case \"k\":\n case \"up\":\n {\n return processAutoCompleteCursorUp(state);\n }\n case \"j\":\n case \"down\":\n {\n return processAutoCompleteCursorDown(state);\n }\n case \"tab\":\n {\n return processAutoCompleteNext(state);\n }\n case \"backspace\":\n {\n return processAutoCompleteBackspace(state, options);\n }\n case \"enter\":\n case \"return\":\n {\n if (state.filtered.length === 0) {\n return Effect.succeed(Action.Beep());\n }\n const selected = options.choices[state.index];\n if (selected.disabled) {\n return Effect.succeed(Action.Beep());\n }\n return Effect.succeed(Action.Submit({\n value: selected.value\n }));\n }\n default:\n {\n return processAutoCompleteInput(Option.getOrElse(input.input, () => \"\"), state, options);\n }\n }\n };\n};\nconst renderClearScreen = /*#__PURE__*/Effect.fnUntraced(function* (state, options) {\n const terminal = yield* Terminal.Terminal;\n const columns = yield* terminal.columns;\n const figures = yield* platformFigures;\n const resetCurrentLine = Ansi.eraseLine + Ansi.cursorLeft;\n const errorText = renderTextError(state, figures.pointerSmall, {\n plain: true\n });\n const clearOutput = clearOutputWithError(renderTextOutput(state, \"?\", figures.pointerSmall, options, {\n plain: true\n }), columns, errorText);\n return clearOutput + resetCurrentLine;\n});\nconst renderTextInput = (nextState, options, submitted, renderOptions) => {\n const text = nextState.value;\n if (renderOptions?.plain === true) {\n switch (options.type) {\n case \"hidden\":\n {\n return \"\";\n }\n case \"password\":\n {\n return \"*\".repeat(text.length);\n }\n case \"text\":\n {\n return text;\n }\n }\n }\n const annotation = Option.isSome(nextState.error) ? Ansi.red : submitted ? Ansi.white : nextState.value.length === 0 ? Ansi.blackBright : Ansi.combine(Ansi.underlined, Ansi.cyanBright);\n switch (options.type) {\n case \"hidden\":\n {\n return \"\";\n }\n case \"password\":\n {\n return Ansi.annotate(\"*\".repeat(text.length), annotation);\n }\n case \"text\":\n {\n return Ansi.annotate(text, annotation);\n }\n }\n};\nconst renderTextError = (nextState, pointer, renderOptions) => {\n if (Option.isSome(nextState.error)) {\n return Arr.match(nextState.error.value.split(NEWLINE_REGEXP), {\n onEmpty: () => \"\",\n onNonEmpty: errorLines => {\n if (renderOptions?.plain === true) {\n return `${pointer} ${errorLines.join(\"\\n\")}`;\n }\n const prefix = Ansi.annotate(pointer, Ansi.red) + \" \";\n const lines = Arr.map(errorLines, str => annotateErrorLine(str));\n return Ansi.cursorSavePosition + \"\\n\" + prefix + lines.join(\"\\n\") + Ansi.cursorRestorePosition;\n }\n });\n }\n return \"\";\n};\nconst renderTextOutput = (nextState, leadingSymbol, trailingSymbol, options, renderOptions, submitted = false) => {\n const value = renderTextInput(nextState, options, submitted, renderOptions);\n return renderPrompt(value, options.message, leadingSymbol, trailingSymbol, renderOptions);\n};\nconst renderTextNextFrame = /*#__PURE__*/Effect.fnUntraced(function* (state, options) {\n const figures = yield* platformFigures;\n const leadingSymbol = Ansi.annotate(\"?\", Ansi.cyanBright);\n const trailingSymbol = Ansi.annotate(figures.pointerSmall, Ansi.blackBright);\n const promptMsg = renderTextOutput(state, leadingSymbol, trailingSymbol, options);\n const errorMsg = renderTextError(state, figures.pointerSmall);\n const offset = state.cursor - state.value.length;\n return promptMsg + errorMsg + Ansi.cursorMove(offset);\n});\nconst renderTextSubmission = /*#__PURE__*/Effect.fnUntraced(function* (state, options) {\n const figures = yield* platformFigures;\n const leadingSymbol = Ansi.annotate(figures.tick, Ansi.green);\n const trailingSymbol = Ansi.annotate(figures.ellipsis, Ansi.blackBright);\n const promptMsg = renderTextOutput(state, leadingSymbol, trailingSymbol, options, undefined, true);\n return promptMsg + \"\\n\";\n});\nconst processTextBackspace = state => {\n if (state.cursor <= 0) {\n return Effect.succeed(Action.Beep());\n }\n const beforeCursor = state.value.slice(0, state.cursor - 1);\n const afterCursor = state.value.slice(state.cursor);\n const cursor = state.cursor - 1;\n const value = `${beforeCursor}${afterCursor}`;\n return Effect.succeed(Action.NextFrame({\n state: {\n ...state,\n cursor,\n value,\n error: Option.none()\n }\n }));\n};\nconst processTextClear = state => Effect.succeed(Action.NextFrame({\n state: {\n ...state,\n cursor: 0,\n value: \"\",\n error: Option.none()\n }\n}));\nconst processTextCursorLeft = state => {\n if (state.cursor <= 0) {\n return Effect.succeed(Action.Beep());\n }\n const cursor = state.cursor - 1;\n return Effect.succeed(Action.NextFrame({\n state: {\n ...state,\n cursor,\n error: Option.none()\n }\n }));\n};\nconst processTextCursorRight = state => {\n if (state.cursor >= state.value.length) {\n return Effect.succeed(Action.Beep());\n }\n const cursor = Math.min(state.cursor + 1, state.value.length);\n return Effect.succeed(Action.NextFrame({\n state: {\n ...state,\n cursor,\n error: Option.none()\n }\n }));\n};\nconst processTextCursorStart = state => Effect.succeed(Action.NextFrame({\n state: {\n ...state,\n cursor: 0,\n error: Option.none()\n }\n}));\nconst processTextCursorEnd = state => Effect.succeed(Action.NextFrame({\n state: {\n ...state,\n cursor: state.value.length,\n error: Option.none()\n }\n}));\nconst processTab = (state, options) => {\n if (state.value === options.default) {\n return Effect.succeed(Action.Beep());\n }\n const value = state.value.length === 0 ? options.default : state.value;\n return Effect.succeed(Action.NextFrame({\n state: {\n ...state,\n value,\n cursor: value.length,\n error: Option.none()\n }\n }));\n};\nconst defaultTextProcessor = (input, state) => {\n const beforeCursor = state.value.slice(0, state.cursor);\n const afterCursor = state.value.slice(state.cursor);\n const value = `${beforeCursor}${input}${afterCursor}`;\n const cursor = state.cursor + input.length;\n return Effect.succeed(Action.NextFrame({\n state: {\n ...state,\n cursor,\n value,\n error: Option.none()\n }\n }));\n};\nconst handleTextRender = options => {\n return (state, action) => {\n return Action.$match(action, {\n Beep: () => Effect.succeed(renderBeep),\n NextFrame: ({\n state\n }) => renderTextNextFrame(state, options),\n Submit: () => renderTextSubmission(state, options)\n });\n };\n};\nconst handleTextProcess = options => {\n return (input, state) => {\n if (input.key.ctrl) {\n switch (input.key.name) {\n case \"u\":\n {\n return processTextClear(state);\n }\n case \"a\":\n {\n return processTextCursorStart(state);\n }\n case \"e\":\n {\n return processTextCursorEnd(state);\n }\n default:\n {\n return Effect.succeed(Action.Beep());\n }\n }\n }\n switch (input.key.name) {\n case \"backspace\":\n {\n return processTextBackspace(state);\n }\n case \"left\":\n {\n return processTextCursorLeft(state);\n }\n case \"right\":\n {\n return processTextCursorRight(state);\n }\n case \"home\":\n {\n return processTextCursorStart(state);\n }\n case \"end\":\n {\n return processTextCursorEnd(state);\n }\n case \"enter\":\n case \"return\":\n {\n const value = state.value;\n return Effect.match(options.validate(value), {\n onFailure: error => Action.NextFrame({\n state: {\n ...state,\n value,\n error: Option.some(error)\n }\n }),\n onSuccess: value => Action.Submit({\n value\n })\n });\n }\n case \"tab\":\n {\n return processTab(state, options);\n }\n default:\n {\n return defaultTextProcessor(Option.getOrElse(input.input, () => \"\"), state);\n }\n }\n };\n};\nconst handleTextClear = options => {\n return (state, _) => {\n return renderClearScreen(state, options);\n };\n};\nconst basePrompt = (options, type) => {\n const opts = {\n default: \"\",\n type,\n validate: Effect.succeed,\n ...options\n };\n const initialState = {\n cursor: opts.default.length,\n value: opts.default,\n error: Option.none()\n };\n return custom(initialState, {\n render: handleTextRender(opts),\n process: handleTextProcess(opts),\n clear: handleTextClear(opts)\n });\n};\nconst handleToggleClear = /*#__PURE__*/Effect.fnUntraced(function* (options) {\n const terminal = yield* Terminal.Terminal;\n const columns = yield* terminal.columns;\n const figures = yield* platformFigures;\n const clearPrompt = Ansi.eraseLine + Ansi.cursorLeft;\n const toggleText = `${options.active} / ${options.inactive}`;\n const promptText = renderPrompt(toggleText, options.message, \"?\", figures.pointerSmall, {\n plain: true\n });\n const clearOutput = eraseText(promptText, columns);\n return clearOutput + clearPrompt;\n});\nconst renderToggle = (value, options, submitted = false) => {\n const separator = Ansi.annotate(\"/\", Ansi.blackBright);\n const selectedAnnotation = Ansi.combine(Ansi.underlined, submitted ? Ansi.white : Ansi.cyanBright);\n const inactive = value ? options.inactive : Ansi.annotate(options.inactive, selectedAnnotation);\n const active = value ? Ansi.annotate(options.active, selectedAnnotation) : options.active;\n return active + \" \" + separator + \" \" + inactive;\n};\nconst renderToggleOutput = (toggle, leadingSymbol, trailingSymbol, options) => {\n const promptLines = options.message.split(NEWLINE_REGEXP);\n const prefix = leadingSymbol + \" \";\n if (Arr.isReadonlyArrayNonEmpty(promptLines)) {\n const lines = Arr.map(promptLines, line => annotateLine(line));\n return prefix + lines.join(\"\\n\") + \" \" + trailingSymbol + \" \" + toggle;\n }\n return prefix + \" \" + trailingSymbol + \" \" + toggle;\n};\nconst renderToggleNextFrame = /*#__PURE__*/Effect.fnUntraced(function* (state, options) {\n const figures = yield* platformFigures;\n const leadingSymbol = Ansi.annotate(\"?\", Ansi.cyanBright);\n const trailingSymbol = Ansi.annotate(figures.pointerSmall, Ansi.blackBright);\n const toggle = renderToggle(state, options);\n const promptMsg = renderToggleOutput(toggle, leadingSymbol, trailingSymbol, options);\n return Ansi.cursorHide + promptMsg;\n});\nconst renderToggleSubmission = /*#__PURE__*/Effect.fnUntraced(function* (value, options) {\n const figures = yield* platformFigures;\n const leadingSymbol = Ansi.annotate(figures.tick, Ansi.green);\n const trailingSymbol = Ansi.annotate(figures.ellipsis, Ansi.blackBright);\n const toggle = renderToggle(value, options, true);\n const promptMsg = renderToggleOutput(toggle, leadingSymbol, trailingSymbol, options);\n return promptMsg + \"\\n\";\n});\nconst activate = /*#__PURE__*/Effect.succeed(/*#__PURE__*/Action.NextFrame({\n state: true\n}));\nconst deactivate = /*#__PURE__*/Effect.succeed(/*#__PURE__*/Action.NextFrame({\n state: false\n}));\nconst handleToggleRender = options => {\n return (state, action) => {\n switch (action._tag) {\n case \"Beep\":\n {\n return Effect.succeed(renderBeep);\n }\n case \"NextFrame\":\n {\n return renderToggleNextFrame(state, options);\n }\n case \"Submit\":\n {\n return renderToggleSubmission(state, options);\n }\n }\n };\n};\nconst handleToggleProcess = (input, state) => {\n switch (input.key.name) {\n case \"0\":\n case \"j\":\n case \"delete\":\n case \"right\":\n case \"down\":\n {\n return deactivate;\n }\n case \"1\":\n case \"k\":\n case \"left\":\n case \"up\":\n {\n return activate;\n }\n case \" \":\n case \"tab\":\n {\n return state ? deactivate : activate;\n }\n case \"enter\":\n case \"return\":\n {\n return Effect.succeed(Action.Submit({\n value: state\n }));\n }\n default:\n {\n return Effect.succeed(Action.Beep());\n }\n }\n};\nconst entriesToDisplay = (cursor, total, maxVisible) => {\n const max = maxVisible === undefined ? total : maxVisible;\n let startIndex = Math.min(total - max, cursor - Math.floor(max / 2));\n if (startIndex < 0) {\n startIndex = 0;\n }\n const endIndex = Math.min(startIndex + max, total);\n return {\n startIndex,\n endIndex\n };\n};\n//# sourceMappingURL=Prompt.js.map",
87
86
  "/**\n * The `Param` module defines the shared parser tree used by the unstable CLI\n * `Argument` and `Flag` modules. A `Param<Kind, A>` describes how to consume\n * either positional arguments or named flags from parsed command-line input and\n * return a typed value.\n *\n * **Common tasks**\n *\n * - Build primitive CLI inputs such as strings, booleans, numbers, choices,\n * paths, files, and redacted values\n * - Attach help metadata with aliases and descriptions\n * - Transform parsed values with pure or effectful validation\n * - Model missing inputs with `Option`, defaults, config fallbacks, or prompts\n * - Accept repeated inputs with variadic, bounded, and non-empty parameters\n *\n * **Gotchas**\n *\n * - The `Kind` type parameter (`\"argument\"` or `\"flag\"`) keeps positional\n * arguments and flags separate while allowing the implementation and\n * combinators to be shared.\n * - Combinators preserve the parameter kind, so an argument parameter cannot be\n * accidentally composed into a flag parameter or the reverse.\n * - Parsers return both the remaining positional arguments and the parsed\n * value; this is important for argument ordering and variadic parameters.\n * - Some parsers require CLI services such as filesystem, path, terminal, or\n * child-process support through the parsing environment.\n *\n * @since 4.0.0\n */\nimport * as Config from \"../../Config.js\";\nimport * as Effect from \"../../Effect.js\";\nimport { dual, identity } from \"../../Function.js\";\nimport * as Option from \"../../Option.js\";\nimport { pipeArguments } from \"../../Pipeable.js\";\nimport * as Predicate from \"../../Predicate.js\";\nimport * as Result from \"../../Result.js\";\nimport * as Schema from \"../../Schema.js\";\nimport * as CliError from \"./CliError.js\";\nimport * as Primitive from \"./Primitive.js\";\nimport * as Prompt from \"./Prompt.js\";\nconst TypeId = \"~effect/cli/Param\";\n/**\n * Defines the kind discriminator for positional argument parameters.\n *\n * **When to use**\n *\n * Use to build low-level `Param` constructors or type positions for positional\n * argument parameters.\n *\n * @see {@link flagKind} for the named flag parameter discriminator\n * @see {@link ParamKind} for the full parameter kind union\n *\n * @category constants\n * @since 4.0.0\n */\nexport const argumentKind = \"argument\";\n/**\n * Defines the kind discriminator for flag parameters.\n *\n * **When to use**\n *\n * Use to build low-level `Param` constructors or type positions for named flag\n * parameters.\n *\n * @see {@link argumentKind} for the positional argument parameter discriminator\n *\n * @category constants\n * @since 4.0.0\n */\nexport const flagKind = \"flag\";\nconst Proto = {\n [TypeId]: {\n _A: identity\n },\n pipe() {\n return pipeArguments(this, arguments);\n }\n};\n/**\n * Type guard to check if a value is a Param.\n *\n * **Example** (Checking for params)\n *\n * ```ts\n * import { Param } from \"effect/unstable/cli\"\n *\n * // @internal - this module is not exported publicly\n *\n * const maybeParam = Param.string(Param.flagKind, \"name\")\n *\n * if (Param.isParam(maybeParam)) {\n * console.log(\"This is a Param\")\n * }\n * ```\n *\n * @category refinements\n * @since 4.0.0\n */\nexport const isParam = u => Predicate.hasProperty(u, TypeId);\n/**\n * Type guard to check if a param is a Single param (not composed).\n *\n * **Example** (Checking for single params)\n *\n * ```ts\n * import { Param } from \"effect/unstable/cli\"\n *\n * // @internal - this module is not exported publicly\n *\n * const nameParam = Param.string(Param.flagKind, \"name\")\n * const optionalParam = Param.optional(nameParam)\n *\n * console.log(Param.isSingle(nameParam)) // true\n * console.log(Param.isSingle(optionalParam)) // false\n * ```\n *\n * @category refinements\n * @since 4.0.0\n */\nexport const isSingle = param => Predicate.isTagged(param, \"Single\");\n/**\n * Type guard to check if a Single param is a flag (not an argument).\n *\n * @internal\n */\nexport const isFlagParam = single => single.kind === \"flag\";\n/**\n * Constructs a leaf `Single` parameter from its kind, name, primitive parser,\n * and optional help metadata.\n *\n * **Details**\n *\n * The returned parser reads either one positional argument or the named flag,\n * depending on `kind`.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const makeSingle = params => {\n const parse = args => params.kind === argumentKind ? parsePositional(params.name, params.primitiveType, args) : parseFlag(params.name, params.primitiveType, args);\n return Object.assign(Object.create(Proto), {\n _tag: \"Single\",\n ...params,\n description: params.description ?? Option.none(),\n aliases: params.aliases ?? [],\n hidden: params.hidden ?? false,\n parse\n });\n};\n/**\n * Creates a string parameter.\n *\n * **Example** (Creating string parameters)\n *\n * ```ts\n * import { Param } from \"effect/unstable/cli\"\n *\n * // @internal - this module is not exported publicly\n *\n * // Create a string flag\n * const nameFlag = Param.string(Param.flagKind, \"name\")\n *\n * // Create a string argument\n * const fileArg = Param.string(Param.argumentKind, \"file\")\n *\n * // Usage in CLI: --name \"John Doe\" or as positional argument\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const string = (kind, name) => makeSingle({\n name,\n primitiveType: Primitive.string,\n kind\n});\n/**\n * Creates a boolean parameter.\n *\n * **Example** (Creating boolean parameters)\n *\n * ```ts\n * import { Param } from \"effect/unstable/cli\"\n *\n * // @internal - this module is not exported publicly\n *\n * // Create a boolean flag\n * const verboseFlag = Param.boolean(Param.flagKind, \"verbose\")\n *\n * // Create a boolean argument\n * const enableArg = Param.boolean(Param.argumentKind, \"enable\")\n *\n * // Usage in CLI: --verbose (defaults to true when present, false when absent)\n * // or as positional: true/false\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const boolean = (kind, name) => makeSingle({\n name,\n primitiveType: Primitive.boolean,\n kind\n});\n/**\n * Creates an integer parameter.\n *\n * **Example** (Creating integer parameters)\n *\n * ```ts\n * import { Param } from \"effect/unstable/cli\"\n *\n * // @internal - this module is not exported publicly\n *\n * // Create an integer flag\n * const portFlag = Param.integer(Param.flagKind, \"port\")\n *\n * // Create an integer argument\n * const countArg = Param.integer(Param.argumentKind, \"count\")\n *\n * // Usage in CLI: --port 8080 or as positional argument: 42\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const integer = (kind, name) => makeSingle({\n name,\n primitiveType: Primitive.integer,\n kind\n});\n/**\n * Creates a floating-point number parameter.\n *\n * **Example** (Creating float parameters)\n *\n * ```ts\n * import { Param } from \"effect/unstable/cli\"\n *\n * // @internal - this module is not exported publicly\n *\n * // Create a float flag\n * const rateFlag = Param.float(Param.flagKind, \"rate\")\n *\n * // Create a float argument\n * const thresholdArg = Param.float(Param.argumentKind, \"threshold\")\n *\n * // Usage in CLI: --rate 0.95 or as positional argument: 3.14159\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const float = (kind, name) => makeSingle({\n name,\n primitiveType: Primitive.float,\n kind\n});\n/**\n * Creates a date parameter that parses ISO date strings.\n *\n * **Example** (Creating date parameters)\n *\n * ```ts\n * import { Param } from \"effect/unstable/cli\"\n *\n * // @internal - this module is not exported publicly\n *\n * // Create a date flag\n * const startFlag = Param.date(Param.flagKind, \"start-date\")\n *\n * // Create a date argument\n * const dueDateArg = Param.date(Param.argumentKind, \"due-date\")\n *\n * // Usage in CLI: --start-date \"2023-12-25\" or as positional: \"2023-01-01\"\n * // Parses to JavaScript Date object\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const date = (kind, name) => makeSingle({\n name,\n primitiveType: Primitive.date,\n kind\n});\n/**\n * Constructs command-line params that represent a choice between several\n * inputs. The input will be mapped to it's associated value during parsing.\n *\n * **Example** (Creating valued choices)\n *\n * ```ts\n * import { Param } from \"effect/unstable/cli\"\n *\n * // @internal - this module is not exported publicly\n *\n * type Animal = Dog | Cat\n *\n * interface Dog {\n * readonly _tag: \"Dog\"\n * }\n *\n * interface Cat {\n * readonly _tag: \"Cat\"\n * }\n *\n * const animal = Param.choiceWithValue(Param.flagKind, \"animal\", [\n * [\"dog\", { _tag: \"Dog\" }],\n * [\"cat\", { _tag: \"Cat\" }]\n * ])\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const choiceWithValue = (kind, name, choices) => makeSingle({\n name,\n primitiveType: Primitive.choice(choices),\n kind\n});\n/**\n * Constructs command-line params that represent a choice between several\n * string inputs.\n *\n * **Example** (Creating string choices)\n *\n * ```ts\n * import { Param } from \"effect/unstable/cli\"\n *\n * // @internal - this module is not exported publicly\n *\n * const logLevel = Param.choice(Param.flagKind, \"log-level\", [\n * \"debug\",\n * \"info\",\n * \"warn\",\n * \"error\"\n * ])\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const choice = (kind, name, choices) => {\n const mappedChoices = choices.map(value => [value, value]);\n return choiceWithValue(kind, name, mappedChoices);\n};\n/**\n * Creates a path parameter that accepts file or directory paths.\n *\n * **Example** (Creating path parameters)\n *\n * ```ts\n * import { Param } from \"effect/unstable/cli\"\n *\n * // @internal - this module is not exported publicly\n *\n * // Basic path parameter\n * const outputPath = Param.path(Param.flagKind, \"output\")\n *\n * // Path that must exist\n * const inputPath = Param.path(Param.flagKind, \"input\", { mustExist: true })\n *\n * // File-only path\n * const configFile = Param.path(Param.flagKind, \"config\", {\n * pathType: \"file\",\n * mustExist: true,\n * typeName: \"config-file\"\n * })\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const path = (kind, name, options) => makeSingle({\n name,\n kind,\n primitiveType: Primitive.path(options?.pathType ?? \"either\", options?.mustExist),\n typeName: options?.typeName\n});\n/**\n * Creates a directory path parameter.\n *\n * **Details**\n *\n * This is a convenience function that creates a path parameter with the\n * `pathType` set to `\"directory\"` and a default type name of `\"directory\"`.\n *\n * **Example** (Creating directory parameters)\n *\n * ```ts\n * import { Param } from \"effect/unstable/cli\"\n *\n * // @internal - this module is not exported publicly\n *\n * // Basic directory parameter\n * const outputDir = Param.directory(Param.flagKind, \"output-dir\")\n *\n * // Directory that must exist\n * const sourceDir = Param.directory(Param.flagKind, \"source\", { mustExist: true })\n *\n * // Usage: --output-dir /path/to/dir --source /existing/dir\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const directory = (kind, name, options) => path(kind, name, {\n pathType: \"directory\",\n typeName: \"directory\",\n mustExist: options?.mustExist\n});\n/**\n * Creates a file path parameter.\n *\n * **Details**\n *\n * This is a convenience function that creates a path parameter with a\n * `pathType` set to `\"file\"` and a default type name of `\"file\"`.\n *\n * **Example** (Creating file parameters)\n *\n * ```ts\n * import { Param } from \"effect/unstable/cli\"\n *\n * // @internal - this module is not exported publicly\n *\n * // Basic file parameter\n * const outputFile = Param.file(Param.flagKind, \"output\")\n *\n * // File that must exist\n * const inputFile = Param.file(Param.flagKind, \"input\", { mustExist: true })\n *\n * // Usage: --output result.txt --input existing-file.txt\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const file = (kind, name, options) => path(kind, name, {\n pathType: \"file\",\n typeName: \"file\",\n mustExist: options?.mustExist\n});\n/**\n * Creates a redacted parameter for sensitive data like passwords.\n * The value is masked in help output and logging.\n *\n * **Example** (Creating redacted parameters)\n *\n * ```ts\n * import { Param } from \"effect/unstable/cli\"\n *\n * // @internal - this module is not exported publicly\n *\n * // Create a password parameter\n * const password = Param.redacted(Param.flagKind, \"password\")\n *\n * // Create an API key argument\n * const apiKey = Param.redacted(Param.argumentKind, \"api-key\")\n *\n * // Usage: --password (value will be hidden in help/logs)\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const redacted = (kind, name) => makeSingle({\n name,\n primitiveType: Primitive.redacted,\n kind\n});\n/**\n * Creates a parameter that reads and returns file content as a string.\n *\n * **Example** (Reading file text)\n *\n * ```ts\n * import { Param } from \"effect/unstable/cli\"\n *\n * // @internal - this module is not exported publicly\n *\n * // Read a config file as string\n * const configContent = Param.fileText(Param.flagKind, \"config\")\n *\n * // Read a template file as argument\n * const templateContent = Param.fileText(Param.argumentKind, \"template\")\n *\n * // Usage: --config config.txt (reads file content into string)\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const fileText = (kind, name) => makeSingle({\n name,\n primitiveType: Primitive.fileText,\n kind\n});\n/**\n * Creates a param that reads and parses the content of the specified file.\n *\n * **Details**\n *\n * The parser that is utilized will depend on the specified `format`, or the\n * extension of the file passed on the command-line if no `format` is specified.\n *\n * **Example** (Parsing file contents)\n *\n * ```ts\n * import { Param } from \"effect/unstable/cli\"\n *\n * // @internal - this module is not exported publicly\n *\n * // Will use the extension of the file passed on the command line to determine\n * // the parser to use\n * const config = Param.fileParse(Param.flagKind, \"config\")\n *\n * // Will use the JSON parser\n * const jsonConfig = Param.fileParse(Param.flagKind, \"json-config\", {\n * format: \"json\"\n * })\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const fileParse = (kind, name, options) => makeSingle({\n name,\n primitiveType: Primitive.fileParse(options),\n kind\n});\n/**\n * Creates a parameter that reads and validates file content using a schema.\n *\n * **Example** (Validating file contents)\n *\n * ```ts\n * import { Schema } from \"effect\"\n * import { Param } from \"effect/unstable/cli\"\n * // @internal - this module is not exported publicly\n *\n * // Parse JSON config file\n * const configSchema = Schema.Struct({\n * port: Schema.Number,\n * host: Schema.String\n * })\n *\n * const config = Param.fileSchema(Param.flagKind, \"config\", configSchema, {\n * format: \"json\"\n * })\n *\n * // Parse YAML file\n * const yamlConfig = Param.fileSchema(Param.flagKind, \"config\", configSchema, {\n * format: \"yaml\"\n * })\n *\n * // Usage: --config config.json (reads and validates file content)\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const fileSchema = (kind, name, schema, options) => makeSingle({\n name,\n primitiveType: Primitive.fileSchema(schema, options),\n kind\n});\n/**\n * Creates a param that parses key=value pairs.\n *\n * **When to use**\n *\n * Use when you use it for options that accept configuration values.\n *\n * **Details**\n *\n * Requires at least one key=value pair. The parsed pairs are merged into a\n * single record object.\n *\n * **Example** (Parsing key-value pairs)\n *\n * ```ts\n * import { Param } from \"effect/unstable/cli\"\n *\n * // @internal - this module is not exported publicly\n *\n * const env = Param.keyValuePair(Param.flagKind, \"env\")\n * // --env FOO=bar --env BAZ=qux will parse to { FOO: \"bar\", BAZ: \"qux\" }\n *\n * const props = Param.keyValuePair(Param.flagKind, \"property\")\n * // --property name=value --property debug=true\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const keyValuePair = (kind, name) => map(variadic(makeSingle({\n name,\n primitiveType: Primitive.keyValuePair,\n kind\n}), {\n min: 1\n}), objects => Object.assign({}, ...objects));\n/**\n * Creates an empty sentinel parameter that always fails to parse.\n *\n * **When to use**\n *\n * Use when this is useful for creating placeholder parameters or for combinators.\n *\n * **Example** (Creating sentinel parameters)\n *\n * ```ts\n * import { Param } from \"effect/unstable/cli\"\n *\n * // @internal - this module is not exported publicly\n *\n * const disabledDebugParam = Param.none(Param.flagKind)\n *\n * const makeDebugParam = (enableDebug: boolean) =>\n * enableDebug ? Param.string(Param.flagKind, \"debug\") : disabledDebugParam\n *\n * console.log(makeDebugParam(true) === disabledDebugParam) // false\n * console.log(makeDebugParam(false) === disabledDebugParam) // true\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const none = kind => makeSingle({\n name: \"__none__\",\n primitiveType: Primitive.none,\n kind\n});\nconst FLAG_DASH_REGEXP = /^-+/;\n/**\n * Adds an alias to an option.\n *\n * **When to use**\n *\n * Use when aliases allow params to be specified with alternative names,\n * typically single-character shortcuts like \"-f\" for \"--force\".\n *\n * **Details**\n *\n * This works on any param structure by recursively finding the underlying\n * `Single` node and applying the alias there.\n *\n * **Example** (Adding parameter aliases)\n *\n * ```ts\n * import { Param } from \"effect/unstable/cli\"\n *\n * // @internal - this module is not exported publicly\n *\n * const force = Param.boolean(Param.flagKind, \"force\").pipe(\n * Param.withAlias(\"-f\"),\n * Param.withAlias(\"-F\")\n * )\n *\n * // Also works on composed params:\n * const count = Param.integer(Param.flagKind, \"count\").pipe(\n * Param.optional,\n * Param.withAlias(\"-c\") // finds the underlying Single and adds alias\n * )\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const withAlias = /*#__PURE__*/dual(2, (self, alias) => {\n return transformSingle(self, single => makeSingle({\n ...single,\n aliases: [...single.aliases, alias.replace(FLAG_DASH_REGEXP, \"\")]\n }));\n});\n/**\n * Adds a description to an option for help text.\n *\n * **Details**\n *\n * Descriptions provide users with information about what the option does\n * when they view help documentation.\n *\n * **Example** (Adding help descriptions)\n *\n * ```ts\n * import { Param } from \"effect/unstable/cli\"\n *\n * // @internal - this module is not exported publicly\n *\n * const verbose = Param.boolean(Param.flagKind, \"verbose\").pipe(\n * Param.withAlias(\"-v\"),\n * Param.withDescription(\"Enable verbose output\")\n * )\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const withDescription = /*#__PURE__*/dual(2, (self, description) => {\n return transformSingle(self, single => makeSingle({\n ...single,\n description: Option.some(description)\n }));\n});\n/**\n * Hides a parameter from generated help output and completions while keeping\n * it parseable on the command line.\n *\n * **When to use**\n *\n * Use when experimental, internal, or deprecated flags that should be\n * accepted but not advertised.\n *\n * **Example** (Hiding a flag from help)\n *\n * ```ts\n * import { Param } from \"effect/unstable/cli\"\n *\n * // @internal - this module is not exported publicly\n *\n * const experimental = Param.boolean(Param.flagKind, \"experimental-foo\").pipe(\n * Param.withHidden\n * )\n * ```\n *\n * @category metadata\n * @since 4.0.0\n */\nexport const withHidden = self => transformSingle(self, single => makeSingle({\n ...single,\n hidden: true\n}));\n/**\n * Transforms the parsed value of an option using a mapping function.\n *\n * **Example** (Mapping parsed values)\n *\n * ```ts\n * import { Param } from \"effect/unstable/cli\"\n *\n * // @internal - this module is not exported publicly\n *\n * const port = Param.integer(Param.flagKind, \"port\").pipe(\n * Param.map((n) => ({ port: n, url: `http://localhost:${n}` }))\n * )\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const map = /*#__PURE__*/dual(2, (self, f) => {\n const parse = args => Effect.map(self.parse(args), ([operands, value]) => [operands, f(value)]);\n return Object.assign(Object.create(Proto), {\n _tag: \"Map\",\n kind: self.kind,\n param: self,\n f,\n parse\n });\n});\nconst transform = (self, f) => Object.assign(Object.create(Proto), {\n _tag: \"Transform\",\n kind: self.kind,\n param: self,\n f,\n parse: f(self.parse)\n});\n/**\n * Transforms the parsed value of an option using an effectful mapping function.\n *\n * **Example** (Mapping parsed values effectfully)\n *\n * ```ts\n * import { Effect } from \"effect\"\n * import { CliError, Param } from \"effect/unstable/cli\"\n *\n * // @internal - this module is not exported publicly\n *\n * const validatedEmail = Param.string(Param.flagKind, \"email\").pipe(\n * Param.mapEffect((email) =>\n * email.includes(\"@\")\n * ? Effect.succeed(email)\n * : Effect.fail(\n * new CliError.InvalidValue({\n * option: \"email\",\n * value: email,\n * expected: \"valid email format\",\n * kind: \"flag\"\n * })\n * )\n * )\n * )\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const mapEffect = /*#__PURE__*/dual(2, (self, f) => transform(self, parse => args => Effect.flatMap(parse(args), ([leftover, a]) => f(a).pipe(Effect.map(b => [leftover, b])))));\n/**\n * Transforms the parsed value of an option using a function that may throw,\n * converting any thrown errors into failure messages.\n *\n * **Example** (Mapping thrown errors)\n *\n * ```ts\n * import { Param } from \"effect/unstable/cli\"\n *\n * // @internal - this module is not exported publicly\n *\n * const parsedJson = Param.string(Param.flagKind, \"config\").pipe(\n * Param.mapTryCatch(\n * (str) => JSON.parse(str),\n * (error) =>\n * `Invalid JSON: ${error instanceof Error ? error.message : String(error)}`\n * )\n * )\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const mapTryCatch = /*#__PURE__*/dual(3, (self, f, onError) => {\n const single = getUnderlyingSingleOrThrow(self);\n return transform(self, parse => args => Effect.flatMap(parse(args), ([leftover, a]) => Effect.try({\n try: () => f(a),\n catch: error => onError(error)\n }).pipe(Effect.mapError(error => new CliError.InvalidValue({\n option: single.name,\n value: String(a),\n expected: error,\n kind: single.kind\n })), Effect.map(b => [leftover, b]))));\n});\n/**\n * Makes a flag or positional argument optional.\n *\n * **Details**\n *\n * When the parameter is absent, parsing succeeds with `Option.none()` instead\n * of failing with a missing option or missing argument error. When present, the\n * parsed value is wrapped in `Option.some()`.\n *\n * **Example** (Making parameters optional)\n *\n * ```ts\n * import { Param } from \"effect/unstable/cli\"\n *\n * // Create an optional port option\n * // - When not provided: returns Option.none()\n * // - When provided: returns Option.some(parsedValue)\n * const port = Param.optional(Param.integer(Param.flagKind, \"port\"))\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const optional = param => {\n const parse = Effect.fnUntraced(function* (args) {\n const single = getUnderlyingSingleOrThrow(param);\n // Handle boolean params that are explicitly marked as optional (i.e. the\n // end user wants to return `Option.none()` instead of `false` when the\n // flag (or its negated variant) are not present on the command line\n if (isFlagParam(single) && Primitive.isBoolean(single.primitiveType) && ![single.name, ...single.aliases].some(name => (args.flags[name] ?? []).length > 0)) {\n return [args.arguments, Option.none()];\n }\n return yield* param.parse(args).pipe(Effect.map(([leftover, value]) => [leftover, Option.some(value)]),\n // Catch both MissingOption (for flags) and MissingArgument (for positional arguments)\n Effect.catchTags({\n MissingOption: () => Effect.succeed([args.arguments, Option.none()]),\n MissingArgument: () => Effect.succeed([args.arguments, Option.none()])\n }));\n });\n return Object.assign(Object.create(Proto), {\n _tag: \"Optional\",\n kind: param.kind,\n param,\n parse\n });\n};\n/**\n * Makes a flag or positional argument optional by supplying a fallback value.\n *\n * **Details**\n *\n * The fallback may be a pure value or an effect. It is used only when the\n * parameter is absent; provided values are parsed normally.\n *\n * **Example** (Providing default values)\n *\n * ```ts\n * import { Param } from \"effect/unstable/cli\"\n *\n * // @internal - this module is not exported publicly\n *\n * // Using the pipe operator to make an option optional\n * const port = Param.integer(Param.flagKind, \"port\").pipe(\n * Param.withDefault(8080)\n * )\n *\n * // Can also be used with other combinators\n * const verbose = Param.boolean(Param.flagKind, \"verbose\").pipe(\n * Param.withAlias(\"-v\"),\n * Param.withDescription(\"Enable verbose output\"),\n * Param.withDefault(false)\n * )\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const withDefault = /*#__PURE__*/dual(2, (self, defaultValue) => {\n if (!Effect.isEffect(defaultValue)) {\n return map(optional(self), Option.getOrElse(() => defaultValue));\n }\n return mapEffect(optional(self), Option.match({\n onNone: () => defaultValue,\n onSome: Effect.succeed\n }));\n});\n/**\n * Adds a fallback config that is loaded when a required parameter is missing.\n *\n * **When to use**\n *\n * Use when config should provide a fallback source for required flags or\n * arguments that are absent from CLI input.\n *\n * **Details**\n *\n * Provided CLI values win. Config is loaded only after a missing option or\n * missing argument error.\n *\n * **Gotchas**\n *\n * Missing config preserves the original missing-parameter error. Config parse\n * failure becomes `CliError.InvalidValue`.\n *\n * @see {@link withDefault} for a pure default value\n * @see {@link withFallbackPrompt} for prompting interactively when input is missing\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const withFallbackConfig = /*#__PURE__*/dual(2, (self, config) => {\n const toInvalidValue = (error, configError) => new CliError.InvalidValue({\n option: error._tag === \"MissingOption\" ? error.option : error.argument,\n value: \"config\",\n expected: configError.message,\n kind: error._tag === \"MissingOption\" ? \"flag\" : \"argument\"\n });\n const runConfig = (error, args) => Config.option(config).pipe(Effect.mapError(configError => toInvalidValue(error, configError)), Effect.flatMap(Option.match({\n onNone: () => Effect.fail(error),\n onSome: value => Effect.succeed([args.arguments, value])\n })));\n return transform(self, parse => args => parse(args).pipe(Effect.catchTag([\"MissingOption\", \"MissingArgument\"], error => runConfig(error, args))));\n});\n/**\n * Adds a fallback prompt that is shown when a required parameter is missing.\n *\n * **When to use**\n *\n * Use when a CLI should ask interactively for a missing required flag or\n * argument.\n *\n * **Details**\n *\n * `FallbackPrompt` accepts either a `Prompt` or an effect that builds one.\n * Effectful prompt creation is lazy and runs only when the fallback is needed.\n *\n * **Gotchas**\n *\n * This only handles missing options and missing arguments. Invalid values do not\n * prompt, and prompt cancellation re-fails with the original missing error.\n *\n * @see {@link FallbackPrompt} for accepted fallback prompt forms\n * @see {@link withFallbackConfig} for loading a fallback from config\n * @see {@link withDefault} for a pure default value\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const withFallbackPrompt = /*#__PURE__*/dual(2, (self, prompt) => {\n const runPrompt = (error, args) => Effect.flatMap(Prompt.isPrompt(prompt) ? Effect.succeed(prompt) : prompt, Prompt.run).pipe(Effect.map(value => [args.arguments, value]), Effect.catchTag(\"QuitError\", () => Effect.fail(error)));\n return transform(self, parse => args => parse(args).pipe(Effect.catchTag([\"MissingOption\", \"MissingArgument\"], error => runPrompt(error, args))));\n});\n/**\n * Creates a variadic parameter that can be specified multiple times.\n *\n * **Details**\n *\n * This is the base combinator for creating parameters that accept multiple values.\n * The min and max parameters are optional - if not provided, the parameter can be\n * specified any number of times (0 to infinity).\n *\n * **Example** (Accepting multiple values)\n *\n * ```ts\n * import { Param } from \"effect/unstable/cli\"\n *\n * // @internal - this module is not exported publicly\n *\n * // Basic variadic parameter (0 to infinity)\n * const tags = Param.variadic(Param.string(Param.flagKind, \"tag\"))\n *\n * // Variadic with minimum count\n * const inputs = Param.variadic(\n * Param.string(Param.flagKind, \"input\"),\n * { min: 1 } // at least 1 required\n * )\n *\n * // Variadic with both min and max\n * const limited = Param.variadic(Param.string(Param.flagKind, \"item\"), {\n * min: 2, // at least 2 times\n * max: 2 // at most 2 times\n * })\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const variadic = (self, options) => {\n const single = getUnderlyingSingleOrThrow(self);\n const parse = args => {\n if (single.kind === \"argument\") {\n return parsePositionalVariadic(self, single, args, options);\n } else {\n return parseOptionVariadic(self, single, args, options);\n }\n };\n return Object.assign(Object.create(Proto), {\n _tag: \"Variadic\",\n kind: self.kind,\n param: self,\n min: Option.fromUndefinedOr(options?.min),\n max: Option.fromUndefinedOr(options?.max),\n parse\n });\n};\n/**\n * Wraps an option to allow it to be specified multiple times within a range.\n *\n * **Details**\n *\n * This combinator transforms an option to accept between `min` and `max`\n * occurrences on the command line, returning an array of all provided values.\n *\n * **Example** (Bounding repeated values)\n *\n * ```ts\n * import { Param } from \"effect/unstable/cli\"\n *\n * // @internal - this module is not exported publicly\n *\n * // Allow 1-3 file inputs\n * const files = Param.string(Param.flagKind, \"file\").pipe(\n * Param.between(1, 3),\n * Param.withAlias(\"-f\")\n * )\n *\n * // Parse: --file a.txt --file b.txt\n * // Result: [\"a.txt\", \"b.txt\"]\n *\n * // Allow 0 or more tags\n * const tags = Param.string(Param.flagKind, \"tag\").pipe(\n * Param.between(0, Number.MAX_SAFE_INTEGER)\n * )\n *\n * // Parse: --tag dev --tag staging --tag v1.0\n * // Result: [\"dev\", \"staging\", \"v1.0\"]\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const between = /*#__PURE__*/dual(3, (self, min, max) => {\n if (min < 0) {\n throw new Error(\"between: min must be non-negative\");\n }\n if (max < min) {\n throw new Error(\"between: max must be greater than or equal to min\");\n }\n return variadic(self, {\n min,\n max\n });\n});\n/**\n * Wraps an option to allow it to be specified at most `max` times.\n *\n * **Details**\n *\n * This combinator transforms an option to accept between 0 and `max`\n * occurrences on the command line, returning an array of all provided values.\n *\n * **Example** (Limiting repeated values)\n *\n * ```ts\n * import { Param } from \"effect/unstable/cli\"\n *\n * // @internal - this module is not exported publicly\n *\n * // Allow at most 3 warning suppressions\n * const suppressions = Param.string(Param.flagKind, \"suppress\").pipe(\n * Param.atMost(3)\n * )\n *\n * // Parse: --suppress warning1 --suppress warning2\n * // Result: [\"warning1\", \"warning2\"]\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const atMost = /*#__PURE__*/dual(2, (self, max) => {\n if (max < 0) {\n throw new Error(\"atMost: max must be non-negative\");\n }\n return variadic(self, {\n max\n });\n});\n/**\n * Wraps an option to require it to be specified at least `min` times.\n *\n * **Details**\n *\n * This combinator transforms an option to accept at least `min`\n * occurrences on the command line, returning an array of all provided values.\n *\n * **Example** (Requiring repeated values)\n *\n * ```ts\n * import { Param } from \"effect/unstable/cli\"\n *\n * // @internal - this module is not exported publicly\n *\n * // Require at least 2 input files\n * const inputs = Param.string(Param.flagKind, \"input\").pipe(\n * Param.atLeast(2),\n * Param.withAlias(\"-i\")\n * )\n *\n * // Parse: --input file1.txt --input file2.txt --input file3.txt\n * // Result: [\"file1.txt\", \"file2.txt\", \"file3.txt\"]\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const atLeast = /*#__PURE__*/dual(2, (self, min) => {\n if (min < 0) {\n throw new Error(\"atLeast: min must be non-negative\");\n }\n return variadic(self, {\n min\n });\n});\n/**\n * Filters and transforms parsed values, failing with a custom error message\n * if the filter function returns `Option.none()`.\n *\n * **When to use**\n *\n * Use when you use this combinator for validation and transformation in a single step.\n *\n * **Example** (Filtering and transforming values)\n *\n * ```ts\n * import { Option } from \"effect\"\n * import { Param } from \"effect/unstable/cli\"\n * // @internal - this module is not exported publicly\n *\n * const positiveInt = Param.integer(Param.flagKind, \"count\").pipe(\n * Param.filterMap(\n * (n) => n > 0 ? Option.some(n) : Option.none(),\n * (n) => `Expected positive integer, got ${n}`\n * )\n * )\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const filterMap = /*#__PURE__*/dual(3, (self, filter, onNone) => mapEffect(self, Effect.fnUntraced(function* (a) {\n const result = filter(a);\n if (Option.isSome(result)) {\n return result.value;\n }\n const single = getUnderlyingSingleOrThrow(self);\n return yield* new CliError.InvalidValue({\n option: single.name,\n value: String(a),\n expected: onNone(a),\n kind: single.kind\n });\n})));\n/**\n * Filters parsed values, failing with a custom error message if the predicate returns false.\n *\n * **Example** (Filtering parsed values)\n *\n * ```ts\n * import { Param } from \"effect/unstable/cli\"\n *\n * // @internal - this module is not exported publicly\n *\n * const evenNumber = Param.integer(Param.flagKind, \"num\").pipe(\n * Param.filter(\n * (n) => n % 2 === 0,\n * (n) => `Expected even number, got ${n}`\n * )\n * )\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const filter = /*#__PURE__*/dual(3, (self, predicate, onFalse) => filterMap(self, Option.liftPredicate(predicate), onFalse));\n/**\n * Sets a custom metavar (placeholder name) for the param in help documentation.\n *\n * **Details**\n *\n * The metavar is displayed in usage text to indicate what value the user should provide.\n * For example, `--output FILE` shows `FILE` as the metavar.\n *\n * **Example** (Setting metavars)\n *\n * ```ts\n * import { Param } from \"effect/unstable/cli\"\n *\n * // @internal - this module is not exported publicly\n *\n * const port = Param.integer(Param.flagKind, \"port\").pipe(\n * Param.withMetavar(\"PORT\"),\n * Param.filter(\n * (p) => p >= 1 && p <= 65535,\n * () => \"Port must be between 1 and 65535\"\n * )\n * )\n * ```\n *\n * @category metadata\n * @since 4.0.0\n */\nexport const withMetavar = /*#__PURE__*/dual(2, (self, metavar) => transformSingle(self, single => makeSingle({\n ...single,\n typeName: metavar\n})));\n/**\n * Validates parsed values against a Schema, providing detailed error messages.\n *\n * **Example** (Validating with schemas)\n *\n * ```ts\n * import { Schema } from \"effect\"\n * import { Param } from \"effect/unstable/cli\"\n * // @internal - this module is not exported publicly\n *\n * const isEmail = Schema.isPattern(/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/)\n *\n * const Email = Schema.String.pipe(\n * Schema.check(isEmail)\n * )\n *\n * const email = Param.string(Param.flagKind, \"email\").pipe(\n * Param.withSchema(Email)\n * )\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const withSchema = /*#__PURE__*/dual(2, (self, schema) => {\n const decodeParam = Schema.decodeUnknownEffect(schema);\n return mapEffect(self, value => Effect.mapError(decodeParam(value), error => {\n const single = getUnderlyingSingleOrThrow(self);\n return new CliError.InvalidValue({\n option: single.name,\n value: String(value),\n expected: `Schema validation failed: ${error.message}`,\n kind: single.kind\n });\n }));\n});\n/**\n * Provides a fallback param to use if this param fails to parse.\n *\n * **Example** (Falling back to another parameter)\n *\n * ```ts\n * import { Param } from \"effect/unstable/cli\"\n *\n * // @internal - this module is not exported publicly\n *\n * const config = Param.file(Param.flagKind, \"config\").pipe(\n * Param.orElse(() => Param.string(Param.flagKind, \"config-url\"))\n * )\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const orElse = /*#__PURE__*/dual(2, (self, orElse) => transform(self, parse => args => Effect.catch(parse(args), err => orElse(err).parse(args))));\n/**\n * Provides a fallback param and returns a `Result` indicating which param\n * succeeded.\n *\n * **Details**\n *\n * The original param's value is returned as `Result.succeed`, while the\n * fallback param's value is returned as `Result.fail`.\n *\n * **Example** (Returning fallback results)\n *\n * ```ts\n * import { Param } from \"effect/unstable/cli\"\n *\n * // @internal - this module is not exported publicly\n *\n * const configSource = Param.file(Param.flagKind, \"config\").pipe(\n * Param.orElseResult(() => Param.string(Param.flagKind, \"config-url\"))\n * )\n * // Returns Result<string, string>\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const orElseResult = /*#__PURE__*/dual(2, (self, orElse) => {\n return transform(self, parse => args => Effect.catch(Effect.map(parse(args), ([leftover, value]) => [leftover, Result.succeed(value)]), err => Effect.map(orElse(err).parse(args), ([leftover, value]) => [leftover, Result.fail(value)])));\n});\n// =============================================================================\n// Parsing Utilities\n// =============================================================================\nconst parsePositional = /*#__PURE__*/Effect.fnUntraced(function* (name, primitiveType, args) {\n if (args.arguments.length === 0) {\n return yield* new CliError.MissingArgument({\n argument: name\n });\n }\n const arg = args.arguments[0];\n const value = yield* Effect.mapError(primitiveType.parse(arg), error => new CliError.InvalidValue({\n option: name,\n value: arg,\n expected: error,\n kind: \"argument\"\n }));\n return [args.arguments.slice(1), value];\n});\nconst parseFlag = /*#__PURE__*/Effect.fnUntraced(function* (name, primitiveType, args) {\n const providedValues = args.flags[name];\n if (providedValues === undefined || providedValues.length === 0) {\n // Option not provided (empty array due to initialization)\n if (Primitive.isBoolean(primitiveType)) {\n // Boolean params default to false when not present\n return [args.arguments, false];\n } else {\n return yield* new CliError.MissingOption({\n option: name\n });\n }\n }\n // Parse the first value (later we can handle multiple)\n const arg = providedValues[0];\n const value = yield* Effect.mapError(primitiveType.parse(arg), error => new CliError.InvalidValue({\n option: name,\n value: arg,\n expected: error,\n kind: \"flag\"\n }));\n return [args.arguments, value];\n});\nconst parsePositionalVariadic = /*#__PURE__*/Effect.fnUntraced(function* (self, single, args, options) {\n const results = [];\n const minValue = options?.min ?? 0;\n const maxValue = options?.max ?? Number.POSITIVE_INFINITY;\n let count = 0;\n let currentArgs = args.arguments;\n while (currentArgs.length > 0 && count < maxValue) {\n const [remainingArgs, value] = yield* self.parse({\n flags: args.flags,\n arguments: currentArgs\n });\n results.push(value);\n currentArgs = remainingArgs;\n count++;\n }\n if (count < minValue) {\n return yield* new CliError.InvalidValue({\n option: single.name,\n value: `${count} values`,\n expected: `at least ${minValue} value${minValue === 1 ? \"\" : \"s\"}`,\n kind: single.kind\n });\n }\n return [currentArgs, results];\n});\nconst parseOptionVariadic = /*#__PURE__*/Effect.fnUntraced(function* (self, single, args, options) {\n const results = [];\n const names = [single.name, ...single.aliases];\n const values = names.flatMap(name => args.flags[name] ?? []);\n const count = values.length;\n // Validate count constraints\n if (Predicate.isNotUndefined(options?.min) && count < options.min) {\n return yield* count === 0 ? new CliError.MissingOption({\n option: single.name\n }) : new CliError.InvalidValue({\n option: single.name,\n value: `${count} occurrences`,\n expected: `at least ${options.min} value${options.min === 1 ? \"\" : \"s\"}`,\n kind: single.kind\n });\n }\n if (Predicate.isNotUndefined(options?.max) && count > options.max) {\n return yield* new CliError.InvalidValue({\n option: single.name,\n value: `${count} occurrences`,\n expected: `at most ${options.max} value${options.max === 1 ? \"\" : \"s\"}`,\n kind: single.kind\n });\n }\n // Parse each value individually\n for (const value of values) {\n const [, parsedValue] = yield* self.parse({\n flags: {\n [single.name]: [value]\n },\n arguments: []\n });\n results.push(parsedValue);\n }\n return [args.arguments, results];\n});\n/**\n * Type-safe param matcher that handles the unsafe casting internally.\n * This provides a clean API for pattern matching on param types while\n * maintaining type safety at the call site.\n */\nconst matchParam = (param, patterns) => {\n const p = param;\n switch (p._tag) {\n case \"Single\":\n return patterns.Single(p);\n case \"Map\":\n return patterns.Map(p);\n case \"Transform\":\n return patterns.Transform(p);\n case \"Optional\":\n return patterns.Optional(p);\n case \"Variadic\":\n return patterns.Variadic(p);\n }\n};\n/**\n * Recursively transforms a param by applying a function to any `Single` nodes.\n * This is used internally by combinators like `withAlias` to traverse the param tree.\n */\nconst transformSingle = (param, f) => {\n return matchParam(param, {\n Single: single => f(single),\n Map: mapped => map(transformSingle(mapped.param, f), mapped.f),\n Transform: mapped => transform(transformSingle(mapped.param, f), mapped.f),\n Optional: p => optional(transformSingle(p.param, f)),\n Variadic: p => variadic(transformSingle(p.param, f), {\n min: Option.getOrUndefined(p.min),\n max: Option.getOrUndefined(p.max)\n })\n });\n};\n/**\n * Extracts all Single params from a potentially nested param structure.\n * This handles all param combinators including Map, Transform, Optional, and Variadic.\n *\n * @internal\n */\nexport const extractSingleParams = param => {\n return matchParam(param, {\n Single: single => [single],\n Map: mapped => extractSingleParams(mapped.param),\n Transform: mapped => extractSingleParams(mapped.param),\n Optional: optional => extractSingleParams(optional.param),\n Variadic: variadic => extractSingleParams(variadic.param)\n });\n};\n/**\n * Gets the underlying Single param from a potentially nested param structure.\n * Throws an error if there are no singles or multiple singles found.\n *\n * @internal\n */\nexport const getUnderlyingSingleOrThrow = param => {\n const singles = extractSingleParams(param);\n if (singles.length === 0) {\n throw new Error(\"No Single param found in param structure\");\n }\n if (singles.length > 1) {\n throw new Error(`Multiple Single params found: ${singles.map(s => s.name).join(\", \")}`);\n }\n return singles[0];\n};\n/**\n * Gets param metadata by traversing the structure.\n *\n * @internal\n */\nexport const getParamMetadata = param => {\n return matchParam(param, {\n Single: () => ({\n isOptional: false,\n isVariadic: false\n }),\n Map: mapped => getParamMetadata(mapped.param),\n Transform: mapped => getParamMetadata(mapped.param),\n Optional: optional => ({\n ...getParamMetadata(optional.param),\n isOptional: true\n }),\n Variadic: variadic => ({\n ...getParamMetadata(variadic.param),\n isVariadic: true\n })\n });\n};\n//# sourceMappingURL=Param.js.map",
88
87
  "import { dual } from \"../../Function.js\";\nimport * as Param from \"./Param.js\";\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * Creates a positional string argument.\n *\n * **Example** (Creating a string argument)\n *\n * ```ts\n * import { Argument } from \"effect/unstable/cli\"\n *\n * const filename = Argument.string(\"filename\")\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const string = name => Param.string(Param.argumentKind, name);\n/**\n * Creates a positional integer argument.\n *\n * **Example** (Creating an integer argument)\n *\n * ```ts\n * import { Argument } from \"effect/unstable/cli\"\n *\n * const count = Argument.integer(\"count\")\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const integer = name => Param.integer(Param.argumentKind, name);\n/**\n * Creates a positional file path argument.\n *\n * **Example** (Creating file path arguments)\n *\n * ```ts\n * import { Argument } from \"effect/unstable/cli\"\n *\n * const inputFile = Argument.file(\"input\", { mustExist: true }) // Must exist\n * const outputFile = Argument.file(\"output\", { mustExist: false }) // Must not exist\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const file = (name, options) => Param.file(Param.argumentKind, name, options);\n/**\n * Creates a positional directory path argument.\n *\n * **Example** (Creating a directory path argument)\n *\n * ```ts\n * import { Argument } from \"effect/unstable/cli\"\n *\n * const workspace = Argument.directory(\"workspace\", { mustExist: true }) // Must exist\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const directory = (name, options) => Param.directory(Param.argumentKind, name, options);\n/**\n * Creates a positional float argument.\n *\n * **Example** (Creating a float argument)\n *\n * ```ts\n * import { Argument } from \"effect/unstable/cli\"\n *\n * const ratio = Argument.float(\"ratio\")\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const float = name => Param.float(Param.argumentKind, name);\n/**\n * Creates a positional date argument.\n *\n * **Example** (Creating a date argument)\n *\n * ```ts\n * import { Argument } from \"effect/unstable/cli\"\n *\n * const startDate = Argument.date(\"start-date\")\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const date = name => Param.date(Param.argumentKind, name);\n/**\n * Creates a positional choice argument.\n *\n * **Example** (Creating a choice argument)\n *\n * ```ts\n * import { Argument } from \"effect/unstable/cli\"\n *\n * const environment = Argument.choice(\"environment\", [\"dev\", \"staging\", \"prod\"])\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const choice = (name, choices) => Param.choice(Param.argumentKind, name, choices);\n/**\n * Creates a positional path argument.\n *\n * **Example** (Creating a path argument)\n *\n * ```ts\n * import { Argument } from \"effect/unstable/cli\"\n *\n * const configPath = Argument.path(\"config\")\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const path = (name, options) => Param.path(Param.argumentKind, name, options);\n/**\n * Creates a positional redacted argument that obscures its value.\n *\n * **Example** (Creating a redacted argument)\n *\n * ```ts\n * import { Argument } from \"effect/unstable/cli\"\n *\n * const secret = Argument.redacted(\"secret\")\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const redacted = name => Param.redacted(Param.argumentKind, name);\n/**\n * Creates a positional argument that reads file content as a string.\n *\n * **Example** (Reading file text)\n *\n * ```ts\n * import { Argument } from \"effect/unstable/cli\"\n *\n * const config = Argument.fileText(\"config-file\")\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const fileText = name => Param.fileText(Param.argumentKind, name);\n/**\n * Creates a positional argument that reads a file and parses its content.\n *\n * **Details**\n *\n * The parser is chosen from the explicit `format` option or, when omitted, the\n * file extension. The parsed value is `unknown`; use `fileSchema` when the\n * parsed content should also be decoded with a Schema.\n *\n * **Example** (Parsing file content)\n *\n * ```ts\n * import { Argument } from \"effect/unstable/cli\"\n *\n * const config = Argument.fileParse(\"config\", { format: \"json\" })\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const fileParse = (name, options) => Param.fileParse(Param.argumentKind, name, options);\n/**\n * Creates a positional argument that reads and validates file content using a schema.\n *\n * **Example** (Validating file content with a schema)\n *\n * ```ts\n * import { Schema } from \"effect\"\n * import { Argument } from \"effect/unstable/cli\"\n *\n * const ConfigSchema = Schema.Struct({\n * port: Schema.Number,\n * host: Schema.String\n * })\n *\n * const config = Argument.fileSchema(\"config\", ConfigSchema)\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const fileSchema = (name, schema, options) => Param.fileSchema(Param.argumentKind, name, schema, options);\n/**\n * Creates an empty sentinel argument that always fails to parse.\n *\n * **Example** (Creating a sentinel argument)\n *\n * ```ts\n * import { Argument } from \"effect/unstable/cli\"\n *\n * // Used as a placeholder or default in combinators\n * const noArg = Argument.none\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const none = /*#__PURE__*/Param.none(Param.argumentKind);\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * Makes a positional argument optional.\n *\n * **Example** (Making an argument optional)\n *\n * ```ts\n * import { Argument } from \"effect/unstable/cli\"\n *\n * const optionalVersion = Argument.string(\"version\").pipe(Argument.optional)\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const optional = arg => Param.optional(arg);\n/**\n * Adds a description to a positional argument.\n *\n * **Example** (Adding an argument description)\n *\n * ```ts\n * import { Argument } from \"effect/unstable/cli\"\n *\n * const filename = Argument.string(\"filename\").pipe(\n * Argument.withDescription(\"The input file to process\")\n * )\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const withDescription = /*#__PURE__*/dual(2, (self, description) => Param.withDescription(self, description));\n/**\n * Provides a default value for a positional argument.\n *\n * **Example** (Providing a default value)\n *\n * ```ts\n * import { Argument } from \"effect/unstable/cli\"\n *\n * const port = Argument.integer(\"port\").pipe(Argument.withDefault(8080))\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const withDefault = Param.withDefault;\n/**\n * Adds a fallback config that is loaded when a required argument is missing.\n *\n * **Example** (Loading a fallback config)\n *\n * ```ts\n * import { Config } from \"effect\"\n * import { Argument } from \"effect/unstable/cli\"\n *\n * const repository = Argument.string(\"repository\").pipe(\n * Argument.withFallbackConfig(Config.string(\"REPOSITORY\"))\n * )\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const withFallbackConfig = /*#__PURE__*/dual(2, (self, config) => Param.withFallbackConfig(self, config));\n/**\n * Adds a fallback prompt that is shown when a required argument is missing.\n *\n * **Example** (Showing a fallback prompt)\n *\n * ```ts\n * import { Argument, Prompt } from \"effect/unstable/cli\"\n *\n * const filename = Argument.string(\"filename\").pipe(\n * Argument.withFallbackPrompt(Prompt.text({ message: \"Filename\" }))\n * )\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const withFallbackPrompt = /*#__PURE__*/dual(2, (self, prompt) => Param.withFallbackPrompt(self, prompt));\n/**\n * Creates a variadic positional argument that accepts multiple values.\n *\n * **Example** (Accepting multiple values)\n *\n * ```ts\n * import { Argument } from \"effect/unstable/cli\"\n *\n * // Accept any number of files\n * const anyFiles = Argument.string(\"files\").pipe(Argument.variadic)\n *\n * // Accept at least 1 file\n * const atLeastOneFile = Argument.string(\"files\").pipe(\n * Argument.variadic({ min: 1 })\n * )\n *\n * // Accept between 1 and 5 files\n * const limitedFiles = Argument.string(\"files\").pipe(\n * Argument.variadic({ min: 1, max: 5 })\n * )\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const variadic = /*#__PURE__*/dual(args => Param.isParam(args[0]), (self, options) => Param.variadic(self, options));\n/**\n * Transforms the parsed value of a positional argument.\n *\n * **Example** (Mapping parsed values)\n *\n * ```ts\n * import { Argument } from \"effect/unstable/cli\"\n *\n * const port = Argument.integer(\"port\").pipe(\n * Argument.map((p) => ({ port: p, url: `http://localhost:${p}` }))\n * )\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const map = /*#__PURE__*/dual(2, (self, f) => Param.map(self, f));\n/**\n * Transforms the parsed value of a positional argument using an effectful function.\n *\n * **Example** (Validating values effectfully)\n *\n * ```ts\n * import { Effect } from \"effect\"\n * import { Argument, CliError } from \"effect/unstable/cli\"\n *\n * const files = Argument.string(\"files\").pipe(\n * Argument.mapEffect((file) =>\n * file.endsWith(\".txt\")\n * ? Effect.succeed(file)\n * : Effect.fail(\n * new CliError.UserError({\n * cause: new Error(\"Only .txt files allowed\")\n * })\n * )\n * )\n * )\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const mapEffect = /*#__PURE__*/dual(2, (self, f) => Param.mapEffect(self, f));\n/**\n * Transforms the parsed value of a positional argument using a function that may throw.\n *\n * **Example** (Mapping values that may throw)\n *\n * ```ts\n * import { Argument } from \"effect/unstable/cli\"\n *\n * const json = Argument.string(\"data\").pipe(\n * Argument.mapTryCatch(\n * (str) => JSON.parse(str),\n * (error) =>\n * `Invalid JSON: ${error instanceof Error ? error.message : String(error)}`\n * )\n * )\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const mapTryCatch = /*#__PURE__*/dual(3, (self, f, onError) => Param.mapTryCatch(self, f, onError));\n/**\n * Creates a variadic argument that requires at least n values.\n *\n * **Example** (Requiring a minimum number of values)\n *\n * ```ts\n * import { Argument } from \"effect/unstable/cli\"\n *\n * const files = Argument.string(\"files\").pipe(Argument.atLeast(1))\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const atLeast = /*#__PURE__*/dual(2, (self, min) => Param.atLeast(self, min));\n/**\n * Creates a variadic argument that accepts at most n values.\n *\n * **Example** (Limiting the maximum number of values)\n *\n * ```ts\n * import { Argument } from \"effect/unstable/cli\"\n *\n * const files = Argument.string(\"files\").pipe(Argument.atMost(5))\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const atMost = /*#__PURE__*/dual(2, (self, max) => Param.atMost(self, max));\n/**\n * Creates a variadic argument that accepts between min and max values.\n *\n * **Example** (Requiring a range of values)\n *\n * ```ts\n * import { Argument } from \"effect/unstable/cli\"\n *\n * const files = Argument.string(\"files\").pipe(Argument.between(1, 5))\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const between = /*#__PURE__*/dual(3, (self, min, max) => Param.between(self, min, max));\n/**\n * Validates parsed values against a Schema.\n *\n * **Example** (Validating parsed values with a schema)\n *\n * ```ts\n * import { Schema } from \"effect\"\n * import { Argument } from \"effect/unstable/cli\"\n *\n * const input = Argument.string(\"input\").pipe(\n * Argument.withSchema(Schema.NonEmptyString)\n * )\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const withSchema = /*#__PURE__*/dual(2, (self, schema) => Param.withSchema(self, schema));\n/**\n * Creates a positional choice argument with custom value mapping.\n *\n * **Example** (Mapping choices to values)\n *\n * ```ts\n * import { Argument } from \"effect/unstable/cli\"\n *\n * const logLevel = Argument.choiceWithValue(\"level\", [\n * [\"debug\", 0],\n * [\"info\", 1],\n * [\"warn\", 2],\n * [\"error\", 3]\n * ])\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const choiceWithValue = (name, choices) => Param.choiceWithValue(Param.argumentKind, name, choices);\n// -------------------------------------------------------------------------------------\n// metadata\n// -------------------------------------------------------------------------------------\n/**\n * Sets a custom metavar (placeholder name) for the argument in help documentation.\n *\n * **Details**\n *\n * The metavar is displayed in usage text to indicate what value the user should provide.\n * For example, `<FILE>` shows `FILE` as the metavar.\n *\n * **Example** (Setting a metavar)\n *\n * ```ts\n * import { Argument } from \"effect/unstable/cli\"\n *\n * const port = Argument.integer(\"port\").pipe(\n * Argument.withMetavar(\"PORT\")\n * )\n * ```\n *\n * @category metadata\n * @since 4.0.0\n */\nexport const withMetavar = /*#__PURE__*/dual(2, (self, metavar) => Param.withMetavar(self, metavar));\n/**\n * Filters parsed values, failing with a custom error message if the predicate returns false.\n *\n * **Example** (Filtering parsed values)\n *\n * ```ts\n * import { Argument } from \"effect/unstable/cli\"\n *\n * const positiveInt = Argument.integer(\"count\").pipe(\n * Argument.filter(\n * (n) => n > 0,\n * (n) => `Expected positive integer, got ${n}`\n * )\n * )\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const filter = /*#__PURE__*/dual(3, (self, predicate, onFalse) => Param.filter(self, predicate, onFalse));\n/**\n * Filters and transforms parsed values, failing with a custom error message\n * if the filter function returns None.\n *\n * **Example** (Filtering and mapping parsed values)\n *\n * ```ts\n * import { Option } from \"effect\"\n * import { Argument } from \"effect/unstable/cli\"\n *\n * const positiveInt = Argument.integer(\"count\").pipe(\n * Argument.filterMap(\n * (n) => n > 0 ? Option.some(n) : Option.none(),\n * (n) => `Expected positive integer, got ${n}`\n * )\n * )\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const filterMap = /*#__PURE__*/dual(3, (self, f, onNone) => Param.filterMap(self, f, onNone));\n/**\n * Provides a fallback argument to use if this argument fails to parse.\n *\n * **Example** (Providing a fallback argument)\n *\n * ```ts\n * import { Argument } from \"effect/unstable/cli\"\n *\n * const value = Argument.integer(\"value\").pipe(\n * Argument.orElse(() => Argument.string(\"value\"))\n * )\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const orElse = /*#__PURE__*/dual(2, (self, that) => Param.orElse(self, that));\n/**\n * Provides a fallback argument, wrapping results in Result to distinguish which succeeded.\n *\n * **Example** (Returning which fallback succeeded)\n *\n * ```ts\n * import { Argument } from \"effect/unstable/cli\"\n *\n * const source = Argument.file(\"source\").pipe(\n * Argument.orElseResult(() => Argument.string(\"url\"))\n * )\n * // Returns Result<string, string>\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const orElseResult = /*#__PURE__*/dual(2, (self, that) => Param.orElseResult(self, that));\n//# sourceMappingURL=Argument.js.map",
89
88
  "import { dual } from \"../../Function.js\";\nimport * as Param from \"./Param.js\";\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * Creates a string flag that accepts text input.\n *\n * **Example** (Creating string flags)\n *\n * ```ts\n * import { Flag } from \"effect/unstable/cli\"\n *\n * const nameFlag = Flag.string(\"name\")\n * // Usage: --name \"John Doe\"\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const string = name => Param.string(Param.flagKind, name);\n/**\n * Creates a boolean flag that can be enabled or disabled.\n *\n * **Example** (Creating boolean flags)\n *\n * ```ts\n * import { Flag } from \"effect/unstable/cli\"\n *\n * const verboseFlag = Flag.boolean(\"verbose\")\n * // Usage: --verbose (true) or --no-verbose (false)\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const boolean = name => Param.boolean(Param.flagKind, name);\n/**\n * Creates an integer flag that accepts whole number input.\n *\n * **Example** (Creating integer flags)\n *\n * ```ts\n * import { Flag } from \"effect/unstable/cli\"\n *\n * const portFlag = Flag.integer(\"port\")\n * // Usage: --port 8080\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const integer = name => Param.integer(Param.flagKind, name);\n/**\n * Creates a float flag that accepts decimal number input.\n *\n * **Example** (Creating float flags)\n *\n * ```ts\n * import { Flag } from \"effect/unstable/cli\"\n *\n * const rateFlag = Flag.float(\"rate\")\n * // Usage: --rate 3.14\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const float = name => Param.float(Param.flagKind, name);\n/**\n * Creates a date flag that accepts date input in ISO format.\n *\n * **Example** (Creating date flags)\n *\n * ```ts\n * import { Flag } from \"effect/unstable/cli\"\n *\n * const startDateFlag = Flag.date(\"start-date\")\n * // Usage: --start-date 2023-12-25\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const date = name => Param.date(Param.flagKind, name);\n/**\n * Constructs option parameters that represent a choice between several inputs.\n * Each tuple maps a string flag value to an associated typed value.\n *\n * **Example** (Creating flag choices with values)\n *\n * ```ts\n * import { Flag } from \"effect/unstable/cli\"\n *\n * // simple enum like choice mapping directly to string union\n * const color = Flag.choice(\"color\", [\"red\", \"green\", \"blue\"])\n *\n * // choice with custom value mapping\n * const logLevel = Flag.choiceWithValue(\"log-level\", [\n * [\"debug\", \"Debug\" as const],\n * [\"info\", \"Info\" as const],\n * [\"error\", \"Error\" as const]\n * ])\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const choiceWithValue = (name, choices) => Param.choiceWithValue(Param.flagKind, name, choices);\n/**\n * Creates a flag that accepts one of the provided string choices and returns\n * the selected string.\n *\n * **When to use**\n *\n * Use when a named option must be restricted to a fixed set of string values\n * and no custom value mapping is needed.\n *\n * **Gotchas**\n *\n * An empty choices array compiles, but no input value can parse successfully.\n *\n * @see {@link choiceWithValue} for mapping accepted strings to different typed values\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const choice = (name, choices) => Param.choice(Param.flagKind, name, choices);\n/**\n * Creates a path flag that accepts file system path input with validation options.\n *\n * **Example** (Creating path flags)\n *\n * ```ts\n * import { Flag } from \"effect/unstable/cli\"\n *\n * // Basic path flag\n * const pathFlag = Flag.path(\"config-path\")\n *\n * // File-only path that must exist\n * const fileFlag = Flag.path(\"input-file\", {\n * pathType: \"file\",\n * mustExist: true\n * })\n *\n * // Directory path with custom type name\n * const dirFlag = Flag.path(\"output-dir\", {\n * pathType: \"directory\",\n * typeName: \"OUTPUT_DIRECTORY\"\n * })\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const path = (name, options) => Param.path(Param.flagKind, name, options);\n/**\n * Creates a file path flag that accepts file paths with optional existence validation.\n *\n * **Example** (Creating file flags)\n *\n * ```ts\n * import { Flag } from \"effect/unstable/cli\"\n *\n * // Basic file flag\n * const inputFlag = Flag.file(\"input\")\n * // Usage: --input ./data.json\n *\n * // File that must exist\n * const configFlag = Flag.file(\"config\", { mustExist: true })\n * // Usage: --config ./config.yaml (file must exist)\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const file = (name, options) => Param.file(Param.flagKind, name, options);\n/**\n * Creates a directory path flag that accepts directory paths with optional existence validation.\n *\n * **Example** (Creating directory flags)\n *\n * ```ts\n * import { Flag } from \"effect/unstable/cli\"\n *\n * // Basic directory flag\n * const outputFlag = Flag.directory(\"output\")\n * // Usage: --output ./build\n *\n * // Directory that must exist\n * const sourceFlag = Flag.directory(\"source\", { mustExist: true })\n * // Usage: --source ./src (directory must exist)\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const directory = (name, options) => Param.directory(Param.flagKind, name, options);\n/**\n * Creates a string flag whose parsed value is wrapped in `Redacted.Redacted` so\n * stringification and logging redact the value.\n *\n * **Gotchas**\n *\n * Values supplied on the command line may still be visible to the operating\n * system or shell history.\n *\n * **Example** (Creating redacted flags)\n *\n * ```ts\n * import { Effect, Redacted } from \"effect\"\n * import { Flag } from \"effect/unstable/cli\"\n *\n * const passwordFlag = Flag.redacted(\"password\")\n *\n * const program = Effect.gen(function*() {\n * const [leftover, password] = yield* passwordFlag.parse({\n * arguments: [],\n * flags: { \"password\": [\"abc123\"] }\n * })\n * const value = Redacted.value(password) // Access the underlying value\n * console.log(\"Password length:\", value.length)\n * })\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const redacted = name => Param.redacted(Param.flagKind, name);\n/**\n * Creates a flag that reads and returns file content as a string.\n *\n * **Example** (Reading file text)\n *\n * ```ts\n * import { Flag } from \"effect/unstable/cli\"\n *\n * const config = Flag.fileText(\"config-file\")\n * // --config-file ./app.json will read the file content\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const fileText = name => Param.fileText(Param.flagKind, name);\n/**\n * Creates a flag that reads and parses the content of the specified file.\n *\n * **Details**\n *\n * The parser that is utilized will depend on the specified `format`, or the\n * extension of the file passed on the command-line if no `format` is specified.\n *\n * **Example** (Parsing file contents)\n *\n * ```ts\n * import { Flag } from \"effect/unstable/cli\"\n *\n * // Will use the extension of the file passed on the command line to determine\n * // the parser to use\n * const config = Flag.fileParse(\"config\")\n *\n * // Will use the JSON parser\n * const jsonConfig = Flag.fileParse(\"json-config\", { format: \"json\" })\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const fileParse = (name, options) => Param.fileParse(Param.flagKind, name, options);\n/**\n * Creates a flag that reads and validates file content using the specified\n * schema.\n *\n * **Example** (Validating file contents)\n *\n * ```ts\n * import { Schema } from \"effect\"\n * import { Flag } from \"effect/unstable/cli\"\n *\n * const ConfigSchema = Schema.Struct({\n * port: Schema.Number,\n * host: Schema.String\n * })\n *\n * const config = Flag.fileSchema(\"config\", ConfigSchema, { format: \"json\" })\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const fileSchema = (name, schema, options) => Param.fileSchema(Param.flagKind, name, schema, options);\n/**\n * Creates a flag that parses key=value pairs.\n *\n * **When to use**\n *\n * Use when you use this for options that accept configuration values.\n *\n * **Details**\n *\n * Requires at least one key=value pair. Multiple pairs are merged into a single\n * record.\n *\n * **Example** (Parsing key-value pairs)\n *\n * ```ts\n * import { Flag } from \"effect/unstable/cli\"\n *\n * const env = Flag.keyValuePair(\"env\")\n * // --env FOO=bar --env BAZ=qux will parse to { FOO: \"bar\", BAZ: \"qux\" }\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const keyValuePair = name => Param.keyValuePair(Param.flagKind, name);\n/**\n * Creates an empty sentinel flag that always fails to parse.\n * This is useful for creating placeholder flags or for combinators.\n *\n * **Example** (Creating sentinel flags)\n *\n * ```ts\n * import { Flag } from \"effect/unstable/cli\"\n *\n * const makeValueFlag = (includeValue: boolean) =>\n * includeValue ? Flag.string(\"value\") : Flag.none\n *\n * console.log(makeValueFlag(true) === Flag.none) // false\n * console.log(makeValueFlag(false) === Flag.none) // true\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const none = /*#__PURE__*/Param.none(Param.flagKind);\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * Adds an alias to a flag, allowing it to be referenced by multiple names.\n *\n * **Example** (Adding flag aliases)\n *\n * ```ts\n * import { Flag } from \"effect/unstable/cli\"\n *\n * // Flag can be used as both --verbose and -v\n * const verboseFlag = Flag.boolean(\"verbose\").pipe(\n * Flag.withAlias(\"v\")\n * )\n *\n * // Multiple aliases can be chained\n * const helpFlag = Flag.boolean(\"help\").pipe(\n * Flag.withAlias(\"h\"),\n * Flag.withAlias(\"?\")\n * )\n * ```\n *\n * @category aliasing\n * @since 4.0.0\n */\nexport const withAlias = /*#__PURE__*/dual(2, (self, alias) => Param.withAlias(self, alias));\n/**\n * Adds a description to a flag for help documentation.\n *\n * **Example** (Adding help descriptions)\n *\n * ```ts\n * import { Flag } from \"effect/unstable/cli\"\n *\n * const portFlag = Flag.integer(\"port\").pipe(\n * Flag.withDescription(\"The port number to listen on\")\n * )\n *\n * const configFlag = Flag.file(\"config\").pipe(\n * Flag.withDescription(\"Path to the configuration file\")\n * )\n * ```\n *\n * @category help documentation\n * @since 4.0.0\n */\nexport const withDescription = /*#__PURE__*/dual(2, (self, description) => Param.withDescription(self, description));\n// -------------------------------------------------------------------------------------\n// metadata\n// -------------------------------------------------------------------------------------\n/**\n * Sets a custom metavar (placeholder name) for the flag in help documentation.\n *\n * **Details**\n *\n * The metavar is displayed in usage text to indicate what value the user should\n * provide. For example, `--output FILE` shows `FILE` as the metavar.\n *\n * **Example** (Setting metavars)\n *\n * ```ts\n * import { Flag } from \"effect/unstable/cli\"\n *\n * const databaseFlag = Flag.string(\"database-url\").pipe(\n * Flag.withMetavar(\"URL\"),\n * Flag.withDescription(\"Database connection URL\")\n * )\n * // In help: --database-url URL\n *\n * const timeoutFlag = Flag.integer(\"timeout\").pipe(\n * Flag.withMetavar(\"SECONDS\")\n * )\n * // In help: --timeout SECONDS\n * ```\n *\n * @category metadata\n * @since 4.0.0\n */\nexport const withMetavar = /*#__PURE__*/dual(2, (self, metavar) => Param.withMetavar(self, metavar));\n/**\n * Hides a flag from generated help output and shell completions while keeping\n * it fully parseable on the command line.\n *\n * **When to use**\n *\n * Use when you use this for experimental or internal flags that should be accepted but not\n * advertised, such as `--experimental-foo`, debug toggles, or escape hatches\n * that are not yet committed to the public CLI surface.\n *\n * **Example** (Hiding a flag from help)\n *\n * ```ts\n * import { Flag } from \"effect/unstable/cli\"\n *\n * // Flag still parses --experimental-foo, but it does not appear in --help.\n * const experimental = Flag.boolean(\"experimental-foo\").pipe(\n * Flag.withHidden\n * )\n * ```\n *\n * @category metadata\n * @since 4.0.0\n */\nexport const withHidden = self => Param.withHidden(self);\n/**\n * Makes a flag optional, returning an Option type that can be None if not provided.\n *\n * **Example** (Making flags optional)\n *\n * ```ts\n * import { Effect, Option } from \"effect\"\n * import { Flag } from \"effect/unstable/cli\"\n *\n * const optionalPort = Flag.optional(Flag.integer(\"port\"))\n *\n * const program = Effect.gen(function*() {\n * const [leftover, port] = yield* optionalPort.parse({\n * arguments: [],\n * flags: { \"port\": [\"4000\"] }\n * })\n * if (Option.isSome(port)) {\n * console.log(\"Port specified:\", port.value)\n * } else {\n * console.log(\"No port specified, using default\")\n * }\n * })\n * ```\n *\n * @category optionality\n * @since 4.0.0\n */\nexport const optional = param => Param.optional(param);\n/**\n * Provides a default value for a flag when it's not specified.\n *\n * **Example** (Providing default values)\n *\n * ```ts\n * import { Flag } from \"effect/unstable/cli\"\n *\n * const portFlag = Flag.integer(\"port\").pipe(\n * Flag.withDefault(8080)\n * )\n * // If --port is not provided, defaults to 8080\n *\n * const hostFlag = Flag.string(\"host\").pipe(\n * Flag.withDefault(\"localhost\")\n * )\n * // If --host is not provided, defaults to \"localhost\"\n * ```\n *\n * @category optionality\n * @since 4.0.0\n */\nexport const withDefault = Param.withDefault;\n/**\n * Adds a fallback config that is loaded when a required flag is missing.\n *\n * **Example** (Falling back to config)\n *\n * ```ts\n * import { Config } from \"effect\"\n * import { Flag } from \"effect/unstable/cli\"\n *\n * const verbose = Flag.boolean(\"verbose\").pipe(\n * Flag.withFallbackConfig(Config.boolean(\"VERBOSE\"))\n * )\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const withFallbackConfig = /*#__PURE__*/dual(2, (self, config) => Param.withFallbackConfig(self, config));\n/**\n * Adds a fallback prompt that is shown when a required flag is missing.\n *\n * **Example** (Falling back to prompts)\n *\n * ```ts\n * import { Flag, Prompt } from \"effect/unstable/cli\"\n *\n * const name = Flag.string(\"name\").pipe(\n * Flag.withFallbackPrompt(Prompt.text({ message: \"Name\" }))\n * )\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const withFallbackPrompt = /*#__PURE__*/dual(2, (self, prompt) => Param.withFallbackPrompt(self, prompt));\n/**\n * Transforms the parsed value of a flag using a mapping function.\n *\n * **Example** (Mapping parsed values)\n *\n * ```ts\n * import { Flag } from \"effect/unstable/cli\"\n *\n * // Convert string to uppercase\n * const nameFlag = Flag.string(\"name\").pipe(\n * Flag.map((name) => name.toUpperCase())\n * )\n *\n * // Convert port to URL\n * const urlFlag = Flag.integer(\"port\").pipe(\n * Flag.map((port) => `http://localhost:${port}`)\n * )\n * ```\n *\n * @category mapping\n * @since 4.0.0\n */\nexport const map = /*#__PURE__*/dual(2, (self, f) => Param.map(self, f));\n/**\n * Transforms the parsed value using an Effect that can perform IO operations.\n *\n * **Example** (Mapping parsed values effectfully)\n *\n * ```ts\n * import { Effect, FileSystem } from \"effect\"\n * import { Flag } from \"effect/unstable/cli\"\n *\n * // Read file size from path flag\n * const fileSizeFlag = Flag.file(\"input\").pipe(\n * Flag.mapEffect(Effect.fnUntraced(function*(path) {\n * const fs = yield* FileSystem.FileSystem\n * const stats = yield* Effect.orDie(fs.stat(path))\n * return stats.size\n * }))\n * )\n * ```\n *\n * @category mapping\n * @since 4.0.0\n */\nexport const mapEffect = /*#__PURE__*/dual(2, (self, f) => Param.mapEffect(self, f));\n/**\n * Transforms the parsed value using a function that might throw, with error handling.\n *\n * **Example** (Mapping thrown errors)\n *\n * ```ts\n * import { Flag } from \"effect/unstable/cli\"\n *\n * // Parse JSON string with error handling\n * const jsonFlag = Flag.string(\"config\").pipe(\n * Flag.mapTryCatch(\n * (json) => JSON.parse(json),\n * (error) => `Invalid JSON: ${error}`\n * )\n * )\n *\n * // Parse URL with error handling\n * const urlFlag = Flag.string(\"url\").pipe(\n * Flag.mapTryCatch(\n * (url) => new URL(url),\n * (error) => `Invalid URL: ${error}`\n * )\n * )\n * ```\n *\n * @category mapping\n * @since 4.0.0\n */\nexport const mapTryCatch = /*#__PURE__*/dual(3, (self, f, onError) => Param.mapTryCatch(self, f, onError));\n/**\n * Ensures a flag is specified at least a minimum number of times.\n *\n * **Example** (Requiring repeated values)\n *\n * ```ts\n * import { Flag } from \"effect/unstable/cli\"\n *\n * const sourceFlag = Flag.atLeast(Flag.file(\"source\"), 2)\n * // Requires at least 2 source files\n * // Usage: --source file1.ts --source file2.ts\n *\n * const tagFlag = Flag.string(\"tag\").pipe(\n * Flag.atLeast(1)\n * )\n * // Requires at least 1 tag\n * ```\n *\n * @category repetition\n * @since 4.0.0\n */\nexport const atLeast = /*#__PURE__*/dual(2, (self, min) => Param.atLeast(self, min));\n/**\n * Ensures a flag is specified at most a maximum number of times.\n *\n * **Example** (Limiting repeated values)\n *\n * ```ts\n * import { Flag } from \"effect/unstable/cli\"\n *\n * const warningFlag = Flag.atMost(Flag.string(\"warning\"), 3)\n * // Allows up to 3 warning flags\n * // Usage: --warning w1 --warning w2 --warning w3\n *\n * const debugFlag = Flag.string(\"debug\").pipe(\n * Flag.atMost(1)\n * )\n * // Allows at most 1 debug flag\n * ```\n *\n * @category repetition\n * @since 4.0.0\n */\nexport const atMost = /*#__PURE__*/dual(2, (self, max) => Param.atMost(self, max));\n/**\n * Ensures a flag is specified between a minimum and maximum number of times.\n *\n * **Example** (Bounding repeated values)\n *\n * ```ts\n * import { Flag } from \"effect/unstable/cli\"\n *\n * const hostFlag = Flag.between(Flag.string(\"host\"), 1, 3)\n * // Requires 1-3 host flags\n * // Usage: --host host1 --host host2\n *\n * const excludeFlag = Flag.string(\"exclude\").pipe(\n * Flag.between(0, 5)\n * )\n * // Allows 0-5 exclude patterns\n * ```\n *\n * @category repetition\n * @since 4.0.0\n */\nexport const between = /*#__PURE__*/dual(3, (self, min, max) => Param.between(self, min, max));\n/**\n * Transforms and filters a flag value, failing with a custom error if the transformation returns None.\n *\n * **Example** (Filtering and transforming values)\n *\n * ```ts\n * import { Option } from \"effect\"\n * import { Flag } from \"effect/unstable/cli\"\n *\n * // Parse positive integers only\n * const positiveInt = Flag.integer(\"count\").pipe(\n * Flag.filterMap(\n * (n) => n > 0 ? Option.some(n) : Option.none(),\n * (n) => `Expected positive integer, got ${n}`\n * )\n * )\n *\n * // Parse valid email addresses\n * const emailFlag = Flag.string(\"email\").pipe(\n * Flag.filterMap(\n * (email) => email.includes(\"@\") ? Option.some(email) : Option.none(),\n * (email) => `Invalid email address: ${email}`\n * )\n * )\n * ```\n *\n * @category filtering\n * @since 4.0.0\n */\nexport const filterMap = /*#__PURE__*/dual(3, (self, f, onNone) => Param.filterMap(self, f, onNone));\n/**\n * Filters a flag value based on a predicate, failing with a custom error if the predicate returns false.\n *\n * **Example** (Filtering parsed values)\n *\n * ```ts\n * import { Flag } from \"effect/unstable/cli\"\n *\n * // Ensure port is in valid range\n * const portFlag = Flag.integer(\"port\").pipe(\n * Flag.filter(\n * (port) => port >= 1 && port <= 65535,\n * (port) => `Port ${port} is out of range (1-65535)`\n * )\n * )\n *\n * // Ensure non-empty string\n * const nameFlag = Flag.string(\"name\").pipe(\n * Flag.filter(\n * (name) => name.trim().length > 0,\n * () => \"Name cannot be empty\"\n * )\n * )\n * ```\n *\n * @category filtering\n * @since 4.0.0\n */\nexport const filter = /*#__PURE__*/dual(3, (self, predicate, onFalse) => Param.filter(self, predicate, onFalse));\n/**\n * Provides an alternative flag if the first one fails to parse.\n *\n * **Example** (Falling back to another flag)\n *\n * ```ts\n * import { Flag } from \"effect/unstable/cli\"\n *\n * // Try parsing as integer, fallback to string\n * const valueFlag = Flag.orElse(\n * Flag.integer(\"value\"),\n * () => Flag.string(\"value\")\n * )\n *\n * // Multiple input sources with fallback\n * const configFlag = Flag.orElse(\n * Flag.file(\"config\"),\n * () => Flag.string(\"config-url\")\n * )\n * ```\n *\n * @category alternatives\n * @since 4.0.0\n */\nexport const orElse = /*#__PURE__*/dual(2, (self, that) => Param.orElse(self, that));\n/**\n * Tries to parse with the first flag, then the second, returning a Result that indicates which succeeded.\n *\n * **Example** (Returning fallback results)\n *\n * ```ts\n * import { Effect, Result } from \"effect\"\n * import { Flag } from \"effect/unstable/cli\"\n *\n * // Try file path, fallback to URL\n * const sourceFlag = Flag.orElseResult(\n * Flag.file(\"source\"),\n * () => Flag.string(\"source-url\")\n * )\n *\n * const program = Effect.gen(function*() {\n * const [leftover, source] = yield* sourceFlag.parse({\n * arguments: [],\n * flags: { \"source-url\": [\"https://google.com\"] }\n * })\n * if (Result.isSuccess(source)) {\n * console.log(\"Using file:\", source.success)\n * } else {\n * console.log(\"Using URL:\", source.failure)\n * }\n * })\n * ```\n *\n * @category alternatives\n * @since 4.0.0\n */\nexport const orElseResult = /*#__PURE__*/dual(2, (self, that) => Param.orElseResult(self, that));\n/**\n * Validates and transforms a flag value using a Schema codec.\n *\n * **Example** (Validating with schemas)\n *\n * ```ts\n * import { Schema } from \"effect\"\n * import { Flag } from \"effect/unstable/cli\"\n *\n * const isEmail = Schema.isPattern(/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/, {\n * message: \"Must be a valid email address\"\n * })\n *\n * // Parse and validate email with custom schema\n * const EmailSchema = Schema.String.pipe(\n * Schema.check(isEmail)\n * )\n *\n * const emailFlag = Flag.string(\"email\").pipe(\n * Flag.withSchema(EmailSchema)\n * )\n *\n * // Parse JSON configuration with schema validation\n * const ConfigSchema = Schema.Struct({\n * port: Schema.Number,\n * host: Schema.String,\n * ssl: Schema.optional(Schema.Boolean)\n * }).pipe(Schema.fromJsonString)\n *\n * const configFlag = Flag.string(\"config\").pipe(\n * Flag.withSchema(ConfigSchema)\n * )\n * ```\n *\n * @category schemas\n * @since 4.0.0\n */\nexport const withSchema = /*#__PURE__*/dual(2, (self, schema) => Param.withSchema(self, schema));\n//# sourceMappingURL=Flag.js.map",
90
89
  "import { dual } from \"./Function.js\";\nimport * as core from \"./internal/core.js\";\nimport * as effect from \"./internal/effect.js\";\n/**\n * Context reference for the current console service in the Effect system, allowing access to the active console implementation from within the Effect context.\n *\n * **When to use**\n *\n * Use when an Effect program needs the current console service as a context\n * reference, such as when providing or overriding a console implementation.\n *\n * **Details**\n *\n * When no override is provided, the reference resolves to `globalThis.console`.\n *\n * **Example** (Accessing the current console)\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const program = Console.consoleWith((console) =>\n * Effect.sync(() => {\n * console.log(\"Hello from current console!\")\n * })\n * )\n * ```\n *\n * @see {@link consoleWith} for using the current console service inside an effect\n *\n * @category references\n * @since 2.0.0\n */\nexport const Console = effect.ConsoleRef;\n/**\n * Creates an Effect that provides access to the current console service and lets you perform operations with it within an Effect context.\n *\n * **Example** (Using the current console service)\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const program = Console.consoleWith((console) =>\n * Effect.sync(() => {\n * console.log(\"Hello, world!\")\n * console.error(\"This is an error message\")\n * })\n * )\n * ```\n *\n * @category constructors\n * @since 2.0.0\n */\nexport const consoleWith = f => core.withFiber(fiber => f(fiber.getRef(Console)));\n/**\n * Writes the supplied assertion message to the console as an error when `condition` is false; when `condition` is true, no console output is produced.\n *\n * **Example** (Logging failed assertions)\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const program = Effect.gen(function*() {\n * yield* Console.assert(2 + 2 === 4, \"Math is working correctly\")\n * yield* Console.assert(2 + 2 === 5, \"This will be logged as an error\")\n * })\n * ```\n *\n * @category accessors\n * @since 2.0.0\n */\nexport const assert = (condition, ...args) => consoleWith(console => effect.sync(() => {\n console.assert(condition, ...args);\n}));\n/**\n * Runs the current console service's clear operation.\n *\n * **When to use**\n *\n * Use to request that the active console implementation clear its visible\n * output.\n *\n * **Gotchas**\n *\n * The clearing behavior depends on the active console implementation and host\n * environment.\n *\n * **Example** (Clearing console output)\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const program = Effect.gen(function*() {\n * yield* Console.log(\"This will be cleared\")\n * yield* Console.clear\n * yield* Console.log(\"This appears after clearing\")\n * })\n * ```\n *\n * @category accessors\n * @since 2.0.0\n */\nexport const clear = /*#__PURE__*/consoleWith(console => effect.sync(() => {\n console.clear();\n}));\n/**\n * Logs and increments the counter associated with `label`, using the console's default counter when no label is provided.\n *\n * **Example** (Counting repeated calls)\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const program = Effect.gen(function*() {\n * yield* Console.count(\"my-counter\")\n * yield* Console.count(\"my-counter\") // Will show: my-counter: 2\n * yield* Console.count() // Default counter\n * })\n * ```\n *\n * @category accessors\n * @since 2.0.0\n */\nexport const count = label => consoleWith(console => effect.sync(() => {\n console.count(label);\n}));\n/**\n * Resets the counter associated with the specified label back to zero.\n *\n * **Example** (Resetting a counter)\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const program = Effect.gen(function*() {\n * yield* Console.count(\"my-counter\")\n * yield* Console.count(\"my-counter\") // Will show: my-counter: 2\n * yield* Console.countReset(\"my-counter\")\n * yield* Console.count(\"my-counter\") // Will show: my-counter: 1\n * })\n * ```\n *\n * @category accessors\n * @since 2.0.0\n */\nexport const countReset = label => consoleWith(console => effect.sync(() => {\n console.countReset(label);\n}));\n/**\n * Writes a debug message through the current `Console` service.\n *\n * **Details**\n *\n * The arguments are passed to the service's `debug` method when the returned\n * Effect is executed. Any filtering behavior depends on the active console\n * implementation.\n *\n * **Example** (Writing debug messages)\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const program = Effect.gen(function*() {\n * yield* Console.debug(\"Debug info:\", { userId: 123, action: \"login\" })\n * yield* Console.debug(\"Processing step\", 1, \"of\", 5)\n * })\n * ```\n *\n * @category accessors\n * @since 2.0.0\n */\nexport const debug = (...args) => consoleWith(console => effect.sync(() => {\n console.debug(...args);\n}));\n/**\n * Displays an interactive list of the properties of the specified object, optionally using console-specific inspection options for debugging complex data structures.\n *\n * **Example** (Inspecting an object)\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const program = Effect.gen(function*() {\n * const obj = { name: \"John\", age: 30, nested: { city: \"New York\" } }\n * yield* Console.dir(obj)\n * yield* Console.dir(obj, { depth: 2, colors: true })\n * })\n * ```\n *\n * @category accessors\n * @since 2.0.0\n */\nexport const dir = (item, options) => consoleWith(console => effect.sync(() => {\n console.dir(item, options);\n}));\n/**\n * Displays an interactive tree of descendant XML or HTML elements, which is particularly useful for inspecting DOM elements in browser environments.\n *\n * **Example** (Inspecting XML-like data)\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const program = Effect.gen(function*() {\n * yield* Console.dirxml(\"<user id=\\\"1\\\">Ada</user>\")\n * })\n *\n * Effect.runSync(program)\n * // <user id=\"1\">Ada</user>\n * ```\n *\n * @category accessors\n * @since 2.0.0\n */\nexport const dirxml = (...args) => consoleWith(console => effect.sync(() => {\n console.dirxml(...args);\n}));\n/**\n * Writes an error-level message to the console, typically displayed with error\n * styling by the active console implementation.\n *\n * **Example** (Writing error messages)\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const program = Effect.gen(function*() {\n * yield* Console.error(\"Something went wrong!\")\n * yield* Console.error(\"Error details:\", {\n * code: 500,\n * message: \"Internal Server Error\"\n * })\n * })\n * ```\n *\n * @category accessors\n * @since 2.0.0\n */\nexport const error = (...args) => consoleWith(console => effect.sync(() => {\n console.error(...args);\n}));\n/**\n * Creates a scoped console group, optionally collapsed and labeled, and closes it automatically when the Effect scope is finalized.\n *\n * **Example** (Grouping scoped output)\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const program = Effect.gen(function*() {\n * yield* Effect.scoped(\n * Effect.gen(function*() {\n * yield* Console.group({ label: \"User Processing\" })\n * yield* Console.log(\"Loading user data...\")\n * yield* Console.log(\"Validating user...\")\n * yield* Console.log(\"User processed successfully\")\n * })\n * )\n * })\n * ```\n *\n * @category accessors\n * @since 2.0.0\n */\nexport const group = options => consoleWith(console => effect.acquireRelease(effect.sync(() => {\n if (options?.collapsed) {\n console.groupCollapsed(options.label);\n } else {\n console.group(options?.label);\n }\n}), () => effect.sync(() => {\n console.groupEnd();\n})));\n/**\n * Writes an informational message to the console, typically displayed with info\n * styling by the active console implementation.\n *\n * **Example** (Writing informational messages)\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const program = Effect.gen(function*() {\n * yield* Console.info(\"Application started successfully\")\n * yield* Console.info(\"Server configuration:\", {\n * port: 3000,\n * env: \"development\"\n * })\n * })\n * ```\n *\n * @category accessors\n * @since 2.0.0\n */\nexport const info = (...args) => consoleWith(console => effect.sync(() => {\n console.info(...args);\n}));\n/**\n * Logs a general-purpose message to the console.\n *\n * **Example** (Writing log messages)\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const program = Effect.gen(function*() {\n * yield* Console.log(\"Hello, world!\")\n * yield* Console.log(\"User data:\", { name: \"John\", age: 30 })\n * yield* Console.log(\"Processing\", 42, \"items\")\n * })\n * ```\n *\n * @category accessors\n * @since 2.0.0\n */\nexport const log = (...args) => consoleWith(console => effect.sync(() => {\n console.log(...args);\n}));\n/**\n * Displays tabular data as a formatted table in the console, optionally limited to selected properties.\n *\n * **Example** (Displaying tabular data)\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const program = Effect.gen(function*() {\n * const users = [\n * { name: \"John\", age: 30, city: \"New York\" },\n * { name: \"Jane\", age: 25, city: \"London\" },\n * { name: \"Bob\", age: 35, city: \"Paris\" }\n * ]\n * yield* Console.table(users)\n * yield* Console.table(users, [\"name\", \"age\"]) // Only show specific columns\n * })\n * ```\n *\n * @category accessors\n * @since 2.0.0\n */\nexport const table = (tabularData, properties) => consoleWith(console => effect.sync(() => {\n console.table(tabularData, properties);\n}));\n/**\n * Starts a scoped timer for `label` and automatically ends it when the Effect scope is finalized.\n *\n * **Example** (Timing scoped work)\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const program = Effect.gen(function*() {\n * yield* Effect.scoped(\n * Effect.gen(function*() {\n * yield* Console.time(\"operation-timer\")\n * yield* Effect.sleep(\"1 second\")\n * yield* Console.log(\"Operation completed\")\n * // Timer ends automatically when scope closes\n * })\n * )\n * })\n * ```\n *\n * @category accessors\n * @since 2.0.0\n */\nexport const time = label => consoleWith(console => effect.acquireRelease(effect.sync(() => {\n console.time(label);\n}), () => effect.sync(() => {\n console.timeEnd(label);\n})));\n/**\n * Logs the elapsed time for an existing timer without stopping it, allowing progress reports for long-running operations.\n *\n * **Example** (Logging timer progress)\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const program = Effect.gen(function*() {\n * yield* Effect.scoped(\n * Effect.gen(function*() {\n * yield* Console.time(\"long-operation\")\n * yield* Effect.sleep(\"500 millis\")\n * yield* Console.timeLog(\"long-operation\", \"Halfway done\")\n * yield* Effect.sleep(\"500 millis\")\n * // Timer ends when scope closes\n * })\n * )\n * })\n * ```\n *\n * @category accessors\n * @since 2.0.0\n */\nexport const timeLog = (label, ...args) => consoleWith(console => effect.sync(() => {\n console.timeLog(label, ...args);\n}));\n/**\n * Writes the current stack trace to the console to show how the current point in\n * the code was reached.\n *\n * **Example** (Writing stack traces)\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const program = Effect.gen(function*() {\n * yield* Console.trace(\"Debug trace point\")\n * yield* Console.trace(\"Function call:\", { functionName: \"processData\" })\n * })\n * ```\n *\n * @category accessors\n * @since 2.0.0\n */\nexport const trace = (...args) => consoleWith(console => effect.sync(() => {\n console.trace(...args);\n}));\n/**\n * Writes a warning-level message to the console, typically displayed with\n * warning styling by the active console implementation.\n *\n * **Example** (Writing warning messages)\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const program = Effect.gen(function*() {\n * yield* Console.warn(\"This feature is deprecated\")\n * yield* Console.warn(\"Performance warning:\", {\n * slowQuery: \"SELECT * FROM large_table\"\n * })\n * })\n * ```\n *\n * @category accessors\n * @since 2.0.0\n */\nexport const warn = (...args) => consoleWith(console => effect.sync(() => {\n console.warn(...args);\n}));\n/**\n * Runs an Effect inside an optionally labeled or collapsed console group, starting the group before execution and ending it after the Effect completes.\n *\n * **Example** (Wrapping an effect in a group)\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const program = Effect.gen(function*() {\n * yield* Console.withGroup(\n * Effect.gen(function*() {\n * yield* Console.log(\"Step 1: Initialize\")\n * yield* Console.log(\"Step 2: Process\")\n * yield* Console.log(\"Step 3: Complete\")\n * }),\n * { label: \"Processing Steps\", collapsed: false }\n * )\n * })\n * ```\n *\n * @category accessors\n * @since 2.0.0\n */\nexport const withGroup = /*#__PURE__*/dual(args => core.isEffect(args[0]), (self, options) => consoleWith(console => effect.acquireUseRelease(effect.sync(() => {\n if (options?.collapsed) {\n console.groupCollapsed(options.label);\n } else {\n console.group(options?.label);\n }\n}), () => self, () => effect.sync(() => {\n console.groupEnd();\n}))));\n/**\n * Runs an Effect with a console timer, starting the timer before execution and ending it after the Effect completes.\n *\n * **Example** (Timing an effect)\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n *\n * const program = Effect.gen(function*() {\n * yield* Console.withTime(\n * Effect.gen(function*() {\n * yield* Effect.sleep(\"1 second\")\n * yield* Console.log(\"Operation completed\")\n * }),\n * \"my-operation\"\n * )\n * })\n * ```\n *\n * @category accessors\n * @since 2.0.0\n */\nexport const withTime = /*#__PURE__*/dual(args => core.isEffect(args[0]), (self, label) => consoleWith(console => effect.acquireUseRelease(effect.sync(() => {\n console.time(label);\n}), () => self, () => effect.sync(() => {\n console.timeEnd(label);\n}))));\n//# sourceMappingURL=Console.js.map",
91
- "/**\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",
92
90
  "/**\n * The `CliOutput` module provides the formatting service used by Effect CLI\n * applications to turn parsed CLI metadata and failures into terminal text.\n * It renders help documents, parser errors, grouped errors, and version output,\n * while allowing applications and tests to replace the formatter through a\n * `Context` service or `Layer`.\n *\n * **Common tasks**\n *\n * - Render generated {@link HelpDoc} values for `--help` output\n * - Display parser failures and validation errors from CLI programs\n * - Customize output for plain text, colored terminals, tests, or alternate\n * formats\n * - Format version strings consistently with the rest of CLI output\n *\n * **Gotchas**\n *\n * - Color output is auto-detected from `process.stdout.isTTY` and `NO_COLOR`,\n * but can be forced with {@link defaultFormatter}\n * - Help tables measure visible width after stripping ANSI escape codes, so\n * colored output stays aligned with plain output\n *\n * @since 4.0.0\n */\nimport * as Context from \"../../Context.js\";\nimport * as Layer from \"../../Layer.js\";\nimport * as Option from \"../../Option.js\";\n/**\n * Service reference for the CLI output formatter. Provides a default implementation\n * that can be overridden for custom formatting or testing.\n *\n * **Example** (Accessing the output formatter)\n *\n * ```ts\n * import { Effect } from \"effect\"\n * import { CliOutput } from \"effect/unstable/cli\"\n *\n * // Access the formatter service\n * const program = Effect.gen(function*() {\n * const formatter = yield* CliOutput.Formatter\n *\n * // Format version information\n * const versionText = formatter.formatVersion(\"my-cli\", \"2.1.0\")\n * console.log(versionText) // \"my-cli v2.1.0\" (with colors if supported)\n *\n * return versionText\n * })\n *\n * // Run with default formatter\n * const result = Effect.runSync(program)\n * ```\n *\n * @category services\n * @since 4.0.0\n */\nexport const Formatter = /*#__PURE__*/Context.Reference(\"effect/cli/CliOutput\", {\n defaultValue: () => defaultFormatter()\n});\n/**\n * Creates a Layer that provides a custom Formatter implementation.\n *\n * **Example** (Providing a custom formatter)\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n * import { CliOutput } from \"effect/unstable/cli\"\n *\n * // Create a custom formatter without colors\n * const noColorFormatter = CliOutput.defaultFormatter({ colors: false })\n * const NoColorLayer = CliOutput.layer(noColorFormatter)\n *\n * // Create a program that uses the custom formatter\n * const program = Effect.gen(function*() {\n * const formatter = yield* CliOutput.Formatter\n * const versionText = formatter.formatVersion(\"my-cli\", \"1.0.0\")\n * yield* Console.log(`Using custom formatter: ${versionText}`)\n * }).pipe(\n * Effect.provide(NoColorLayer)\n * )\n *\n * // You can also create completely custom formatters\n * const jsonFormatter: CliOutput.Formatter = {\n * formatHelpDoc: (doc) => JSON.stringify(doc, null, 2),\n * formatCliError: (error) => JSON.stringify({ error: error.message }),\n * formatError: (error) =>\n * JSON.stringify({ type: \"error\", message: error.message }),\n * formatVersion: (name, version) => JSON.stringify({ name, version }),\n * formatErrors: (errors) => JSON.stringify(errors.map((error) => error.message))\n * }\n * const JsonLayer = CliOutput.layer(jsonFormatter)\n * ```\n *\n * @category layers\n * @since 4.0.0\n */\nexport const layer = formatter => Layer.succeed(Formatter)(formatter);\n/**\n * Creates a default formatter with configurable options.\n *\n * **Example** (Creating default formatters)\n *\n * ```ts\n * import { Effect } from \"effect\"\n * import { CliError, CliOutput } from \"effect/unstable/cli\"\n *\n * // Create a formatter without colors for tests or CI environments\n * const noColorFormatter = CliOutput.defaultFormatter({ colors: false })\n *\n * // Create a formatter with colors forced on\n * const colorFormatter = CliOutput.defaultFormatter({ colors: true })\n *\n * // Auto-detect colors based on terminal support (default behavior)\n * const autoFormatter = CliOutput.defaultFormatter()\n *\n * const program = Effect.gen(function*() {\n * const formatter = colorFormatter\n *\n * // Format an error with proper styling\n * const error = new CliError.InvalidValue({\n * option: \"foo\",\n * value: \"bar\",\n * expected: \"baz\",\n * kind: \"flag\"\n * })\n * const errorText = formatter.formatError(error)\n * console.log(errorText)\n *\n * // Format version information\n * const versionText = formatter.formatVersion(\"my-tool\", \"1.2.3\")\n * console.log(versionText)\n * })\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const defaultFormatter = options => {\n const globalProcess = globalThis.process;\n const hasProcess = typeof globalProcess === \"object\" && globalProcess !== null;\n const useColor = options?.colors !== undefined ? options.colors\n // Auto-detect based on environment\n : hasProcess && typeof globalProcess.stdout === \"object\" && globalProcess.stdout !== null && globalProcess.stdout.isTTY === true && globalProcess.env?.NO_COLOR !== \"1\";\n // Color palette using ANSI escape codes\n const colors = useColor ? {\n bold: text => `\\x1b[1m${text}\\x1b[0m`,\n dim: text => `\\x1b[2m${text}\\x1b[0m`,\n cyan: text => `\\x1b[36m${text}\\x1b[0m`,\n green: text => `\\x1b[32m${text}\\x1b[0m`,\n blue: text => `\\x1b[34m${text}\\x1b[0m`,\n yellow: text => `\\x1b[33m${text}\\x1b[0m`,\n magenta: text => `\\x1b[35m${text}\\x1b[0m`\n } : {\n bold: text => text,\n dim: text => text,\n cyan: text => text,\n green: text => text,\n blue: text => text,\n yellow: text => text,\n magenta: text => text\n };\n const reset = useColor ? \"\\x1b[0m\" : \"\";\n const red = useColor ? \"\\x1b[31m\" : \"\";\n const bold = useColor ? \"\\x1b[1m\" : \"\";\n return {\n formatHelpDoc: doc => formatHelpDocImpl(doc, colors),\n formatCliError: error => error.message,\n formatError: error => {\n return `\\n${bold}${red}ERROR${reset}\\n ${error.message}${reset}`;\n },\n formatErrors: errors => {\n if (errors.length === 0) return \"\";\n if (errors.length === 1) {\n return `\\n${bold}${red}ERROR${reset}\\n ${errors[0].message}${reset}`;\n }\n // Group errors by _tag\n const grouped = new Map();\n for (const error of errors) {\n const tag = error._tag ?? \"Error\";\n const group = grouped.get(tag) ?? [];\n group.push(error);\n grouped.set(tag, group);\n }\n const sections = [];\n sections.push(`\\n${bold}${red}ERRORS${reset}`);\n for (const [, group] of grouped) {\n for (const error of group) {\n sections.push(` ${error.message}${reset}`);\n }\n }\n return sections.join(\"\\n\");\n },\n formatVersion: (name, version) => `${colors.bold(name)} ${colors.dim(\"v\")}${colors.bold(version)}`\n };\n};\n/**\n * Strips ANSI escape codes from a string to calculate visual width.\n * @internal\n */\nconst stripAnsi = text => {\n // oxlint-disable-next-line no-control-regex\n return text.replace(/\\u001B\\[[0-9;]*m/g, \"\");\n};\n/**\n * Gets the visual length of a string (excluding ANSI codes).\n * @internal\n */\nconst visualLength = text => stripAnsi(text).length;\n/**\n * Helper function to pad strings to a specified width.\n * @internal\n */\nconst pad = (s, width) => {\n const actualLength = visualLength(s);\n const padding = Math.max(0, width - actualLength);\n return s + \" \".repeat(padding);\n};\n/**\n * Renders a table with aligned columns.\n * @internal\n */\nconst renderTable = (rows, widthCap) => {\n const maxColumn = Math.max(...rows.map(r => visualLength(r.left))) + 4;\n const col = widthCap === undefined ? maxColumn : Math.min(maxColumn, widthCap);\n return rows.map(({\n left,\n right\n }) => ` ${pad(left, col)}${right}`).join(\"\\n\");\n};\nconst formatSubcommandName = (name, alias) => alias ? `${name}, ${alias}` : name;\n/**\n * Internal implementation of help formatting that accepts configurable color functions.\n * @internal\n */\nconst formatHelpDocImpl = (doc, colors) => {\n const sections = [];\n // Description section\n if (doc.description) {\n sections.push(colors.bold(\"DESCRIPTION\"));\n sections.push(` ${doc.description}`);\n sections.push(\"\");\n }\n // Usage section\n sections.push(colors.bold(\"USAGE\"));\n sections.push(` ${colors.cyan(doc.usage)}`);\n sections.push(\"\");\n // Arguments section\n if (doc.args && doc.args.length > 0) {\n sections.push(colors.bold(\"ARGUMENTS\"));\n const argRows = doc.args.map(arg => {\n let name = arg.name;\n if (arg.variadic) {\n name += \"...\";\n }\n const coloredName = colors.green(name);\n const coloredType = colors.dim(arg.type);\n const nameType = `${coloredName} ${coloredType}`;\n const optionalSuffix = arg.required ? \"\" : colors.dim(\" (optional)\");\n const description = Option.getOrElse(arg.description, () => \"\") + optionalSuffix;\n return {\n left: nameType,\n right: description\n };\n });\n sections.push(renderTable(argRows, 25));\n sections.push(\"\");\n }\n // Flags section\n if (doc.flags.length > 0) {\n sections.push(colors.bold(\"FLAGS\"));\n const flagRows = doc.flags.map(flag => {\n const names = [];\n // Add main name with -- prefix first\n names.push(colors.green(`--${flag.name}`));\n // Add aliases after (like -f) to match expected ordering\n for (const alias of flag.aliases) {\n names.push(colors.green(alias));\n }\n const namesPart = names.join(\", \");\n const typePart = flag.type !== \"boolean\" ? ` ${colors.dim(flag.type)}` : \"\";\n return {\n left: namesPart + typePart,\n right: Option.getOrElse(flag.description, () => \"\")\n };\n });\n sections.push(renderTable(flagRows));\n sections.push(\"\");\n }\n // Global Flags section\n if (doc.globalFlags && doc.globalFlags.length > 0) {\n sections.push(colors.bold(\"GLOBAL FLAGS\"));\n const globalFlagRows = doc.globalFlags.map(flag => {\n const names = [];\n // Add main name with -- prefix first\n names.push(colors.green(`--${flag.name}`));\n // Add aliases after (like -f) to match expected ordering\n for (const alias of flag.aliases) {\n names.push(colors.green(alias));\n }\n const namesPart = names.join(\", \");\n const typePart = flag.type !== \"boolean\" ? ` ${colors.dim(flag.type)}` : \"\";\n return {\n left: namesPart + typePart,\n right: Option.getOrElse(flag.description, () => \"\")\n };\n });\n sections.push(renderTable(globalFlagRows));\n sections.push(\"\");\n }\n // Subcommands section\n if (doc.subcommands && doc.subcommands.length > 0) {\n const ungrouped = doc.subcommands.find(group => group.group === undefined);\n if (ungrouped) {\n sections.push(colors.bold(\"SUBCOMMANDS\"));\n sections.push(renderTable(ungrouped.commands.map(sub => ({\n left: colors.cyan(formatSubcommandName(sub.name, sub.alias)),\n right: sub.shortDescription ?? sub.description\n })), 20));\n if (doc.subcommands.length > 1) {\n sections.push(\"\");\n }\n }\n for (const group of doc.subcommands) {\n if (group.group === undefined) continue;\n sections.push(colors.bold(`${group.group}:`));\n sections.push(renderTable(group.commands.map(sub => ({\n left: colors.cyan(formatSubcommandName(sub.name, sub.alias)),\n right: sub.shortDescription ?? sub.description\n })), 20));\n sections.push(\"\");\n }\n }\n // Examples section\n if (doc.examples && doc.examples.length > 0) {\n sections.push(colors.bold(\"EXAMPLES\"));\n let first = true;\n let previousHadDescription = false;\n for (const example of doc.examples) {\n if (example.description) {\n if (!first) sections.push(\"\");\n sections.push(` ${colors.dim(`# ${example.description}`)}`);\n } else if (previousHadDescription) {\n sections.push(\"\");\n }\n sections.push(` ${colors.cyan(example.command)}`);\n first = false;\n previousHadDescription = !!example.description;\n }\n sections.push(\"\");\n }\n // Remove trailing empty line if present\n if (sections[sections.length - 1] === \"\") {\n sections.pop();\n }\n return sections.join(\"\\n\");\n};\n//# sourceMappingURL=CliOutput.js.map",
93
91
  "// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\nconst escapeForBash = s => s.replace(/'/g, \"'\\\\''\");\nconst sanitizeFunctionName = s => s.replace(/[^a-zA-Z0-9_]/g, \"_\");\nconst flagNamesForWordlist = flag => {\n const names = [`--${flag.name}`];\n for (const alias of flag.aliases) {\n names.push(alias.length === 1 ? `-${alias}` : `--${alias}`);\n }\n if (flag.type._tag === \"Boolean\") {\n names.push(`--no-${flag.name}`);\n }\n return names;\n};\n/**\n * Build an associative array mapping each flag form to a group index.\n * At completion time, if any form in a group appears in COMP_WORDS,\n * all forms in that group are removed from the candidate list.\n */\nconst buildFlagGroupDeclarations = (flags, lines) => {\n if (flags.length === 0) return;\n lines.push(` # Build used-flag filter`);\n lines.push(` local -A _flag_groups`);\n let groupIdx = 0;\n for (const flag of flags) {\n const forms = flagNamesForWordlist(flag);\n for (const form of forms) {\n lines.push(` _flag_groups[${form}]=${groupIdx}`);\n }\n groupIdx++;\n }\n lines.push(` local -A _used_groups`);\n lines.push(` for ((i = 1; i < cword; i++)); do`);\n lines.push(` local _g=\"\\${_flag_groups[\\${words[i]}]:-}\"`);\n lines.push(` [[ -n \"$_g\" ]] && _used_groups[$_g]=1`);\n lines.push(` done`);\n lines.push(` local _filtered_flags=\"\"`);\n lines.push(` for _f in ${flags.flatMap(flagNamesForWordlist).join(\" \")}; do`);\n lines.push(` local _g=\"\\${_flag_groups[$_f]:-}\"`);\n lines.push(` [[ -z \"$_g\" || -z \"\\${_used_groups[$_g]:-}\" ]] && _filtered_flags+=\" $_f\"`);\n lines.push(` done`);\n lines.push(``);\n};\nconst flagValueCompletion = type => {\n switch (type._tag) {\n case \"Boolean\":\n return undefined;\n case \"Choice\":\n return `COMPREPLY=( $(compgen -W '${type.values.join(\" \")}' -- \"$cur\") )`;\n case \"Path\":\n if (type.pathType === \"directory\") return `COMPREPLY=( $(compgen -d -- \"$cur\") )`;\n return `COMPREPLY=( $(compgen -f -- \"$cur\") )`;\n default:\n return undefined;\n }\n};\nconst argCompletion = type => {\n switch (type._tag) {\n case \"Choice\":\n return `COMPREPLY=( $(compgen -W '${type.values.join(\" \")}' -- \"$cur\") )`;\n case \"Path\":\n if (type.pathType === \"directory\") return `COMPREPLY=( $(compgen -d -- \"$cur\") )`;\n return `COMPREPLY=( $(compgen -f -- \"$cur\") )`;\n default:\n return undefined;\n }\n};\n// ---------------------------------------------------------------------------\n// Generator\n// ---------------------------------------------------------------------------\nconst generateFunction = (descriptor, parentPath, lines) => {\n const currentPath = [...parentPath, descriptor.name];\n const funcName = `_${currentPath.map(sanitizeFunctionName).join(\"_\")}`;\n lines.push(`${funcName}()`);\n lines.push(`{`);\n lines.push(` local cur prev words cword`);\n lines.push(` _init_completion || return`);\n lines.push(``);\n // Build flag-value dispatch\n const flagsWithValues = descriptor.flags.filter(f => f.type._tag !== \"Boolean\");\n if (flagsWithValues.length > 0) {\n lines.push(` # Flag value completions`);\n lines.push(` case \"$prev\" in`);\n for (const flag of flagsWithValues) {\n const longNames = [`--${flag.name}`];\n for (const alias of flag.aliases) {\n longNames.push(alias.length === 1 ? `-${alias}` : `--${alias}`);\n }\n const completion = flagValueCompletion(flag.type);\n if (completion) {\n lines.push(` ${longNames.join(\"|\")})`);\n lines.push(` ${completion}`);\n lines.push(` return`);\n lines.push(` ;;`);\n }\n }\n lines.push(` esac`);\n lines.push(``);\n }\n // Subcommand dispatch\n if (descriptor.subcommands.length > 0) {\n lines.push(` # Subcommand dispatch`);\n lines.push(` local i cmd`);\n lines.push(` for ((i = 1; i < cword; i++)); do`);\n lines.push(` case \"\\${words[i]}\" in`);\n for (const sub of descriptor.subcommands) {\n const subFuncName = `_${[...currentPath, sub.name].map(sanitizeFunctionName).join(\"_\")}`;\n lines.push(` ${sub.name})`);\n lines.push(` ${subFuncName}`);\n lines.push(` return`);\n lines.push(` ;;`);\n }\n lines.push(` esac`);\n lines.push(` done`);\n lines.push(``);\n }\n // Filter already-used flags (entire alias group removed when any form is used)\n buildFlagGroupDeclarations(descriptor.flags, lines);\n if (descriptor.flags.length > 0 || descriptor.subcommands.length > 0) {\n lines.push(` # Complete flags (filtered) and subcommands`);\n lines.push(` if [[ \"$cur\" == -* ]]; then`);\n if (descriptor.flags.length > 0) {\n lines.push(` COMPREPLY=( $(compgen -W \"$_filtered_flags\" -- \"$cur\") )`);\n }\n lines.push(` return`);\n lines.push(` fi`);\n lines.push(``);\n }\n // Positional argument completion\n const argsWithCompletions = descriptor.arguments.filter(a => argCompletion(a.type) !== undefined);\n if (argsWithCompletions.length > 0) {\n lines.push(` # Positional argument completions`);\n for (const arg of argsWithCompletions) {\n const comp = argCompletion(arg.type);\n lines.push(` ${comp}`);\n lines.push(` return`);\n }\n } else if (descriptor.subcommands.length > 0) {\n const subNames = descriptor.subcommands.map(s => s.name);\n lines.push(` COMPREPLY=( $(compgen -W '${subNames.join(\" \")}' -- \"$cur\") )`);\n }\n lines.push(`}`);\n lines.push(``);\n // Recurse into subcommands\n for (const sub of descriptor.subcommands) {\n generateFunction(sub, currentPath, lines);\n }\n};\n/** @internal */\nexport const generate = (executableName, descriptor) => {\n const lines = [];\n const safeName = sanitizeFunctionName(executableName);\n lines.push(`###-begin-${escapeForBash(executableName)}-completions-###`);\n lines.push(`#`);\n lines.push(`# Static completion script for Bash`);\n lines.push(`#`);\n lines.push(`# Installation:`);\n lines.push(`# ${escapeForBash(executableName)} --completions bash >> ~/.bashrc`);\n lines.push(`#`);\n lines.push(``);\n // Inline minimal _init_completion fallback for environments without\n // bash-completion installed. The real _init_completion handles edge cases\n // (= in options, redirections, etc.) but this covers the common path.\n lines.push(`if ! type _init_completion &>/dev/null; then`);\n lines.push(` _init_completion()`);\n lines.push(` {`);\n lines.push(` COMPREPLY=()`);\n lines.push(` cur=\"\\${COMP_WORDS[COMP_CWORD]}\"`);\n lines.push(` prev=\"\\${COMP_WORDS[COMP_CWORD-1]}\"`);\n lines.push(` words=(\"\\${COMP_WORDS[@]}\")`);\n lines.push(` cword=$COMP_CWORD`);\n lines.push(` }`);\n lines.push(`fi`);\n lines.push(``);\n generateFunction(descriptor, [], lines);\n lines.push(`complete -F _${safeName} ${escapeForBash(executableName)}`);\n lines.push(`###-end-${escapeForBash(executableName)}-completions-###`);\n return lines.join(\"\\n\");\n};\n//# sourceMappingURL=bash.js.map",
94
92
  "// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\nconst escapeFishString = s => s.replace(/'/g, \"\\\\'\");\n/**\n * Build a Fish condition that checks the current subcommand context.\n *\n * For root-level completions with subcommands: `__fish_use_subcommand`\n * For nested commands: verify the parent subcommand is active AND none of its\n * child subcommands have been entered yet.\n */\nconst subcommandCondition = (parentPath, childSubcommandNames) => {\n if (parentPath.length === 0) {\n if (childSubcommandNames.length > 0) {\n return `__fish_use_subcommand`;\n }\n return ``;\n }\n const parent = parentPath[parentPath.length - 1];\n if (childSubcommandNames.length > 0) {\n // Show only when parent is active but no child subcommand has been entered\n return `__fish_seen_subcommand_from ${parent}; and not __fish_seen_subcommand_from ${childSubcommandNames.join(\" \")}`;\n }\n return `__fish_seen_subcommand_from ${parent}`;\n};\n/**\n * Build a __fish_contains_opt condition that checks whether any form of this\n * flag has already been typed. Returns the condition string without wrapping\n * quotes (the caller adds those).\n */\nconst flagContainsOptCondition = flag => {\n const optArgs = [];\n for (const alias of flag.aliases) {\n if (alias.length === 1) {\n optArgs.push(`-s ${alias}`);\n }\n }\n // Long names (fish __fish_contains_opt uses bare words for long opts)\n optArgs.push(flag.name);\n for (const alias of flag.aliases) {\n if (alias.length > 1) {\n optArgs.push(alias);\n }\n }\n if (flag.type._tag === \"Boolean\") {\n optArgs.push(`no-${flag.name}`);\n }\n return `not __fish_contains_opt ${optArgs.join(\" \")}`;\n};\nconst flagCompletionArgs = flag => {\n const args = [`-l ${flag.name}`];\n for (const alias of flag.aliases) {\n if (alias.length === 1) {\n args.push(`-s ${alias}`);\n } else {\n args.push(`-l ${alias}`);\n }\n }\n if (flag.description) {\n args.push(`-d '${escapeFishString(flag.description)}'`);\n }\n const valueArgs = flagValueArgs(flag.type);\n if (valueArgs) {\n args.push(valueArgs);\n }\n return args;\n};\nconst flagValueArgs = type => {\n switch (type._tag) {\n case \"Boolean\":\n return undefined;\n case \"Choice\":\n return `-r -f -a '${type.values.join(\" \")}'`;\n case \"Path\":\n if (type.pathType === \"directory\") return `-r -F`;\n return `-r -F`;\n default:\n // -r: requires a value, -f: don't fall back to file completion\n return `-r -f`;\n }\n};\nconst argValueArgs = type => {\n switch (type._tag) {\n case \"Choice\":\n return `-r -f -a '${type.values.join(\" \")}'`;\n case \"Path\":\n return `-r -F`;\n default:\n return undefined;\n }\n};\n// ---------------------------------------------------------------------------\n// Generator\n// ---------------------------------------------------------------------------\nconst generateCompletions = (executableName, descriptor, parentPath, lines) => {\n const allSubNames = descriptor.subcommands.map(s => s.name);\n const condition = subcommandCondition(parentPath, allSubNames);\n const conditionArg = condition ? `-n '${condition}'` : ``;\n // Suppress default file completion unless the command has path-type\n // positional arguments. Without this, fish falls back to listing files\n // even when only flags are valid.\n const hasPathArgs = descriptor.arguments.some(a => a.type._tag === \"Path\");\n if (!hasPathArgs) {\n const parts = [`complete -c ${executableName}`];\n if (conditionArg) parts.push(conditionArg);\n parts.push(`-f`);\n lines.push(parts.join(\" \"));\n }\n // Subcommand completions\n for (const sub of descriptor.subcommands) {\n const parts = [`complete -c ${executableName}`];\n if (conditionArg) parts.push(conditionArg);\n parts.push(`-f -a '${escapeFishString(sub.name)}'`);\n if (sub.description) {\n parts.push(`-d '${escapeFishString(sub.description)}'`);\n }\n lines.push(parts.join(\" \"));\n }\n // Flag completions\n for (const flag of descriptor.flags) {\n // Only apply __fish_contains_opt dedup for boolean flags. For value-taking\n // flags, the dedup condition would suppress the entry while fish is waiting\n // for a value (e.g. typing `--env <TAB>` wouldn't show choices).\n const isBoolean = flag.type._tag === \"Boolean\";\n const flagCondition = isBoolean ? condition ? `${condition}; and ${flagContainsOptCondition(flag)}` : flagContainsOptCondition(flag) : condition;\n const flagCondArg = flagCondition ? `-n '${flagCondition}'` : ``;\n const parts = [`complete -c ${executableName}`];\n if (flagCondArg) parts.push(flagCondArg);\n parts.push(...flagCompletionArgs(flag));\n lines.push(parts.join(\" \"));\n // Boolean negation\n if (isBoolean) {\n const negParts = [`complete -c ${executableName}`];\n if (flagCondArg) negParts.push(flagCondArg);\n negParts.push(`-l no-${flag.name}`);\n if (flag.description) {\n negParts.push(`-d '${escapeFishString(`Disable ${flag.name}`)}'`);\n }\n lines.push(negParts.join(\" \"));\n }\n }\n // Flags as -a entries for bare <TAB> visibility.\n // Fish only shows -l/-s entries when the current word starts with -, so\n // without this, flags are invisible on bare <TAB>. Guarded to only show\n // when NOT already typing an option (avoids duplication with -l/-s above)\n // and hidden once a flag has been used (__fish_contains_opt).\n if (descriptor.flags.length > 0) {\n const notDash = `not string match -q -- \"-*\" (commandline -ct)`;\n const bareBase = condition ? `${condition}; and ${notDash}` : notDash;\n for (const flag of descriptor.flags) {\n const bareCondition = `${bareBase}; and ${flagContainsOptCondition(flag)}`;\n const isBoolean = flag.type._tag === \"Boolean\";\n const parts = [`complete -c ${executableName}`];\n parts.push(`-n '${bareCondition}'`);\n parts.push(`-f -a '--${flag.name}'`);\n if (flag.description) {\n parts.push(`-d '${escapeFishString(flag.description)}'`);\n }\n lines.push(parts.join(\" \"));\n if (isBoolean) {\n const negParts = [`complete -c ${executableName}`];\n negParts.push(`-n '${bareCondition}'`);\n negParts.push(`-f -a '--no-${flag.name}'`);\n if (flag.description) {\n negParts.push(`-d '${escapeFishString(`Disable ${flag.name}`)}'`);\n }\n lines.push(negParts.join(\" \"));\n }\n }\n }\n // Argument completions (type hints only)\n for (const arg of descriptor.arguments) {\n const valueArg = argValueArgs(arg.type);\n if (valueArg) {\n const parts = [`complete -c ${executableName}`];\n if (conditionArg) parts.push(conditionArg);\n parts.push(valueArg);\n if (arg.description) {\n parts.push(`-d '${escapeFishString(arg.description)}'`);\n }\n lines.push(parts.join(\" \"));\n }\n }\n // Recurse into subcommands\n for (const sub of descriptor.subcommands) {\n generateCompletions(executableName, sub, [...parentPath, sub.name], lines);\n }\n};\n/** @internal */\nexport const generate = (executableName, descriptor) => {\n const lines = [];\n lines.push(`###-begin-${executableName}-completions-###`);\n lines.push(`#`);\n lines.push(`# Static completion script for Fish`);\n lines.push(`#`);\n lines.push(`# Installation:`);\n lines.push(`# ${executableName} --completions fish > ~/.config/fish/completions/${executableName}.fish`);\n lines.push(`#`);\n lines.push(``);\n generateCompletions(executableName, descriptor, [], lines);\n lines.push(``);\n lines.push(`###-end-${executableName}-completions-###`);\n return lines.join(\"\\n\");\n};\n//# sourceMappingURL=fish.js.map",
@@ -105,47 +103,6 @@
105
103
  "import * as Console from \"../../Console.js\";\nimport * as Context from \"../../Context.js\";\nimport * as Effect from \"../../Effect.js\";\nimport { dual } from \"../../Function.js\";\nimport * as Option from \"../../Option.js\";\nimport * as Predicate from \"../../Predicate.js\";\nimport * as References from \"../../References.js\";\nimport * as Result from \"../../Result.js\";\nimport * as Stdio from \"../../Stdio.js\";\nimport * as Terminal from \"../../Terminal.js\";\nimport * as CliError from \"./CliError.js\";\nimport * as CliOutput from \"./CliOutput.js\";\nimport * as GlobalFlag from \"./GlobalFlag.js\";\nimport { checkForDuplicateFlags, makeCommand, makeParser, toImpl, TypeId } from \"./internal/command.js\";\nimport { mergeConfig, parseConfig } from \"./internal/config.js\";\nimport { getGlobalFlagsForCommandPath, getGlobalFlagsForCommandTree, getHelpForCommandPath } from \"./internal/help.js\";\nimport * as Lexer from \"./internal/lexer.js\";\nimport * as Parser from \"./internal/parser.js\";\nimport * as Param from \"./Param.js\";\n/**\n * Returns `true` if the provided value is a `Command`.\n *\n * **Gotchas**\n *\n * This checks for the `Command` type-id property; it does not validate the full\n * command shape.\n *\n * @category guards\n * @since 4.0.0\n */\nexport const isCommand = u => Predicate.hasProperty(u, TypeId);\n/* ========================================================================== */\n/* Constructors */\n/* ========================================================================== */\n/**\n * Creates a `Command` from a name, an optional configuration, and an optional\n * handler.\n *\n * **Details**\n *\n * Use `withDescription` and related metadata combinators to add help text. The\n * overloads support simple commands, configured commands, and commands with\n * effectful handlers.\n *\n * **Example** (Creating commands)\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n * import { Argument, Command, Flag } from \"effect/unstable/cli\"\n *\n * // Simple command with no configuration\n * const version = Command.make(\"version\")\n *\n * // Command with simple flags\n * const greet = Command.make(\"greet\", {\n * name: Flag.string(\"name\"),\n * count: Flag.integer(\"count\").pipe(Flag.withDefault(1))\n * })\n *\n * // Command with nested configuration\n * const deploy = Command.make(\"deploy\", {\n * environment: Flag.string(\"env\").pipe(\n * Flag.withDescription(\"Target environment\")\n * ),\n * server: {\n * host: Flag.string(\"host\").pipe(Flag.withDefault(\"localhost\")),\n * port: Flag.integer(\"port\").pipe(Flag.withDefault(3000))\n * },\n * files: Argument.string(\"files\").pipe(Argument.variadic),\n * force: Flag.boolean(\"force\").pipe(Flag.withDescription(\"Force deployment\"))\n * })\n *\n * // Command with handler\n * const deployWithHandler = Command.make(\"deploy\", {\n * environment: Flag.string(\"env\"),\n * force: Flag.boolean(\"force\")\n * }, (config) =>\n * Effect.gen(function*() {\n * yield* Console.log(`Starting deployment to ${config.environment}`)\n *\n * if (!config.force && config.environment === \"production\") {\n * return yield* Effect.fail(\"Production deployments require --force flag\")\n * }\n *\n * yield* Console.log(\"Deployment completed successfully\")\n * }))\n * ```\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const make = (name, config, handler) => {\n const parsedConfig = parseConfig(config ?? {});\n return makeCommand({\n name,\n config: parsedConfig,\n ...(Predicate.isNotUndefined(handler) ? {\n handle: handler\n } : {})\n });\n};\n/* ========================================================================== */\n/* Combinators */\n/* ========================================================================== */\n/**\n * Adds or replaces the handler for a command.\n *\n * **Example** (Adding command handlers)\n *\n * ```ts\n * import { Console } from \"effect\"\n * import { Command, Flag } from \"effect/unstable/cli\"\n *\n * // Command without initial handler\n * const greet = Command.make(\"greet\", {\n * name: Flag.string(\"name\")\n * })\n *\n * // Add handler later\n * const greetWithHandler = greet.pipe(\n * Command.withHandler((config: { readonly name: string }) =>\n * Console.log(`Hello, ${config.name}!`)\n * )\n * )\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const withHandler = /*#__PURE__*/dual(2, (self, handler) => makeCommand({\n ...toImpl(self),\n handle: handler\n}));\nconst normalizeSubcommandEntries = entries => {\n const flat = [];\n const grouped = new Map();\n const addToGroup = (group, command) => {\n flat.push(command);\n const existing = grouped.get(group);\n if (existing) {\n existing.push(command);\n } else {\n grouped.set(group, [command]);\n }\n };\n for (const entry of entries) {\n if (isCommand(entry)) {\n addToGroup(undefined, entry);\n continue;\n }\n for (const command of entry.commands) {\n addToGroup(entry.group, command);\n }\n }\n const groups = [];\n const ungroupedCommands = grouped.get(undefined);\n if (ungroupedCommands && ungroupedCommands.length > 0) {\n groups.push({\n group: undefined,\n commands: ungroupedCommands\n });\n }\n for (const [group, commands] of grouped) {\n if (group === undefined) {\n continue;\n }\n groups.push({\n group,\n commands\n });\n }\n return {\n flat,\n groups\n };\n};\n/**\n * Adds subcommands to a command, creating a hierarchical command structure.\n *\n * **Details**\n *\n * Subcommands can access their parent's parsed configuration by yielding the parent\n * command within their handler. This enables shared parent flags that affect\n * all subcommands.\n *\n * **Example** (Adding subcommands)\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n * import { Command, Flag } from \"effect/unstable/cli\"\n *\n * // Parent command with shared flags\n * const git = Command.make(\"git\").pipe(\n * Command.withSharedFlags({\n * verbose: Flag.boolean(\"verbose\")\n * })\n * )\n *\n * // Subcommand that accesses parent config\n * const clone = Command.make(\"clone\", {\n * repository: Flag.string(\"repo\")\n * }, (config) =>\n * Effect.gen(function*() {\n * const parent = yield* git // Access parent's parsed config\n * if (parent.verbose) {\n * yield* Console.log(\"Verbose mode enabled\")\n * }\n * yield* Console.log(`Cloning ${config.repository}`)\n * }))\n *\n * const app = git.pipe(Command.withSubcommands([clone]))\n * // Usage: git --verbose clone --repo github.com/foo/bar\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const withSubcommands = /*#__PURE__*/dual(2, (self, subcommands) => {\n const normalized = normalizeSubcommandEntries(subcommands);\n checkForDuplicateFlags(self, normalized.flat);\n const impl = toImpl(self);\n const byName = new Map(normalized.flat.map(s => [s.name, toImpl(s)]));\n const SubcommandStateSymbol = Symbol(\"effect/cli/SubcommandState\");\n const parse = Effect.fnUntraced(function* (raw) {\n if (Option.isNone(raw.subcommand)) {\n return yield* impl.parse(raw);\n }\n const sub = byName.get(raw.subcommand.value.name);\n if (!sub) {\n return yield* impl.parse(raw);\n }\n const context = yield* impl.parseContext(raw);\n const result = yield* sub.parse(raw.subcommand.value.parsedInput);\n return Object.assign({}, context, {\n [SubcommandStateSymbol]: {\n name: sub.name,\n result\n }\n });\n });\n const handle = Effect.fnUntraced(function* (input, path) {\n const internal = input;\n const selectedSubcommand = internal[SubcommandStateSymbol];\n if (selectedSubcommand) {\n const child = byName.get(selectedSubcommand.name);\n if (!child) {\n return yield* new CliError.ShowHelp({\n commandPath: path,\n errors: []\n });\n }\n return yield* child.handle(selectedSubcommand.result, [...path, child.name]).pipe(Effect.provideService(impl.service, input));\n }\n return yield* impl.handle(input, path);\n });\n return makeCommand({\n name: impl.name,\n config: impl.config,\n contextConfig: impl.contextConfig,\n description: impl.description,\n shortDescription: impl.shortDescription,\n alias: impl.alias,\n annotations: impl.annotations,\n globalFlags: impl.globalFlags,\n examples: impl.examples,\n service: impl.service,\n subcommands: normalized.groups,\n parse,\n parseContext: impl.parseContext,\n handle\n });\n});\n/**\n * Adds flags that are inherited by subcommands.\n *\n * **Details**\n *\n * Shared flags are available to this command's handler and to descendant\n * handlers via `yield* parentCommand`. Shared flags are accepted both before\n * and after a selected subcommand name (npm-style).\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const withSharedFlags = /*#__PURE__*/dual(2, (self, sharedFlags) => {\n const impl = toImpl(self);\n const sharedConfig = parseConfig(sharedFlags);\n const mergedConfig = mergeConfig(impl.config, sharedConfig);\n const mergedContextConfig = mergeConfig(impl.contextConfig, sharedConfig);\n if (impl.subcommands.length > 0) {\n const flatSubcommands = impl.subcommands.flatMap(group => group.commands);\n checkForDuplicateFlags(self, flatSubcommands, {\n contextConfig: mergedContextConfig\n });\n }\n const parseShared = makeParser(sharedConfig);\n const parse = Effect.fnUntraced(function* (raw) {\n const base = yield* impl.parse(raw);\n const shared = yield* parseShared(raw);\n return Object.assign({}, base, shared);\n });\n const parseContext = Effect.fnUntraced(function* (raw) {\n const base = yield* impl.parseContext(raw);\n const shared = yield* parseShared(raw);\n return Object.assign({}, base, shared);\n });\n const handle = (input, commandPath) => impl.handle(input, commandPath);\n return makeCommand({\n name: impl.name,\n config: mergedConfig,\n contextConfig: mergedContextConfig,\n description: impl.description,\n shortDescription: impl.shortDescription,\n alias: impl.alias,\n annotations: impl.annotations,\n globalFlags: impl.globalFlags,\n examples: impl.examples,\n service: impl.service,\n subcommands: impl.subcommands,\n parse,\n parseContext,\n handle\n });\n});\n/**\n * Adds global flags to a command scope.\n *\n * **Details**\n *\n * Declared global flags apply to the command and all of its descendants.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const withGlobalFlags = /*#__PURE__*/dual(2, (self, globalFlags) => {\n const impl = toImpl(self);\n const next = Array.from(new Set([...impl.globalFlags, ...globalFlags]));\n return makeCommand({\n ...impl,\n globalFlags: next\n });\n});\n/**\n * Sets the description for a command.\n *\n * **Details**\n *\n * Descriptions provide users with information about what the command does\n * when they view help documentation.\n *\n * **Example** (Setting descriptions)\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n * import { Command, Flag } from \"effect/unstable/cli\"\n *\n * const deploy = Command.make(\"deploy\", {\n * environment: Flag.string(\"env\")\n * }, (config) =>\n * Effect.gen(function*() {\n * yield* Console.log(`Deploying to ${config.environment}`)\n * })).pipe(\n * Command.withDescription(\"Deploy the application to a specified environment\")\n * )\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const withDescription = /*#__PURE__*/dual(2, (self, description) => makeCommand({\n ...toImpl(self),\n description\n}));\n/**\n * Sets a short description for a command.\n *\n * **Details**\n *\n * Short descriptions are used when listing subcommands in help output and\n * shell completions. If no short description is provided, the full\n * `description` is used as a fallback.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const withShortDescription = /*#__PURE__*/dual(2, (self, shortDescription) => makeCommand({\n ...toImpl(self),\n shortDescription\n}));\n/**\n * Sets an alias for a command.\n *\n * **Details**\n *\n * Aliases are accepted as alternate subcommand names during parsing and are\n * shown in help output as `name, alias`.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const withAlias = /*#__PURE__*/dual(2, (self, alias) => makeCommand({\n ...toImpl(self),\n alias\n}));\n/**\n * Hides a subcommand from parent help output, shell completions, and\n * \"did you mean?\" suggestions while keeping it fully invocable by exact name.\n *\n * **When to use**\n *\n * Use when you use this for experimental or internal subcommands that should be accepted but\n * not advertised on the public CLI surface.\n *\n * **Example** (Hiding a subcommand)\n *\n * ```ts\n * import { Command } from \"effect/unstable/cli\"\n *\n * // `experimental` still runs when invoked as `mycli experimental`,\n * // but it does not appear under SUBCOMMANDS in `mycli --help`.\n * const experimental = Command.make(\"experimental\").pipe(\n * Command.withHidden\n * )\n *\n * const root = Command.make(\"mycli\").pipe(\n * Command.withSubcommands([experimental])\n * )\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const withHidden = self => makeCommand({\n ...toImpl(self),\n hidden: true\n});\n/**\n * Adds a custom annotation to a command.\n *\n * **When to use**\n *\n * Use to attach one command-scoped metadata value under a `Context.Key`,\n * especially for consumers such as custom help formatters.\n *\n * **Details**\n *\n * Annotations are stored on the command's annotation context and flow into\n * generated help document annotations.\n *\n * **Gotchas**\n *\n * Adding the same `Context.Key` again replaces the earlier value.\n *\n * @see {@link annotateMerge} for merging an existing annotation context\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const annotate = /*#__PURE__*/dual(3, (self, service, value) => {\n const impl = toImpl(self);\n return makeCommand({\n ...impl,\n annotations: Context.add(impl.annotations, service, value)\n });\n});\n/**\n * Merges a Context of annotations into a command.\n *\n * **When to use**\n *\n * Use when attaching an already-built `Context.Context` of command annotations.\n *\n * **Details**\n *\n * Merged annotations are stored on the command and exposed through generated\n * help document annotations.\n *\n * **Gotchas**\n *\n * If both contexts contain the same `Context.Key`, the incoming annotations\n * context wins.\n *\n * @see {@link annotate} for adding a single annotation without constructing a `Context`\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const annotateMerge = /*#__PURE__*/dual(2, (self, annotations) => {\n const impl = toImpl(self);\n return makeCommand({\n ...impl,\n annotations: Context.merge(impl.annotations, annotations)\n });\n});\n/**\n * Sets usage examples for a command.\n *\n * **Details**\n *\n * Examples are exposed in structured `HelpDoc` data and rendered by the\n * default formatter in an `EXAMPLES` section.\n *\n * **Example** (Adding usage examples)\n *\n * ```ts\n * import { Command } from \"effect/unstable/cli\"\n *\n * const login = Command.make(\"login\").pipe(\n * Command.withExamples([\n * { command: \"myapp login\", description: \"Log in with browser OAuth\" },\n * { command: \"myapp login --token sbp_abc123\", description: \"Log in with a token\" }\n * ])\n * )\n * ```\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const withExamples = /*#__PURE__*/dual(2, (self, examples) => makeCommand({\n ...toImpl(self),\n examples\n}));\n/* ========================================================================== */\n/* Providing Services */\n/* ========================================================================== */\n// Internal helper: transforms a command's handler while preserving other properties\nconst mapHandler = (self, f) => {\n const impl = toImpl(self);\n return makeCommand({\n ...impl,\n handle: (input, path) => f(impl.handle(input, path), input)\n });\n};\n/**\n * Provides the handler of a command with the services produced by a layer\n * that optionally depends on the command-line input to be created.\n *\n * **Example** (Providing command services)\n *\n * ```ts\n * import { Effect, FileSystem, PlatformError } from \"effect\"\n * import { Command, Flag } from \"effect/unstable/cli\"\n *\n * const deploy = Command.make(\"deploy\", {\n * env: Flag.string(\"env\")\n * }, (config) =>\n * Effect.gen(function*() {\n * const fs = yield* FileSystem.FileSystem\n * // Use fs...\n * })).pipe(\n * // Provide FileSystem based on the --env flag\n * Command.provide((config) =>\n * config.env === \"local\"\n * ? FileSystem.layerNoop({})\n * : FileSystem.layerNoop({\n * access: () =>\n * Effect.fail(\n * PlatformError.badArgument({\n * module: \"FileSystem\",\n * method: \"access\"\n * })\n * )\n * })\n * )\n * )\n * ```\n *\n * @category providing services\n * @since 4.0.0\n */\nexport const provide = /*#__PURE__*/dual(args => isCommand(args[0]), (self, layer, options) => mapHandler(self, (handler, input) => Effect.provide(handler, typeof layer === \"function\" ? layer(input) : layer, options)));\n/**\n * Provides the handler of a command with the implementation of a service that\n * optionally depends on the command-line input to be constructed.\n *\n * @category providing services\n * @since 4.0.0\n */\nexport const provideSync = /*#__PURE__*/dual(3, (self, service, implementation) => mapHandler(self, (handler, input) => Effect.provideService(handler, service, typeof implementation === \"function\" ? implementation(input) : implementation)));\n/**\n * Provides the handler of a command with the service produced by an effect\n * that optionally depends on the command-line input to be created.\n *\n * **When to use**\n *\n * Use to acquire a service effectfully for each command run, optionally using\n * parsed command input.\n *\n * @see {@link provideSync} for synchronous service acquisition\n * @see {@link provide} for providing an already-available service\n * @see {@link provideEffectDiscard} for running an effect before the handler without providing a service\n *\n * @category providing services\n * @since 4.0.0\n */\nexport const provideEffect = /*#__PURE__*/dual(3, (self, service, effect) => mapHandler(self, (handler, input) => Effect.provideServiceEffect(handler, service, typeof effect === \"function\" ? effect(input) : effect)));\n/**\n * Allows for execution of an effect, which optionally depends on command-line\n * input to be created, prior to executing the handler of a command.\n *\n * @category providing services\n * @since 4.0.0\n */\nexport const provideEffectDiscard = /*#__PURE__*/dual(2, (self, effect) => mapHandler(self, (handler, input) => Effect.andThen(typeof effect === \"function\" ? effect(input) : effect, handler)));\n/* ========================================================================== */\n/* Execution */\n/* ========================================================================== */\nconst getOutOfScopeGlobalFlagErrors = (allFlags, activeFlags, flagMap, commandPath) => {\n const activeSet = new Set(activeFlags);\n const errors = [];\n const seen = new Set();\n for (const flag of allFlags) {\n if (activeSet.has(flag)) {\n continue;\n }\n const singles = Param.extractSingleParams(flag.flag);\n for (const single of singles) {\n const entries = flagMap[single.name];\n if (!entries || entries.length === 0) {\n continue;\n }\n const option = `--${single.name}`;\n if (seen.has(option)) {\n continue;\n }\n seen.add(option);\n errors.push(new CliError.UnrecognizedOption({\n option,\n suggestions: [],\n command: commandPath\n }));\n }\n }\n return errors;\n};\nconst showHelp = (command, error) => Effect.gen(function* () {\n const formatter = yield* CliOutput.Formatter;\n const helpDoc = yield* getHelpForCommandPath(command, error.commandPath, GlobalFlag.BuiltIns);\n yield* Console.log(formatter.formatHelpDoc(helpDoc));\n if (error.errors.length > 0) {\n yield* Console.error(formatter.formatErrors(error.errors));\n }\n});\n/**\n * Runs a command using the arguments supplied by the `Stdio` service.\n *\n * **When to use**\n *\n * Use when you use `run` at an application entry point when arguments should come from\n * `Stdio`; use `runWith` when you need an explicit argument array, such as in\n * tests.\n *\n * **Example** (Running commands with standard input)\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n * import { Command, Flag } from \"effect/unstable/cli\"\n *\n * const greetCommand = Command.make(\"greet\", {\n * name: Flag.string(\"name\")\n * }, (config) =>\n * Effect.gen(function*() {\n * yield* Console.log(`Hello, ${config.name}!`)\n * }))\n *\n * // Automatically gets args from the Stdio service\n * const program = Command.run(greetCommand, {\n * version: \"1.0.0\"\n * })\n * ```\n *\n * @category command execution\n * @since 4.0.0\n */\nexport const run = /*#__PURE__*/dual(2, (command, config) => Stdio.Stdio.use(({\n args\n}) => Effect.flatMap(args, args => runWith(command, config)(args))));\n/**\n * Runs a command with explicitly provided arguments instead of using arguments from `Stdio`.\n *\n * **When to use**\n *\n * Use when you use this function for testing CLI applications or when you want to\n * programmatically execute commands with specific arguments.\n *\n * **Example** (Running commands with explicit arguments)\n *\n * ```ts\n * import { Console, Effect } from \"effect\"\n * import { Command, Flag } from \"effect/unstable/cli\"\n *\n * const greet = Command.make(\"greet\", {\n * name: Flag.string(\"name\"),\n * count: Flag.integer(\"count\").pipe(Flag.withDefault(1))\n * }, (config) =>\n * Effect.gen(function*() {\n * for (let i = 0; i < config.count; i++) {\n * yield* Console.log(`Hello, ${config.name}!`)\n * }\n * }))\n *\n * // Test with specific arguments\n * const testProgram = Effect.gen(function*() {\n * const runCommand = Command.runWith(greet, { version: \"1.0.0\" })\n *\n * // Test normal execution\n * yield* runCommand([\"--name\", \"Alice\", \"--count\", \"2\"])\n *\n * // Test help display\n * yield* runCommand([\"--help\"])\n *\n * // Test version display\n * yield* runCommand([\"--version\"])\n * })\n * ```\n *\n * @category command execution\n * @since 4.0.0\n */\nexport const runWith = (command, config) => {\n const commandImpl = toImpl(command);\n return Effect.fnUntraced(function* (args) {\n const {\n tokens,\n trailingOperands\n } = Lexer.lex(args);\n // 1. Collect known global flags from the command tree\n const allFlags = getGlobalFlagsForCommandTree(command, GlobalFlag.BuiltIns);\n // 2. Extract global flag tokens\n const allFlagParams = allFlags.flatMap(f => Param.extractSingleParams(f.flag));\n const globalRegistry = Parser.createFlagRegistry(allFlagParams.filter(Param.isFlagParam));\n const {\n flagMap,\n remainder,\n errors: globalFlagErrors\n } = Parser.consumeGlobalFlags(tokens, command, globalRegistry);\n const emptyArgs = {\n flags: flagMap,\n arguments: []\n };\n // 3. Parse command arguments from remaining tokens\n const parsedArgs = yield* Parser.parseArgs({\n tokens: remainder,\n trailingOperands\n }, command);\n const commandPath = [command.name, ...Parser.getCommandPath(parsedArgs)];\n const handlerCtx = {\n command,\n commandPath,\n version: config.version\n };\n const activeFlags = getGlobalFlagsForCommandPath(command, commandPath, GlobalFlag.BuiltIns);\n // 4. Reject globals that were passed outside the active command scope\n const outOfScopeErrors = getOutOfScopeGlobalFlagErrors(allFlags, activeFlags, flagMap, commandPath);\n if (outOfScopeErrors.length > 0 || globalFlagErrors.length > 0) {\n const parseErrors = parsedArgs.errors ?? [];\n return yield* new CliError.ShowHelp({\n commandPath,\n errors: [...globalFlagErrors, ...outOfScopeErrors, ...parseErrors]\n });\n }\n // 5. Process action flags — first present action wins, then exit\n for (const flag of activeFlags) {\n if (flag._tag !== \"Action\") continue;\n const singles = Param.extractSingleParams(flag.flag);\n const hasEntry = singles.some(s => {\n const entries = flagMap[s.name];\n return entries !== undefined && entries.length > 0;\n });\n if (!hasEntry) continue;\n const [, value] = yield* flag.flag.parse(emptyArgs);\n yield* flag.run(value, handlerCtx);\n return;\n }\n // 6. Handle parsing errors\n if (parsedArgs.errors && parsedArgs.errors.length > 0) {\n return yield* new CliError.ShowHelp({\n commandPath,\n errors: parsedArgs.errors\n });\n }\n const parseResult = yield* Effect.result(commandImpl.parse(parsedArgs));\n if (parseResult._tag === \"Failure\") {\n return yield* new CliError.ShowHelp({\n commandPath,\n errors: [parseResult.failure]\n });\n }\n // 7. Provide setting values\n let program = commandImpl.handle(parseResult.success, [command.name]);\n for (const flag of activeFlags) {\n if (flag._tag !== \"Setting\") continue;\n const [, value] = yield* flag.flag.parse(emptyArgs);\n program = Effect.provideService(program, flag, value);\n }\n const [, logLevel] = yield* GlobalFlag.LogLevel.flag.parse(emptyArgs);\n program = Effect.provideService(program, GlobalFlag.LogLevel, logLevel);\n // 8. Apply built-in setting behavior\n const services = Option.match(logLevel, {\n onNone: () => Context.empty(),\n onSome: level => Context.make(References.MinimumLogLevel, level)\n });\n // 9. Run command handler with composed context\n yield* Effect.provideContext(program, services);\n }, Effect.catchFilter(error => CliError.isCliError(error) && error._tag === \"ShowHelp\" ? Result.succeed(error) : Result.fail(error), error => Effect.andThen(showHelp(command, error), Effect.fail(error))), Effect.catchFilter(e => Terminal.isQuitError(e) ? Result.succeed(e) : Result.fail(e), _ => Effect.interrupt));\n};\n//# sourceMappingURL=Command.js.map",
106
104
  "import * as Command from \"effect/unstable/cli/Command\"\n\ntype Options<Config extends Command.Command.Config, Commands extends ReadonlyArray<Any>> = {\n readonly description?: string\n readonly params?: Config\n readonly commands?: Commands\n}\n\nexport interface Node<\n Name extends string,\n Spec extends Command.Command<Name, any, any, any, any>,\n Commands extends Children,\n> {\n readonly name: Name\n readonly spec: Spec\n readonly commands: Commands\n}\n\nexport type Any = Node<string, Command.Command<any, any, any, any, any>, Children>\nexport type Children = Readonly<Record<string, Any>>\n\nexport function make<\n const Name extends string,\n const Config extends Command.Command.Config = {},\n const Commands extends ReadonlyArray<Any> = [],\n>(name: Name, options: Options<Config, Commands> = {}) {\n const command = Command.make(name, options.params ?? ({} as Config))\n const spec = options.description ? command.pipe(Command.withDescription(options.description)) : command\n return {\n name,\n spec,\n commands: Object.fromEntries(\n (options.commands ?? []).map((command) => [command.name, command]),\n ) as ChildrenOf<Commands>,\n }\n}\n\ntype ChildrenOf<Commands extends ReadonlyArray<Any>> = {\n readonly [Node in Commands[number] as Node[\"name\"]]: Node\n}\n\nexport * as Spec from \"./spec\"\n",
107
105
  "import { Argument, Flag } from \"effect/unstable/cli\"\nimport { Spec } from \"../framework/spec\"\n\ndeclare const OPENCODE_CLI_NAME: string | undefined\n\nexport const Commands = Spec.make(typeof OPENCODE_CLI_NAME === \"string\" ? OPENCODE_CLI_NAME : \"opencode\", {\n description: \"OpenCode 2.0 preview command line interface\",\n commands: [\n Spec.make(\"debug\", {\n description: \"Debugging and troubleshooting tools\",\n commands: [Spec.make(\"agents\", { description: \"List all agents\" })],\n }),\n Spec.make(\"migrate\", { description: \"Migrate v1 data to v2\" }),\n Spec.make(\"service\", {\n description: \"Manage the background server\",\n commands: [\n Spec.make(\"start\", { description: \"Start the background server\" }),\n Spec.make(\"restart\", { description: \"Restart the background server\" }),\n Spec.make(\"status\", { description: \"Show background server status\" }),\n Spec.make(\"stop\", { description: \"Stop the background server\" }),\n Spec.make(\"password\", {\n description: \"Get or set the server password\",\n params: { value: Argument.string(\"value\").pipe(Argument.optional) },\n }),\n ],\n }),\n Spec.make(\"serve\", {\n description: \"Start the v2 API server\",\n params: {\n hostname: Flag.string(\"hostname\").pipe(Flag.withDefault(\"127.0.0.1\")),\n port: Flag.integer(\"port\").pipe(Flag.optional),\n register: Flag.boolean(\"register\").pipe(Flag.withDefault(false)),\n },\n }),\n ],\n})\n",
108
- "/**\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",
109
- "/**\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",
110
- "/**\n * Immutable HTTP header collections for the unstable HTTP modules.\n *\n * This module defines the `Headers` data type used by HTTP client and server\n * request / response models. It converts records or iterables into a\n * predictable lowercase map, provides pipeable operations for reading and\n * updating header values, and integrates with inspection redaction so sensitive\n * header names can be masked before logging or serialization.\n *\n * ## Mental model\n *\n * A `Headers` value is a plain immutable record whose keys are normalized\n * header names and whose values are strings. Safe constructors and lookups\n * lowercase names because HTTP header names are case-insensitive, and\n * combinators return new `Headers` values instead of mutating the original\n * collection.\n *\n * ## Common tasks\n *\n * - Build headers from records or entry iterables with {@link fromInput}.\n * - Read values with {@link get} or check presence with {@link has}.\n * - Add, replace, merge, or remove headers with {@link set}, {@link setAll},\n * {@link merge}, {@link remove}, and {@link removeMany}.\n * - Mask sensitive names before inspection with {@link redact} and\n * {@link CurrentRedactedNames}.\n *\n * ## Gotchas\n *\n * Each lowercase header name stores one string. Record array values are joined\n * with `\", \"`, iterable input keeps the last value for duplicate names, and\n * later set / merge operations replace earlier values. This is convenient for\n * most headers but does not preserve repeated field lines such as `Set-Cookie`;\n * use cookie-specific HTTP modules when cookie multiplicity matters.\n *\n * **Example** (Normalize and update headers)\n *\n * ```ts\n * import { Option } from \"effect\"\n * import { Headers } from \"effect/unstable/http\"\n *\n * const headers = Headers.fromInput({\n * \"Content-Type\": \"application/json\",\n * accept: [\"application/json\", \"text/plain\"]\n * })\n *\n * const contentType = Headers.get(headers, \"content-type\")\n * if (Option.isSome(contentType)) {\n * console.log(contentType.value)\n * }\n *\n * const next = Headers.set(headers, \"authorization\", \"Bearer token\")\n * console.log(Headers.has(next, \"Authorization\")) // true\n * ```\n *\n * @since 4.0.0\n */\nimport * as Context from \"../../Context.js\";\nimport * as Equal from \"../../Equal.js\";\nimport * as Equ from \"../../Equivalence.js\";\nimport { dual } from \"../../Function.js\";\nimport * as Hash from \"../../Hash.js\";\nimport * as Inspectable from \"../../Inspectable.js\";\nimport * as Option from \"../../Option.js\";\nimport * as Predicate from \"../../Predicate.js\";\nimport * as Record from \"../../Record.js\";\nimport * as Redactable from \"../../Redactable.js\";\nimport * as Redacted from \"../../Redacted.js\";\nimport * as Schema from \"../../Schema.js\";\nimport * as Transformation from \"../../SchemaTransformation.js\";\n/**\n * Runtime type identifier for `Headers` values.\n *\n * @category type IDs\n * @since 4.0.0\n */\nexport const TypeId = /*#__PURE__*/Symbol.for(\"~effect/http/Headers\");\n/**\n * Returns `true` if the provided value is a `Headers` value.\n *\n * @category refinements\n * @since 4.0.0\n */\nexport const isHeaders = u => Predicate.hasProperty(u, TypeId);\nconst Proto = /*#__PURE__*/Object.create(null);\nObject.defineProperties(Proto, {\n [TypeId]: {\n value: TypeId\n },\n [Redactable.symbolRedactable]: {\n value(context) {\n return redact(this, Context.get(context, CurrentRedactedNames));\n }\n },\n toJSON: {\n value() {\n return Redactable.redact(this);\n }\n },\n [Equal.symbol]: {\n value(that) {\n return Equivalence(this, that);\n }\n },\n [Hash.symbol]: {\n value() {\n return Hash.structure(this);\n }\n },\n toString: {\n value: Inspectable.BaseProto.toString\n },\n [Inspectable.NodeInspectSymbol]: {\n value: Inspectable.BaseProto[Inspectable.NodeInspectSymbol]\n }\n});\nconst make = input => Object.assign(Object.create(Proto), input);\n/**\n * Provides an `Equivalence` instance that compares `Headers` by header names\n * and string values.\n *\n * @category instances\n * @since 4.0.0\n */\nexport const Equivalence = /*#__PURE__*/Record.makeEquivalence(/*#__PURE__*/Equ.strictEqual());\n/**\n * Schema for `Headers` values encoded as records of string header values.\n *\n * **Details**\n *\n * Decoding normalizes header names through `fromInput`; encoding returns a plain record.\n *\n * @category schemas\n * @since 4.0.0\n */\nexport const HeadersSchema = /*#__PURE__*/Schema.declare(isHeaders, {\n typeConstructor: {\n _tag: \"effect/http/Headers\"\n },\n generation: {\n runtime: `Headers.HeadersSchema`,\n Type: `Headers.Headers`,\n Encoded: `typeof Headers.HeadersSchema[\"Encoded\"]`,\n importDeclaration: `import * as Headers from \"effect/unstable/http/Headers\"`\n },\n expected: \"Headers\",\n toEquivalence: () => Equivalence,\n toCodec: () => Schema.link()(Schema.Record(Schema.String, Schema.String), Transformation.transform({\n decode: input => fromInput(input),\n encode: headers => ({\n ...headers\n })\n }))\n});\n/**\n * An empty `Headers` collection.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const empty = /*#__PURE__*/Object.create(Proto);\n/**\n * Creates `Headers` from a record or iterable of header entries.\n *\n * **Details**\n *\n * Header names are normalized to lowercase. Array values in record input are joined with `\", \"`, and `undefined` values are omitted.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const fromInput = input => {\n if (input === undefined) {\n return empty;\n } else if (Symbol.iterator in input) {\n const out = Object.create(Proto);\n for (const [k, v] of input) {\n out[k.toLowerCase()] = v;\n }\n return out;\n }\n const out = Object.create(Proto);\n for (const [k, v] of Object.entries(input)) {\n if (Array.isArray(v)) {\n out[k.toLowerCase()] = v.join(\", \");\n } else if (v !== undefined) {\n out[k.toLowerCase()] = v;\n }\n }\n return out;\n};\n/**\n * Treats an existing record as `Headers` unsafely.\n *\n * **Gotchas**\n *\n * This mutates the record's prototype and does not normalize header names; callers must provide the expected lowercase keys.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const fromRecordUnsafe = input => Object.setPrototypeOf(input, Proto);\n/**\n * Returns `true` when a header with the given name is present.\n *\n * **Details**\n *\n * The lookup lowercases the provided header name.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const has = /*#__PURE__*/dual(2, (self, key) => key.toLowerCase() in self);\n/**\n * Gets a header value by name safely.\n *\n * **Details**\n *\n * The lookup lowercases the provided header name and returns `Option.none()` when absent.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const get = /*#__PURE__*/dual(2, (self, key) => Option.fromUndefinedOr(self[key.toLowerCase()]));\n/**\n * Returns a new `Headers` collection with the given header set.\n *\n * **Details**\n *\n * The header name is normalized to lowercase.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const set = /*#__PURE__*/dual(3, (self, key, value) => {\n const out = make(self);\n out[key.toLowerCase()] = value;\n return out;\n});\n/**\n * Returns a new `Headers` collection with all provided headers set.\n *\n * **Details**\n *\n * Input headers are normalized with `fromInput` and override existing headers with the same lowercase name.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const setAll = /*#__PURE__*/dual(2, (self, headers) => make({\n ...self,\n ...fromInput(headers)\n}));\n/**\n * Returns a new `Headers` collection containing headers from both collections.\n *\n * **Details**\n *\n * Headers from the second collection override headers from the first collection with the same name.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const merge = /*#__PURE__*/dual(2, (self, headers) => {\n const out = make(self);\n Object.assign(out, headers);\n return out;\n});\n/**\n * Returns a new `Headers` collection with the named header removed.\n *\n * **Details**\n *\n * The provided header name is normalized to lowercase before removal.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const remove = /*#__PURE__*/dual(2, (self, key) => {\n const out = make(self);\n delete out[key.toLowerCase()];\n return out;\n});\n/**\n * Returns a new `Headers` collection with each named header removed.\n *\n * **Details**\n *\n * Each provided header name is normalized to lowercase before removal.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const removeMany = /*#__PURE__*/dual(2, (self, keys) => {\n const out = make(self);\n for (const key of keys) {\n delete out[key.toLowerCase()];\n }\n return out;\n});\n/**\n * Returns a plain record with selected header values wrapped in `Redacted`.\n *\n * **Details**\n *\n * String keys are normalized to lowercase before matching; regular expressions are tested against the stored header names.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const redact = /*#__PURE__*/dual(2, (self, key) => {\n const out = {\n ...self\n };\n const modify = key => {\n if (typeof key === \"string\") {\n const k = key.toLowerCase();\n if (k in self) {\n out[k] = Redacted.make(self[k]);\n }\n } else {\n for (const name in self) {\n if (key.test(name)) {\n out[name] = Redacted.make(self[name]);\n }\n }\n }\n };\n if (Array.isArray(key)) {\n for (let i = 0; i < key.length; i++) {\n modify(key[i]);\n }\n } else {\n modify(key);\n }\n return out;\n});\n/**\n * Context reference listing header names or patterns that should be redacted when `Headers` are inspected or rendered.\n *\n * **Details**\n *\n * Defaults include `authorization`, `cookie`, `set-cookie`, and `x-api-key`.\n *\n * @category fiber refs\n * @since 4.0.0\n */\nexport const CurrentRedactedNames = /*#__PURE__*/Context.Reference(\"effect/Headers/CurrentRedactedNames\", {\n defaultValue: () => [\"authorization\", \"cookie\", \"set-cookie\", \"x-api-key\"]\n});\n//# sourceMappingURL=Headers.js.map",
111
- "/**\n * Typed failure model for Effect HTTP client operations.\n *\n * HTTP clients wrap request construction, transport, status-code validation, and\n * response decoding failures in `HttpClientError`. The wrapper keeps the failed\n * request and the specific failure reason together, so callers can handle client\n * failures uniformly while still matching on the reason `_tag` for retry\n * policy, logging, metrics, and user-facing messages.\n *\n * **Mental model**\n *\n * A client error reason belongs to one of two families. Request errors happen\n * before a response exists: `TransportError`, `EncodeError`, and\n * `InvalidUrlError`. Response errors include the response that triggered them:\n * `StatusCodeError`, `DecodeError`, and `EmptyBodyError`.\n *\n * **Common tasks**\n *\n * - Use `isHttpClientError` at untyped boundaries.\n * - Read `request` for the method and URL associated with any client failure.\n * - Match on `reason._tag` when different failures need different recovery.\n * - Read `response` only for response errors or after checking that it exists.\n *\n * **Gotchas**\n *\n * `response` is `undefined` for transport, encoding, and invalid URL failures.\n * Preserve the original `cause` when constructing reason classes so lower-level\n * platform or decoding details are not lost.\n *\n * @since 4.0.0\n */\nimport * as Data from \"../../Data.js\";\nimport { hasProperty } from \"../../Predicate.js\";\nimport * as Schema from \"../../Schema.js\";\nconst TypeId = \"~effect/http/HttpClientError\";\n/**\n * Returns `true` when a value is an `HttpClientError`.\n *\n * @category guards\n * @since 4.0.0\n */\nexport const isHttpClientError = u => hasProperty(u, TypeId);\n/**\n * Error wrapper for HTTP client failures, exposing the failed request and the optional response through its `reason`.\n *\n * @category errors\n * @since 4.0.0\n */\nexport class HttpClientError extends /*#__PURE__*/Data.TaggedError(\"HttpClientError\") {\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 an HTTP client error for runtime guards.\n *\n * @since 4.0.0\n */\n [TypeId] = TypeId;\n /**\n * HTTP request associated with the client failure.\n *\n * @since 4.0.0\n */\n get request() {\n return this.reason.request;\n }\n /**\n * HTTP response associated with the client failure, when one was received.\n *\n * @since 4.0.0\n */\n get response() {\n return \"response\" in this.reason ? this.reason.response : undefined;\n }\n get message() {\n return this.reason.message;\n }\n}\nconst formatReason = tag => tag.endsWith(\"Error\") ? tag.slice(0, -5) : tag;\nconst formatMessage = (reason, description, info) => description ? `${reason}: ${description} (${info})` : `${reason} error (${info})`;\n/**\n * Error describing transport-level failures that occur while sending an HTTP request.\n *\n * @category errors\n * @since 4.0.0\n */\nexport class TransportError extends /*#__PURE__*/Data.TaggedError(\"TransportError\") {\n /**\n * Formats the request method and URL for transport error messages.\n *\n * @since 4.0.0\n */\n get methodAndUrl() {\n return `${this.request.method} ${this.request.url}`;\n }\n /**\n * Builds the transport error message from the optional description and request details.\n *\n * @since 4.0.0\n */\n get message() {\n return formatMessage(formatReason(this._tag), this.description, this.methodAndUrl);\n }\n}\n/**\n * Error describing failures while encoding an HTTP request body.\n *\n * @category errors\n * @since 4.0.0\n */\nexport class EncodeError extends /*#__PURE__*/Data.TaggedError(\"EncodeError\") {\n /**\n * Formats the request method and URL for request encoding error messages.\n *\n * @since 4.0.0\n */\n get methodAndUrl() {\n return `${this.request.method} ${this.request.url}`;\n }\n /**\n * Builds the request encoding error message from the optional description and request details.\n *\n * @since 4.0.0\n */\n get message() {\n return formatMessage(formatReason(this._tag), this.description, this.methodAndUrl);\n }\n}\n/**\n * Error describing failures while constructing a URL from an HTTP client request.\n *\n * @category errors\n * @since 4.0.0\n */\nexport class InvalidUrlError extends /*#__PURE__*/Data.TaggedError(\"InvalidUrlError\") {\n /**\n * Formats the request method and URL for invalid URL error messages.\n *\n * @since 4.0.0\n */\n get methodAndUrl() {\n return `${this.request.method} ${this.request.url}`;\n }\n /**\n * Builds the invalid URL error message from the optional description and request details.\n *\n * @since 4.0.0\n */\n get message() {\n return formatMessage(formatReason(this._tag), this.description, this.methodAndUrl);\n }\n}\n/**\n * Response error for HTTP responses rejected because of their status code.\n *\n * @category errors\n * @since 4.0.0\n */\nexport class StatusCodeError extends /*#__PURE__*/Data.TaggedError(\"StatusCodeError\") {\n /**\n * Formats the request method and URL for status code error messages.\n *\n * @since 4.0.0\n */\n get methodAndUrl() {\n return `${this.request.method} ${this.request.url}`;\n }\n /**\n * Builds the status code error message from the response status, optional description, and request details.\n *\n * @since 4.0.0\n */\n get message() {\n const info = `${this.response.status} ${this.methodAndUrl}`;\n return formatMessage(formatReason(this._tag), this.description, info);\n }\n}\n/**\n * Response error for failures while decoding an HTTP response body.\n *\n * @category errors\n * @since 4.0.0\n */\nexport class DecodeError extends /*#__PURE__*/Data.TaggedError(\"DecodeError\") {\n /**\n * Formats the request method and URL for response decoding error messages.\n *\n * @since 4.0.0\n */\n get methodAndUrl() {\n return `${this.request.method} ${this.request.url}`;\n }\n /**\n * Builds the response decoding error message from the response status, optional description, and request details.\n *\n * @since 4.0.0\n */\n get message() {\n const info = `${this.response.status} ${this.methodAndUrl}`;\n return formatMessage(formatReason(this._tag), this.description, info);\n }\n}\n/**\n * Response error for operations that expected a response body but received an empty body.\n *\n * @category errors\n * @since 4.0.0\n */\nexport class EmptyBodyError extends /*#__PURE__*/Data.TaggedError(\"EmptyBodyError\") {\n /**\n * Formats the request method and URL for empty response body error messages.\n *\n * @since 4.0.0\n */\n get methodAndUrl() {\n return `${this.request.method} ${this.request.url}`;\n }\n /**\n * Builds the empty body error message from the response status, optional description, and request details.\n *\n * @since 4.0.0\n */\n get message() {\n const info = `${this.response.status} ${this.methodAndUrl}`;\n return formatMessage(formatReason(this._tag), this.description, info);\n }\n}\n/**\n * Schema for serializable HTTP client errors, preserving the specific error kind\n * and cause.\n *\n * @category schemas\n * @since 4.0.0\n */\nexport class HttpClientErrorSchema extends /*#__PURE__*/Schema.ErrorClass(TypeId)({\n _tag: /*#__PURE__*/Schema.tag(\"HttpError\"),\n kind: /*#__PURE__*/Schema.Literals([\"EncodeError\", \"DecodeError\", \"TransportError\", \"InvalidUrlError\", \"StatusCodeError\", \"EmptyBodyError\"]),\n cause: /*#__PURE__*/Schema.optional(Schema.Defect)\n}) {\n /**\n * Builds the serializable schema representation for an HTTP client error.\n *\n * @since 4.0.0\n */\n static fromHttpClientError(error) {\n return new HttpClientErrorSchema({\n _tag: \"HttpError\",\n kind: error.reason._tag,\n cause: error.reason\n });\n }\n}\n//# sourceMappingURL=HttpClientError.js.map",
112
- "/**\n * Immutable URL query parameters represented as ordered string pairs.\n *\n * This module is the shared query-parameter model for HTTP client request\n * queries, URL-encoded form bodies, and server-side decoding. A `UrlParams`\n * value can be built from records, iterables, or native `URLSearchParams`, then\n * inspected, appended, replaced, removed, serialized, converted to a `URL`, or\n * decoded with schemas.\n *\n * **Mental model**\n *\n * The core representation is a list of `[key, value]` string pairs. Duplicate\n * keys and pair order are preserved by `make`, `fromInput`, iteration, and\n * append-style operations. Record input is a convenience layer: primitive values\n * become strings, arrays become repeated parameters, nested records use bracket\n * notation, and `undefined` fields are skipped.\n *\n * **Common tasks**\n *\n * - Build query parameters from plain records, tuples, or `URLSearchParams`.\n * - Read the first, last, or all values for a key.\n * - Replace, append, transform, or remove keys without mutating the original.\n * - Serialize a query string, merge parameters into a URL, or decode records and\n * JSON fields with schemas.\n *\n * **Gotchas**\n *\n * Use `getAll` when every duplicate value matters. `set` and `setAll` replace\n * existing values for matching keys, while `append` and `appendAll` preserve\n * them. Serialization through `toString` and `makeUrl` delegates to the platform\n * `URLSearchParams` / `URL` implementations, so pass decoded strings rather\n * than pre-encoded query fragments. Record-based and schema-based conversions\n * collapse repeated keys into string arrays and do not preserve the full global\n * pair ordering; `schemaJsonField` reads the first matching value for the\n * selected field.\n *\n * @since 4.0.0\n */\nimport * as Arr from \"../../Array.js\";\nimport * as Data from \"../../Data.js\";\nimport * as Effect from \"../../Effect.js\";\nimport * as Equal from \"../../Equal.js\";\nimport * as Equ from \"../../Equivalence.js\";\nimport { dual } from \"../../Function.js\";\nimport * as Hash from \"../../Hash.js\";\nimport { PipeInspectableProto } from \"../../internal/core.js\";\nimport * as Option from \"../../Option.js\";\nimport { hasProperty } from \"../../Predicate.js\";\nimport * as Result from \"../../Result.js\";\nimport * as Schema from \"../../Schema.js\";\nimport * as Issue from \"../../SchemaIssue.js\";\nimport * as Transformation from \"../../SchemaTransformation.js\";\nimport * as Tuple from \"../../Tuple.js\";\nconst TypeId = \"~effect/http/UrlParams\";\n/**\n * Returns `true` when a value is a `UrlParams` instance.\n *\n * @category guards\n * @since 4.0.0\n */\nexport const isUrlParams = u => hasProperty(u, TypeId);\nconst Proto = {\n ...PipeInspectableProto,\n [TypeId]: TypeId,\n [Symbol.iterator]() {\n return this.params[Symbol.iterator]();\n },\n toJSON() {\n return {\n _id: \"UrlParams\",\n params: Object.fromEntries(this.params)\n };\n },\n [Equal.symbol](that) {\n return Equivalence(this, that);\n },\n [Hash.symbol]() {\n return Hash.array(this.params.flat());\n }\n};\n/**\n * Creates `UrlParams` from ordered string key-value pairs.\n *\n * **Details**\n *\n * The input pairs are used as-is and are not coerced or normalized.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const make = params => {\n const self = Object.create(Proto);\n self.params = params;\n return self;\n};\n/**\n * Creates `UrlParams` from a supported input shape.\n *\n * **Details**\n *\n * Primitive values are converted to strings, arrays produce repeated parameters,\n * nested records use bracket notation, and `undefined` values are omitted.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const fromInput = input => {\n const parsed = fromInputNested(input);\n const out = [];\n for (let i = 0; i < parsed.length; i++) {\n if (Array.isArray(parsed[i][0])) {\n const [keys, value] = parsed[i];\n out.push([`${keys[0]}[${keys.slice(1).join(\"][\")}]`, value]);\n } else {\n out.push(parsed[i]);\n }\n }\n return make(out);\n};\nconst fromInputNested = input => {\n const entries = typeof input[Symbol.iterator] === \"function\" ? Arr.fromIterable(input) : Object.entries(input);\n const out = [];\n for (const [key, value] of entries) {\n if (Array.isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n if (value[i] !== undefined) {\n out.push([key, String(value[i])]);\n }\n }\n } else if (typeof value === \"object\") {\n const nested = fromInputNested(value);\n for (const [k, v] of nested) {\n out.push([[key, ...(typeof k === \"string\" ? [k] : k)], v]);\n }\n } else if (value !== undefined) {\n out.push([key, String(value)]);\n }\n }\n return out;\n};\n/**\n * Provides an order-sensitive `Equivalence` instance for `UrlParams`.\n *\n * **Details**\n *\n * Two values are equivalent when they contain the same key-value pairs in the same\n * order.\n *\n * @category instances\n * @since 4.0.0\n */\nexport const Equivalence = /*#__PURE__*/Equ.make((a, b) => arrayEquivalence(a.params, b.params));\nconst arrayEquivalence = /*#__PURE__*/Arr.makeEquivalence(/*#__PURE__*/Tuple.makeEquivalence([/*#__PURE__*/Equ.strictEqual(), /*#__PURE__*/Equ.strictEqual()]));\n/**\n * Schema for `UrlParams`.\n *\n * **Details**\n *\n * The encoded representation is an array of string key-value tuples.\n *\n * @category schemas\n * @since 4.0.0\n */\nexport const UrlParamsSchema = /*#__PURE__*/Schema.declare(isUrlParams, {\n typeConstructor: {\n _tag: \"effect/http/UrlParams\"\n },\n generation: {\n runtime: `UrlParams.UrlParamsSchema`,\n Type: `UrlParams.UrlParams`,\n Encoded: `typeof UrlParams.UrlParamsSchema[\"Encoded\"]`,\n importDeclaration: `import * as UrlParams from \"effect/unstable/http/UrlParams\"`\n },\n expected: \"UrlParams\",\n toEquivalence: () => Equivalence,\n toCodec: () => Schema.link()(Schema.Array(Schema.Tuple([Schema.String, Schema.String])), Transformation.transform({\n decode: make,\n encode: self => self.params\n }))\n});\n/**\n * An empty `UrlParams` value.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const empty = /*#__PURE__*/make([]);\n/**\n * Returns all values for a query parameter key in insertion order.\n *\n * **Details**\n *\n * Returns an empty array when the key is absent.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const getAll = /*#__PURE__*/dual(2, (self, key) => Arr.reduce(self.params, [], (acc, [k, value]) => {\n if (k === key) {\n acc.push(value);\n }\n return acc;\n}));\n/**\n * Returns the first value for a query parameter key safely.\n *\n * **Details**\n *\n * Returns `Option.none` when the key is absent.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const getFirst = /*#__PURE__*/dual(2, (self, key) => Arr.findFirst(self.params, ([k]) => k === key).pipe(Option.map(([, value]) => value)));\n/**\n * Returns the last value for a query parameter key safely.\n *\n * **Details**\n *\n * Returns `Option.none` when the key is absent.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const getLast = /*#__PURE__*/dual(2, (self, key) => Arr.findLast(self.params, ([k]) => k === key).pipe(Option.map(([, value]) => value)));\n/**\n * Sets a query parameter to a single value.\n *\n * **Details**\n *\n * Existing values for the same key are removed, and the new value is appended to\n * the end.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const set = /*#__PURE__*/dual(3, (self, key, value) => make(Arr.append(Arr.filter(self.params, ([k]) => k !== key), [key, String(value)])));\n/**\n * Transforms the underlying ordered key-value pairs of `UrlParams`.\n *\n * **Details**\n *\n * The result is wrapped in a new `UrlParams` value.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const transform = /*#__PURE__*/dual(2, (self, f) => make(f(self.params)));\n/**\n * Sets multiple query parameters from input.\n *\n * **Details**\n *\n * Keys present in the input replace existing values for those keys, while\n * unmentioned existing parameters are preserved.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const setAll = /*#__PURE__*/dual(2, (self, input) => {\n const out = fromInput(input);\n const params = out.params;\n const keys = new Set();\n for (let i = 0; i < params.length; i++) {\n keys.add(params[i][0]);\n }\n for (let i = 0; i < self.params.length; i++) {\n if (keys.has(self.params[i][0])) continue;\n params.push(self.params[i]);\n }\n return out;\n});\n/**\n * Appends a query parameter value without removing existing values for the key.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const append = /*#__PURE__*/dual(3, (self, key, value) => make(Arr.append(self.params, [key, String(value)])));\n/**\n * Appends all query parameters produced from the supplied input.\n *\n * **Details**\n *\n * Existing parameters are preserved.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const appendAll = /*#__PURE__*/dual(2, (self, input) => transform(self, Arr.appendAll(fromInput(input).params)));\n/**\n * Removes all query parameter values for the specified key.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const remove = /*#__PURE__*/dual(2, (self, key) => transform(self, Arr.filter(([k]) => k !== key)));\n/**\n * Error returned when constructing a `URL` from `UrlParams` fails.\n *\n * @category errors\n * @since 4.0.0\n */\nexport class UrlParamsError extends /*#__PURE__*/Data.TaggedError(\"UrlParamsError\") {}\n/**\n * Creates a `URL` safely by appending `UrlParams` and an optional hash to a URL string.\n *\n * **Details**\n *\n * Returns a `Result` that fails with `UrlParamsError` if the URL cannot be\n * constructed.\n *\n * @category converting\n * @since 4.0.0\n */\nexport const makeUrl = (url, params, hash) => {\n try {\n const urlInstance = new URL(url, baseUrl());\n for (let i = 0; i < params.params.length; i++) {\n const [key, value] = params.params[i];\n if (value !== undefined) {\n urlInstance.searchParams.append(key, value);\n }\n }\n if (hash !== undefined) {\n urlInstance.hash = hash;\n }\n return Result.succeed(urlInstance);\n } catch (e) {\n return Result.fail(new UrlParamsError({\n cause: e\n }));\n }\n};\n/**\n * Serializes `UrlParams` to a URL query string without a leading question mark.\n *\n * @category converting\n * @since 4.0.0\n */\nexport const toString = self => new URLSearchParams(self.params).toString();\nconst baseUrl = () => {\n if (\"location\" in globalThis && globalThis.location !== undefined && globalThis.location.origin !== undefined && globalThis.location.pathname !== undefined) {\n return location.origin + location.pathname;\n }\n return undefined;\n};\n/**\n * Builds a `Record` containing all the key-value pairs in the given `UrlParams`\n * as `string` (if only one value for a key) or a `NonEmptyArray<string>`\n * (when more than one value for a key)\n *\n * **Example** (Converting parameters to a record)\n *\n * ```ts\n * import { UrlParams } from \"effect/unstable/http\"\n * import * as assert from \"node:assert\"\n *\n * const urlParams = UrlParams.fromInput({\n * a: 1,\n * b: true,\n * c: \"string\",\n * e: [1, 2, 3]\n * })\n * const result = UrlParams.toRecord(urlParams)\n *\n * assert.deepStrictEqual(\n * result,\n * { \"a\": \"1\", \"b\": \"true\", \"c\": \"string\", \"e\": [\"1\", \"2\", \"3\"] }\n * )\n * ```\n *\n * @category converting\n * @since 4.0.0\n */\nexport const toRecord = self => {\n const out = {};\n for (const [k, value] of self.params) {\n const curr = out[k];\n if (curr === undefined) {\n out[k] = value;\n } else if (typeof curr === \"string\") {\n out[k] = [curr, value];\n } else {\n curr.push(value);\n }\n }\n return out;\n};\n/**\n * Builds a readonly record from `UrlParams`.\n *\n * **Details**\n *\n * Keys with one value map to a string, and keys with multiple values map to a\n * non-empty readonly array of strings.\n *\n * @category converting\n * @since 4.0.0\n */\nexport const toReadonlyRecord = toRecord;\n/**\n * Extracts a JSON value from the first occurrence of the given `field` in the\n * `UrlParams`.\n *\n * **Example** (Decoding JSON parameter fields)\n *\n * ```ts\n * import { Schema } from \"effect\"\n * import { UrlParams } from \"effect/unstable/http\"\n *\n * const extractFoo = UrlParams.schemaJsonField(\"foo\").pipe(\n * Schema.decodeTo(Schema.Struct({\n * some: Schema.String,\n * number: Schema.Number\n * }))\n * )\n *\n * console.log(\n * Schema.decodeSync(extractFoo)(UrlParams.fromInput({\n * foo: JSON.stringify({ some: \"bar\", number: 42 }),\n * baz: \"qux\"\n * }))\n * )\n * ```\n *\n * @category schemas\n * @since 4.0.0\n */\nexport const schemaJsonField = field => UrlParamsSchema.pipe(Schema.decodeTo(Schema.UnknownFromJsonString, Transformation.transformOrFail({\n decode: params => Option.match(getFirst(params, field), {\n onNone: () => Effect.fail(new Issue.Pointer([field], new Issue.MissingKey(undefined))),\n onSome: Effect.succeed\n }),\n encode: value => Effect.succeed(make([[field, value]]))\n})));\n/**\n * Schema that decodes `UrlParams` into a record of key-value pairs.\n *\n * **Details**\n *\n * Keys with one value decode to a string, and keys with multiple values decode to\n * a non-empty readonly array of strings.\n *\n * **Example** (Decoding URL parameters to a record)\n *\n * ```ts\n * import { Schema } from \"effect\"\n * import { UrlParams } from \"effect/unstable/http\"\n *\n * const toStruct = UrlParams.schemaRecord.pipe(\n * Schema.decodeTo(Schema.Struct({\n * some: Schema.String,\n * number: Schema.FiniteFromString\n * }))\n * )\n *\n * console.log(\n * Schema.decodeSync(toStruct)(UrlParams.fromInput({\n * some: \"value\",\n * number: 42\n * }))\n * )\n * ```\n *\n * @category schemas\n * @since 4.0.0\n */\nexport const schemaRecord = /*#__PURE__*/UrlParamsSchema.pipe(/*#__PURE__*/Schema.decodeTo(/*#__PURE__*/Schema.Record(Schema.String, /*#__PURE__*/Schema.Union([Schema.String, /*#__PURE__*/Schema.NonEmptyArray(Schema.String)])), /*#__PURE__*/Transformation.transform({\n decode: toReadonlyRecord,\n encode: fromInput\n})));\n//# sourceMappingURL=UrlParams.js.map",
113
- "/**\n * Describes the body attached to outgoing HTTP requests and server responses.\n *\n * `HttpBody` is the transport-facing representation used by the HTTP modules\n * before a platform adapter turns a request or response into a concrete Web,\n * Node, or other runtime value. Each body variant carries the payload plus the\n * metadata an adapter can safely know ahead of time, such as `contentType` and\n * `contentLength`.\n *\n * **Mental model**\n *\n * - {@link empty} represents an absent body.\n * - {@link uint8Array}, {@link text}, {@link jsonUnsafe}, {@link json}, and\n * {@link urlParams} build in-memory byte bodies with content metadata.\n * - {@link formData} and {@link formDataRecord} keep multipart data as\n * `FormData` so the runtime can generate the boundary.\n * - {@link stream} represents a stream of `Uint8Array` chunks and may omit the\n * content length when the final size is not known.\n * - {@link raw} is the escape hatch for platform-specific body values that an\n * adapter already knows how to send.\n *\n * **Common tasks**\n *\n * - Send text, bytes, JSON, URL-encoded data, multipart forms, or files.\n * - Use {@link json} or {@link jsonSchema} when JSON encoding failures should\n * be represented as `HttpBodyError` values.\n * - Use {@link file} or {@link fileFromInfo} when file metadata should become\n * `contentType` / `contentLength` metadata for the adapter.\n * - Use {@link isHttpBody} when accepting unknown values at an integration\n * boundary.\n *\n * **Gotchas**\n *\n * - {@link jsonUnsafe} calls `JSON.stringify` directly and can throw; prefer\n * {@link json} in effectful code.\n * - `FormData` bodies intentionally leave `contentType` unset because setting a\n * multipart header without the generated boundary produces invalid requests.\n * - Stream bodies may not have a `contentLength`; code that requires one must\n * provide it explicitly when constructing the stream body.\n *\n * **Example** (Creating common body variants)\n *\n * ```ts\n * import { HttpBody, UrlParams } from \"effect/unstable/http\"\n * import * as assert from \"node:assert\"\n *\n * const textBody = HttpBody.text(\"hello\")\n * const jsonBody = HttpBody.jsonUnsafe({ name: \"Ada\" })\n * const formBody = HttpBody.urlParams(UrlParams.fromInput({ q: \"effect\" }))\n *\n * assert.equal(textBody.contentType, \"text/plain\")\n * assert.equal(jsonBody.contentType, \"application/json\")\n * assert.equal(formBody.contentType, \"application/x-www-form-urlencoded\")\n * ```\n *\n * @since 4.0.0\n */\nimport * as Data from \"../../Data.js\";\nimport * as Effect from \"../../Effect.js\";\nimport * as FileSystem from \"../../FileSystem.js\";\nimport { format } from \"../../Formatter.js\";\nimport * as Inspectable from \"../../Inspectable.js\";\nimport * as Predicate from \"../../Predicate.js\";\nimport * as Schema from \"../../Schema.js\";\nimport * as Parser from \"../../SchemaParser.js\";\nimport * as UrlParams from \"./UrlParams.js\";\nconst TypeId = \"~effect/http/HttpBody\";\n/**\n * Returns `true` if the provided value is an `HttpBody`.\n *\n * @category refinements\n * @since 4.0.0\n */\nexport const isHttpBody = u => Predicate.hasProperty(u, TypeId);\nconst HttpBodyErrorTypeId = \"~effect/http/HttpBody/HttpBodyError\";\n/**\n * Error produced while constructing an HTTP body from JSON or schema-encoded input.\n *\n * @category errors\n * @since 4.0.0\n */\nexport class HttpBodyError extends /*#__PURE__*/Data.TaggedError(\"HttpBodyError\") {\n /**\n * Marks this value as an HTTP body error for runtime guards.\n *\n * @since 4.0.0\n */\n [HttpBodyErrorTypeId] = HttpBodyErrorTypeId;\n}\nclass Proto {\n [TypeId];\n constructor() {\n this[TypeId] = TypeId;\n }\n [Inspectable.NodeInspectSymbol]() {\n return this.toJSON();\n }\n toString() {\n return format(this, {\n ignoreToString: true\n });\n }\n}\n/**\n * HTTP body variant representing the absence of request content.\n *\n * @category models\n * @since 4.0.0\n */\nexport class Empty extends Proto {\n _tag = \"Empty\";\n toJSON() {\n return {\n _id: \"effect/HttpBody\",\n _tag: \"Empty\"\n };\n }\n}\n/**\n * Provides the singleton empty HTTP body.\n *\n * **When to use**\n *\n * Use when you need an HTTP body value that represents no body content.\n *\n * @category constants\n * @since 4.0.0\n */\nexport const empty = /*#__PURE__*/new Empty();\n/**\n * HTTP body variant containing an arbitrary runtime body value with optional content metadata.\n *\n * @category models\n * @since 4.0.0\n */\nexport class Raw extends Proto {\n _tag = \"Raw\";\n body;\n contentType;\n contentLength;\n constructor(body, contentType, contentLength) {\n super();\n this.body = body;\n this.contentType = contentType;\n this.contentLength = contentLength;\n }\n toJSON() {\n return {\n _id: \"effect/HttpBody\",\n _tag: \"Raw\",\n body: this.body,\n contentType: this.contentType,\n contentLength: this.contentLength\n };\n }\n}\n/**\n * Creates a raw HTTP body from an arbitrary value and optional `contentType` and `contentLength` metadata.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const raw = (body, options) => new Raw(body, options?.contentType, options?.contentLength);\n/**\n * HTTP body variant backed by a `Uint8Array`.\n *\n * **Details**\n *\n * It stores the bytes, content type, and byte length.\n *\n * @category models\n * @since 4.0.0\n */\nexport class Uint8Array extends Proto {\n _tag = \"Uint8Array\";\n body;\n contentType;\n contentLength;\n constructor(body, contentType, contentLength) {\n super();\n this.body = body;\n this.contentType = contentType;\n this.contentLength = contentLength;\n }\n toJSON() {\n const toString = this.contentType.startsWith(\"text/\") || this.contentType.endsWith(\"json\");\n return {\n _id: \"effect/HttpBody\",\n _tag: \"Uint8Array\",\n body: toString ? new TextDecoder().decode(this.body) : `Uint8Array(${this.body.length})`,\n contentType: this.contentType,\n contentLength: this.contentLength\n };\n }\n}\n/**\n * Creates a byte-array HTTP body.\n *\n * **Details**\n *\n * The content type defaults to `application/octet-stream`, and the content length is the byte array length.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const uint8Array = (body, contentType) => new Uint8Array(body, contentType ?? \"application/octet-stream\", body.length);\nconst encoder = /*#__PURE__*/new TextEncoder();\n/**\n * Creates a UTF-8 encoded text HTTP body.\n *\n * **Details**\n *\n * The content type defaults to `text/plain`.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const text = (body, contentType) => uint8Array(encoder.encode(body), contentType ?? \"text/plain\");\n/**\n * Creates a JSON HTTP body using `JSON.stringify`, throwing if serialization fails.\n *\n * **Details**\n *\n * The content type defaults to `application/json`.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const jsonUnsafe = (body, contentType) => text(JSON.stringify(body), contentType ?? \"application/json\");\n/**\n * Creates a JSON HTTP body in an `Effect`.\n *\n * **Details**\n *\n * `JSON.stringify` failures are captured as `HttpBodyError` values, and the content type defaults to `application/json`.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const json = (body, contentType) => Effect.try({\n try: () => text(JSON.stringify(body), contentType ?? \"application/json\"),\n catch: cause => new HttpBodyError({\n reason: {\n _tag: \"JsonError\"\n },\n cause\n })\n});\n/**\n * Creates a JSON body constructor that first encodes values with the schema's JSON codec.\n *\n * **Details**\n *\n * Schema encoding issues and JSON serialization failures are returned as `HttpBodyError` values.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const jsonSchema = (schema, options) => {\n const encode = Parser.encodeUnknownEffect(Schema.toCodecJson(schema));\n return (body, contentType) => encode(body, options).pipe(Effect.mapError(issue => new HttpBodyError({\n reason: {\n _tag: \"SchemaError\",\n issue\n },\n cause: issue\n })), Effect.flatMap(body => json(body, contentType)));\n};\n/**\n * Creates an `application/x-www-form-urlencoded` HTTP body from `UrlParams`.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const urlParams = (urlParams, contentType) => text(UrlParams.toString(urlParams), contentType ?? \"application/x-www-form-urlencoded\");\n/**\n * HTTP body variant backed by Web `FormData`.\n *\n * **Details**\n *\n * The content type and content length are left unset so the runtime can supply multipart boundaries.\n *\n * @category models\n * @since 4.0.0\n */\nexport class FormData extends Proto {\n _tag = \"FormData\";\n contentType = undefined;\n contentLength = undefined;\n formData;\n constructor(formData) {\n super();\n this.formData = formData;\n }\n toJSON() {\n return {\n _id: \"effect/HttpBody\",\n _tag: \"FormData\",\n formData: this.formData\n };\n }\n}\n/**\n * Wraps a Web `FormData` value as an HTTP body.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const formData = body => new FormData(body);\nconst appendFormDataValue = (formData, key, value) => {\n if (value == null) {\n return;\n }\n if (typeof value === \"object\") {\n formData.append(key, value);\n return;\n }\n formData.append(key, String(value));\n};\n/**\n * Creates a `FormData` HTTP body from a record.\n *\n * **Details**\n *\n * Array fields append each item under the same key; primitive values are stringified, `File` and `Blob` values are appended directly, and nullish values are skipped.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const formDataRecord = entries => {\n const data = new globalThis.FormData();\n for (const [key, value] of Object.entries(entries)) {\n if (Array.isArray(value)) {\n for (const item of value) {\n appendFormDataValue(data, key, item);\n }\n } else {\n appendFormDataValue(data, key, value);\n }\n }\n return formData(data);\n};\n/**\n * HTTP body variant backed by a stream of `Uint8Array` chunks.\n *\n * @category models\n * @since 4.0.0\n */\nexport class Stream extends Proto {\n _tag = \"Stream\";\n stream;\n contentType;\n contentLength;\n constructor(stream, contentType, contentLength) {\n super();\n this.stream = stream;\n this.contentType = contentType;\n this.contentLength = contentLength;\n }\n toJSON() {\n return {\n _id: \"effect/HttpBody\",\n _tag: \"Stream\",\n contentType: this.contentType,\n contentLength: this.contentLength\n };\n }\n}\n/**\n * Creates a streaming HTTP body from a stream of byte chunks.\n *\n * **Details**\n *\n * The content type defaults to `application/octet-stream`; content length is optional.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const stream = (body, contentType, contentLength) => new Stream(body, contentType ?? \"application/octet-stream\", contentLength);\n/**\n * Creates a streaming HTTP body for a file path.\n *\n * **Details**\n *\n * The effect requires `FileSystem`, stats the file to set the content length, and can fail with `PlatformError`.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const file = (path, options) => Effect.flatMap(FileSystem.FileSystem, fs => Effect.map(fs.stat(path), info => stream(fs.stream(path, options), options?.contentType, Number(info.size))));\n/**\n * Creates a streaming HTTP body for a file path using already-known file information.\n *\n * **Details**\n *\n * The effect requires `FileSystem`, uses the provided file size as the content length, and can fail with `PlatformError`.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const fileFromInfo = (path, info, options) => Effect.map(FileSystem.FileSystem, fs => stream(fs.stream(path, options), options?.contentType, Number(info.size)));\n//# sourceMappingURL=HttpBody.js.map",
114
- "/**\n * HTTP method literals and helpers shared by the unstable HTTP client, server,\n * and routing APIs.\n *\n * This module keeps the supported method vocabulary in one place: the\n * {@link HttpMethod} union, {@link all} set, {@link allShort} mapping,\n * {@link hasBody} body classification helper, and {@link isHttpMethod} runtime\n * refinement. Values are uppercase string literals such as `\"GET\"` and\n * `\"POST\"`, matching the method tokens used by the HTTP APIs in this package.\n *\n * **Mental model**\n *\n * {@link HttpMethod} is the complete set this module recognizes.\n * {@link HttpMethod.NoBody} is the subset treated as bodyless (`GET`, `HEAD`,\n * `OPTIONS`, and `TRACE`), and {@link HttpMethod.WithBody} is the remaining\n * subset accepted by request builders that can carry a body.\n *\n * **Common tasks**\n *\n * Use {@link isHttpMethod} before accepting an unknown value as an HTTP method,\n * {@link hasBody} to narrow a method before attaching a body, {@link all} for\n * membership checks or iteration, and {@link allShort} when deriving the short\n * constructor names used by request helpers.\n *\n * **Gotchas**\n *\n * Lowercase method names are not valid {@link HttpMethod} values. The body\n * split is a typed helper convention, not a full statement of every\n * wire-protocol edge case: `DELETE` is treated as able to carry a body, while\n * `GET` helpers are treated as bodyless even though some systems may send a\n * body on the wire.\n *\n * @since 4.0.0\n */\n/**\n * Returns `true` when a method can carry a request body and narrows it to `HttpMethod.WithBody`.\n *\n * @category predicates\n * @since 4.0.0\n */\nexport const hasBody = method => method !== \"GET\" && method !== \"HEAD\" && method !== \"OPTIONS\" && method !== \"TRACE\";\n/**\n * Provides a readonly set containing every supported `HttpMethod` literal.\n *\n * **When to use**\n *\n * Use when you need to iterate over or test membership against every supported\n * HTTP method literal.\n *\n * @category constants\n * @since 4.0.0\n */\nexport const all = /*#__PURE__*/new Set([\"GET\", \"POST\", \"PUT\", \"DELETE\", \"PATCH\", \"HEAD\", \"OPTIONS\", \"TRACE\"]);\n/**\n * Provides tuples mapping each supported HTTP method to its short\n * request-constructor name.\n *\n * **When to use**\n *\n * Use when you need the mapping from supported HTTP method literals to their\n * short request-constructor names.\n *\n * @category constants\n * @since 4.0.0\n */\nexport const allShort = [[\"GET\", \"get\"], [\"POST\", \"post\"], [\"PUT\", \"put\"], [\"DELETE\", \"del\"], [\"PATCH\", \"patch\"], [\"HEAD\", \"head\"], [\"OPTIONS\", \"options\"], [\"TRACE\", \"trace\"]];\n/**\n * Checks whether a value is a `HttpMethod`.\n *\n * **Example** (Checking HTTP method values)\n *\n * ```ts\n * import { HttpMethod } from \"effect/unstable/http\"\n *\n * console.log(HttpMethod.isHttpMethod(\"GET\"))\n * // true\n * console.log(HttpMethod.isHttpMethod(\"get\"))\n * // false\n * console.log(HttpMethod.isHttpMethod(1))\n * // false\n * ```\n *\n * @category refinements\n * @since 4.0.0\n */\nexport const isHttpMethod = u => all.has(u);\n//# sourceMappingURL=HttpMethod.js.map",
115
- "/**\n * Immutable outgoing HTTP client requests.\n *\n * `HttpClientRequest` is the request model shared by Effect HTTP clients and\n * platform adapters. A request stores its method, URL, query parameters, hash,\n * headers, and body as structured data, and this module provides constructors,\n * pipeable update helpers, body encoders, and Web `Request` conversions.\n *\n * **Mental model**\n *\n * Request builders start from {@link empty} and return a new request for every\n * change. The base URL, query parameters, and hash stay separate until\n * conversion, so code can update them independently before calling\n * {@link toUrl}, {@link toWebResult}, or {@link toWeb}. Body helpers delegate to\n * `HttpBody` and update `Content-Type` and `Content-Length` when the selected\n * body carries that metadata.\n *\n * **Common tasks**\n *\n * - Start a request with {@link get}, {@link post}, {@link put},\n * {@link patch}, or another method constructor.\n * - Add authentication or accepted media types with {@link basicAuth},\n * {@link bearerToken}, {@link accept}, or {@link acceptJson}.\n * - Change URL parts with {@link setUrl}, {@link prependUrl},\n * {@link appendUrl}, {@link setUrlParam}, {@link appendUrlParam}, and\n * {@link setHash}.\n * - Attach payloads with {@link bodyJson}, {@link bodyUrlParams},\n * {@link bodyFormData}, {@link bodyStream}, or {@link bodyFile}.\n * - Bridge Web platform values with {@link fromWeb}, {@link toWebResult}, and\n * {@link toWeb}.\n *\n * **Gotchas**\n *\n * Passing a `URL` extracts its search parameters and fragment into structured\n * fields, while a string URL is kept as provided. Use the `setUrlParam` helpers\n * to replace query values, and the `appendUrlParam` helpers when repeated keys\n * should be preserved. `FormData` bodies intentionally leave multipart boundary\n * headers to the runtime, so `setBody` removes explicit content headers for\n * them.\n *\n * @since 4.0.0\n */\nimport * as Context from \"../../Context.js\";\nimport * as Effect from \"../../Effect.js\";\nimport { dual } from \"../../Function.js\";\nimport * as Inspectable from \"../../Inspectable.js\";\nimport { stringOrRedacted } from \"../../internal/redacted.js\";\nimport * as Option from \"../../Option.js\";\nimport { pipeArguments } from \"../../Pipeable.js\";\nimport { hasProperty } from \"../../Predicate.js\";\nimport { redact } from \"../../Redactable.js\";\nimport * as Result from \"../../Result.js\";\nimport * as Stream from \"../../Stream.js\";\nimport * as Headers from \"./Headers.js\";\nimport * as HttpBody from \"./HttpBody.js\";\nimport { hasBody } from \"./HttpMethod.js\";\nimport * as UrlParams from \"./UrlParams.js\";\nconst TypeId = \"~effect/http/HttpClientRequest\";\n/**\n * Returns `true` when a value is an `HttpClientRequest`.\n *\n * @category guards\n * @since 4.0.0\n */\nexport const isHttpClientRequest = u => hasProperty(u, TypeId);\nconst Proto = {\n [TypeId]: TypeId,\n ...Inspectable.BaseProto,\n toJSON() {\n return {\n _id: \"HttpClientRequest\",\n method: this.method,\n url: this.url,\n urlParams: this.urlParams,\n hash: this.hash,\n headers: redact(this.headers),\n body: this.body.toJSON()\n };\n },\n pipe() {\n return pipeArguments(this, arguments);\n }\n};\n/**\n * Constructs an `HttpClientRequest` from fully normalized request components.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport function makeWith(method, url, urlParams, hash, headers, body) {\n const self = Object.create(Proto);\n self.method = method;\n self.url = url;\n self.urlParams = urlParams;\n self.hash = hash;\n self.headers = headers;\n self.body = body;\n return self;\n}\n/**\n * An empty `GET` request with no URL, query parameters, hash, headers, or body.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const empty = /*#__PURE__*/makeWith(\"GET\", \"\", UrlParams.empty, /*#__PURE__*/Option.none(), Headers.empty, HttpBody.empty);\n/**\n * Creates a request constructor for the specified HTTP method.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const make = method => (url, options) => modify(empty, {\n method,\n url,\n ...(options ?? undefined)\n});\n/**\n * Creates a `GET` request for the specified URL.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const get = /*#__PURE__*/make(\"GET\");\n/**\n * Creates a `POST` request for the specified URL.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const post = /*#__PURE__*/make(\"POST\");\n/**\n * Creates a `PATCH` request for the specified URL.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const patch = /*#__PURE__*/make(\"PATCH\");\n/**\n * Creates a `PUT` request for the specified URL.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const put = /*#__PURE__*/make(\"PUT\");\nconst del = /*#__PURE__*/make(\"DELETE\");\nexport {\n/**\n * Creates a `DELETE` request for the specified URL.\n *\n * @category constructors\n * @since 4.0.0\n */\ndel as delete };\n/**\n * Creates a `HEAD` request for the specified URL.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const head = /*#__PURE__*/make(\"HEAD\");\n/**\n * Creates an `OPTIONS` request for the specified URL.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const options = /*#__PURE__*/make(\"OPTIONS\");\n/**\n * Creates a `TRACE` request for the specified URL.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const trace = /*#__PURE__*/make(\"TRACE\");\n/**\n * Applies request options to an `HttpClientRequest`, returning a new request.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const modify = /*#__PURE__*/dual(2, (self, options) => {\n let result = self;\n if (options.method) {\n result = setMethod(result, options.method);\n }\n if (options.url) {\n result = setUrl(result, options.url);\n }\n if (options.headers) {\n result = setHeaders(result, options.headers);\n }\n if (options.urlParams) {\n result = setUrlParams(result, options.urlParams);\n }\n if (options.hash) {\n result = setHash(result, options.hash);\n }\n if (options.body) {\n result = setBody(result, options.body);\n }\n if (options.accept) {\n result = accept(result, options.accept);\n }\n if (options.acceptJson) {\n result = acceptJson(result);\n }\n return result;\n});\n/**\n * Sets the HTTP method on a request, returning a new request.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const setMethod = /*#__PURE__*/dual(2, (self, method) => makeWith(method, self.url, self.urlParams, self.hash, self.headers, self.body));\n/**\n * Sets a single request header, replacing any existing value for that header.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const setHeader = /*#__PURE__*/dual(3, (self, key, value) => makeWith(self.method, self.url, self.urlParams, self.hash, Headers.set(self.headers, key, value), self.body));\n/**\n * Sets multiple request headers from an input collection, replacing existing values with matching names.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const setHeaders = /*#__PURE__*/dual(2, (self, input) => makeWith(self.method, self.url, self.urlParams, self.hash, Headers.setAll(self.headers, input), self.body));\n/**\n * Sets the `Authorization` header using HTTP Basic authentication credentials.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const basicAuth = /*#__PURE__*/dual(3, (self, username, password) => setHeader(self, \"Authorization\", `Basic ${btoa(`${stringOrRedacted(username)}:${stringOrRedacted(password)}`)}`));\n/**\n * Sets the `Authorization` header using a bearer token.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const bearerToken = /*#__PURE__*/dual(2, (self, token) => setHeader(self, \"Authorization\", `Bearer ${stringOrRedacted(token)}`));\n/**\n * Sets the `Accept` header to the specified media type.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const accept = /*#__PURE__*/dual(2, (self, mediaType) => setHeader(self, \"Accept\", mediaType));\n/**\n * Sets the `Accept` header to `application/json`.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const acceptJson = /*#__PURE__*/accept(\"application/json\");\n/**\n * Sets the request URL. When given a `URL`, its search parameters and hash are extracted into the request's structured fields.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const setUrl = /*#__PURE__*/dual(2, (self, url) => {\n if (typeof url === \"string\") {\n return makeWith(self.method, url, self.urlParams, self.hash, self.headers, self.body);\n }\n const clone = new URL(url.toString());\n const urlParams = UrlParams.fromInput(clone.searchParams);\n const hash = Option.fromNullishOr(clone.hash === \"\" ? undefined : clone.hash.slice(1));\n clone.search = \"\";\n clone.hash = \"\";\n return makeWith(self.method, clone.toString(), urlParams, hash, self.headers, self.body);\n});\n/**\n * Prepends a URL segment to the request URL, inserting or trimming one slash as needed.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const prependUrl = /*#__PURE__*/dual(2, (self, path) => {\n if (path === \"\") return self;\n return makeWith(self.method, joinSegments(path, self.url), self.urlParams, self.hash, self.headers, self.body);\n});\n/**\n * Appends a URL segment to the request URL, inserting or trimming one slash as needed.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const appendUrl = /*#__PURE__*/dual(2, (self, path) => {\n if (path === \"\") return self;\n return makeWith(self.method, joinSegments(self.url, path), self.urlParams, self.hash, self.headers, self.body);\n});\nconst joinSegments = (first, second) => {\n const endsWithSlash = first.endsWith(\"/\");\n const startsWithSlash = second.startsWith(\"/\");\n const needsTrim = endsWithSlash && startsWithSlash;\n const needsSlash = !endsWithSlash && !startsWithSlash;\n return needsTrim ? first + second.slice(1) : needsSlash ? first + \"/\" + second : first + second;\n};\n/**\n * Updates the request URL by applying a function to the current URL string.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const updateUrl = /*#__PURE__*/dual(2, (self, f) => makeWith(self.method, f(self.url), self.urlParams, self.hash, self.headers, self.body));\n/**\n * Sets one query parameter, replacing existing values for that parameter name.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const setUrlParam = /*#__PURE__*/dual(3, (self, key, value) => makeWith(self.method, self.url, UrlParams.set(self.urlParams, key, value), self.hash, self.headers, self.body));\n/**\n * Sets query parameters from an input collection, replacing existing values for matching names.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const setUrlParams = /*#__PURE__*/dual(2, (self, input) => makeWith(self.method, self.url, UrlParams.setAll(self.urlParams, input), self.hash, self.headers, self.body));\n/**\n * Appends one query parameter value without removing existing values for the same name.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const appendUrlParam = /*#__PURE__*/dual(3, (self, key, value) => makeWith(self.method, self.url, UrlParams.append(self.urlParams, key, value), self.hash, self.headers, self.body));\n/**\n * Appends query parameters from an input collection without removing existing values for matching names.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const appendUrlParams = /*#__PURE__*/dual(2, (self, input) => makeWith(self.method, self.url, UrlParams.appendAll(self.urlParams, input), self.hash, self.headers, self.body));\n/**\n * Sets the URL fragment on a request without the leading `#`.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const setHash = /*#__PURE__*/dual(2, (self, hash) => makeWith(self.method, self.url, self.urlParams, Option.some(hash), self.headers, self.body));\n/**\n * Removes the URL fragment from a request.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const removeHash = self => makeWith(self.method, self.url, self.urlParams, Option.none(), self.headers, self.body);\n/**\n * Sets the request body and updates `Content-Type` and `Content-Length` headers from the body metadata when available.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const setBody = /*#__PURE__*/dual(2, (self, body) => {\n let headers = self.headers;\n if (body._tag === \"Empty\" || body._tag === \"FormData\") {\n headers = Headers.remove(Headers.remove(headers, \"Content-Type\"), \"Content-length\");\n } else {\n if (body.contentType) {\n headers = Headers.set(headers, \"content-type\", body.contentType);\n }\n if (body.contentLength !== undefined) {\n headers = Headers.set(headers, \"content-length\", body.contentLength.toString());\n }\n }\n return makeWith(self.method, self.url, self.urlParams, self.hash, headers, body);\n});\n/**\n * Sets a `Uint8Array` request body with an optional content type.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const bodyUint8Array = /*#__PURE__*/dual(args => isHttpClientRequest(args[0]), (self, body, contentType) => setBody(self, HttpBody.uint8Array(body, contentType)));\n/**\n * Sets a text request body with an optional content type.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const bodyText = /*#__PURE__*/dual(args => isHttpClientRequest(args[0]), (self, body, contentType) => setBody(self, HttpBody.text(body, contentType)));\n/**\n * Encodes a value as a JSON request body and sets it on the request, failing with `HttpBodyError` if encoding fails.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const bodyJson = /*#__PURE__*/dual(2, (self, body) => Effect.map(HttpBody.json(body), body => setBody(self, body)));\n/**\n * Sets a JSON request body using unsafe JSON encoding, which may throw instead of failing in the Effect error channel.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const bodyJsonUnsafe = /*#__PURE__*/dual(2, (self, body) => setBody(self, HttpBody.jsonUnsafe(body)));\n/**\n * Creates a schema-based JSON body encoder that sets the encoded value on a request.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const schemaBodyJson = (schema, options) => {\n const encode = HttpBody.jsonSchema(schema, options);\n return dual(2, (self, body) => Effect.map(encode(body), body => setBody(self, body)));\n};\n/**\n * Sets an `application/x-www-form-urlencoded` request body from URL parameter input.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const bodyUrlParams = /*#__PURE__*/dual(2, (self, input) => setBody(self, HttpBody.urlParams(UrlParams.fromInput(input))));\n/**\n * Sets a `FormData` request body.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const bodyFormData = /*#__PURE__*/dual(2, (self, body) => setBody(self, HttpBody.formData(body)));\n/**\n * Creates a `FormData` request body from record-style entries and sets it on the request.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const bodyFormDataRecord = /*#__PURE__*/dual(2, (self, entries) => setBody(self, HttpBody.formDataRecord(entries)));\n/**\n * Sets a streaming `Uint8Array` request body with optional content type and content length metadata.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const bodyStream = /*#__PURE__*/dual(args => isHttpClientRequest(args[0]), (self, body, options) => setBody(self, HttpBody.stream(body, options?.contentType, options?.contentLength)));\n/**\n * Creates a file-backed request body from a filesystem path and sets it on the request.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const bodyFile = /*#__PURE__*/dual(args => isHttpClientRequest(args[0]), (self, path, options) => Effect.map(HttpBody.file(path, options), body => setBody(self, body)));\n/**\n * Builds a `URL` from the request URL, query parameters, and hash, returning `Option.none()` if the URL is invalid.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport function toUrl(self) {\n const r = UrlParams.makeUrl(self.url, self.urlParams, Option.getOrUndefined(self.hash));\n if (Result.isSuccess(r)) {\n return Option.some(r.success);\n }\n return Option.none();\n}\n/**\n * Converts a Web `Request` into an `HttpClientRequest`, preserving method, URL, headers, and supported request bodies.\n *\n * @category converting\n * @since 4.0.0\n */\nexport const fromWeb = request => {\n const method = request.method.toUpperCase();\n return modify(empty, {\n method,\n url: new URL(request.url),\n headers: request.headers,\n body: fromWebBody(request, method)\n });\n};\nconst fromWebBody = (request, method) => {\n if (!hasBody(method) || request.body === null) {\n return HttpBody.empty;\n }\n return HttpBody.raw(request.body, {\n contentType: request.headers.get(\"content-type\") ?? undefined,\n contentLength: parseContentLength(request.headers.get(\"content-length\"))\n });\n};\nconst parseContentLength = contentLength => {\n if (contentLength === null) {\n return undefined;\n }\n const parsed = Number.parseInt(contentLength, 10);\n return Number.isNaN(parsed) ? undefined : parsed;\n};\n/**\n * Converts an `HttpClientRequest` safely to a Web `Request` as a `Result`, failing when the request URL is invalid.\n *\n * @category converting\n * @since 4.0.0\n */\nexport const toWebResult = (self, options) => {\n const url = UrlParams.makeUrl(self.url, self.urlParams, Option.getOrUndefined(self.hash));\n if (Result.isFailure(url)) {\n return Result.fail(url.failure);\n }\n const requestInit = {\n method: self.method,\n headers: self.headers\n };\n if (options?.signal) {\n requestInit.signal = options.signal;\n }\n if (hasBody(self.method)) {\n switch (self.body._tag) {\n case \"Empty\":\n {\n break;\n }\n case \"Raw\":\n {\n requestInit.body = self.body.body;\n if (isReadableStream(self.body.body)) {\n ;\n requestInit.duplex = \"half\";\n }\n break;\n }\n case \"Uint8Array\":\n {\n requestInit.body = self.body.body;\n break;\n }\n case \"FormData\":\n {\n requestInit.body = self.body.formData;\n break;\n }\n case \"Stream\":\n {\n requestInit.body = Stream.toReadableStreamWith(self.body.stream, options?.context ?? Context.empty());\n requestInit.duplex = \"half\";\n break;\n }\n }\n }\n return Result.try({\n try: () => new Request(url.success, requestInit),\n catch: cause => new UrlParams.UrlParamsError({\n cause\n })\n });\n};\nconst isReadableStream = u => typeof ReadableStream !== \"undefined\" && u instanceof ReadableStream;\n/**\n * Converts an `HttpClientRequest` to a Web `Request`, failing with `UrlParamsError` when the request URL is invalid.\n *\n * @category converting\n * @since 4.0.0\n */\nexport const toWeb = (self, options) => Effect.contextWith(context => Effect.fromResult(toWebResult(self, {\n context: context,\n signal: options?.signal\n})));\n//# sourceMappingURL=HttpClientRequest.js.map",
116
- "/**\n * Shared utilities for reading and decoding incoming HTTP messages.\n *\n * `HttpIncomingMessage` is the common body-and-header surface used by HTTP\n * server requests and client responses. It keeps transport-specific metadata in\n * the surrounding request and response modules while this module focuses on\n * headers, optional remote address information, byte streams, buffered body\n * views, and schema decoders for JSON bodies, URL-encoded bodies, and headers.\n *\n * Use these helpers in middleware, route handlers, client response processing,\n * and adapters when code should work with any incoming message instead of a\n * concrete request or response type. Body access is effectful because reading,\n * parsing, and decoding can fail; use `stream` when bytes should stay\n * streaming, and use `text`, `json`, `urlParamsBody`, or `arrayBuffer` when a\n * buffered view is appropriate. Some runtimes expose bodies as one-shot Web\n * streams, so prefer one body representation per message and let each\n * implementation's cached accessors handle repeated reads where available.\n *\n * Headers use the HTTP `Headers` module's lowercase, single-value map, so\n * repeated values may already have been combined or normalized by the adapter.\n * Decode headers with `schemaHeaders` when their shape matters. For form\n * bodies, `urlParamsBody` handles URL-encoded payloads; multipart support lives\n * on `HttpServerRequest`, with `MaxBodySize` providing the shared limit\n * reference used by multipart parsing.\n *\n * @since 4.0.0\n */\nimport * as Context from \"../../Context.js\";\nimport * as Effect from \"../../Effect.js\";\nimport { hasProperty } from \"../../Predicate.js\";\nimport { redact } from \"../../Redactable.js\";\nimport * as Schema from \"../../Schema.js\";\nimport * as UrlParams from \"./UrlParams.js\";\n/**\n * Type identifier for `HttpIncomingMessage` values.\n *\n * @category type IDs\n * @since 4.0.0\n */\nexport const TypeId = \"~effect/http/HttpIncomingMessage\";\n/**\n * Returns `true` when a value is an `HttpIncomingMessage`.\n *\n * @category guards\n * @since 4.0.0\n */\nexport const isHttpIncomingMessage = u => hasProperty(u, TypeId);\n/**\n * Creates a decoder that reads an incoming message's JSON body and decodes it with the supplied schema.\n *\n * @category schemas\n * @since 4.0.0\n */\nexport const schemaBodyJson = (schema, options) => {\n const decode = Schema.decodeEffect(Schema.toCodecJson(schema));\n return self => Effect.flatMap(self.json, u => decode(u, options));\n};\n/**\n * Creates a decoder that reads an incoming message's URL-encoded body parameters and decodes them with the supplied schema.\n *\n * @category schemas\n * @since 4.0.0\n */\nexport const schemaBodyUrlParams = (schema, options) => {\n const decode = UrlParams.schemaRecord.pipe(Schema.decodeTo(schema), Schema.decodeEffect);\n return self => Effect.flatMap(self.urlParamsBody, u => decode(u, options));\n};\n/**\n * Creates a decoder that validates and decodes an incoming message's headers with the supplied schema.\n *\n * @category schemas\n * @since 4.0.0\n */\nexport const schemaHeaders = (schema, options) => {\n const decode = Schema.decodeUnknownEffect(schema);\n return self => decode(self.headers, options);\n};\n/**\n * Context reference for the optional maximum size allowed when reading an incoming message body.\n *\n * @category references\n * @since 4.0.0\n */\nexport const MaxBodySize = /*#__PURE__*/Context.Reference(\"effect/http/HttpIncomingMessage/MaxBodySize\", {\n defaultValue: () => undefined\n});\n/**\n * Builds an inspectable object for an incoming message, redacting headers and including a synchronously readable JSON or text body when available.\n *\n * @category converting\n * @since 4.0.0\n */\nexport const inspect = (self, that) => {\n const contentType = self.headers[\"content-type\"] ?? \"\";\n let body;\n if (contentType.includes(\"application/json\")) {\n try {\n body = Effect.runSync(self.json);\n // oxlint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (_) {\n //\n }\n } else if (contentType.includes(\"text/\") || contentType.includes(\"urlencoded\")) {\n try {\n body = Effect.runSync(self.text);\n // oxlint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (_) {\n //\n }\n }\n const obj = {\n ...that,\n headers: redact(self.headers),\n remoteAddress: self.remoteAddress\n };\n if (body !== undefined) {\n obj.body = body;\n }\n return obj;\n};\n//# sourceMappingURL=HttpIncomingMessage.js.map",
117
- "/**\n * HTTP client response values, status helpers, and body decoders.\n *\n * This module represents responses produced by the Effect HTTP client. An\n * {@link HttpClientResponse} keeps the original request together with the\n * response status, headers, cookies, and effectful body accessors inherited from\n * the shared incoming-message model.\n *\n * **Mental model**\n *\n * A response is a successful client result unless a status filter turns it into\n * a failure. {@link fromWeb} adapts a platform `Response`, body readers decode\n * the underlying Web response, and schema helpers combine status, headers, and\n * decoded body data when validating API-specific responses.\n *\n * **Common tasks**\n *\n * - Branch on exact or status-class handlers with {@link matchStatus}.\n * - Fail non-accepted statuses with {@link filterStatus} or\n * {@link filterStatusOk}.\n * - Decode JSON response envelopes with {@link schemaJson}.\n * - Decode status and headers without reading a body with {@link schemaNoBody}.\n * - Stream response bytes from an effect with {@link stream}.\n *\n * **Gotchas**\n *\n * HTTP status codes are data, not errors, until a filter is applied. `json`\n * parses an empty text body as `null`. Body readers fail with `HttpClientError`\n * when decoding fails, and the raw stream fails when no body is present.\n * Headers use the HTTP `Headers` module's lowercase, single-value map, while\n * response cookies are parsed separately from `Set-Cookie` headers.\n *\n * **See also**\n *\n * {@link HttpClientResponse}, {@link fromWeb}, {@link matchStatus},\n * {@link schemaJson}, {@link filterStatus}.\n *\n * @since 4.0.0\n */\nimport * as Effect from \"../../Effect.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 Schema from \"../../Schema.js\";\nimport * as Stream from \"../../Stream.js\";\nimport * as Cookies from \"./Cookies.js\";\nimport * as Headers from \"./Headers.js\";\nimport * as Error from \"./HttpClientError.js\";\nimport * as HttpIncomingMessage from \"./HttpIncomingMessage.js\";\nimport * as UrlParams from \"./UrlParams.js\";\nexport {\n/**\n * Creates a decoder that reads a response JSON body and decodes it with the supplied schema.\n *\n * @category schemas\n * @since 4.0.0\n */\nschemaBodyJson,\n/**\n * Creates a decoder that reads response URL-encoded body parameters and decodes them with the supplied schema.\n *\n * @category schemas\n * @since 4.0.0\n */\nschemaBodyUrlParams,\n/**\n * Creates a decoder that validates and decodes response headers with the supplied schema.\n *\n * @category schemas\n * @since 4.0.0\n */\nschemaHeaders } from \"./HttpIncomingMessage.js\";\n/**\n * Type identifier for `HttpClientResponse` values.\n *\n * @category type IDs\n * @since 4.0.0\n */\nexport const TypeId = \"~effect/http/HttpClientResponse\";\n/**\n * Wraps a Web `Response` and its original `HttpClientRequest` as an `HttpClientResponse`.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const fromWeb = (request, source) => new WebHttpClientResponse(request, source);\n/**\n * Creates a decoder for a response's status, headers, and JSON body using the supplied schema.\n *\n * @category schemas\n * @since 4.0.0\n */\nexport const schemaJson = (schema, options) => {\n const decode = Schema.decodeEffect(Schema.toCodecJson(schema).annotate({\n options\n }));\n return self => Effect.flatMap(self.json, body => decode({\n status: self.status,\n headers: self.headers,\n body\n }));\n};\n/**\n * Creates a decoder for a response's status and headers without reading a response body.\n *\n * @category schemas\n * @since 4.0.0\n */\nexport const schemaNoBody = (schema, options) => {\n const decode = Schema.decodeEffect(schema.annotate({\n options\n }));\n return self => decode({\n status: self.status,\n headers: self.headers\n });\n};\n/**\n * Converts an effect producing an `HttpClientResponse` into a stream of response body bytes.\n *\n * @category accessors\n * @since 4.0.0\n */\nexport const stream = effect => Stream.unwrap(Effect.map(effect, self => self.stream));\n/**\n * Pattern matches on a response status, checking exact status handlers before status-class handlers and `orElse`.\n *\n * @category pattern matching\n * @since 4.0.0\n */\nexport const matchStatus = /*#__PURE__*/dual(2, (self, cases) => {\n const status = self.status;\n if (cases[status]) {\n return cases[status](self);\n } else if (status >= 200 && status < 300 && cases[\"2xx\"]) {\n return cases[\"2xx\"](self);\n } else if (status >= 300 && status < 400 && cases[\"3xx\"]) {\n return cases[\"3xx\"](self);\n } else if (status >= 400 && status < 500 && cases[\"4xx\"]) {\n return cases[\"4xx\"](self);\n } else if (status >= 500 && status < 600 && cases[\"5xx\"]) {\n return cases[\"5xx\"](self);\n }\n return cases.orElse(self);\n});\n/**\n * Succeeds with the response when its status satisfies the predicate, otherwise fails with `HttpClientError`.\n *\n * @category filters\n * @since 4.0.0\n */\nexport const filterStatus = /*#__PURE__*/dual(2, (self, f) => Effect.suspend(() => f(self.status) ? Effect.succeed(self) : Effect.fail(new Error.HttpClientError({\n reason: new Error.StatusCodeError({\n response: self,\n request: self.request,\n description: \"invalid status code\"\n })\n}))));\n/**\n * Succeeds with the response only when its status is in the 2xx range, otherwise fails with `HttpClientError`.\n *\n * @category filters\n * @since 4.0.0\n */\nexport const filterStatusOk = self => self.status >= 200 && self.status < 300 ? Effect.succeed(self) : Effect.fail(new Error.HttpClientError({\n reason: new Error.StatusCodeError({\n response: self,\n request: self.request,\n description: \"non 2xx status code\"\n })\n}));\n// -----------------------------------------------------------------------------\n// internal\n// -----------------------------------------------------------------------------\nclass WebHttpClientResponse extends Inspectable.Class {\n [HttpIncomingMessage.TypeId];\n [TypeId];\n request;\n source;\n constructor(request, source) {\n super();\n this.request = request;\n this.source = source;\n this[HttpIncomingMessage.TypeId] = HttpIncomingMessage.TypeId;\n this[TypeId] = 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.source.status;\n }\n get headers() {\n return Headers.fromInput(this.source.headers);\n }\n cachedCookies;\n get cookies() {\n if (this.cachedCookies) {\n return this.cachedCookies;\n }\n return this.cachedCookies = Cookies.fromSetCookie(this.source.headers.getSetCookie());\n }\n get remoteAddress() {\n return Option.none();\n }\n get stream() {\n return this.source.body ? Stream.fromReadableStream({\n evaluate: () => this.source.body,\n onError: cause => new Error.HttpClientError({\n reason: new Error.DecodeError({\n request: this.request,\n response: this,\n cause\n })\n })\n }) : Stream.fail(new Error.HttpClientError({\n reason: new Error.EmptyBodyError({\n request: this.request,\n response: this,\n description: \"can not create stream from empty body\"\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 Error.HttpClientError({\n reason: new Error.DecodeError({\n request: this.request,\n response: this,\n cause\n })\n })\n }));\n }\n textBody;\n get text() {\n if (this.textBody) {\n return this.textBody;\n }\n this.textBody = Effect.tryPromise({\n try: () => this.source.text(),\n catch: cause => new Error.HttpClientError({\n reason: new Error.DecodeError({\n request: this.request,\n response: this,\n cause\n })\n })\n }).pipe(Effect.cached, Effect.runSync);\n this.arrayBufferBody = Effect.map(this.textBody, _ => new TextEncoder().encode(_).buffer);\n return this.textBody;\n }\n get urlParamsBody() {\n return Effect.flatMap(this.text, _ => Effect.try({\n try: () => UrlParams.fromInput(new URLSearchParams(_)),\n catch: cause => new Error.HttpClientError({\n reason: new Error.DecodeError({\n request: this.request,\n response: this,\n cause\n })\n })\n }));\n }\n formDataBody;\n get formData() {\n return this.formDataBody ??= Effect.tryPromise({\n try: () => this.source.formData(),\n catch: cause => new Error.HttpClientError({\n reason: new Error.DecodeError({\n request: this.request,\n response: this,\n cause\n })\n })\n }).pipe(Effect.cached, Effect.runSync);\n }\n arrayBufferBody;\n get arrayBuffer() {\n if (this.arrayBufferBody) {\n return this.arrayBufferBody;\n }\n this.arrayBufferBody = Effect.tryPromise({\n try: () => this.source.arrayBuffer(),\n catch: cause => new Error.HttpClientError({\n reason: new Error.DecodeError({\n request: this.request,\n response: this,\n cause\n })\n })\n }).pipe(Effect.cached, Effect.runSync);\n this.textBody = Effect.map(this.arrayBufferBody, _ => new TextDecoder().decode(_));\n return this.arrayBufferBody;\n }\n pipe() {\n return pipeArguments(this, arguments);\n }\n}\n//# sourceMappingURL=HttpClientResponse.js.map",
118
- "/**\n * HTTP propagation helpers for Effect tracing context.\n *\n * This module converts Effect `Tracer.Span` values into outbound trace headers\n * and decodes inbound propagation headers into `Tracer.ExternalSpan` parents.\n * HTTP clients use it to continue the current span across outgoing requests, and\n * server middleware uses it to parent request spans from upstream services.\n *\n * **Mental model**\n *\n * Propagation is metadata, not tracing storage. {@link toHeaders} serializes the\n * current span into HTTP headers for the next service. {@link fromHeaders}\n * inspects incoming headers and returns an external parent span when a supported\n * propagation format is present.\n *\n * **Common tasks**\n *\n * - Add outbound propagation headers with {@link toHeaders}\n * - Decode an inbound parent span with {@link fromHeaders}\n * - Use {@link w3c}, {@link b3}, or {@link xb3} directly when an adapter needs a\n * specific propagation format\n *\n * **Gotchas**\n *\n * - Outbound propagation writes both W3C `traceparent` and compact B3 `b3`\n * headers\n * - Inbound decoding prefers W3C `traceparent`, then compact B3, then\n * multi-header B3 (`x-b3-*`)\n * - Header names in `Headers.Headers` are expected to be lowercase\n * - Missing or unsupported trace context decodes to `Option.none`, so callers\n * should start a new trace when no parent is returned\n *\n * @since 4.0.0\n */\nimport * as Option from \"../../Option.js\";\nimport * as Tracer from \"../../Tracer.js\";\nimport * as Headers from \"./Headers.js\";\n/**\n * Encodes a span into HTTP trace propagation headers.\n *\n * **Details**\n *\n * The generated headers include both compact B3 (`b3`) and W3C `traceparent`\n * formats.\n *\n * @category encoding\n * @since 4.0.0\n */\nexport const toHeaders = span => Headers.fromRecordUnsafe({\n b3: `${span.traceId}-${span.spanId}-${span.sampled ? \"1\" : \"0\"}${Option.match(span.parent, {\n onNone: () => \"\",\n onSome: parent => `-${parent.spanId}`\n })}`,\n traceparent: `00-${span.traceId}-${span.spanId}-${span.sampled ? \"01\" : \"00\"}`\n});\n/**\n * Decodes an external span safely from HTTP trace propagation headers.\n *\n * **Details**\n *\n * W3C `traceparent` is tried first, followed by compact B3 (`b3`) and then\n * multi-header B3 (`x-b3-*`).\n *\n * @category decoding\n * @since 4.0.0\n */\nexport const fromHeaders = headers => {\n let span = w3c(headers);\n if (Option.isSome(span)) {\n return span;\n }\n span = b3(headers);\n if (Option.isSome(span)) {\n return span;\n }\n return xb3(headers);\n};\n/**\n * Decodes an external span safely from the compact B3 `b3` header.\n *\n * **Details**\n *\n * Returns `Option.none` when the header is missing or does not contain trace and\n * span identifiers.\n *\n * @category decoding\n * @since 4.0.0\n */\nexport const b3 = headers => {\n if (!(\"b3\" in headers)) {\n return Option.none();\n }\n const parts = headers[\"b3\"].split(\"-\");\n if (parts.length < 2) {\n return Option.none();\n }\n return Option.some(Tracer.externalSpan({\n traceId: parts[0],\n spanId: parts[1],\n sampled: parts[2] ? parts[2] === \"1\" : true\n }));\n};\n/**\n * Decodes an external span safely from multi-header B3 propagation headers.\n *\n * **Details**\n *\n * The decoder reads `x-b3-traceid`, `x-b3-spanid`, and optional `x-b3-sampled`\n * headers.\n *\n * @category decoding\n * @since 4.0.0\n */\nexport const xb3 = headers => {\n if (!headers[\"x-b3-traceid\"] || !headers[\"x-b3-spanid\"]) {\n return Option.none();\n }\n return Option.some(Tracer.externalSpan({\n traceId: headers[\"x-b3-traceid\"],\n spanId: headers[\"x-b3-spanid\"],\n sampled: headers[\"x-b3-sampled\"] ? headers[\"x-b3-sampled\"] === \"1\" : true\n }));\n};\nconst w3cTraceId = /^[0-9a-f]{32}$/i;\nconst w3cSpanId = /^[0-9a-f]{16}$/i;\n/**\n * Decodes an external span safely from the W3C `traceparent` header.\n *\n * **Details**\n *\n * Only version `00` headers with valid trace and span identifiers are accepted.\n *\n * @category decoding\n * @since 4.0.0\n */\nexport const w3c = headers => {\n if (!headers[\"traceparent\"]) {\n return Option.none();\n }\n const parts = headers[\"traceparent\"].split(\"-\");\n if (parts.length !== 4) {\n return Option.none();\n }\n const [version, traceId, spanId, flags] = parts;\n switch (version) {\n case \"00\":\n {\n if (w3cTraceId.test(traceId) === false || w3cSpanId.test(spanId) === false) {\n return Option.none();\n }\n return Option.some(Tracer.externalSpan({\n traceId,\n spanId,\n sampled: (parseInt(flags, 16) & 1) === 1\n }));\n }\n default:\n {\n return Option.none();\n }\n }\n};\n//# sourceMappingURL=HttpTraceContext.js.map",
119
- "import * as Cause from \"../../Cause.js\";\nimport { Clock } from \"../../Clock.js\";\nimport * as Context from \"../../Context.js\";\nimport * as Duration from \"../../Duration.js\";\nimport * as Effect from \"../../Effect.js\";\nimport * as Fiber from \"../../Fiber.js\";\nimport { constant, constFalse, constTrue, dual, flow, identity } from \"../../Function.js\";\nimport * as Inspectable from \"../../Inspectable.js\";\nimport * as Layer from \"../../Layer.js\";\nimport * as Option from \"../../Option.js\";\nimport { pipeArguments } from \"../../Pipeable.js\";\nimport * as Predicate from \"../../Predicate.js\";\nimport * as Ref from \"../../Ref.js\";\nimport * as Result from \"../../Result.js\";\nimport * as Schedule from \"../../Schedule.js\";\nimport * as Stream from \"../../Stream.js\";\nimport * as Tracer from \"../../Tracer.js\";\nimport * as Cookies from \"./Cookies.js\";\nimport * as Headers from \"./Headers.js\";\nimport * as Error from \"./HttpClientError.js\";\nimport * as HttpClientRequest from \"./HttpClientRequest.js\";\nimport * as HttpClientResponse from \"./HttpClientResponse.js\";\nimport * as HttpIncomingMessage from \"./HttpIncomingMessage.js\";\nimport * as HttpMethod from \"./HttpMethod.js\";\nimport * as TraceContext from \"./HttpTraceContext.js\";\nimport * as UrlParams from \"./UrlParams.js\";\nconst TypeId = \"~effect/http/HttpClient\";\n/**\n * Returns `true` if the provided value is an `HttpClient`.\n *\n * @category guards\n * @since 4.0.0\n */\nexport const isHttpClient = u => Predicate.hasProperty(u, TypeId);\n/**\n * Service tag for the default outgoing HTTP client service.\n *\n * **When to use**\n *\n * Use to provide the HTTP client implementation consumed by the module's\n * request accessor functions.\n *\n * @category services\n * @since 4.0.0\n */\nexport const HttpClient = /*#__PURE__*/Context.Service(\"effect/HttpClient\");\nconst accessor = method => (...args) => Effect.flatMap(HttpClient, client => client[method](...args));\n/**\n * Executes a prebuilt `HttpClientRequest` using the `HttpClient` service from the environment.\n *\n * @category accessors\n * @since 4.0.0\n */\nexport const execute = /*#__PURE__*/accessor(\"execute\");\n/**\n * Executes a `GET` request using the `HttpClient` service from the environment.\n *\n * @category accessors\n * @since 4.0.0\n */\nexport const get = /*#__PURE__*/accessor(\"get\");\n/**\n * Executes a `HEAD` request using the `HttpClient` service from the environment.\n *\n * @category accessors\n * @since 4.0.0\n */\nexport const head = /*#__PURE__*/accessor(\"head\");\n/**\n * Executes a `POST` request using the `HttpClient` service from the environment.\n *\n * @category accessors\n * @since 4.0.0\n */\nexport const post = /*#__PURE__*/accessor(\"post\");\n/**\n * Executes a `PATCH` request using the `HttpClient` service from the environment.\n *\n * @category accessors\n * @since 4.0.0\n */\nexport const patch = /*#__PURE__*/accessor(\"patch\");\n/**\n * Executes a `PUT` request using the `HttpClient` service from the environment.\n *\n * @category accessors\n * @since 4.0.0\n */\nexport const put = /*#__PURE__*/accessor(\"put\");\n/**\n * Executes a `DELETE` request using the `HttpClient` service from the environment.\n *\n * @category accessors\n * @since 4.0.0\n */\nexport const del = /*#__PURE__*/accessor(\"del\");\n/**\n * Executes an `OPTIONS` request using the `HttpClient` service from the environment.\n *\n * @category accessors\n * @since 4.0.0\n */\nexport const options = /*#__PURE__*/accessor(\"options\");\n/**\n * Transforms a client by wrapping the response effect for each request.\n *\n * **Details**\n *\n * The transformation receives both the response effect and the original request, allowing it to change success, error, and environment behavior.\n *\n * @category mapping & sequencing\n * @since 4.0.0\n */\nexport const transform = /*#__PURE__*/dual(2, (self, f) => makeWith(Effect.flatMap(request => f(self.postprocess(Effect.succeed(request)), request)), self.preprocess));\n/**\n * Transforms a client by applying an effectful transformation to each response effect.\n *\n * @category mapping & sequencing\n * @since 4.0.0\n */\nexport const transformResponse = /*#__PURE__*/dual(2, (self, f) => makeWith(request => f(self.postprocess(request)), self.preprocess));\nconst catch_ = /*#__PURE__*/dual(2, (self, f) => transformResponse(self, Effect.catch(f)));\nexport {\n/**\n * Handles all client failures with an effectful recovery function and returns a transformed client.\n *\n * @category error handling\n * @since 4.0.0\n */\ncatch_ as catch };\n/**\n * Handles client failures with one or more matching `_tag` values and returns a transformed client.\n *\n * @category error handling\n * @since 4.0.0\n */\nexport const catchTag = /*#__PURE__*/dual(3, (self, tag, f) => transformResponse(self, effect => Effect.catchTag(effect, tag, f)));\n/**\n * Handles client failures by matching their `_tag` values against a case map.\n *\n * @category error handling\n * @since 4.0.0\n */\nexport const catchTags = /*#__PURE__*/dual(2, (self, cases) => transformResponse(self, Effect.catchTags(cases)));\n/**\n * Filters the result of a response, or runs an alternative effect if the predicate fails.\n *\n * @category filters\n * @since 4.0.0\n */\nexport const filterOrElse = /*#__PURE__*/dual(3, (self, f, orElse) => transformResponse(self, Effect.filterOrElse(f, orElse)));\n/**\n * Filters successful responses, or fails with the error produced by `orFailWith` when the predicate does not match.\n *\n * @category filters\n * @since 4.0.0\n */\nexport const filterOrFail = /*#__PURE__*/dual(3, (self, f, orFailWith) => transformResponse(self, Effect.filterOrFail(f, orFailWith)));\n/**\n * Filters responses by HTTP status code.\n *\n * @category filters\n * @since 4.0.0\n */\nexport const filterStatus = /*#__PURE__*/dual(2, (self, f) => transformResponse(self, Effect.flatMap(HttpClientResponse.filterStatus(f))));\n/**\n * Filters responses that return a 2xx status code.\n *\n * @category filters\n * @since 4.0.0\n */\nexport const filterStatusOk = /*#__PURE__*/transformResponse(/*#__PURE__*/Effect.flatMap(HttpClientResponse.filterStatusOk));\n/**\n * Constructs an `HttpClient.With` from a preprocessing function and a postprocessing function.\n *\n * **Details**\n *\n * `execute` applies preprocessing to the request and then passes the resulting request effect to postprocessing.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const makeWith = (postprocess, preprocess) => {\n const self = Object.create(Proto);\n self.preprocess = preprocess;\n self.postprocess = postprocess;\n self.execute = function (request) {\n return postprocess(preprocess(request));\n };\n return self;\n};\nconst Proto = {\n [TypeId]: TypeId,\n pipe() {\n return pipeArguments(this, arguments);\n },\n ...Inspectable.BaseProto,\n toJSON() {\n return {\n _id: \"effect/HttpClient\"\n };\n },\n ... /*#__PURE__*/Object.fromEntries(/*#__PURE__*/HttpMethod.allShort.map(([fullMethod, method]) => [method, function (url, options) {\n return this.execute(HttpClientRequest.make(fullMethod)(url, options));\n }]))\n};\n/**\n * Constructs an `HttpClient` from a low-level request runner.\n *\n * **Details**\n *\n * The runner receives the request, resolved URL, abort signal, and current fiber. The client wrapper handles URL construction failures, tracing and propagation, header redaction, and aborting non-scoped requests on interruption.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const make = f => makeWith(effect => Effect.flatMap(effect, request => Effect.withFiber(fiber => {\n const scopedController = scopedRequests.get(request);\n const controller = scopedController ?? new AbortController();\n const urlResult = UrlParams.makeUrl(request.url, request.urlParams, Option.getOrUndefined(request.hash));\n if (Result.isFailure(urlResult)) {\n return Effect.fail(new Error.HttpClientError({\n reason: new Error.InvalidUrlError({\n request,\n cause: urlResult.failure\n })\n }));\n }\n const url = urlResult.success;\n const tracerDisabled = fiber.getRef(Tracer.DisablePropagation) || fiber.getRef(TracerDisabledWhen)(request);\n if (tracerDisabled) {\n const effect = f(request, url, controller.signal, fiber);\n if (scopedController) return effect;\n return Effect.uninterruptibleMask(restore => Effect.matchCauseEffect(restore(effect), {\n onSuccess(response) {\n responseRegistry.register(response, controller);\n return Effect.succeed(new InterruptibleResponse(response, controller));\n },\n onFailure(cause) {\n if (Cause.hasInterrupts(cause)) {\n controller.abort();\n }\n return Effect.failCause(cause);\n }\n }));\n }\n return Effect.useSpan(fiber.getRef(SpanNameGenerator)(request), {\n kind: \"client\"\n }, span => {\n span.attribute(\"http.request.method\", request.method);\n span.attribute(\"server.address\", url.origin);\n if (url.port !== \"\") {\n span.attribute(\"server.port\", +url.port);\n }\n span.attribute(\"url.full\", url.toString());\n span.attribute(\"url.path\", url.pathname);\n span.attribute(\"url.scheme\", url.protocol.slice(0, -1));\n const query = url.search.slice(1);\n if (query !== \"\") {\n span.attribute(\"url.query\", query);\n }\n const redactedHeaderNames = fiber.getRef(Headers.CurrentRedactedNames);\n const redactedHeaders = Headers.redact(request.headers, redactedHeaderNames);\n for (const name in redactedHeaders) {\n span.attribute(`http.request.header.${name}`, String(redactedHeaders[name]));\n }\n request = fiber.getRef(TracerPropagationEnabled) ? HttpClientRequest.setHeaders(request, TraceContext.toHeaders(span)) : request;\n return Effect.uninterruptibleMask(restore => restore(f(request, url, controller.signal, fiber)).pipe(Effect.withParentSpan(span, {\n captureStackTrace: false\n }), Effect.matchCauseEffect({\n onSuccess: response => {\n span.attribute(\"http.response.status_code\", response.status);\n const redactedHeaders = Headers.redact(response.headers, redactedHeaderNames);\n for (const name in redactedHeaders) {\n span.attribute(`http.response.header.${name}`, String(redactedHeaders[name]));\n }\n if (scopedController) return Effect.succeed(response);\n responseRegistry.register(response, controller);\n return Effect.succeed(new InterruptibleResponse(response, controller));\n },\n onFailure(cause) {\n if (!scopedController && Cause.hasInterrupts(cause)) {\n controller.abort();\n }\n return Effect.failCause(cause);\n }\n })));\n });\n})), Effect.succeed);\n/**\n * Appends a transformation of the request object before sending it.\n *\n * @category mapping & sequencing\n * @since 4.0.0\n */\nexport const mapRequest = /*#__PURE__*/dual(2, (self, f) => makeWith(self.postprocess, request => Effect.map(self.preprocess(request), f)));\n/**\n * Appends an effectful transformation of the request object before sending it.\n *\n * @category mapping & sequencing\n * @since 4.0.0\n */\nexport const mapRequestEffect = /*#__PURE__*/dual(2, (self, f) => makeWith(self.postprocess, request => Effect.flatMap(self.preprocess(request), f)));\n/**\n * Prepends a transformation of the request object before sending it.\n *\n * @category mapping & sequencing\n * @since 4.0.0\n */\nexport const mapRequestInput = /*#__PURE__*/dual(2, (self, f) => makeWith(self.postprocess, request => self.preprocess(f(request))));\n/**\n * Prepends an effectful transformation of the request object before sending it.\n *\n * @category mapping & sequencing\n * @since 4.0.0\n */\nexport const mapRequestInputEffect = /*#__PURE__*/dual(2, (self, f) => makeWith(self.postprocess, request => Effect.flatMap(f(request), self.preprocess)));\n/**\n * Retries the request based on a provided schedule or policy.\n *\n * @category error handling\n * @since 4.0.0\n */\nexport const retry = /*#__PURE__*/dual(2, (self, policy) => transformResponse(self, Effect.retry(policy)));\n/**\n * Retries common transient errors, such as rate limiting, timeouts or network issues.\n *\n * **When to use**\n *\n * Use to focus on retrying errors, transient responses, or both.\n *\n * **Details**\n *\n * Specifying a `while` predicate allows you to consider other errors as\n * transient, and is ignored in \"response-only\" mode.\n *\n * @category error handling\n * @since 4.0.0\n */\nexport const retryTransient = /*#__PURE__*/dual(2, (self, options) => {\n const isOnlySchedule = Schedule.isSchedule(options);\n const retryOn = isOnlySchedule ? \"errors-and-responses\" : options.retryOn ?? \"errors-and-responses\";\n const schedule = isOnlySchedule ? options : options.schedule;\n const passthroughSchedule = schedule && Schedule.passthrough(schedule);\n const times = isOnlySchedule ? undefined : options.times;\n return transformResponse(self, flow(retryOn === \"errors-only\" ? identity : Effect.repeat({\n schedule: passthroughSchedule,\n times,\n while: isTransientResponse\n }), retryOn === \"response-only\" ? identity : Effect.retry({\n while: isOnlySchedule || options.while === undefined ? isTransientError : Predicate.or(isTransientError, options.while),\n schedule,\n times\n })));\n});\n/**\n * Applies request rate limiting using the `RateLimiter` service.\n *\n * **Details**\n *\n * It can update limits by inspecting common rate limit response headers and\n * automatically retries HTTP `429` responses (or `HttpClientError` values\n * wrapping a `429` response) by forcing the retry back through the limiter.\n *\n * @category rate limiting\n * @since 4.0.0\n */\nexport const withRateLimiter = /*#__PURE__*/dual(2, (self, options) => {\n const initialState = {\n initial: true,\n limit: options.limit,\n window: Duration.max(Duration.fromInputUnsafe(options.window), Duration.millis(1))\n };\n const states = new Map();\n const keyOption = options.key;\n const resolveKey = typeof keyOption === \"function\" ? keyOption : constant(keyOption);\n const tokensOption = options.tokens;\n const resolveTokens = typeof tokensOption === \"function\" ? tokensOption : constant(tokensOption ?? 1);\n const getState = key => {\n const current = states.get(key);\n if (current !== undefined) {\n return current;\n }\n states.set(key, initialState);\n return initialState;\n };\n const onResponse = options.disableResponseInspection ? undefined : (clock, key, headers, tokens) => {\n const current = getState(key);\n const next = parseRateLimiterState(current, clock, headers, tokens);\n if (next.limit !== current.limit || !Duration.equals(next.window, current.window)) {\n states.set(key, next);\n }\n };\n return transform(self, function loop(effect, request) {\n const fiber = Fiber.getCurrent();\n const clock = fiber.getRef(Clock);\n const key = resolveKey(request);\n const tokens = Math.max(resolveTokens(request), 1);\n const current = getState(key);\n function retry(response) {\n if (options.disableResponseInspection) return loop(effect, request);\n const retryAfter = parseRetryAfter(clock, getHeader(response.headers, \"retry-after\"));\n return retryAfter ? Effect.flatMap(Effect.sleep(retryAfter), () => loop(effect, request)) : loop(effect, request);\n }\n return Effect.flatMap(options.limiter.consume({\n algorithm: options.algorithm,\n onExceeded: \"delay\",\n key,\n limit: current.limit,\n window: current.window,\n tokens\n }), ({\n delay\n }) => {\n const run = Effect.matchEffect(effect, {\n onSuccess(response) {\n onResponse?.(clock, key, response.headers, tokens);\n if (response.status !== 429) return Effect.succeed(response);\n return retry(response);\n },\n onFailure(error) {\n if (isTooManyRequestsHttpClientError(error)) {\n onResponse?.(clock, key, error.reason.response.headers, tokens);\n return retry(error.reason.response);\n }\n return Effect.fail(error);\n }\n });\n return Duration.isZero(delay) ? run : Effect.delay(run, delay);\n });\n });\n});\nconst parseRateLimiterState = (state, clock, headers, tokens) => {\n const limit = parseRateLimitLimit(state, headers, tokens) ?? state.limit;\n const window = parseRateLimitWindow(clock, headers) ?? state.window;\n if (limit === state.limit && Duration.equals(window, state.window)) {\n return state;\n }\n return {\n limit,\n window,\n initial: false\n };\n};\nconst parseRateLimitLimit = (state, headers, tokens) => {\n const raw = getHeader(headers, \"ratelimit-limit\", \"x-ratelimit-limit\");\n const value = parseNumberHeader(raw);\n if (value !== undefined && value > 0) {\n return value;\n }\n const remaining = parseRateLimitRemaining(headers);\n if (remaining === undefined) {\n return undefined;\n }\n return state.initial ? remaining + tokens : Math.max(remaining + tokens, state.limit);\n};\nconst parseRateLimitRemaining = headers => {\n const raw = getHeader(headers, \"ratelimit-remaining\", \"x-ratelimit-remaining\");\n const value = parseNumberHeader(raw);\n return value !== undefined && value >= 0 ? value : undefined;\n};\nconst parseRateLimitWindow = (clock, headers) => {\n const retryAfter = parseRetryAfter(clock, getHeader(headers, \"retry-after\"));\n if (retryAfter !== undefined) {\n return retryAfter;\n }\n const resetAfter = parseResetAfter(getHeader(headers, \"ratelimit-reset-after\", \"x-ratelimit-reset-after\"));\n if (resetAfter !== undefined) {\n return resetAfter;\n }\n return parseResetHeader(clock, getHeader(headers, \"ratelimit-reset\", \"x-ratelimit-reset\"));\n};\nconst parseRetryAfter = (clock, value) => {\n if (value === undefined) {\n return undefined;\n }\n const numeric = parseNumberHeader(value);\n if (numeric !== undefined) {\n return Duration.max(Duration.seconds(numeric), Duration.millis(1));\n }\n const parsedDate = Date.parse(value);\n if (Number.isNaN(parsedDate)) {\n return undefined;\n }\n const millis = parsedDate - clock.currentTimeMillisUnsafe();\n if (millis <= 0) {\n return Duration.millis(1);\n }\n return Duration.millis(millis);\n};\nconst parseResetAfter = value => {\n const numeric = parseNumberHeader(value);\n if (numeric === undefined || numeric <= 0) {\n return undefined;\n }\n return Duration.max(Duration.seconds(numeric), Duration.millis(1));\n};\nconst parseResetHeader = (clock, value) => {\n const numeric = parseNumberHeader(value);\n if (numeric === undefined || numeric <= 0) {\n return undefined;\n }\n const nowMillis = clock.currentTimeMillisUnsafe();\n if (numeric > 1_000_000_000_000) {\n return Duration.millis(Math.max(numeric - nowMillis, 1));\n }\n if (numeric > 1_000_000_000) {\n return Duration.millis(Math.max(numeric * 1_000 - nowMillis, 1));\n }\n return Duration.max(Duration.seconds(numeric), Duration.millis(1));\n};\nconst parseNumberHeader = value => {\n if (value === undefined) {\n return undefined;\n }\n const match = /-?\\d+(?:\\.\\d+)?/.exec(value);\n if (match === null) {\n return undefined;\n }\n const parsed = Number(match[0]);\n return Number.isFinite(parsed) ? parsed : undefined;\n};\nconst getHeader = (headers, ...keys) => {\n for (let i = 0; i < keys.length; i++) {\n const value = headers[keys[i]];\n if (value !== undefined) {\n return value;\n }\n }\n return undefined;\n};\n/**\n * Performs an additional effect after a successful request.\n *\n * @category mapping & sequencing\n * @since 4.0.0\n */\nexport const tap = /*#__PURE__*/dual(2, (self, f) => transformResponse(self, Effect.tap(f)));\n/**\n * Performs an additional effect after an unsuccessful request.\n *\n * @category mapping & sequencing\n * @since 4.0.0\n */\nexport const tapError = /*#__PURE__*/dual(2, (self, f) => transformResponse(self, Effect.tapError(f)));\n/**\n * Performs an additional effect on the request before sending it.\n *\n * @category mapping & sequencing\n * @since 4.0.0\n */\nexport const tapRequest = /*#__PURE__*/dual(2, (self, f) => makeWith(self.postprocess, request => Effect.tap(self.preprocess(request), f)));\n/**\n * Adds a `Ref` of cookies to the client for handling cookies across requests.\n *\n * **When to use**\n *\n * Use to add shared cookie storage to a client so response cookies are retained\n * and sent by later requests.\n *\n * @category cookies\n * @since 4.0.0\n */\nexport const withCookiesRef = /*#__PURE__*/dual(2, (self, ref) => makeWith(request => Effect.tap(self.postprocess(request), response => Ref.update(ref, cookies => Cookies.merge(cookies, response.cookies))), request => Effect.flatMap(self.preprocess(request), request => Effect.map(Ref.get(ref), cookies => Cookies.isEmpty(cookies) ? request : HttpClientRequest.setHeader(request, \"cookie\", Cookies.toCookieHeader(cookies))))));\n/**\n * Attaches the lifetime of the `HttpClientRequest` to a `Scope`.\n *\n * @category resource management\n * @since 4.0.0\n */\nexport const withScope = self => transform(self, (effect, request) => {\n const controller = new AbortController();\n scopedRequests.set(request, controller);\n return Effect.andThen(Effect.addFinalizer(() => Effect.sync(() => controller.abort())), effect);\n});\n/**\n * Enables following HTTP redirects up to a specified number of times.\n *\n * @category redirects\n * @since 4.0.0\n */\nexport const followRedirects = /*#__PURE__*/dual(args => isHttpClient(args[0]), (self, maxRedirects) => makeWith(request => {\n const loop = (request, redirects) => Effect.flatMap(self.postprocess(Effect.succeed(request)), response => response.status >= 300 && response.status < 400 && response.headers.location && redirects < (maxRedirects ?? 10) ? loop(HttpClientRequest.setUrl(request, new URL(response.headers.location, response.request.url)), redirects + 1) : Effect.succeed(response));\n return Effect.flatMap(request, request => loop(request, 0));\n}, self.preprocess));\n/**\n * Context reference for a predicate that disables client-side tracing for matching outgoing requests.\n *\n * @category references\n * @since 4.0.0\n */\nexport const TracerDisabledWhen = /*#__PURE__*/Context.Reference(\"effect/http/HttpClient/TracerDisabledWhen\", {\n defaultValue: () => constFalse\n});\n/**\n * Context reference that controls whether outgoing client spans are propagated to request headers.\n *\n * @category references\n * @since 4.0.0\n */\nexport const TracerPropagationEnabled = /*#__PURE__*/Context.Reference(\"effect/HttpClient/TracerPropagationEnabled\", {\n defaultValue: constTrue\n});\n/**\n * Context reference for generating the span name used for outgoing client request spans.\n *\n * @category references\n * @since 4.0.0\n */\nexport const SpanNameGenerator = /*#__PURE__*/Context.Reference(\"effect/http/HttpClient/SpanNameGenerator\", {\n defaultValue: () => request => `http.client ${request.method}`\n});\n/**\n * Creates an `HttpClient` layer and merges the layer construction context into client response effects.\n *\n * @category layers\n * @since 4.0.0\n */\nexport const layerMergedContext = effect => Layer.effect(HttpClient)(Effect.contextWith(context => Effect.map(effect, client => transformResponse(client, Effect.updateContext(input => Context.merge(context, input))))));\n// -----------------------------------------------------------------------------\n// internal\n// -----------------------------------------------------------------------------\nconst responseRegistry = /*#__PURE__*/(() => {\n if (\"FinalizationRegistry\" in globalThis && globalThis.FinalizationRegistry) {\n const registry = /*#__PURE__*/new FinalizationRegistry(controller => {\n controller.abort();\n });\n return {\n register(response, controller) {\n registry.register(response, controller, response);\n },\n unregister(response) {\n registry.unregister(response);\n }\n };\n }\n const timers = /*#__PURE__*/new Map();\n return {\n register(response, controller) {\n timers.set(response, setTimeout(() => controller.abort(), 5000));\n },\n unregister(response) {\n const timer = timers.get(response);\n if (timer === undefined) return;\n clearTimeout(timer);\n timers.delete(response);\n }\n };\n})();\nconst scopedRequests = /*#__PURE__*/new WeakMap();\nclass InterruptibleResponse {\n original;\n controller;\n constructor(original, controller) {\n this.original = original;\n this.controller = controller;\n }\n [HttpClientResponse.TypeId] = HttpClientResponse.TypeId;\n [HttpIncomingMessage.TypeId] = HttpIncomingMessage.TypeId;\n applyInterrupt(effect) {\n return Effect.suspend(() => {\n responseRegistry.unregister(this.original);\n return Effect.onInterrupt(effect, () => Effect.sync(() => {\n this.controller.abort();\n }));\n });\n }\n get request() {\n return this.original.request;\n }\n get status() {\n return this.original.status;\n }\n get headers() {\n return this.original.headers;\n }\n get cookies() {\n return this.original.cookies;\n }\n get remoteAddress() {\n return this.original.remoteAddress;\n }\n get formData() {\n return this.applyInterrupt(this.original.formData);\n }\n get text() {\n return this.applyInterrupt(this.original.text);\n }\n get json() {\n return this.applyInterrupt(this.original.json);\n }\n get urlParamsBody() {\n return this.applyInterrupt(this.original.urlParamsBody);\n }\n get arrayBuffer() {\n return this.applyInterrupt(this.original.arrayBuffer);\n }\n get stream() {\n return Stream.suspend(() => {\n responseRegistry.unregister(this.original);\n return Stream.ensuring(this.original.stream, Effect.sync(() => {\n this.controller.abort();\n }));\n });\n }\n toJSON() {\n return this.original.toJSON();\n }\n [Inspectable.NodeInspectSymbol]() {\n return this.original[Inspectable.NodeInspectSymbol]();\n }\n pipe() {\n return pipeArguments(this, arguments);\n }\n}\nconst isTransientError = error => Cause.isTimeoutError(error) || isTransientHttpError(error);\nconst isTransientHttpError = error => Error.isHttpClientError(error) && (error.reason._tag === \"TransportError\" || error.reason._tag === \"StatusCodeError\" && isTransientResponse(error.reason.response));\nconst isTooManyRequestsHttpClientError = error => Error.isHttpClientError(error) && error.reason._tag === \"StatusCodeError\" && error.reason.response.status === 429;\nconst isTransientResponse = response => response.status === 408 || response.status === 429 || response.status === 500 || response.status === 502 || response.status === 503 || response.status === 504;\n//# sourceMappingURL=HttpClient.js.map",
120
- "import * as Effect from \"./Effect.js\";\nimport * as effect from \"./internal/effect.js\";\nimport * as references from \"./internal/references.js\";\nimport * as Layer from \"./Layer.js\";\nimport * as LogLevel from \"./LogLevel.js\";\n/**\n * Runtime type identifier attached to `ErrorReporter` values.\n *\n * **Details**\n *\n * This marker is part of the runtime representation of `ErrorReporter`\n * implementations. Most code should create reporters with `make` and register\n * them with `layer`.\n *\n * @category type IDs\n * @since 4.0.0\n */\nexport const TypeId = \"~effect/ErrorReporter\";\n/**\n * Creates an `ErrorReporter` from a callback.\n *\n * **When to use**\n *\n * Use to define how reported failures are forwarded to a logging, monitoring,\n * or error-tracking backend.\n *\n * **Details**\n *\n * The returned reporter automatically deduplicates causes and individual\n * errors (the same object is never reported twice), skips interruptions,\n * and resolves the `ignore`, `severity`, and `attributes` annotations on\n * each error before invoking your callback.\n *\n * **Example** (Forwarding errors to the console)\n *\n * ```ts\n * import { ErrorReporter } from \"effect\"\n *\n * // Forward every failure to the console\n * const consoleReporter = ErrorReporter.make(\n * ({ error, severity, attributes }) => {\n * console.error(`[${severity}]`, error.message, attributes)\n * }\n * )\n * ```\n *\n * @see {@link layer} for registering reporters in the environment\n * @see {@link report} for manually reporting a `Cause`\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const make = report => {\n const reported = new WeakSet();\n return {\n [TypeId]: TypeId,\n report(options) {\n if (reported.has(options.cause)) return;\n reported.add(options.cause);\n for (let i = 0; i < options.cause.reasons.length; i++) {\n const reason = options.cause.reasons[i];\n if (reason._tag === \"Interrupt\") continue;\n const original = reason._tag === \"Fail\" ? reason.error : reason.defect;\n const isObject = typeof original === \"object\" && original !== null;\n if (isObject) {\n if (reported.has(original)) continue;\n reported.add(original);\n }\n if (isIgnored(original)) continue;\n const pretty = effect.causePrettyError(original, reason.annotations);\n report({\n ...options,\n error: pretty,\n severity: isObject ? getSeverity(original) : \"Info\",\n attributes: isObject ? getAttributes(original) : emptyAttributes\n });\n }\n }\n };\n};\n/**\n * Context reference that holds the set of active error reporters for the\n * current fiber. Defaults to an empty set (no reporting).\n *\n * **When to use**\n *\n * Use when low-level code needs to read or replace the current set of reporters\n * directly.\n *\n * @category references\n * @since 4.0.0\n */\nexport const CurrentErrorReporters = references.CurrentErrorReporters;\n/**\n * Creates a `Layer` that registers one or more `ErrorReporter`s.\n *\n * **When to use**\n *\n * Use to provide one or more error reporters to effects that perform error\n * reporting.\n *\n * **Details**\n *\n * Reporters can be plain `ErrorReporter` values or effectful\n * `Effect<ErrorReporter>` values that are resolved when the layer is built. By\n * default the provided reporters **replace** any previously registered\n * reporters. Set `mergeWithExisting: true` to add them alongside existing ones.\n *\n * **Example** (Providing error reporters)\n *\n * ```ts\n * import { Effect, ErrorReporter } from \"effect\"\n *\n * const consoleReporter = ErrorReporter.make(({ error, severity }) => {\n * console.error(`[${severity}]`, error.message)\n * })\n *\n * const metricsReporter = ErrorReporter.make(({ severity }) => {\n * // increment an error counter by severity\n * })\n *\n * // Replace all existing reporters\n * const ReporterLive = ErrorReporter.layer([\n * consoleReporter,\n * metricsReporter\n * ])\n *\n * // Add to existing reporters instead of replacing\n * const ReporterMerged = ErrorReporter.layer(\n * [metricsReporter],\n * { mergeWithExisting: true }\n * )\n *\n * const program = Effect.fail(\"boom\").pipe(\n * Effect.withErrorReporting,\n * Effect.provide(ReporterLive)\n * )\n * ```\n *\n * @see {@link make} for creating an `ErrorReporter` from a callback\n * @see {@link CurrentErrorReporters} for low-level access to the current reporters\n *\n * @category layers\n * @since 4.0.0\n */\nexport const layer = (reporters, options) => Layer.effect(CurrentErrorReporters, Effect.withFiber(Effect.fnUntraced(function* (fiber) {\n const currentReporters = new Set(options?.mergeWithExisting === true ? fiber.getRef(references.CurrentErrorReporters) : []);\n for (const reporter of reporters) {\n currentReporters.add(Effect.isEffect(reporter) ? yield* reporter : reporter);\n }\n return currentReporters;\n})));\n/**\n * Runs all registered error reporters on the current fiber for a `Cause`.\n *\n * **When to use**\n *\n * Use to report a failure for observability without failing the current fiber.\n *\n * **Example** (Reporting a cause manually)\n *\n * ```ts\n * import { Cause, Effect, ErrorReporter } from \"effect\"\n *\n * // Log the cause for monitoring, then continue with a fallback\n * const program = Effect.gen(function*() {\n * const cause = Cause.fail(\"something went wrong\")\n * yield* ErrorReporter.report(cause)\n * return \"fallback value\"\n * })\n * ```\n *\n * @category Reporting\n * @since 4.0.0\n */\nexport const report = cause => Effect.withFiber(fiber => {\n effect.reportCauseUnsafe(fiber, cause);\n return Effect.void;\n});\n/**\n * Defines the runtime property key used to mark an object error as ignored by error\n * reporting.\n *\n * **When to use**\n *\n * Use to suppress reporting for expected object errors, such as HTTP 404\n * responses.\n *\n * **Details**\n *\n * Set `error[ErrorReporter.ignore]` to `true` to prevent the error from being\n * forwarded to reporters. This is useful for expected failures such as HTTP 404\n * responses.\n *\n * **Example** (Marking errors as ignored)\n *\n * ```ts\n * import { Data, ErrorReporter } from \"effect\"\n *\n * class NotFoundError extends Data.TaggedError(\"NotFoundError\")<{}> {\n * readonly [ErrorReporter.ignore] = true\n * }\n * ```\n *\n * @see {@link isIgnored} for checking whether a value carries this annotation\n * @see {@link Reportable} for the annotation contract recognized on object\n * errors\n *\n * @category annotations\n * @since 4.0.0\n */\nexport const ignore = \"~effect/ErrorReporter/ignore\";\n/**\n * Returns `true` if the given value has the `ErrorReporter.ignore` annotation\n * set to `true`.\n *\n * **When to use**\n *\n * Use to check whether an error value is annotated to be skipped before\n * forwarding it to error reporting code.\n *\n * @see {@link ignore} for the annotation key this predicate reads\n *\n * @category annotations\n * @since 4.0.0\n */\nexport const isIgnored = u => typeof u === \"object\" && u !== null && ignore in u && u[ignore] === true;\n/**\n * Defines the runtime property key used to override the severity level of an object error.\n *\n * **When to use**\n *\n * Use to annotate object errors with the severity reporter callbacks should\n * receive.\n *\n * **Details**\n *\n * Set `error[ErrorReporter.severity]` to a valid `LogLevel.Severity` value.\n * Missing or invalid values fall back to `\"Info\"`.\n *\n * **Example** (Setting error severity annotations)\n *\n * ```ts\n * import { Data, ErrorReporter } from \"effect\"\n *\n * class DeprecationWarning extends Data.TaggedError(\"DeprecationWarning\")<{}> {\n * readonly [ErrorReporter.severity] = \"Warn\" as const\n * }\n * ```\n *\n * @see {@link getSeverity} for reading the severity stored under this key\n * @see {@link Reportable} for the annotation contract recognized on object\n * errors\n *\n * @category annotations\n * @since 4.0.0\n */\nexport const severity = \"~effect/ErrorReporter/severity\";\n/**\n * Reads the `ErrorReporter.severity` annotation from an error object,\n * falling back to `\"Info\"` when the annotation is unset or invalid.\n *\n * **When to use**\n *\n * Use to inspect the severity that reporter callbacks will receive for an\n * object error.\n *\n * @see {@link severity} for the annotation key used to override severity\n * @see {@link Reportable} for the annotation properties recognized on object errors\n *\n * @category annotations\n * @since 4.0.0\n */\nexport const getSeverity = error => {\n if (severity in error && LogLevel.values.includes(error[severity])) {\n return error[severity];\n }\n return \"Info\";\n};\n/**\n * Defines the runtime property key used to attach extra key/value metadata to an object\n * error report.\n *\n * **When to use**\n *\n * Use to attach domain metadata to object errors so reporter callbacks receive\n * it with the reported failure.\n *\n * **Details**\n *\n * Set `error[ErrorReporter.attributes]` to a record of metadata that should be\n * forwarded to reporters alongside the error.\n *\n * **Example** (Setting error attributes)\n *\n * ```ts\n * import { Data, ErrorReporter } from \"effect\"\n *\n * class PaymentError extends Data.TaggedError(\"PaymentError\")<{\n * readonly orderId: string\n * }> {\n * readonly [ErrorReporter.attributes] = {\n * orderId: this.orderId\n * }\n * }\n * ```\n *\n * @see {@link ignore} for suppressing reports for expected object errors\n * @see {@link severity} for overriding reporter severity\n * @see {@link getAttributes} for reading the metadata stored under this key\n * @see {@link Reportable} for the annotation contract recognized on object\n * errors\n *\n * @category annotations\n * @since 4.0.0\n */\nexport const attributes = \"~effect/ErrorReporter/attributes\";\n/**\n * Reads the `ErrorReporter.attributes` annotation from an error object,\n * returning an empty record when unset.\n *\n * **When to use**\n *\n * Use to inspect the attributes that reporter callbacks will receive for an\n * object error.\n *\n * **Details**\n *\n * Returns the value stored under `ErrorReporter.attributes`, or the module's\n * shared empty record when the annotation is absent.\n *\n * **Gotchas**\n *\n * The annotation value is returned as-is; this helper does not validate or\n * clone it.\n *\n * @see {@link attributes} for the annotation key used to attach metadata\n * @see {@link Reportable} for the annotation properties recognized on object errors\n *\n * @category annotations\n * @since 4.0.0\n */\nexport const getAttributes = error => {\n return attributes in error ? error[attributes] : emptyAttributes;\n};\nconst emptyAttributes = {};\n//# sourceMappingURL=ErrorReporter.js.map",
121
- "/**\n * Effect-aware template literal rendering for HTTP response text.\n *\n * This module backs HTTP response helpers that accept template tags, especially\n * HTML responses assembled from plain values, optional values, effects, and\n * streams. It keeps template interpolation in the Effect type system so dynamic\n * fragments can contribute errors and service requirements to the final\n * response-producing program.\n *\n * **Mental model**\n *\n * `make` evaluates effectful interpolations and returns one complete string.\n * `stream` emits static template text together with effect and stream\n * interpolations as a `Stream`. Plain primitive values are converted to text,\n * arrays are concatenated without separators, and `Option.none`, `null`, and\n * `undefined` render as empty text.\n *\n * **Common tasks**\n *\n * Use `make` when the entire rendered body should be available before creating\n * the response. Use `stream` when a response can be emitted incrementally, for\n * example when part of an HTML page is produced by an existing stream.\n *\n * **Gotchas**\n *\n * Templates do not escape HTML, encode bytes, set content types, or compute\n * content lengths. Escape or encode untrusted values before interpolation and\n * choose the response constructor that matches the rendered body.\n *\n * @since 4.0.0\n */\nimport * as Effect from \"../../Effect.js\";\nimport * as Exit from \"../../Exit.js\";\nimport * as Option from \"../../Option.js\";\nimport * as Stream from \"../../Stream.js\";\n/**\n * Creates an effectful string from a template literal.\n *\n * **Details**\n *\n * Primitive and `Option` interpolations are rendered immediately. Effect\n * interpolations are evaluated and rendered before the final string is produced.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport function make(strings, ...args) {\n const argsLength = args.length;\n const values = new Array(argsLength);\n const effects = [];\n for (let i = 0; i < argsLength; i++) {\n const arg = args[i];\n if (Option.isOption(arg)) {\n values[i] = arg._tag === \"Some\" ? primitiveToString(arg.value) : \"\";\n } else if (isSuccess(arg)) {\n values[i] = primitiveToString(arg.value);\n } else if (Effect.isEffect(arg)) {\n effects.push([i, arg]);\n } else {\n values[i] = primitiveToString(arg);\n }\n }\n if (effects.length === 0) {\n return Effect.succeed(consolidate(strings, values));\n }\n return Effect.map(Effect.forEach(effects, ([index, effect]) => Effect.tap(effect, value => Effect.sync(() => {\n values[index] = primitiveToString(value);\n })), {\n concurrency: \"inherit\",\n discard: true\n }), _ => consolidate(strings, values));\n}\n/**\n * Creates a stream of strings from a template literal.\n *\n * **Details**\n *\n * Static text is emitted with interpolated values. Effect interpolations are\n * evaluated as stream chunks, and stream interpolations are flattened into the\n * output.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport function stream(strings, ...args) {\n const chunks = [];\n let buffer = \"\";\n for (let i = 0, len = args.length; i < len; i++) {\n buffer += strings[i];\n const arg = args[i];\n if (Option.isOption(arg)) {\n buffer += arg._tag === \"Some\" ? primitiveToString(arg.value) : \"\";\n } else if (isSuccess(arg)) {\n buffer += primitiveToString(arg.value);\n } else if (Effect.isEffect(arg)) {\n if (buffer.length > 0) {\n chunks.push(buffer);\n buffer = \"\";\n }\n chunks.push(Effect.map(arg, primitiveToString));\n } else if (Stream.isStream(arg)) {\n if (buffer.length > 0) {\n chunks.push(buffer);\n buffer = \"\";\n }\n chunks.push(Stream.map(arg, primitiveToString));\n } else {\n buffer += primitiveToString(arg);\n }\n }\n buffer += strings[strings.length - 1];\n if (buffer.length > 0) {\n chunks.push(buffer);\n buffer = \"\";\n }\n return Stream.flatMap(Stream.fromIterable(chunks), chunk => typeof chunk === \"string\" ? Stream.succeed(chunk) : Effect.isEffect(chunk) ? Stream.fromEffect(chunk) : chunk, {\n concurrency: \"unbounded\"\n });\n}\nfunction primitiveToString(value) {\n if (Array.isArray(value)) {\n return value.map(primitiveToString).join(\"\");\n }\n switch (typeof value) {\n case \"string\":\n {\n return value;\n }\n case \"number\":\n case \"bigint\":\n {\n return value.toString();\n }\n case \"boolean\":\n {\n return value ? \"true\" : \"false\";\n }\n default:\n {\n return \"\";\n }\n }\n}\nfunction consolidate(strings, values) {\n let out = \"\";\n for (let i = 0, len = values.length; i < len; i++) {\n out += strings[i];\n out += values[i];\n }\n return out + strings[strings.length - 1];\n}\nfunction isSuccess(u) {\n return Exit.isExit(u) && u._tag === \"Success\";\n}\n//# sourceMappingURL=Template.js.map",
122
- "/**\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",
123
- "/**\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",
124
- "/**\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",
125
- "/**\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",
126
- "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",
127
- "/**\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",
128
- "/**\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",
129
- "/**\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",
130
- "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",
131
- "// taken from https://github.com/fastify/fast-content-type-parse\n// under the MIT license\n/**\n * RegExp to match *( \";\" parameter ) in RFC 7231 sec 3.1.1.1\n *\n * parameter = token \"=\" ( token / quoted-string )\n * token = 1*tchar\n * tchar = \"!\" / \"#\" / \"$\" / \"%\" / \"&\" / \"'\" / \"*\"\n * / \"+\" / \"-\" / \".\" / \"^\" / \"_\" / \"`\" / \"|\" / \"~\"\n * / DIGIT / ALPHA\n * ; any VCHAR, except delimiters\n * quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE\n * qdtext = HTAB / SP / %x21 / %x23-5B / %x5D-7E / obs-text\n * obs-text = %x80-FF\n * quoted-pair = \"\\\" ( HTAB / SP / VCHAR / obs-text )\n */\nconst paramRE = /; *([!#$%&'*+.^\\w`|~-]+)=(\"(?:[\\v\\u0020\\u0021\\u0023-\\u005b\\u005d-\\u007e\\u0080-\\u00ff]|\\\\[\\v\\u0020-\\u00ff])*\"|[!#$%&'*+.^\\w`|~-]+) */gu;\n/**\n * RegExp to match quoted-pair in RFC 7230 sec 3.2.6\n *\n * quoted-pair = \"\\\" ( HTAB / SP / VCHAR / obs-text )\n * obs-text = %x80-FF\n */\nconst quotedPairRE = /\\\\([\\v\\u0020-\\u00ff])/gu;\n/**\n * RegExp to match type in RFC 7231 sec 3.1.1.1\n *\n * media-type = type \"/\" subtype\n * type = token\n * subtype = token\n */\nconst mediaTypeRE = /^[!#$%&'*+.^\\w|~-]+\\/[!#$%&'*+.^\\w|~-]+$/u;\nconst mediaTypeRENoSlash = /^[!#$%&'*+.^\\w|~-]+$/u;\n// default ContentType to prevent repeated object creation\nconst defaultContentType = {\n value: \"\",\n parameters: /*#__PURE__*/Object.create(null)\n};\nexport function parse(header, withoutSlash = false) {\n if (typeof header !== \"string\") {\n return defaultContentType;\n }\n let index = header.indexOf(\";\");\n const type = index !== -1 ? header.slice(0, index).trim() : header.trim();\n const mediaRE = withoutSlash ? mediaTypeRENoSlash : mediaTypeRE;\n if (mediaRE.test(type) === false) {\n return defaultContentType;\n }\n const result = {\n value: type.toLowerCase(),\n parameters: Object.create(null)\n };\n // parse parameters\n if (index === -1) {\n return result;\n }\n let key;\n let match;\n let value;\n paramRE.lastIndex = index;\n while (match = paramRE.exec(header)) {\n if (match.index !== index) {\n return defaultContentType;\n }\n index += match[0].length;\n key = match[1].toLowerCase();\n value = match[2];\n if (value[0] === '\"') {\n // remove quotes and escapes\n value = value.slice(1, value.length - 1);\n !withoutSlash && quotedPairRE.test(value) && (value = value.replace(quotedPairRE, \"$1\"));\n }\n result.parameters[key] = value;\n }\n if (index !== header.length) {\n return defaultContentType;\n }\n return result;\n}\n//# sourceMappingURL=contentType.js.map",
132
- "const constMaxPairs = 100;\nconst constMaxSize = 16 * 1024;\nvar State;\n(function (State) {\n State[State[\"key\"] = 0] = \"key\";\n State[State[\"whitespace\"] = 1] = \"whitespace\";\n State[State[\"value\"] = 2] = \"value\";\n})(State || (State = {}));\nconst constContinue = {\n _tag: \"Continue\"\n};\nconst constNameChars = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1];\nconst constValueChars = [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nexport function make() {\n const decoder = new TextDecoder();\n const state = {\n state: State.key,\n headers: Object.create(null),\n key: \"\",\n value: undefined,\n crlf: 0,\n previousChunk: undefined,\n pairs: 0,\n size: 0\n };\n function reset(value) {\n state.state = State.key;\n state.headers = Object.create(null);\n state.key = \"\";\n state.value = undefined;\n state.crlf = 0;\n state.previousChunk = undefined;\n state.pairs = 0;\n state.size = 0;\n return value;\n }\n function concatUint8Array(a, b) {\n const newUint8Array = new Uint8Array(a.length + b.length);\n newUint8Array.set(a);\n newUint8Array.set(b, a.length);\n return newUint8Array;\n }\n function error(reason) {\n return reset({\n _tag: \"Failure\",\n reason,\n headers: state.headers\n });\n }\n return function write(chunk, start) {\n let endOffset = 0;\n let previousCursor;\n if (state.previousChunk !== undefined) {\n endOffset = state.previousChunk.length;\n previousCursor = endOffset;\n const newChunk = new Uint8Array(chunk.length + endOffset);\n newChunk.set(state.previousChunk);\n newChunk.set(chunk, endOffset);\n state.previousChunk = undefined;\n chunk = newChunk;\n }\n const end = chunk.length;\n outer: while (start < end) {\n if (state.state === State.key) {\n let i = start;\n for (; i < end; i++) {\n if (state.size++ > constMaxSize) {\n return error(\"HeaderTooLarge\");\n }\n if (chunk[i] === 58) {\n state.key += decoder.decode(chunk.subarray(start, i)).toLowerCase();\n if (state.key.length === 0) {\n return error(\"InvalidHeaderName\");\n }\n if (chunk[i + 1] === 32 && chunk[i + 2] !== 32 && chunk[i + 2] !== 9) {\n start = i + 2;\n state.state = State.value;\n state.size++;\n } else if (chunk[i + 1] !== 32 && chunk[i + 1] !== 9) {\n start = i + 1;\n state.state = State.value;\n } else {\n start = i + 1;\n state.state = State.whitespace;\n }\n break;\n } else if (constNameChars[chunk[i]] !== 1) {\n return error(\"InvalidHeaderName\");\n }\n }\n if (i === end) {\n state.key += decoder.decode(chunk.subarray(start, end)).toLowerCase();\n return constContinue;\n }\n }\n if (state.state === State.whitespace) {\n for (; start < end; start++) {\n if (state.size++ > constMaxSize) {\n return error(\"HeaderTooLarge\");\n }\n if (chunk[start] !== 32 && chunk[start] !== 9) {\n state.state = State.value;\n break;\n }\n }\n if (start === end) {\n return constContinue;\n }\n }\n if (state.state === State.value) {\n let i = start;\n if (previousCursor !== undefined) {\n i = previousCursor;\n previousCursor = undefined;\n }\n for (; i < end; i++) {\n if (state.size++ > constMaxSize) {\n return error(\"HeaderTooLarge\");\n }\n if (chunk[i] === 13 || state.crlf > 0) {\n let byte = chunk[i];\n if (byte === 13 && state.crlf === 0) {\n state.crlf = 1;\n i++;\n state.size++;\n byte = chunk[i];\n }\n if (byte === 10 && state.crlf === 1) {\n state.crlf = 2;\n i++;\n state.size++;\n byte = chunk[i];\n }\n if (byte === 13 && state.crlf === 2) {\n state.crlf = 3;\n i++;\n state.size++;\n byte = chunk[i];\n }\n if (byte === 10 && state.crlf === 3) {\n state.crlf = 4;\n i++;\n state.size++;\n }\n if (state.crlf < 4 && i >= end) {\n state.previousChunk = chunk.subarray(start);\n return constContinue;\n } else if (state.crlf >= 2) {\n state.value = state.value === undefined ? chunk.subarray(start, i - state.crlf) : concatUint8Array(state.value, chunk.subarray(start, i - state.crlf));\n const value = decoder.decode(state.value);\n if (state.headers[state.key] === undefined) {\n state.headers[state.key] = value;\n } else if (typeof state.headers[state.key] === \"string\") {\n state.headers[state.key] = [state.headers[state.key], value];\n } else {\n ;\n state.headers[state.key].push(value);\n }\n start = i;\n state.size--;\n if (state.crlf !== 4 && state.pairs === constMaxPairs) {\n return error(\"TooManyHeaders\");\n } else if (state.crlf === 3) {\n return error(\"InvalidHeaderValue\");\n } else if (state.crlf === 4) {\n return reset({\n _tag: \"Headers\",\n headers: state.headers,\n endPosition: start - endOffset\n });\n }\n state.pairs++;\n state.key = \"\";\n state.value = undefined;\n state.crlf = 0;\n state.state = State.key;\n continue outer;\n }\n } else if (constValueChars[chunk[i]] !== 1) {\n return error(\"InvalidHeaderValue\");\n }\n }\n if (i === end) {\n state.value = state.value === undefined ? chunk.subarray(start, end) : concatUint8Array(state.value, chunk.subarray(start, end));\n return constContinue;\n }\n }\n }\n if (start > end) {\n state.size += end - start;\n }\n return constContinue;\n };\n}\n//# sourceMappingURL=headers.js.map",
133
- "function makeState(needle_) {\n const needle = new TextEncoder().encode(needle_);\n const needleLength = needle.length;\n const indexes = {};\n for (let i = 0; i < needleLength; i++) {\n const b = needle[i];\n if (indexes[b] === undefined) indexes[b] = [];\n indexes[b].push(i);\n }\n return {\n needle,\n needleLength,\n indexes,\n firstByte: needle[0],\n previousChunk: undefined,\n previousChunkLength: 0,\n matchIndex: 0\n };\n}\nexport function make(needle, callback, seed) {\n const state = makeState(needle);\n if (seed !== undefined) {\n state.previousChunk = seed;\n state.previousChunkLength = seed.length;\n }\n function makeIndexOf() {\n // on node.js use the Buffer api\n if (\"Buffer\" in globalThis && !(\"Bun\" in globalThis || \"Deno\" in globalThis)) {\n return function (chunk, needle, fromIndex) {\n return Buffer.prototype.indexOf.call(chunk, needle, fromIndex);\n };\n }\n const skipTable = new Uint8Array(256).fill(state.needle.length);\n for (let i = 0, lastIndex = state.needle.length - 1; i < lastIndex; ++i) {\n skipTable[state.needle[i]] = lastIndex - i;\n }\n return function (chunk, needle, fromIndex) {\n const lengthTotal = chunk.length;\n let i = fromIndex + state.needleLength - 1;\n while (i < lengthTotal) {\n for (let j = state.needleLength - 1, k = i; j >= 0 && chunk[k] === needle[j]; j--, k--) {\n if (j === 0) return k;\n }\n i += skipTable[chunk[i]];\n }\n return -1;\n };\n }\n const indexOf = makeIndexOf();\n function write(chunk) {\n let chunkLength = chunk.length;\n if (state.previousChunk !== undefined) {\n const newChunk = new Uint8Array(state.previousChunkLength + chunkLength);\n newChunk.set(state.previousChunk);\n newChunk.set(chunk, state.previousChunkLength);\n chunk = newChunk;\n chunkLength = state.previousChunkLength + chunkLength;\n state.previousChunk = undefined;\n }\n if (chunkLength < state.needleLength) {\n state.previousChunk = chunk;\n state.previousChunkLength = chunkLength;\n return;\n }\n let pos = 0;\n while (pos < chunkLength) {\n const match = indexOf(chunk, state.needle, pos);\n if (match > -1) {\n if (match > pos) {\n callback(state.matchIndex, chunk.subarray(pos, match));\n }\n state.matchIndex += 1;\n pos = match + state.needleLength;\n continue;\n } else if (chunk[chunkLength - 1] in state.indexes) {\n const indexes = state.indexes[chunk[chunkLength - 1]];\n let earliestIndex = -1;\n for (let i = 0, len = indexes.length; i < len; i++) {\n const index = indexes[i];\n if (chunk[chunkLength - 1 - index] === state.firstByte && i > earliestIndex) {\n earliestIndex = index;\n }\n }\n if (earliestIndex === -1) {\n if (pos === 0) {\n callback(state.matchIndex, chunk);\n } else {\n callback(state.matchIndex, chunk.subarray(pos));\n }\n } else {\n if (chunkLength - 1 - earliestIndex > pos) {\n callback(state.matchIndex, chunk.subarray(pos, chunkLength - 1 - earliestIndex));\n }\n state.previousChunk = chunk.subarray(chunkLength - 1 - earliestIndex);\n state.previousChunkLength = earliestIndex + 1;\n }\n } else if (pos === 0) {\n callback(state.matchIndex, chunk);\n } else {\n callback(state.matchIndex, chunk.subarray(pos));\n }\n break;\n }\n }\n function end() {\n if (state.previousChunk !== undefined && state.previousChunk !== seed) {\n callback(state.matchIndex, state.previousChunk);\n }\n state.previousChunk = seed;\n state.previousChunkLength = seed?.length ?? 0;\n state.matchIndex = 0;\n }\n return {\n write,\n end\n };\n}\n//# sourceMappingURL=search.js.map",
134
- "import * as CT from \"./contentType.js\";\nimport * as HP from \"./headers.js\";\nimport * as Search from \"./search.js\";\nvar State;\n(function (State) {\n State[State[\"headers\"] = 0] = \"headers\";\n State[State[\"body\"] = 1] = \"body\";\n})(State || (State = {}));\nconst errInvalidDisposition = {\n _tag: \"InvalidDisposition\"\n};\nconst errEndNotReached = {\n _tag: \"EndNotReached\"\n};\nconst errMaxParts = {\n _tag: \"ReachedLimit\",\n limit: \"MaxParts\"\n};\nconst errMaxTotalSize = {\n _tag: \"ReachedLimit\",\n limit: \"MaxTotalSize\"\n};\nconst errMaxPartSize = {\n _tag: \"ReachedLimit\",\n limit: \"MaxPartSize\"\n};\nconst errMaxFieldSize = {\n _tag: \"ReachedLimit\",\n limit: \"MaxFieldSize\"\n};\nconst constCR = /*#__PURE__*/new TextEncoder().encode(\"\\r\\n\");\nexport function defaultIsFile(info) {\n return info.filename !== undefined || info.contentType === \"application/octet-stream\";\n}\nfunction parseBoundary(headers) {\n const contentType = CT.parse(headers[\"content-type\"]);\n return contentType.parameters.boundary;\n}\nfunction noopOnChunk(_chunk) {}\nexport function make({\n headers,\n onFile: onPart,\n onField,\n onError,\n onDone,\n isFile = defaultIsFile,\n maxParts = Infinity,\n maxTotalSize = Infinity,\n maxPartSize = Infinity,\n maxFieldSize = 1024 * 1024\n}) {\n const boundary = parseBoundary(headers);\n if (boundary === undefined) {\n onError({\n _tag: \"InvalidBoundary\"\n });\n return {\n write: noopOnChunk,\n end() {}\n };\n }\n const state = {\n state: State.headers,\n index: 0,\n parts: 0,\n onChunk: noopOnChunk,\n info: undefined,\n headerSkip: 0,\n partSize: 0,\n totalSize: 0,\n isFile: false,\n fieldChunks: [],\n fieldSize: 0\n };\n function skipBody() {\n state.state = State.body;\n state.isFile = true;\n state.onChunk = noopOnChunk;\n }\n const headerParser = HP.make();\n const split = Search.make(`\\r\\n--${boundary}`, function (index, chunk) {\n if (index === 0) {\n // data before the first boundary\n skipBody();\n return;\n } else if (index !== state.index) {\n if (state.index > 0) {\n if (state.isFile) {\n state.onChunk(null);\n state.partSize = 0;\n } else {\n if (state.fieldChunks.length === 1) {\n onField(state.info, state.fieldChunks[0]);\n } else {\n const buf = new Uint8Array(state.fieldSize);\n let offset = 0;\n for (let i = 0; i < state.fieldChunks.length; i++) {\n const chunk = state.fieldChunks[i];\n buf.set(chunk, offset);\n offset += chunk.length;\n }\n onField(state.info, buf);\n }\n state.fieldSize = 0;\n state.fieldChunks = [];\n }\n }\n state.state = State.headers;\n state.index = index;\n state.headerSkip = 2; // skip the first \\r\\n\n // trailing --\n if (chunk[0] === 45 && chunk[1] === 45) {\n return onDone();\n }\n state.parts++;\n if (state.parts > maxParts) {\n onError(errMaxParts);\n }\n }\n if ((state.partSize += chunk.length) > maxPartSize) {\n onError(errMaxPartSize);\n }\n if (state.state === State.headers) {\n const result = headerParser(chunk, state.headerSkip);\n state.headerSkip = 0;\n if (result._tag === \"Continue\") {\n return;\n } else if (result._tag === \"Failure\") {\n skipBody();\n return onError({\n _tag: \"BadHeaders\",\n error: result\n });\n }\n const contentType = CT.parse(result.headers[\"content-type\"]);\n const contentDisposition = CT.parse(result.headers[\"content-disposition\"], true);\n if (\"form-data\" === contentDisposition.value && !(\"name\" in contentDisposition.parameters)) {\n skipBody();\n return onError(errInvalidDisposition);\n }\n let encodedFilename;\n if (\"filename*\" in contentDisposition.parameters) {\n const parts = contentDisposition.parameters[\"filename*\"].split(\"''\");\n if (parts.length === 2) {\n encodedFilename = decodeURIComponent(parts[1]);\n }\n }\n state.info = {\n name: contentDisposition.parameters.name ?? \"\",\n filename: encodedFilename ?? contentDisposition.parameters.filename,\n contentType: contentType.value === \"\" ? contentDisposition.parameters.filename !== undefined ? \"application/octet-stream\" : \"text/plain\" : contentType.value,\n contentTypeParameters: contentType.parameters,\n contentDisposition: contentDisposition.value,\n contentDispositionParameters: contentDisposition.parameters,\n headers: result.headers\n };\n state.state = State.body;\n state.isFile = isFile(state.info);\n if (state.isFile) {\n state.onChunk = onPart(state.info);\n }\n if (result.endPosition < chunk.length) {\n if (state.isFile) {\n state.onChunk(chunk.subarray(result.endPosition));\n } else {\n const buf = chunk.subarray(result.endPosition);\n if ((state.fieldSize += buf.length) > maxFieldSize) {\n onError(errMaxFieldSize);\n }\n state.fieldChunks.push(buf);\n }\n }\n } else if (state.isFile) {\n state.onChunk(chunk);\n } else {\n if ((state.fieldSize += chunk.length) > maxFieldSize) {\n onError(errMaxFieldSize);\n }\n state.fieldChunks.push(chunk);\n }\n }, constCR);\n return {\n write(chunk) {\n if ((state.totalSize += chunk.length) > maxTotalSize) {\n return onError(errMaxTotalSize);\n }\n return split.write(chunk);\n },\n end() {\n split.end();\n if (state.state === State.body) {\n onError(errEndNotReached);\n }\n state.state = State.headers;\n state.index = 0;\n state.parts = 0;\n state.onChunk = noopOnChunk;\n state.info = undefined;\n state.totalSize = 0;\n state.partSize = 0;\n state.fieldChunks = [];\n state.fieldSize = 0;\n }\n };\n}\nconst utf8Decoder = /*#__PURE__*/new TextDecoder(\"utf-8\");\nfunction getDecoder(charset) {\n if (charset === \"utf-8\" || charset === \"utf8\" || charset === \"\") {\n return utf8Decoder;\n }\n try {\n return new TextDecoder(charset);\n } catch (error) {\n return utf8Decoder;\n }\n}\nexport function decodeField(info, value) {\n return getDecoder(info.contentTypeParameters.charset ?? \"utf-8\").decode(value);\n}\n//# sourceMappingURL=multipart.js.map",
135
- "import * as internal from \"./internal/multipart.js\";\nexport const make = internal.make;\nexport const defaultIsFile = internal.defaultIsFile;\nexport const decodeField = internal.decodeField;\n//# sourceMappingURL=index.js.map",
136
- "/**\n * Parses and persists HTTP `multipart/form-data` request bodies.\n *\n * `Multipart` turns incoming byte streams into typed {@link Part} values. Text\n * parts become decoded {@link Field} values, while upload parts remain streamed\n * {@link File} values until they are collected or written to scoped temporary\n * files. The persisted representation can then be decoded with schemas for\n * request handlers that receive fields and uploaded files together.\n *\n * **Mental model**\n *\n * Multipart parsing is incremental. {@link makeChannel} consumes request body\n * chunks and emits fields or files as soon as the parser reaches each part. A\n * `File` owns a one-shot byte stream for that upload; {@link toPersisted}\n * drains those file streams into scoped paths and collects text fields into a\n * {@link Persisted} record.\n *\n * **Common tasks**\n *\n * - Parse a request body stream into {@link Part} values with {@link makeChannel}.\n * - Persist parsed parts with {@link toPersisted} before schema decoding.\n * - Decode persisted forms with {@link schemaPersisted}, {@link schemaJson},\n * {@link PersistedFileSchema}, or {@link SingleFileSchema}.\n * - Configure parser limits with {@link limitsServices} or the `Max*` context\n * references.\n *\n * **Gotchas**\n *\n * Multipart request bodies are usually one-shot streams. Read each file stream\n * once, and use `contentEffect` only when the file is small enough to hold in\n * memory. Paths produced by {@link toPersisted} are scoped resources and stop\n * being valid when the scope closes. Client-provided file names are metadata,\n * not trusted filesystem paths.\n *\n * **See also**\n *\n * {@link Part}, {@link Field}, {@link File}, {@link Persisted},\n * {@link makeChannel}, {@link toPersisted}.\n *\n * @since 4.0.0\n */\nimport * as Arr from \"../../Array.js\";\nimport * as Cause from \"../../Cause.js\";\nimport * as Channel from \"../../Channel.js\";\nimport * as Context from \"../../Context.js\";\nimport * as Data from \"../../Data.js\";\nimport * as Effect from \"../../Effect.js\";\nimport * as Exit from \"../../Exit.js\";\nimport * as FileSystem from \"../../FileSystem.js\";\nimport { constant, dual } from \"../../Function.js\";\nimport * as Inspectable from \"../../Inspectable.js\";\nimport * as Option from \"../../Option.js\";\nimport * as Path from \"../../Path.js\";\nimport * as Predicate from \"../../Predicate.js\";\nimport * as Pull from \"../../Pull.js\";\nimport * as Schema from \"../../Schema.js\";\nimport * as Transformation from \"../../SchemaTransformation.js\";\nimport * as Stream from \"../../Stream.js\";\nimport * as UndefinedOr from \"../../UndefinedOr.js\";\nimport * as IncomingMessage from \"./HttpIncomingMessage.js\";\nimport * as MP from \"./Multipasta.js\";\n/**\n * Type identifier used to brand multipart part values.\n *\n * @category type IDs\n * @since 4.0.0\n */\nexport const TypeId = \"~effect/http/Multipart\";\n/**\n * Returns `true` when a value is a multipart `Part`.\n *\n * @category guards\n * @since 4.0.0\n */\nexport const isPart = u => Predicate.hasProperty(u, TypeId);\n/**\n * Returns `true` when a value is a multipart text `Field`.\n *\n * @category guards\n * @since 4.0.0\n */\nexport const isField = u => isPart(u) && u._tag === \"Field\";\n/**\n * Returns `true` when a value is a multipart `File`.\n *\n * @category guards\n * @since 4.0.0\n */\nexport const isFile = u => isPart(u) && u._tag === \"File\";\n/**\n * Returns `true` when a value is a persisted multipart file.\n *\n * @category guards\n * @since 4.0.0\n */\nexport const isPersistedFile = u => Predicate.hasProperty(u, TypeId) && Predicate.isTagged(u, \"PersistedFile\");\nconst MultipartErrorTypeId = \"~effect/http/Multipart/MultipartError\";\n/**\n * Error reason carried by a `MultipartError`.\n *\n * **Details**\n *\n * It identifies parser and limit failures such as oversized files or fields, too\n * many parts, total body size limits, parse errors, and internal errors.\n *\n * @category errors\n * @since 4.0.0\n */\nexport class MultipartErrorReason extends Data.Error {}\n/**\n * Error raised while parsing, streaming, or persisting multipart form data.\n *\n * **Details**\n *\n * The `reason` field contains the concrete `MultipartErrorReason`.\n *\n * @category errors\n * @since 4.0.0\n */\nexport class MultipartError extends /*#__PURE__*/Data.TaggedError(\"MultipartError\") {\n /**\n * Creates a multipart error from a reason tag and optional cause.\n *\n * @since 4.0.0\n */\n static fromReason(reason, cause) {\n return new MultipartError({\n reason: new MultipartErrorReason({\n _tag: reason,\n cause\n })\n });\n }\n /**\n * Marks this value as a multipart error for runtime guards.\n *\n * @since 4.0.0\n */\n [MultipartErrorTypeId] = MultipartErrorTypeId;\n /**\n * Uses the concrete multipart error reason as the public message.\n *\n * @since 4.0.0\n */\n get message() {\n return this.reason._tag;\n }\n}\n/**\n * Schema for persisted multipart files.\n *\n * **Details**\n *\n * The encoded form contains the field key, original file name, content type, and\n * filesystem path.\n *\n * @category schemas\n * @since 4.0.0\n */\nexport const PersistedFileSchema = /*#__PURE__*/Schema.declare(isPersistedFile, {\n typeConstructor: {\n _tag: \"effect/http/PersistedFile\"\n },\n generation: {\n runtime: `Multipart.PersistedFileSchema`,\n Type: `Multipart.PersistedFile`,\n importDeclaration: `import * as Multipart from \"effect/unstable/http/Multipart\"`\n },\n expected: \"PersistedFile\",\n toCodecJson: () => Schema.link()(Schema.Struct({\n key: Schema.String,\n name: Schema.String,\n contentType: Schema.String.annotate({\n contentEncoding: \"binary\"\n }),\n path: Schema.String\n }), Transformation.transform({\n decode: ({\n contentType,\n key,\n name,\n path\n }) => new PersistedFileImpl(key, name, contentType, path),\n encode: file => ({\n key: file.key,\n name: file.name,\n contentType: file.contentType,\n path: file.path\n })\n }))\n});\n/**\n * Schema for an array of persisted multipart files.\n *\n * @category schemas\n * @since 4.0.0\n */\nexport const FilesSchema = /*#__PURE__*/Schema.Array(PersistedFileSchema);\n/**\n * Schema for exactly one persisted multipart file.\n *\n * **Details**\n *\n * The encoded form is a one-element file array, while the decoded value is the\n * single `PersistedFile`.\n *\n * @category schemas\n * @since 4.0.0\n */\nexport const SingleFileSchema = /*#__PURE__*/FilesSchema.check(Schema.isLengthBetween(1, 1)).pipe(/*#__PURE__*/Schema.decodeTo(PersistedFileSchema, /*#__PURE__*/Transformation.transform({\n decode: ([file]) => file,\n encode: file => [file]\n})));\n/**\n * Creates a decoder for persisted multipart data using the supplied schema.\n *\n * **Details**\n *\n * The returned function decodes an unknown input into the schema output and fails\n * with `SchemaError` when validation fails.\n *\n * @category schemas\n * @since 4.0.0\n */\nexport const schemaPersisted = schema => Schema.decodeUnknownEffect(schema);\n/**\n * Creates a decoder for a JSON-encoded field in persisted multipart data.\n *\n * **Details**\n *\n * The selected field is parsed from a JSON string and decoded with the supplied\n * schema.\n *\n * @category schemas\n * @since 4.0.0\n */\nexport const schemaJson = (schema, options) => {\n const fromJson = Schema.fromJsonString(schema);\n return dual(2, (persisted, field) => Effect.map(Schema.decodeUnknownEffect(Schema.Struct({\n [field]: fromJson\n }))(persisted, options), _ => _[field]));\n};\n/**\n * Builds the low-level multipart parser configuration from request headers and\n * the current fiber context.\n *\n * **Details**\n *\n * Parser limits are read from the multipart references, including maximum parts,\n * field size, file size, total body size, and field MIME type overrides.\n *\n * @category configuration\n * @since 4.0.0\n */\nexport const makeConfig = headers => Effect.withFiber(fiber => {\n const mimeTypes = Context.get(fiber.context, FieldMimeTypes);\n return Effect.succeed({\n headers,\n maxParts: fiber.getRef(MaxParts),\n maxFieldSize: Number(fiber.getRef(MaxFieldSize)),\n maxPartSize: UndefinedOr.map(fiber.getRef(MaxFileSize), Number),\n maxTotalSize: UndefinedOr.map(fiber.getRef(IncomingMessage.MaxBodySize), Number),\n isFile: mimeTypes.length === 0 ? undefined : info => !mimeTypes.some(_ => info.contentType.includes(_)) && MP.defaultIsFile(info)\n });\n});\n/**\n * Creates a channel that parses multipart byte chunks into multipart parts.\n *\n * **Details**\n *\n * The channel consumes non-empty batches of `Uint8Array` chunks and emits\n * non-empty batches of parsed `Part` values, failing with `MultipartError` for\n * parser and limit failures.\n *\n * @category Parsers\n * @since 4.0.0\n */\nexport const makeChannel = headers => Channel.fromTransform(upstream => Effect.map(makeConfig(headers), config => {\n let partsBuffer = [];\n let exit = Option.none();\n const parser = MP.make({\n ...config,\n onField(info, value) {\n partsBuffer.push(new FieldImpl(info.name, info.contentType, MP.decodeField(info, value)));\n },\n onFile(info) {\n let chunks = [];\n let finished = false;\n const pullChunks = Channel.fromPull(Effect.succeed(Effect.suspend(function loop() {\n if (!Arr.isReadonlyArrayNonEmpty(chunks)) {\n return finished ? Cause.done() : Effect.flatMap(pump, loop);\n }\n const chunk = chunks;\n chunks = [];\n return Effect.succeed(chunk);\n })));\n partsBuffer.push(new FileImpl(info, pullChunks));\n return function (chunk) {\n if (chunk === null) {\n finished = true;\n } else {\n chunks.push(chunk);\n }\n };\n },\n onError(error_) {\n exit = Option.some(Exit.fail(convertError(error_)));\n },\n onDone() {\n exit = Option.some(Exit.fail(Cause.Done()));\n }\n });\n const pump = upstream.pipe(Effect.flatMap(chunk => {\n for (let i = 0; i < chunk.length; i++) {\n parser.write(chunk[i]);\n }\n return Effect.void;\n }), Effect.catchCause(cause => {\n if (Pull.isDoneCause(cause)) {\n parser.end();\n } else {\n exit = Option.some(Exit.failCause(cause));\n }\n return Effect.void;\n }));\n return pump.pipe(Effect.flatMap(function loop() {\n if (!Arr.isReadonlyArrayNonEmpty(partsBuffer)) {\n if (Option.isSome(exit)) {\n return exit.value;\n }\n return Effect.flatMap(pump, loop);\n }\n const parts = partsBuffer;\n partsBuffer = [];\n return Effect.succeed(parts);\n }));\n}));\nfunction convertError(cause) {\n switch (cause._tag) {\n case \"ReachedLimit\":\n {\n switch (cause.limit) {\n case \"MaxParts\":\n {\n return MultipartError.fromReason(\"TooManyParts\", cause);\n }\n case \"MaxFieldSize\":\n {\n return MultipartError.fromReason(\"FieldTooLarge\", cause);\n }\n case \"MaxPartSize\":\n {\n return MultipartError.fromReason(\"FileTooLarge\", cause);\n }\n case \"MaxTotalSize\":\n {\n return MultipartError.fromReason(\"BodyTooLarge\", cause);\n }\n }\n }\n default:\n {\n return MultipartError.fromReason(\"Parse\", cause);\n }\n }\n}\nclass PartBase extends Inspectable.Class {\n [TypeId];\n constructor() {\n super();\n this[TypeId] = TypeId;\n }\n}\nclass FieldImpl extends PartBase {\n _tag = \"Field\";\n key;\n contentType;\n value;\n constructor(key, contentType, value) {\n super();\n this.key = key;\n this.contentType = contentType;\n this.value = value;\n }\n toJSON() {\n return {\n _id: \"@effect/platform/Multipart/Part\",\n _tag: \"Field\",\n key: this.key,\n contentType: this.contentType,\n value: this.value\n };\n }\n}\nclass FileImpl extends PartBase {\n _tag = \"File\";\n key;\n name;\n contentType;\n content;\n contentEffect;\n constructor(info, channel) {\n super();\n this.key = info.name;\n this.name = info.filename ?? info.name;\n this.contentType = info.contentType;\n this.content = Stream.fromChannel(channel);\n this.contentEffect = channel.pipe(collectUint8Array, Effect.mapError(cause => MultipartError.fromReason(\"InternalError\", cause)));\n }\n toJSON() {\n return {\n _id: \"@effect/platform/Multipart/Part\",\n _tag: \"File\",\n key: this.key,\n name: this.name,\n contentType: this.contentType\n };\n }\n}\nconst defaultWriteFile = (path, file) => Effect.flatMap(FileSystem.FileSystem, fs => Effect.mapError(Stream.run(file.content, fs.sink(path)), cause => MultipartError.fromReason(\"InternalError\", cause)));\n/**\n * Runs a channel of byte chunks and collects all output into a single\n * `Uint8Array`.\n *\n * **Gotchas**\n *\n * This materializes the full content in memory.\n *\n * @category converting\n * @since 4.0.0\n */\nexport const collectUint8Array = self => Channel.runFold(self, constant(new Uint8Array(0)), (accumulator, chunk) => {\n const totalLength = chunk.reduce((sum, element) => sum + element.length, accumulator.length);\n const newAccumulator = new Uint8Array(totalLength);\n newAccumulator.set(accumulator, 0);\n let offset = accumulator.length;\n for (const element of chunk) {\n newAccumulator.set(element, offset);\n offset += element.length;\n }\n return newAccumulator;\n});\n/**\n * Persists a stream of multipart parts into a record.\n *\n * **Details**\n *\n * Text fields are collected as strings, and file parts are written to files in a\n * scoped temporary directory.\n *\n * **Gotchas**\n *\n * Persisted file paths remain valid for the lifetime of the scope.\n *\n * @category converting\n * @since 4.0.0\n */\nexport const toPersisted = (stream, writeFile = defaultWriteFile) => Effect.gen(function* () {\n const fs = yield* FileSystem.FileSystem;\n const path_ = yield* Path.Path;\n const dir = yield* fs.makeTempDirectoryScoped();\n const persisted = Object.create(null);\n yield* Stream.runForEach(stream, part => {\n if (part._tag === \"Field\") {\n if (!(part.key in persisted)) {\n persisted[part.key] = part.value;\n } else if (typeof persisted[part.key] === \"string\") {\n persisted[part.key] = [persisted[part.key], part.value];\n } else {\n ;\n persisted[part.key].push(part.value);\n }\n return Effect.void;\n } else if (part.name === \"\") {\n return Effect.void;\n }\n const file = part;\n const path = path_.join(dir, path_.basename(file.name).slice(-128));\n const filePart = new PersistedFileImpl(file.key, file.name, file.contentType, path);\n if (Array.isArray(persisted[part.key])) {\n ;\n persisted[part.key].push(filePart);\n } else {\n persisted[part.key] = [filePart];\n }\n return writeFile(path, file);\n });\n return persisted;\n}).pipe(Effect.catchTag(\"PlatformError\", cause => Effect.fail(MultipartError.fromReason(\"InternalError\", cause))));\nclass PersistedFileImpl extends PartBase {\n _tag = \"PersistedFile\";\n key;\n name;\n contentType;\n path;\n constructor(key, name, contentType, path) {\n super();\n this.key = key;\n this.name = name;\n this.contentType = contentType;\n this.path = path;\n }\n toJSON() {\n return {\n _id: \"@effect/platform/Multipart/Part\",\n _tag: \"PersistedFile\",\n key: this.key,\n name: this.name,\n contentType: this.contentType,\n path: this.path\n };\n }\n}\n/**\n * Creates a context containing multipart parser limit settings.\n *\n * **Details**\n *\n * The context can provide maximum part count, field size, file size, total body\n * size, and MIME types that should be parsed as fields.\n *\n * @category references\n * @since 4.0.0\n */\nexport const limitsServices = options => {\n const map = new Map();\n if (options.maxParts !== undefined) {\n map.set(MaxParts.key, options.maxParts);\n }\n if (options.maxFieldSize !== undefined) {\n map.set(MaxFieldSize.key, FileSystem.Size(options.maxFieldSize));\n }\n if (options.maxFileSize !== undefined) {\n map.set(MaxFileSize.key, UndefinedOr.map(options.maxFileSize, FileSystem.Size));\n }\n if (options.maxTotalSize !== undefined) {\n map.set(IncomingMessage.MaxBodySize.key, UndefinedOr.map(options.maxTotalSize, FileSystem.Size));\n }\n if (options.fieldMimeTypes !== undefined) {\n map.set(FieldMimeTypes.key, options.fieldMimeTypes);\n }\n return Context.makeUnsafe(map);\n};\n/**\n * Context reference for the maximum number of multipart parts allowed.\n *\n * **Details**\n *\n * The default is `undefined`, meaning no explicit part-count limit.\n *\n * @category references\n * @since 4.0.0\n */\nexport const MaxParts = /*#__PURE__*/Context.Reference(\"effect/http/Multipart/MaxParts\", {\n defaultValue: () => undefined\n});\n/**\n * Context reference for the maximum size of a multipart field value.\n *\n * **Details**\n *\n * The default limit is 10 MiB.\n *\n * @category references\n * @since 4.0.0\n */\nexport const MaxFieldSize = /*#__PURE__*/Context.Reference(\"effect/http/Multipart/MaxFieldSize\", {\n defaultValue: /*#__PURE__*/constant(/*#__PURE__*/FileSystem.Size(10 * 1024 * 1024))\n});\n/**\n * Context reference for the maximum size of a multipart file part.\n *\n * **Details**\n *\n * The default is `undefined`, meaning no explicit per-file limit.\n *\n * @category references\n * @since 4.0.0\n */\nexport const MaxFileSize = /*#__PURE__*/Context.Reference(\"effect/http/Multipart/MaxFileSize\", {\n defaultValue: () => undefined\n});\n/**\n * Context reference for MIME type fragments that should be parsed as multipart\n * fields instead of files.\n *\n * **Details**\n *\n * The default treats `application/json` parts as fields.\n *\n * @category references\n * @since 4.0.0\n */\nexport const FieldMimeTypes = /*#__PURE__*/Context.Reference(\"effect/http/Multipart/FieldMimeTypes\", {\n defaultValue: /*#__PURE__*/constant([\"application/json\"])\n});\n//# sourceMappingURL=Multipart.js.map",
137
- "import * as Channel from \"../../Channel.js\";\nimport * as Context from \"../../Context.js\";\nimport * as Effect from \"../../Effect.js\";\nimport * as Inspectable from \"../../Inspectable.js\";\nimport * as Option from \"../../Option.js\";\nimport * as Result from \"../../Result.js\";\nimport * as Schema from \"../../Schema.js\";\nimport * as Stream from \"../../Stream.js\";\nimport * as Socket from \"../socket/Socket.js\";\nimport * as Cookies from \"./Cookies.js\";\nimport * as Headers from \"./Headers.js\";\nimport * as HttpBody from \"./HttpBody.js\";\nimport * as HttpClientRequest from \"./HttpClientRequest.js\";\nimport * as HttpIncomingMessage from \"./HttpIncomingMessage.js\";\nimport { hasBody } from \"./HttpMethod.js\";\nimport { HttpServerError, RequestParseError } from \"./HttpServerError.js\";\nimport * as Multipart from \"./Multipart.js\";\nimport * as UrlParams from \"./UrlParams.js\";\nexport {\n/**\n * Provides the `MaxBodySize` fiber reference for configuring request body limits.\n *\n * **When to use**\n *\n * Use to configure the maximum body size accepted while reading server\n * request bodies.\n *\n * @category fiber refs\n * @since 4.0.0\n */\nMaxBodySize } from \"./HttpIncomingMessage.js\";\n/**\n * Runtime type identifier for `HttpServerRequest` values.\n *\n * @category type IDs\n * @since 4.0.0\n */\nexport const TypeId = \"~effect/http/HttpServerRequest\";\n/**\n * Service tag for the active server-side HTTP request.\n *\n * **When to use**\n *\n * Use to access the request currently being handled by HTTP server routes and\n * middleware.\n *\n * @category context\n * @since 4.0.0\n */\nexport const HttpServerRequest = /*#__PURE__*/Context.Service(\"effect/http/HttpServerRequest\");\n/**\n * Service that contains decoded URL query parameters for the current request.\n *\n * **When to use**\n *\n * Use to access query parameters that have already been parsed for the current\n * server request.\n *\n * **Details**\n *\n * Each key maps to a string value, or to an array when the parameter appears more\n * than once.\n *\n * @category search params\n * @since 4.0.0\n */\nexport class ParsedSearchParams extends /*#__PURE__*/Context.Service()(\"effect/http/ParsedSearchParams\") {}\n/**\n * Converts a `URL` object's search parameters into a record.\n *\n * **Details**\n *\n * Repeated parameters are represented as arrays in insertion order.\n *\n * @category search params\n * @since 4.0.0\n */\nexport const searchParamsFromURL = url => {\n const out = {};\n for (const [key, value] of url.searchParams.entries()) {\n const entry = out[key];\n if (entry !== undefined) {\n if (Array.isArray(entry)) {\n entry.push(value);\n } else {\n out[key] = [entry, value];\n }\n } else {\n out[key] = value;\n }\n }\n return out;\n};\n/**\n * Creates a channel backed by the current request's upgraded socket.\n *\n * **Details**\n *\n * The channel reads incoming socket messages and writes byte chunks to the\n * socket, failing if the request cannot be upgraded or the socket fails.\n *\n * @category accessors\n * @since 4.0.0\n */\nexport const upgradeChannel = () => HttpServerRequest.pipe(Effect.flatMap(_ => _.upgrade), Effect.map(Socket.toChannelWith()), Channel.unwrap);\n/**\n * Decodes a schema from the cookies of the current request.\n *\n * @category schemas\n * @since 4.0.0\n */\nexport const schemaCookies = (schema, options) => {\n const parse = Schema.decodeUnknownEffect(schema);\n return Effect.flatMap(HttpServerRequest, req => parse(req.cookies, options));\n};\n/**\n * Decodes a schema from the headers of the current request.\n *\n * @category schemas\n * @since 4.0.0\n */\nexport const schemaHeaders = (schema, options) => {\n const parse = Schema.decodeUnknownEffect(schema);\n return Effect.flatMap(HttpServerRequest, req => parse(req.headers, options));\n};\n/**\n * Decodes a schema from the parsed search parameters of the current request.\n *\n * @category schemas\n * @since 4.0.0\n */\nexport const schemaSearchParams = (schema, options) => {\n const parse = Schema.decodeUnknownEffect(schema);\n return Effect.flatMap(ParsedSearchParams, params => parse(params, options));\n};\n/**\n * Reads the current request body as JSON and decodes it with the supplied schema.\n *\n * **Details**\n *\n * The effect can fail if the body cannot be read or parsed, or if schema decoding\n * fails.\n *\n * @category schemas\n * @since 4.0.0\n */\nexport const schemaBodyJson = (schema, options) => {\n const parse = HttpIncomingMessage.schemaBodyJson(schema, options);\n return Effect.flatMap(HttpServerRequest, parse);\n};\nconst isMultipart = request => request.headers[\"content-type\"]?.toLowerCase().includes(\"multipart/form-data\") === true || getFormDataBody(request) !== undefined;\n/**\n * Decodes the current request body as form data.\n *\n * **Details**\n *\n * Multipart requests are persisted and decoded as multipart data; other form\n * requests are decoded from URL-encoded body parameters.\n *\n * @category schemas\n * @since 4.0.0\n */\nexport const schemaBodyForm = (schema, options) => {\n const parseMultipart = Multipart.schemaPersisted(schema);\n const parseUrlParams = HttpIncomingMessage.schemaBodyUrlParams(schema, options);\n return Effect.flatMap(HttpServerRequest, request => {\n if (isMultipart(request)) {\n return Effect.flatMap(request.multipart, _ => parseMultipart(_, options));\n }\n return parseUrlParams(request);\n });\n};\n/**\n * Reads the current request body as URL-encoded parameters and decodes them with\n * the supplied schema.\n *\n * @category schemas\n * @since 4.0.0\n */\nexport const schemaBodyUrlParams = (schema, options) => {\n const parse = HttpIncomingMessage.schemaBodyUrlParams(schema, options);\n return Effect.flatMap(HttpServerRequest, parse);\n};\n/**\n * Persists the current multipart request body and decodes it with the supplied\n * schema.\n *\n * **Details**\n *\n * The effect requires the services needed to persist multipart files, including a\n * scope, file system, and path service.\n *\n * @category schemas\n * @since 4.0.0\n */\nexport const schemaBodyMultipart = (schema, options) => {\n const parse = Multipart.schemaPersisted(schema);\n return HttpServerRequest.pipe(Effect.flatMap(_ => _.multipart), Effect.flatMap(_ => parse(_, options)));\n};\n/**\n * Creates a decoder for a JSON value stored in a form field.\n *\n * **Details**\n *\n * For multipart requests, the named multipart field is decoded as JSON. For\n * URL-encoded requests, the named parameter is decoded as JSON and then decoded\n * with the supplied schema.\n *\n * @category schemas\n * @since 4.0.0\n */\nexport const schemaBodyFormJson = (schema, options) => {\n const parseMultipart = Multipart.schemaJson(schema, options);\n return field => {\n const parseUrlParams = UrlParams.schemaJsonField(field).pipe(Schema.decodeTo(schema), Schema.decodeEffect);\n return Effect.flatMap(HttpServerRequest, request => {\n if (isMultipart(request)) {\n return Effect.flatMap(Effect.mapError(request.multipart, cause => new HttpServerError({\n reason: new RequestParseError({\n request,\n cause\n })\n })), parseMultipart(field));\n }\n return Effect.flatMap(request.urlParamsBody, _ => parseUrlParams(_, options));\n });\n };\n};\n/**\n * Creates an `HttpServerRequest` view of an `HttpClientRequest`.\n *\n * **Details**\n *\n * If the client request can be converted to an absolute URL, that URL is used as\n * the original URL.\n *\n * @category converting\n * @since 4.0.0\n */\nexport const fromClientRequest = request => {\n const url = Option.match(HttpClientRequest.toUrl(request), {\n onNone: () => request.url,\n onSome: url => url.toString()\n });\n return new ClientRequestImpl(request, url);\n};\n/**\n * Wraps a Web `Request` as an `HttpServerRequest`.\n *\n * **Details**\n *\n * The request's current URL is stored without the scheme and host, while the\n * original Web URL remains available as `originalUrl`.\n *\n * @category converting\n * @since 4.0.0\n */\nexport const fromWeb = request => new ServerRequestImpl(request, removeHost(request.url));\n/**\n * Converts an `HttpServerRequest` into an `HttpClientRequest`.\n *\n * **Details**\n *\n * The converted request preserves the method, headers, body stream, and a URL\n * derived from the request when possible.\n *\n * @category converting\n * @since 4.0.0\n */\nexport const toClientRequest = request => HttpClientRequest.setUrl(HttpClientRequest.makeWith(request.method, \"\", UrlParams.empty, Option.none(), request.headers, toClientBody(request)), Option.getOrElse(toURL(request), () => request.url));\nconst toClientBody = request => hasBody(request.method) ? HttpBody.stream(request.stream, request.headers[\"content-type\"], parseContentLength(request.headers[\"content-length\"])) : HttpBody.empty;\nconst parseContentLength = contentLength => {\n if (contentLength === undefined) {\n return undefined;\n }\n const parsed = Number.parseInt(contentLength, 10);\n return Number.isNaN(parsed) ? undefined : parsed;\n};\nconst removeHost = url => {\n if (url[0] === \"/\") {\n return url;\n }\n const index = url.indexOf(\"/\", url.indexOf(\"//\") + 2);\n return index === -1 ? \"/\" : url.slice(index);\n};\nclass ServerRequestImpl extends Inspectable.Class {\n [TypeId];\n [HttpIncomingMessage.TypeId];\n source;\n url;\n headersOverride;\n remoteAddressOverride;\n constructor(source, url, headersOverride, remoteAddressOverride) {\n super();\n this[TypeId] = TypeId;\n this[HttpIncomingMessage.TypeId] = HttpIncomingMessage.TypeId;\n this.source = source;\n this.url = url;\n this.headersOverride = headersOverride;\n this.remoteAddressOverride = remoteAddressOverride;\n }\n toJSON() {\n return HttpIncomingMessage.inspect(this, {\n _id: \"HttpServerRequest\",\n method: this.method,\n url: this.originalUrl\n });\n }\n modify(options) {\n return new ServerRequestImpl(this.source, options.url ?? this.url, options.headers ?? this.headersOverride, \"remoteAddress\" in options ? options.remoteAddress : this.remoteAddressOverride);\n }\n get method() {\n return this.source.method.toUpperCase();\n }\n get originalUrl() {\n return this.source.url;\n }\n get remoteAddress() {\n return this.remoteAddressOverride ?? Option.none();\n }\n get headers() {\n this.headersOverride ??= Headers.fromInput(this.source.headers);\n return this.headersOverride;\n }\n cachedCookies;\n get cookies() {\n if (this.cachedCookies) {\n return this.cachedCookies;\n }\n return this.cachedCookies = Cookies.parseHeader(this.headers.cookie ?? \"\");\n }\n get stream() {\n return this.source.body ? Stream.fromReadableStream({\n evaluate: () => this.source.body,\n onError: cause => new HttpServerError({\n reason: new RequestParseError({\n request: this,\n cause\n })\n })\n }) : Stream.fail(new HttpServerError({\n reason: new RequestParseError({\n request: this,\n description: \"can not create stream from empty body\"\n })\n }));\n }\n textEffect;\n get text() {\n if (this.textEffect) {\n return this.textEffect;\n }\n this.textEffect = Effect.runSync(Effect.cached(Effect.tryPromise({\n try: () => this.source.text(),\n catch: cause => new HttpServerError({\n reason: new RequestParseError({\n request: this,\n cause\n })\n })\n })));\n return this.textEffect;\n }\n get json() {\n return Effect.flatMap(this.text, text => Effect.try({\n try: () => JSON.parse(text),\n catch: cause => new HttpServerError({\n reason: new RequestParseError({\n request: this,\n cause\n })\n })\n }));\n }\n get urlParamsBody() {\n return Effect.flatMap(this.text, _ => Effect.try({\n try: () => UrlParams.fromInput(new URLSearchParams(_)),\n catch: cause => new HttpServerError({\n reason: new RequestParseError({\n request: this,\n cause\n })\n })\n }));\n }\n multipartEffect;\n get multipart() {\n if (this.multipartEffect) {\n return this.multipartEffect;\n }\n this.multipartEffect = Effect.runSync(Effect.cached(Multipart.toPersisted(this.multipartStream)));\n return this.multipartEffect;\n }\n get multipartStream() {\n return Stream.pipeThroughChannel(Stream.mapError(this.stream, cause => Multipart.MultipartError.fromReason(\"InternalError\", cause)), Multipart.makeChannel(this.headers));\n }\n arrayBufferEffect;\n get arrayBuffer() {\n if (this.arrayBufferEffect) {\n return this.arrayBufferEffect;\n }\n this.arrayBufferEffect = Effect.runSync(Effect.cached(Effect.tryPromise({\n try: () => this.source.arrayBuffer(),\n catch: cause => new HttpServerError({\n reason: new RequestParseError({\n request: this,\n cause\n })\n })\n })));\n return this.arrayBufferEffect;\n }\n get upgrade() {\n return Effect.fail(new HttpServerError({\n reason: new RequestParseError({\n request: this,\n description: \"Not an upgradeable ServerRequest\"\n })\n }));\n }\n}\nclass ClientRequestImpl extends Inspectable.Class {\n [TypeId];\n [HttpIncomingMessage.TypeId];\n source;\n originalUrl;\n headersOverride;\n remoteAddressOverride;\n urlOverride;\n constructor(source, originalUrl, urlOverride, headersOverride, remoteAddressOverride) {\n super();\n this[TypeId] = TypeId;\n this[HttpIncomingMessage.TypeId] = HttpIncomingMessage.TypeId;\n this.source = source;\n this.originalUrl = originalUrl;\n this.urlOverride = urlOverride;\n this.headersOverride = headersOverride;\n this.remoteAddressOverride = remoteAddressOverride;\n }\n toJSON() {\n return HttpIncomingMessage.inspect(this, {\n _id: \"HttpServerRequest\",\n method: this.method,\n url: this.originalUrl\n });\n }\n modify(options) {\n return new ClientRequestImpl(this.source, this.originalUrl, options.url ?? this.url, options.headers ?? this.headersOverride, \"remoteAddress\" in options ? options.remoteAddress : this.remoteAddressOverride);\n }\n get method() {\n return this.source.method;\n }\n get url() {\n return this.urlOverride ?? removeHost(this.originalUrl);\n }\n get remoteAddress() {\n return this.remoteAddressOverride ?? Option.none();\n }\n get headers() {\n return this.headersOverride ??= this.source.headers;\n }\n cachedCookies;\n get cookies() {\n if (this.cachedCookies) {\n return this.cachedCookies;\n }\n return this.cachedCookies = Cookies.parseHeader(this.headers.cookie ?? \"\");\n }\n get stream() {\n const body = this.source.body;\n switch (body._tag) {\n case \"Empty\":\n {\n return Stream.empty;\n }\n case \"Uint8Array\":\n {\n return Stream.succeed(body.body);\n }\n case \"Stream\":\n {\n return Stream.mapError(body.stream, cause => requestParseError(this, undefined, cause));\n }\n case \"FormData\":\n {\n return streamFromReadable(this, new Response(body.formData).body);\n }\n case \"Raw\":\n {\n return rawBodyStream(this, body.body);\n }\n }\n }\n bytesEffect;\n get bytes() {\n if (this.bytesEffect) {\n return this.bytesEffect;\n }\n const body = this.source.body;\n let effect;\n switch (body._tag) {\n case \"Empty\":\n {\n effect = Effect.succeed(new Uint8Array(0));\n break;\n }\n case \"Uint8Array\":\n {\n effect = Effect.succeed(body.body);\n break;\n }\n case \"FormData\":\n {\n effect = bytesFromBodyInit(this, body.formData);\n break;\n }\n case \"Stream\":\n {\n effect = Stream.mkUint8Array(this.stream);\n break;\n }\n case \"Raw\":\n {\n effect = rawBodyBytes(this, body.body);\n break;\n }\n }\n this.bytesEffect = Effect.runSync(Effect.cached(effect));\n return this.bytesEffect;\n }\n get text() {\n return Effect.map(this.bytes, bytes => textDecoder.decode(bytes));\n }\n get json() {\n return Effect.flatMap(this.text, text => Effect.try({\n try: () => text === \"\" ? null : JSON.parse(text),\n catch: cause => requestParseError(this, undefined, cause)\n }));\n }\n get urlParamsBody() {\n return Effect.flatMap(this.text, _ => Effect.try({\n try: () => UrlParams.fromInput(new URLSearchParams(_)),\n catch: cause => requestParseError(this, undefined, cause)\n }));\n }\n multipartEffect;\n get multipart() {\n if (this.multipartEffect) {\n return this.multipartEffect;\n }\n this.multipartEffect = Effect.runSync(Effect.cached(Multipart.toPersisted(this.multipartStream)));\n return this.multipartEffect;\n }\n get multipartStream() {\n const formData = this.source.body._tag === \"FormData\" && this.source.body.formData;\n if (formData) {\n return Stream.fromIterable(formDataToParts(formData));\n }\n return Stream.pipeThroughChannel(Stream.mapError(this.stream, cause => Multipart.MultipartError.fromReason(\"InternalError\", cause)), Multipart.makeChannel(this.headers));\n }\n get arrayBuffer() {\n return Effect.map(this.bytes, bytes => bytes.slice().buffer);\n }\n get upgrade() {\n return Effect.fail(requestParseError(this, \"Not an upgradeable ServerRequest\"));\n }\n}\nconst getFormDataBody = request => {\n if (!HttpClientRequest.isHttpClientRequest(request.source)) {\n return undefined;\n }\n const body = request.source.body;\n if (body._tag === \"FormData\") {\n return body.formData;\n }\n if (body._tag === \"Raw\" && isFormData(body.body)) {\n return body.body;\n }\n return undefined;\n};\nconst rawBodyStream = (request, body) => {\n if (body instanceof Request) {\n return streamFromReadable(request, body.body);\n }\n if (isFormData(body)) {\n return streamFromReadable(request, new Response(body).body);\n }\n if (isReadableStream(body)) {\n return streamFromReadable(request, body);\n }\n return Stream.fail(requestParseError(request, \"Unsupported body type\"));\n};\nconst rawBodyBytes = (request, body) => {\n if (body instanceof Blob) {\n return bytesFromBodyInit(request, body);\n }\n if (body instanceof Request) {\n return Effect.tryPromise({\n try: () => body.arrayBuffer().then(buffer => new Uint8Array(buffer)),\n catch: cause => requestParseError(request, undefined, cause)\n });\n }\n return Effect.fail(requestParseError(request, \"Unsupported body type\"));\n};\nconst bytesFromBodyInit = (request, body) => Effect.tryPromise({\n try: () => new Response(body).arrayBuffer().then(buffer => new Uint8Array(buffer)),\n catch: cause => requestParseError(request, undefined, cause)\n});\nconst streamFromReadable = (request, body) => body ? Stream.fromReadableStream({\n evaluate: () => body,\n onError: cause => requestParseError(request, undefined, cause)\n}) : Stream.empty;\nconst requestParseError = (request, description, cause) => new HttpServerError({\n reason: new RequestParseError({\n request,\n ...(description === undefined ? undefined : {\n description\n }),\n ...(cause === undefined ? undefined : {\n cause\n })\n })\n});\nconst formDataToParts = formData => {\n const parts = [];\n for (const [key, value] of formData.entries()) {\n parts.push(typeof value === \"string\" ? new MultipartFieldPart(key, value) : new MultipartFilePart(key, value));\n }\n return parts;\n};\nclass MultipartFieldPart extends Inspectable.Class {\n [Multipart.TypeId];\n _tag = \"Field\";\n contentType = \"text/plain\";\n key;\n value;\n constructor(key, value) {\n super();\n this[Multipart.TypeId] = Multipart.TypeId;\n this.key = key;\n this.value = value;\n }\n toJSON() {\n return {\n _id: \"@effect/platform/Multipart/Part\",\n _tag: \"Field\",\n key: this.key,\n contentType: this.contentType,\n value: this.value\n };\n }\n}\nclass MultipartFilePart extends Inspectable.Class {\n [Multipart.TypeId];\n _tag = \"File\";\n key;\n name;\n contentType;\n content;\n contentEffect;\n constructor(key, file) {\n super();\n this[Multipart.TypeId] = Multipart.TypeId;\n this.key = key;\n this.name = file.name;\n this.contentType = file.type;\n this.content = Stream.fromReadableStream({\n evaluate: () => file.stream(),\n onError: cause => Multipart.MultipartError.fromReason(\"InternalError\", cause)\n });\n this.contentEffect = Effect.tryPromise({\n try: () => file.arrayBuffer().then(buffer => new Uint8Array(buffer)),\n catch: cause => Multipart.MultipartError.fromReason(\"InternalError\", cause)\n });\n }\n toJSON() {\n return {\n _id: \"@effect/platform/Multipart/Part\",\n _tag: \"File\",\n key: this.key,\n name: this.name,\n contentType: this.contentType\n };\n }\n}\nconst isReadableStream = u => typeof ReadableStream !== \"undefined\" && u instanceof ReadableStream;\nconst isFormData = u => typeof FormData !== \"undefined\" && u instanceof FormData;\nconst textDecoder = /*#__PURE__*/new TextDecoder();\n/**\n * Attempts to construct an absolute `URL` for a server request safely.\n *\n * **Details**\n *\n * The host comes from the `host` header, defaulting to `localhost`, and the\n * protocol is `https` only when `x-forwarded-proto` is `https`; invalid URLs\n * return `Option.none`.\n *\n * @category converting\n * @since 4.0.0\n */\nexport const toURL = self => {\n const host = self.headers.host ?? \"localhost\";\n const protocol = self.headers[\"x-forwarded-proto\"] === \"https\" ? \"https\" : \"http\";\n try {\n return Option.some(new URL(self.url, `${protocol}://${host}`));\n } catch {\n return Option.none();\n }\n};\n/**\n * Converts an `HttpServerRequest` safely to a Web `Request` as a `Result`.\n *\n * **Details**\n *\n * If the source is already a Web `Request`, it is returned unchanged. Otherwise\n * an absolute URL is derived from the request; invalid URLs fail with a\n * `RequestParseError`.\n *\n * @category converting\n * @since 4.0.0\n */\nexport const toWebResult = (self, options) => {\n if (self.source instanceof Request) {\n return Result.succeed(self.source);\n }\n const url = toURL(self);\n if (Option.isNone(url)) {\n return Result.fail(new RequestParseError({\n request: self,\n description: \"Invalid URL\"\n }));\n }\n const requestInit = {\n method: self.method,\n headers: self.headers\n };\n if (options?.signal) {\n requestInit.signal = options.signal;\n }\n if (hasBody(self.method)) {\n requestInit.body = Stream.toReadableStreamWith(self.stream, options?.context ?? Context.empty());\n requestInit.duplex = \"half\";\n }\n return Result.succeed(new Request(url.value, requestInit));\n};\n/**\n * Converts an `HttpServerRequest` to a Web `Request` in `Effect`.\n *\n * **Details**\n *\n * The current context is used when streaming the request body into the Web\n * request.\n *\n * @category converting\n * @since 4.0.0\n */\nexport const toWeb = (self, options) => Effect.contextWith(context => Effect.fromResult(toWebResult(self, {\n context,\n signal: options?.signal\n})));\n//# sourceMappingURL=HttpServerRequest.js.map",
138
- "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",
139
- "/**\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",
140
- "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",
141
- "/**\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",
142
- "/**\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",
143
- "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",
144
- "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",
145
- "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",
146
- "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",
147
- "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",
148
- "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",
149
106
  "// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { Config } from \"./types.gen.js\"\n\nexport type ServerSentEventsOptions<TData = unknown> = Omit<RequestInit, \"method\"> &\n Pick<Config, \"method\" | \"responseTransformer\" | \"responseValidator\"> & {\n /**\n * Fetch API implementation. You can use this option to provide a custom\n * fetch instance.\n *\n * @default globalThis.fetch\n */\n fetch?: typeof fetch\n /**\n * Implementing clients can call request interceptors inside this hook.\n */\n onRequest?: (url: string, init: RequestInit) => Promise<Request>\n /**\n * Callback invoked when a network or parsing error occurs during streaming.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @param error The error that occurred.\n */\n onSseError?: (error: unknown) => void\n /**\n * Callback invoked when an event is streamed from the server.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @param event Event streamed from the server.\n * @returns Nothing (void).\n */\n onSseEvent?: (event: StreamEvent<TData>) => void\n serializedBody?: RequestInit[\"body\"]\n /**\n * Default retry delay in milliseconds.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @default 3000\n */\n sseDefaultRetryDelay?: number\n /**\n * Maximum number of retry attempts before giving up.\n */\n sseMaxRetryAttempts?: number\n /**\n * Maximum retry delay in milliseconds.\n *\n * Applies only when exponential backoff is used.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @default 30000\n */\n sseMaxRetryDelay?: number\n /**\n * Optional sleep function for retry backoff.\n *\n * Defaults to using `setTimeout`.\n */\n sseSleepFn?: (ms: number) => Promise<void>\n url: string\n }\n\nexport interface StreamEvent<TData = unknown> {\n data: TData\n event?: string\n id?: string\n retry?: number\n}\n\nexport type ServerSentEventsResult<TData = unknown, TReturn = void, TNext = unknown> = {\n stream: AsyncGenerator<TData extends Record<string, unknown> ? TData[keyof TData] : TData, TReturn, TNext>\n}\n\nexport const createSseClient = <TData = unknown>({\n onRequest,\n onSseError,\n onSseEvent,\n responseTransformer,\n responseValidator,\n sseDefaultRetryDelay,\n sseMaxRetryAttempts,\n sseMaxRetryDelay,\n sseSleepFn,\n url,\n ...options\n}: ServerSentEventsOptions): ServerSentEventsResult<TData> => {\n let lastEventId: string | undefined\n\n const sleep = sseSleepFn ?? ((ms: number) => new Promise((resolve) => setTimeout(resolve, ms)))\n\n const createStream = async function* () {\n let retryDelay: number = sseDefaultRetryDelay ?? 3000\n let attempt = 0\n const signal = options.signal ?? new AbortController().signal\n\n while (true) {\n if (signal.aborted) break\n\n attempt++\n\n const headers =\n options.headers instanceof Headers\n ? options.headers\n : new Headers(options.headers as Record<string, string> | undefined)\n\n if (lastEventId !== undefined) {\n headers.set(\"Last-Event-ID\", lastEventId)\n }\n\n try {\n const requestInit: RequestInit = {\n redirect: \"follow\",\n ...options,\n body: options.serializedBody,\n headers,\n signal,\n }\n let request = new Request(url, requestInit)\n if (onRequest) {\n request = await onRequest(url, requestInit)\n }\n // fetch must be assigned here, otherwise it would throw the error:\n // TypeError: Failed to execute 'fetch' on 'Window': Illegal invocation\n const _fetch = options.fetch ?? globalThis.fetch\n const response = await _fetch(request)\n\n if (!response.ok) throw new Error(`SSE failed: ${response.status} ${response.statusText}`)\n\n if (!response.body) throw new Error(\"No body in SSE response\")\n\n const reader = response.body.pipeThrough(new TextDecoderStream()).getReader()\n\n let buffer = \"\"\n\n const abortHandler = () => {\n try {\n reader.cancel()\n } catch {\n // noop\n }\n }\n\n signal.addEventListener(\"abort\", abortHandler)\n\n try {\n while (true) {\n const { done, value } = await reader.read()\n if (done) break\n buffer += value\n // Normalize line endings: CRLF -> LF, then CR -> LF\n buffer = buffer.replace(/\\r\\n/g, \"\\n\").replace(/\\r/g, \"\\n\")\n\n const chunks = buffer.split(\"\\n\\n\")\n buffer = chunks.pop() ?? \"\"\n\n for (const chunk of chunks) {\n const lines = chunk.split(\"\\n\")\n const dataLines: Array<string> = []\n let eventName: string | undefined\n\n for (const line of lines) {\n if (line.startsWith(\"data:\")) {\n dataLines.push(line.replace(/^data:\\s*/, \"\"))\n } else if (line.startsWith(\"event:\")) {\n eventName = line.replace(/^event:\\s*/, \"\")\n } else if (line.startsWith(\"id:\")) {\n lastEventId = line.replace(/^id:\\s*/, \"\")\n } else if (line.startsWith(\"retry:\")) {\n const parsed = Number.parseInt(line.replace(/^retry:\\s*/, \"\"), 10)\n if (!Number.isNaN(parsed)) {\n retryDelay = parsed\n }\n }\n }\n\n let data: unknown\n let parsedJson = false\n\n if (dataLines.length) {\n const rawData = dataLines.join(\"\\n\")\n try {\n data = JSON.parse(rawData)\n parsedJson = true\n } catch {\n data = rawData\n }\n }\n\n if (parsedJson) {\n if (responseValidator) {\n await responseValidator(data)\n }\n\n if (responseTransformer) {\n data = await responseTransformer(data)\n }\n }\n\n onSseEvent?.({\n data,\n event: eventName,\n id: lastEventId,\n retry: retryDelay,\n })\n\n if (dataLines.length) {\n yield data as any\n }\n }\n }\n } finally {\n signal.removeEventListener(\"abort\", abortHandler)\n reader.releaseLock()\n }\n\n break // exit loop on normal completion\n } catch (error) {\n // connection failed or aborted; retry after delay\n onSseError?.(error)\n\n if (sseMaxRetryAttempts !== undefined && attempt >= sseMaxRetryAttempts) {\n break // stop after firing error\n }\n\n // exponential backoff: double retry each attempt, cap at 30s\n const backoff = Math.min(retryDelay * 2 ** (attempt - 1), sseMaxRetryDelay ?? 30000)\n await sleep(backoff)\n }\n }\n }\n\n const stream = createStream()\n\n return { stream }\n}\n",
150
107
  "// This file is auto-generated by @hey-api/openapi-ts\n\ninterface SerializeOptions<T> extends SerializePrimitiveOptions, SerializerOptions<T> {}\n\ninterface SerializePrimitiveOptions {\n allowReserved?: boolean\n name: string\n}\n\nexport interface SerializerOptions<T> {\n /**\n * @default true\n */\n explode: boolean\n style: T\n}\n\nexport type ArrayStyle = \"form\" | \"spaceDelimited\" | \"pipeDelimited\"\nexport type ArraySeparatorStyle = ArrayStyle | MatrixStyle\ntype MatrixStyle = \"label\" | \"matrix\" | \"simple\"\nexport type ObjectStyle = \"form\" | \"deepObject\"\ntype ObjectSeparatorStyle = ObjectStyle | MatrixStyle\n\ninterface SerializePrimitiveParam extends SerializePrimitiveOptions {\n value: string\n}\n\nexport const separatorArrayExplode = (style: ArraySeparatorStyle) => {\n switch (style) {\n case \"label\":\n return \".\"\n case \"matrix\":\n return \";\"\n case \"simple\":\n return \",\"\n default:\n return \"&\"\n }\n}\n\nexport const separatorArrayNoExplode = (style: ArraySeparatorStyle) => {\n switch (style) {\n case \"form\":\n return \",\"\n case \"pipeDelimited\":\n return \"|\"\n case \"spaceDelimited\":\n return \"%20\"\n default:\n return \",\"\n }\n}\n\nexport const separatorObjectExplode = (style: ObjectSeparatorStyle) => {\n switch (style) {\n case \"label\":\n return \".\"\n case \"matrix\":\n return \";\"\n case \"simple\":\n return \",\"\n default:\n return \"&\"\n }\n}\n\nexport const serializeArrayParam = ({\n allowReserved,\n explode,\n name,\n style,\n value,\n}: SerializeOptions<ArraySeparatorStyle> & {\n value: unknown[]\n}) => {\n if (!explode) {\n const joinedValues = (allowReserved ? value : value.map((v) => encodeURIComponent(v as string))).join(\n separatorArrayNoExplode(style),\n )\n switch (style) {\n case \"label\":\n return `.${joinedValues}`\n case \"matrix\":\n return `;${name}=${joinedValues}`\n case \"simple\":\n return joinedValues\n default:\n return `${name}=${joinedValues}`\n }\n }\n\n const separator = separatorArrayExplode(style)\n const joinedValues = value\n .map((v) => {\n if (style === \"label\" || style === \"simple\") {\n return allowReserved ? v : encodeURIComponent(v as string)\n }\n\n return serializePrimitiveParam({\n allowReserved,\n name,\n value: v as string,\n })\n })\n .join(separator)\n return style === \"label\" || style === \"matrix\" ? separator + joinedValues : joinedValues\n}\n\nexport const serializePrimitiveParam = ({ allowReserved, name, value }: SerializePrimitiveParam) => {\n if (value === undefined || value === null) {\n return \"\"\n }\n\n if (typeof value === \"object\") {\n throw new Error(\n \"Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.\",\n )\n }\n\n return `${name}=${allowReserved ? value : encodeURIComponent(value)}`\n}\n\nexport const serializeObjectParam = ({\n allowReserved,\n explode,\n name,\n style,\n value,\n valueOnly,\n}: SerializeOptions<ObjectSeparatorStyle> & {\n value: Record<string, unknown> | Date\n valueOnly?: boolean\n}) => {\n if (value instanceof Date) {\n return valueOnly ? value.toISOString() : `${name}=${value.toISOString()}`\n }\n\n if (style !== \"deepObject\" && !explode) {\n let values: string[] = []\n Object.entries(value).forEach(([key, v]) => {\n values = [...values, key, allowReserved ? (v as string) : encodeURIComponent(v as string)]\n })\n const joinedValues = values.join(\",\")\n switch (style) {\n case \"form\":\n return `${name}=${joinedValues}`\n case \"label\":\n return `.${joinedValues}`\n case \"matrix\":\n return `;${name}=${joinedValues}`\n default:\n return joinedValues\n }\n }\n\n const separator = separatorObjectExplode(style)\n const joinedValues = Object.entries(value)\n .map(([key, v]) =>\n serializePrimitiveParam({\n allowReserved,\n name: style === \"deepObject\" ? `${name}[${key}]` : key,\n value: v as string,\n }),\n )\n .join(separator)\n return style === \"label\" || style === \"matrix\" ? separator + joinedValues : joinedValues\n}\n",
151
108
  "// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { BodySerializer, QuerySerializer } from \"./bodySerializer.gen.js\"\nimport {\n type ArraySeparatorStyle,\n serializeArrayParam,\n serializeObjectParam,\n serializePrimitiveParam,\n} from \"./pathSerializer.gen.js\"\n\nexport interface PathSerializer {\n path: Record<string, unknown>\n url: string\n}\n\nexport const PATH_PARAM_RE = /\\{[^{}]+\\}/g\n\nexport const defaultPathSerializer = ({ path, url: _url }: PathSerializer) => {\n let url = _url\n const matches = _url.match(PATH_PARAM_RE)\n if (matches) {\n for (const match of matches) {\n let explode = false\n let name = match.substring(1, match.length - 1)\n let style: ArraySeparatorStyle = \"simple\"\n\n if (name.endsWith(\"*\")) {\n explode = true\n name = name.substring(0, name.length - 1)\n }\n\n if (name.startsWith(\".\")) {\n name = name.substring(1)\n style = \"label\"\n } else if (name.startsWith(\";\")) {\n name = name.substring(1)\n style = \"matrix\"\n }\n\n const value = path[name]\n\n if (value === undefined || value === null) {\n continue\n }\n\n if (Array.isArray(value)) {\n url = url.replace(match, serializeArrayParam({ explode, name, style, value }))\n continue\n }\n\n if (typeof value === \"object\") {\n url = url.replace(\n match,\n serializeObjectParam({\n explode,\n name,\n style,\n value: value as Record<string, unknown>,\n valueOnly: true,\n }),\n )\n continue\n }\n\n if (style === \"matrix\") {\n url = url.replace(\n match,\n `;${serializePrimitiveParam({\n name,\n value: value as string,\n })}`,\n )\n continue\n }\n\n const replaceValue = encodeURIComponent(style === \"label\" ? `.${value as string}` : (value as string))\n url = url.replace(match, replaceValue)\n }\n }\n return url\n}\n\nexport const getUrl = ({\n baseUrl,\n path,\n query,\n querySerializer,\n url: _url,\n}: {\n baseUrl?: string\n path?: Record<string, unknown>\n query?: Record<string, unknown>\n querySerializer: QuerySerializer\n url: string\n}) => {\n const pathUrl = _url.startsWith(\"/\") ? _url : `/${_url}`\n let url = (baseUrl ?? \"\") + pathUrl\n if (path) {\n url = defaultPathSerializer({ path, url })\n }\n let search = query ? querySerializer(query) : \"\"\n if (search.startsWith(\"?\")) {\n search = search.substring(1)\n }\n if (search) {\n url += `?${search}`\n }\n return url\n}\n\nexport function getValidRequestBody(options: {\n body?: unknown\n bodySerializer?: BodySerializer | null\n serializedBody?: unknown\n}) {\n const hasBody = options.body !== undefined\n const isSerializedBody = hasBody && options.bodySerializer\n\n if (isSerializedBody) {\n if (\"serializedBody\" in options) {\n const hasSerializedBody = options.serializedBody !== undefined && options.serializedBody !== \"\"\n\n return hasSerializedBody ? options.serializedBody : null\n }\n\n // not all clients implement a serializedBody property (i.e. client-axios)\n return options.body !== \"\" ? options.body : null\n }\n\n // plain/text body\n if (hasBody) {\n return options.body\n }\n\n // no body was provided\n return undefined\n}\n",
@@ -162,7 +119,7 @@
162
119
  "import { Global } from \"@opencode-ai/core/global\"\nimport { InstallationVersion } from \"@opencode-ai/core/installation/version\"\nimport { createOpencodeClient } from \"@opencode-ai/sdk/v2/client\"\nimport { ServerAuth } from \"@opencode-ai/server/auth\"\nimport { Context, Effect, FileSystem, Layer, Option, Schedule, Schema, Scope } from \"effect\"\nimport { HttpServer } from \"effect/unstable/http\"\nimport { randomBytes, randomUUID } from \"crypto\"\nimport path from \"path\"\n\nexport interface Interface {\n readonly client: () => Effect.Effect<ReturnType<typeof createOpencodeClient>, unknown>\n readonly start: () => Effect.Effect<string, Error>\n readonly status: () => Effect.Effect<string | undefined>\n readonly stop: () => Effect.Effect<void, unknown>\n readonly password: (value?: string) => Effect.Effect<string, unknown>\n readonly register: (address: HttpServer.Address) => Effect.Effect<void, unknown, Scope.Scope>\n}\n\nexport class Service extends Context.Service<Service, Interface>()(\"@opencode/cli/Daemon\") {}\n\nconst Registration = Schema.Struct({\n id: Schema.optional(Schema.String),\n version: Schema.optional(Schema.String),\n url: Schema.String,\n pid: Schema.Int.check(Schema.isGreaterThan(0)),\n})\ntype Registration = typeof Registration.Type\n\nfunction sameRegistration(left: Registration, right: Registration) {\n return left.id === right.id && left.version === right.version && left.url === right.url && left.pid === right.pid\n}\n\nexport const layer = Layer.effect(\n Service,\n Effect.gen(function* () {\n const fs = yield* FileSystem.FileSystem\n const directory = Global.Path.state\n const file = path.join(directory, \"server.json\")\n const passwordFile = path.join(directory, \"password\")\n const decodeRegistration = Schema.decodeUnknownEffect(Schema.fromJsonString(Registration))\n\n const password = Effect.fn(\"cli.daemon.password\")(function* (value?: string) {\n const existing = yield* fs.readFileString(passwordFile).pipe(Effect.catch(() => Effect.succeed(undefined)))\n if (value === undefined && existing) return existing\n\n // Keep one private credential across server restarts so discovered clients\n // can reconnect without exposing a password flag or environment variable.\n const generated = value ?? randomBytes(32).toString(\"base64url\")\n const temp = passwordFile + \".tmp\"\n yield* fs.makeDirectory(directory, { recursive: true })\n yield* fs.writeFileString(temp, generated, { mode: 0o600 })\n yield* fs.rename(temp, passwordFile)\n return generated\n })\n\n const registration = Effect.fnUntraced(function* () {\n return yield* fs.readFileString(file).pipe(Effect.flatMap(decodeRegistration))\n })\n\n const createClient = Effect.fnUntraced(function* (url: string) {\n return createOpencodeClient({ baseUrl: url, headers: ServerAuth.headers({ password: yield* password() }) })\n })\n\n const healthy = Effect.fnUntraced(function* () {\n const info = yield* registration()\n const client = yield* createClient(info.url)\n const response = yield* Effect.tryPromise(() => client.v2.health.get({ signal: AbortSignal.timeout(2_000) }))\n if (response.data?.healthy === true) return info\n return yield* Effect.fail(new Error(\"Registered server is not healthy\"))\n })\n\n const compatible = Effect.fnUntraced(function* () {\n const info = yield* healthy()\n if (info.version === InstallationVersion) return info\n return yield* Effect.fail(new Error(\"Registered server version does not match the client\"))\n })\n\n const signal = (pid: number, signal: NodeJS.Signals) =>\n Effect.try({ try: () => process.kill(pid, signal), catch: (cause) => cause }).pipe(Effect.ignore)\n\n const awaitStopped = Effect.fnUntraced(function* (pid: number) {\n const running = yield* Effect.try({ try: () => process.kill(pid, 0), catch: () => false }).pipe(\n Effect.orElseSucceed(() => false),\n )\n if (!running) return true\n return yield* Effect.fail(new Error(`Server process ${pid} is still running`))\n })\n\n const stopProcess = Effect.fnUntraced(function* (info: Registration) {\n const current = yield* healthy().pipe(Effect.option)\n if (Option.isNone(current) || !sameRegistration(current.value, info)) return\n\n yield* signal(info.pid, \"SIGTERM\")\n const stopped = yield* awaitStopped(info.pid).pipe(\n Effect.retry(Schedule.spaced(\"50 millis\").pipe(Schedule.both(Schedule.recurs(100)))),\n Effect.option,\n )\n if (Option.isSome(stopped)) return\n\n const latest = yield* healthy().pipe(Effect.option)\n if (Option.isNone(latest) || !sameRegistration(latest.value, info)) return\n yield* signal(info.pid, \"SIGKILL\")\n yield* awaitStopped(info.pid).pipe(\n Effect.retry(Schedule.spaced(\"50 millis\").pipe(Schedule.both(Schedule.recurs(100)))),\n )\n })\n\n const start = Effect.fn(\"cli.daemon.start\")(function* () {\n const existing = yield* healthy().pipe(Effect.option)\n const found = Option.getOrUndefined(existing)\n if (found?.version === InstallationVersion) return found.url\n if (found) yield* stopProcess(found).pipe(Effect.ignore)\n\n yield* Effect.sync(() => {\n const compiled = path.basename(process.execPath).replace(/\\.exe$/, \"\") !== \"bun\"\n Bun.spawn([process.execPath, ...(compiled ? [] : [Bun.main]), \"serve\", \"--register\"], {\n stdin: \"ignore\",\n stdout: \"ignore\",\n stderr: \"ignore\",\n }).unref()\n })\n\n return yield* compatible().pipe(\n Effect.retry(Schedule.spaced(\"50 millis\").pipe(Schedule.both(Schedule.recurs(100)))),\n Effect.map((info) => info.url),\n Effect.mapError(() => new Error(\"Failed to start server\")),\n )\n })\n\n const client = Effect.fn(\"cli.daemon.client\")(function* () {\n return yield* createClient(yield* start())\n })\n\n const status = Effect.fn(\"cli.daemon.status\")(function* () {\n const existing = yield* healthy().pipe(Effect.option)\n const found = Option.getOrUndefined(existing)\n if (found?.version === InstallationVersion) return found.url\n if (found) return undefined\n yield* fs.remove(file).pipe(Effect.ignore)\n return undefined\n })\n\n const stop = Effect.fn(\"cli.daemon.stop\")(function* () {\n const existing = yield* healthy().pipe(Effect.option)\n // A stale registration may point at a PID that has since been reused by\n // another process. Only signal the PID after authenticating the server.\n if (Option.isNone(existing)) return yield* fs.remove(file).pipe(Effect.ignore)\n yield* stopProcess(existing.value)\n yield* fs.remove(file).pipe(Effect.ignore)\n })\n\n const register = Effect.fn(\"cli.daemon.register\")(function* (address: HttpServer.Address) {\n const id = randomUUID()\n const temp = file + \".\" + id + \".tmp\"\n yield* fs.makeDirectory(directory, { recursive: true })\n yield* fs.writeFileString(\n temp,\n JSON.stringify({ id, version: InstallationVersion, url: HttpServer.formatAddress(address), pid: process.pid }),\n { mode: 0o600 },\n )\n yield* fs.rename(temp, file)\n yield* registration().pipe(\n Effect.flatMap((info) => (info.id === id ? Effect.void : signal(process.pid, \"SIGTERM\"))),\n Effect.catch(() => signal(process.pid, \"SIGTERM\")),\n Effect.repeat(Schedule.spaced(\"10 seconds\")),\n Effect.forkScoped,\n )\n yield* Effect.addFinalizer(() =>\n registration().pipe(\n Effect.flatMap((info) => (info.id === id ? fs.remove(file) : Effect.void)),\n Effect.ignore,\n ),\n )\n })\n\n return Service.of({ client, start, status, stop, password, register })\n }),\n)\n\nexport const defaultLayer = layer\n\nexport * as Daemon from \"./daemon\"\n",
163
120
  "import * as Effect from \"effect/Effect\"\nimport * as Command from \"effect/unstable/cli/Command\"\nimport { Spec } from \"./spec\"\nimport { Daemon } from \"../services/daemon\"\n\nexport type Input<Value> =\n Value extends Spec.Node<infer _Name, infer Command, infer _Commands>\n ? Input<Command>\n : Value extends Command.Command<infer _Name, infer Input, infer _Context, infer _Error, infer _Requirements>\n ? Input\n : never\n\ntype RuntimeHandler = (input: unknown) => Effect.Effect<void, unknown, Daemon.Service>\ntype Loader<Node extends Spec.Any> = () => Promise<{\n default: (input: Input<Node>) => Effect.Effect<void, any, Daemon.Service>\n}>\ntype ProvidedCommand = Command.Command<string, unknown, unknown, unknown, Daemon.Service>\n\nexport type Handlers<Node extends Spec.Any> = keyof Node[\"commands\"] extends never\n ? Loader<Node>\n : { readonly $?: Loader<Node> } & { readonly [Key in keyof Node[\"commands\"]]: Handlers<Node[\"commands\"][Key]> }\n\ninterface LazyHandler {\n readonly spec: Command.Command.Any\n readonly load: () => Promise<{ default: RuntimeHandler }>\n}\n\ntype RuntimeHandlers =\n | (() => Promise<{ default: RuntimeHandler }>)\n | {\n readonly $?: () => Promise<{ default: RuntimeHandler }>\n readonly [key: string]: RuntimeHandlers | (() => Promise<{ default: RuntimeHandler }>) | undefined\n }\n\nexport function handler<const Node extends Spec.Any, Error, Requirements>(\n _node: Node,\n run: (input: Input<Node>) => Effect.Effect<void, Error, Requirements>,\n) {\n return run\n}\n\nexport function handlers<const Root extends Spec.Any>(root: Root, handlers: Handlers<Root>) {\n const result: LazyHandler[] = []\n\n function add(node: Spec.Any, value: RuntimeHandlers) {\n if (typeof value === \"function\") {\n result.push({ spec: node.spec, load: value as () => Promise<{ default: RuntimeHandler }> })\n return\n }\n if (value.$) result.push({ spec: node.spec, load: value.$ as () => Promise<{ default: RuntimeHandler }> })\n for (const [name, child] of Object.entries(node.commands)) add(child, value[name] as RuntimeHandlers)\n }\n\n add(root, handlers as RuntimeHandlers)\n return result\n}\n\nexport function run(commands: Spec.Any, handlers: ReadonlyArray<LazyHandler>, options: { readonly version: string }) {\n return Command.run(provide(commands, handlers), options) as Effect.Effect<void, unknown, Command.Environment>\n}\n\nfunction provide(node: Spec.Any, handlers: ReadonlyArray<LazyHandler>): ProvidedCommand {\n const spec: Command.Command.Any = Object.keys(node.commands).length\n ? (node.spec as Command.Command<string, unknown>).pipe(\n Command.withSubcommands(Object.values(node.commands).map((child) => provide(child, handlers))),\n )\n : node.spec\n const handler = handlers.find((handler) => handler.spec === node.spec)\n if (!handler) return spec as ProvidedCommand\n return spec.pipe(\n Command.withHandler((input) =>\n Effect.gen(function* () {\n yield* Effect.flatMap(Effect.promise(handler.load), (module) => module.default(input))\n }),\n ),\n ) as ProvidedCommand\n}\n\nexport * as Runtime from \"./runtime\"\n"
164
121
  ],
165
- "mappings": "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AG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EA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",
166
- "debugId": "8E0B46150A61449564756E2164756E21",
122
+ "mappings": "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",
123
+ "debugId": "CBA5C1E7CDD62A4164756E2164756E21",
167
124
  "names": []
168
125
  }