@ghfs/cli 0.0.4 → 0.1.1

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 (335) hide show
  1. package/dist/cli.mjs +132 -3068
  2. package/dist/dir.d.mts +4 -0
  3. package/dist/dir.mjs +5 -0
  4. package/dist/{factory-DYHQBeCz.mjs → factory-DmX3S7tf.mjs} +350 -5
  5. package/dist/index.d.mts +2 -195
  6. package/dist/index.mjs +1 -1
  7. package/dist/provider-DCIsHVeA.d.mts +249 -0
  8. package/dist/server/index.d.mts +330 -0
  9. package/dist/server/index.mjs +2 -0
  10. package/dist/server-BwSU4kqr.mjs +3518 -0
  11. package/dist/ui/200.html +1 -1
  12. package/dist/ui/404.html +1 -1
  13. package/dist/ui/_nuxt/2UxHyX5q.js +1 -0
  14. package/dist/ui/_nuxt/32ctXXKs.js +1 -0
  15. package/dist/ui/_nuxt/3e1v2bzS.js +1 -0
  16. package/dist/ui/_nuxt/4A_iFExJ.js +1 -0
  17. package/dist/ui/_nuxt/5VeTt0Ye.js +1 -0
  18. package/dist/ui/_nuxt/5i3qLPDT.js +1 -0
  19. package/dist/ui/_nuxt/85-TOEBH.js +1 -0
  20. package/dist/ui/_nuxt/8syuri0t.js +1 -0
  21. package/dist/ui/_nuxt/B0m2ddpp.js +1 -0
  22. package/dist/ui/_nuxt/B1dDrJ26.js +1 -0
  23. package/dist/ui/_nuxt/B1yitclQ.js +1 -0
  24. package/dist/ui/_nuxt/B5q1GTce.js +1 -0
  25. package/dist/ui/_nuxt/B6aJPvgy.js +1 -0
  26. package/dist/ui/_nuxt/B6eN_cS4.js +1 -0
  27. package/dist/ui/_nuxt/B7c-h3xW.js +1 -0
  28. package/dist/ui/_nuxt/B7mTdjB0.js +1 -0
  29. package/dist/ui/_nuxt/BA47KaF1.js +1 -0
  30. package/dist/ui/_nuxt/BBf5iR-q.js +1 -0
  31. package/dist/ui/_nuxt/BEDo0Tqx.js +1 -0
  32. package/dist/ui/_nuxt/BERRCDM3.js +1 -0
  33. package/dist/ui/_nuxt/BETggiCN.js +1 -0
  34. package/dist/ui/_nuxt/BEwlwnbL.js +1 -0
  35. package/dist/ui/_nuxt/BFfxhgS-.js +1 -0
  36. package/dist/ui/_nuxt/BGJmEYvX.js +1 -0
  37. package/dist/ui/_nuxt/BH7IYjvW.js +1 -0
  38. package/dist/ui/_nuxt/BIGW1oBm.js +1 -0
  39. package/dist/ui/_nuxt/BIv1doCn.js +1 -0
  40. package/dist/ui/_nuxt/BJDFO7_C.js +1 -0
  41. package/dist/ui/_nuxt/BLtJtn59.js +1 -0
  42. package/dist/ui/_nuxt/BM1_JUlF.js +1 -0
  43. package/dist/ui/_nuxt/BMWR74SV.js +1 -0
  44. package/dist/ui/_nuxt/BPQ3VLAy.js +1 -0
  45. package/dist/ui/_nuxt/BQ8w6xss.js +1 -0
  46. package/dist/ui/_nuxt/BRHolxvo.js +1 -0
  47. package/dist/ui/_nuxt/BRZ36xJF.js +1 -0
  48. package/dist/ui/_nuxt/BTJTHyun.js +1 -0
  49. package/dist/ui/_nuxt/BTifaqeh.js +1 -0
  50. package/dist/ui/_nuxt/BUtzH8cE.js +1 -0
  51. package/dist/ui/_nuxt/BUw7H-hv.js +1 -0
  52. package/dist/ui/_nuxt/BV7otONQ.js +1 -0
  53. package/dist/ui/_nuxt/BVQ-GDCI.js +1 -0
  54. package/dist/ui/_nuxt/BVkGXMyj.js +1 -0
  55. package/dist/ui/_nuxt/BWvSN4gD.js +1 -0
  56. package/dist/ui/_nuxt/BXkSAIEj.js +1 -0
  57. package/dist/ui/_nuxt/BYunw83y.js +1 -0
  58. package/dist/ui/_nuxt/BZvkOJ9d.js +1 -0
  59. package/dist/ui/_nuxt/B_m7g4N7.js +1 -0
  60. package/dist/ui/_nuxt/BcOcwvcX.js +1 -0
  61. package/dist/ui/_nuxt/BcVCzyr7.js +1 -0
  62. package/dist/ui/_nuxt/BcllPdc-.js +1 -0
  63. package/dist/ui/_nuxt/BdImnpbu.js +1 -0
  64. package/dist/ui/_nuxt/BdnUsdx6.js +1 -0
  65. package/dist/ui/_nuxt/BeJSdlF9.js +1 -0
  66. package/dist/ui/_nuxt/BfHTSMKl.js +1 -0
  67. package/dist/ui/_nuxt/BfSCyJF4.js +1 -0
  68. package/dist/ui/_nuxt/BfjtVDDH.js +1 -0
  69. package/dist/ui/_nuxt/BgDCqdQA.js +1 -0
  70. package/dist/ui/_nuxt/BhOHFoWU.js +1 -0
  71. package/dist/ui/_nuxt/BhrAK1vL.js +1 -0
  72. package/dist/ui/_nuxt/BkioyH1T.js +1 -0
  73. package/dist/ui/_nuxt/Bkuqu6BP.js +1 -0
  74. package/dist/ui/_nuxt/BmXAJ9_W.js +1 -0
  75. package/dist/ui/_nuxt/Bmn6On1c.js +1 -0
  76. package/dist/ui/_nuxt/Bp3cYrEr.js +1 -0
  77. package/dist/ui/_nuxt/Bp6g37R7.js +1 -0
  78. package/dist/ui/_nuxt/BqNa2AkI.js +1 -0
  79. package/dist/ui/_nuxt/BqTXFGrv.js +1 -0
  80. package/dist/ui/_nuxt/BqYA7rlc.js +1 -0
  81. package/dist/ui/_nuxt/Br6cN0cg.js +1 -0
  82. package/dist/ui/_nuxt/BsS91CYL.js +1 -0
  83. package/dist/ui/_nuxt/BshV_Xbc.js +1 -0
  84. package/dist/ui/_nuxt/BspZqrRM.js +1 -0
  85. package/dist/ui/_nuxt/BtCnVYZw.js +1 -0
  86. package/dist/ui/_nuxt/BtOb2qkB.js +1 -0
  87. package/dist/ui/_nuxt/BthQWCQV.js +1 -0
  88. package/dist/ui/_nuxt/BtqSS_iP.js +1 -0
  89. package/dist/ui/_nuxt/Buea-lGh.js +1 -0
  90. package/dist/ui/_nuxt/Bv_4Rxtq.js +1 -0
  91. package/dist/ui/_nuxt/BvzEVeQv.js +1 -0
  92. package/dist/ui/_nuxt/Bw305WKR.js +1 -0
  93. package/dist/ui/_nuxt/BxgE0vQu.js +1 -0
  94. package/dist/ui/_nuxt/BzJJZx-M.js +1 -0
  95. package/dist/ui/_nuxt/C-HG3fhB.js +1 -0
  96. package/dist/ui/_nuxt/C-SQnVFl.js +1 -0
  97. package/dist/ui/_nuxt/C0HS_06l.js +1 -0
  98. package/dist/ui/_nuxt/C0hk2d4L.js +1 -0
  99. package/dist/ui/_nuxt/C151Ov-r.js +1 -0
  100. package/dist/ui/_nuxt/C27-OAKa.js +1 -0
  101. package/dist/ui/_nuxt/C2t-YnRu.js +1 -0
  102. package/dist/ui/_nuxt/C39BiMTA.js +1 -0
  103. package/dist/ui/_nuxt/C3B-1QV4.js +1 -0
  104. package/dist/ui/_nuxt/C3Wv6jpd.js +1 -0
  105. package/dist/ui/_nuxt/C3mMm8J8.js +1 -0
  106. package/dist/ui/_nuxt/C4EeE6gA.js +1 -0
  107. package/dist/ui/_nuxt/C4IJs8-o.js +1 -0
  108. package/dist/ui/_nuxt/C4gqWexZ.js +1 -0
  109. package/dist/ui/_nuxt/C4zNGwhW.js +1 -0
  110. package/dist/ui/_nuxt/C5BYcBs_.js +1 -0
  111. package/dist/ui/_nuxt/C5YyOfLZ.js +1 -0
  112. package/dist/ui/_nuxt/C7UmGho8.js +1 -0
  113. package/dist/ui/_nuxt/C7zT0LnQ.js +1 -0
  114. package/dist/ui/_nuxt/C8M2exoo.js +1 -0
  115. package/dist/ui/_nuxt/C8lEn-DE.js +1 -0
  116. package/dist/ui/_nuxt/C98Dy4si.js +1 -0
  117. package/dist/ui/_nuxt/C9dUb6Cb.js +1 -0
  118. package/dist/ui/_nuxt/C9oPPf7i.js +1 -0
  119. package/dist/ui/_nuxt/C9tS-k6U.js +1 -0
  120. package/dist/ui/_nuxt/CAFt9gP4.js +1 -0
  121. package/dist/ui/_nuxt/CANp3yme.js +1 -0
  122. package/dist/ui/_nuxt/CBaQQc7g.js +1 -0
  123. package/dist/ui/_nuxt/CDBrVQLm.js +1 -0
  124. package/dist/ui/_nuxt/CDVJQ6XC.js +1 -0
  125. package/dist/ui/_nuxt/CDx5xZoG.js +1 -0
  126. package/dist/ui/_nuxt/CEL-wOlO.js +1 -0
  127. package/dist/ui/_nuxt/CEu0bR-o.js +1 -0
  128. package/dist/ui/_nuxt/CFHQjOhq.js +1 -0
  129. package/dist/ui/_nuxt/CFbOZP3I.js +75 -0
  130. package/dist/ui/_nuxt/CG6Dc4jp.js +1 -0
  131. package/dist/ui/_nuxt/CG8Ifv2g.js +1 -0
  132. package/dist/ui/_nuxt/CH1njM8p.js +1 -0
  133. package/dist/ui/_nuxt/CHLpvVh8.js +1 -0
  134. package/dist/ui/_nuxt/CHM0blh-.js +1 -0
  135. package/dist/ui/_nuxt/CJc9bBzg.js +1 -0
  136. package/dist/ui/_nuxt/CKIfxQSi.js +1 -0
  137. package/dist/ui/_nuxt/CLj8gQPS.js +1 -0
  138. package/dist/ui/_nuxt/CLxacb5B.js +1 -0
  139. package/dist/ui/_nuxt/CMTm3GFP.js +1 -0
  140. package/dist/ui/_nuxt/CO1LY3CK.js +1 -0
  141. package/dist/ui/_nuxt/COcwbKMJ.js +1 -0
  142. package/dist/ui/_nuxt/COkxafJQ.js +1 -0
  143. package/dist/ui/_nuxt/COt5Ahok.js +1 -0
  144. package/dist/ui/_nuxt/CRBrlGZW.js +1 -0
  145. package/dist/ui/_nuxt/CS3Unz2-.js +1 -0
  146. package/dist/ui/_nuxt/CSXwinHm.js +1 -0
  147. package/dist/ui/_nuxt/CTRr51gU.js +1 -0
  148. package/dist/ui/_nuxt/CUuTKBJd.js +1 -0
  149. package/dist/ui/_nuxt/CVO1_9PV.js +1 -0
  150. package/dist/ui/_nuxt/CVdnzihN.js +1 -0
  151. package/dist/ui/_nuxt/CXtECtnM.js +1 -0
  152. package/dist/ui/_nuxt/CXvaQtF9.js +1 -0
  153. package/dist/ui/_nuxt/CYsAdtH9.js +1 -0
  154. package/dist/ui/_nuxt/CafNBF8u.js +1 -0
  155. package/dist/ui/_nuxt/CbFg5uaA.js +1 -0
  156. package/dist/ui/_nuxt/CbfX1IO0.js +1 -0
  157. package/dist/ui/_nuxt/CcsQSqEB.js +1 -0
  158. package/dist/ui/_nuxt/CeAyd5Ju.js +1 -0
  159. package/dist/ui/_nuxt/CeZK1NFH.js +1 -0
  160. package/dist/ui/_nuxt/CenWIFCC.js +1 -0
  161. package/dist/ui/_nuxt/CfQXZHmo.js +1 -0
  162. package/dist/ui/_nuxt/Cg-RD9OK.js +1 -0
  163. package/dist/ui/_nuxt/ChMvpjG-.js +1 -0
  164. package/dist/ui/_nuxt/Cj5Yp3dK.js +1 -0
  165. package/dist/ui/_nuxt/CkByrt1z.js +1 -0
  166. package/dist/ui/_nuxt/CkXjmgJE.js +1 -0
  167. package/dist/ui/_nuxt/CklMAg4u.js +1 -0
  168. package/dist/ui/_nuxt/Cmh6b_Ma.js +1 -0
  169. package/dist/ui/_nuxt/CnnmHF94.js +1 -0
  170. package/dist/ui/_nuxt/CnsnAmq5.js +1 -0
  171. package/dist/ui/_nuxt/Co6uUVPk.js +1 -0
  172. package/dist/ui/_nuxt/CoDkCxhg.js +1 -0
  173. package/dist/ui/_nuxt/Cp-IABpG.js +1 -0
  174. package/dist/ui/_nuxt/Cp8Y5tLI.js +1 -0
  175. package/dist/ui/_nuxt/Cq5zzVJU.js +1 -0
  176. package/dist/ui/_nuxt/CquLrc37.js +1 -0
  177. package/dist/ui/_nuxt/Cs0ovY-E.js +1 -0
  178. package/dist/ui/_nuxt/CsfeWuGM.js +1 -0
  179. package/dist/ui/_nuxt/Csfq5Kiy.js +1 -0
  180. package/dist/ui/_nuxt/CuPHTKiy.js +1 -0
  181. package/dist/ui/_nuxt/CufHLc7y.js +1 -0
  182. package/dist/ui/_nuxt/Cuk6v7N8.js +1 -0
  183. package/dist/ui/_nuxt/Cvjx9yec.js +1 -0
  184. package/dist/ui/_nuxt/CwoSXNpI.js +1 -0
  185. package/dist/ui/_nuxt/CxGSJlkm.js +1 -0
  186. package/dist/ui/_nuxt/CxbxFI8M.js +1 -0
  187. package/dist/ui/_nuxt/CyktbL80.js +1 -0
  188. package/dist/ui/_nuxt/CylS5w8V.js +1 -0
  189. package/dist/ui/_nuxt/Cz2AlsmD.js +1 -0
  190. package/dist/ui/_nuxt/CzTSHFRz.js +1 -0
  191. package/dist/ui/_nuxt/D-2ljcwZ.js +1 -0
  192. package/dist/ui/_nuxt/D0YGMca9.js +1 -0
  193. package/dist/ui/_nuxt/D0r3Knsf.js +1 -0
  194. package/dist/ui/_nuxt/D17OF-Vu.js +1 -0
  195. package/dist/ui/_nuxt/D1j8_8rp.js +1 -0
  196. package/dist/ui/_nuxt/D2j5LXpq.js +1 -0
  197. package/dist/ui/_nuxt/D3apom_0.js +1 -0
  198. package/dist/ui/_nuxt/D3lLCCz7.js +1 -0
  199. package/dist/ui/_nuxt/D4Qn4bBI.js +1 -0
  200. package/dist/ui/_nuxt/D4_iv3hh.js +1 -0
  201. package/dist/ui/_nuxt/D4h5O-jR.js +1 -0
  202. package/dist/ui/_nuxt/D5-asLiD.js +1 -0
  203. package/dist/ui/_nuxt/D53aC0YG.js +1 -0
  204. package/dist/ui/_nuxt/D5KoaKCx.js +1 -0
  205. package/dist/ui/_nuxt/D7o27uSR.js +1 -0
  206. package/dist/ui/_nuxt/D7oLnXFd.js +1 -0
  207. package/dist/ui/_nuxt/D82EKSYY.js +1 -0
  208. package/dist/ui/_nuxt/D82vCrfD.js +1 -0
  209. package/dist/ui/_nuxt/D87Tk5Gz.js +1 -0
  210. package/dist/ui/_nuxt/D8_7TLub.js +1 -0
  211. package/dist/ui/_nuxt/D8l8udqQ.js +1 -0
  212. package/dist/ui/_nuxt/D8rZpOte.js +1 -0
  213. package/dist/ui/_nuxt/D93ZcfNL.js +1 -0
  214. package/dist/ui/_nuxt/D97Zzqfu.js +1 -0
  215. package/dist/ui/_nuxt/DAi9KRSo.js +1 -0
  216. package/dist/ui/_nuxt/DElX3lK9.js +153 -0
  217. package/dist/ui/_nuxt/DFQXde-d.js +1 -0
  218. package/dist/ui/_nuxt/DFWUc33u.js +1 -0
  219. package/dist/ui/_nuxt/DFXneXwc.js +1 -0
  220. package/dist/ui/_nuxt/DGztddWO.js +1 -0
  221. package/dist/ui/_nuxt/DH5Ifo-i.js +1 -0
  222. package/dist/ui/_nuxt/DHCkPAjA.js +1 -0
  223. package/dist/ui/_nuxt/DHJKELXO.js +1 -0
  224. package/dist/ui/_nuxt/DHQR4-dF.js +1 -0
  225. package/dist/ui/_nuxt/DM8c43g1.js +1 -0
  226. package/dist/ui/_nuxt/DMk3OuwW.js +1 -0
  227. package/dist/ui/_nuxt/DMzUqQB5.js +1 -0
  228. package/dist/ui/_nuxt/DN-Z_aST.js +1 -0
  229. package/dist/ui/_nuxt/DQyhUUbL.js +1 -0
  230. package/dist/ui/_nuxt/DRg8JJMk.js +1 -0
  231. package/dist/ui/_nuxt/DRw_LuNl.js +1 -0
  232. package/dist/ui/_nuxt/DSSpBswy.js +1 -0
  233. package/dist/ui/_nuxt/DT3CNIhV.js +1 -0
  234. package/dist/ui/_nuxt/DU1UobuO.js +1 -0
  235. package/dist/ui/_nuxt/DUszq2jm.js +1 -0
  236. package/dist/ui/_nuxt/DV7GczEv.js +1 -0
  237. package/dist/ui/_nuxt/DVFEvuxE.js +1 -0
  238. package/dist/ui/_nuxt/DVMEJ2y_.js +1 -0
  239. package/dist/ui/_nuxt/DVxCFoDh.js +1 -0
  240. package/dist/ui/_nuxt/DWX1VroF.js +1 -0
  241. package/dist/ui/_nuxt/DWedfzmr.js +1 -0
  242. package/dist/ui/_nuxt/DWrx1Km3.js +1 -0
  243. package/dist/ui/_nuxt/DXbdFlpD.js +1 -0
  244. package/dist/ui/_nuxt/DXmwc3jG.js +1 -0
  245. package/dist/ui/_nuxt/DXvB9xmW.js +1 -0
  246. package/dist/ui/_nuxt/DYE7WIF3.js +1 -0
  247. package/dist/ui/_nuxt/DZ9PSxVF.js +1 -0
  248. package/dist/ui/_nuxt/DZxFcAj9.js +1 -0
  249. package/dist/ui/_nuxt/D_Q5rh1f.js +1 -0
  250. package/dist/ui/_nuxt/Da5cRb03.js +1 -0
  251. package/dist/ui/_nuxt/DbWOdLaN.js +1 -0
  252. package/dist/ui/_nuxt/Dc-5oQ3p.js +1 -0
  253. package/dist/ui/_nuxt/DcWK9jms.js +1 -0
  254. package/dist/ui/_nuxt/DcaNXYhu.js +1 -0
  255. package/dist/ui/_nuxt/Dd19v3D-.js +1 -0
  256. package/dist/ui/_nuxt/DdkO51Og.js +1 -0
  257. package/dist/ui/_nuxt/Ddv68eIx.js +1 -0
  258. package/dist/ui/_nuxt/Des-eS-w.js +1 -0
  259. package/dist/ui/_nuxt/Df6bDoY_.js +1 -0
  260. package/dist/ui/_nuxt/DfNjGIrv.js +1 -0
  261. package/dist/ui/_nuxt/DhaVEd23.js +1 -0
  262. package/dist/ui/_nuxt/DjAJT7YJ.js +1 -0
  263. package/dist/ui/_nuxt/DkFqJrB1.js +1 -0
  264. package/dist/ui/_nuxt/DkwncUOv.js +1 -0
  265. package/dist/ui/_nuxt/DlAUqK2U.js +1 -0
  266. package/dist/ui/_nuxt/DnF83RMp.js +1 -0
  267. package/dist/ui/_nuxt/DnULxvSX.js +1 -0
  268. package/dist/ui/_nuxt/Dpen1YoG.js +1 -0
  269. package/dist/ui/_nuxt/Dph4kLrZ.js +1 -0
  270. package/dist/ui/_nuxt/DqQDbK_p.js +1 -0
  271. package/dist/ui/_nuxt/DqwNpetd.js +1 -0
  272. package/dist/ui/_nuxt/DsOJ9woJ.js +1 -0
  273. package/dist/ui/_nuxt/Dspwwk_N.js +1 -0
  274. package/dist/ui/_nuxt/Dx-B1_4e.js +1 -0
  275. package/dist/ui/_nuxt/DyxjwDmM.js +1 -0
  276. package/dist/ui/_nuxt/E3gJ1_iC.js +1 -0
  277. package/dist/ui/_nuxt/GsRaNv29.js +1 -0
  278. package/dist/ui/_nuxt/IF9eRakj.js +1 -0
  279. package/dist/ui/_nuxt/IeuSbFQv.js +1 -0
  280. package/dist/ui/_nuxt/JZbLTBME.js +1 -0
  281. package/dist/ui/_nuxt/L9t79GZl.js +1 -0
  282. package/dist/ui/_nuxt/MzD3tlZU.js +1 -0
  283. package/dist/ui/_nuxt/P80f7IUj.js +1 -0
  284. package/dist/ui/_nuxt/Pmp26Uib.js +1 -0
  285. package/dist/ui/_nuxt/QIJgUcNo.js +1 -0
  286. package/dist/ui/_nuxt/VOosw3JB.js +1 -0
  287. package/dist/ui/_nuxt/Ve4PFQV2.js +1 -0
  288. package/dist/ui/_nuxt/W9tJ9s81.js +1 -0
  289. package/dist/ui/_nuxt/Yzrsuije.js +1 -0
  290. package/dist/ui/_nuxt/_H4v1dQx.js +1 -0
  291. package/dist/ui/_nuxt/_ykCGR6B.js +1 -0
  292. package/dist/ui/_nuxt/bCR0ucgS.js +1 -0
  293. package/dist/ui/_nuxt/bE4Kk8sk.js +1 -0
  294. package/dist/ui/_nuxt/bN70gL4F.js +1 -0
  295. package/dist/ui/_nuxt/builds/latest.json +1 -1
  296. package/dist/ui/_nuxt/builds/meta/12d68071-f4db-447f-b929-9033d66eadc3.json +1 -0
  297. package/dist/ui/_nuxt/dwOrl1Do.js +1 -0
  298. package/dist/ui/_nuxt/entry.DfrFFNxd.css +1 -0
  299. package/dist/ui/_nuxt/eo99z4R2.js +1 -0
  300. package/dist/ui/_nuxt/error-404.C93cll2q.css +1 -0
  301. package/dist/ui/_nuxt/error-500.CPQqaJsC.css +1 -0
  302. package/dist/ui/_nuxt/fuZLfV_i.js +1 -0
  303. package/dist/ui/_nuxt/g9-lgVsj.js +1 -0
  304. package/dist/ui/_nuxt/gcz8RCvz.js +1 -0
  305. package/dist/ui/_nuxt/hJgmCMqR.js +1 -0
  306. package/dist/ui/_nuxt/hegEt444.js +1 -0
  307. package/dist/ui/_nuxt/k_qm7-4y.js +1 -0
  308. package/dist/ui/_nuxt/lBpI9LM0.js +1 -0
  309. package/dist/ui/_nuxt/lXgVvXCa.js +1 -0
  310. package/dist/ui/_nuxt/mWjccvbQ.js +1 -0
  311. package/dist/ui/_nuxt/n2N0HUVH.js +1 -0
  312. package/dist/ui/_nuxt/oH_c3LbQ.js +1 -0
  313. package/dist/ui/_nuxt/qdsjHGoJ.js +1 -0
  314. package/dist/ui/_nuxt/rGO070M0.js +1 -0
  315. package/dist/ui/_nuxt/rZm6bMo-.js +1 -0
  316. package/dist/ui/_nuxt/rgL8RFrC.js +1 -0
  317. package/dist/ui/_nuxt/u5AG7uiY.js +1 -0
  318. package/dist/ui/_nuxt/uYugtg8r.js +1 -0
  319. package/dist/ui/_nuxt/vE_lwT2v.js +1 -0
  320. package/dist/ui/_nuxt/vGWfd6FD.js +1 -0
  321. package/dist/ui/_nuxt/wDzz0qaB.js +1 -0
  322. package/dist/ui/_nuxt/wEQ09or8.js +1 -0
  323. package/dist/ui/_nuxt/yv6CvBhz.js +1 -0
  324. package/dist/ui/index.html +1 -1
  325. package/package.json +21 -22
  326. package/dist/ui/_nuxt/BR_H8Y5I.js +0 -3
  327. package/dist/ui/_nuxt/Cr8ZhsI1.js +0 -3
  328. package/dist/ui/_nuxt/D7-M_06k.js +0 -1
  329. package/dist/ui/_nuxt/DFs1tY5L.js +0 -2
  330. package/dist/ui/_nuxt/DSg5v247.js +0 -1
  331. package/dist/ui/_nuxt/_eJq5waD.js +0 -1
  332. package/dist/ui/_nuxt/builds/meta/560d1a3b-6050-40f3-af12-eecaef34ee9e.json +0 -1
  333. package/dist/ui/_nuxt/entry.CpgMGkX_.css +0 -1
  334. package/dist/ui/_nuxt/error-404.Cl81wDDB.css +0 -1
  335. package/dist/ui/_nuxt/error-500.eY3F7Rvm.css +0 -1
package/dist/dir.d.mts ADDED
@@ -0,0 +1,4 @@
1
+ //#region src/dir.d.ts
2
+ declare const distDir: string;
3
+ //#endregion
4
+ export { distDir };
package/dist/dir.mjs ADDED
@@ -0,0 +1,5 @@
1
+ import { fileURLToPath } from "node:url";
2
+ //#region src/dir.ts
3
+ const distDir = fileURLToPath(new URL("../dist", import.meta.url));
4
+ //#endregion
5
+ export { distDir };
@@ -1,10 +1,153 @@
1
+ import { CodedError, consoleReporter, createLogger, defineDiagnostics } from "logs-sdk";
1
2
  import { retry } from "@octokit/plugin-retry";
2
3
  import { throttling } from "@octokit/plugin-throttling";
3
4
  import { Octokit } from "octokit";
5
+ //#region src/diagnostics/index.ts
6
+ const diagnostics = defineDiagnostics({
7
+ docsBase: (code) => `https://github.com/antfu/ghfs/blob/main/docs/errors/${code.toLowerCase()}.md`,
8
+ codes: {
9
+ GHFS0001: {
10
+ message: "Missing GitHub token.",
11
+ fix: "Set GH_TOKEN or GITHUB_TOKEN, or run `gh auth login`."
12
+ },
13
+ GHFS0002: {
14
+ message: "Token prompt cancelled.",
15
+ fix: "Re-run the command and provide a token when prompted, or set GH_TOKEN/GITHUB_TOKEN."
16
+ },
17
+ GHFS0010: {
18
+ message: (p) => `Invalid --repo value: ${p.value}`,
19
+ fix: "Use `owner/name`, a full GitHub URL, or a git remote URL."
20
+ },
21
+ GHFS0011: {
22
+ message: (p) => `Invalid repo in ghfs.config.ts: ${p.value}`,
23
+ fix: "Use `owner/name`, a full GitHub URL, or a git remote URL."
24
+ },
25
+ GHFS0012: {
26
+ message: "Repository selection cancelled.",
27
+ fix: "Pass `--repo owner/name` or set `repo` in ghfs.config.ts to select non-interactively."
28
+ },
29
+ GHFS0013: {
30
+ message: (p) => `Invalid repository selection: ${p.value}`,
31
+ fix: "Pick one of the detected candidates or pass `--repo` explicitly."
32
+ },
33
+ GHFS0014: {
34
+ message: (p) => `Repo mismatch detected. git=${p.gitRepo} package.json=${p.pkgRepo}.`,
35
+ fix: "Use `--repo` to disambiguate."
36
+ },
37
+ GHFS0015: {
38
+ message: "Could not resolve repository.",
39
+ fix: "Provide `--repo` or set `repo` in ghfs.config.ts."
40
+ },
41
+ GHFS0016: {
42
+ message: (p) => `Invalid repo slug: ${p.repo}`,
43
+ fix: "Use the `owner/name` form."
44
+ },
45
+ GHFS0100: {
46
+ message: "Interactive execute prompts are unavailable.",
47
+ fix: "Use `--non-interactive` or provide prompts."
48
+ },
49
+ GHFS0101: {
50
+ message: (p) => `Operation conflict: remote updated_at=${p.remoteUpdatedAt}`,
51
+ fix: "Re-run `ghfs sync` to refresh tracked state, then retry the operation."
52
+ },
53
+ GHFS0102: { message: "Execution cancelled." },
54
+ GHFS0103: {
55
+ message: (p) => `Unsupported action: ${p.action}`,
56
+ fix: "Use one of the supported action names. See README for the list."
57
+ },
58
+ GHFS0104: { message: (p) => `Action ${p.action} requires ${p.issue} to be a pull request.` },
59
+ GHFS0105: {
60
+ message: (p) => `Failed to parse execute YAML: ${p.detail}`,
61
+ fix: "Check the YAML syntax in execute.yml."
62
+ },
63
+ GHFS0106: {
64
+ message: (p) => `Invalid execute file: ${p.detail}`,
65
+ fix: "Verify that every operation has the required fields and allowed types."
66
+ },
67
+ GHFS0107: {
68
+ message: (p) => `Invalid execute file: ${p.detail}`,
69
+ fix: "Use one of the supported action names."
70
+ },
71
+ GHFS0108: {
72
+ message: (p) => `Invalid execute file: ${p.detail}`,
73
+ fix: "Fix the listed rule violations and retry."
74
+ },
75
+ GHFS0150: {
76
+ message: "invalid quoted string syntax",
77
+ level: "warn"
78
+ },
79
+ GHFS0151: {
80
+ message: (p) => `unrecognized action pattern: ${p.command}`,
81
+ level: "warn"
82
+ },
83
+ GHFS0152: {
84
+ message: (p) => `${p.command} expects: ${p.syntax}`,
85
+ level: "warn"
86
+ },
87
+ GHFS0153: {
88
+ message: (p) => `${p.command} expects a single issue reference (#123)`,
89
+ level: "warn"
90
+ },
91
+ GHFS0154: {
92
+ message: (p) => `${p.command} requires at least one label`,
93
+ level: "warn"
94
+ },
95
+ GHFS0155: {
96
+ message: (p) => `${p.command} requires at least one assignee`,
97
+ level: "warn"
98
+ },
99
+ GHFS0156: {
100
+ message: (p) => `${p.command} requires a non-empty comment`,
101
+ level: "warn"
102
+ },
103
+ GHFS0157: {
104
+ message: (p) => `${p.command} expects one or more issue references (#123 #456)`,
105
+ level: "warn"
106
+ },
107
+ GHFS0160: {
108
+ message: (p) => `per-item: missing markdown for ${p.issue} (${p.path})`,
109
+ level: "warn"
110
+ },
111
+ GHFS0161: {
112
+ message: (p) => `per-item: invalid or missing frontmatter for ${p.issue}`,
113
+ level: "warn"
114
+ },
115
+ GHFS0200: {
116
+ message: "A sync is already in progress.",
117
+ fix: "Wait for the current sync to finish, then retry."
118
+ },
119
+ GHFS0201: {
120
+ message: "An execute is already in progress.",
121
+ fix: "Wait for the current execute run to finish, then retry."
122
+ },
123
+ GHFS0202: { message: (p) => `Queue entry not found: ${p.id}` },
124
+ GHFS0203: { message: (p) => `Cannot remove a per-item edit from the queue. Edit ${p.target} directly to adjust it.` },
125
+ GHFS0204: { message: "execute.md not found; cannot remove op." },
126
+ GHFS0205: { message: (p) => `Cannot edit ${p.source} ops from the queue panel.` },
127
+ GHFS0206: { message: (p) => p.detail },
128
+ GHFS0300: { message: (p) => `Unexpected patch response for pull ${p.issue}.` },
129
+ GHFS0301: {
130
+ message: (p) => `Milestone not found: ${p.value}`,
131
+ fix: "Create the milestone on GitHub, or pass its numeric id."
132
+ },
133
+ GHFS0400: { message: "Sync context was not initialized." },
134
+ GHFS0401: { message: (p) => `Missing tracked canonical data for ${p.issue}.` }
135
+ }
136
+ });
137
+ //#endregion
138
+ //#region src/logger.ts
139
+ const log = createLogger({
140
+ diagnostics: [diagnostics],
141
+ reporters: [consoleReporter]
142
+ });
143
+ function formatInline(d) {
144
+ return `[${d.code}] ${d.message}`;
145
+ }
146
+ //#endregion
4
147
  //#region src/utils/repo.ts
5
148
  function splitRepo(repo) {
6
149
  const [owner, name] = repo.split("/");
7
- if (!owner || !name) throw new Error(`Invalid repo slug: ${repo}`);
150
+ if (!owner || !name) throw new CodedError(log.GHFS0016({ repo }));
8
151
  return {
9
152
  owner,
10
153
  repo: name
@@ -130,6 +273,11 @@ function createGitHubProvider(options) {
130
273
  const bumpRequestCount = () => {
131
274
  requestCount += 1;
132
275
  };
276
+ let authenticatedUserPromise = null;
277
+ const fetchAuthenticatedUserCached = () => {
278
+ if (!authenticatedUserPromise) authenticatedUserPromise = fetchAuthenticatedUser(octokit, bumpRequestCount);
279
+ return authenticatedUserPromise;
280
+ };
133
281
  return {
134
282
  paginateItems: (paginateOptions) => paginateItems(octokit, owner, repo, paginateOptions, bumpRequestCount),
135
283
  fetchItems: (paginateOptions) => fetchItems(octokit, owner, repo, paginateOptions, bumpRequestCount),
@@ -138,10 +286,14 @@ function createGitHubProvider(options) {
138
286
  fetchComments: (number) => fetchComments(octokit, owner, repo, number, bumpRequestCount),
139
287
  fetchPullMetadata: (number) => fetchPullMetadata(octokit, owner, repo, number, bumpRequestCount),
140
288
  fetchPullPatch: (number) => fetchPullPatch(octokit, owner, repo, number, bumpRequestCount),
289
+ fetchPullCommits: (number) => fetchPullCommits(octokit, owner, repo, number, bumpRequestCount),
290
+ fetchTimeline: (number) => fetchTimeline(octokit, owner, repo, number, bumpRequestCount),
141
291
  fetchItemSnapshot: (number) => fetchItemSnapshot(octokit, owner, repo, number, bumpRequestCount),
142
292
  fetchRepository: () => fetchRepository(octokit, owner, repo, bumpRequestCount),
143
293
  fetchRepositoryLabels: () => fetchRepositoryLabels(octokit, owner, repo, bumpRequestCount),
144
294
  fetchRepositoryMilestones: () => fetchRepositoryMilestones(octokit, owner, repo, bumpRequestCount),
295
+ fetchAuthenticatedUser: fetchAuthenticatedUserCached,
296
+ countUpdatedSince: (since) => countUpdatedSince(octokit, owner, repo, since, bumpRequestCount),
145
297
  getRequestCount: () => requestCount,
146
298
  actionClose: (number) => actionClose(octokit, owner, repo, number, bumpRequestCount),
147
299
  actionReopen: (number) => actionReopen(octokit, owner, repo, number, bumpRequestCount),
@@ -229,10 +381,34 @@ async function fetchPullPatch(octokit, owner, repo, number, bumpRequestCount) {
229
381
  mediaType: { format: "patch" }
230
382
  });
231
383
  if (typeof result.data === "string") return result.data;
232
- throw new Error(`Unexpected patch response for pull ${formatIssueNumber(number, {
384
+ throw new CodedError(log.GHFS0300({ issue: formatIssueNumber(number, {
233
385
  repo: `${owner}/${repo}`,
234
386
  kind: "pull"
235
- })}`);
387
+ }) }));
388
+ }
389
+ async function fetchPullCommits(octokit, owner, repo, number, bumpRequestCount) {
390
+ bumpRequestCount();
391
+ return (await octokit.paginate(octokit.rest.pulls.listCommits, {
392
+ owner,
393
+ repo,
394
+ pull_number: number,
395
+ per_page: 100
396
+ })).map(mapPullCommit);
397
+ }
398
+ async function fetchTimeline(octokit, owner, repo, number, bumpRequestCount) {
399
+ bumpRequestCount();
400
+ const events = await octokit.paginate(octokit.rest.issues.listEventsForTimeline, {
401
+ owner,
402
+ repo,
403
+ issue_number: number,
404
+ per_page: 100
405
+ });
406
+ const out = [];
407
+ for (const event of events) {
408
+ const mapped = mapTimelineEvent(event);
409
+ if (mapped) out.push(mapped);
410
+ }
411
+ return out;
236
412
  }
237
413
  async function fetchItemSnapshot(octokit, owner, repo, number, bumpRequestCount) {
238
414
  bumpRequestCount();
@@ -271,6 +447,39 @@ async function fetchRepositoryMilestones(octokit, owner, repo, bumpRequestCount)
271
447
  per_page: 100
272
448
  });
273
449
  }
450
+ async function fetchAuthenticatedUser(octokit, bumpRequestCount) {
451
+ bumpRequestCount();
452
+ try {
453
+ const result = await octokit.rest.users.getAuthenticated();
454
+ return {
455
+ login: result.data.login,
456
+ name: result.data.name ?? null,
457
+ avatarUrl: result.data.avatar_url
458
+ };
459
+ } catch {
460
+ return null;
461
+ }
462
+ }
463
+ async function countUpdatedSince(octokit, owner, repo, since, bumpRequestCount) {
464
+ bumpRequestCount();
465
+ const sinceQuery = normalizeSinceForSearch(since);
466
+ const result = await octokit.graphql(`query CountsUpdated($issuesQuery: String!, $pullsQuery: String!) {
467
+ issues: search(query: $issuesQuery, type: ISSUE, first: 0) { issueCount }
468
+ pulls: search(query: $pullsQuery, type: ISSUE, first: 0) { issueCount }
469
+ }`, {
470
+ issuesQuery: `repo:${owner}/${repo} is:issue updated:>=${sinceQuery}`,
471
+ pullsQuery: `repo:${owner}/${repo} is:pr updated:>=${sinceQuery}`
472
+ });
473
+ return {
474
+ issues: result.issues.issueCount,
475
+ pulls: result.pulls.issueCount
476
+ };
477
+ }
478
+ function normalizeSinceForSearch(since) {
479
+ const date = new Date(since);
480
+ if (Number.isNaN(date.getTime())) return since;
481
+ return date.toISOString();
482
+ }
274
483
  async function actionClose(octokit, owner, repo, number, bumpRequestCount) {
275
484
  bumpRequestCount();
276
485
  await octokit.rest.issues.update({
@@ -478,7 +687,7 @@ async function resolveMilestone(octokit, owner, repo, value, bumpRequestCount) {
478
687
  state: "all",
479
688
  per_page: 100
480
689
  })).find((item) => item.title === value);
481
- if (!matched) throw new Error(`Milestone not found: ${value}`);
690
+ if (!matched) throw new CodedError(log.GHFS0301({ value }));
482
691
  return matched.number;
483
692
  }
484
693
  function normalizeLockReason(reason) {
@@ -492,6 +701,7 @@ function mapIssue(issue) {
492
701
  kind: issue.pull_request ? "pull" : "issue",
493
702
  ...issue.html_url ? { url: issue.html_url } : {},
494
703
  state: issue.state === "closed" ? "closed" : "open",
704
+ stateReason: normalizeStateReason(issue.state_reason),
495
705
  updatedAt: issue.updated_at,
496
706
  createdAt: issue.created_at,
497
707
  closedAt: issue.closed_at,
@@ -507,6 +717,10 @@ function mapIssue(issue) {
507
717
  reactions: mapReactions(issue.reactions)
508
718
  };
509
719
  }
720
+ function normalizeStateReason(reason) {
721
+ if (reason === "completed" || reason === "not_planned" || reason === "reopened") return reason;
722
+ return null;
723
+ }
510
724
  function mapComment(comment) {
511
725
  return {
512
726
  id: comment.id,
@@ -517,6 +731,137 @@ function mapComment(comment) {
517
731
  reactions: mapReactions(comment.reactions)
518
732
  };
519
733
  }
734
+ function mapPullCommit(commit) {
735
+ return {
736
+ sha: commit.sha,
737
+ message: commit.commit.message,
738
+ authorLogin: commit.author?.login ?? null,
739
+ authorName: commit.commit.author?.name ?? null,
740
+ authorDate: commit.commit.author?.date ?? commit.commit.committer?.date ?? "",
741
+ committerLogin: commit.committer?.login ?? null,
742
+ committerDate: commit.commit.committer?.date ?? commit.commit.author?.date ?? "",
743
+ ...commit.html_url ? { url: commit.html_url } : {}
744
+ };
745
+ }
746
+ function mapTimelineEvent(event) {
747
+ const eventName = event.event;
748
+ if (!eventName) return null;
749
+ if (eventName === "committed" && event.sha) {
750
+ const createdAt = event.committer?.date ?? event.author?.date;
751
+ if (!createdAt) return null;
752
+ const fullMessage = event.message ?? "";
753
+ const firstLine = fullMessage.split("\n", 1)[0] ?? "";
754
+ return {
755
+ id: `commit:${event.sha}`,
756
+ kind: "committed",
757
+ createdAt,
758
+ actor: event.author?.name ?? event.committer?.name ?? null,
759
+ sha: event.sha,
760
+ commitMessage: firstLine,
761
+ body: fullMessage
762
+ };
763
+ }
764
+ const createdAt = event.created_at ?? event.submitted_at;
765
+ if (!createdAt) return null;
766
+ const id = event.id != null ? String(event.id) : `${eventName}:${createdAt}`;
767
+ const actor = event.actor?.login ?? event.user?.login ?? null;
768
+ const base = {
769
+ id,
770
+ kind: "unknown",
771
+ createdAt,
772
+ actor
773
+ };
774
+ switch (eventName) {
775
+ case "closed":
776
+ case "reopened":
777
+ case "merged":
778
+ case "locked":
779
+ case "unlocked":
780
+ case "ready_for_review":
781
+ case "convert_to_draft":
782
+ case "head_ref_deleted":
783
+ case "head_ref_restored":
784
+ case "head_ref_force_pushed": return {
785
+ ...base,
786
+ kind: eventName,
787
+ ...event.state_reason ? { stateReason: event.state_reason } : {}
788
+ };
789
+ case "labeled":
790
+ case "unlabeled":
791
+ if (!event.label) return null;
792
+ return {
793
+ ...base,
794
+ kind: eventName,
795
+ label: {
796
+ name: event.label.name,
797
+ color: event.label.color ?? ""
798
+ }
799
+ };
800
+ case "assigned":
801
+ case "unassigned":
802
+ if (!event.assignee?.login) return null;
803
+ return {
804
+ ...base,
805
+ kind: eventName,
806
+ assignee: event.assignee.login
807
+ };
808
+ case "review_requested":
809
+ case "review_request_removed": {
810
+ const reviewer = event.requested_reviewer?.login ?? event.requested_team?.name;
811
+ if (!reviewer) return null;
812
+ return {
813
+ ...base,
814
+ kind: eventName,
815
+ requestedReviewer: reviewer
816
+ };
817
+ }
818
+ case "reviewed": {
819
+ const rawState = event.state ?? "commented";
820
+ return {
821
+ ...base,
822
+ kind: "reviewed",
823
+ review: {
824
+ state: normalizeReviewState(rawState),
825
+ body: event.body ?? null,
826
+ submittedAt: event.submitted_at ?? createdAt
827
+ },
828
+ body: event.body ?? null
829
+ };
830
+ }
831
+ case "commented": return {
832
+ ...base,
833
+ kind: "commented",
834
+ commentId: typeof event.id === "number" ? event.id : void 0,
835
+ body: event.body ?? null
836
+ };
837
+ case "renamed":
838
+ if (!event.rename) return null;
839
+ return {
840
+ ...base,
841
+ kind: "renamed",
842
+ rename: {
843
+ from: event.rename.from,
844
+ to: event.rename.to
845
+ }
846
+ };
847
+ case "referenced":
848
+ case "cross-referenced": return {
849
+ ...base,
850
+ kind: eventName
851
+ };
852
+ default:
853
+ if (!actor) return null;
854
+ return {
855
+ ...base,
856
+ kind: "unknown"
857
+ };
858
+ }
859
+ }
860
+ function normalizeReviewState(state) {
861
+ const lower = state.toLowerCase();
862
+ if (lower === "approved" || lower === "changes_requested" || lower === "commented" || lower === "dismissed" || lower === "pending") return lower;
863
+ return "commented";
864
+ }
520
865
  function mapReactions(reactions) {
521
866
  return normalizeReactions({
522
867
  totalCount: reactions?.total_count,
@@ -541,4 +886,4 @@ function createRepositoryProvider(options) {
541
886
  });
542
887
  }
543
888
  //#endregion
544
- export { formatIssueNumber as a, formatDuration as i, normalizeReactions as n, formatTerminalLink as o, countNoun as r, formatValue as s, createRepositoryProvider as t };
889
+ export { formatIssueNumber as a, CodedError as c, diagnostics as d, formatDuration as i, formatInline as l, normalizeReactions as n, formatTerminalLink as o, countNoun as r, formatValue as s, createRepositoryProvider as t, log as u };
package/dist/index.d.mts CHANGED
@@ -1,198 +1,5 @@
1
- //#region src/types/config.d.ts
2
- interface GhfsUserConfig {
3
- /**
4
- * The repository to sync.
5
- *
6
- * Will try to detect the repository from the current working directory or the `package.json` file.
7
- */
8
- repo?: string;
9
- /**
10
- * The directory to store the synced issues and pull requests.
11
- *
12
- * @default '.ghfs'
13
- */
14
- directory?: string;
15
- /**
16
- * The authentication configuration.
17
- */
18
- auth?: {
19
- /**
20
- * The GitHub personal access token to use for authentication.
21
- *
22
- * When not provided, will try to get the token from `gh auth token` or the environment variables `GH_TOKEN` or `GITHUB_TOKEN`.
23
- */
24
- token?: string;
25
- };
26
- sync?: {
27
- /**
28
- * Whether to sync issues.
29
- *
30
- * @default true
31
- */
32
- issues?: boolean;
33
- /**
34
- * Whether to sync pull requests.
35
- *
36
- * @default true
37
- */
38
- pulls?: boolean;
39
- /**
40
- * When to sync closed issues and pull requests.
41
- *
42
- * - `true`: sync all closed issues and pull requests.
43
- * - `false`: don't sync any closed issues and pull requests. And delete any existing closed issues and pull requests from the local filesystem.
44
- *
45
- * @default false
46
- */
47
- closed?: boolean;
48
- /**
49
- * When to download the pull request patch files.
50
- *
51
- * - `'open'`: only download open pull request patch files.
52
- * - `'all'`: download all pull request patch files.
53
- * - `false`: don't download any pull request patch files.
54
- *
55
- * @default 'open'
56
- */
57
- patches?: 'open' | 'all' | false;
58
- };
59
- }
60
- type GhfsResolvedConfig = Required<GhfsUserConfig> & {
61
- cwd: string;
62
- auth: Required<GhfsUserConfig['auth']>;
63
- sync: Required<GhfsUserConfig['sync']>;
64
- };
65
- //#endregion
66
- //#region src/types/issue.d.ts
67
- type IssueKind = 'issue' | 'pull';
68
- type IssueState = 'open' | 'closed';
69
- //#endregion
70
- //#region src/types/provider.d.ts
71
- interface ProviderReactions {
72
- totalCount: number;
73
- plusOne: number;
74
- minusOne: number;
75
- laugh: number;
76
- hooray: number;
77
- confused: number;
78
- heart: number;
79
- rocket: number;
80
- eyes: number;
81
- }
82
- interface ProviderItem {
83
- number: number;
84
- kind: IssueKind;
85
- url?: string;
86
- state: IssueState;
87
- updatedAt: string;
88
- createdAt: string;
89
- closedAt: string | null;
90
- title: string;
91
- body: string | null;
92
- author: string | null;
93
- labels: string[];
94
- assignees: string[];
95
- milestone: string | null;
96
- reactions?: ProviderReactions;
97
- }
98
- interface ProviderComment {
99
- id: number;
100
- body: string | null;
101
- createdAt: string;
102
- updatedAt: string;
103
- author: string | null;
104
- reactions?: ProviderReactions;
105
- }
106
- interface ProviderPullMetadata {
107
- isDraft: boolean;
108
- merged: boolean;
109
- mergedAt: string | null;
110
- baseRef: string;
111
- headRef: string;
112
- requestedReviewers: string[];
113
- }
114
- interface ProviderRepository {
115
- name: string;
116
- full_name: string;
117
- description: string | null;
118
- private: boolean;
119
- archived: boolean;
120
- default_branch: string;
121
- html_url: string;
122
- fork: boolean;
123
- open_issues_count: number;
124
- has_issues: boolean;
125
- has_projects: boolean;
126
- has_wiki: boolean;
127
- created_at: string;
128
- updated_at: string;
129
- pushed_at: string | null;
130
- owner: {
131
- login: string;
132
- };
133
- }
134
- interface ProviderLabel {
135
- name: string;
136
- color: string;
137
- description: string | null;
138
- default: boolean;
139
- }
140
- interface ProviderMilestone {
141
- number: number;
142
- title: string;
143
- state: 'open' | 'closed';
144
- description: string | null;
145
- due_on: string | null;
146
- open_issues: number;
147
- closed_issues: number;
148
- created_at: string;
149
- updated_at: string;
150
- closed_at: string | null;
151
- }
152
- interface ProviderItemSnapshot {
153
- number: number;
154
- kind: IssueKind;
155
- updatedAt: string | null;
156
- }
157
- type ProviderLockReason = 'resolved' | 'off-topic' | 'too heated' | 'too-heated' | 'spam';
158
- interface PaginateItemsOptions {
159
- state: IssueState | 'all';
160
- since?: string;
161
- }
162
- interface RepositoryProvider {
163
- paginateItems: (options: PaginateItemsOptions) => AsyncIterable<ProviderItem[]>;
164
- fetchItems: (options: PaginateItemsOptions) => Promise<ProviderItem[]>;
165
- eachItem: (options: PaginateItemsOptions) => AsyncIterable<ProviderItem>;
166
- fetchItemsByNumbers: (numbers: number[]) => Promise<ProviderItem[]>;
167
- fetchComments: (number: number) => Promise<ProviderComment[]>;
168
- fetchPullMetadata: (number: number) => Promise<ProviderPullMetadata>;
169
- fetchPullPatch: (number: number) => Promise<string>;
170
- fetchItemSnapshot: (number: number) => Promise<ProviderItemSnapshot>;
171
- fetchRepository: () => Promise<ProviderRepository>;
172
- fetchRepositoryLabels: () => Promise<ProviderLabel[]>;
173
- fetchRepositoryMilestones: () => Promise<ProviderMilestone[]>;
174
- getRequestCount: () => number;
175
- actionClose: (number: number) => Promise<void>;
176
- actionReopen: (number: number) => Promise<void>;
177
- actionSetTitle: (number: number, title: string) => Promise<void>;
178
- actionSetBody: (number: number, body: string) => Promise<void>;
179
- actionAddComment: (number: number, body: string) => Promise<void>;
180
- actionAddLabels: (number: number, labels: string[]) => Promise<void>;
181
- actionRemoveLabels: (number: number, labels: string[]) => Promise<void>;
182
- actionSetLabels: (number: number, labels: string[]) => Promise<void>;
183
- actionAddAssignees: (number: number, assignees: string[]) => Promise<void>;
184
- actionRemoveAssignees: (number: number, assignees: string[]) => Promise<void>;
185
- actionSetAssignees: (number: number, assignees: string[]) => Promise<void>;
186
- actionSetMilestone: (number: number, milestone: string | number) => Promise<void>;
187
- actionClearMilestone: (number: number) => Promise<void>;
188
- actionLock: (number: number, reason?: ProviderLockReason) => Promise<void>;
189
- actionUnlock: (number: number) => Promise<void>;
190
- actionRequestReviewers: (number: number, reviewers: string[]) => Promise<void>;
191
- actionRemoveReviewers: (number: number, reviewers: string[]) => Promise<void>;
192
- actionMarkReadyForReview: (number: number) => Promise<void>;
193
- actionConvertToDraft: (number: number) => Promise<void>;
194
- }
195
- //#endregion
1
+ import { a as ProviderItemSnapshot, d as IssueState, f as GhfsResolvedConfig, i as ProviderItem, l as RepositoryProvider, n as ProviderComment, o as ProviderLockReason, p as GhfsUserConfig, s as ProviderPullMetadata, t as PaginateItemsOptions, u as IssueKind } from "./provider-DCIsHVeA.mjs";
2
+
196
3
  //#region src/providers/factory.d.ts
197
4
  interface CreateRepositoryProviderOptions {
198
5
  token: string;
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { t as createRepositoryProvider } from "./factory-DYHQBeCz.mjs";
1
+ import { t as createRepositoryProvider } from "./factory-DmX3S7tf.mjs";
2
2
  //#region src/index.ts
3
3
  function defineConfig(config) {
4
4
  return config;