jialing-code 1.1.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 (460) hide show
  1. package/README.md +97 -0
  2. package/dist/chunk-065m026w.js +97 -0
  3. package/dist/chunk-06saje2v.js +39 -0
  4. package/dist/chunk-0731m51q.js +8 -0
  5. package/dist/chunk-0975ccyw.js +265 -0
  6. package/dist/chunk-09n3fjx5.js +67 -0
  7. package/dist/chunk-0bdjdzew.js +41 -0
  8. package/dist/chunk-0ce6kd7y.js +212 -0
  9. package/dist/chunk-0e1xsncc.js +969 -0
  10. package/dist/chunk-0m2861gw.js +154 -0
  11. package/dist/chunk-0paqc2yw.js +15 -0
  12. package/dist/chunk-0rg6yrhy.js +99 -0
  13. package/dist/chunk-0sakxrcf.js +643 -0
  14. package/dist/chunk-0v9hwxvz.js +105 -0
  15. package/dist/chunk-0vkfrmqm.js +690 -0
  16. package/dist/chunk-0vvfnhhv.js +248 -0
  17. package/dist/chunk-0w4rsycj.js +145 -0
  18. package/dist/chunk-0x9b2nmd.js +63 -0
  19. package/dist/chunk-0xjaqda8.js +1124 -0
  20. package/dist/chunk-1141xmr4.js +8 -0
  21. package/dist/chunk-13d1842d.js +154 -0
  22. package/dist/chunk-1921a6yb.js +32 -0
  23. package/dist/chunk-1ad8mk9g.js +527 -0
  24. package/dist/chunk-1ax41pws.js +28 -0
  25. package/dist/chunk-1c8z1b5v.js +16 -0
  26. package/dist/chunk-1cbn5kxf.js +7 -0
  27. package/dist/chunk-1eapde8a.js +726 -0
  28. package/dist/chunk-1h2famwb.js +49 -0
  29. package/dist/chunk-1jggnf7z.js +85 -0
  30. package/dist/chunk-1k92pn9c.js +32 -0
  31. package/dist/chunk-1qakq4sn.js +802 -0
  32. package/dist/chunk-1rvz0433.js +722 -0
  33. package/dist/chunk-1xkekb9y.js +19 -0
  34. package/dist/chunk-238g70xa.js +36 -0
  35. package/dist/chunk-24ge0eqa.js +106 -0
  36. package/dist/chunk-278vghwm.js +5395 -0
  37. package/dist/chunk-27xc1csx.js +104 -0
  38. package/dist/chunk-2a42s11t.js +412 -0
  39. package/dist/chunk-2aa02aw6.js +438 -0
  40. package/dist/chunk-2eykm0j0.js +20 -0
  41. package/dist/chunk-2gzv8nrw.js +205 -0
  42. package/dist/chunk-2k995y2x.js +880 -0
  43. package/dist/chunk-2nayx6q1.js +63 -0
  44. package/dist/chunk-2sd2w2h4.js +44 -0
  45. package/dist/chunk-2tw2ve8h.js +145 -0
  46. package/dist/chunk-30rst83v.js +168 -0
  47. package/dist/chunk-3aavh06g.js +1581 -0
  48. package/dist/chunk-3b0yvt2h.js +469 -0
  49. package/dist/chunk-3be7ka25.js +56 -0
  50. package/dist/chunk-3c25bcsw.js +17 -0
  51. package/dist/chunk-3dyxka97.js +584 -0
  52. package/dist/chunk-3f7rypmf.js +16544 -0
  53. package/dist/chunk-3fsd7f51.js +93 -0
  54. package/dist/chunk-3gqdqmzb.js +75 -0
  55. package/dist/chunk-3h8a89gy.js +46 -0
  56. package/dist/chunk-3m84sret.js +71 -0
  57. package/dist/chunk-3nb7j3js.js +96 -0
  58. package/dist/chunk-3p08nvn2.js +98 -0
  59. package/dist/chunk-3r09htpc.js +318 -0
  60. package/dist/chunk-3r24h7t6.js +113 -0
  61. package/dist/chunk-3rkfxjtq.js +80 -0
  62. package/dist/chunk-3tmk7dc2.js +604 -0
  63. package/dist/chunk-3w6s9m5w.js +16 -0
  64. package/dist/chunk-43qjymy5.js +92 -0
  65. package/dist/chunk-44fpr6jq.js +434 -0
  66. package/dist/chunk-45kxdsp8.js +444 -0
  67. package/dist/chunk-495d85x1.js +8066 -0
  68. package/dist/chunk-4ba796se.js +1095 -0
  69. package/dist/chunk-4g3v8y12.js +23 -0
  70. package/dist/chunk-4h53xj8n.js +3445 -0
  71. package/dist/chunk-4jm600zv.js +13 -0
  72. package/dist/chunk-4jy9dtwk.js +116 -0
  73. package/dist/chunk-4p60dd45.js +55 -0
  74. package/dist/chunk-4z0jsrqg.js +81 -0
  75. package/dist/chunk-4zfkzkt6.js +37 -0
  76. package/dist/chunk-55wgxwa9.js +13877 -0
  77. package/dist/chunk-5dbk24zg.js +890 -0
  78. package/dist/chunk-5hzvp4va.js +115 -0
  79. package/dist/chunk-5kbt1mbt.js +500 -0
  80. package/dist/chunk-5pen7vr8.js +176 -0
  81. package/dist/chunk-5r280eng.js +198 -0
  82. package/dist/chunk-5srym52s.js +88 -0
  83. package/dist/chunk-600kg7k6.js +41 -0
  84. package/dist/chunk-616w0qj3.js +160 -0
  85. package/dist/chunk-62jw1t8c.js +94 -0
  86. package/dist/chunk-62xmt9mk.js +372 -0
  87. package/dist/chunk-64bvg7c3.js +229 -0
  88. package/dist/chunk-65yhe4s0.js +281 -0
  89. package/dist/chunk-6aewh27m.js +102 -0
  90. package/dist/chunk-6bd8brc4.js +48 -0
  91. package/dist/chunk-6dj5t602.js +341 -0
  92. package/dist/chunk-6exxdk1p.js +6956 -0
  93. package/dist/chunk-6f5j8fs0.js +752 -0
  94. package/dist/chunk-6g62sjpf.js +328 -0
  95. package/dist/chunk-6gecq2ta.js +1493 -0
  96. package/dist/chunk-6gr3c3w9.js +378 -0
  97. package/dist/chunk-6kpbgc5w.js +23 -0
  98. package/dist/chunk-6kseqw79.js +154 -0
  99. package/dist/chunk-6mxm1qd0.js +40764 -0
  100. package/dist/chunk-6n2qgm9v.js +8 -0
  101. package/dist/chunk-6tq2v3rk.js +186 -0
  102. package/dist/chunk-6wsdhj3v.js +93 -0
  103. package/dist/chunk-6zw9fhgb.js +4389 -0
  104. package/dist/chunk-71grc1mw.js +111 -0
  105. package/dist/chunk-73rpbt04.js +1947 -0
  106. package/dist/chunk-748feghg.js +604 -0
  107. package/dist/chunk-75e8gtg9.js +84 -0
  108. package/dist/chunk-75th4717.js +780 -0
  109. package/dist/chunk-760252na.js +101 -0
  110. package/dist/chunk-7739pg2c.js +4261 -0
  111. package/dist/chunk-778fnx46.js +472 -0
  112. package/dist/chunk-77g09znh.js +391 -0
  113. package/dist/chunk-7aw745vx.js +40175 -0
  114. package/dist/chunk-7m2nd8da.js +110 -0
  115. package/dist/chunk-7n35vjtw.js +444 -0
  116. package/dist/chunk-7n5ss4sh.js +144 -0
  117. package/dist/chunk-7rjnxcfe.js +107 -0
  118. package/dist/chunk-7sb5axvf.js +122 -0
  119. package/dist/chunk-7wm5s02e.js +216 -0
  120. package/dist/chunk-7ymfj7m3.js +151 -0
  121. package/dist/chunk-7z8j9qfn.js +121 -0
  122. package/dist/chunk-7zsapntc.js +216 -0
  123. package/dist/chunk-805fhkfh.js +908 -0
  124. package/dist/chunk-80k1nj24.js +253 -0
  125. package/dist/chunk-83hfzbx3.js +10 -0
  126. package/dist/chunk-85cypsdd.js +92 -0
  127. package/dist/chunk-8760caxf.js +2644 -0
  128. package/dist/chunk-88f6egg6.js +387 -0
  129. package/dist/chunk-88r7kwgj.js +22 -0
  130. package/dist/chunk-89e1v45e.js +463 -0
  131. package/dist/chunk-8bedvdm1.js +32 -0
  132. package/dist/chunk-8c4x4vdz.js +177 -0
  133. package/dist/chunk-8hq5kk3y.js +44 -0
  134. package/dist/chunk-8ngxagxq.js +18 -0
  135. package/dist/chunk-8tnsngw2.js +31 -0
  136. package/dist/chunk-8wjnca8h.js +307 -0
  137. package/dist/chunk-8y12jxg8.js +10 -0
  138. package/dist/chunk-8ymf4e6z.js +48 -0
  139. package/dist/chunk-90wp6wez.js +10510 -0
  140. package/dist/chunk-92bp5bnf.js +650 -0
  141. package/dist/chunk-92q8sx5z.js +90 -0
  142. package/dist/chunk-958rtmtx.js +10476 -0
  143. package/dist/chunk-9e2kqv5g.js +125 -0
  144. package/dist/chunk-9f4f1hy5.js +281 -0
  145. package/dist/chunk-9gbamk79.js +93 -0
  146. package/dist/chunk-9k5s3ryh.js +167 -0
  147. package/dist/chunk-9xzfqm15.js +97 -0
  148. package/dist/chunk-9zgdvbm6.js +110 -0
  149. package/dist/chunk-a0p3q8jw.js +24 -0
  150. package/dist/chunk-a22sayzp.js +220 -0
  151. package/dist/chunk-a8ejc632.js +3094 -0
  152. package/dist/chunk-a8gj9d9z.js +120 -0
  153. package/dist/chunk-a9vdeb6y.js +258 -0
  154. package/dist/chunk-a9yev47v.js +674 -0
  155. package/dist/chunk-a9zh40sj.js +48 -0
  156. package/dist/chunk-ack5mfba.js +105 -0
  157. package/dist/chunk-ae76ded0.js +30 -0
  158. package/dist/chunk-akjw4dh6.js +538 -0
  159. package/dist/chunk-asc6wz4q.js +1188 -0
  160. package/dist/chunk-atqejh3p.js +273 -0
  161. package/dist/chunk-atv2e6b7.js +61 -0
  162. package/dist/chunk-axvvkwz8.js +1551 -0
  163. package/dist/chunk-azgz7kj9.js +38 -0
  164. package/dist/chunk-b3zave8q.js +275 -0
  165. package/dist/chunk-b4wg70y1.js +54 -0
  166. package/dist/chunk-b8b13qn2.js +100 -0
  167. package/dist/chunk-bg3mt9bm.js +28 -0
  168. package/dist/chunk-bh4jvcjn.js +91 -0
  169. package/dist/chunk-bhdt6k7w.js +15 -0
  170. package/dist/chunk-bm1qb16p.js +17 -0
  171. package/dist/chunk-bpvsd1j1.js +266 -0
  172. package/dist/chunk-bqfnp99q.js +477 -0
  173. package/dist/chunk-bsbmmfyt.js +17 -0
  174. package/dist/chunk-bsbt34jm.js +42 -0
  175. package/dist/chunk-c78akdhr.js +458 -0
  176. package/dist/chunk-cdz5yb0r.js +57 -0
  177. package/dist/chunk-cfv996bs.js +22 -0
  178. package/dist/chunk-cgfdkzhb.js +12 -0
  179. package/dist/chunk-ckh4r5er.js +257 -0
  180. package/dist/chunk-cmgjnvn9.js +89 -0
  181. package/dist/chunk-cpjgvay8.js +687 -0
  182. package/dist/chunk-crfryjx9.js +276 -0
  183. package/dist/chunk-ctw5jwcd.js +213 -0
  184. package/dist/chunk-cvy3vntc.js +65 -0
  185. package/dist/chunk-cwbzz504.js +94 -0
  186. package/dist/chunk-cy2hswr1.js +15 -0
  187. package/dist/chunk-cyejkay3.js +222 -0
  188. package/dist/chunk-d18z9pna.js +106 -0
  189. package/dist/chunk-d5cq0n0v.js +162 -0
  190. package/dist/chunk-db45aryp.js +50 -0
  191. package/dist/chunk-de8nqh0z.js +790 -0
  192. package/dist/chunk-dfw6h350.js +2336 -0
  193. package/dist/chunk-dgqrcy74.js +48 -0
  194. package/dist/chunk-dn75ptgd.js +184 -0
  195. package/dist/chunk-dnh7jtpb.js +37 -0
  196. package/dist/chunk-dpshyv9m.js +90 -0
  197. package/dist/chunk-dt8cdvnm.js +642 -0
  198. package/dist/chunk-dtxby6fr.js +306 -0
  199. package/dist/chunk-dv1wfr85.js +6373 -0
  200. package/dist/chunk-dw363edx.js +1154 -0
  201. package/dist/chunk-dwrdacck.js +62 -0
  202. package/dist/chunk-dxnnv5e3.js +276 -0
  203. package/dist/chunk-e3g8q4cn.js +1646 -0
  204. package/dist/chunk-e3m9k9s2.js +542 -0
  205. package/dist/chunk-e4q49asn.js +155 -0
  206. package/dist/chunk-e5pntxye.js +37 -0
  207. package/dist/chunk-e7393td6.js +42 -0
  208. package/dist/chunk-ead42yrh.js +87 -0
  209. package/dist/chunk-eb90vwvr.js +152 -0
  210. package/dist/chunk-ecvwk9hg.js +250 -0
  211. package/dist/chunk-edjd6aay.js +173 -0
  212. package/dist/chunk-eg0h8mtm.js +130 -0
  213. package/dist/chunk-ehtwnxpg.js +1591 -0
  214. package/dist/chunk-ek686gx1.js +94 -0
  215. package/dist/chunk-eqp1rfft.js +17 -0
  216. package/dist/chunk-evhwt0ar.js +1015 -0
  217. package/dist/chunk-ewadzrm8.js +103 -0
  218. package/dist/chunk-ewsgsw9h.js +172291 -0
  219. package/dist/chunk-f0pa0r7e.js +3198 -0
  220. package/dist/chunk-f2mhrmww.js +62 -0
  221. package/dist/chunk-f39zxvwn.js +401 -0
  222. package/dist/chunk-f46z54tq.js +374 -0
  223. package/dist/chunk-f5ma3nh5.js +3436 -0
  224. package/dist/chunk-f60q23az.js +3038 -0
  225. package/dist/chunk-f6v2nz57.js +107 -0
  226. package/dist/chunk-f6yjan38.js +38 -0
  227. package/dist/chunk-fbv4apne.js +51 -0
  228. package/dist/chunk-fem4s778.js +70 -0
  229. package/dist/chunk-fezm1kn8.js +376 -0
  230. package/dist/chunk-fm1n3ysp.js +6108 -0
  231. package/dist/chunk-frg83bfw.js +225 -0
  232. package/dist/chunk-fscm8db0.js +692 -0
  233. package/dist/chunk-fyc5fepv.js +10 -0
  234. package/dist/chunk-g0j0t6qk.js +26 -0
  235. package/dist/chunk-g0nc1ftf.js +849 -0
  236. package/dist/chunk-g338npwr.js +1061 -0
  237. package/dist/chunk-g3t0act8.js +8 -0
  238. package/dist/chunk-g75w4hw3.js +26 -0
  239. package/dist/chunk-g8vp82en.js +1866 -0
  240. package/dist/chunk-gax0fcbx.js +182 -0
  241. package/dist/chunk-gsz4dh3y.js +606 -0
  242. package/dist/chunk-gtfffm7h.js +440 -0
  243. package/dist/chunk-gver9zb9.js +420 -0
  244. package/dist/chunk-gyj242zr.js +20 -0
  245. package/dist/chunk-h0qngp9w.js +157 -0
  246. package/dist/chunk-h14kemnk.js +123 -0
  247. package/dist/chunk-h8wj1a74.js +8960 -0
  248. package/dist/chunk-h9mcb2eg.js +87 -0
  249. package/dist/chunk-h9nh2980.js +91 -0
  250. package/dist/chunk-hakdhagh.js +16606 -0
  251. package/dist/chunk-hbc6ymdv.js +55 -0
  252. package/dist/chunk-hh7cmy4k.js +20 -0
  253. package/dist/chunk-hjhc4cpt.js +69 -0
  254. package/dist/chunk-hjwez8qc.js +5018 -0
  255. package/dist/chunk-hk9xz7gk.js +118 -0
  256. package/dist/chunk-hqmz36b3.js +552 -0
  257. package/dist/chunk-hrzerbfw.js +1299 -0
  258. package/dist/chunk-hs8ph4p8.js +8 -0
  259. package/dist/chunk-ht1xwrnd.js +716 -0
  260. package/dist/chunk-hvmfg2dc.js +338 -0
  261. package/dist/chunk-hx2tr4ep.js +7189 -0
  262. package/dist/chunk-hzhe8ygc.js +547 -0
  263. package/dist/chunk-j2k4p94p.js +55 -0
  264. package/dist/chunk-j3a4p81y.js +184 -0
  265. package/dist/chunk-j49g6g3s.js +57 -0
  266. package/dist/chunk-j5d5hp9h.js +71 -0
  267. package/dist/chunk-j64ga6ta.js +8035 -0
  268. package/dist/chunk-j7tyxan1.js +116 -0
  269. package/dist/chunk-j8v4774z.js +424 -0
  270. package/dist/chunk-jafes477.js +29 -0
  271. package/dist/chunk-jd32zbps.js +15 -0
  272. package/dist/chunk-jdgeec04.js +4249 -0
  273. package/dist/chunk-jftd4jq5.js +4521 -0
  274. package/dist/chunk-jkxqhv6y.js +812 -0
  275. package/dist/chunk-jmfr6h0n.js +120 -0
  276. package/dist/chunk-jn4aabmx.js +40 -0
  277. package/dist/chunk-jnhkref0.js +30 -0
  278. package/dist/chunk-jsbpm1gz.js +27 -0
  279. package/dist/chunk-jtcyjc3k.js +5802 -0
  280. package/dist/chunk-jx817w05.js +11 -0
  281. package/dist/chunk-jzmz18nn.js +65 -0
  282. package/dist/chunk-k0p9w03v.js +4957 -0
  283. package/dist/chunk-k3dcdnck.js +89 -0
  284. package/dist/chunk-k3wadzcd.js +88 -0
  285. package/dist/chunk-kaeshsk1.js +713 -0
  286. package/dist/chunk-kbkey9ed.js +522 -0
  287. package/dist/chunk-kcwfhqbb.js +196 -0
  288. package/dist/chunk-key6jr7p.js +224 -0
  289. package/dist/chunk-knay8cy9.js +173 -0
  290. package/dist/chunk-kr3rg2y1.js +95 -0
  291. package/dist/chunk-kwekc97v.js +18 -0
  292. package/dist/chunk-m06q12hg.js +61 -0
  293. package/dist/chunk-m2mcpbhk.js +43 -0
  294. package/dist/chunk-m8v220gz.js +71 -0
  295. package/dist/chunk-mgpqy78h.js +208 -0
  296. package/dist/chunk-mkejwh4t.js +16 -0
  297. package/dist/chunk-mptyw5n1.js +107 -0
  298. package/dist/chunk-mqajm0dp.js +66 -0
  299. package/dist/chunk-mrksbgxj.js +490 -0
  300. package/dist/chunk-msjfc5ba.js +246 -0
  301. package/dist/chunk-mt25echc.js +6157 -0
  302. package/dist/chunk-mt3jfnr8.js +277 -0
  303. package/dist/chunk-mtn242d4.js +9300 -0
  304. package/dist/chunk-mzfkvave.js +169 -0
  305. package/dist/chunk-n0qaeaa5.js +256 -0
  306. package/dist/chunk-n1erf6kh.js +22820 -0
  307. package/dist/chunk-n2avk1r2.js +61 -0
  308. package/dist/chunk-n6atnpcq.js +765 -0
  309. package/dist/chunk-n7ttdtk0.js +641 -0
  310. package/dist/chunk-ncnfzby5.js +822 -0
  311. package/dist/chunk-ncnr1jtf.js +2058 -0
  312. package/dist/chunk-nerv0jvx.js +74 -0
  313. package/dist/chunk-ngd2abep.js +90 -0
  314. package/dist/chunk-nka1g8f4.js +773 -0
  315. package/dist/chunk-nnaxkc2z.js +128 -0
  316. package/dist/chunk-npyrtj8j.js +691 -0
  317. package/dist/chunk-nq0fxyxh.js +752 -0
  318. package/dist/chunk-nrmffak7.js +114 -0
  319. package/dist/chunk-nsz546wq.js +1170 -0
  320. package/dist/chunk-nt837qt9.js +21 -0
  321. package/dist/chunk-nv64x1z5.js +86 -0
  322. package/dist/chunk-nxsh6de2.js +1711 -0
  323. package/dist/chunk-nz4getcr.js +40 -0
  324. package/dist/chunk-p1f607pa.js +83 -0
  325. package/dist/chunk-p2816w9z.js +1486 -0
  326. package/dist/chunk-p2d5nh3g.js +342 -0
  327. package/dist/chunk-p4r5y02t.js +90 -0
  328. package/dist/chunk-p7g7pf3f.js +336 -0
  329. package/dist/chunk-pb4ad8r2.js +110 -0
  330. package/dist/chunk-pbrhz0zr.js +716 -0
  331. package/dist/chunk-ps49ymvj.js +43 -0
  332. package/dist/chunk-pwnt3veb.js +103 -0
  333. package/dist/chunk-pwwa7s62.js +11 -0
  334. package/dist/chunk-px3w0kde.js +299 -0
  335. package/dist/chunk-pzn777jb.js +756 -0
  336. package/dist/chunk-q25bjaev.js +15 -0
  337. package/dist/chunk-q5by3da6.js +8 -0
  338. package/dist/chunk-q6av622g.js +38 -0
  339. package/dist/chunk-q6xkvtf2.js +1318 -0
  340. package/dist/chunk-q81jx1tq.js +476 -0
  341. package/dist/chunk-qehb6fk5.js +339 -0
  342. package/dist/chunk-qj1avx1q.js +87 -0
  343. package/dist/chunk-qn2dxr66.js +105 -0
  344. package/dist/chunk-qnfx3qtx.js +617 -0
  345. package/dist/chunk-qp18kd4h.js +48 -0
  346. package/dist/chunk-qp2qdcda.js +100 -0
  347. package/dist/chunk-qpjy9tcf.js +133 -0
  348. package/dist/chunk-qqfa0dqg.js +2343 -0
  349. package/dist/chunk-qwh3htcz.js +202 -0
  350. package/dist/chunk-qz2x630m.js +49145 -0
  351. package/dist/chunk-r3vakcs1.js +496 -0
  352. package/dist/chunk-r66hz8j6.js +34 -0
  353. package/dist/chunk-r6b58y3x.js +17 -0
  354. package/dist/chunk-rekp48rk.js +62 -0
  355. package/dist/chunk-rn0v1hk8.js +34 -0
  356. package/dist/chunk-rs1xrs6m.js +534 -0
  357. package/dist/chunk-rs45skes.js +123 -0
  358. package/dist/chunk-rzszqp82.js +524 -0
  359. package/dist/chunk-s274nv8k.js +8 -0
  360. package/dist/chunk-s3pzvdss.js +50 -0
  361. package/dist/chunk-s9mesaw0.js +26840 -0
  362. package/dist/chunk-sd36yzx8.js +954 -0
  363. package/dist/chunk-sdj9b9wh.js +782 -0
  364. package/dist/chunk-sdw2q69p.js +227 -0
  365. package/dist/chunk-sfgp9cc0.js +130 -0
  366. package/dist/chunk-spqaamnc.js +63 -0
  367. package/dist/chunk-spzrs4df.js +73 -0
  368. package/dist/chunk-sxkr7k43.js +55 -0
  369. package/dist/chunk-szj5wvdy.js +28 -0
  370. package/dist/chunk-t0rgmccj.js +39 -0
  371. package/dist/chunk-t1nnzjgg.js +17 -0
  372. package/dist/chunk-t94fcnt8.js +566 -0
  373. package/dist/chunk-tjaqa99q.js +125 -0
  374. package/dist/chunk-tjq2evtw.js +328 -0
  375. package/dist/chunk-ts2p6bv1.js +224 -0
  376. package/dist/chunk-ttk5dzz8.js +25 -0
  377. package/dist/chunk-tw0q7ynt.js +59 -0
  378. package/dist/chunk-v02jkvgy.js +131 -0
  379. package/dist/chunk-v084bqt3.js +1529 -0
  380. package/dist/chunk-v0amythm.js +164 -0
  381. package/dist/chunk-v1kzp02e.js +785 -0
  382. package/dist/chunk-v1mgv1et.js +15 -0
  383. package/dist/chunk-v399mzxk.js +58 -0
  384. package/dist/chunk-v3gm2day.js +8 -0
  385. package/dist/chunk-v43hrrxp.js +71 -0
  386. package/dist/chunk-v6aqb2aj.js +102 -0
  387. package/dist/chunk-v78fj8by.js +145 -0
  388. package/dist/chunk-v7qmhjdn.js +1921 -0
  389. package/dist/chunk-v9smspw2.js +4301 -0
  390. package/dist/chunk-vdw93s4h.js +2431 -0
  391. package/dist/chunk-vest0y6x.js +3830 -0
  392. package/dist/chunk-vf5sd1nq.js +12 -0
  393. package/dist/chunk-vratq94g.js +349 -0
  394. package/dist/chunk-vrz7t3m3.js +20 -0
  395. package/dist/chunk-vtb185z9.js +70 -0
  396. package/dist/chunk-vx01rvg8.js +654 -0
  397. package/dist/chunk-vyc0rjyx.js +31 -0
  398. package/dist/chunk-vyjeh50y.js +2149 -0
  399. package/dist/chunk-vzpffsza.js +269 -0
  400. package/dist/chunk-w2ef3kxk.js +3353 -0
  401. package/dist/chunk-w2z5pqd3.js +336 -0
  402. package/dist/chunk-w3whm4mn.js +432 -0
  403. package/dist/chunk-w7wgpqcp.js +157 -0
  404. package/dist/chunk-waa00cvb.js +301 -0
  405. package/dist/chunk-wb0qm4es.js +155 -0
  406. package/dist/chunk-wbkahkdc.js +27 -0
  407. package/dist/chunk-wfz0qffj.js +3939 -0
  408. package/dist/chunk-wn0cx0pt.js +283 -0
  409. package/dist/chunk-wv6gzt9c.js +726 -0
  410. package/dist/chunk-wx42ycm4.js +998 -0
  411. package/dist/chunk-wxkpgy05.js +268 -0
  412. package/dist/chunk-wzpdet3m.js +843 -0
  413. package/dist/chunk-x0mwzt38.js +714 -0
  414. package/dist/chunk-x592wbfh.js +244 -0
  415. package/dist/chunk-x5pqsp9r.js +100 -0
  416. package/dist/chunk-x679thag.js +825 -0
  417. package/dist/chunk-x8b7vft8.js +132 -0
  418. package/dist/chunk-x8cftch7.js +119 -0
  419. package/dist/chunk-x9q7r885.js +348 -0
  420. package/dist/chunk-xawkt0vb.js +1585 -0
  421. package/dist/chunk-xdw5dv00.js +8 -0
  422. package/dist/chunk-xe9cc860.js +287 -0
  423. package/dist/chunk-xjr9c3vt.js +101 -0
  424. package/dist/chunk-xk7zaqta.js +21933 -0
  425. package/dist/chunk-xktbmawc.js +678 -0
  426. package/dist/chunk-xn6yw46v.js +140 -0
  427. package/dist/chunk-xsq9ae7x.js +90 -0
  428. package/dist/chunk-xszk7n10.js +14358 -0
  429. package/dist/chunk-xt8a5r1t.js +84 -0
  430. package/dist/chunk-xydyndkv.js +195 -0
  431. package/dist/chunk-xzt10yc5.js +60 -0
  432. package/dist/chunk-y04y95dr.js +91 -0
  433. package/dist/chunk-y1784krc.js +19 -0
  434. package/dist/chunk-y1x32h3x.js +128 -0
  435. package/dist/chunk-y3s7aww5.js +99 -0
  436. package/dist/chunk-y47cg3kz.js +42 -0
  437. package/dist/chunk-y7kzvepn.js +469 -0
  438. package/dist/chunk-y89kbsyc.js +287 -0
  439. package/dist/chunk-yd87p1c3.js +159 -0
  440. package/dist/chunk-yf3yw8fw.js +105 -0
  441. package/dist/chunk-ygbf0ezx.js +1391 -0
  442. package/dist/chunk-yjbxnshv.js +208 -0
  443. package/dist/chunk-ynednmqd.js +192 -0
  444. package/dist/chunk-yvhez44y.js +259 -0
  445. package/dist/chunk-ywxd4qw4.js +22 -0
  446. package/dist/chunk-yzrmgpy4.js +117 -0
  447. package/dist/chunk-z0b2vb24.js +862 -0
  448. package/dist/chunk-z1zj044v.js +655 -0
  449. package/dist/chunk-z2dp53wn.js +17 -0
  450. package/dist/chunk-z3w0xasa.js +165 -0
  451. package/dist/chunk-z7ycmrb3.js +644 -0
  452. package/dist/chunk-zh11tdkb.js +347 -0
  453. package/dist/chunk-zk2wsm7d.js +15 -0
  454. package/dist/chunk-zqfqcf22.js +229 -0
  455. package/dist/chunk-zqk2j8px.js +699 -0
  456. package/dist/chunk-zqvsc10j.js +2833 -0
  457. package/dist/chunk-zsfxha74.js +17655 -0
  458. package/dist/chunk-zvc4snyb.js +117 -0
  459. package/dist/cli.js +194 -0
  460. package/package.json +173 -0
@@ -0,0 +1,644 @@
1
+ // @bun
2
+ import {
3
+ getPluginEditableScopes,
4
+ init_pluginStartupCheck
5
+ } from "./chunk-mgpqy78h.js";
6
+ import {
7
+ cachePlugin,
8
+ calculatePluginVersion,
9
+ clearAllCaches,
10
+ copyPluginToVersionedCache,
11
+ deletePluginDataDir,
12
+ deletePluginOptions,
13
+ findReverseDependents,
14
+ formatResolutionError,
15
+ formatReverseDependentsSuffix,
16
+ getMarketplace,
17
+ getPluginById,
18
+ getVersionedCachePath,
19
+ getVersionedZipCachePath,
20
+ init_builtinPlugins,
21
+ init_cacheUtils,
22
+ init_dependencyResolver,
23
+ init_installedPluginsManager,
24
+ init_marketplaceManager,
25
+ init_pluginDirectories,
26
+ init_pluginIdentifier,
27
+ init_pluginInstallationHelpers,
28
+ init_pluginLoader,
29
+ init_pluginOptionsStorage,
30
+ init_pluginPolicy,
31
+ init_pluginVersioning,
32
+ installResolvedPlugin,
33
+ isBuiltinPluginId,
34
+ isPluginBlockedByPolicy,
35
+ loadAllPlugins,
36
+ loadInstalledPluginsFromDisk,
37
+ loadInstalledPluginsV2,
38
+ loadKnownMarketplacesConfig,
39
+ loadPluginManifest,
40
+ markPluginVersionOrphaned,
41
+ parsePluginIdentifier,
42
+ removePluginInstallation,
43
+ scopeToSettingSource,
44
+ updateInstallationPathOnDisk
45
+ } from "./chunk-ewsgsw9h.js";
46
+ import {
47
+ getSettingsForSource,
48
+ init_settings1 as init_settings,
49
+ init_stringUtils,
50
+ plural,
51
+ updateSettingsForSource
52
+ } from "./chunk-3f7rypmf.js";
53
+ import {
54
+ init_log,
55
+ logError
56
+ } from "./chunk-p7g7pf3f.js";
57
+ import {
58
+ getFsImplementation,
59
+ init_errors,
60
+ init_fsOperations,
61
+ isENOENT,
62
+ toError
63
+ } from "./chunk-nxsh6de2.js";
64
+ import {
65
+ getOriginalCwd,
66
+ init_state
67
+ } from "./chunk-qqfa0dqg.js";
68
+ import {
69
+ __esm
70
+ } from "./chunk-qp2qdcda.js";
71
+
72
+ // src/services/plugins/pluginOperations.ts
73
+ import { dirname, join } from "path";
74
+ function assertInstallableScope(scope) {
75
+ if (!VALID_INSTALLABLE_SCOPES.includes(scope)) {
76
+ throw new Error(`Invalid scope "${scope}". Must be one of: ${VALID_INSTALLABLE_SCOPES.join(", ")}`);
77
+ }
78
+ }
79
+ function isInstallableScope(scope) {
80
+ return VALID_INSTALLABLE_SCOPES.includes(scope);
81
+ }
82
+ function getProjectPathForScope(scope) {
83
+ return scope === "project" || scope === "local" ? getOriginalCwd() : undefined;
84
+ }
85
+ function isPluginEnabledAtProjectScope(pluginId) {
86
+ return getSettingsForSource("projectSettings")?.enabledPlugins?.[pluginId] === true;
87
+ }
88
+ function findPluginInSettings(plugin) {
89
+ const hasMarketplace = plugin.includes("@");
90
+ const searchOrder = ["local", "project", "user"];
91
+ for (const scope of searchOrder) {
92
+ const enabledPlugins = getSettingsForSource(scopeToSettingSource(scope))?.enabledPlugins;
93
+ if (!enabledPlugins)
94
+ continue;
95
+ for (const key of Object.keys(enabledPlugins)) {
96
+ if (hasMarketplace ? key === plugin : key.startsWith(`${plugin}@`)) {
97
+ return { pluginId: key, scope };
98
+ }
99
+ }
100
+ }
101
+ return null;
102
+ }
103
+ function findPluginByIdentifier(plugin, plugins) {
104
+ const { name, marketplace } = parsePluginIdentifier(plugin);
105
+ return plugins.find((p) => {
106
+ if (p.name === plugin || p.name === name)
107
+ return true;
108
+ if (marketplace && p.source) {
109
+ return p.name === name && p.source.includes(`@${marketplace}`);
110
+ }
111
+ return false;
112
+ });
113
+ }
114
+ function resolveDelistedPluginId(plugin) {
115
+ const { name } = parsePluginIdentifier(plugin);
116
+ const installedData = loadInstalledPluginsV2();
117
+ if (installedData.plugins[plugin]?.length) {
118
+ return { pluginId: plugin, pluginName: name };
119
+ }
120
+ const matchingKey = Object.keys(installedData.plugins).find((key) => {
121
+ const { name: keyName } = parsePluginIdentifier(key);
122
+ return keyName === name && (installedData.plugins[key]?.length ?? 0) > 0;
123
+ });
124
+ if (matchingKey) {
125
+ return { pluginId: matchingKey, pluginName: name };
126
+ }
127
+ return null;
128
+ }
129
+ function getPluginInstallationFromV2(pluginId) {
130
+ const installedData = loadInstalledPluginsV2();
131
+ const installations = installedData.plugins[pluginId];
132
+ if (!installations || installations.length === 0) {
133
+ return { scope: "user" };
134
+ }
135
+ const currentProjectPath = getOriginalCwd();
136
+ const localInstall = installations.find((inst) => inst.scope === "local" && inst.projectPath === currentProjectPath);
137
+ if (localInstall) {
138
+ return { scope: localInstall.scope, projectPath: localInstall.projectPath };
139
+ }
140
+ const projectInstall = installations.find((inst) => inst.scope === "project" && inst.projectPath === currentProjectPath);
141
+ if (projectInstall) {
142
+ return {
143
+ scope: projectInstall.scope,
144
+ projectPath: projectInstall.projectPath
145
+ };
146
+ }
147
+ const userInstall = installations.find((inst) => inst.scope === "user");
148
+ if (userInstall) {
149
+ return { scope: userInstall.scope };
150
+ }
151
+ return {
152
+ scope: installations[0].scope,
153
+ projectPath: installations[0].projectPath
154
+ };
155
+ }
156
+ async function installPluginOp(plugin, scope = "user") {
157
+ assertInstallableScope(scope);
158
+ const { name: pluginName, marketplace: marketplaceName } = parsePluginIdentifier(plugin);
159
+ let foundPlugin;
160
+ let foundMarketplace;
161
+ let marketplaceInstallLocation;
162
+ if (marketplaceName) {
163
+ const pluginInfo = await getPluginById(plugin);
164
+ if (pluginInfo) {
165
+ foundPlugin = pluginInfo.entry;
166
+ foundMarketplace = marketplaceName;
167
+ marketplaceInstallLocation = pluginInfo.marketplaceInstallLocation;
168
+ }
169
+ } else {
170
+ const marketplaces = await loadKnownMarketplacesConfig();
171
+ for (const [mktName, mktConfig] of Object.entries(marketplaces)) {
172
+ try {
173
+ const marketplace = await getMarketplace(mktName);
174
+ const pluginEntry = marketplace.plugins.find((p) => p.name === pluginName);
175
+ if (pluginEntry) {
176
+ foundPlugin = pluginEntry;
177
+ foundMarketplace = mktName;
178
+ marketplaceInstallLocation = mktConfig.installLocation;
179
+ break;
180
+ }
181
+ } catch (error) {
182
+ logError(toError(error));
183
+ continue;
184
+ }
185
+ }
186
+ }
187
+ if (!foundPlugin || !foundMarketplace) {
188
+ const location = marketplaceName ? `marketplace "${marketplaceName}"` : "any configured marketplace";
189
+ return {
190
+ success: false,
191
+ message: `Plugin "${pluginName}" not found in ${location}`
192
+ };
193
+ }
194
+ const entry = foundPlugin;
195
+ const pluginId = `${entry.name}@${foundMarketplace}`;
196
+ const result = await installResolvedPlugin({
197
+ pluginId,
198
+ entry,
199
+ scope,
200
+ marketplaceInstallLocation
201
+ });
202
+ if (!result.ok) {
203
+ const failResult = result;
204
+ switch (failResult.reason) {
205
+ case "local-source-no-location":
206
+ return {
207
+ success: false,
208
+ message: `Cannot install local plugin "${failResult.pluginName}" without marketplace install location`
209
+ };
210
+ case "settings-write-failed":
211
+ return {
212
+ success: false,
213
+ message: `Failed to update settings: ${failResult.message}`
214
+ };
215
+ case "resolution-failed":
216
+ return {
217
+ success: false,
218
+ message: formatResolutionError(failResult.resolution)
219
+ };
220
+ case "blocked-by-policy":
221
+ return {
222
+ success: false,
223
+ message: `Plugin "${failResult.pluginName}" is blocked by your organization's policy and cannot be installed`
224
+ };
225
+ case "dependency-blocked-by-policy":
226
+ return {
227
+ success: false,
228
+ message: `Plugin "${failResult.pluginName}" depends on "${failResult.blockedDependency}", which is blocked by your organization's policy`
229
+ };
230
+ }
231
+ }
232
+ return {
233
+ success: true,
234
+ message: `Successfully installed plugin: ${pluginId} (scope: ${scope})${result.depNote}`,
235
+ pluginId,
236
+ pluginName: entry.name,
237
+ scope
238
+ };
239
+ }
240
+ async function uninstallPluginOp(plugin, scope = "user", deleteDataDir = true) {
241
+ assertInstallableScope(scope);
242
+ const { enabled, disabled } = await loadAllPlugins();
243
+ const allPlugins = [...enabled, ...disabled];
244
+ const foundPlugin = findPluginByIdentifier(plugin, allPlugins);
245
+ const settingSource = scopeToSettingSource(scope);
246
+ const settings = getSettingsForSource(settingSource);
247
+ let pluginId;
248
+ let pluginName;
249
+ if (foundPlugin) {
250
+ pluginId = Object.keys(settings?.enabledPlugins ?? {}).find((k) => k === plugin || k === foundPlugin.name || k.startsWith(`${foundPlugin.name}@`)) ?? (plugin.includes("@") ? plugin : foundPlugin.name);
251
+ pluginName = foundPlugin.name;
252
+ } else {
253
+ const resolved = resolveDelistedPluginId(plugin);
254
+ if (!resolved) {
255
+ return {
256
+ success: false,
257
+ message: `Plugin "${plugin}" not found in installed plugins`
258
+ };
259
+ }
260
+ pluginId = resolved.pluginId;
261
+ pluginName = resolved.pluginName;
262
+ }
263
+ const projectPath = getProjectPathForScope(scope);
264
+ const installedData = loadInstalledPluginsV2();
265
+ const installations = installedData.plugins[pluginId];
266
+ const scopeInstallation = installations?.find((i) => i.scope === scope && i.projectPath === projectPath);
267
+ if (!scopeInstallation) {
268
+ const { scope: actualScope } = getPluginInstallationFromV2(pluginId);
269
+ if (actualScope !== scope && installations && installations.length > 0) {
270
+ if (actualScope === "project") {
271
+ return {
272
+ success: false,
273
+ message: `Plugin "${plugin}" is enabled at project scope (.claude/settings.json, shared with your team). To disable just for you: claude plugin disable ${plugin} --scope local`
274
+ };
275
+ }
276
+ return {
277
+ success: false,
278
+ message: `Plugin "${plugin}" is installed in ${actualScope} scope, not ${scope}. Use --scope ${actualScope} to uninstall.`
279
+ };
280
+ }
281
+ return {
282
+ success: false,
283
+ message: `Plugin "${plugin}" is not installed in ${scope} scope. Use --scope to specify the correct scope.`
284
+ };
285
+ }
286
+ const installPath = scopeInstallation.installPath;
287
+ const newEnabledPlugins = {
288
+ ...settings?.enabledPlugins
289
+ };
290
+ newEnabledPlugins[pluginId] = undefined;
291
+ updateSettingsForSource(settingSource, {
292
+ enabledPlugins: newEnabledPlugins
293
+ });
294
+ clearAllCaches();
295
+ removePluginInstallation(pluginId, scope, projectPath);
296
+ const updatedData = loadInstalledPluginsV2();
297
+ const remainingInstallations = updatedData.plugins[pluginId];
298
+ const isLastScope = !remainingInstallations || remainingInstallations.length === 0;
299
+ if (isLastScope && installPath) {
300
+ await markPluginVersionOrphaned(installPath);
301
+ }
302
+ if (isLastScope) {
303
+ deletePluginOptions(pluginId);
304
+ if (deleteDataDir) {
305
+ await deletePluginDataDir(pluginId);
306
+ }
307
+ }
308
+ const reverseDependents = findReverseDependents(pluginId, allPlugins);
309
+ const depWarn = formatReverseDependentsSuffix(reverseDependents);
310
+ return {
311
+ success: true,
312
+ message: `Successfully uninstalled plugin: ${pluginName} (scope: ${scope})${depWarn}`,
313
+ pluginId,
314
+ pluginName,
315
+ scope,
316
+ reverseDependents: reverseDependents.length > 0 ? reverseDependents : undefined
317
+ };
318
+ }
319
+ async function setPluginEnabledOp(plugin, enabled, scope) {
320
+ const operation = enabled ? "enable" : "disable";
321
+ if (isBuiltinPluginId(plugin)) {
322
+ const { error: error2 } = updateSettingsForSource("userSettings", {
323
+ enabledPlugins: {
324
+ ...getSettingsForSource("userSettings")?.enabledPlugins,
325
+ [plugin]: enabled
326
+ }
327
+ });
328
+ if (error2) {
329
+ return {
330
+ success: false,
331
+ message: `Failed to ${operation} built-in plugin: ${error2.message}`
332
+ };
333
+ }
334
+ clearAllCaches();
335
+ const { name: pluginName2 } = parsePluginIdentifier(plugin);
336
+ return {
337
+ success: true,
338
+ message: `Successfully ${operation}d built-in plugin: ${pluginName2}`,
339
+ pluginId: plugin,
340
+ pluginName: pluginName2,
341
+ scope: "user"
342
+ };
343
+ }
344
+ if (scope) {
345
+ assertInstallableScope(scope);
346
+ }
347
+ let pluginId;
348
+ let resolvedScope;
349
+ const found = findPluginInSettings(plugin);
350
+ if (scope) {
351
+ resolvedScope = scope;
352
+ if (found) {
353
+ pluginId = found.pluginId;
354
+ } else if (plugin.includes("@")) {
355
+ pluginId = plugin;
356
+ } else {
357
+ return {
358
+ success: false,
359
+ message: `Plugin "${plugin}" not found in settings. Use plugin@marketplace format.`
360
+ };
361
+ }
362
+ } else if (found) {
363
+ pluginId = found.pluginId;
364
+ resolvedScope = found.scope;
365
+ } else if (plugin.includes("@")) {
366
+ pluginId = plugin;
367
+ resolvedScope = "user";
368
+ } else {
369
+ return {
370
+ success: false,
371
+ message: `Plugin "${plugin}" not found in any editable settings scope. Use plugin@marketplace format.`
372
+ };
373
+ }
374
+ if (enabled && isPluginBlockedByPolicy(pluginId)) {
375
+ return {
376
+ success: false,
377
+ message: `Plugin "${pluginId}" is blocked by your organization's policy and cannot be enabled`
378
+ };
379
+ }
380
+ const settingSource = scopeToSettingSource(resolvedScope);
381
+ const scopeSettingsValue = getSettingsForSource(settingSource)?.enabledPlugins?.[pluginId];
382
+ const SCOPE_PRECEDENCE = {
383
+ user: 0,
384
+ project: 1,
385
+ local: 2
386
+ };
387
+ const isOverride = scope && found && SCOPE_PRECEDENCE[scope] > SCOPE_PRECEDENCE[found.scope];
388
+ if (scope && scopeSettingsValue === undefined && found && found.scope !== scope && !isOverride) {
389
+ return {
390
+ success: false,
391
+ message: `Plugin "${plugin}" is installed at ${found.scope} scope, not ${scope}. Use --scope ${found.scope} or omit --scope to auto-detect.`
392
+ };
393
+ }
394
+ const isCurrentlyEnabled = scope && !isOverride ? scopeSettingsValue === true : getPluginEditableScopes().has(pluginId);
395
+ if (enabled === isCurrentlyEnabled) {
396
+ return {
397
+ success: false,
398
+ message: `Plugin "${plugin}" is already ${enabled ? "enabled" : "disabled"}${scope ? ` at ${scope} scope` : ""}`
399
+ };
400
+ }
401
+ let reverseDependents;
402
+ if (!enabled) {
403
+ const { enabled: loadedEnabled, disabled } = await loadAllPlugins();
404
+ const rdeps = findReverseDependents(pluginId, [
405
+ ...loadedEnabled,
406
+ ...disabled
407
+ ]);
408
+ if (rdeps.length > 0)
409
+ reverseDependents = rdeps;
410
+ }
411
+ const { error } = updateSettingsForSource(settingSource, {
412
+ enabledPlugins: {
413
+ ...getSettingsForSource(settingSource)?.enabledPlugins,
414
+ [pluginId]: enabled
415
+ }
416
+ });
417
+ if (error) {
418
+ return {
419
+ success: false,
420
+ message: `Failed to ${operation} plugin: ${error.message}`
421
+ };
422
+ }
423
+ clearAllCaches();
424
+ const { name: pluginName } = parsePluginIdentifier(pluginId);
425
+ const depWarn = formatReverseDependentsSuffix(reverseDependents);
426
+ return {
427
+ success: true,
428
+ message: `Successfully ${operation}d plugin: ${pluginName} (scope: ${resolvedScope})${depWarn}`,
429
+ pluginId,
430
+ pluginName,
431
+ scope: resolvedScope,
432
+ reverseDependents
433
+ };
434
+ }
435
+ async function enablePluginOp(plugin, scope) {
436
+ return setPluginEnabledOp(plugin, true, scope);
437
+ }
438
+ async function disablePluginOp(plugin, scope) {
439
+ return setPluginEnabledOp(plugin, false, scope);
440
+ }
441
+ async function disableAllPluginsOp() {
442
+ const enabledPlugins = getPluginEditableScopes();
443
+ if (enabledPlugins.size === 0) {
444
+ return { success: true, message: "No enabled plugins to disable" };
445
+ }
446
+ const disabled = [];
447
+ const errors = [];
448
+ for (const [pluginId] of enabledPlugins) {
449
+ const result = await setPluginEnabledOp(pluginId, false);
450
+ if (result.success) {
451
+ disabled.push(pluginId);
452
+ } else {
453
+ errors.push(`${pluginId}: ${result.message}`);
454
+ }
455
+ }
456
+ if (errors.length > 0) {
457
+ return {
458
+ success: false,
459
+ message: `Disabled ${disabled.length} ${plural(disabled.length, "plugin")}, ${errors.length} failed:
460
+ ${errors.join(`
461
+ `)}`
462
+ };
463
+ }
464
+ return {
465
+ success: true,
466
+ message: `Disabled ${disabled.length} ${plural(disabled.length, "plugin")}`
467
+ };
468
+ }
469
+ async function updatePluginOp(plugin, scope) {
470
+ const { name: pluginName, marketplace: marketplaceName } = parsePluginIdentifier(plugin);
471
+ const pluginId = marketplaceName ? `${pluginName}@${marketplaceName}` : plugin;
472
+ const pluginInfo = await getPluginById(plugin);
473
+ if (!pluginInfo) {
474
+ return {
475
+ success: false,
476
+ message: `Plugin "${pluginName}" not found`,
477
+ pluginId,
478
+ scope
479
+ };
480
+ }
481
+ const { entry, marketplaceInstallLocation } = pluginInfo;
482
+ const diskData = loadInstalledPluginsFromDisk();
483
+ const installations = diskData.plugins[pluginId];
484
+ if (!installations || installations.length === 0) {
485
+ return {
486
+ success: false,
487
+ message: `Plugin "${pluginName}" is not installed`,
488
+ pluginId,
489
+ scope
490
+ };
491
+ }
492
+ const projectPath = getProjectPathForScope(scope);
493
+ const installation = installations.find((inst) => inst.scope === scope && inst.projectPath === projectPath);
494
+ if (!installation) {
495
+ const scopeDesc = projectPath ? `${scope} (${projectPath})` : scope;
496
+ return {
497
+ success: false,
498
+ message: `Plugin "${pluginName}" is not installed at scope ${scopeDesc}`,
499
+ pluginId,
500
+ scope
501
+ };
502
+ }
503
+ return performPluginUpdate({
504
+ pluginId,
505
+ pluginName,
506
+ entry,
507
+ marketplaceInstallLocation,
508
+ installation,
509
+ scope,
510
+ projectPath
511
+ });
512
+ }
513
+ async function performPluginUpdate({
514
+ pluginId,
515
+ pluginName,
516
+ entry,
517
+ marketplaceInstallLocation,
518
+ installation,
519
+ scope,
520
+ projectPath
521
+ }) {
522
+ const fs = getFsImplementation();
523
+ const oldVersion = installation.version;
524
+ let sourcePath;
525
+ let newVersion;
526
+ let shouldCleanupSource = false;
527
+ let gitCommitSha;
528
+ if (typeof entry.source !== "string") {
529
+ const cacheResult = await cachePlugin(entry.source, {
530
+ manifest: { name: entry.name }
531
+ });
532
+ sourcePath = cacheResult.path;
533
+ shouldCleanupSource = true;
534
+ gitCommitSha = cacheResult.gitCommitSha;
535
+ newVersion = await calculatePluginVersion(pluginId, entry.source, cacheResult.manifest, cacheResult.path, entry.version, cacheResult.gitCommitSha);
536
+ } else {
537
+ let marketplaceStats;
538
+ try {
539
+ marketplaceStats = await fs.stat(marketplaceInstallLocation);
540
+ } catch (e) {
541
+ if (isENOENT(e)) {
542
+ return {
543
+ success: false,
544
+ message: `Marketplace directory not found at ${marketplaceInstallLocation}`,
545
+ pluginId,
546
+ scope
547
+ };
548
+ }
549
+ throw e;
550
+ }
551
+ const marketplaceDir = marketplaceStats.isDirectory() ? marketplaceInstallLocation : dirname(marketplaceInstallLocation);
552
+ sourcePath = join(marketplaceDir, entry.source);
553
+ try {
554
+ await fs.stat(sourcePath);
555
+ } catch (e) {
556
+ if (isENOENT(e)) {
557
+ return {
558
+ success: false,
559
+ message: `Plugin source not found at ${sourcePath}`,
560
+ pluginId,
561
+ scope
562
+ };
563
+ }
564
+ throw e;
565
+ }
566
+ let pluginManifest;
567
+ const manifestPath = join(sourcePath, ".claude-plugin", "plugin.json");
568
+ try {
569
+ pluginManifest = await loadPluginManifest(manifestPath, entry.name, entry.source);
570
+ } catch {}
571
+ newVersion = await calculatePluginVersion(pluginId, entry.source, pluginManifest, sourcePath, entry.version);
572
+ }
573
+ try {
574
+ let versionedPath = getVersionedCachePath(pluginId, newVersion);
575
+ const zipPath = getVersionedZipCachePath(pluginId, newVersion);
576
+ const isUpToDate = installation.version === newVersion || installation.installPath === versionedPath || installation.installPath === zipPath;
577
+ if (isUpToDate) {
578
+ return {
579
+ success: true,
580
+ message: `${pluginName} is already at the latest version (${newVersion}).`,
581
+ pluginId,
582
+ newVersion,
583
+ oldVersion,
584
+ alreadyUpToDate: true,
585
+ scope
586
+ };
587
+ }
588
+ versionedPath = await copyPluginToVersionedCache(sourcePath, pluginId, newVersion, entry);
589
+ const oldVersionPath = installation.installPath;
590
+ updateInstallationPathOnDisk(pluginId, scope, projectPath, versionedPath, newVersion, gitCommitSha);
591
+ if (oldVersionPath && oldVersionPath !== versionedPath) {
592
+ const updatedDiskData = loadInstalledPluginsFromDisk();
593
+ const isOldVersionStillReferenced = Object.values(updatedDiskData.plugins).some((pluginInstallations) => pluginInstallations.some((inst) => inst.installPath === oldVersionPath));
594
+ if (!isOldVersionStillReferenced) {
595
+ await markPluginVersionOrphaned(oldVersionPath);
596
+ }
597
+ }
598
+ const scopeDesc = projectPath ? `${scope} (${projectPath})` : scope;
599
+ const message = `Plugin "${pluginName}" updated from ${oldVersion || "unknown"} to ${newVersion} for scope ${scopeDesc}. Restart to apply changes.`;
600
+ return {
601
+ success: true,
602
+ message,
603
+ pluginId,
604
+ newVersion,
605
+ oldVersion,
606
+ scope
607
+ };
608
+ } finally {
609
+ if (shouldCleanupSource && sourcePath !== getVersionedCachePath(pluginId, newVersion)) {
610
+ await fs.rm(sourcePath, { recursive: true, force: true });
611
+ }
612
+ }
613
+ }
614
+ var VALID_INSTALLABLE_SCOPES, VALID_UPDATE_SCOPES;
615
+ var init_pluginOperations = __esm(() => {
616
+ init_state();
617
+ init_builtinPlugins();
618
+ init_errors();
619
+ init_fsOperations();
620
+ init_log();
621
+ init_cacheUtils();
622
+ init_dependencyResolver();
623
+ init_installedPluginsManager();
624
+ init_marketplaceManager();
625
+ init_pluginDirectories();
626
+ init_pluginIdentifier();
627
+ init_pluginInstallationHelpers();
628
+ init_pluginLoader();
629
+ init_pluginOptionsStorage();
630
+ init_pluginPolicy();
631
+ init_pluginStartupCheck();
632
+ init_pluginVersioning();
633
+ init_settings();
634
+ init_stringUtils();
635
+ VALID_INSTALLABLE_SCOPES = ["user", "project", "local"];
636
+ VALID_UPDATE_SCOPES = [
637
+ "user",
638
+ "project",
639
+ "local",
640
+ "managed"
641
+ ];
642
+ });
643
+
644
+ export { VALID_INSTALLABLE_SCOPES, VALID_UPDATE_SCOPES, isInstallableScope, isPluginEnabledAtProjectScope, getPluginInstallationFromV2, installPluginOp, uninstallPluginOp, enablePluginOp, disablePluginOp, disableAllPluginsOp, updatePluginOp, init_pluginOperations };