@ghfs/cli 0.1.0 → 0.2.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 (349) hide show
  1. package/README.md +41 -1
  2. package/dist/cli.mjs +5718 -559
  3. package/dist/factory-UMSInaa_.mjs +1166 -0
  4. package/dist/index.d.mts +363 -2
  5. package/dist/index.mjs +1 -1
  6. package/dist/ui/200.html +1 -1
  7. package/dist/ui/404.html +1 -1
  8. package/dist/ui/_nuxt/2UxHyX5q.js +1 -0
  9. package/dist/ui/_nuxt/32ctXXKs.js +1 -0
  10. package/dist/ui/_nuxt/3e1v2bzS.js +1 -0
  11. package/dist/ui/_nuxt/3t-6YNGz.js +1 -0
  12. package/dist/ui/_nuxt/4A_iFExJ.js +1 -0
  13. package/dist/ui/_nuxt/5VeTt0Ye.js +1 -0
  14. package/dist/ui/_nuxt/5i3qLPDT.js +1 -0
  15. package/dist/ui/_nuxt/85-TOEBH.js +1 -0
  16. package/dist/ui/_nuxt/B0m2ddpp.js +1 -0
  17. package/dist/ui/_nuxt/B0tHio-l.js +1 -0
  18. package/dist/ui/_nuxt/B1dDrJ26.js +1 -0
  19. package/dist/ui/_nuxt/B1yitclQ.js +1 -0
  20. package/dist/ui/_nuxt/B5q1GTce.js +1 -0
  21. package/dist/ui/_nuxt/B6aJPvgy.js +1 -0
  22. package/dist/ui/_nuxt/B7c-h3xW.js +1 -0
  23. package/dist/ui/_nuxt/B7mTdjB0.js +1 -0
  24. package/dist/ui/_nuxt/BA47KaF1.js +1 -0
  25. package/dist/ui/_nuxt/BBf5iR-q.js +1 -0
  26. package/dist/ui/_nuxt/BBxLfTx_.js +1 -0
  27. package/dist/ui/_nuxt/BDEKrZIi.js +1 -0
  28. package/dist/ui/_nuxt/BEDo0Tqx.js +1 -0
  29. package/dist/ui/_nuxt/BERRCDM3.js +1 -0
  30. package/dist/ui/_nuxt/BETggiCN.js +1 -0
  31. package/dist/ui/_nuxt/BEwlwnbL.js +1 -0
  32. package/dist/ui/_nuxt/BFfxhgS-.js +1 -0
  33. package/dist/ui/_nuxt/BGJmEYvX.js +1 -0
  34. package/dist/ui/_nuxt/BH7IYjvW.js +1 -0
  35. package/dist/ui/_nuxt/BIGW1oBm.js +1 -0
  36. package/dist/ui/_nuxt/BIv1doCn.js +1 -0
  37. package/dist/ui/_nuxt/BJDFO7_C.js +1 -0
  38. package/dist/ui/_nuxt/BM1_JUlF.js +1 -0
  39. package/dist/ui/_nuxt/BMKCr1FU.js +1 -0
  40. package/dist/ui/_nuxt/BMWR74SV.js +1 -0
  41. package/dist/ui/_nuxt/BO53GVu8.js +1 -0
  42. package/dist/ui/_nuxt/BPQ3VLAy.js +1 -0
  43. package/dist/ui/_nuxt/BQ8w6xss.js +1 -0
  44. package/dist/ui/_nuxt/BRHolxvo.js +1 -0
  45. package/dist/ui/_nuxt/BRZ36xJF.js +1 -0
  46. package/dist/ui/_nuxt/BTJTHyun.js +1 -0
  47. package/dist/ui/_nuxt/BTifaqeh.js +1 -0
  48. package/dist/ui/_nuxt/BUtzH8cE.js +1 -0
  49. package/dist/ui/_nuxt/BUw7H-hv.js +1 -0
  50. package/dist/ui/_nuxt/BV7otONQ.js +1 -0
  51. package/dist/ui/_nuxt/BVQ-GDCI.js +1 -0
  52. package/dist/ui/_nuxt/BVkGXMyj.js +1 -0
  53. package/dist/ui/_nuxt/BWvSN4gD.js +1 -0
  54. package/dist/ui/_nuxt/BXkSAIEj.js +1 -0
  55. package/dist/ui/_nuxt/BYunw83y.js +1 -0
  56. package/dist/ui/_nuxt/BZvkOJ9d.js +1 -0
  57. package/dist/ui/_nuxt/B_m7g4N7.js +1 -0
  58. package/dist/ui/_nuxt/BcOcwvcX.js +1 -0
  59. package/dist/ui/_nuxt/BcVCzyr7.js +1 -0
  60. package/dist/ui/_nuxt/BcllPdc-.js +1 -0
  61. package/dist/ui/_nuxt/BdImnpbu.js +1 -0
  62. package/dist/ui/_nuxt/BdnUsdx6.js +1 -0
  63. package/dist/ui/_nuxt/BeJSdlF9.js +1 -0
  64. package/dist/ui/_nuxt/BfHTSMKl.js +1 -0
  65. package/dist/ui/_nuxt/BfSCyJF4.js +1 -0
  66. package/dist/ui/_nuxt/BfjtVDDH.js +1 -0
  67. package/dist/ui/_nuxt/BgDCqdQA.js +1 -0
  68. package/dist/ui/_nuxt/BhOHFoWU.js +1 -0
  69. package/dist/ui/_nuxt/BkioyH1T.js +1 -0
  70. package/dist/ui/_nuxt/Bkuqu6BP.js +1 -0
  71. package/dist/ui/_nuxt/BmXAJ9_W.js +1 -0
  72. package/dist/ui/_nuxt/Bmn6On1c.js +1 -0
  73. package/dist/ui/_nuxt/Bp6g37R7.js +1 -0
  74. package/dist/ui/_nuxt/BqNa2AkI.js +1 -0
  75. package/dist/ui/_nuxt/BqTXFGrv.js +1 -0
  76. package/dist/ui/_nuxt/BqYA7rlc.js +1 -0
  77. package/dist/ui/_nuxt/Br6cN0cg.js +1 -0
  78. package/dist/ui/_nuxt/BsS91CYL.js +1 -0
  79. package/dist/ui/_nuxt/BshV_Xbc.js +1 -0
  80. package/dist/ui/_nuxt/BspZqrRM.js +1 -0
  81. package/dist/ui/_nuxt/BtCnVYZw.js +1 -0
  82. package/dist/ui/_nuxt/BtOb2qkB.js +1 -0
  83. package/dist/ui/_nuxt/BthQWCQV.js +1 -0
  84. package/dist/ui/_nuxt/BtqSS_iP.js +1 -0
  85. package/dist/ui/_nuxt/Buea-lGh.js +1 -0
  86. package/dist/ui/_nuxt/BvOdM423.js +1 -0
  87. package/dist/ui/_nuxt/Bv_4Rxtq.js +1 -0
  88. package/dist/ui/_nuxt/BvzEVeQv.js +1 -0
  89. package/dist/ui/_nuxt/Bw305WKR.js +1 -0
  90. package/dist/ui/_nuxt/BxgE0vQu.js +1 -0
  91. package/dist/ui/_nuxt/BzJJZx-M.js +1 -0
  92. package/dist/ui/_nuxt/Bzq9aFVy.js +1 -0
  93. package/dist/ui/_nuxt/C-SQnVFl.js +1 -0
  94. package/dist/ui/_nuxt/C0HS_06l.js +1 -0
  95. package/dist/ui/_nuxt/C0hk2d4L.js +1 -0
  96. package/dist/ui/_nuxt/C151Ov-r.js +1 -0
  97. package/dist/ui/_nuxt/C27-OAKa.js +1 -0
  98. package/dist/ui/_nuxt/C2t-YnRu.js +1 -0
  99. package/dist/ui/_nuxt/C39BiMTA.js +1 -0
  100. package/dist/ui/_nuxt/C3B-1QV4.js +1 -0
  101. package/dist/ui/_nuxt/C3Wv6jpd.js +1 -0
  102. package/dist/ui/_nuxt/C3mMm8J8.js +1 -0
  103. package/dist/ui/_nuxt/C4EeE6gA.js +1 -0
  104. package/dist/ui/_nuxt/C4IJs8-o.js +1 -0
  105. package/dist/ui/_nuxt/C4gqWexZ.js +1 -0
  106. package/dist/ui/_nuxt/C5BYcBs_.js +1 -0
  107. package/dist/ui/_nuxt/C5YyOfLZ.js +1 -0
  108. package/dist/ui/_nuxt/C7zT0LnQ.js +1 -0
  109. package/dist/ui/_nuxt/C8M2exoo.js +1 -0
  110. package/dist/ui/_nuxt/C8lEn-DE.js +1 -0
  111. package/dist/ui/_nuxt/C98Dy4si.js +1 -0
  112. package/dist/ui/_nuxt/C9dUb6Cb.js +1 -0
  113. package/dist/ui/_nuxt/C9oPPf7i.js +1 -0
  114. package/dist/ui/_nuxt/C9tS-k6U.js +1 -0
  115. package/dist/ui/_nuxt/CAFt9gP4.js +1 -0
  116. package/dist/ui/_nuxt/CBaQQc7g.js +1 -0
  117. package/dist/ui/_nuxt/CDBrVQLm.js +1 -0
  118. package/dist/ui/_nuxt/CDVJQ6XC.js +1 -0
  119. package/dist/ui/_nuxt/CDx5xZoG.js +1 -0
  120. package/dist/ui/_nuxt/CEL-wOlO.js +1 -0
  121. package/dist/ui/_nuxt/CEu0bR-o.js +1 -0
  122. package/dist/ui/_nuxt/CFHQjOhq.js +1 -0
  123. package/dist/ui/_nuxt/CG6Dc4jp.js +1 -0
  124. package/dist/ui/_nuxt/CH1njM8p.js +1 -0
  125. package/dist/ui/_nuxt/CHLpvVh8.js +1 -0
  126. package/dist/ui/_nuxt/CHM0blh-.js +1 -0
  127. package/dist/ui/_nuxt/CJc9bBzg.js +1 -0
  128. package/dist/ui/_nuxt/CKIfxQSi.js +1 -0
  129. package/dist/ui/_nuxt/CLj8gQPS.js +1 -0
  130. package/dist/ui/_nuxt/CLxacb5B.js +1 -0
  131. package/dist/ui/_nuxt/CMTm3GFP.js +1 -0
  132. package/dist/ui/_nuxt/CO1LY3CK.js +1 -0
  133. package/dist/ui/_nuxt/COkxafJQ.js +1 -0
  134. package/dist/ui/_nuxt/COt5Ahok.js +1 -0
  135. package/dist/ui/_nuxt/CRqJ_cUM.js +1 -0
  136. package/dist/ui/_nuxt/CS3Unz2-.js +1 -0
  137. package/dist/ui/_nuxt/CSXwinHm.js +1 -0
  138. package/dist/ui/_nuxt/CTRr51gU.js +1 -0
  139. package/dist/ui/_nuxt/CUuTKBJd.js +1 -0
  140. package/dist/ui/_nuxt/CV3vykTa.js +1 -0
  141. package/dist/ui/_nuxt/CVO1_9PV.js +1 -0
  142. package/dist/ui/_nuxt/CVdnzihN.js +1 -0
  143. package/dist/ui/_nuxt/CXtECtnM.js +1 -0
  144. package/dist/ui/_nuxt/CXvaQtF9.js +1 -0
  145. package/dist/ui/_nuxt/CYsAdtH9.js +1 -0
  146. package/dist/ui/_nuxt/CafNBF8u.js +1 -0
  147. package/dist/ui/_nuxt/CbFg5uaA.js +1 -0
  148. package/dist/ui/_nuxt/CbfX1IO0.js +1 -0
  149. package/dist/ui/_nuxt/CcsQSqEB.js +1 -0
  150. package/dist/ui/_nuxt/CeAyd5Ju.js +1 -0
  151. package/dist/ui/_nuxt/CeZK1NFH.js +1 -0
  152. package/dist/ui/_nuxt/CenWIFCC.js +1 -0
  153. package/dist/ui/_nuxt/CfQXZHmo.js +1 -0
  154. package/dist/ui/_nuxt/Cg-RD9OK.js +1 -0
  155. package/dist/ui/_nuxt/ChMvpjG-.js +1 -0
  156. package/dist/ui/_nuxt/ChS_g7wu.js +1 -0
  157. package/dist/ui/_nuxt/ChgxH8nk.js +1 -0
  158. package/dist/ui/_nuxt/Cj5Yp3dK.js +1 -0
  159. package/dist/ui/_nuxt/CkByrt1z.js +1 -0
  160. package/dist/ui/_nuxt/CkXjmgJE.js +1 -0
  161. package/dist/ui/_nuxt/CklMAg4u.js +1 -0
  162. package/dist/ui/_nuxt/Cmh6b_Ma.js +1 -0
  163. package/dist/ui/_nuxt/CnnmHF94.js +1 -0
  164. package/dist/ui/_nuxt/CnsnAmq5.js +1 -0
  165. package/dist/ui/_nuxt/Co6uUVPk.js +1 -0
  166. package/dist/ui/_nuxt/CoDkCxhg.js +1 -0
  167. package/dist/ui/_nuxt/Cp-IABpG.js +1 -0
  168. package/dist/ui/_nuxt/Cp8Y5tLI.js +1 -0
  169. package/dist/ui/_nuxt/Cq5zzVJU.js +1 -0
  170. package/dist/ui/_nuxt/CquLrc37.js +1 -0
  171. package/dist/ui/_nuxt/CrQuFoFY.js +1 -0
  172. package/dist/ui/_nuxt/Cs0ovY-E.js +1 -0
  173. package/dist/ui/_nuxt/CsfeWuGM.js +1 -0
  174. package/dist/ui/_nuxt/Csfq5Kiy.js +1 -0
  175. package/dist/ui/_nuxt/CuPHTKiy.js +1 -0
  176. package/dist/ui/_nuxt/CufHLc7y.js +1 -0
  177. package/dist/ui/_nuxt/Cuk6v7N8.js +1 -0
  178. package/dist/ui/_nuxt/Cvjx9yec.js +1 -0
  179. package/dist/ui/_nuxt/CwoSXNpI.js +1 -0
  180. package/dist/ui/_nuxt/CxGSJlkm.js +1 -0
  181. package/dist/ui/_nuxt/CxbxFI8M.js +1 -0
  182. package/dist/ui/_nuxt/CyktbL80.js +1 -0
  183. package/dist/ui/_nuxt/CylS5w8V.js +1 -0
  184. package/dist/ui/_nuxt/Cz2AlsmD.js +1 -0
  185. package/dist/ui/_nuxt/CzTSHFRz.js +1 -0
  186. package/dist/ui/_nuxt/D-2ljcwZ.js +1 -0
  187. package/dist/ui/_nuxt/D0YGMca9.js +1 -0
  188. package/dist/ui/_nuxt/D0jeqgqx.js +1 -0
  189. package/dist/ui/_nuxt/D0r3Knsf.js +1 -0
  190. package/dist/ui/_nuxt/D17OF-Vu.js +1 -0
  191. package/dist/ui/_nuxt/D1j8_8rp.js +1 -0
  192. package/dist/ui/_nuxt/D2j5LXpq.js +1 -0
  193. package/dist/ui/_nuxt/D3apom_0.js +1 -0
  194. package/dist/ui/_nuxt/D3lLCCz7.js +1 -0
  195. package/dist/ui/_nuxt/D4_iv3hh.js +1 -0
  196. package/dist/ui/_nuxt/D4h5O-jR.js +1 -0
  197. package/dist/ui/_nuxt/D5-asLiD.js +1 -0
  198. package/dist/ui/_nuxt/D53aC0YG.js +1 -0
  199. package/dist/ui/_nuxt/D5KoaKCx.js +1 -0
  200. package/dist/ui/_nuxt/D7o27uSR.js +1 -0
  201. package/dist/ui/_nuxt/D7oLnXFd.js +1 -0
  202. package/dist/ui/_nuxt/D82EKSYY.js +1 -0
  203. package/dist/ui/_nuxt/D82vCrfD.js +1 -0
  204. package/dist/ui/_nuxt/D87Tk5Gz.js +1 -0
  205. package/dist/ui/_nuxt/D8l8udqQ.js +1 -0
  206. package/dist/ui/_nuxt/D93ZcfNL.js +1 -0
  207. package/dist/ui/_nuxt/D97Zzqfu.js +1 -0
  208. package/dist/ui/_nuxt/DAi9KRSo.js +1 -0
  209. package/dist/ui/_nuxt/DCJHYwE6.js +67 -0
  210. package/dist/ui/_nuxt/DFQXde-d.js +1 -0
  211. package/dist/ui/_nuxt/DFWUc33u.js +1 -0
  212. package/dist/ui/_nuxt/DFXneXwc.js +1 -0
  213. package/dist/ui/_nuxt/DGztddWO.js +1 -0
  214. package/dist/ui/_nuxt/DH5Ifo-i.js +1 -0
  215. package/dist/ui/_nuxt/DHCkPAjA.js +1 -0
  216. package/dist/ui/_nuxt/DHJKELXO.js +1 -0
  217. package/dist/ui/_nuxt/DHQR4-dF.js +1 -0
  218. package/dist/ui/_nuxt/DMk3OuwW.js +1 -0
  219. package/dist/ui/_nuxt/DMkUaiYH.js +1 -0
  220. package/dist/ui/_nuxt/DMzUqQB5.js +1 -0
  221. package/dist/ui/_nuxt/DQyhUUbL.js +1 -0
  222. package/dist/ui/_nuxt/DRcdqDVD.js +1 -0
  223. package/dist/ui/_nuxt/DRg8JJMk.js +1 -0
  224. package/dist/ui/_nuxt/DRje8inN.js +1 -0
  225. package/dist/ui/_nuxt/DRw_LuNl.js +1 -0
  226. package/dist/ui/_nuxt/DS2KJUFh.js +1 -0
  227. package/dist/ui/_nuxt/DSSpBswy.js +1 -0
  228. package/dist/ui/_nuxt/DSvCPggb.js +1 -0
  229. package/dist/ui/_nuxt/DT3CNIhV.js +1 -0
  230. package/dist/ui/_nuxt/DToHIG1N.js +1 -0
  231. package/dist/ui/_nuxt/DUszq2jm.js +1 -0
  232. package/dist/ui/_nuxt/DV7GczEv.js +1 -0
  233. package/dist/ui/_nuxt/DVFEvuxE.js +1 -0
  234. package/dist/ui/_nuxt/DVMEJ2y_.js +1 -0
  235. package/dist/ui/_nuxt/DVxCFoDh.js +1 -0
  236. package/dist/ui/_nuxt/{BXG6gk4R.js → DWbelWgw.js} +1 -1
  237. package/dist/ui/_nuxt/DWedfzmr.js +1 -0
  238. package/dist/ui/_nuxt/DWrx1Km3.js +1 -0
  239. package/dist/ui/_nuxt/DXbdFlpD.js +1 -0
  240. package/dist/ui/_nuxt/DXmwc3jG.js +1 -0
  241. package/dist/ui/_nuxt/DXvB9xmW.js +1 -0
  242. package/dist/ui/_nuxt/DYE7WIF3.js +1 -0
  243. package/dist/ui/_nuxt/DZ9PSxVF.js +1 -0
  244. package/dist/ui/_nuxt/DZxFcAj9.js +1 -0
  245. package/dist/ui/_nuxt/D_Q5rh1f.js +1 -0
  246. package/dist/ui/_nuxt/Da5cRb03.js +1 -0
  247. package/dist/ui/_nuxt/Dc-5oQ3p.js +1 -0
  248. package/dist/ui/_nuxt/Dc-i7Zfu.js +1 -0
  249. package/dist/ui/_nuxt/DcWK9jms.js +1 -0
  250. package/dist/ui/_nuxt/DcaNXYhu.js +1 -0
  251. package/dist/ui/_nuxt/Dd19v3D-.js +1 -0
  252. package/dist/ui/_nuxt/DdkO51Og.js +1 -0
  253. package/dist/ui/_nuxt/Ddv68eIx.js +1 -0
  254. package/dist/ui/_nuxt/Des-eS-w.js +1 -0
  255. package/dist/ui/_nuxt/Df2X-ZUM.js +1 -0
  256. package/dist/ui/_nuxt/Df6bDoY_.js +1 -0
  257. package/dist/ui/_nuxt/DfNjGIrv.js +1 -0
  258. package/dist/ui/_nuxt/DhaVEd23.js +1 -0
  259. package/dist/ui/_nuxt/DhaYTIfE.js +1 -0
  260. package/dist/ui/_nuxt/DiuiI0_S.js +1 -0
  261. package/dist/ui/_nuxt/DjAJT7YJ.js +1 -0
  262. package/dist/ui/_nuxt/DkFqJrB1.js +1 -0
  263. package/dist/ui/_nuxt/DkwncUOv.js +1 -0
  264. package/dist/ui/_nuxt/Dl1uYT3n.js +15 -0
  265. package/dist/ui/_nuxt/DnULxvSX.js +1 -0
  266. package/dist/ui/_nuxt/Dpen1YoG.js +1 -0
  267. package/dist/ui/_nuxt/Dph4kLrZ.js +1 -0
  268. package/dist/ui/_nuxt/DqQDbK_p.js +1 -0
  269. package/dist/ui/_nuxt/Dqspr-GT.js +1 -0
  270. package/dist/ui/_nuxt/DqwNpetd.js +1 -0
  271. package/dist/ui/_nuxt/DsOJ9woJ.js +1 -0
  272. package/dist/ui/_nuxt/Dsmy0J62.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/HgPamjhh.js +1 -0
  279. package/dist/ui/_nuxt/IF9eRakj.js +1 -0
  280. package/dist/ui/_nuxt/IeuSbFQv.js +1 -0
  281. package/dist/ui/_nuxt/KW6xsasC.js +1 -0
  282. package/dist/ui/_nuxt/L9t79GZl.js +1 -0
  283. package/dist/ui/_nuxt/LYj2JSs-.js +1 -0
  284. package/dist/ui/_nuxt/MRO5bC_T.js +1 -0
  285. package/dist/ui/_nuxt/MzD3tlZU.js +1 -0
  286. package/dist/ui/_nuxt/P80f7IUj.js +1 -0
  287. package/dist/ui/_nuxt/Pmp26Uib.js +1 -0
  288. package/dist/ui/_nuxt/Project.BMA756E4.css +1 -0
  289. package/dist/ui/_nuxt/QIJgUcNo.js +1 -0
  290. package/dist/ui/_nuxt/VOosw3JB.js +1 -0
  291. package/dist/ui/_nuxt/Ve4PFQV2.js +1 -0
  292. package/dist/ui/_nuxt/W70NOuRA.js +1 -0
  293. package/dist/ui/_nuxt/Yzrsuije.js +1 -0
  294. package/dist/ui/_nuxt/_H4v1dQx.js +1 -0
  295. package/dist/ui/_nuxt/_ykCGR6B.js +1 -0
  296. package/dist/ui/_nuxt/bCR0ucgS.js +1 -0
  297. package/dist/ui/_nuxt/bE4Kk8sk.js +1 -0
  298. package/dist/ui/_nuxt/bN70gL4F.js +1 -0
  299. package/dist/ui/_nuxt/builds/latest.json +1 -1
  300. package/dist/ui/_nuxt/builds/meta/283a6ae8-b1fa-4a56-aab5-927ed1779674.json +1 -0
  301. package/dist/ui/_nuxt/dwOrl1Do.js +1 -0
  302. package/dist/ui/_nuxt/e9S_qqu4.js +1 -0
  303. package/dist/ui/_nuxt/entry.DnCs62PI.css +1 -0
  304. package/dist/ui/_nuxt/error-404.CiGdHkfa.css +1 -0
  305. package/dist/ui/_nuxt/error-500.DrZuPeVU.css +1 -0
  306. package/dist/ui/_nuxt/fuZLfV_i.js +1 -0
  307. package/dist/ui/_nuxt/g9-lgVsj.js +1 -0
  308. package/dist/ui/_nuxt/gcz8RCvz.js +1 -0
  309. package/dist/ui/_nuxt/hJgmCMqR.js +1 -0
  310. package/dist/ui/_nuxt/hegEt444.js +1 -0
  311. package/dist/ui/_nuxt/index.C3E0NnSu.css +1 -0
  312. package/dist/ui/_nuxt/ivQhLDHX.js +11 -0
  313. package/dist/ui/_nuxt/k_qm7-4y.js +1 -0
  314. package/dist/ui/_nuxt/ka8bt-K2.js +153 -0
  315. package/dist/ui/_nuxt/lBpI9LM0.js +1 -0
  316. package/dist/ui/_nuxt/lXgVvXCa.js +1 -0
  317. package/dist/ui/_nuxt/mWjccvbQ.js +1 -0
  318. package/dist/ui/_nuxt/n2N0HUVH.js +1 -0
  319. package/dist/ui/_nuxt/qdsjHGoJ.js +1 -0
  320. package/dist/ui/_nuxt/rGO070M0.js +1 -0
  321. package/dist/ui/_nuxt/rZm6bMo-.js +1 -0
  322. package/dist/ui/_nuxt/rgL8RFrC.js +1 -0
  323. package/dist/ui/_nuxt/u5AG7uiY.js +1 -0
  324. package/dist/ui/_nuxt/uYugtg8r.js +1 -0
  325. package/dist/ui/_nuxt/vE_lwT2v.js +1 -0
  326. package/dist/ui/_nuxt/vGWfd6FD.js +1 -0
  327. package/dist/ui/_nuxt/wDzz0qaB.js +1 -0
  328. package/dist/ui/_nuxt/wEQ09or8.js +1 -0
  329. package/dist/ui/_nuxt/yv6CvBhz.js +1 -0
  330. package/dist/ui/_nuxt/zinMudAE.js +1 -0
  331. package/dist/ui/hub/index.html +1 -0
  332. package/dist/ui/hub/queue/index.html +1 -0
  333. package/dist/ui/hub/recent/index.html +1 -0
  334. package/dist/ui/index.html +1 -1
  335. package/dist/ui/queue/index.html +1 -0
  336. package/dist/ui/recent/index.html +1 -0
  337. package/package.json +27 -24
  338. package/skills/ghfs/SKILL.md +10 -0
  339. package/dist/factory-DypZ8oi9.mjs +0 -570
  340. package/dist/provider-BFJGpjCs.d.mts +0 -203
  341. package/dist/server/index.d.mts +0 -287
  342. package/dist/server/index.mjs +0 -2
  343. package/dist/server-n1FLF8Xo.mjs +0 -3331
  344. package/dist/ui/_nuxt/BMIwt_GL.js +0 -1
  345. package/dist/ui/_nuxt/DA9k4Rdg.js +0 -69
  346. package/dist/ui/_nuxt/builds/meta/64045338-3c37-4c7d-a0df-5b21000f8b0a.json +0 -1
  347. package/dist/ui/_nuxt/entry.B5oa46-c.css +0 -1
  348. package/dist/ui/_nuxt/error-404.CktHaldI.css +0 -1
  349. package/dist/ui/_nuxt/error-500.DVdbZfrj.css +0 -1
@@ -1,570 +0,0 @@
1
- import { retry } from "@octokit/plugin-retry";
2
- import { throttling } from "@octokit/plugin-throttling";
3
- import { Octokit } from "octokit";
4
- //#region src/utils/repo.ts
5
- function splitRepo(repo) {
6
- const [owner, name] = repo.split("/");
7
- if (!owner || !name) throw new Error(`Invalid repo slug: ${repo}`);
8
- return {
9
- owner,
10
- repo: name
11
- };
12
- }
13
- //#endregion
14
- //#region src/utils/color.ts
15
- function randomHexColor() {
16
- return Math.floor(Math.random() * 16777216).toString(16).padStart(6, "0");
17
- }
18
- //#endregion
19
- //#region src/utils/format.ts
20
- function formatIssueNumber(number, options = {}) {
21
- const label = `#${number}`;
22
- if (!options.repo) return label;
23
- return formatTerminalLink(label, toGitHubIssueUrl(options.repo, number, options.kind));
24
- }
25
- function formatTerminalLink(text, url) {
26
- return `\u001B]8;;${url}\u001B\\${text}\u001B]8;;\u001B\\`;
27
- }
28
- function toGitHubIssueUrl(repo, number, kind = "issue") {
29
- return `https://github.com/${repo}/${kind === "pull" ? "pull" : "issues"}/${number}`;
30
- }
31
- function formatValue(value) {
32
- if (value == null) return "";
33
- if (value instanceof Date) return `${value.toLocaleString()} (${formatRelativeTime(value)})`;
34
- if (typeof value === "number") return formatNumber(value);
35
- return String(value);
36
- }
37
- function formatNumber(value) {
38
- return value.toLocaleString();
39
- }
40
- function formatRelativeTime(date) {
41
- const diff = (/* @__PURE__ */ new Date()).getTime() - date.getTime();
42
- if (diff < 1e3) return "just now";
43
- if (diff < 6e4) return `${Math.round(diff / 1e3)}s ago`;
44
- if (diff < 36e5) return `${Math.round(diff / 6e4)}m ago`;
45
- return date.toLocaleString();
46
- }
47
- function countNoun(count, singular, plural = `${singular}s`) {
48
- return `${count} ${count === 1 ? singular : plural}`;
49
- }
50
- function formatDuration(durationMs) {
51
- if (durationMs < 1e3) return `${durationMs}ms`;
52
- return `${(durationMs / 1e3).toFixed(2)}s`;
53
- }
54
- //#endregion
55
- //#region src/utils/reactions.ts
56
- const REACTION_KEYS = [
57
- "plusOne",
58
- "minusOne",
59
- "laugh",
60
- "hooray",
61
- "confused",
62
- "heart",
63
- "rocket",
64
- "eyes"
65
- ];
66
- function createEmptyReactions() {
67
- return {
68
- totalCount: 0,
69
- plusOne: 0,
70
- minusOne: 0,
71
- laugh: 0,
72
- hooray: 0,
73
- confused: 0,
74
- heart: 0,
75
- rocket: 0,
76
- eyes: 0
77
- };
78
- }
79
- function normalizeReactions(reactions) {
80
- const normalized = createEmptyReactions();
81
- if (!reactions) return normalized;
82
- for (const key of REACTION_KEYS) normalized[key] = normalizeCount(reactions[key]);
83
- const computedTotal = REACTION_KEYS.reduce((sum, key) => sum + normalized[key], 0);
84
- normalized.totalCount = Math.max(normalizeCount(reactions.totalCount), computedTotal);
85
- return normalized;
86
- }
87
- function normalizeCount(value) {
88
- if (typeof value !== "number") return 0;
89
- if (!Number.isFinite(value)) return 0;
90
- if (value <= 0) return 0;
91
- return Math.floor(value);
92
- }
93
- //#endregion
94
- //#region src/providers/helpers.ts
95
- async function collectPages(pages) {
96
- const items = [];
97
- for await (const page of pages) items.push(...page);
98
- return items;
99
- }
100
- async function* iteratePages(pages) {
101
- for await (const page of pages) for (const item of page) yield item;
102
- }
103
- //#endregion
104
- //#region src/providers/github/client.ts
105
- const BaseOctokit = Octokit.plugin(retry, throttling);
106
- function createGitHubClient(token) {
107
- return new BaseOctokit({
108
- auth: token,
109
- throttle: {
110
- onRateLimit: (retryAfter, options) => {
111
- if ((options.request.retryCount ?? 0) < 2) return true;
112
- return false;
113
- },
114
- onSecondaryRateLimit: () => {
115
- return false;
116
- }
117
- },
118
- retry: {
119
- doNotRetry: [401, 403],
120
- retries: 2
121
- }
122
- });
123
- }
124
- //#endregion
125
- //#region src/providers/github/provider.ts
126
- function createGitHubProvider(options) {
127
- const octokit = createGitHubClient(options.token);
128
- const { owner, repo } = options;
129
- let requestCount = 0;
130
- const bumpRequestCount = () => {
131
- requestCount += 1;
132
- };
133
- return {
134
- paginateItems: (paginateOptions) => paginateItems(octokit, owner, repo, paginateOptions, bumpRequestCount),
135
- fetchItems: (paginateOptions) => fetchItems(octokit, owner, repo, paginateOptions, bumpRequestCount),
136
- eachItem: (paginateOptions) => eachItem(octokit, owner, repo, paginateOptions, bumpRequestCount),
137
- fetchItemsByNumbers: (numbers) => fetchItemsByNumbers(octokit, owner, repo, numbers, bumpRequestCount),
138
- fetchComments: (number) => fetchComments(octokit, owner, repo, number, bumpRequestCount),
139
- fetchPullMetadata: (number) => fetchPullMetadata(octokit, owner, repo, number, bumpRequestCount),
140
- fetchPullPatch: (number) => fetchPullPatch(octokit, owner, repo, number, bumpRequestCount),
141
- fetchItemSnapshot: (number) => fetchItemSnapshot(octokit, owner, repo, number, bumpRequestCount),
142
- fetchRepository: () => fetchRepository(octokit, owner, repo, bumpRequestCount),
143
- fetchRepositoryLabels: () => fetchRepositoryLabels(octokit, owner, repo, bumpRequestCount),
144
- fetchRepositoryMilestones: () => fetchRepositoryMilestones(octokit, owner, repo, bumpRequestCount),
145
- countUpdatedSince: (since) => countUpdatedSince(octokit, owner, repo, since, bumpRequestCount),
146
- getRequestCount: () => requestCount,
147
- actionClose: (number) => actionClose(octokit, owner, repo, number, bumpRequestCount),
148
- actionReopen: (number) => actionReopen(octokit, owner, repo, number, bumpRequestCount),
149
- actionSetTitle: (number, title) => actionSetTitle(octokit, owner, repo, number, title, bumpRequestCount),
150
- actionSetBody: (number, body) => actionSetBody(octokit, owner, repo, number, body, bumpRequestCount),
151
- actionAddComment: (number, body) => actionAddComment(octokit, owner, repo, number, body, bumpRequestCount),
152
- actionAddLabels: (number, labels) => actionAddLabels(octokit, owner, repo, number, labels, bumpRequestCount),
153
- actionRemoveLabels: (number, labels) => actionRemoveLabels(octokit, owner, repo, number, labels, bumpRequestCount),
154
- actionSetLabels: (number, labels) => actionSetLabels(octokit, owner, repo, number, labels, bumpRequestCount),
155
- actionAddAssignees: (number, assignees) => actionAddAssignees(octokit, owner, repo, number, assignees, bumpRequestCount),
156
- actionRemoveAssignees: (number, assignees) => actionRemoveAssignees(octokit, owner, repo, number, assignees, bumpRequestCount),
157
- actionSetAssignees: (number, assignees) => actionSetAssignees(octokit, owner, repo, number, assignees, bumpRequestCount),
158
- actionSetMilestone: (number, milestone) => actionSetMilestone(octokit, owner, repo, number, milestone, bumpRequestCount),
159
- actionClearMilestone: (number) => actionClearMilestone(octokit, owner, repo, number, bumpRequestCount),
160
- actionLock: (number, reason) => actionLock(octokit, owner, repo, number, reason, bumpRequestCount),
161
- actionUnlock: (number) => actionUnlock(octokit, owner, repo, number, bumpRequestCount),
162
- actionRequestReviewers: (number, reviewers) => actionRequestReviewers(octokit, owner, repo, number, reviewers, bumpRequestCount),
163
- actionRemoveReviewers: (number, reviewers) => actionRemoveReviewers(octokit, owner, repo, number, reviewers, bumpRequestCount),
164
- actionMarkReadyForReview: (number) => actionMarkReadyForReview(octokit, owner, repo, number, bumpRequestCount),
165
- actionConvertToDraft: (number) => actionConvertToDraft(octokit, owner, repo, number, bumpRequestCount)
166
- };
167
- }
168
- async function* paginateItems(octokit, owner, repo, options, bumpRequestCount) {
169
- const iterator = octokit.paginate.iterator(octokit.rest.issues.listForRepo, {
170
- owner,
171
- repo,
172
- state: options.state,
173
- sort: "updated",
174
- direction: "asc",
175
- per_page: 100,
176
- since: options.since
177
- });
178
- for await (const page of iterator) {
179
- bumpRequestCount();
180
- yield page.data.map(mapIssue);
181
- }
182
- }
183
- async function fetchItems(octokit, owner, repo, options, bumpRequestCount) {
184
- return await collectPages(paginateItems(octokit, owner, repo, options, bumpRequestCount));
185
- }
186
- async function* eachItem(octokit, owner, repo, options, bumpRequestCount) {
187
- yield* iteratePages(paginateItems(octokit, owner, repo, options, bumpRequestCount));
188
- }
189
- async function fetchItemsByNumbers(octokit, owner, repo, numbers, bumpRequestCount) {
190
- return (await Promise.all(numbers.map(async (number) => {
191
- bumpRequestCount();
192
- return mapIssue((await octokit.rest.issues.get({
193
- owner,
194
- repo,
195
- issue_number: number
196
- })).data);
197
- }))).sort((a, b) => a.number - b.number);
198
- }
199
- async function fetchComments(octokit, owner, repo, number, bumpRequestCount) {
200
- bumpRequestCount();
201
- return (await octokit.paginate(octokit.rest.issues.listComments, {
202
- owner,
203
- repo,
204
- issue_number: number,
205
- per_page: 100
206
- })).map(mapComment);
207
- }
208
- async function fetchPullMetadata(octokit, owner, repo, number, bumpRequestCount) {
209
- bumpRequestCount();
210
- const pull = (await octokit.rest.pulls.get({
211
- owner,
212
- repo,
213
- pull_number: number
214
- })).data;
215
- return {
216
- isDraft: pull.draft,
217
- merged: pull.merged,
218
- mergedAt: pull.merged_at,
219
- baseRef: pull.base.ref,
220
- headRef: pull.head.ref,
221
- requestedReviewers: pull.requested_reviewers.map((reviewer) => reviewer.login)
222
- };
223
- }
224
- async function fetchPullPatch(octokit, owner, repo, number, bumpRequestCount) {
225
- bumpRequestCount();
226
- const result = await octokit.request("GET /repos/{owner}/{repo}/pulls/{pull_number}", {
227
- owner,
228
- repo,
229
- pull_number: number,
230
- mediaType: { format: "patch" }
231
- });
232
- if (typeof result.data === "string") return result.data;
233
- throw new Error(`Unexpected patch response for pull ${formatIssueNumber(number, {
234
- repo: `${owner}/${repo}`,
235
- kind: "pull"
236
- })}`);
237
- }
238
- async function fetchItemSnapshot(octokit, owner, repo, number, bumpRequestCount) {
239
- bumpRequestCount();
240
- const issue = (await octokit.rest.issues.get({
241
- owner,
242
- repo,
243
- issue_number: number
244
- })).data;
245
- return {
246
- number,
247
- kind: issue.pull_request ? "pull" : "issue",
248
- updatedAt: issue.updated_at ?? null
249
- };
250
- }
251
- async function fetchRepository(octokit, owner, repo, bumpRequestCount) {
252
- bumpRequestCount();
253
- return (await octokit.rest.repos.get({
254
- owner,
255
- repo
256
- })).data;
257
- }
258
- async function fetchRepositoryLabels(octokit, owner, repo, bumpRequestCount) {
259
- bumpRequestCount();
260
- return await octokit.paginate(octokit.rest.issues.listLabelsForRepo, {
261
- owner,
262
- repo,
263
- per_page: 100
264
- });
265
- }
266
- async function fetchRepositoryMilestones(octokit, owner, repo, bumpRequestCount) {
267
- bumpRequestCount();
268
- return await octokit.paginate(octokit.rest.issues.listMilestones, {
269
- owner,
270
- repo,
271
- state: "all",
272
- per_page: 100
273
- });
274
- }
275
- async function countUpdatedSince(octokit, owner, repo, since, bumpRequestCount) {
276
- bumpRequestCount();
277
- const sinceQuery = normalizeSinceForSearch(since);
278
- const result = await octokit.graphql(`query CountsUpdated($issuesQuery: String!, $pullsQuery: String!) {
279
- issues: search(query: $issuesQuery, type: ISSUE, first: 0) { issueCount }
280
- pulls: search(query: $pullsQuery, type: ISSUE, first: 0) { issueCount }
281
- }`, {
282
- issuesQuery: `repo:${owner}/${repo} is:issue updated:>=${sinceQuery}`,
283
- pullsQuery: `repo:${owner}/${repo} is:pr updated:>=${sinceQuery}`
284
- });
285
- return {
286
- issues: result.issues.issueCount,
287
- pulls: result.pulls.issueCount
288
- };
289
- }
290
- function normalizeSinceForSearch(since) {
291
- const date = new Date(since);
292
- if (Number.isNaN(date.getTime())) return since;
293
- return date.toISOString();
294
- }
295
- async function actionClose(octokit, owner, repo, number, bumpRequestCount) {
296
- bumpRequestCount();
297
- await octokit.rest.issues.update({
298
- owner,
299
- repo,
300
- issue_number: number,
301
- state: "closed"
302
- });
303
- }
304
- async function actionReopen(octokit, owner, repo, number, bumpRequestCount) {
305
- bumpRequestCount();
306
- await octokit.rest.issues.update({
307
- owner,
308
- repo,
309
- issue_number: number,
310
- state: "open"
311
- });
312
- }
313
- async function actionSetTitle(octokit, owner, repo, number, title, bumpRequestCount) {
314
- bumpRequestCount();
315
- await octokit.rest.issues.update({
316
- owner,
317
- repo,
318
- issue_number: number,
319
- title
320
- });
321
- }
322
- async function actionSetBody(octokit, owner, repo, number, body, bumpRequestCount) {
323
- bumpRequestCount();
324
- await octokit.rest.issues.update({
325
- owner,
326
- repo,
327
- issue_number: number,
328
- body
329
- });
330
- }
331
- async function actionAddComment(octokit, owner, repo, number, body, bumpRequestCount) {
332
- bumpRequestCount();
333
- await octokit.rest.issues.createComment({
334
- owner,
335
- repo,
336
- issue_number: number,
337
- body
338
- });
339
- }
340
- async function actionAddLabels(octokit, owner, repo, number, labels, bumpRequestCount) {
341
- await ensureLabelsExist(octokit, owner, repo, labels, bumpRequestCount);
342
- bumpRequestCount();
343
- await octokit.rest.issues.addLabels({
344
- owner,
345
- repo,
346
- issue_number: number,
347
- labels
348
- });
349
- }
350
- async function actionRemoveLabels(octokit, owner, repo, number, labels, bumpRequestCount) {
351
- for (const label of labels) try {
352
- bumpRequestCount();
353
- await octokit.rest.issues.removeLabel({
354
- owner,
355
- repo,
356
- issue_number: number,
357
- name: label
358
- });
359
- } catch (error) {
360
- if (error.status !== 404) throw error;
361
- }
362
- }
363
- async function actionSetLabels(octokit, owner, repo, number, labels, bumpRequestCount) {
364
- await ensureLabelsExist(octokit, owner, repo, labels, bumpRequestCount);
365
- bumpRequestCount();
366
- await octokit.rest.issues.setLabels({
367
- owner,
368
- repo,
369
- issue_number: number,
370
- labels
371
- });
372
- }
373
- async function ensureLabelsExist(octokit, owner, repo, labels, bumpRequestCount) {
374
- if (!labels.length) return;
375
- const existingLabels = await fetchRepositoryLabels(octokit, owner, repo, bumpRequestCount);
376
- const existingLabelNames = new Set(existingLabels.map((label) => label.name.toLowerCase()));
377
- for (const label of labels) {
378
- const normalizedLabel = label.toLowerCase();
379
- if (existingLabelNames.has(normalizedLabel)) continue;
380
- try {
381
- bumpRequestCount();
382
- await octokit.rest.issues.createLabel({
383
- owner,
384
- repo,
385
- name: label,
386
- color: randomHexColor()
387
- });
388
- existingLabelNames.add(normalizedLabel);
389
- } catch (error) {
390
- if (error.status !== 422) throw error;
391
- existingLabelNames.add(normalizedLabel);
392
- }
393
- }
394
- }
395
- async function actionAddAssignees(octokit, owner, repo, number, assignees, bumpRequestCount) {
396
- bumpRequestCount();
397
- await octokit.rest.issues.addAssignees({
398
- owner,
399
- repo,
400
- issue_number: number,
401
- assignees
402
- });
403
- }
404
- async function actionRemoveAssignees(octokit, owner, repo, number, assignees, bumpRequestCount) {
405
- bumpRequestCount();
406
- await octokit.rest.issues.removeAssignees({
407
- owner,
408
- repo,
409
- issue_number: number,
410
- assignees
411
- });
412
- }
413
- async function actionSetAssignees(octokit, owner, repo, number, assignees, bumpRequestCount) {
414
- bumpRequestCount();
415
- await octokit.rest.issues.update({
416
- owner,
417
- repo,
418
- issue_number: number,
419
- assignees
420
- });
421
- }
422
- async function actionSetMilestone(octokit, owner, repo, number, milestone, bumpRequestCount) {
423
- const resolvedMilestone = await resolveMilestone(octokit, owner, repo, milestone, bumpRequestCount);
424
- bumpRequestCount();
425
- await octokit.rest.issues.update({
426
- owner,
427
- repo,
428
- issue_number: number,
429
- milestone: resolvedMilestone
430
- });
431
- }
432
- async function actionClearMilestone(octokit, owner, repo, number, bumpRequestCount) {
433
- bumpRequestCount();
434
- await octokit.rest.issues.update({
435
- owner,
436
- repo,
437
- issue_number: number,
438
- milestone: null
439
- });
440
- }
441
- async function actionLock(octokit, owner, repo, number, reason, bumpRequestCount) {
442
- bumpRequestCount();
443
- await octokit.rest.issues.lock({
444
- owner,
445
- repo,
446
- issue_number: number,
447
- lock_reason: normalizeLockReason(reason)
448
- });
449
- }
450
- async function actionUnlock(octokit, owner, repo, number, bumpRequestCount) {
451
- bumpRequestCount();
452
- await octokit.rest.issues.unlock({
453
- owner,
454
- repo,
455
- issue_number: number
456
- });
457
- }
458
- async function actionRequestReviewers(octokit, owner, repo, number, reviewers, bumpRequestCount) {
459
- bumpRequestCount();
460
- await octokit.rest.pulls.requestReviewers({
461
- owner,
462
- repo,
463
- pull_number: number,
464
- reviewers
465
- });
466
- }
467
- async function actionRemoveReviewers(octokit, owner, repo, number, reviewers, bumpRequestCount) {
468
- bumpRequestCount();
469
- await octokit.rest.pulls.removeRequestedReviewers({
470
- owner,
471
- repo,
472
- pull_number: number,
473
- reviewers
474
- });
475
- }
476
- async function actionMarkReadyForReview(octokit, owner, repo, number, bumpRequestCount) {
477
- bumpRequestCount();
478
- await octokit.request("POST /repos/{owner}/{repo}/pulls/{pull_number}/ready_for_review", {
479
- owner,
480
- repo,
481
- pull_number: number
482
- });
483
- }
484
- async function actionConvertToDraft(octokit, owner, repo, number, bumpRequestCount) {
485
- bumpRequestCount();
486
- await octokit.request("POST /repos/{owner}/{repo}/pulls/{pull_number}/convert-to-draft", {
487
- owner,
488
- repo,
489
- pull_number: number
490
- });
491
- }
492
- async function resolveMilestone(octokit, owner, repo, value, bumpRequestCount) {
493
- if (typeof value === "number") return value;
494
- if (/^\d+$/.test(value)) return Number(value);
495
- bumpRequestCount();
496
- const matched = (await octokit.paginate(octokit.rest.issues.listMilestones, {
497
- owner,
498
- repo,
499
- state: "all",
500
- per_page: 100
501
- })).find((item) => item.title === value);
502
- if (!matched) throw new Error(`Milestone not found: ${value}`);
503
- return matched.number;
504
- }
505
- function normalizeLockReason(reason) {
506
- if (!reason) return void 0;
507
- if (reason === "too-heated") return "too heated";
508
- return reason;
509
- }
510
- function mapIssue(issue) {
511
- return {
512
- number: issue.number,
513
- kind: issue.pull_request ? "pull" : "issue",
514
- ...issue.html_url ? { url: issue.html_url } : {},
515
- state: issue.state === "closed" ? "closed" : "open",
516
- stateReason: normalizeStateReason(issue.state_reason),
517
- updatedAt: issue.updated_at,
518
- createdAt: issue.created_at,
519
- closedAt: issue.closed_at,
520
- title: issue.title,
521
- body: issue.body,
522
- author: issue.user?.login ?? null,
523
- labels: issue.labels.map((label) => {
524
- if (typeof label === "string") return label;
525
- return label.name ?? void 0;
526
- }).filter((label) => Boolean(label)),
527
- assignees: (issue.assignees ?? []).map((assignee) => assignee.login),
528
- milestone: issue.milestone?.title ?? null,
529
- reactions: mapReactions(issue.reactions)
530
- };
531
- }
532
- function normalizeStateReason(reason) {
533
- if (reason === "completed" || reason === "not_planned" || reason === "reopened") return reason;
534
- return null;
535
- }
536
- function mapComment(comment) {
537
- return {
538
- id: comment.id,
539
- body: comment.body,
540
- createdAt: comment.created_at,
541
- updatedAt: comment.updated_at,
542
- author: comment.user?.login ?? null,
543
- reactions: mapReactions(comment.reactions)
544
- };
545
- }
546
- function mapReactions(reactions) {
547
- return normalizeReactions({
548
- totalCount: reactions?.total_count,
549
- plusOne: reactions?.["+1"],
550
- minusOne: reactions?.["-1"],
551
- laugh: reactions?.laugh,
552
- hooray: reactions?.hooray,
553
- confused: reactions?.confused,
554
- heart: reactions?.heart,
555
- rocket: reactions?.rocket,
556
- eyes: reactions?.eyes
557
- });
558
- }
559
- //#endregion
560
- //#region src/providers/factory.ts
561
- function createRepositoryProvider(options) {
562
- const { owner, repo } = splitRepo(options.repo);
563
- return createGitHubProvider({
564
- token: options.token,
565
- owner,
566
- repo
567
- });
568
- }
569
- //#endregion
570
- export { formatIssueNumber as a, formatDuration as i, normalizeReactions as n, formatTerminalLink as o, countNoun as r, formatValue as s, createRepositoryProvider as t };