@jayjiang/open-cc 0.2.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (251) hide show
  1. package/README.md +86 -17
  2. package/dist/{chunk-jdt5s5k7.js → chunk-069dbns4.js} +2 -2
  3. package/dist/{chunk-789khc7a.js → chunk-0835agam.js} +2 -2
  4. package/dist/{chunk-4qedx22a.js → chunk-0bdhgvy1.js} +1 -1
  5. package/dist/{chunk-26k0324b.js → chunk-0dfqvmb4.js} +18 -18
  6. package/dist/{chunk-kkrz2zw2.js → chunk-0gqmbg8s.js} +17 -17
  7. package/dist/{chunk-eaf7c8ck.js → chunk-0kahb9mv.js} +20 -20
  8. package/dist/{chunk-178ykx7k.js → chunk-0qy38dac.js} +11 -11
  9. package/dist/{chunk-svar8pp2.js → chunk-0w9z2zwf.js} +4 -4
  10. package/dist/{chunk-qgjgqmy5.js → chunk-0ykfpxvc.js} +14 -14
  11. package/dist/{chunk-a2krhf3c.js → chunk-11dw1vrj.js} +21 -21
  12. package/dist/{chunk-bp0dnrwg.js → chunk-16m006qe.js} +2 -2
  13. package/dist/{chunk-dnwzz9f7.js → chunk-17gsgs5w.js} +17 -17
  14. package/dist/{chunk-3x0408tc.js → chunk-18gc1qrw.js} +1 -1
  15. package/dist/{chunk-8nsem424.js → chunk-1cfdhf6e.js} +17 -17
  16. package/dist/{chunk-62vwr0y5.js → chunk-1mj6zkdr.js} +4 -4
  17. package/dist/{chunk-mwrr6zbb.js → chunk-1n10ra18.js} +2 -2
  18. package/dist/{chunk-7v0wq9nk.js → chunk-1nerw16m.js} +24 -24
  19. package/dist/{chunk-j98f65zv.js → chunk-1qzvq4yg.js} +17 -17
  20. package/dist/{chunk-tz03j2da.js → chunk-1tpys8wg.js} +2 -2
  21. package/dist/{chunk-t175chdd.js → chunk-1wa2q75b.js} +2 -2
  22. package/dist/{chunk-edfv7pme.js → chunk-1wqa074w.js} +17 -17
  23. package/dist/{chunk-dwq5rs3q.js → chunk-1yerwkr6.js} +1 -1
  24. package/dist/{chunk-95dt8mpg.js → chunk-27aaha3b.js} +18 -18
  25. package/dist/{chunk-00dxqxqj.js → chunk-29a47hwj.js} +3 -3
  26. package/dist/{chunk-wbsnpxzh.js → chunk-2s5ncr4z.js} +17 -17
  27. package/dist/{chunk-3z7ae04g.js → chunk-2t51rgyr.js} +3 -3
  28. package/dist/{chunk-72fey14y.js → chunk-2tn89aj8.js} +17 -17
  29. package/dist/{chunk-nsqma629.js → chunk-2zfr3trp.js} +2 -2
  30. package/dist/{chunk-xm3ed3zn.js → chunk-311cg83g.js} +18 -18
  31. package/dist/{chunk-kgn1nfg9.js → chunk-31pnt7zq.js} +18 -18
  32. package/dist/{chunk-4g5mrzm0.js → chunk-3espy9xx.js} +17 -17
  33. package/dist/{chunk-rca5xtnd.js → chunk-3k0h4ps9.js} +19 -19
  34. package/dist/{chunk-wbhsqc2a.js → chunk-3q2px4ye.js} +17 -17
  35. package/dist/{chunk-z31an09g.js → chunk-3tzmzmj4.js} +3 -3
  36. package/dist/{chunk-e9nkfs4e.js → chunk-4473knt0.js} +2 -2
  37. package/dist/{chunk-8pf73pc8.js → chunk-47w2z6hx.js} +1 -1
  38. package/dist/{chunk-qjcxkbv6.js → chunk-4c9sjm90.js} +3 -3
  39. package/dist/{chunk-v9ybze94.js → chunk-4dcdjfjx.js} +6 -6
  40. package/dist/{chunk-rw6fwk2s.js → chunk-4e5q58pf.js} +1 -1
  41. package/dist/{chunk-s56j2d6g.js → chunk-50cb779k.js} +2 -2
  42. package/dist/{chunk-r0af6bw0.js → chunk-50zjq1yq.js} +4 -4
  43. package/dist/{chunk-ab59azrr.js → chunk-50zspr3n.js} +78 -33
  44. package/dist/{chunk-cdm0k2n0.js → chunk-552rnzvy.js} +28 -28
  45. package/dist/{chunk-2y54j9ew.js → chunk-5635sk0j.js} +546 -329
  46. package/dist/{chunk-dcz167d6.js → chunk-56t08qrv.js} +1 -1
  47. package/dist/{chunk-sk3gpkdt.js → chunk-5h0z8fzk.js} +18 -18
  48. package/dist/{chunk-9ebygqen.js → chunk-5jk34pzs.js} +18 -18
  49. package/dist/{chunk-jkhvm8yk.js → chunk-5k9g69bz.js} +17 -17
  50. package/dist/{chunk-vkrhafhf.js → chunk-5n1vqgh9.js} +1 -1
  51. package/dist/{chunk-fm2jvsk7.js → chunk-5nh6t834.js} +18 -18
  52. package/dist/{chunk-b4w4argn.js → chunk-5qaxa933.js} +11 -11
  53. package/dist/{chunk-fgc0q2b2.js → chunk-60exgca9.js} +15 -15
  54. package/dist/{chunk-fdvcpaz3.js → chunk-66cxq703.js} +18 -18
  55. package/dist/{chunk-nttf3k0r.js → chunk-6k3gd2x6.js} +24 -24
  56. package/dist/{chunk-q16y18s1.js → chunk-6k76mycp.js} +1 -1
  57. package/dist/{chunk-accxhkm6.js → chunk-6tphpxy0.js} +22 -22
  58. package/dist/{chunk-09y0jvtm.js → chunk-6vr12vfk.js} +7 -7
  59. package/dist/{chunk-7azp8c8y.js → chunk-6wvp7ngj.js} +5 -5
  60. package/dist/{chunk-kjhmt6ba.js → chunk-6zdaxr8r.js} +17 -17
  61. package/dist/{chunk-c2g96ga2.js → chunk-7154b804.js} +4 -4
  62. package/dist/{chunk-p0hff8zy.js → chunk-79rbkdqz.js} +90 -90
  63. package/dist/chunk-7jfcthxt.js +1102 -0
  64. package/dist/{chunk-8j6vs75t.js → chunk-7q2k8zej.js} +17 -17
  65. package/dist/{chunk-5ywjzvm8.js → chunk-7rvg2wpe.js} +1 -1
  66. package/dist/{chunk-87jfpcm7.js → chunk-7tjjhf0p.js} +4 -4
  67. package/dist/{chunk-76t2h5v2.js → chunk-7v9rr095.js} +5 -5
  68. package/dist/{chunk-78mma1s7.js → chunk-817sy6nm.js} +1 -1
  69. package/dist/{chunk-a05hje2h.js → chunk-83dwdj3h.js} +19 -19
  70. package/dist/{chunk-30k39xd2.js → chunk-87qa7gq6.js} +1 -1
  71. package/dist/{chunk-054mjk62.js → chunk-8a61kdj0.js} +8 -8
  72. package/dist/{chunk-xch406a3.js → chunk-8ctgy728.js} +22 -22
  73. package/dist/{chunk-1p2j9g3w.js → chunk-8dd2dpgr.js} +1 -1
  74. package/dist/{chunk-6b8ksqmf.js → chunk-8mqhmrrx.js} +19 -19
  75. package/dist/{chunk-1mm9d8p4.js → chunk-8r8s65ph.js} +2 -2
  76. package/dist/{chunk-qj7h3xc3.js → chunk-8vh757qh.js} +2 -2
  77. package/dist/{chunk-nx7s0zn5.js → chunk-91g4j2qa.js} +17 -17
  78. package/dist/{chunk-b9k5cs09.js → chunk-93emhb8f.js} +1 -1
  79. package/dist/{chunk-j0tqbsh7.js → chunk-943xz9ke.js} +1 -1
  80. package/dist/{chunk-xc9khn0r.js → chunk-979mscag.js} +6 -6
  81. package/dist/{chunk-pd6653na.js → chunk-99278z3h.js} +7 -7
  82. package/dist/{chunk-5gzg4q1k.js → chunk-9hm2ftad.js} +2 -2
  83. package/dist/{chunk-p5z8t6r3.js → chunk-9ksygqgj.js} +1 -1
  84. package/dist/{chunk-bapy5rc8.js → chunk-9m4t2dz2.js} +2 -2
  85. package/dist/{chunk-qz3fe4fj.js → chunk-9prf396t.js} +5 -5
  86. package/dist/{chunk-a78b3pvt.js → chunk-9rstkv39.js} +5 -5
  87. package/dist/{chunk-c1zc58pw.js → chunk-9s399z6q.js} +17 -17
  88. package/dist/{chunk-v4qn3g0d.js → chunk-9ys22zbt.js} +17 -17
  89. package/dist/{chunk-y9nnmev5.js → chunk-a92nz32p.js} +3 -3
  90. package/dist/{chunk-tm1wwvm1.js → chunk-aj12qe7g.js} +18 -18
  91. package/dist/{chunk-sskngwam.js → chunk-av7erbg5.js} +18 -18
  92. package/dist/{chunk-20gm89wf.js → chunk-b2nzha0n.js} +2 -2
  93. package/dist/{chunk-ebyr6p77.js → chunk-b3rk03bf.js} +28 -28
  94. package/dist/{chunk-fcna95wg.js → chunk-b60h8h04.js} +18 -18
  95. package/dist/{chunk-nek12gtk.js → chunk-bk57vn0c.js} +2 -2
  96. package/dist/{chunk-2s5f2nnw.js → chunk-c15hved2.js} +70 -70
  97. package/dist/{chunk-nrnkshv2.js → chunk-c2jm4mw0.js} +3 -3
  98. package/dist/{chunk-vxj5rbg5.js → chunk-c34dzh7m.js} +18 -18
  99. package/dist/{chunk-waambva2.js → chunk-c4htfx9t.js} +33 -33
  100. package/dist/{chunk-rfdbzyjh.js → chunk-cf0a63cp.js} +28 -28
  101. package/dist/{chunk-6tnekwtp.js → chunk-cpn9q8b8.js} +2 -2
  102. package/dist/{chunk-vvn4gkak.js → chunk-ctpa2hq1.js} +6 -6
  103. package/dist/{chunk-tww14j0s.js → chunk-d02cfh8j.js} +2 -2
  104. package/dist/{chunk-h3mhfamg.js → chunk-d3kwf8ce.js} +1 -1
  105. package/dist/{chunk-jeaek018.js → chunk-d6830f97.js} +2 -2
  106. package/dist/{chunk-dz8exe78.js → chunk-d8h9gzvd.js} +20 -20
  107. package/dist/{chunk-yfa54ssn.js → chunk-dcepsqxy.js} +3 -3
  108. package/dist/{chunk-eh474zhj.js → chunk-dh739avg.js} +1 -1
  109. package/dist/{chunk-3ccx8k84.js → chunk-dj7aakv7.js} +1 -1
  110. package/dist/{chunk-mzn0z9d3.js → chunk-dq1vf1zc.js} +25 -25
  111. package/dist/{chunk-k445en8h.js → chunk-dz400zrc.js} +17 -17
  112. package/dist/{chunk-gntr3b25.js → chunk-e5ejf5xb.js} +75 -82
  113. package/dist/{chunk-0scs4rpx.js → chunk-e6ghb364.js} +17 -17
  114. package/dist/{chunk-mfm83xn5.js → chunk-e8gbnbbw.js} +1 -1
  115. package/dist/{chunk-t7z7vg91.js → chunk-e8jvq82w.js} +1 -1
  116. package/dist/{chunk-dndehvfr.js → chunk-eeqg5xv9.js} +2 -2
  117. package/dist/{chunk-k1jnpyj9.js → chunk-ep6kfa48.js} +3 -3
  118. package/dist/{chunk-m9t8j37k.js → chunk-exwp99mf.js} +3 -3
  119. package/dist/{chunk-gac6nzhc.js → chunk-fadewx1h.js} +21 -21
  120. package/dist/{chunk-3m45xtza.js → chunk-fcwdx0ba.js} +2 -2
  121. package/dist/{chunk-0465tnzh.js → chunk-fnn39dqe.js} +1 -1
  122. package/dist/{chunk-30chpfyc.js → chunk-fq3bhb3m.js} +5 -0
  123. package/dist/{chunk-xpm4ebhz.js → chunk-ftf33fx2.js} +1 -1
  124. package/dist/{chunk-m26twd8m.js → chunk-g39wrczb.js} +1 -1
  125. package/dist/{chunk-bda3gxxz.js → chunk-gdmvfdmg.js} +1 -1
  126. package/dist/{chunk-1qjb22fx.js → chunk-gfsgsb06.js} +24 -24
  127. package/dist/{chunk-9tkq3g56.js → chunk-gjrvycgq.js} +18 -18
  128. package/dist/{chunk-sp5cjcjh.js → chunk-gpp0r4nz.js} +17 -17
  129. package/dist/{chunk-pjnzf3cg.js → chunk-gqsf3qgy.js} +1 -1
  130. package/dist/{chunk-zq9r43cb.js → chunk-h3tz3971.js} +1 -1
  131. package/dist/{chunk-yxvy4jt4.js → chunk-hafxz77z.js} +17 -17
  132. package/dist/{chunk-tf9h0cyj.js → chunk-hd6nz24z.js} +19 -19
  133. package/dist/{chunk-e7c8ypwc.js → chunk-hfpyfd75.js} +1 -1
  134. package/dist/{chunk-m0g3xv72.js → chunk-hj3vdw50.js} +2 -2
  135. package/dist/{chunk-p57bz7nv.js → chunk-hm47252m.js} +2 -2
  136. package/dist/{chunk-xzmkekfb.js → chunk-hzvrx4zb.js} +6 -6
  137. package/dist/{chunk-58a0x39g.js → chunk-j8w8z3rr.js} +20 -20
  138. package/dist/{chunk-rh7q28df.js → chunk-j9npkcss.js} +24 -24
  139. package/dist/{chunk-1jrkpnbn.js → chunk-ja02w71n.js} +2 -2
  140. package/dist/{chunk-5ztxx8gd.js → chunk-jbdcvfc3.js} +1 -1
  141. package/dist/{chunk-mywpbwad.js → chunk-jbkzb6zk.js} +3 -3
  142. package/dist/{chunk-2bhq4emw.js → chunk-jc3z0axc.js} +14 -14
  143. package/dist/{chunk-56ta4h0b.js → chunk-jer5gm3b.js} +1 -1
  144. package/dist/{chunk-g6qddbvf.js → chunk-jj1hyewd.js} +1 -1
  145. package/dist/{chunk-jynzr5w9.js → chunk-jtk703y1.js} +1 -1
  146. package/dist/{chunk-hcdt34n4.js → chunk-jvqfcwcr.js} +69 -69
  147. package/dist/{chunk-j595yd4h.js → chunk-k6w5rqdb.js} +29 -29
  148. package/dist/{chunk-4e1271a8.js → chunk-k9fwgjbe.js} +19 -19
  149. package/dist/{chunk-b2rkh01x.js → chunk-k9xha3xz.js} +17 -17
  150. package/dist/{chunk-95rj8m4e.js → chunk-kfyxcffd.js} +20 -20
  151. package/dist/{chunk-36z5enc4.js → chunk-kx4fzafs.js} +2 -2
  152. package/dist/{chunk-j1s1jvad.js → chunk-m4vmawjf.js} +25 -25
  153. package/dist/{chunk-g0nbec9m.js → chunk-m7b6aenc.js} +2 -2
  154. package/dist/{chunk-jtqgnyaq.js → chunk-mb2js0qe.js} +19 -19
  155. package/dist/{chunk-n4nbgkvd.js → chunk-mmm2kzqm.js} +18 -18
  156. package/dist/{chunk-g1fdv1kb.js → chunk-mtz0t94p.js} +17 -17
  157. package/dist/{chunk-agmw1vmf.js → chunk-mydnda8q.js} +19 -19
  158. package/dist/{chunk-4n989n6h.js → chunk-n2330vv8.js} +21 -21
  159. package/dist/{chunk-f63q7vx7.js → chunk-nd8sq9j6.js} +3 -3
  160. package/dist/{chunk-khmz14d4.js → chunk-ngynyrep.js} +2 -2
  161. package/dist/{chunk-44q8kegv.js → chunk-nkzh7avg.js} +21 -21
  162. package/dist/{chunk-ft7fs35e.js → chunk-nm89zsnm.js} +17 -17
  163. package/dist/{chunk-s10vyjz4.js → chunk-nn12ezz8.js} +1 -1
  164. package/dist/{chunk-sbs1r0h4.js → chunk-ns3abbq3.js} +18 -18
  165. package/dist/{chunk-4rze71rx.js → chunk-p2g401cm.js} +28 -28
  166. package/dist/{chunk-rc5bbzx4.js → chunk-pcht3gfq.js} +1 -1
  167. package/dist/{chunk-n128bzxs.js → chunk-peb6nq0q.js} +9 -9
  168. package/dist/{chunk-4wbhvcag.js → chunk-pksb7tdy.js} +20 -20
  169. package/dist/{chunk-6cpqmd4r.js → chunk-ptcpcj61.js} +19 -19
  170. package/dist/{chunk-xe0bpcbr.js → chunk-pteeq95g.js} +17 -17
  171. package/dist/{chunk-h6s1tx0e.js → chunk-pzg7ytaj.js} +13 -13
  172. package/dist/{chunk-h8qd1gw2.js → chunk-q0evz0vc.js} +17 -17
  173. package/dist/{chunk-jpgr7zfs.js → chunk-q185tj2k.js} +1 -1
  174. package/dist/{chunk-4axcksrv.js → chunk-q7a067dd.js} +18 -18
  175. package/dist/{chunk-6q2x8zeg.js → chunk-q7h2cve1.js} +1 -1
  176. package/dist/{chunk-er8ckwzt.js → chunk-q84s7m2f.js} +1 -1
  177. package/dist/{chunk-q132dkwr.js → chunk-qdg1ykmz.js} +18 -18
  178. package/dist/{chunk-73fhat5j.js → chunk-qga0tr57.js} +4 -4
  179. package/dist/{chunk-vht4mzgb.js → chunk-qnhxpn2g.js} +17 -17
  180. package/dist/{chunk-znrwmznk.js → chunk-qps4qwyr.js} +19 -19
  181. package/dist/{chunk-h7qb4hyj.js → chunk-qsy8447b.js} +1 -1
  182. package/dist/{chunk-0hn525br.js → chunk-r2nybb94.js} +17 -17
  183. package/dist/{chunk-dj6dk19k.js → chunk-r3ah68hf.js} +2 -2
  184. package/dist/{chunk-e6rrwzv0.js → chunk-r6knz78j.js} +3 -3
  185. package/dist/{chunk-wpqbrv0f.js → chunk-r6qdwyar.js} +2 -2
  186. package/dist/{chunk-n5gkdn9v.js → chunk-r8990nat.js} +2 -2
  187. package/dist/{chunk-hzhd0p1y.js → chunk-rgfkrfvn.js} +17 -17
  188. package/dist/{chunk-kf8kjmfv.js → chunk-rj0jjmy6.js} +17 -17
  189. package/dist/{chunk-zxa7st21.js → chunk-rk2ve991.js} +1 -1
  190. package/dist/{chunk-cwehsmj5.js → chunk-rkya3s3m.js} +27 -27
  191. package/dist/{chunk-dfx733j3.js → chunk-rq7gtcjh.js} +4 -4
  192. package/dist/{chunk-5p2ssw3d.js → chunk-rvd8vyfs.js} +1 -1
  193. package/dist/{chunk-01p8hhsp.js → chunk-rzpqyc2x.js} +17 -17
  194. package/dist/{chunk-1bhva2z9.js → chunk-s39gs49c.js} +7 -7
  195. package/dist/{chunk-73fgm72g.js → chunk-s7935x75.js} +17 -17
  196. package/dist/{chunk-de55jjre.js → chunk-sctt7yx9.js} +17 -17
  197. package/dist/{chunk-mb2gpwwf.js → chunk-scwvtw37.js} +3 -3
  198. package/dist/{chunk-jne71s1f.js → chunk-sdpfckq4.js} +17 -17
  199. package/dist/{chunk-ycc3xnx0.js → chunk-smb7yb47.js} +6 -6
  200. package/dist/{chunk-cp76dsdp.js → chunk-sr5sk7sh.js} +28 -28
  201. package/dist/{chunk-40tedt0y.js → chunk-t0kqpv7q.js} +2 -2
  202. package/dist/{chunk-2kpzaa7w.js → chunk-t2rzxfs7.js} +3 -3
  203. package/dist/{chunk-t4k75hqs.js → chunk-t3k4q5dt.js} +40 -40
  204. package/dist/{chunk-qvrq1sby.js → chunk-t672ggzy.js} +23 -23
  205. package/dist/{chunk-cg788ab0.js → chunk-t886fdke.js} +1 -1
  206. package/dist/{chunk-zbmxxxz8.js → chunk-tgpkwfc0.js} +18 -18
  207. package/dist/{chunk-1nqaq1rs.js → chunk-tgpnxd61.js} +4 -4
  208. package/dist/{chunk-zmg1pcp3.js → chunk-tpqcvajk.js} +2 -2
  209. package/dist/{chunk-5kp252z6.js → chunk-v0s4hb2r.js} +2 -2
  210. package/dist/{chunk-ymy4xrr8.js → chunk-v5eznp6s.js} +21 -21
  211. package/dist/{chunk-47gy6qkp.js → chunk-v5f1ccgn.js} +2 -2
  212. package/dist/{chunk-yqfz2k9z.js → chunk-v5nej1ch.js} +4 -4
  213. package/dist/{chunk-aftppv3p.js → chunk-vaxm94x8.js} +5 -5
  214. package/dist/{chunk-hsq4vtjy.js → chunk-vjc2ja38.js} +17 -17
  215. package/dist/{chunk-cr6t6rth.js → chunk-vjxxksfk.js} +2 -2
  216. package/dist/{chunk-jqp0q5nk.js → chunk-w250kerx.js} +3 -3
  217. package/dist/{chunk-btkettbr.js → chunk-w3tdfn23.js} +17 -17
  218. package/dist/{chunk-kv1ryvtm.js → chunk-w8wsewqw.js} +18 -18
  219. package/dist/{chunk-6n6jfmce.js → chunk-wcw1fa04.js} +9 -9
  220. package/dist/{chunk-vn56q87z.js → chunk-wep8apav.js} +2 -2
  221. package/dist/{chunk-sfht9xvd.js → chunk-wgqg6g51.js} +1 -1
  222. package/dist/{chunk-ev5p07yh.js → chunk-wmj2tarb.js} +18 -18
  223. package/dist/{chunk-qnmyzsam.js → chunk-x2xbb2s4.js} +1 -1
  224. package/dist/{chunk-sq847dr5.js → chunk-x85b55gt.js} +28 -28
  225. package/dist/{chunk-5w33j8gy.js → chunk-xe06bbax.js} +17 -17
  226. package/dist/{chunk-1k4j1xcf.js → chunk-xg2mj5wq.js} +1 -1
  227. package/dist/{chunk-pthzapbx.js → chunk-xjeqam4f.js} +2 -2
  228. package/dist/{chunk-1p7jfcee.js → chunk-xjnj4cph.js} +18 -18
  229. package/dist/{chunk-zxhezavg.js → chunk-xkfhbsf1.js} +2 -2
  230. package/dist/{chunk-bs6keys0.js → chunk-xpk54cev.js} +21 -21
  231. package/dist/{chunk-7226mgjt.js → chunk-xrktd61k.js} +1 -1
  232. package/dist/{chunk-ztpr96av.js → chunk-xswhp0gq.js} +1 -1
  233. package/dist/{chunk-1pg8s12r.js → chunk-xx7bj6h5.js} +2 -2
  234. package/dist/{chunk-m4bc15mz.js → chunk-xys2sdyd.js} +3 -3
  235. package/dist/{chunk-nx638j6h.js → chunk-yb9yg9eh.js} +18 -18
  236. package/dist/{chunk-3c4qja3e.js → chunk-ykek4ge8.js} +1 -1
  237. package/dist/{chunk-x8eg216f.js → chunk-yp9ftz6g.js} +2 -2
  238. package/dist/{chunk-gq5bbtme.js → chunk-yqjg0a8r.js} +4 -4
  239. package/dist/{chunk-x6tb96y2.js → chunk-yyvyz5kx.js} +17 -17
  240. package/dist/{chunk-j7qwxra8.js → chunk-z0t42mha.js} +17 -17
  241. package/dist/{chunk-6h9n8qbr.js → chunk-z2bj20t0.js} +3 -3
  242. package/dist/{chunk-tanfpxm1.js → chunk-z7wb63ft.js} +19 -19
  243. package/dist/{chunk-rbgjkg3v.js → chunk-z9zqmz8r.js} +17 -17
  244. package/dist/{chunk-mezwt1bt.js → chunk-zekrjwh8.js} +17 -17
  245. package/dist/{chunk-0y3vcsv4.js → chunk-zh2fcxvv.js} +17 -17
  246. package/dist/{chunk-dc4eha8a.js → chunk-zmtnwmfq.js} +30 -30
  247. package/dist/{chunk-0yb4dz9c.js → chunk-zn656x85.js} +1 -1
  248. package/dist/{chunk-r6e45bzh.js → chunk-zvx7hjr6.js} +17 -17
  249. package/dist/cli.js +182 -17
  250. package/package.json +1 -1
  251. package/dist/chunk-z2xxx2sz.js +0 -294
@@ -0,0 +1,1102 @@
1
+ // @bun
2
+ import {
3
+ BUILTIN_PROVIDERS,
4
+ POPULAR_PROVIDERS,
5
+ PROVIDER_KEY_HELP_URLS,
6
+ Select,
7
+ getAvailableProvidersMerged,
8
+ getConnectedProviderId,
9
+ getProviderRouter,
10
+ hasEnvKeyDynamic,
11
+ init_CustomSelect,
12
+ init_presets,
13
+ init_router,
14
+ init_state,
15
+ providerHasAuth,
16
+ setConnectedModel,
17
+ setConnectedProviderId,
18
+ storeProviderApiKey,
19
+ storeProviderGcloudAdc,
20
+ storeProviderOAuthToken
21
+ } from "./chunk-5635sk0j.js";
22
+ import"./chunk-1yzc16qa.js";
23
+ import"./chunk-nn12ezz8.js";
24
+ import"./chunk-xg2mj5wq.js";
25
+ import"./chunk-ykek4ge8.js";
26
+ import"./chunk-pcht3gfq.js";
27
+ import"./chunk-r6knz78j.js";
28
+ import"./chunk-2gzv8nrw.js";
29
+ import"./chunk-743znc5c.js";
30
+ import"./chunk-rvd8vyfs.js";
31
+ import"./chunk-cgfdkzhb.js";
32
+ import"./chunk-bhdt6k7w.js";
33
+ import"./chunk-6wkdqk81.js";
34
+ import"./chunk-5dbk24zg.js";
35
+ import"./chunk-gdmvfdmg.js";
36
+ import"./chunk-xkfhbsf1.js";
37
+ import"./chunk-yp9ftz6g.js";
38
+ import"./chunk-9gbamk79.js";
39
+ import"./chunk-1wa2q75b.js";
40
+ import"./chunk-7rjyn5d3.js";
41
+ import"./chunk-q7h2cve1.js";
42
+ import {
43
+ ThemedBox_default,
44
+ ThemedText,
45
+ init_ink,
46
+ use_input_default
47
+ } from "./chunk-zn656x85.js";
48
+ import"./chunk-7m2nd8da.js";
49
+ import"./chunk-ps49ymvj.js";
50
+ import {
51
+ require_jsx_dev_runtime,
52
+ require_react
53
+ } from "./chunk-g338npwr.js";
54
+ import"./chunk-zk2wsm7d.js";
55
+ import"./chunk-dh739avg.js";
56
+ import"./chunk-ga5faygf.js";
57
+ import"./chunk-hfpyfd75.js";
58
+ import"./chunk-jj1hyewd.js";
59
+ import"./chunk-b1s11z4y.js";
60
+ import"./chunk-4jm600zv.js";
61
+ import"./chunk-yxmz5k16.js";
62
+ import"./chunk-v9smspw2.js";
63
+ import"./chunk-qz2x630m.js";
64
+ import {
65
+ init_source,
66
+ source_default
67
+ } from "./chunk-fq3bhb3m.js";
68
+ import"./chunk-84k64e4a.js";
69
+ import"./chunk-y3py9g5d.js";
70
+ import"./chunk-7pemewz2.js";
71
+ import"./chunk-s4w01jsb.js";
72
+ import"./chunk-c8vn3ynx.js";
73
+ import"./chunk-g0j0t6qk.js";
74
+ import"./chunk-6kpbgc5w.js";
75
+ import"./chunk-3c25bcsw.js";
76
+ import"./chunk-mzdtkccs.js";
77
+ import"./chunk-55wgxwa9.js";
78
+ import"./chunk-5k2gdxnr.js";
79
+ import"./chunk-2qhs9n36.js";
80
+ import"./chunk-f5ma3nh5.js";
81
+ import"./chunk-v1kzp02e.js";
82
+ import"./chunk-p2816w9z.js";
83
+ import"./chunk-0vkfrmqm.js";
84
+ import"./chunk-0xjaqda8.js";
85
+ import"./chunk-mr9df5v8.js";
86
+ import"./chunk-cdz5yb0r.js";
87
+ import"./chunk-f2mhrmww.js";
88
+ import"./chunk-10fdxge0.js";
89
+ import"./chunk-r1v8d6da.js";
90
+ import"./chunk-d3v2fbay.js";
91
+ import"./chunk-qnfx3qtx.js";
92
+ import"./chunk-f2zhqnb6.js";
93
+ import"./chunk-cvp5vayb.js";
94
+ import"./chunk-b5b7h81y.js";
95
+ import"./chunk-nm2cncrq.js";
96
+ import"./chunk-8tnsngw2.js";
97
+ import"./chunk-0rkbrabt.js";
98
+ import"./chunk-7wm5s02e.js";
99
+ import"./chunk-rwagvxh5.js";
100
+ import"./chunk-fbv4apne.js";
101
+ import"./chunk-0fkqze0v.js";
102
+ import"./chunk-2zcaw1jd.js";
103
+ import"./chunk-hqmz36b3.js";
104
+ import"./chunk-4g3v8y12.js";
105
+ import"./chunk-7739pg2c.js";
106
+ import"./chunk-xszk7n10.js";
107
+ import"./chunk-sdj9b9wh.js";
108
+ import {
109
+ __esm,
110
+ __require,
111
+ __toESM
112
+ } from "./chunk-qp2qdcda.js";
113
+
114
+ // src/components/ProviderPicker.tsx
115
+ function getStatusBadge(id, connectedId) {
116
+ if (id === connectedId)
117
+ return "(connected)";
118
+ if (providerHasAuth(id) || hasEnvKeyDynamic(id))
119
+ return "(key detected)";
120
+ return "";
121
+ }
122
+ function filterProviders(providers, query) {
123
+ if (!query)
124
+ return providers;
125
+ const lower = query.toLowerCase();
126
+ return providers.filter((p) => p.id.toLowerCase().includes(lower) || p.name.toLowerCase().includes(lower));
127
+ }
128
+ function buildOptions(providers, connectedId, hasSearch) {
129
+ const popular = providers.filter((p) => POPULAR_PROVIDERS.includes(p.id)).sort((a, b) => POPULAR_PROVIDERS.indexOf(a.id) - POPULAR_PROVIDERS.indexOf(b.id));
130
+ const other = providers.filter((p) => !POPULAR_PROVIDERS.includes(p.id)).sort((a, b) => a.name.localeCompare(b.name));
131
+ const toOption = (p) => ({
132
+ value: p.id,
133
+ label: p.name,
134
+ description: getStatusBadge(p.id, connectedId)
135
+ });
136
+ if (hasSearch) {
137
+ return [...popular.map(toOption), ...other.map(toOption)];
138
+ }
139
+ const options = [];
140
+ if (popular.length > 0) {
141
+ options.push({
142
+ value: "__popular_header",
143
+ label: "Popular",
144
+ disabled: true
145
+ });
146
+ options.push(...popular.map(toOption));
147
+ }
148
+ if (other.length > 0) {
149
+ options.push({
150
+ value: "__other_header",
151
+ label: "Other",
152
+ disabled: true
153
+ });
154
+ options.push(...other.map(toOption));
155
+ }
156
+ return options;
157
+ }
158
+ function ProviderPicker({ onSelect, onCancel }) {
159
+ const connectedId = getConnectedProviderId();
160
+ const [providers, setProviders] = import_react.useState([]);
161
+ const [loading, setLoading] = import_react.useState(true);
162
+ const [search, setSearch] = import_react.useState("");
163
+ import_react.useEffect(() => {
164
+ getAvailableProvidersMerged().then(setProviders).finally(() => setLoading(false));
165
+ }, []);
166
+ if (loading) {
167
+ return /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
168
+ flexDirection: "column",
169
+ children: /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
170
+ dimColor: true,
171
+ children: "Loading providers..."
172
+ }, undefined, false, undefined, this)
173
+ }, undefined, false, undefined, this);
174
+ }
175
+ const filtered = filterProviders(providers, search);
176
+ const options = buildOptions(filtered, connectedId, search.length > 0);
177
+ const searchOption = {
178
+ value: "__search",
179
+ type: "input",
180
+ label: "Search",
181
+ placeholder: "Search",
182
+ onChange: (value) => setSearch(value),
183
+ allowEmptySubmitToCancel: true
184
+ };
185
+ const allOptions = [searchOption, ...options];
186
+ return /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
187
+ flexDirection: "column",
188
+ children: [
189
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
190
+ marginBottom: 1,
191
+ justifyContent: "space-between",
192
+ children: [
193
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
194
+ bold: true,
195
+ children: "Connect a provider"
196
+ }, undefined, false, undefined, this),
197
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
198
+ dimColor: true,
199
+ children: "esc"
200
+ }, undefined, false, undefined, this)
201
+ ]
202
+ }, undefined, true, undefined, this),
203
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(Select, {
204
+ options: allOptions,
205
+ onChange: (value) => {
206
+ if (value === "__search" || value === "__popular_header" || value === "__other_header")
207
+ return;
208
+ onSelect(value);
209
+ },
210
+ onCancel: onCancel ?? (() => {}),
211
+ defaultValue: connectedId,
212
+ visibleOptionCount: 20,
213
+ hideIndexes: true
214
+ }, undefined, false, undefined, this),
215
+ filtered.length === 0 && search && /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
216
+ marginTop: 1,
217
+ children: /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
218
+ dimColor: true,
219
+ children: "No providers found"
220
+ }, undefined, false, undefined, this)
221
+ }, undefined, false, undefined, this)
222
+ ]
223
+ }, undefined, true, undefined, this);
224
+ }
225
+ var import_react, jsx_dev_runtime;
226
+ var init_ProviderPicker = __esm(() => {
227
+ init_ink();
228
+ init_CustomSelect();
229
+ init_presets();
230
+ init_state();
231
+ import_react = __toESM(require_react(), 1);
232
+ jsx_dev_runtime = __toESM(require_jsx_dev_runtime(), 1);
233
+ });
234
+
235
+ // src/components/ApiKeyInput.tsx
236
+ function ApiKeyInput({ providerId, providerName, onSubmit, onCancel }) {
237
+ const [value, setValue] = import_react2.useState("");
238
+ const helpUrl = PROVIDER_KEY_HELP_URLS[providerId];
239
+ use_input_default((input, key) => {
240
+ if (key.escape && onCancel) {
241
+ onCancel();
242
+ return;
243
+ }
244
+ if (key.return && value.trim()) {
245
+ onSubmit(value.trim());
246
+ return;
247
+ }
248
+ if (key.backspace || key.delete) {
249
+ setValue((v) => v.slice(0, -1));
250
+ return;
251
+ }
252
+ if (input && !key.ctrl && !key.meta) {
253
+ setValue((v) => v + input);
254
+ }
255
+ });
256
+ const masked = "*".repeat(value.length);
257
+ return /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedBox_default, {
258
+ flexDirection: "column",
259
+ children: [
260
+ /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedBox_default, {
261
+ marginBottom: 1,
262
+ children: /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedText, {
263
+ bold: true,
264
+ children: [
265
+ "Connect to ",
266
+ providerName
267
+ ]
268
+ }, undefined, true, undefined, this)
269
+ }, undefined, false, undefined, this),
270
+ /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedBox_default, {
271
+ children: [
272
+ /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedText, {
273
+ children: "API Key: "
274
+ }, undefined, false, undefined, this),
275
+ /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedText, {
276
+ children: masked || "Enter your API key..."
277
+ }, undefined, false, undefined, this)
278
+ ]
279
+ }, undefined, true, undefined, this),
280
+ helpUrl && /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedBox_default, {
281
+ marginTop: 1,
282
+ children: /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedText, {
283
+ dimColor: true,
284
+ children: [
285
+ "Get your key at: ",
286
+ helpUrl
287
+ ]
288
+ }, undefined, true, undefined, this)
289
+ }, undefined, false, undefined, this),
290
+ /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedBox_default, {
291
+ marginTop: 1,
292
+ children: /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedText, {
293
+ dimColor: true,
294
+ children: "enter confirm esc back"
295
+ }, undefined, false, undefined, this)
296
+ }, undefined, false, undefined, this)
297
+ ]
298
+ }, undefined, true, undefined, this);
299
+ }
300
+ var import_react2, jsx_dev_runtime2;
301
+ var init_ApiKeyInput = __esm(() => {
302
+ init_ink();
303
+ init_presets();
304
+ import_react2 = __toESM(require_react(), 1);
305
+ jsx_dev_runtime2 = __toESM(require_jsx_dev_runtime(), 1);
306
+ });
307
+
308
+ // src/services/providers/copilot-auth.ts
309
+ import { setTimeout as sleep } from "timers/promises";
310
+ function normalizeDomain(url) {
311
+ return url.replace(/^https?:\/\//, "").replace(/\/$/, "");
312
+ }
313
+ function getUrls(domain) {
314
+ return {
315
+ deviceCodeUrl: `https://${domain}/login/device/code`,
316
+ accessTokenUrl: `https://${domain}/login/oauth/access_token`
317
+ };
318
+ }
319
+ async function startCopilotDeviceAuth(domain, enterpriseUrl) {
320
+ const urls = getUrls(domain);
321
+ const deviceResponse = await fetch(urls.deviceCodeUrl, {
322
+ method: "POST",
323
+ headers: {
324
+ Accept: "application/json",
325
+ "Content-Type": "application/json"
326
+ },
327
+ body: JSON.stringify({
328
+ client_id: CLIENT_ID,
329
+ scope: "read:user"
330
+ })
331
+ });
332
+ if (!deviceResponse.ok) {
333
+ throw new Error(`Failed to initiate device authorization (${deviceResponse.status})`);
334
+ }
335
+ const deviceData = await deviceResponse.json();
336
+ return {
337
+ userCode: deviceData.user_code,
338
+ verificationUri: deviceData.verification_uri,
339
+ async poll() {
340
+ const startTime = Date.now();
341
+ let interval = deviceData.interval;
342
+ while (Date.now() - startTime < POLLING_TIMEOUT_MS) {
343
+ await sleep(interval * 1000 + POLLING_SAFETY_MARGIN_MS);
344
+ const response = await fetch(urls.accessTokenUrl, {
345
+ method: "POST",
346
+ headers: {
347
+ Accept: "application/json",
348
+ "Content-Type": "application/json"
349
+ },
350
+ body: JSON.stringify({
351
+ client_id: CLIENT_ID,
352
+ device_code: deviceData.device_code,
353
+ grant_type: "urn:ietf:params:oauth:grant-type:device_code"
354
+ })
355
+ });
356
+ if (!response.ok) {
357
+ return { type: "error", message: "Authorization request failed" };
358
+ }
359
+ const data = await response.json();
360
+ if (data.access_token) {
361
+ return {
362
+ type: "success",
363
+ token: data.access_token,
364
+ enterpriseUrl
365
+ };
366
+ }
367
+ if (data.error === "authorization_pending") {
368
+ continue;
369
+ }
370
+ if (data.error === "slow_down") {
371
+ const serverInterval = data.interval;
372
+ if (serverInterval && typeof serverInterval === "number" && serverInterval > 0) {
373
+ interval = serverInterval;
374
+ } else {
375
+ interval = interval + 5;
376
+ }
377
+ continue;
378
+ }
379
+ if (data.error === "expired_token") {
380
+ return { type: "error", message: "Authorization timed out" };
381
+ }
382
+ if (data.error === "access_denied") {
383
+ return { type: "error", message: "Authorization denied" };
384
+ }
385
+ return {
386
+ type: "error",
387
+ message: data.error ?? "Unknown error"
388
+ };
389
+ }
390
+ return { type: "error", message: "Authorization timed out" };
391
+ }
392
+ };
393
+ }
394
+ function validateEnterpriseUrl(input) {
395
+ if (!input.trim())
396
+ return null;
397
+ try {
398
+ const url = input.includes("://") ? new URL(input) : new URL(`https://${input}`);
399
+ if (!url.hostname)
400
+ return null;
401
+ return normalizeDomain(url.href);
402
+ } catch {
403
+ return null;
404
+ }
405
+ }
406
+ var CLIENT_ID = "Ov23li8tweQw6odWQebz", POLLING_SAFETY_MARGIN_MS = 3000, POLLING_TIMEOUT_MS;
407
+ var init_copilot_auth = __esm(() => {
408
+ POLLING_TIMEOUT_MS = 5 * 60 * 1000;
409
+ });
410
+
411
+ // src/commands/connect/connect.tsx
412
+ function finishConnect(providerId, onDone) {
413
+ setConnectedProviderId(providerId);
414
+ getProviderRouter().setConnectedProvider(providerId);
415
+ const name = BUILTIN_PROVIDERS[providerId]?.name ?? providerId;
416
+ onDone(`Connected to ${source_default.bold(name)}`);
417
+ }
418
+ function CopilotDeployPicker({
419
+ onSelect,
420
+ onCancel
421
+ }) {
422
+ const options = [
423
+ {
424
+ value: "public",
425
+ label: "GitHub.com Public"
426
+ },
427
+ {
428
+ value: "enterprise",
429
+ label: "GitHub Enterprise",
430
+ description: "Data residency or self-hosted"
431
+ }
432
+ ];
433
+ return /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
434
+ flexDirection: "column",
435
+ children: [
436
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
437
+ marginBottom: 1,
438
+ justifyContent: "space-between",
439
+ children: [
440
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
441
+ bold: true,
442
+ children: "Select GitHub deployment type"
443
+ }, undefined, false, undefined, this),
444
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
445
+ dimColor: true,
446
+ children: "esc"
447
+ }, undefined, false, undefined, this)
448
+ ]
449
+ }, undefined, true, undefined, this),
450
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(Select, {
451
+ options,
452
+ onChange: onSelect,
453
+ onCancel,
454
+ hideIndexes: true
455
+ }, undefined, false, undefined, this)
456
+ ]
457
+ }, undefined, true, undefined, this);
458
+ }
459
+ function EnterpriseUrlInput({
460
+ onSubmit,
461
+ onCancel
462
+ }) {
463
+ const [value, setValue] = import_react3.useState("");
464
+ const [error, setError] = import_react3.useState("");
465
+ use_input_default((input, key) => {
466
+ if (key.escape) {
467
+ onCancel();
468
+ return;
469
+ }
470
+ if (key.return && value.trim()) {
471
+ const domain = validateEnterpriseUrl(value.trim());
472
+ if (!domain) {
473
+ setError("Please enter a valid URL (e.g., company.ghe.com)");
474
+ return;
475
+ }
476
+ setError("");
477
+ onSubmit(domain);
478
+ return;
479
+ }
480
+ if (key.backspace || key.delete) {
481
+ setValue((v) => v.slice(0, -1));
482
+ setError("");
483
+ return;
484
+ }
485
+ if (input && !key.ctrl && !key.meta) {
486
+ setValue((v) => v + input);
487
+ setError("");
488
+ }
489
+ });
490
+ return /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
491
+ flexDirection: "column",
492
+ children: [
493
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
494
+ marginBottom: 1,
495
+ children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
496
+ bold: true,
497
+ children: "Enter your GitHub Enterprise URL or domain"
498
+ }, undefined, false, undefined, this)
499
+ }, undefined, false, undefined, this),
500
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
501
+ children: [
502
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
503
+ children: "URL: "
504
+ }, undefined, false, undefined, this),
505
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
506
+ children: value || "company.ghe.com or https://company.ghe.com"
507
+ }, undefined, false, undefined, this)
508
+ ]
509
+ }, undefined, true, undefined, this),
510
+ error && /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
511
+ marginTop: 1,
512
+ children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
513
+ color: "red",
514
+ children: error
515
+ }, undefined, false, undefined, this)
516
+ }, undefined, false, undefined, this),
517
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
518
+ marginTop: 1,
519
+ children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
520
+ dimColor: true,
521
+ children: "enter confirm esc back"
522
+ }, undefined, false, undefined, this)
523
+ }, undefined, false, undefined, this)
524
+ ]
525
+ }, undefined, true, undefined, this);
526
+ }
527
+ function CopilotOAuthFlow({
528
+ domain,
529
+ enterpriseUrl,
530
+ onSuccess,
531
+ onError,
532
+ onCancel
533
+ }) {
534
+ const [status, setStatus] = import_react3.useState("starting");
535
+ const [userCode, setUserCode] = import_react3.useState("");
536
+ const [verificationUri, setVerificationUri] = import_react3.useState("");
537
+ const [errorMessage, setErrorMessage] = import_react3.useState("");
538
+ use_input_default((_input, key) => {
539
+ if (key.escape) {
540
+ onCancel();
541
+ }
542
+ });
543
+ import_react3.useEffect(() => {
544
+ let cancelled = false;
545
+ async function run() {
546
+ try {
547
+ const result = await startCopilotDeviceAuth(domain, enterpriseUrl);
548
+ if (cancelled)
549
+ return;
550
+ setUserCode(result.userCode);
551
+ setVerificationUri(result.verificationUri);
552
+ setStatus("waiting");
553
+ try {
554
+ const { exec } = await import("child_process");
555
+ exec(`open "${result.verificationUri}"`);
556
+ } catch {}
557
+ const pollResult = await result.poll();
558
+ if (cancelled)
559
+ return;
560
+ if (pollResult.type === "success") {
561
+ onSuccess(pollResult.token, pollResult.enterpriseUrl);
562
+ } else {
563
+ setStatus("error");
564
+ setErrorMessage(pollResult.message);
565
+ onError(pollResult.message);
566
+ }
567
+ } catch (err) {
568
+ if (cancelled)
569
+ return;
570
+ setStatus("error");
571
+ const msg = err instanceof Error ? err.message : "Unknown error";
572
+ setErrorMessage(msg);
573
+ onError(msg);
574
+ }
575
+ }
576
+ run();
577
+ return () => {
578
+ cancelled = true;
579
+ };
580
+ }, [domain, enterpriseUrl]);
581
+ if (status === "starting") {
582
+ return /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
583
+ flexDirection: "column",
584
+ children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
585
+ children: "Initiating GitHub authorization..."
586
+ }, undefined, false, undefined, this)
587
+ }, undefined, false, undefined, this);
588
+ }
589
+ if (status === "error") {
590
+ return /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
591
+ flexDirection: "column",
592
+ children: [
593
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
594
+ color: "red",
595
+ children: [
596
+ "Authorization failed: ",
597
+ errorMessage
598
+ ]
599
+ }, undefined, true, undefined, this),
600
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
601
+ marginTop: 1,
602
+ children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
603
+ dimColor: true,
604
+ children: "esc to go back"
605
+ }, undefined, false, undefined, this)
606
+ }, undefined, false, undefined, this)
607
+ ]
608
+ }, undefined, true, undefined, this);
609
+ }
610
+ return /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
611
+ flexDirection: "column",
612
+ children: [
613
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
614
+ marginBottom: 1,
615
+ children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
616
+ bold: true,
617
+ children: "GitHub Copilot Authorization"
618
+ }, undefined, false, undefined, this)
619
+ }, undefined, false, undefined, this),
620
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
621
+ children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
622
+ children: [
623
+ "Enter code ",
624
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
625
+ bold: true,
626
+ color: "suggestion",
627
+ children: userCode
628
+ }, undefined, false, undefined, this),
629
+ " at",
630
+ " ",
631
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
632
+ underline: true,
633
+ children: verificationUri
634
+ }, undefined, false, undefined, this)
635
+ ]
636
+ }, undefined, true, undefined, this)
637
+ }, undefined, false, undefined, this),
638
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
639
+ marginTop: 1,
640
+ children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
641
+ dimColor: true,
642
+ children: "Waiting for authorization..."
643
+ }, undefined, false, undefined, this)
644
+ }, undefined, false, undefined, this),
645
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
646
+ marginTop: 1,
647
+ children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
648
+ dimColor: true,
649
+ children: "esc cancel"
650
+ }, undefined, false, undefined, this)
651
+ }, undefined, false, undefined, this)
652
+ ]
653
+ }, undefined, true, undefined, this);
654
+ }
655
+ function VertexGcloudCheck({
656
+ onReady,
657
+ onCancel
658
+ }) {
659
+ const [status, setStatus] = import_react3.useState("checking");
660
+ use_input_default((_input, key) => {
661
+ if (key.escape)
662
+ onCancel();
663
+ });
664
+ import_react3.useEffect(() => {
665
+ const result = Bun.spawnSync(["which", "gcloud"]);
666
+ if (result.exitCode === 0) {
667
+ onReady();
668
+ } else {
669
+ setStatus("missing");
670
+ }
671
+ }, []);
672
+ if (status === "checking") {
673
+ return /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
674
+ flexDirection: "column",
675
+ children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
676
+ children: "Checking for gcloud CLI..."
677
+ }, undefined, false, undefined, this)
678
+ }, undefined, false, undefined, this);
679
+ }
680
+ return /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
681
+ flexDirection: "column",
682
+ children: [
683
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
684
+ marginBottom: 1,
685
+ children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
686
+ color: "red",
687
+ bold: true,
688
+ children: "gcloud CLI not found"
689
+ }, undefined, false, undefined, this)
690
+ }, undefined, false, undefined, this),
691
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
692
+ children: "Google Vertex AI requires the gcloud CLI for authentication."
693
+ }, undefined, false, undefined, this),
694
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
695
+ marginTop: 1,
696
+ children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
697
+ children: [
698
+ "Install it from:",
699
+ " ",
700
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
701
+ underline: true,
702
+ children: "https://cloud.google.com/sdk/docs/install"
703
+ }, undefined, false, undefined, this)
704
+ ]
705
+ }, undefined, true, undefined, this)
706
+ }, undefined, false, undefined, this),
707
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
708
+ marginTop: 1,
709
+ children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
710
+ dimColor: true,
711
+ children: "After installing, run: gcloud auth application-default login"
712
+ }, undefined, false, undefined, this)
713
+ }, undefined, false, undefined, this),
714
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
715
+ marginTop: 1,
716
+ children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
717
+ dimColor: true,
718
+ children: "esc back"
719
+ }, undefined, false, undefined, this)
720
+ }, undefined, false, undefined, this)
721
+ ]
722
+ }, undefined, true, undefined, this);
723
+ }
724
+ function VertexProjectInput({
725
+ onSubmit,
726
+ onCancel
727
+ }) {
728
+ const [value, setValue] = import_react3.useState("");
729
+ const [error, setError] = import_react3.useState("");
730
+ use_input_default((input, key) => {
731
+ if (key.escape) {
732
+ onCancel();
733
+ return;
734
+ }
735
+ if (key.return && value.trim()) {
736
+ const trimmed = value.trim();
737
+ if (!/^[a-z][a-z0-9-]*[a-z0-9]$/.test(trimmed) || trimmed.length < 6) {
738
+ setError("Invalid project ID (lowercase letters, digits, hyphens, min 6 chars)");
739
+ return;
740
+ }
741
+ setError("");
742
+ onSubmit(trimmed);
743
+ return;
744
+ }
745
+ if (key.backspace || key.delete) {
746
+ setValue((v) => v.slice(0, -1));
747
+ setError("");
748
+ return;
749
+ }
750
+ if (input && !key.ctrl && !key.meta) {
751
+ setValue((v) => v + input);
752
+ setError("");
753
+ }
754
+ });
755
+ return /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
756
+ flexDirection: "column",
757
+ children: [
758
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
759
+ marginBottom: 1,
760
+ children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
761
+ bold: true,
762
+ children: "Enter your GCP project ID"
763
+ }, undefined, false, undefined, this)
764
+ }, undefined, false, undefined, this),
765
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
766
+ children: [
767
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
768
+ children: "Project ID: "
769
+ }, undefined, false, undefined, this),
770
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
771
+ children: value || source_default.dim("my-project-id")
772
+ }, undefined, false, undefined, this)
773
+ ]
774
+ }, undefined, true, undefined, this),
775
+ error && /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
776
+ marginTop: 1,
777
+ children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
778
+ color: "red",
779
+ children: error
780
+ }, undefined, false, undefined, this)
781
+ }, undefined, false, undefined, this),
782
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
783
+ marginTop: 1,
784
+ children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
785
+ dimColor: true,
786
+ children: "enter confirm esc back"
787
+ }, undefined, false, undefined, this)
788
+ }, undefined, false, undefined, this)
789
+ ]
790
+ }, undefined, true, undefined, this);
791
+ }
792
+ function VertexRegionPicker({
793
+ onSelect,
794
+ onCancel
795
+ }) {
796
+ return /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
797
+ flexDirection: "column",
798
+ children: [
799
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
800
+ marginBottom: 1,
801
+ justifyContent: "space-between",
802
+ children: [
803
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
804
+ bold: true,
805
+ children: "Select Vertex AI region"
806
+ }, undefined, false, undefined, this),
807
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
808
+ dimColor: true,
809
+ children: "esc back"
810
+ }, undefined, false, undefined, this)
811
+ ]
812
+ }, undefined, true, undefined, this),
813
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(Select, {
814
+ options: VERTEX_REGIONS,
815
+ onChange: onSelect,
816
+ onCancel,
817
+ hideIndexes: true
818
+ }, undefined, false, undefined, this)
819
+ ]
820
+ }, undefined, true, undefined, this);
821
+ }
822
+ function VertexAuthFlow({
823
+ project,
824
+ region,
825
+ onSuccess,
826
+ onError,
827
+ onCancel
828
+ }) {
829
+ const [status, setStatus] = import_react3.useState("checking");
830
+ const [errorMessage, setErrorMessage] = import_react3.useState("");
831
+ use_input_default((_input, key) => {
832
+ if (key.escape)
833
+ onCancel();
834
+ if (key.return && status === "no-adc") {
835
+ setStatus("checking");
836
+ }
837
+ if (key.return && status === "error") {
838
+ setStatus("checking");
839
+ }
840
+ });
841
+ import_react3.useEffect(() => {
842
+ if (status !== "checking")
843
+ return;
844
+ const result = Bun.spawnSync(["gcloud", "auth", "application-default", "print-access-token"]);
845
+ const token = result.stdout.toString().trim();
846
+ if (result.exitCode !== 0 || !token) {
847
+ setStatus("no-adc");
848
+ return;
849
+ }
850
+ setStatus("success");
851
+ onSuccess();
852
+ }, [status, project, region]);
853
+ if (status === "checking") {
854
+ return /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
855
+ flexDirection: "column",
856
+ children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
857
+ children: "Checking ADC credentials..."
858
+ }, undefined, false, undefined, this)
859
+ }, undefined, false, undefined, this);
860
+ }
861
+ if (status === "no-adc") {
862
+ return /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
863
+ flexDirection: "column",
864
+ children: [
865
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
866
+ marginBottom: 1,
867
+ children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
868
+ bold: true,
869
+ children: "Google Cloud ADC not configured"
870
+ }, undefined, false, undefined, this)
871
+ }, undefined, false, undefined, this),
872
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
873
+ children: "Please run the following command in another terminal:"
874
+ }, undefined, false, undefined, this),
875
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
876
+ marginTop: 1,
877
+ children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
878
+ color: "suggestion",
879
+ bold: true,
880
+ children: "gcloud auth application-default login"
881
+ }, undefined, false, undefined, this)
882
+ }, undefined, false, undefined, this),
883
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
884
+ marginTop: 1,
885
+ children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
886
+ dimColor: true,
887
+ children: "This will open a browser for Google authentication."
888
+ }, undefined, false, undefined, this)
889
+ }, undefined, false, undefined, this),
890
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
891
+ marginTop: 1,
892
+ children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
893
+ dimColor: true,
894
+ children: "enter retry after login esc back"
895
+ }, undefined, false, undefined, this)
896
+ }, undefined, false, undefined, this)
897
+ ]
898
+ }, undefined, true, undefined, this);
899
+ }
900
+ if (status === "error") {
901
+ return /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
902
+ flexDirection: "column",
903
+ children: [
904
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
905
+ color: "red",
906
+ children: [
907
+ "Connection failed: ",
908
+ errorMessage
909
+ ]
910
+ }, undefined, true, undefined, this),
911
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
912
+ marginTop: 1,
913
+ children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
914
+ dimColor: true,
915
+ children: [
916
+ "Check that Vertex AI API is enabled for project ",
917
+ source_default.bold(project)
918
+ ]
919
+ }, undefined, true, undefined, this)
920
+ }, undefined, false, undefined, this),
921
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
922
+ marginTop: 1,
923
+ children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
924
+ dimColor: true,
925
+ children: "enter retry esc back"
926
+ }, undefined, false, undefined, this)
927
+ }, undefined, false, undefined, this)
928
+ ]
929
+ }, undefined, true, undefined, this);
930
+ }
931
+ return /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
932
+ flexDirection: "column",
933
+ children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
934
+ color: "green",
935
+ children: "Connected to Vertex AI"
936
+ }, undefined, false, undefined, this)
937
+ }, undefined, false, undefined, this);
938
+ }
939
+ function ConnectFlow({
940
+ onDone
941
+ }) {
942
+ const [phase, setPhase] = import_react3.useState("pick");
943
+ const [selectedId, setSelectedId] = import_react3.useState(null);
944
+ const [copilotDomain, setCopilotDomain] = import_react3.useState("github.com");
945
+ const [copilotEnterpriseUrl, setCopilotEnterpriseUrl] = import_react3.useState(undefined);
946
+ const [vertexProject, setVertexProject] = import_react3.useState("");
947
+ const [vertexRegion, setVertexRegion] = import_react3.useState("us-central1");
948
+ function handleProviderSelect(providerId) {
949
+ if (providerId === "github-copilot") {
950
+ setSelectedId(providerId);
951
+ setPhase("copilot-deploy");
952
+ return;
953
+ }
954
+ if (providerId === "vertex-ai") {
955
+ setSelectedId(providerId);
956
+ setPhase("vertex-check-gcloud");
957
+ return;
958
+ }
959
+ if (providerHasAuth(providerId)) {
960
+ finishConnect(providerId, onDone);
961
+ return;
962
+ }
963
+ setSelectedId(providerId);
964
+ setPhase("auth");
965
+ }
966
+ function handleApiKeySubmit(key) {
967
+ if (!selectedId)
968
+ return;
969
+ storeProviderApiKey(selectedId, key);
970
+ finishConnect(selectedId, onDone);
971
+ }
972
+ function handleCancel() {
973
+ if (phase !== "pick") {
974
+ setPhase("pick");
975
+ setSelectedId(null);
976
+ setCopilotDomain("github.com");
977
+ setCopilotEnterpriseUrl(undefined);
978
+ setVertexProject("");
979
+ setVertexRegion("us-central1");
980
+ return;
981
+ }
982
+ onDone("Cancelled", { display: "system" });
983
+ }
984
+ if (phase === "copilot-deploy") {
985
+ return /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(CopilotDeployPicker, {
986
+ onSelect: (type) => {
987
+ if (type === "public") {
988
+ setCopilotDomain("github.com");
989
+ setCopilotEnterpriseUrl(undefined);
990
+ setPhase("copilot-oauth");
991
+ } else {
992
+ setPhase("copilot-enterprise-url");
993
+ }
994
+ },
995
+ onCancel: handleCancel
996
+ }, undefined, false, undefined, this);
997
+ }
998
+ if (phase === "copilot-enterprise-url") {
999
+ return /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(EnterpriseUrlInput, {
1000
+ onSubmit: (domain) => {
1001
+ setCopilotDomain(domain);
1002
+ setCopilotEnterpriseUrl(domain);
1003
+ setPhase("copilot-oauth");
1004
+ },
1005
+ onCancel: handleCancel
1006
+ }, undefined, false, undefined, this);
1007
+ }
1008
+ if (phase === "copilot-oauth") {
1009
+ return /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(CopilotOAuthFlow, {
1010
+ domain: copilotDomain,
1011
+ enterpriseUrl: copilotEnterpriseUrl,
1012
+ onSuccess: (token, entUrl) => {
1013
+ storeProviderOAuthToken("github-copilot", token, entUrl);
1014
+ finishConnect("github-copilot", onDone);
1015
+ },
1016
+ onError: () => {},
1017
+ onCancel: handleCancel
1018
+ }, undefined, false, undefined, this);
1019
+ }
1020
+ if (phase === "vertex-check-gcloud") {
1021
+ return /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(VertexGcloudCheck, {
1022
+ onReady: () => setPhase("vertex-project"),
1023
+ onCancel: handleCancel
1024
+ }, undefined, false, undefined, this);
1025
+ }
1026
+ if (phase === "vertex-project") {
1027
+ return /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(VertexProjectInput, {
1028
+ onSubmit: (project) => {
1029
+ setVertexProject(project);
1030
+ setPhase("vertex-region");
1031
+ },
1032
+ onCancel: handleCancel
1033
+ }, undefined, false, undefined, this);
1034
+ }
1035
+ if (phase === "vertex-region") {
1036
+ return /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(VertexRegionPicker, {
1037
+ onSelect: (region) => {
1038
+ setVertexRegion(region);
1039
+ setPhase("vertex-auth");
1040
+ },
1041
+ onCancel: handleCancel
1042
+ }, undefined, false, undefined, this);
1043
+ }
1044
+ if (phase === "vertex-auth") {
1045
+ return /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(VertexAuthFlow, {
1046
+ project: vertexProject,
1047
+ region: vertexRegion,
1048
+ onSuccess: () => {
1049
+ storeProviderGcloudAdc("vertex-ai", vertexProject, vertexRegion);
1050
+ setConnectedModel("google/gemini-2.5-flash");
1051
+ finishConnect("vertex-ai", onDone);
1052
+ },
1053
+ onError: () => {},
1054
+ onCancel: handleCancel
1055
+ }, undefined, false, undefined, this);
1056
+ }
1057
+ if (phase === "auth" && selectedId) {
1058
+ const name = BUILTIN_PROVIDERS[selectedId]?.name ?? selectedId;
1059
+ return /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ApiKeyInput, {
1060
+ providerId: selectedId,
1061
+ providerName: name,
1062
+ onSubmit: handleApiKeySubmit,
1063
+ onCancel: handleCancel
1064
+ }, undefined, false, undefined, this);
1065
+ }
1066
+ return /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ProviderPicker, {
1067
+ onSelect: handleProviderSelect,
1068
+ onCancel: handleCancel
1069
+ }, undefined, false, undefined, this);
1070
+ }
1071
+ var import_react3, jsx_dev_runtime3, VERTEX_REGIONS, call = async (onDone, _context, _args) => {
1072
+ return /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ConnectFlow, {
1073
+ onDone
1074
+ }, undefined, false, undefined, this);
1075
+ };
1076
+ var init_connect = __esm(() => {
1077
+ init_source();
1078
+ init_ink();
1079
+ init_CustomSelect();
1080
+ init_ProviderPicker();
1081
+ init_ApiKeyInput();
1082
+ init_presets();
1083
+ init_state();
1084
+ init_router();
1085
+ init_copilot_auth();
1086
+ import_react3 = __toESM(require_react(), 1);
1087
+ jsx_dev_runtime3 = __toESM(require_jsx_dev_runtime(), 1);
1088
+ VERTEX_REGIONS = [
1089
+ { value: "us-central1", label: "us-central1", description: "Iowa (default)" },
1090
+ { value: "us-east1", label: "us-east1", description: "South Carolina" },
1091
+ { value: "us-west1", label: "us-west1", description: "Oregon" },
1092
+ { value: "europe-west1", label: "europe-west1", description: "Belgium" },
1093
+ { value: "europe-west4", label: "europe-west4", description: "Netherlands" },
1094
+ { value: "asia-northeast1", label: "asia-northeast1", description: "Tokyo" },
1095
+ { value: "asia-southeast1", label: "asia-southeast1", description: "Singapore" }
1096
+ ];
1097
+ });
1098
+ init_connect();
1099
+
1100
+ export {
1101
+ call
1102
+ };