coc-vscode-loader 1.1.0 → 1.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.
package/README.md CHANGED
@@ -50,11 +50,12 @@ npm install coc-vscode-loader
50
50
  ## Features
51
51
 
52
52
  - **Real conversion pipeline** — git clone → converter → npm install → esbuild → register to coc
53
+ - **Auto-fetch registry** — remote registry fetched in background on startup, no manual refresh needed
53
54
  - **Incremental cache** — source/ keeps git repo, updates via git pull only
54
55
  - **Commit tracking** — records commit SHA after install, visible in detail view
55
56
  - **Update check** — `C` key compares against remote HEAD, shows `↑` when outdated
56
57
  - **Auto restart** — `:CocRestart` triggered automatically on close when changes detected
57
- - **Registry hot-reload** — `:CocCommand loader.updateRegistry` fetches remote registry
58
+ - **Manual registry update** — `:CocCommand loader.updateRegistry` also available for re-fetch
58
59
  - **Install logs** — real command output per step, expandable
59
60
 
60
61
  ## Architecture
Binary file
@@ -8,13 +8,13 @@
8
8
  "name": "converter",
9
9
  "version": "0.1.0",
10
10
  "dependencies": {
11
- "commander": "^13.0.0",
12
- "ts-morph": "^25.0.0"
11
+ "commander": "^15.0.0",
12
+ "ts-morph": "^28.0.0"
13
13
  },
14
14
  "devDependencies": {
15
- "@types/node": "^22.0.0",
15
+ "@types/node": "^25.9.3",
16
16
  "tsx": "^4.19.0",
17
- "typescript": "^5.8.0"
17
+ "typescript": "^6.0.3"
18
18
  }
19
19
  },
20
20
  "node_modules/@esbuild/aix-ppc64": {
@@ -459,87 +459,46 @@
459
459
  "node": ">=18"
460
460
  }
461
461
  },
462
- "node_modules/@nodelib/fs.scandir": {
463
- "version": "2.1.5",
464
- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
465
- "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
466
- "license": "MIT",
467
- "dependencies": {
468
- "@nodelib/fs.stat": "2.0.5",
469
- "run-parallel": "^1.1.9"
470
- },
471
- "engines": {
472
- "node": ">= 8"
473
- }
474
- },
475
- "node_modules/@nodelib/fs.stat": {
476
- "version": "2.0.5",
477
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
478
- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
479
- "license": "MIT",
480
- "engines": {
481
- "node": ">= 8"
482
- }
483
- },
484
- "node_modules/@nodelib/fs.walk": {
485
- "version": "1.2.8",
486
- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
487
- "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
488
- "license": "MIT",
489
- "dependencies": {
490
- "@nodelib/fs.scandir": "2.1.5",
491
- "fastq": "^1.6.0"
492
- },
493
- "engines": {
494
- "node": ">= 8"
495
- }
496
- },
497
462
  "node_modules/@ts-morph/common": {
498
- "version": "0.26.1",
499
- "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.26.1.tgz",
500
- "integrity": "sha512-Sn28TGl/4cFpcM+jwsH1wLncYq3FtN/BIpem+HOygfBWPT5pAeS5dB4VFVzV8FbnOKHpDLZmvAl4AjPEev5idA==",
463
+ "version": "0.29.0",
464
+ "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.29.0.tgz",
465
+ "integrity": "sha512-35oUmphHbJvQ/+UTwFNme/t2p3FoKiGJ5auTjjpNTop2dyREspirjMy82PLSC1pnDJ8ah1GU98hwpVt64YXQsg==",
501
466
  "license": "MIT",
502
467
  "dependencies": {
503
- "fast-glob": "^3.3.2",
504
- "minimatch": "^9.0.4",
505
- "path-browserify": "^1.0.1"
468
+ "minimatch": "^10.0.1",
469
+ "path-browserify": "^1.0.1",
470
+ "tinyglobby": "^0.2.14"
506
471
  }
507
472
  },
508
473
  "node_modules/@types/node": {
509
- "version": "22.19.21",
510
- "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.21.tgz",
511
- "integrity": "sha512-VMeFBSCKQKmm2swI2kW51SFusDqekC6q9trBCvJ/JliDchFSuoYYKN7yVNjPthP1HKZcx3U1gI/wTcEBjEFKTA==",
474
+ "version": "25.9.3",
475
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-25.9.3.tgz",
476
+ "integrity": "sha512-603BddQMv3pUcr4U2dhujk83N2tTDVr/34wII2B6bJy6g+8WD6yUb11jszNs0gdi4PesVWl7ABt8nYMVpnLUcg==",
512
477
  "dev": true,
513
478
  "license": "MIT",
514
479
  "dependencies": {
515
- "undici-types": "~6.21.0"
480
+ "undici-types": ">=7.24.0 <7.24.7"
516
481
  }
517
482
  },
518
483
  "node_modules/balanced-match": {
519
- "version": "1.0.2",
520
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
521
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
522
- "license": "MIT"
523
- },
524
- "node_modules/brace-expansion": {
525
- "version": "2.1.1",
526
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.1.tgz",
527
- "integrity": "sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==",
484
+ "version": "4.0.4",
485
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
486
+ "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
528
487
  "license": "MIT",
529
- "dependencies": {
530
- "balanced-match": "^1.0.0"
488
+ "engines": {
489
+ "node": "18 || 20 || >=22"
531
490
  }
532
491
  },
533
- "node_modules/braces": {
534
- "version": "3.0.3",
535
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
536
- "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
492
+ "node_modules/brace-expansion": {
493
+ "version": "5.0.6",
494
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz",
495
+ "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==",
537
496
  "license": "MIT",
538
497
  "dependencies": {
539
- "fill-range": "^7.1.1"
498
+ "balanced-match": "^4.0.2"
540
499
  },
541
500
  "engines": {
542
- "node": ">=8"
501
+ "node": "18 || 20 || >=22"
543
502
  }
544
503
  },
545
504
  "node_modules/code-block-writer": {
@@ -549,12 +508,12 @@
549
508
  "license": "MIT"
550
509
  },
551
510
  "node_modules/commander": {
552
- "version": "13.1.0",
553
- "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz",
554
- "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==",
511
+ "version": "15.0.0",
512
+ "resolved": "https://registry.npmjs.org/commander/-/commander-15.0.0.tgz",
513
+ "integrity": "sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg==",
555
514
  "license": "MIT",
556
515
  "engines": {
557
- "node": ">=18"
516
+ "node": ">=22.12.0"
558
517
  }
559
518
  },
560
519
  "node_modules/esbuild": {
@@ -599,41 +558,21 @@
599
558
  "@esbuild/win32-x64": "0.28.0"
600
559
  }
601
560
  },
602
- "node_modules/fast-glob": {
603
- "version": "3.3.3",
604
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
605
- "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
561
+ "node_modules/fdir": {
562
+ "version": "6.5.0",
563
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
564
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
606
565
  "license": "MIT",
607
- "dependencies": {
608
- "@nodelib/fs.stat": "^2.0.2",
609
- "@nodelib/fs.walk": "^1.2.3",
610
- "glob-parent": "^5.1.2",
611
- "merge2": "^1.3.0",
612
- "micromatch": "^4.0.8"
613
- },
614
566
  "engines": {
615
- "node": ">=8.6.0"
616
- }
617
- },
618
- "node_modules/fastq": {
619
- "version": "1.20.1",
620
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz",
621
- "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==",
622
- "license": "ISC",
623
- "dependencies": {
624
- "reusify": "^1.0.4"
625
- }
626
- },
627
- "node_modules/fill-range": {
628
- "version": "7.1.1",
629
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
630
- "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
631
- "license": "MIT",
632
- "dependencies": {
633
- "to-regex-range": "^5.0.1"
567
+ "node": ">=12.0.0"
634
568
  },
635
- "engines": {
636
- "node": ">=8"
569
+ "peerDependencies": {
570
+ "picomatch": "^3 || ^4"
571
+ },
572
+ "peerDependenciesMeta": {
573
+ "picomatch": {
574
+ "optional": true
575
+ }
637
576
  }
638
577
  },
639
578
  "node_modules/fsevents": {
@@ -651,80 +590,16 @@
651
590
  "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
652
591
  }
653
592
  },
654
- "node_modules/glob-parent": {
655
- "version": "5.1.2",
656
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
657
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
658
- "license": "ISC",
659
- "dependencies": {
660
- "is-glob": "^4.0.1"
661
- },
662
- "engines": {
663
- "node": ">= 6"
664
- }
665
- },
666
- "node_modules/is-extglob": {
667
- "version": "2.1.1",
668
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
669
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
670
- "license": "MIT",
671
- "engines": {
672
- "node": ">=0.10.0"
673
- }
674
- },
675
- "node_modules/is-glob": {
676
- "version": "4.0.3",
677
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
678
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
679
- "license": "MIT",
680
- "dependencies": {
681
- "is-extglob": "^2.1.1"
682
- },
683
- "engines": {
684
- "node": ">=0.10.0"
685
- }
686
- },
687
- "node_modules/is-number": {
688
- "version": "7.0.0",
689
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
690
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
691
- "license": "MIT",
692
- "engines": {
693
- "node": ">=0.12.0"
694
- }
695
- },
696
- "node_modules/merge2": {
697
- "version": "1.4.1",
698
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
699
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
700
- "license": "MIT",
701
- "engines": {
702
- "node": ">= 8"
703
- }
704
- },
705
- "node_modules/micromatch": {
706
- "version": "4.0.8",
707
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
708
- "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
709
- "license": "MIT",
710
- "dependencies": {
711
- "braces": "^3.0.3",
712
- "picomatch": "^2.3.1"
713
- },
714
- "engines": {
715
- "node": ">=8.6"
716
- }
717
- },
718
593
  "node_modules/minimatch": {
719
- "version": "9.0.9",
720
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz",
721
- "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==",
722
- "license": "ISC",
594
+ "version": "10.2.5",
595
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz",
596
+ "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==",
597
+ "license": "BlueOak-1.0.0",
723
598
  "dependencies": {
724
- "brace-expansion": "^2.0.2"
599
+ "brace-expansion": "^5.0.5"
725
600
  },
726
601
  "engines": {
727
- "node": ">=16 || 14 >=14.17"
602
+ "node": "18 || 20 || >=22"
728
603
  },
729
604
  "funding": {
730
605
  "url": "https://github.com/sponsors/isaacs"
@@ -737,89 +612,40 @@
737
612
  "license": "MIT"
738
613
  },
739
614
  "node_modules/picomatch": {
740
- "version": "2.3.2",
741
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz",
742
- "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==",
615
+ "version": "4.0.4",
616
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
617
+ "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
743
618
  "license": "MIT",
744
619
  "engines": {
745
- "node": ">=8.6"
620
+ "node": ">=12"
746
621
  },
747
622
  "funding": {
748
623
  "url": "https://github.com/sponsors/jonschlinkert"
749
624
  }
750
625
  },
751
- "node_modules/queue-microtask": {
752
- "version": "1.2.3",
753
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
754
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
755
- "funding": [
756
- {
757
- "type": "github",
758
- "url": "https://github.com/sponsors/feross"
759
- },
760
- {
761
- "type": "patreon",
762
- "url": "https://www.patreon.com/feross"
763
- },
764
- {
765
- "type": "consulting",
766
- "url": "https://feross.org/support"
767
- }
768
- ],
769
- "license": "MIT"
770
- },
771
- "node_modules/reusify": {
772
- "version": "1.1.0",
773
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
774
- "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
775
- "license": "MIT",
776
- "engines": {
777
- "iojs": ">=1.0.0",
778
- "node": ">=0.10.0"
779
- }
780
- },
781
- "node_modules/run-parallel": {
782
- "version": "1.2.0",
783
- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
784
- "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
785
- "funding": [
786
- {
787
- "type": "github",
788
- "url": "https://github.com/sponsors/feross"
789
- },
790
- {
791
- "type": "patreon",
792
- "url": "https://www.patreon.com/feross"
793
- },
794
- {
795
- "type": "consulting",
796
- "url": "https://feross.org/support"
797
- }
798
- ],
626
+ "node_modules/tinyglobby": {
627
+ "version": "0.2.17",
628
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz",
629
+ "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==",
799
630
  "license": "MIT",
800
631
  "dependencies": {
801
- "queue-microtask": "^1.2.2"
802
- }
803
- },
804
- "node_modules/to-regex-range": {
805
- "version": "5.0.1",
806
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
807
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
808
- "license": "MIT",
809
- "dependencies": {
810
- "is-number": "^7.0.0"
632
+ "fdir": "^6.5.0",
633
+ "picomatch": "^4.0.4"
811
634
  },
812
635
  "engines": {
813
- "node": ">=8.0"
636
+ "node": ">=12.0.0"
637
+ },
638
+ "funding": {
639
+ "url": "https://github.com/sponsors/SuperchupuDev"
814
640
  }
815
641
  },
816
642
  "node_modules/ts-morph": {
817
- "version": "25.0.1",
818
- "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-25.0.1.tgz",
819
- "integrity": "sha512-QJEiTdnz1YjrB3JFhd626gX4rKHDLSjSVMvGGG4v7ONc3RBwa0Eei98G9AT9uNFDMtV54JyuXsFeC+OH0n6bXQ==",
643
+ "version": "28.0.0",
644
+ "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-28.0.0.tgz",
645
+ "integrity": "sha512-Wp3tnZ2bzwxyTZMtgWVzXDfm7lB1Drz+y9DmmYH/L702PQhPyVrp3pkou3yIz4qjS14GY9kcpmLiOOMvl8oG1g==",
820
646
  "license": "MIT",
821
647
  "dependencies": {
822
- "@ts-morph/common": "~0.26.0",
648
+ "@ts-morph/common": "~0.29.0",
823
649
  "code-block-writer": "^13.0.3"
824
650
  }
825
651
  },
@@ -843,9 +669,9 @@
843
669
  }
844
670
  },
845
671
  "node_modules/typescript": {
846
- "version": "5.9.3",
847
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
848
- "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
672
+ "version": "6.0.3",
673
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz",
674
+ "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==",
849
675
  "dev": true,
850
676
  "license": "Apache-2.0",
851
677
  "bin": {
@@ -857,9 +683,9 @@
857
683
  }
858
684
  },
859
685
  "node_modules/undici-types": {
860
- "version": "6.21.0",
861
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
862
- "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
686
+ "version": "7.24.6",
687
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.24.6.tgz",
688
+ "integrity": "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==",
863
689
  "dev": true,
864
690
  "license": "MIT"
865
691
  }
@@ -8,12 +8,12 @@
8
8
  "convert": "tsx src/cli.ts"
9
9
  },
10
10
  "dependencies": {
11
- "ts-morph": "^25.0.0",
12
- "commander": "^13.0.0"
11
+ "ts-morph": "^28.0.0",
12
+ "commander": "^15.0.0"
13
13
  },
14
14
  "devDependencies": {
15
- "@types/node": "^22.0.0",
15
+ "@types/node": "^25.9.3",
16
16
  "tsx": "^4.19.0",
17
- "typescript": "^5.8.0"
17
+ "typescript": "^6.0.3"
18
18
  }
19
19
  }
@@ -9,21 +9,21 @@ importers:
9
9
  .:
10
10
  dependencies:
11
11
  commander:
12
- specifier: ^13.0.0
13
- version: 13.1.0
12
+ specifier: ^15.0.0
13
+ version: 15.0.0
14
14
  ts-morph:
15
- specifier: ^25.0.0
16
- version: 25.0.1
15
+ specifier: ^28.0.0
16
+ version: 28.0.0
17
17
  devDependencies:
18
18
  '@types/node':
19
- specifier: ^22.0.0
20
- version: 22.19.21
19
+ specifier: ^25.9.3
20
+ version: 25.9.3
21
21
  tsx:
22
22
  specifier: ^4.19.0
23
23
  version: 4.22.4
24
24
  typescript:
25
- specifier: ^5.8.0
26
- version: 5.9.3
25
+ specifier: ^6.0.3
26
+ version: 6.0.3
27
27
 
28
28
  packages:
29
29
 
@@ -183,126 +183,76 @@ packages:
183
183
  cpu: [x64]
184
184
  os: [win32]
185
185
 
186
- '@nodelib/fs.scandir@2.1.5':
187
- resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
188
- engines: {node: '>= 8'}
186
+ '@ts-morph/common@0.29.0':
187
+ resolution: {integrity: sha512-35oUmphHbJvQ/+UTwFNme/t2p3FoKiGJ5auTjjpNTop2dyREspirjMy82PLSC1pnDJ8ah1GU98hwpVt64YXQsg==}
189
188
 
190
- '@nodelib/fs.stat@2.0.5':
191
- resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
192
- engines: {node: '>= 8'}
189
+ '@types/node@25.9.3':
190
+ resolution: {integrity: sha512-603BddQMv3pUcr4U2dhujk83N2tTDVr/34wII2B6bJy6g+8WD6yUb11jszNs0gdi4PesVWl7ABt8nYMVpnLUcg==}
193
191
 
194
- '@nodelib/fs.walk@1.2.8':
195
- resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
196
- engines: {node: '>= 8'}
192
+ balanced-match@4.0.4:
193
+ resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==}
194
+ engines: {node: 18 || 20 || >=22}
197
195
 
198
- '@ts-morph/common@0.26.1':
199
- resolution: {integrity: sha512-Sn28TGl/4cFpcM+jwsH1wLncYq3FtN/BIpem+HOygfBWPT5pAeS5dB4VFVzV8FbnOKHpDLZmvAl4AjPEev5idA==}
200
-
201
- '@types/node@22.19.21':
202
- resolution: {integrity: sha512-VMeFBSCKQKmm2swI2kW51SFusDqekC6q9trBCvJ/JliDchFSuoYYKN7yVNjPthP1HKZcx3U1gI/wTcEBjEFKTA==}
203
-
204
- balanced-match@1.0.2:
205
- resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
206
-
207
- brace-expansion@2.1.1:
208
- resolution: {integrity: sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==}
209
-
210
- braces@3.0.3:
211
- resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
212
- engines: {node: '>=8'}
196
+ brace-expansion@5.0.6:
197
+ resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==}
198
+ engines: {node: 18 || 20 || >=22}
213
199
 
214
200
  code-block-writer@13.0.3:
215
201
  resolution: {integrity: sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==}
216
202
 
217
- commander@13.1.0:
218
- resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==}
219
- engines: {node: '>=18'}
203
+ commander@15.0.0:
204
+ resolution: {integrity: sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg==}
205
+ engines: {node: '>=22.12.0'}
220
206
 
221
207
  esbuild@0.28.1:
222
208
  resolution: {integrity: sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==}
223
209
  engines: {node: '>=18'}
224
210
  hasBin: true
225
211
 
226
- fast-glob@3.3.3:
227
- resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
228
- engines: {node: '>=8.6.0'}
229
-
230
- fastq@1.20.1:
231
- resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==}
232
-
233
- fill-range@7.1.1:
234
- resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
235
- engines: {node: '>=8'}
212
+ fdir@6.5.0:
213
+ resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
214
+ engines: {node: '>=12.0.0'}
215
+ peerDependencies:
216
+ picomatch: ^3 || ^4
217
+ peerDependenciesMeta:
218
+ picomatch:
219
+ optional: true
236
220
 
237
221
  fsevents@2.3.3:
238
222
  resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
239
223
  engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
240
224
  os: [darwin]
241
225
 
242
- glob-parent@5.1.2:
243
- resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
244
- engines: {node: '>= 6'}
245
-
246
- is-extglob@2.1.1:
247
- resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
248
- engines: {node: '>=0.10.0'}
249
-
250
- is-glob@4.0.3:
251
- resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
252
- engines: {node: '>=0.10.0'}
253
-
254
- is-number@7.0.0:
255
- resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
256
- engines: {node: '>=0.12.0'}
257
-
258
- merge2@1.4.1:
259
- resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
260
- engines: {node: '>= 8'}
261
-
262
- micromatch@4.0.8:
263
- resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
264
- engines: {node: '>=8.6'}
265
-
266
- minimatch@9.0.9:
267
- resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==}
268
- engines: {node: '>=16 || 14 >=14.17'}
226
+ minimatch@10.2.5:
227
+ resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==}
228
+ engines: {node: 18 || 20 || >=22}
269
229
 
270
230
  path-browserify@1.0.1:
271
231
  resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==}
272
232
 
273
- picomatch@2.3.2:
274
- resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==}
275
- engines: {node: '>=8.6'}
276
-
277
- queue-microtask@1.2.3:
278
- resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
279
-
280
- reusify@1.1.0:
281
- resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
282
- engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
283
-
284
- run-parallel@1.2.0:
285
- resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
233
+ picomatch@4.0.4:
234
+ resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==}
235
+ engines: {node: '>=12'}
286
236
 
287
- to-regex-range@5.0.1:
288
- resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
289
- engines: {node: '>=8.0'}
237
+ tinyglobby@0.2.17:
238
+ resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==}
239
+ engines: {node: '>=12.0.0'}
290
240
 
291
- ts-morph@25.0.1:
292
- resolution: {integrity: sha512-QJEiTdnz1YjrB3JFhd626gX4rKHDLSjSVMvGGG4v7ONc3RBwa0Eei98G9AT9uNFDMtV54JyuXsFeC+OH0n6bXQ==}
241
+ ts-morph@28.0.0:
242
+ resolution: {integrity: sha512-Wp3tnZ2bzwxyTZMtgWVzXDfm7lB1Drz+y9DmmYH/L702PQhPyVrp3pkou3yIz4qjS14GY9kcpmLiOOMvl8oG1g==}
293
243
 
294
244
  tsx@4.22.4:
295
245
  resolution: {integrity: sha512-X8EX+XV4QR5xCsrgxaED954zTDfY8KqlDtskKEL0cHhyS/P8b4IFOvGDQpsC9Q1XnLq915wEfwwY/zzskCtmhg==}
296
246
  engines: {node: '>=18.0.0'}
297
247
  hasBin: true
298
248
 
299
- typescript@5.9.3:
300
- resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
249
+ typescript@6.0.3:
250
+ resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==}
301
251
  engines: {node: '>=14.17'}
302
252
  hasBin: true
303
253
 
304
- undici-types@6.21.0:
305
- resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
254
+ undici-types@7.24.6:
255
+ resolution: {integrity: sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==}
306
256
 
307
257
  snapshots:
308
258
 
@@ -384,41 +334,25 @@ snapshots:
384
334
  '@esbuild/win32-x64@0.28.1':
385
335
  optional: true
386
336
 
387
- '@nodelib/fs.scandir@2.1.5':
388
- dependencies:
389
- '@nodelib/fs.stat': 2.0.5
390
- run-parallel: 1.2.0
391
-
392
- '@nodelib/fs.stat@2.0.5': {}
393
-
394
- '@nodelib/fs.walk@1.2.8':
395
- dependencies:
396
- '@nodelib/fs.scandir': 2.1.5
397
- fastq: 1.20.1
398
-
399
- '@ts-morph/common@0.26.1':
337
+ '@ts-morph/common@0.29.0':
400
338
  dependencies:
401
- fast-glob: 3.3.3
402
- minimatch: 9.0.9
339
+ minimatch: 10.2.5
403
340
  path-browserify: 1.0.1
341
+ tinyglobby: 0.2.17
404
342
 
405
- '@types/node@22.19.21':
343
+ '@types/node@25.9.3':
406
344
  dependencies:
407
- undici-types: 6.21.0
345
+ undici-types: 7.24.6
408
346
 
409
- balanced-match@1.0.2: {}
347
+ balanced-match@4.0.4: {}
410
348
 
411
- brace-expansion@2.1.1:
349
+ brace-expansion@5.0.6:
412
350
  dependencies:
413
- balanced-match: 1.0.2
414
-
415
- braces@3.0.3:
416
- dependencies:
417
- fill-range: 7.1.1
351
+ balanced-match: 4.0.4
418
352
 
419
353
  code-block-writer@13.0.3: {}
420
354
 
421
- commander@13.1.0: {}
355
+ commander@15.0.0: {}
422
356
 
423
357
  esbuild@0.28.1:
424
358
  optionalDependencies:
@@ -449,67 +383,29 @@ snapshots:
449
383
  '@esbuild/win32-ia32': 0.28.1
450
384
  '@esbuild/win32-x64': 0.28.1
451
385
 
452
- fast-glob@3.3.3:
453
- dependencies:
454
- '@nodelib/fs.stat': 2.0.5
455
- '@nodelib/fs.walk': 1.2.8
456
- glob-parent: 5.1.2
457
- merge2: 1.4.1
458
- micromatch: 4.0.8
459
-
460
- fastq@1.20.1:
461
- dependencies:
462
- reusify: 1.1.0
463
-
464
- fill-range@7.1.1:
465
- dependencies:
466
- to-regex-range: 5.0.1
386
+ fdir@6.5.0(picomatch@4.0.4):
387
+ optionalDependencies:
388
+ picomatch: 4.0.4
467
389
 
468
390
  fsevents@2.3.3:
469
391
  optional: true
470
392
 
471
- glob-parent@5.1.2:
472
- dependencies:
473
- is-glob: 4.0.3
474
-
475
- is-extglob@2.1.1: {}
476
-
477
- is-glob@4.0.3:
393
+ minimatch@10.2.5:
478
394
  dependencies:
479
- is-extglob: 2.1.1
480
-
481
- is-number@7.0.0: {}
482
-
483
- merge2@1.4.1: {}
484
-
485
- micromatch@4.0.8:
486
- dependencies:
487
- braces: 3.0.3
488
- picomatch: 2.3.2
489
-
490
- minimatch@9.0.9:
491
- dependencies:
492
- brace-expansion: 2.1.1
395
+ brace-expansion: 5.0.6
493
396
 
494
397
  path-browserify@1.0.1: {}
495
398
 
496
- picomatch@2.3.2: {}
497
-
498
- queue-microtask@1.2.3: {}
499
-
500
- reusify@1.1.0: {}
501
-
502
- run-parallel@1.2.0:
503
- dependencies:
504
- queue-microtask: 1.2.3
399
+ picomatch@4.0.4: {}
505
400
 
506
- to-regex-range@5.0.1:
401
+ tinyglobby@0.2.17:
507
402
  dependencies:
508
- is-number: 7.0.0
403
+ fdir: 6.5.0(picomatch@4.0.4)
404
+ picomatch: 4.0.4
509
405
 
510
- ts-morph@25.0.1:
406
+ ts-morph@28.0.0:
511
407
  dependencies:
512
- '@ts-morph/common': 0.26.1
408
+ '@ts-morph/common': 0.29.0
513
409
  code-block-writer: 13.0.3
514
410
 
515
411
  tsx@4.22.4:
@@ -518,6 +414,6 @@ snapshots:
518
414
  optionalDependencies:
519
415
  fsevents: 2.3.3
520
416
 
521
- typescript@5.9.3: {}
417
+ typescript@6.0.3: {}
522
418
 
523
- undici-types@6.21.0: {}
419
+ undici-types@7.24.6: {}
package/lib/index.js CHANGED
@@ -41,38 +41,6 @@ var fs = __toESM(require("fs"));
41
41
  var os = __toESM(require("os"));
42
42
  var REMOTE_REGISTRY_URL = "https://raw.githubusercontent.com/coc-plugin/coc-vscode-registry/main/registry.json";
43
43
  var CACHE_PATH = path.join(os.homedir(), ".config", "coc", "converter-cache", "registry.json");
44
- var BUILTIN_REGISTRY = [
45
- {
46
- name: "volar",
47
- displayName: "Volar (Vue)",
48
- description: "Vue language support \u2014 template/script/style IntelliSense",
49
- type: "ts-bridge",
50
- source: { type: "github", repo: "vuejs/language-tools", subdir: "extensions/vscode" },
51
- url: "https://github.com/vuejs/language-tools",
52
- languages: ["vue"],
53
- categories: ["LSP", "TypeScript"]
54
- },
55
- {
56
- name: "prisma",
57
- displayName: "Prisma",
58
- description: "Prisma schema language support \u2014 syntax highlight, lint, format",
59
- type: "pure-lsp",
60
- source: { type: "github", repo: "prisma/language-tools", subdir: "packages/vscode" },
61
- url: "https://github.com/prisma/language-tools",
62
- languages: ["prisma"],
63
- categories: ["LSP"]
64
- },
65
- {
66
- name: "html-css-support",
67
- displayName: "HTML CSS Support",
68
- description: "CSS class name completion for HTML attributes",
69
- type: "direct-api",
70
- source: { type: "github", repo: "ecmel/vscode-html-css" },
71
- url: "https://github.com/ecmel/vscode-html-css",
72
- languages: ["html", "css"],
73
- categories: ["Completion"]
74
- }
75
- ];
76
44
  var cached = null;
77
45
  function loadCache() {
78
46
  try {
@@ -96,7 +64,7 @@ async function updateRegistry() {
96
64
  function getAllPackages() {
97
65
  if (cached) return cached;
98
66
  cached = loadCache();
99
- return cached || BUILTIN_REGISTRY;
67
+ return cached || [];
100
68
  }
101
69
  function getPackage(name) {
102
70
  return getAllPackages().find((p) => p.name === name);
@@ -113,12 +81,16 @@ function createInitialState() {
113
81
  const packages = getAllPackages().map((info) => {
114
82
  const installed = isInstalled(info.name);
115
83
  let commit;
84
+ let commitMsg;
85
+ let commitDate;
116
86
  if (installed) {
117
87
  try {
118
88
  const meta = JSON.parse(
119
89
  fs2.readFileSync(path2.join(os2.homedir(), ".config", "coc", "converter-cache", info.name, "meta.json"), "utf-8")
120
90
  );
121
91
  commit = meta.commit || void 0;
92
+ commitMsg = meta.msg || void 0;
93
+ commitDate = meta.date || void 0;
122
94
  } catch {
123
95
  }
124
96
  }
@@ -126,6 +98,8 @@ function createInitialState() {
126
98
  info,
127
99
  status: installed ? "installed" : "not-installed",
128
100
  commit,
101
+ commitMsg,
102
+ commitDate,
129
103
  progressLog: [],
130
104
  expanded: false,
131
105
  logExpanded: false
@@ -165,6 +139,9 @@ var StateManager = class {
165
139
  this.mutate((s) => {
166
140
  const pkg = s.packages.find((p) => p.info.name === name);
167
141
  if (pkg) {
142
+ if (status === "installing" || status === "updating" || status === "uninstalling") {
143
+ pkg.progressLog = [];
144
+ }
168
145
  pkg.status = status;
169
146
  if (extra?.progress !== void 0) pkg.progress = extra.progress;
170
147
  if (extra?.logEntry !== void 0) pkg.progressLog.push(extra.logEntry);
@@ -234,6 +211,26 @@ var StateManager = class {
234
211
  getPackage(name) {
235
212
  return this.state.packages.find((p) => p.info.name === name);
236
213
  }
214
+ refreshPackages() {
215
+ this.mutate((s) => {
216
+ const updated = getAllPackages();
217
+ const oldMap = new Map(s.packages.map((p) => [p.info.name, p]));
218
+ s.packages = updated.map((info) => {
219
+ const old = oldMap.get(info.name);
220
+ if (old) {
221
+ old.info = info;
222
+ return old;
223
+ }
224
+ return {
225
+ info,
226
+ status: isInstalled(info.name) ? "installed" : "not-installed",
227
+ progressLog: [],
228
+ expanded: false,
229
+ logExpanded: false
230
+ };
231
+ });
232
+ });
233
+ }
237
234
  };
238
235
 
239
236
  // src/tui.ts
@@ -315,14 +312,50 @@ async function convertSource(inputDir, name, onProgress) {
315
312
  await run("npx", ["tsx", cli, "convert", inputDir, "-o", build], cacheDir(name), () => {
316
313
  });
317
314
  }
318
- async function buildPackage(name, onProgress) {
315
+ async function buildPackage(name, inputDir, info, onProgress) {
319
316
  const build = buildDir(name);
320
317
  onProgress(3, 5, "Installing dependencies...", "npm install --legacy-peer-deps");
321
318
  await run("npm", ["install", "--legacy-peer-deps"], build, () => {
322
319
  });
320
+ onProgress(3, 5, "Running postinstall...", "npm run postinstall");
321
+ await run("npm", ["run", "postinstall", "--if-present"], build, () => {
322
+ }).catch(() => {
323
+ });
324
+ const serverDir = path3.join(inputDir, "server");
325
+ if (fs3.existsSync(serverDir) && fs3.existsSync(path3.join(serverDir, "package.json"))) {
326
+ onProgress(3, 5, "Installing server dependencies...", `npm install in ${serverDir}`);
327
+ await run("npm", ["install", "--legacy-peer-deps"], serverDir, () => {
328
+ });
329
+ const destServer = path3.join(build, "server");
330
+ if (fs3.existsSync(destServer)) fs3.rmSync(destServer, { recursive: true });
331
+ fs3.cpSync(serverDir, destServer, { recursive: true });
332
+ }
323
333
  onProgress(4, 5, "Building...", "node esbuild.mjs");
324
334
  await run("node", ["esbuild.mjs"], build, () => {
325
335
  });
336
+ if (info.serverBinary) {
337
+ const sb = info.serverBinary;
338
+ onProgress(4, 5, "Downloading language server...", `fetching ${sb.repo}`);
339
+ try {
340
+ const tagData = await runWithOutput("gh", ["api", `repos/${sb.repo}/releases/latest`, "--jq", ".tag_name"], os3.homedir());
341
+ const version = tagData.replace(/^v/, "");
342
+ const arch2 = os3.arch() === "arm64" ? "arm64" : "x64";
343
+ const platform = process.platform === "win32" ? "win32" : process.platform === "darwin" ? "darwin" : "linux";
344
+ const filename = sb.asset.replace("{{version}}", version).replace("{{platform}}", platform).replace("{{arch}}", arch2);
345
+ const url = `https://github.com/${sb.repo}/releases/download/${version}/${filename}`;
346
+ onProgress(4, 5, "Downloading...", `curl ${filename}`);
347
+ await run("curl", ["-sSL", url, "-o", path3.join(build, filename)], build, () => {
348
+ });
349
+ onProgress(4, 5, "Extracting...", `tar xzf ${filename}`);
350
+ const serverDir2 = path3.join(build, "server");
351
+ fs3.mkdirSync(serverDir2, { recursive: true });
352
+ await run("tar", ["xzf", filename, "-C", serverDir2], build, () => {
353
+ });
354
+ fs3.rmSync(path3.join(build, filename));
355
+ } catch {
356
+ onProgress(4, 5, "Warning: server download failed", "install server binary manually");
357
+ }
358
+ }
326
359
  }
327
360
  function extensionsPkgPath() {
328
361
  return path3.join(os3.homedir(), ".config", "coc", "extensions", "package.json");
@@ -349,8 +382,9 @@ function metaPath(name) {
349
382
  function saveMeta(name) {
350
383
  const srcDir = sourceDir(name);
351
384
  try {
352
- const commit = (0, import_child_process.execSync)("git", ["-C", srcDir, "rev-parse", "--short", "HEAD"], { encoding: "utf-8" }).toString().trim();
353
- fs3.writeFileSync(metaPath(name), JSON.stringify({ commit, updatedAt: Date.now() }, null, 2));
385
+ const log = (0, import_child_process.execSync)(`git -C "${srcDir}" log -1 --format="%h|%s|%ar"`, { encoding: "utf-8" }).toString().trim();
386
+ const [commit, msg, date] = log.split("|");
387
+ fs3.writeFileSync(metaPath(name), JSON.stringify({ commit, msg, date, updatedAt: Date.now() }, null, 2));
354
388
  } catch {
355
389
  }
356
390
  }
@@ -372,11 +406,26 @@ async function installPackage(state, name) {
372
406
  try {
373
407
  const input = await downloadSource(info, name, prog);
374
408
  await convertSource(input, name, prog);
375
- await buildPackage(name, prog);
409
+ await buildPackage(name, input, info, prog);
376
410
  await installToCoc(name, prog);
377
411
  saveMeta(name);
378
412
  state.setDirty();
379
413
  state.setPackageStatus(name, "installed");
414
+ try {
415
+ const meta = JSON.parse(fs3.readFileSync(metaPath(name), "utf-8"));
416
+ if (meta.commit) {
417
+ state.mutate((s) => {
418
+ const p = s.packages.find((p2) => p2.info.name === name);
419
+ if (p) {
420
+ p.commit = meta.commit;
421
+ p.commitMsg = meta.msg;
422
+ p.commitDate = meta.date;
423
+ p.updated = true;
424
+ }
425
+ });
426
+ }
427
+ } catch {
428
+ }
380
429
  } catch (e) {
381
430
  state.setPackageStatus(name, "failed", { error: e.message });
382
431
  }
@@ -426,11 +475,26 @@ async function updatePackage(state, name) {
426
475
  try {
427
476
  const input = await downloadSource(info, name, prog);
428
477
  await convertSource(input, name, prog);
429
- await buildPackage(name, prog);
478
+ await buildPackage(name, input, info, prog);
430
479
  await installToCoc(name, prog);
431
480
  saveMeta(name);
432
481
  state.setDirty();
433
482
  state.setPackageStatus(name, "installed");
483
+ try {
484
+ const meta = JSON.parse(fs3.readFileSync(metaPath(name), "utf-8"));
485
+ if (meta.commit) {
486
+ state.mutate((s) => {
487
+ const p = s.packages.find((p2) => p2.info.name === name);
488
+ if (p) {
489
+ p.commit = meta.commit;
490
+ p.commitMsg = meta.msg;
491
+ p.commitDate = meta.date;
492
+ p.updated = true;
493
+ }
494
+ });
495
+ }
496
+ } catch {
497
+ }
434
498
  } catch (e) {
435
499
  state.setPackageStatus(name, "failed", { error: e.message });
436
500
  }
@@ -914,6 +978,15 @@ var TUI = class {
914
978
  if (entry.hasUpdate) {
915
979
  buf.append(" \u2191", "CocConverterKey");
916
980
  }
981
+ if (entry.updated && entry.commit && entry.commitMsg) {
982
+ buf.nl();
983
+ const ln = buf.currentLine();
984
+ buf.append(` ${entry.commit} ${entry.commitMsg}`, "Comment");
985
+ if (entry.commitDate) {
986
+ buf.append(` (${entry.commitDate})`, "Comment");
987
+ }
988
+ pkgLineMap.set(ln, entry.info.name);
989
+ }
917
990
  if (entry.expanded) {
918
991
  buf.nl();
919
992
  for (const text of [
@@ -1072,6 +1145,8 @@ async function activate(context) {
1072
1145
  }
1073
1146
  })
1074
1147
  );
1148
+ updateRegistry().then(() => state.refreshPackages()).catch(() => {
1149
+ });
1075
1150
  import_coc2.window.showInformationMessage("coc-loader activated! Use :CocCommand loader.open");
1076
1151
  }
1077
1152
  // Annotate the CommonJS export names for ESM import in node:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "coc-vscode-loader",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "description": "Run VS Code extensions seamlessly in coc.nvim",
5
5
  "main": "lib/index.js",
6
6
  "keywords": [
@@ -30,8 +30,8 @@
30
30
  },
31
31
  "devDependencies": {
32
32
  "coc.nvim": "^0.0.83-next.18",
33
- "esbuild": "^0.25.0",
34
- "typescript": "^5.3.3"
33
+ "esbuild": "^0.28.1",
34
+ "typescript": "^6.0.3"
35
35
  },
36
36
  "activationEvents": [
37
37
  "onCommand:loader.open",