pcu 1.1.10 → 1.3.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.
- package/README.md +4 -4
- package/dist/index.js +633 -89
- package/dist/index.js.map +1 -1
- package/package.json +16 -15
- package/src/cli/commandRegistrar.ts +23 -3
- package/src/cli/commands/initCommand.ts +3 -1
- package/src/cli/index.ts +28 -9
- package/src/cli/interactive/InteractiveOptionsCollector.ts +1 -1
- package/src/cli/interactive/interactivePrompts.ts +11 -11
package/dist/index.js
CHANGED
|
@@ -28,6 +28,8 @@ var ConcurrentProgressTracker = class {
|
|
|
28
28
|
this.reporter = reporter;
|
|
29
29
|
this.total = total;
|
|
30
30
|
}
|
|
31
|
+
reporter;
|
|
32
|
+
total;
|
|
31
33
|
completed = 0;
|
|
32
34
|
lock = new Mutex();
|
|
33
35
|
/**
|
|
@@ -995,6 +997,7 @@ var de = {
|
|
|
995
997
|
"command.selfUpdate.failed": "pcu-Aktualisierung fehlgeschlagen",
|
|
996
998
|
"command.selfUpdate.latestAlready": "Sie verwenden bereits die neueste Version ({{version}})",
|
|
997
999
|
"command.selfUpdate.restartHint": "Bitte starten Sie Ihr Terminal neu, um die neue Version zu verwenden.",
|
|
1000
|
+
"command.selfUpdate.manualHint": "Sie k\xF6nnen manuell aktualisieren mit: npm install -g pcu@latest",
|
|
998
1001
|
// AI command
|
|
999
1002
|
"command.ai.cacheCleared": "KI-Analyse-Cache geleert",
|
|
1000
1003
|
"command.ai.cacheStats": "KI-Analyse-Cache-Statistiken",
|
|
@@ -1119,7 +1122,8 @@ var de = {
|
|
|
1119
1122
|
// CLI messages
|
|
1120
1123
|
"cli.runAgain": "Bitte f\xFChren Sie den Befehl erneut aus, um die aktualisierte Version zu verwenden.",
|
|
1121
1124
|
"cli.checkingUpdates": "Suche nach Updates...",
|
|
1122
|
-
"cli.latestVersion": "
|
|
1125
|
+
"cli.latestVersion": "ist die neueste",
|
|
1126
|
+
"cli.available": "verf\xFCgbar",
|
|
1123
1127
|
"cli.unknownCommand": "Unbekannter Befehl: {{command}}",
|
|
1124
1128
|
"cli.couldNotCheckUpdates": "Updates konnten nicht gepr\xFCft werden:",
|
|
1125
1129
|
"cli.error": "Fehler:",
|
|
@@ -1899,6 +1903,7 @@ var en = {
|
|
|
1899
1903
|
"command.selfUpdate.failed": "Failed to update pcu",
|
|
1900
1904
|
"command.selfUpdate.latestAlready": "You are already using the latest version ({{version}})",
|
|
1901
1905
|
"command.selfUpdate.restartHint": "Please restart your terminal to use the new version.",
|
|
1906
|
+
"command.selfUpdate.manualHint": "You can manually update with: npm install -g pcu@latest",
|
|
1902
1907
|
// AI command
|
|
1903
1908
|
"command.ai.cacheCleared": "AI analysis cache cleared",
|
|
1904
1909
|
"command.ai.cacheStats": "AI Analysis Cache Statistics",
|
|
@@ -1940,7 +1945,8 @@ var en = {
|
|
|
1940
1945
|
// CLI messages
|
|
1941
1946
|
"cli.runAgain": "Please run your command again to use the updated version.",
|
|
1942
1947
|
"cli.checkingUpdates": "Checking for updates...",
|
|
1943
|
-
"cli.latestVersion": "
|
|
1948
|
+
"cli.latestVersion": "is the latest",
|
|
1949
|
+
"cli.available": "available",
|
|
1944
1950
|
"cli.unknownCommand": "Unknown command: {{command}}",
|
|
1945
1951
|
"cli.couldNotCheckUpdates": "Could not check for updates:",
|
|
1946
1952
|
"cli.error": "Error:",
|
|
@@ -2802,6 +2808,7 @@ var es = {
|
|
|
2802
2808
|
"command.selfUpdate.failed": "Error al actualizar pcu",
|
|
2803
2809
|
"command.selfUpdate.latestAlready": "Ya est\xE1 utilizando la \xFAltima versi\xF3n ({{version}})",
|
|
2804
2810
|
"command.selfUpdate.restartHint": "Reinicie su terminal para usar la nueva versi\xF3n.",
|
|
2811
|
+
"command.selfUpdate.manualHint": "Puede actualizar manualmente con: npm install -g pcu@latest",
|
|
2805
2812
|
// AI command
|
|
2806
2813
|
"command.ai.cacheCleared": "Cach\xE9 de an\xE1lisis de IA limpiada",
|
|
2807
2814
|
"command.ai.cacheStats": "Estad\xEDsticas de cach\xE9 de an\xE1lisis de IA",
|
|
@@ -2926,7 +2933,8 @@ var es = {
|
|
|
2926
2933
|
// CLI messages
|
|
2927
2934
|
"cli.runAgain": "Por favor, ejecute el comando nuevamente para usar la versi\xF3n actualizada.",
|
|
2928
2935
|
"cli.checkingUpdates": "Buscando actualizaciones...",
|
|
2929
|
-
"cli.latestVersion": "
|
|
2936
|
+
"cli.latestVersion": "es la \xFAltima",
|
|
2937
|
+
"cli.available": "disponible",
|
|
2930
2938
|
"cli.unknownCommand": "Comando desconocido: {{command}}",
|
|
2931
2939
|
"cli.couldNotCheckUpdates": "No se pudo verificar actualizaciones:",
|
|
2932
2940
|
"cli.error": "Error:",
|
|
@@ -3706,6 +3714,7 @@ var fr = {
|
|
|
3706
3714
|
"command.selfUpdate.failed": "\xC9chec de la mise \xE0 jour de pcu",
|
|
3707
3715
|
"command.selfUpdate.latestAlready": "Vous utilisez d\xE9j\xE0 la derni\xE8re version ({{version}})",
|
|
3708
3716
|
"command.selfUpdate.restartHint": "Veuillez red\xE9marrer votre terminal pour utiliser la nouvelle version.",
|
|
3717
|
+
"command.selfUpdate.manualHint": "Vous pouvez mettre \xE0 jour manuellement avec : npm install -g pcu@latest",
|
|
3709
3718
|
// AI command
|
|
3710
3719
|
"command.ai.cacheCleared": "Cache d'analyse IA vid\xE9",
|
|
3711
3720
|
"command.ai.cacheStats": "Statistiques du cache d'analyse IA",
|
|
@@ -3830,7 +3839,8 @@ var fr = {
|
|
|
3830
3839
|
// CLI messages
|
|
3831
3840
|
"cli.runAgain": "Veuillez relancer la commande pour utiliser la version mise \xE0 jour.",
|
|
3832
3841
|
"cli.checkingUpdates": "Recherche de mises \xE0 jour...",
|
|
3833
|
-
"cli.latestVersion": "
|
|
3842
|
+
"cli.latestVersion": "est la derni\xE8re",
|
|
3843
|
+
"cli.available": "disponible",
|
|
3834
3844
|
"cli.unknownCommand": "Commande inconnue : {{command}}",
|
|
3835
3845
|
"cli.couldNotCheckUpdates": "Impossible de v\xE9rifier les mises \xE0 jour :",
|
|
3836
3846
|
"cli.error": "Erreur :",
|
|
@@ -4610,6 +4620,7 @@ var ja = {
|
|
|
4610
4620
|
"command.selfUpdate.failed": "pcu \u306E\u66F4\u65B0\u306B\u5931\u6557\u3057\u307E\u3057\u305F",
|
|
4611
4621
|
"command.selfUpdate.latestAlready": "\u65E2\u306B\u6700\u65B0\u30D0\u30FC\u30B8\u30E7\u30F3 ({{version}}) \u3092\u4F7F\u7528\u3057\u3066\u3044\u307E\u3059",
|
|
4612
4622
|
"command.selfUpdate.restartHint": "\u65B0\u3057\u3044\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u4F7F\u7528\u3059\u308B\u306B\u306F\u3001\u30BF\u30FC\u30DF\u30CA\u30EB\u3092\u518D\u8D77\u52D5\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
|
|
4623
|
+
"command.selfUpdate.manualHint": "\u624B\u52D5\u3067\u66F4\u65B0\u3059\u308B\u306B\u306F: npm install -g pcu@latest",
|
|
4613
4624
|
// AI command
|
|
4614
4625
|
"command.ai.cacheCleared": "AI \u5206\u6790\u30AD\u30E3\u30C3\u30B7\u30E5\u3092\u30AF\u30EA\u30A2\u3057\u307E\u3057\u305F",
|
|
4615
4626
|
"command.ai.cacheStats": "AI \u5206\u6790\u30AD\u30E3\u30C3\u30B7\u30E5\u7D71\u8A08",
|
|
@@ -4734,7 +4745,8 @@ var ja = {
|
|
|
4734
4745
|
// CLI messages
|
|
4735
4746
|
"cli.runAgain": "\u66F4\u65B0\u3055\u308C\u305F\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u4F7F\u7528\u3059\u308B\u306B\u306F\u3001\u30B3\u30DE\u30F3\u30C9\u3092\u518D\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
|
|
4736
4747
|
"cli.checkingUpdates": "\u66F4\u65B0\u3092\u78BA\u8A8D\u3057\u3066\u3044\u307E\u3059...",
|
|
4737
|
-
"cli.latestVersion": "\u6700\u65B0\
|
|
4748
|
+
"cli.latestVersion": "\u6700\u65B0\u7248\u3067\u3059",
|
|
4749
|
+
"cli.available": "\u5229\u7528\u53EF\u80FD",
|
|
4738
4750
|
"cli.unknownCommand": "\u4E0D\u660E\u306A\u30B3\u30DE\u30F3\u30C9: {{command}}",
|
|
4739
4751
|
"cli.couldNotCheckUpdates": "\u66F4\u65B0\u3092\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F:",
|
|
4740
4752
|
"cli.error": "\u30A8\u30E9\u30FC:",
|
|
@@ -5514,6 +5526,7 @@ var ko = {
|
|
|
5514
5526
|
"command.selfUpdate.failed": "pcu \uC5C5\uB370\uC774\uD2B8 \uC2E4\uD328",
|
|
5515
5527
|
"command.selfUpdate.latestAlready": "\uC774\uBBF8 \uCD5C\uC2E0 \uBC84\uC804 ({{version}})\uC744 \uC0AC\uC6A9 \uC911\uC785\uB2C8\uB2E4",
|
|
5516
5528
|
"command.selfUpdate.restartHint": "\uC0C8 \uBC84\uC804\uC744 \uC0AC\uC6A9\uD558\uB824\uBA74 \uD130\uBBF8\uB110\uC744 \uB2E4\uC2DC \uC2DC\uC791\uD558\uC138\uC694.",
|
|
5529
|
+
"command.selfUpdate.manualHint": "\uC218\uB3D9\uC73C\uB85C \uC5C5\uB370\uC774\uD2B8\uD558\uB824\uBA74: npm install -g pcu@latest",
|
|
5517
5530
|
// AI command
|
|
5518
5531
|
"command.ai.cacheCleared": "AI \uBD84\uC11D \uCE90\uC2DC \uC0AD\uC81C\uB428",
|
|
5519
5532
|
"command.ai.cacheStats": "AI \uBD84\uC11D \uCE90\uC2DC \uD1B5\uACC4",
|
|
@@ -5638,7 +5651,8 @@ var ko = {
|
|
|
5638
5651
|
// CLI messages
|
|
5639
5652
|
"cli.runAgain": "\uC5C5\uB370\uC774\uD2B8\uB41C \uBC84\uC804\uC744 \uC0AC\uC6A9\uD558\uB824\uBA74 \uBA85\uB839\uC744 \uB2E4\uC2DC \uC2E4\uD589\uD558\uC138\uC694.",
|
|
5640
5653
|
"cli.checkingUpdates": "\uC5C5\uB370\uC774\uD2B8 \uD655\uC778 \uC911...",
|
|
5641
|
-
"cli.latestVersion": "\uCD5C\uC2E0 \uBC84\uC804
|
|
5654
|
+
"cli.latestVersion": "\uCD5C\uC2E0 \uBC84\uC804",
|
|
5655
|
+
"cli.available": "\uC0AC\uC6A9 \uAC00\uB2A5",
|
|
5642
5656
|
"cli.unknownCommand": "\uC54C \uC218 \uC5C6\uB294 \uBA85\uB839: {{command}}",
|
|
5643
5657
|
"cli.couldNotCheckUpdates": "\uC5C5\uB370\uC774\uD2B8\uB97C \uD655\uC778\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4:",
|
|
5644
5658
|
"cli.error": "\uC624\uB958:",
|
|
@@ -6418,6 +6432,7 @@ var zh = {
|
|
|
6418
6432
|
"command.selfUpdate.failed": "\u66F4\u65B0 pcu \u5931\u8D25",
|
|
6419
6433
|
"command.selfUpdate.latestAlready": "\u60A8\u5DF2\u4F7F\u7528\u6700\u65B0\u7248\u672C ({{version}})",
|
|
6420
6434
|
"command.selfUpdate.restartHint": "\u8BF7\u91CD\u65B0\u542F\u52A8\u7EC8\u7AEF\u4EE5\u4F7F\u7528\u65B0\u7248\u672C\u3002",
|
|
6435
|
+
"command.selfUpdate.manualHint": "\u60A8\u53EF\u4EE5\u624B\u52A8\u66F4\u65B0\uFF1Anpm install -g pcu@latest",
|
|
6421
6436
|
// AI command
|
|
6422
6437
|
"command.ai.cacheCleared": "AI \u5206\u6790\u7F13\u5B58\u5DF2\u6E05\u9664",
|
|
6423
6438
|
"command.ai.cacheStats": "AI \u5206\u6790\u7F13\u5B58\u7EDF\u8BA1",
|
|
@@ -6542,7 +6557,8 @@ var zh = {
|
|
|
6542
6557
|
// CLI messages
|
|
6543
6558
|
"cli.runAgain": "\u8BF7\u91CD\u65B0\u8FD0\u884C\u547D\u4EE4\u4EE5\u4F7F\u7528\u66F4\u65B0\u540E\u7684\u7248\u672C\u3002",
|
|
6544
6559
|
"cli.checkingUpdates": "\u6B63\u5728\u68C0\u67E5\u66F4\u65B0...",
|
|
6545
|
-
"cli.latestVersion": "\
|
|
6560
|
+
"cli.latestVersion": "\u5DF2\u662F\u6700\u65B0",
|
|
6561
|
+
"cli.available": "\u53EF\u7528",
|
|
6546
6562
|
"cli.unknownCommand": "\u672A\u77E5\u547D\u4EE4\uFF1A{{command}}",
|
|
6547
6563
|
"cli.couldNotCheckUpdates": "\u65E0\u6CD5\u68C0\u67E5\u66F4\u65B0\uFF1A",
|
|
6548
6564
|
"cli.error": "\u9519\u8BEF\uFF1A",
|
|
@@ -7481,6 +7497,476 @@ var ErrorTracker = class _ErrorTracker {
|
|
|
7481
7497
|
return [..._ErrorTracker.skippedPackages];
|
|
7482
7498
|
}
|
|
7483
7499
|
};
|
|
7500
|
+
|
|
7501
|
+
// ../../packages/utils/src/error-handling/data/packageSuggestions.json
|
|
7502
|
+
var packageSuggestions_default = {
|
|
7503
|
+
sveltekit: ["@sveltejs/kit"],
|
|
7504
|
+
"vue-router": ["vue-router"],
|
|
7505
|
+
"vue-cli": ["@vue/cli"],
|
|
7506
|
+
"angular-cli": ["@angular/cli"],
|
|
7507
|
+
"angular-core": ["@angular/core"],
|
|
7508
|
+
"angular-universal": ["@nguniversal/express-engine", "@angular/universal"],
|
|
7509
|
+
"react-router": ["react-router-dom"],
|
|
7510
|
+
"react-dom": ["react-dom"],
|
|
7511
|
+
nextjs: ["next"],
|
|
7512
|
+
nuxtjs: ["nuxt"],
|
|
7513
|
+
"material-ui": ["@mui/material", "@material-ui/core"],
|
|
7514
|
+
mui: ["@mui/material"],
|
|
7515
|
+
antd: ["antd"],
|
|
7516
|
+
"ant-design": ["antd"],
|
|
7517
|
+
"prime-ng": ["primeng"],
|
|
7518
|
+
primeng: ["primeng"],
|
|
7519
|
+
"ng-zorro": ["ng-zorro-antd"],
|
|
7520
|
+
"bootstrap-vue": ["bootstrap-vue"],
|
|
7521
|
+
vuetify: ["vuetify"],
|
|
7522
|
+
quasar: ["quasar"],
|
|
7523
|
+
"onsen-ui": ["onsenui"],
|
|
7524
|
+
ionic: ["@ionic/angular", "@ionic/react", "@ionic/vue"],
|
|
7525
|
+
tailwindcss: ["tailwindcss"],
|
|
7526
|
+
tailwind: ["tailwindcss"],
|
|
7527
|
+
bulma: ["bulma"],
|
|
7528
|
+
"water-css": ["water.css"],
|
|
7529
|
+
"holiday-css": ["@holiday-css/main"],
|
|
7530
|
+
"wing-css": ["@wing-css/wing"],
|
|
7531
|
+
"picnic-css": ["picnicss"],
|
|
7532
|
+
webpack: ["webpack"],
|
|
7533
|
+
"webpack-cli": ["webpack-cli"],
|
|
7534
|
+
rollup: ["rollup"],
|
|
7535
|
+
vite: ["vite"],
|
|
7536
|
+
parcel: ["parcel"],
|
|
7537
|
+
esbuild: ["esbuild"],
|
|
7538
|
+
swc: ["@swc/core"],
|
|
7539
|
+
jest: ["jest"],
|
|
7540
|
+
vitest: ["vitest"],
|
|
7541
|
+
mocha: ["mocha"],
|
|
7542
|
+
chai: ["chai"],
|
|
7543
|
+
cypress: ["cypress"],
|
|
7544
|
+
playwright: ["@playwright/test"],
|
|
7545
|
+
puppeteer: ["puppeteer"],
|
|
7546
|
+
selenium: ["selenium-webdriver"],
|
|
7547
|
+
webdriver: ["selenium-webdriver"],
|
|
7548
|
+
lambdatest: ["@lambdatest/selenium-webdriver"],
|
|
7549
|
+
applitools: ["@applitools/eyes-selenium"],
|
|
7550
|
+
experitest: ["@experitest/seetest-client"],
|
|
7551
|
+
kobiton: ["@kobiton/api"],
|
|
7552
|
+
crossbrowsertesting: ["@crossbrowsertesting/selenium"],
|
|
7553
|
+
"aws-sdk": ["@aws-sdk/client-s3", "aws-sdk"],
|
|
7554
|
+
"aws-device-farm": ["@aws-sdk/client-device-farm"],
|
|
7555
|
+
firebase: ["firebase"],
|
|
7556
|
+
"firebase-test-lab": ["@google-cloud/testing"],
|
|
7557
|
+
azure: ["@azure/storage-blob", "@azure/cosmos"],
|
|
7558
|
+
"azure-devtest-labs": ["@azure/arm-devtestlabs"],
|
|
7559
|
+
gcp: ["@google-cloud/storage"],
|
|
7560
|
+
mongoose: ["mongoose"],
|
|
7561
|
+
sequelize: ["sequelize"],
|
|
7562
|
+
typeorm: ["typeorm"],
|
|
7563
|
+
prisma: ["@prisma/client"],
|
|
7564
|
+
knex: ["knex"],
|
|
7565
|
+
pg: ["pg"],
|
|
7566
|
+
mysql: ["mysql2"],
|
|
7567
|
+
sqlite: ["sqlite3", "better-sqlite3"],
|
|
7568
|
+
redis: ["redis"],
|
|
7569
|
+
mongodb: ["mongodb"],
|
|
7570
|
+
lodash: ["lodash"],
|
|
7571
|
+
loadash: ["lodash"],
|
|
7572
|
+
underscore: ["underscore"],
|
|
7573
|
+
ramda: ["ramda"],
|
|
7574
|
+
rxjs: ["rxjs"],
|
|
7575
|
+
axios: ["axios"],
|
|
7576
|
+
axois: ["axios"],
|
|
7577
|
+
fetch: ["node-fetch"],
|
|
7578
|
+
"node-fetch": ["node-fetch"],
|
|
7579
|
+
request: ["axios", "node-fetch"],
|
|
7580
|
+
superagent: ["superagent"],
|
|
7581
|
+
moment: ["moment"],
|
|
7582
|
+
momentjs: ["moment"],
|
|
7583
|
+
dayjs: ["dayjs"],
|
|
7584
|
+
"date-fns": ["date-fns"],
|
|
7585
|
+
luxon: ["luxon"],
|
|
7586
|
+
eslint: ["eslint"],
|
|
7587
|
+
prettier: ["prettier"],
|
|
7588
|
+
tslint: ["@typescript-eslint/eslint-plugin"],
|
|
7589
|
+
"typescript-eslint": [
|
|
7590
|
+
"@typescript-eslint/eslint-plugin",
|
|
7591
|
+
"@typescript-eslint/parser"
|
|
7592
|
+
],
|
|
7593
|
+
"types-node": ["@types/node"],
|
|
7594
|
+
"@types-node": ["@types/node"],
|
|
7595
|
+
"types-react": ["@types/react"],
|
|
7596
|
+
"types-express": ["@types/express"],
|
|
7597
|
+
express: ["express"],
|
|
7598
|
+
expressjs: ["express"],
|
|
7599
|
+
fastify: ["fastify"],
|
|
7600
|
+
koa: ["koa"],
|
|
7601
|
+
nestjs: ["@nestjs/core"],
|
|
7602
|
+
nest: ["@nestjs/core"],
|
|
7603
|
+
hapi: ["@hapi/hapi"],
|
|
7604
|
+
redux: ["redux"],
|
|
7605
|
+
mobx: ["mobx"],
|
|
7606
|
+
vuex: ["vuex"],
|
|
7607
|
+
pinia: ["pinia"],
|
|
7608
|
+
zustand: ["zustand"],
|
|
7609
|
+
recoil: ["recoil"],
|
|
7610
|
+
"styled-components": ["styled-components"],
|
|
7611
|
+
"styled-component": ["styled-components"],
|
|
7612
|
+
emotion: ["@emotion/react"],
|
|
7613
|
+
sass: ["sass"],
|
|
7614
|
+
"node-sass": ["sass"],
|
|
7615
|
+
less: ["less"],
|
|
7616
|
+
stylus: ["stylus"],
|
|
7617
|
+
forestadmin: ["forest-express", "forest-express-sequelize"],
|
|
7618
|
+
strapi: ["@strapi/strapi"],
|
|
7619
|
+
keystone: ["@keystone-6/core"],
|
|
7620
|
+
ghost: ["ghost"],
|
|
7621
|
+
storybook: ["@storybook/react", "@storybook/vue3"],
|
|
7622
|
+
docusaurus: ["@docusaurus/core"],
|
|
7623
|
+
gitbook: ["@gitbook/cli"],
|
|
7624
|
+
typedoc: ["typedoc"],
|
|
7625
|
+
electron: ["electron"],
|
|
7626
|
+
tauri: ["@tauri-apps/api"],
|
|
7627
|
+
nwjs: ["nw"],
|
|
7628
|
+
"react-native": ["react-native"],
|
|
7629
|
+
expo: ["expo"],
|
|
7630
|
+
cordova: ["cordova"],
|
|
7631
|
+
phonegap: ["phonegap"],
|
|
7632
|
+
jquery: ["jquery"],
|
|
7633
|
+
boostrap: ["bootstrap"],
|
|
7634
|
+
bootstrap: ["bootstrap"],
|
|
7635
|
+
fontawesome: ["@fortawesome/fontawesome-free"],
|
|
7636
|
+
"font-awesome": ["@fortawesome/fontawesome-free"],
|
|
7637
|
+
"react-i18n": ["react-i18next"],
|
|
7638
|
+
i18n: ["i18next"],
|
|
7639
|
+
i18next: ["i18next"],
|
|
7640
|
+
"vue-i18n": ["vue-i18n"],
|
|
7641
|
+
"react-intl": ["react-intl"],
|
|
7642
|
+
intl: ["intl"],
|
|
7643
|
+
chart: ["chart.js"],
|
|
7644
|
+
chartjs: ["chart.js"],
|
|
7645
|
+
"chart.js": ["chart.js"],
|
|
7646
|
+
d3: ["d3"],
|
|
7647
|
+
d3js: ["d3"],
|
|
7648
|
+
plotly: ["plotly.js"],
|
|
7649
|
+
echarts: ["echarts"],
|
|
7650
|
+
highcharts: ["highcharts"],
|
|
7651
|
+
recharts: ["recharts"],
|
|
7652
|
+
victory: ["victory"],
|
|
7653
|
+
nivo: ["@nivo/core"],
|
|
7654
|
+
observable: ["@observablehq/plot"],
|
|
7655
|
+
"socket.io": ["socket.io"],
|
|
7656
|
+
socketio: ["socket.io"],
|
|
7657
|
+
websocket: ["ws"],
|
|
7658
|
+
ws: ["ws"],
|
|
7659
|
+
webrtc: ["simple-peer"],
|
|
7660
|
+
peer: ["peerjs"],
|
|
7661
|
+
peerjs: ["peerjs"],
|
|
7662
|
+
signalr: ["@microsoft/signalr"],
|
|
7663
|
+
web3: ["web3"],
|
|
7664
|
+
web3js: ["web3"],
|
|
7665
|
+
ethers: ["ethers"],
|
|
7666
|
+
ethersjs: ["ethers"],
|
|
7667
|
+
ethereum: ["web3", "ethers"],
|
|
7668
|
+
metamask: ["@metamask/sdk"],
|
|
7669
|
+
wagmi: ["wagmi"],
|
|
7670
|
+
"rainbow-kit": ["@rainbow-me/rainbowkit"],
|
|
7671
|
+
"wallet-connect": ["@walletconnect/client"],
|
|
7672
|
+
tensorflow: ["@tensorflow/tfjs"],
|
|
7673
|
+
tensorflowjs: ["@tensorflow/tfjs"],
|
|
7674
|
+
tfjs: ["@tensorflow/tfjs"],
|
|
7675
|
+
brain: ["brain.js"],
|
|
7676
|
+
brainjs: ["brain.js"],
|
|
7677
|
+
synaptic: ["synaptic"],
|
|
7678
|
+
"ml-matrix": ["ml-matrix"],
|
|
7679
|
+
opencv: ["opencv4nodejs"],
|
|
7680
|
+
sharp: ["sharp"],
|
|
7681
|
+
jimp: ["jimp"],
|
|
7682
|
+
canvas: ["canvas"],
|
|
7683
|
+
fabric: ["fabric"],
|
|
7684
|
+
fabricjs: ["fabric"],
|
|
7685
|
+
konva: ["konva"],
|
|
7686
|
+
konvajs: ["konva"],
|
|
7687
|
+
p5: ["p5"],
|
|
7688
|
+
p5js: ["p5"],
|
|
7689
|
+
three: ["three"],
|
|
7690
|
+
threejs: ["three"],
|
|
7691
|
+
howler: ["howler"],
|
|
7692
|
+
howlerjs: ["howler"],
|
|
7693
|
+
tone: ["tone"],
|
|
7694
|
+
tonejs: ["tone"],
|
|
7695
|
+
video: ["video.js"],
|
|
7696
|
+
videojs: ["video.js"],
|
|
7697
|
+
hls: ["hls.js"],
|
|
7698
|
+
hlsjs: ["hls.js"],
|
|
7699
|
+
dash: ["dashjs"],
|
|
7700
|
+
dashjs: ["dashjs"],
|
|
7701
|
+
phaser: ["phaser"],
|
|
7702
|
+
phaserjs: ["phaser"],
|
|
7703
|
+
pixijs: ["pixi.js"],
|
|
7704
|
+
pixi: ["pixi.js"],
|
|
7705
|
+
babylonjs: ["babylonjs"],
|
|
7706
|
+
babylon: ["babylonjs"],
|
|
7707
|
+
aframe: ["aframe"],
|
|
7708
|
+
"johnny-five": ["johnny-five"],
|
|
7709
|
+
arduino: ["johnny-five"],
|
|
7710
|
+
"raspberry-pi": ["raspi"],
|
|
7711
|
+
raspi: ["raspi"],
|
|
7712
|
+
serialport: ["serialport"],
|
|
7713
|
+
noble: ["noble"],
|
|
7714
|
+
bluetooth: ["noble"],
|
|
7715
|
+
workbox: ["workbox-webpack-plugin"],
|
|
7716
|
+
"sw-precache": ["workbox-webpack-plugin"],
|
|
7717
|
+
"service-worker": ["workbox-webpack-plugin"],
|
|
7718
|
+
pwa: ["workbox-webpack-plugin"],
|
|
7719
|
+
leaflet: ["leaflet"],
|
|
7720
|
+
mapbox: ["mapbox-gl"],
|
|
7721
|
+
"google-maps": ["@googlemaps/js-api-loader"],
|
|
7722
|
+
googlemaps: ["@googlemaps/js-api-loader"],
|
|
7723
|
+
openlayers: ["ol"],
|
|
7724
|
+
ol: ["ol"],
|
|
7725
|
+
gsap: ["gsap"],
|
|
7726
|
+
anime: ["animejs"],
|
|
7727
|
+
animejs: ["animejs"],
|
|
7728
|
+
lottie: ["lottie-web"],
|
|
7729
|
+
"lottie-web": ["lottie-web"],
|
|
7730
|
+
"framer-motion": ["framer-motion"],
|
|
7731
|
+
"react-spring": ["react-spring"],
|
|
7732
|
+
formik: ["formik"],
|
|
7733
|
+
"react-hook-form": ["react-hook-form"],
|
|
7734
|
+
yup: ["yup"],
|
|
7735
|
+
joi: ["joi"],
|
|
7736
|
+
ajv: ["ajv"],
|
|
7737
|
+
zod: ["zod"],
|
|
7738
|
+
superstruct: ["superstruct"],
|
|
7739
|
+
quill: ["quill"],
|
|
7740
|
+
quilljs: ["quill"],
|
|
7741
|
+
tinymce: ["tinymce"],
|
|
7742
|
+
ckeditor: ["@ckeditor/ckeditor5-build-classic"],
|
|
7743
|
+
slate: ["slate"],
|
|
7744
|
+
slatejs: ["slate"],
|
|
7745
|
+
draft: ["draft-js"],
|
|
7746
|
+
draftjs: ["draft-js"],
|
|
7747
|
+
monaco: ["monaco-editor"],
|
|
7748
|
+
"monaco-editor": ["monaco-editor"],
|
|
7749
|
+
apollo: ["@apollo/client"],
|
|
7750
|
+
"apollo-client": ["@apollo/client"],
|
|
7751
|
+
graphql: ["graphql"],
|
|
7752
|
+
relay: ["react-relay"],
|
|
7753
|
+
urql: ["urql"],
|
|
7754
|
+
swr: ["swr"],
|
|
7755
|
+
"react-query": ["@tanstack/react-query"],
|
|
7756
|
+
"tanstack-query": ["@tanstack/react-query"],
|
|
7757
|
+
reac: ["react"],
|
|
7758
|
+
reactjs: ["react"],
|
|
7759
|
+
veu: ["vue"],
|
|
7760
|
+
vuejs: ["vue"],
|
|
7761
|
+
angualr: ["@angular/core"],
|
|
7762
|
+
svelt: ["svelte"],
|
|
7763
|
+
sveltte: ["svelte"],
|
|
7764
|
+
typescirpt: ["typescript"],
|
|
7765
|
+
typescript: ["typescript"],
|
|
7766
|
+
javasript: ["node"],
|
|
7767
|
+
javascript: ["node"],
|
|
7768
|
+
docker: ["dockerode"],
|
|
7769
|
+
k8s: ["@kubernetes/client-node"],
|
|
7770
|
+
kubernetes: ["@kubernetes/client-node"],
|
|
7771
|
+
kubectl: ["@kubernetes/client-node"],
|
|
7772
|
+
helm: ["@helm/sdk"],
|
|
7773
|
+
jenkins: ["jenkins"],
|
|
7774
|
+
circleci: ["@circleci/circleci-config-sdk"],
|
|
7775
|
+
"github-actions": ["@actions/core", "@actions/github"],
|
|
7776
|
+
"gitlab-ci": ["@gitbeaker/node"],
|
|
7777
|
+
travis: ["@travis-ci/travis-yml"],
|
|
7778
|
+
terraform: ["@cdktf/provider-aws"],
|
|
7779
|
+
ansible: ["@ansible/galaxy"],
|
|
7780
|
+
vagrant: ["vagrant"],
|
|
7781
|
+
consul: ["consul"],
|
|
7782
|
+
vault: ["node-vault"],
|
|
7783
|
+
nomad: ["nomad-client"],
|
|
7784
|
+
winston: ["winston"],
|
|
7785
|
+
morgan: ["morgan"],
|
|
7786
|
+
pino: ["pino"],
|
|
7787
|
+
bunyan: ["bunyan"],
|
|
7788
|
+
log4js: ["log4js"],
|
|
7789
|
+
sentry: ["@sentry/node", "@sentry/react"],
|
|
7790
|
+
bugsnag: ["@bugsnag/js"],
|
|
7791
|
+
rollbar: ["rollbar"],
|
|
7792
|
+
newrelic: ["newrelic"],
|
|
7793
|
+
datadog: ["@datadog/browser-rum"],
|
|
7794
|
+
prometheus: ["prom-client"],
|
|
7795
|
+
grafana: ["@grafana/toolkit"],
|
|
7796
|
+
elastic: ["@elastic/elasticsearch"],
|
|
7797
|
+
elasticsearch: ["@elastic/elasticsearch"],
|
|
7798
|
+
kibana: ["@elastic/kibana-utils"],
|
|
7799
|
+
logstash: ["@elastic/logstash"],
|
|
7800
|
+
microservices: ["express"],
|
|
7801
|
+
"service-mesh": ["istio"],
|
|
7802
|
+
envoy: ["envoy"],
|
|
7803
|
+
istio: ["istio"],
|
|
7804
|
+
linkerd: ["linkerd"],
|
|
7805
|
+
"consul-connect": ["consul"],
|
|
7806
|
+
eureka: ["eureka-js-client"],
|
|
7807
|
+
zookeeper: ["node-zookeeper-client"],
|
|
7808
|
+
etcd: ["etcd3"],
|
|
7809
|
+
grpc: ["@grpc/grpc-js"],
|
|
7810
|
+
protobuf: ["protobufjs"],
|
|
7811
|
+
memcached: ["memcached"],
|
|
7812
|
+
"node-cache": ["node-cache"],
|
|
7813
|
+
"memory-cache": ["memory-cache"],
|
|
7814
|
+
"lru-cache": ["lru-cache"],
|
|
7815
|
+
"cache-manager": ["cache-manager"],
|
|
7816
|
+
ioredis: ["ioredis"],
|
|
7817
|
+
hazelcast: ["hazelcast-client"],
|
|
7818
|
+
rabbitmq: ["amqplib"],
|
|
7819
|
+
kafka: ["kafkajs"],
|
|
7820
|
+
"apache-kafka": ["kafkajs"],
|
|
7821
|
+
bull: ["bull"],
|
|
7822
|
+
bullmq: ["bullmq"],
|
|
7823
|
+
"bee-queue": ["bee-queue"],
|
|
7824
|
+
kue: ["kue"],
|
|
7825
|
+
agenda: ["agenda"],
|
|
7826
|
+
amqp: ["amqplib"],
|
|
7827
|
+
mqtt: ["mqtt"],
|
|
7828
|
+
nats: ["nats"],
|
|
7829
|
+
zeromq: ["zeromq"],
|
|
7830
|
+
zmq: ["zeromq"],
|
|
7831
|
+
solr: ["solr-client"],
|
|
7832
|
+
algolia: ["algoliasearch"],
|
|
7833
|
+
sphinx: ["sphinxapi"],
|
|
7834
|
+
lucene: ["lucene"],
|
|
7835
|
+
whoosh: ["whoosh"],
|
|
7836
|
+
meilisearch: ["meilisearch"],
|
|
7837
|
+
typesense: ["typesense"],
|
|
7838
|
+
multer: ["multer"],
|
|
7839
|
+
formidable: ["formidable"],
|
|
7840
|
+
busboy: ["busboy"],
|
|
7841
|
+
multiparty: ["multiparty"],
|
|
7842
|
+
"file-upload": ["express-fileupload"],
|
|
7843
|
+
cloudinary: ["cloudinary"],
|
|
7844
|
+
"aws-s3": ["@aws-sdk/client-s3"],
|
|
7845
|
+
bcrypt: ["bcrypt"],
|
|
7846
|
+
bcryptjs: ["bcryptjs"],
|
|
7847
|
+
crypto: ["crypto-js"],
|
|
7848
|
+
"crypto-js": ["crypto-js"],
|
|
7849
|
+
jsonwebtoken: ["jsonwebtoken"],
|
|
7850
|
+
jwt: ["jsonwebtoken"],
|
|
7851
|
+
passport: ["passport"],
|
|
7852
|
+
helmet: ["helmet"],
|
|
7853
|
+
cors: ["cors"],
|
|
7854
|
+
"express-rate-limit": ["express-rate-limit"],
|
|
7855
|
+
"rate-limiter": ["express-rate-limit"],
|
|
7856
|
+
argon2: ["argon2"],
|
|
7857
|
+
scrypt: ["scrypt"],
|
|
7858
|
+
"node-rsa": ["node-rsa"],
|
|
7859
|
+
speakeasy: ["speakeasy"],
|
|
7860
|
+
otplib: ["otplib"],
|
|
7861
|
+
nodemailer: ["nodemailer"],
|
|
7862
|
+
sendgrid: ["@sendgrid/mail"],
|
|
7863
|
+
mailgun: ["mailgun.js"],
|
|
7864
|
+
ses: ["@aws-sdk/client-ses"],
|
|
7865
|
+
postmark: ["postmark"],
|
|
7866
|
+
sparkpost: ["sparkpost"],
|
|
7867
|
+
mandrill: ["mandrill-api"],
|
|
7868
|
+
mailchimp: ["@mailchimp/mailchimp_marketing"],
|
|
7869
|
+
"email-templates": ["email-templates"],
|
|
7870
|
+
handlebars: ["handlebars"],
|
|
7871
|
+
hbs: ["hbs"],
|
|
7872
|
+
mustache: ["mustache"],
|
|
7873
|
+
pug: ["pug"],
|
|
7874
|
+
jade: ["pug"],
|
|
7875
|
+
ejs: ["ejs"],
|
|
7876
|
+
nunjucks: ["nunjucks"],
|
|
7877
|
+
twig: ["twig"],
|
|
7878
|
+
dust: ["dustjs-linkedin"],
|
|
7879
|
+
serverless: ["serverless"],
|
|
7880
|
+
sls: ["serverless"],
|
|
7881
|
+
lambda: ["aws-lambda"],
|
|
7882
|
+
"azure-functions": ["@azure/functions"],
|
|
7883
|
+
"google-functions": ["@google-cloud/functions-framework"],
|
|
7884
|
+
"netlify-lambda": ["netlify-lambda"],
|
|
7885
|
+
vercel: ["@vercel/node"],
|
|
7886
|
+
claudia: ["claudia"],
|
|
7887
|
+
apex: ["apex"],
|
|
7888
|
+
sam: ["@aws-cdk/aws-sam"],
|
|
7889
|
+
couchdb: ["nano"],
|
|
7890
|
+
pouchdb: ["pouchdb"],
|
|
7891
|
+
neo4j: ["neo4j-driver"],
|
|
7892
|
+
influxdb: ["influx"],
|
|
7893
|
+
cassandra: ["cassandra-driver"],
|
|
7894
|
+
rethinkdb: ["rethinkdb"],
|
|
7895
|
+
orientdb: ["orientjs"],
|
|
7896
|
+
arangodb: ["arangojs"],
|
|
7897
|
+
leveldb: ["level"],
|
|
7898
|
+
rocksdb: ["rocksdb"],
|
|
7899
|
+
mariadb: ["mariadb"],
|
|
7900
|
+
cockroachdb: ["pg"],
|
|
7901
|
+
heroku: ["heroku"],
|
|
7902
|
+
digitalocean: ["@digitalocean/droplet-api"],
|
|
7903
|
+
linode: ["@linode/api-v4"],
|
|
7904
|
+
vultr: ["@vultr/vultr-node"],
|
|
7905
|
+
scaleway: ["@scaleway/sdk"],
|
|
7906
|
+
ovh: ["ovh"],
|
|
7907
|
+
cloudflare: ["cloudflare"],
|
|
7908
|
+
fastly: ["fastly"],
|
|
7909
|
+
maxcdn: ["maxcdn"],
|
|
7910
|
+
bunnycdn: ["bunnycdn"],
|
|
7911
|
+
lighthouse: ["lighthouse"],
|
|
7912
|
+
webpagetest: ["webpagetest"],
|
|
7913
|
+
clinic: ["clinic"],
|
|
7914
|
+
"0x": ["0x"],
|
|
7915
|
+
autocannon: ["autocannon"],
|
|
7916
|
+
loadtest: ["loadtest"],
|
|
7917
|
+
artillery: ["artillery"],
|
|
7918
|
+
k6: ["k6"],
|
|
7919
|
+
benchmark: ["benchmark"],
|
|
7920
|
+
"clinic.js": ["clinic"],
|
|
7921
|
+
"node.js": ["node"],
|
|
7922
|
+
nodejs: ["node"],
|
|
7923
|
+
npm: ["npm"],
|
|
7924
|
+
yarn: ["yarn"],
|
|
7925
|
+
pnpm: ["pnpm"],
|
|
7926
|
+
bun: ["bun"],
|
|
7927
|
+
deno: ["deno"],
|
|
7928
|
+
js: ["javascript"],
|
|
7929
|
+
ts: ["typescript"],
|
|
7930
|
+
html: ["html"],
|
|
7931
|
+
css: ["css"],
|
|
7932
|
+
json: ["json"],
|
|
7933
|
+
xml: ["xml2js"],
|
|
7934
|
+
yaml: ["yaml"],
|
|
7935
|
+
toml: ["@iarna/toml"],
|
|
7936
|
+
ini: ["ini"],
|
|
7937
|
+
csv: ["csv-parser", "papaparse"],
|
|
7938
|
+
pdf: ["pdf2pic", "pdfkit"],
|
|
7939
|
+
excel: ["xlsx"],
|
|
7940
|
+
word: ["mammoth"],
|
|
7941
|
+
zip: ["node-zip"],
|
|
7942
|
+
tar: ["tar"],
|
|
7943
|
+
gzip: ["zlib"],
|
|
7944
|
+
cheerio: ["cheerio"],
|
|
7945
|
+
jsdom: ["jsdom"],
|
|
7946
|
+
xml2js: ["xml2js"],
|
|
7947
|
+
"csv-parse": ["csv-parse"],
|
|
7948
|
+
papaparse: ["papaparse"],
|
|
7949
|
+
"fast-csv": ["fast-csv"],
|
|
7950
|
+
xlsx: ["xlsx"],
|
|
7951
|
+
pdfkit: ["pdfkit"],
|
|
7952
|
+
jspdf: ["jspdf"],
|
|
7953
|
+
mammoth: ["mammoth"],
|
|
7954
|
+
"pdf-parse": ["pdf-parse"],
|
|
7955
|
+
commander: ["commander"],
|
|
7956
|
+
yargs: ["yargs"],
|
|
7957
|
+
inquirer: ["inquirer"],
|
|
7958
|
+
chalk: ["chalk"],
|
|
7959
|
+
ora: ["ora"],
|
|
7960
|
+
"cli-progress": ["cli-progress"],
|
|
7961
|
+
figlet: ["figlet"],
|
|
7962
|
+
boxen: ["boxen"],
|
|
7963
|
+
"update-notifier": ["update-notifier"],
|
|
7964
|
+
meow: ["meow"],
|
|
7965
|
+
arg: ["arg"],
|
|
7966
|
+
minimist: ["minimist"]
|
|
7967
|
+
};
|
|
7968
|
+
|
|
7969
|
+
// ../../packages/utils/src/error-handling/userFriendlyErrorHandler.ts
|
|
7484
7970
|
var ERROR_PATTERNS = {
|
|
7485
7971
|
NOT_FOUND: ["404", "Not found", "ENOTFOUND", "not found"],
|
|
7486
7972
|
TIMEOUT: ["timeout", "ETIMEDOUT", "ESOCKETTIMEDOUT", "ECONNRESET"],
|
|
@@ -7491,32 +7977,11 @@ function matchesErrorPattern(message, patterns) {
|
|
|
7491
7977
|
return patterns.some((pattern) => lowerMessage.includes(pattern.toLowerCase()));
|
|
7492
7978
|
}
|
|
7493
7979
|
var _packageSuggestions = null;
|
|
7494
|
-
var _preloadPromise = null;
|
|
7495
7980
|
async function preloadPackageSuggestions() {
|
|
7496
7981
|
if (_packageSuggestions !== null) {
|
|
7497
7982
|
return;
|
|
7498
7983
|
}
|
|
7499
|
-
|
|
7500
|
-
return _preloadPromise;
|
|
7501
|
-
}
|
|
7502
|
-
_preloadPromise = (async () => {
|
|
7503
|
-
try {
|
|
7504
|
-
const __filename2 = fileURLToPath(import.meta.url);
|
|
7505
|
-
const __dirname2 = dirname(__filename2);
|
|
7506
|
-
const dataPath = join(__dirname2, "data", "packageSuggestions.json");
|
|
7507
|
-
const content = await readFile(dataPath, "utf-8");
|
|
7508
|
-
const data = JSON.parse(content);
|
|
7509
|
-
_packageSuggestions = new Map(Object.entries(data));
|
|
7510
|
-
} catch (error) {
|
|
7511
|
-
const logger2 = Logger.getLogger("ErrorHandler");
|
|
7512
|
-
logger2.warn("Failed to load package suggestions file", {
|
|
7513
|
-
error: error instanceof Error ? error.message : String(error),
|
|
7514
|
-
hint: "Package name suggestions will be unavailable"
|
|
7515
|
-
});
|
|
7516
|
-
_packageSuggestions = /* @__PURE__ */ new Map();
|
|
7517
|
-
}
|
|
7518
|
-
})();
|
|
7519
|
-
return _preloadPromise;
|
|
7984
|
+
_packageSuggestions = new Map(Object.entries(packageSuggestions_default));
|
|
7520
7985
|
}
|
|
7521
7986
|
function getPackageSuggestions() {
|
|
7522
7987
|
if (_packageSuggestions !== null) {
|
|
@@ -8604,6 +9069,8 @@ var RateLimiter = class {
|
|
|
8604
9069
|
this.tokens = maxBurst;
|
|
8605
9070
|
this.lastRefill = Date.now();
|
|
8606
9071
|
}
|
|
9072
|
+
tokensPerSecond;
|
|
9073
|
+
maxBurst;
|
|
8607
9074
|
tokens;
|
|
8608
9075
|
lastRefill;
|
|
8609
9076
|
/**
|
|
@@ -8763,16 +9230,14 @@ var VersionChecker = class _VersionChecker {
|
|
|
8763
9230
|
}
|
|
8764
9231
|
/**
|
|
8765
9232
|
* Perform update without prompting
|
|
9233
|
+
* Note: Logging is handled by the CLI layer with i18n support
|
|
8766
9234
|
*/
|
|
8767
9235
|
static async performUpdateAction() {
|
|
8768
|
-
logger.info(chalk10.blue("\u{1F504} Updating pcu..."));
|
|
8769
9236
|
try {
|
|
8770
9237
|
await _VersionChecker.performUpdate();
|
|
8771
|
-
logger.info(chalk10.green("\u2705 Successfully updated! Please restart the command."));
|
|
8772
9238
|
return true;
|
|
8773
9239
|
} catch (error) {
|
|
8774
|
-
logger.
|
|
8775
|
-
logger.info(chalk10.gray("You can manually update with: npm install -g pcu@latest"));
|
|
9240
|
+
logger.debug("Update failed", error instanceof Error ? error : void 0);
|
|
8776
9241
|
return false;
|
|
8777
9242
|
}
|
|
8778
9243
|
}
|
|
@@ -11727,6 +12192,12 @@ var AIAnalysisService = class {
|
|
|
11727
12192
|
* Get available AI providers
|
|
11728
12193
|
*/
|
|
11729
12194
|
async getAvailableProviders() {
|
|
12195
|
+
if (this.providersInitialized) {
|
|
12196
|
+
const providerInfos = await Promise.all(
|
|
12197
|
+
Array.from(this.providers.values()).map((provider) => provider.getInfo())
|
|
12198
|
+
);
|
|
12199
|
+
return providerInfos.filter((provider) => provider.available).sort((a, b) => b.priority - a.priority);
|
|
12200
|
+
}
|
|
11730
12201
|
return this.detector.getAvailableProviders();
|
|
11731
12202
|
}
|
|
11732
12203
|
/**
|
|
@@ -12904,12 +13375,21 @@ var CatalogCheckService = class {
|
|
|
12904
13375
|
this.workspaceRepository = workspaceRepository;
|
|
12905
13376
|
this.registryService = registryService;
|
|
12906
13377
|
}
|
|
13378
|
+
workspaceRepository;
|
|
13379
|
+
registryService;
|
|
12907
13380
|
/**
|
|
12908
13381
|
* Check for outdated catalog dependencies
|
|
12909
13382
|
*/
|
|
12910
13383
|
async checkOutdatedDependencies(options = {}) {
|
|
12911
13384
|
const workspacePath = WorkspacePath.fromString(options.workspacePath || process.cwd());
|
|
12912
13385
|
const config = await ConfigLoader.loadConfig(workspacePath.toString());
|
|
13386
|
+
const configWithOptions = {
|
|
13387
|
+
...config,
|
|
13388
|
+
defaults: {
|
|
13389
|
+
...config.defaults,
|
|
13390
|
+
...options
|
|
13391
|
+
}
|
|
13392
|
+
};
|
|
12913
13393
|
const workspace = await this.workspaceRepository.getByPath(workspacePath);
|
|
12914
13394
|
const catalogs = workspace.getCatalogs();
|
|
12915
13395
|
const catalogInfos = [];
|
|
@@ -12921,7 +13401,10 @@ var CatalogCheckService = class {
|
|
|
12921
13401
|
}
|
|
12922
13402
|
throw new CatalogNotFoundError("default", []);
|
|
12923
13403
|
}
|
|
12924
|
-
const filteredPackagesByCatalog = this.getFilteredPackagesFromCatalogs(
|
|
13404
|
+
const filteredPackagesByCatalog = this.getFilteredPackagesFromCatalogs(
|
|
13405
|
+
catalogsToCheck,
|
|
13406
|
+
configWithOptions
|
|
13407
|
+
);
|
|
12925
13408
|
let totalPackages = 0;
|
|
12926
13409
|
for (const packages of filteredPackagesByCatalog.values()) {
|
|
12927
13410
|
totalPackages += packages.length;
|
|
@@ -13170,8 +13653,9 @@ var CatalogCheckService = class {
|
|
|
13170
13653
|
return diff === "minor" || diff === "patch" || diff === "same";
|
|
13171
13654
|
}
|
|
13172
13655
|
return false;
|
|
13173
|
-
} catch {
|
|
13174
|
-
|
|
13656
|
+
} catch (error) {
|
|
13657
|
+
logger.error(String(error));
|
|
13658
|
+
throw error;
|
|
13175
13659
|
}
|
|
13176
13660
|
});
|
|
13177
13661
|
if (compatibleVersions.length === 0) {
|
|
@@ -13730,13 +14214,13 @@ var NpmRegistryService = class _NpmRegistryService {
|
|
|
13730
14214
|
}
|
|
13731
14215
|
try {
|
|
13732
14216
|
const auditData = {
|
|
13733
|
-
|
|
13734
|
-
|
|
13735
|
-
|
|
13736
|
-
|
|
14217
|
+
query: {
|
|
14218
|
+
name: packageName,
|
|
14219
|
+
version
|
|
14220
|
+
}
|
|
13737
14221
|
};
|
|
13738
14222
|
const authConfig = this.getAuthConfig(registryUrl);
|
|
13739
|
-
const response = await npmRegistryFetch("
|
|
14223
|
+
const response = await npmRegistryFetch("/v1/advisories/bulk", {
|
|
13740
14224
|
method: "POST",
|
|
13741
14225
|
body: JSON.stringify(auditData),
|
|
13742
14226
|
headers: {
|
|
@@ -13749,17 +14233,20 @@ var NpmRegistryService = class _NpmRegistryService {
|
|
|
13749
14233
|
const auditResult = await response.json();
|
|
13750
14234
|
const vulnerabilities = [];
|
|
13751
14235
|
if (auditResult.advisories) {
|
|
13752
|
-
for (const
|
|
13753
|
-
|
|
13754
|
-
|
|
13755
|
-
|
|
13756
|
-
|
|
13757
|
-
|
|
13758
|
-
|
|
13759
|
-
|
|
13760
|
-
|
|
13761
|
-
|
|
13762
|
-
|
|
14236
|
+
for (const [_pkgName, advisories] of Object.entries(auditResult.advisories)) {
|
|
14237
|
+
const advisoryList = Array.isArray(advisories) ? advisories : [advisories];
|
|
14238
|
+
for (const advisory of advisoryList) {
|
|
14239
|
+
vulnerabilities.push({
|
|
14240
|
+
id: advisory.id.toString(),
|
|
14241
|
+
title: advisory.title,
|
|
14242
|
+
severity: advisory.severity,
|
|
14243
|
+
description: advisory.overview,
|
|
14244
|
+
reference: advisory.url,
|
|
14245
|
+
vulnerable_versions: advisory.vulnerable_versions,
|
|
14246
|
+
patched_versions: advisory.patched_versions,
|
|
14247
|
+
recommendation: advisory.recommendation
|
|
14248
|
+
});
|
|
14249
|
+
}
|
|
13763
14250
|
}
|
|
13764
14251
|
}
|
|
13765
14252
|
const securityReport = {
|
|
@@ -13953,6 +14440,7 @@ var ImpactAnalysisService = class {
|
|
|
13953
14440
|
constructor(registryService) {
|
|
13954
14441
|
this.registryService = registryService;
|
|
13955
14442
|
}
|
|
14443
|
+
registryService;
|
|
13956
14444
|
/**
|
|
13957
14445
|
* Analyze security impact of version change
|
|
13958
14446
|
*/
|
|
@@ -13981,12 +14469,11 @@ var ImpactAnalysisService = class {
|
|
|
13981
14469
|
};
|
|
13982
14470
|
} catch (error) {
|
|
13983
14471
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
13984
|
-
|
|
13985
|
-
|
|
13986
|
-
|
|
13987
|
-
|
|
13988
|
-
|
|
13989
|
-
});
|
|
14472
|
+
const isTransient = errorMessage.includes("timeout") || errorMessage.includes("ECONNREFUSED") || errorMessage.includes("ETIMEDOUT") || errorMessage.toLowerCase().includes("network");
|
|
14473
|
+
if (!isTransient) {
|
|
14474
|
+
logger.error(`Non-transient security analysis error for ${packageName}: ${errorMessage}`);
|
|
14475
|
+
}
|
|
14476
|
+
logger.warn(`Security analysis error for ${packageName}: ${errorMessage}`);
|
|
13990
14477
|
return {
|
|
13991
14478
|
hasVulnerabilities: false,
|
|
13992
14479
|
fixedVulnerabilities: 0,
|
|
@@ -14074,6 +14561,9 @@ var UpdateExecutorService = class {
|
|
|
14074
14561
|
this.registryService = registryService;
|
|
14075
14562
|
this.backupService = backupService;
|
|
14076
14563
|
}
|
|
14564
|
+
workspaceRepository;
|
|
14565
|
+
registryService;
|
|
14566
|
+
backupService;
|
|
14077
14567
|
/**
|
|
14078
14568
|
* Execute catalog dependency updates
|
|
14079
14569
|
*/
|
|
@@ -14249,6 +14739,9 @@ var UpdatePlanService = class {
|
|
|
14249
14739
|
this.registryService = registryService;
|
|
14250
14740
|
this.checkService = checkService;
|
|
14251
14741
|
}
|
|
14742
|
+
workspaceRepository;
|
|
14743
|
+
registryService;
|
|
14744
|
+
checkService;
|
|
14252
14745
|
/**
|
|
14253
14746
|
* Plan catalog dependency updates
|
|
14254
14747
|
*/
|
|
@@ -14479,6 +14972,7 @@ var CatalogUpdateService = class _CatalogUpdateService {
|
|
|
14479
14972
|
this.executorService = deps.executorService ?? new UpdateExecutorService(workspaceRepository, registryService, backupService);
|
|
14480
14973
|
this.impactAnalysisService = deps.impactAnalysisService ?? new ImpactAnalysisService(registryService);
|
|
14481
14974
|
}
|
|
14975
|
+
workspaceRepository;
|
|
14482
14976
|
checkService;
|
|
14483
14977
|
planService;
|
|
14484
14978
|
executorService;
|
|
@@ -14672,6 +15166,7 @@ var WorkspaceService = class {
|
|
|
14672
15166
|
constructor(workspaceRepository) {
|
|
14673
15167
|
this.workspaceRepository = workspaceRepository;
|
|
14674
15168
|
}
|
|
15169
|
+
workspaceRepository;
|
|
14675
15170
|
/**
|
|
14676
15171
|
* DUP-001: Helper method to convert a Package entity to PackageInfo DTO.
|
|
14677
15172
|
* Extracted from getPackages and getPackagesUsingCatalog to eliminate duplication.
|
|
@@ -14828,12 +15323,8 @@ var WorkspaceService = class {
|
|
|
14828
15323
|
* Check if workspace uses catalogs
|
|
14829
15324
|
*/
|
|
14830
15325
|
async usesCatalogs(workspacePath) {
|
|
14831
|
-
|
|
14832
|
-
|
|
14833
|
-
return !workspace.getCatalogs().isEmpty();
|
|
14834
|
-
} catch {
|
|
14835
|
-
return false;
|
|
14836
|
-
}
|
|
15326
|
+
const workspace = await this.discoverWorkspace(workspacePath);
|
|
15327
|
+
return !workspace.getCatalogs().isEmpty();
|
|
14837
15328
|
}
|
|
14838
15329
|
/**
|
|
14839
15330
|
* Get packages that use a specific catalog
|
|
@@ -15322,6 +15813,9 @@ var CatalogReference = class {
|
|
|
15322
15813
|
this.packageName = packageName;
|
|
15323
15814
|
this.dependencyType = dependencyType;
|
|
15324
15815
|
}
|
|
15816
|
+
catalogName;
|
|
15817
|
+
packageName;
|
|
15818
|
+
dependencyType;
|
|
15325
15819
|
getCatalogName() {
|
|
15326
15820
|
return this.catalogName;
|
|
15327
15821
|
}
|
|
@@ -15341,6 +15835,9 @@ var CatalogDependency = class {
|
|
|
15341
15835
|
this.catalogName = catalogName;
|
|
15342
15836
|
this.dependencyType = dependencyType;
|
|
15343
15837
|
}
|
|
15838
|
+
packageName;
|
|
15839
|
+
catalogName;
|
|
15840
|
+
dependencyType;
|
|
15344
15841
|
getPackageName() {
|
|
15345
15842
|
return this.packageName;
|
|
15346
15843
|
}
|
|
@@ -15398,6 +15895,11 @@ var Workspace = class _Workspace {
|
|
|
15398
15895
|
this.catalogs = catalogs;
|
|
15399
15896
|
this.packages = packages;
|
|
15400
15897
|
}
|
|
15898
|
+
id;
|
|
15899
|
+
path;
|
|
15900
|
+
config;
|
|
15901
|
+
catalogs;
|
|
15902
|
+
packages;
|
|
15401
15903
|
/**
|
|
15402
15904
|
* Create a new Workspace instance
|
|
15403
15905
|
*/
|
|
@@ -17275,6 +17777,7 @@ var FileWorkspaceRepository = class {
|
|
|
17275
17777
|
constructor(fileSystemService) {
|
|
17276
17778
|
this.fileSystemService = fileSystemService;
|
|
17277
17779
|
}
|
|
17780
|
+
fileSystemService;
|
|
17278
17781
|
/**
|
|
17279
17782
|
* Find a workspace by its path
|
|
17280
17783
|
*/
|
|
@@ -17997,6 +18500,7 @@ var CIFormatter = class {
|
|
|
17997
18500
|
constructor(format) {
|
|
17998
18501
|
this.format = format;
|
|
17999
18502
|
}
|
|
18503
|
+
format;
|
|
18000
18504
|
/**
|
|
18001
18505
|
* Format outdated dependencies report for CI
|
|
18002
18506
|
*/
|
|
@@ -18797,6 +19301,7 @@ var ColorUtils = class {
|
|
|
18797
19301
|
constructor(useColor = true) {
|
|
18798
19302
|
this.useColor = useColor;
|
|
18799
19303
|
}
|
|
19304
|
+
useColor;
|
|
18800
19305
|
/**
|
|
18801
19306
|
* Apply color if color is enabled
|
|
18802
19307
|
*/
|
|
@@ -18915,6 +19420,8 @@ var VersionFormatter = class {
|
|
|
18915
19420
|
this.colorUtils = colorUtils;
|
|
18916
19421
|
this.useColor = useColor;
|
|
18917
19422
|
}
|
|
19423
|
+
colorUtils;
|
|
19424
|
+
useColor;
|
|
18918
19425
|
/**
|
|
18919
19426
|
* Parse a version string into its component parts
|
|
18920
19427
|
*/
|
|
@@ -18999,6 +19506,8 @@ var OutputFormatter = class {
|
|
|
18999
19506
|
this.colorUtils = new ColorUtils(useColor);
|
|
19000
19507
|
this.versionFormatter = new VersionFormatter(this.colorUtils, useColor);
|
|
19001
19508
|
}
|
|
19509
|
+
format;
|
|
19510
|
+
useColor;
|
|
19002
19511
|
ciFormatter = null;
|
|
19003
19512
|
colorUtils;
|
|
19004
19513
|
versionFormatter;
|
|
@@ -20305,6 +20814,10 @@ var AnalyzeCommand = class {
|
|
|
20305
20814
|
this.registryService = registryService;
|
|
20306
20815
|
this.aiService = aiService;
|
|
20307
20816
|
}
|
|
20817
|
+
catalogUpdateService;
|
|
20818
|
+
workspaceService;
|
|
20819
|
+
registryService;
|
|
20820
|
+
aiService;
|
|
20308
20821
|
/**
|
|
20309
20822
|
* Execute the analyze command
|
|
20310
20823
|
* QUAL-002/QUAL-003: Uses unified output helpers and reduced coupling
|
|
@@ -20450,6 +20963,7 @@ var CheckCommand = class {
|
|
|
20450
20963
|
constructor(catalogUpdateService) {
|
|
20451
20964
|
this.catalogUpdateService = catalogUpdateService;
|
|
20452
20965
|
}
|
|
20966
|
+
catalogUpdateService;
|
|
20453
20967
|
/**
|
|
20454
20968
|
* Execute the check command
|
|
20455
20969
|
*/
|
|
@@ -20592,6 +21106,7 @@ var GraphCommand = class {
|
|
|
20592
21106
|
constructor(workspaceService) {
|
|
20593
21107
|
this.workspaceService = workspaceService;
|
|
20594
21108
|
}
|
|
21109
|
+
workspaceService;
|
|
20595
21110
|
/**
|
|
20596
21111
|
* Execute the graph command
|
|
20597
21112
|
*/
|
|
@@ -21194,7 +21709,9 @@ catalogs:
|
|
|
21194
21709
|
lines.push("");
|
|
21195
21710
|
lines.push(StyledText.muted(t("command.init.step5")));
|
|
21196
21711
|
lines.push(StyledText.muted(" https://pnpm.io/workspaces"));
|
|
21197
|
-
lines.push(
|
|
21712
|
+
lines.push(
|
|
21713
|
+
StyledText.muted(" https://github.com/yldm-tech/pnpm-catalog-updates#configuration")
|
|
21714
|
+
);
|
|
21198
21715
|
cliOutput.print(lines.join("\n"));
|
|
21199
21716
|
}
|
|
21200
21717
|
/**
|
|
@@ -21827,6 +22344,8 @@ var PercentageProgressBar = class _PercentageProgressBar {
|
|
|
21827
22344
|
this.style = options.style || "gradient";
|
|
21828
22345
|
this.useMultiLine = options.multiLine ?? true;
|
|
21829
22346
|
}
|
|
22347
|
+
width;
|
|
22348
|
+
options;
|
|
21830
22349
|
current = 0;
|
|
21831
22350
|
total = 0;
|
|
21832
22351
|
text = "";
|
|
@@ -22040,6 +22559,7 @@ var SecurityCommand = class {
|
|
|
22040
22559
|
constructor(outputFormatter) {
|
|
22041
22560
|
this.outputFormatter = outputFormatter;
|
|
22042
22561
|
}
|
|
22562
|
+
outputFormatter;
|
|
22043
22563
|
/**
|
|
22044
22564
|
* Execute the security command
|
|
22045
22565
|
*/
|
|
@@ -22500,7 +23020,7 @@ var InteractivePrompts = class {
|
|
|
22500
23020
|
];
|
|
22501
23021
|
const answers = await inquirer2.prompt([
|
|
22502
23022
|
{
|
|
22503
|
-
type: "
|
|
23023
|
+
type: "select",
|
|
22504
23024
|
name: "catalog",
|
|
22505
23025
|
message: StyledText.iconCatalog(t("prompt.selectCatalog")),
|
|
22506
23026
|
choices: choices2,
|
|
@@ -22522,7 +23042,7 @@ var InteractivePrompts = class {
|
|
|
22522
23042
|
];
|
|
22523
23043
|
const answers = await inquirer2.prompt([
|
|
22524
23044
|
{
|
|
22525
|
-
type: "
|
|
23045
|
+
type: "select",
|
|
22526
23046
|
name: "strategy",
|
|
22527
23047
|
message: StyledText.iconUpdate(t("prompt.selectUpdateStrategy")),
|
|
22528
23048
|
choices: strategies
|
|
@@ -22554,7 +23074,7 @@ var InteractivePrompts = class {
|
|
|
22554
23074
|
async autoCompletePackage(packages, message = t("prompt.selectPackage")) {
|
|
22555
23075
|
const answers = await inquirer2.prompt([
|
|
22556
23076
|
{
|
|
22557
|
-
type: "
|
|
23077
|
+
type: "select",
|
|
22558
23078
|
name: "package",
|
|
22559
23079
|
message,
|
|
22560
23080
|
choices: packages.map((pkg) => ({ name: pkg, value: pkg })),
|
|
@@ -22574,7 +23094,7 @@ var InteractivePrompts = class {
|
|
|
22574
23094
|
];
|
|
22575
23095
|
const answers = await inquirer2.prompt([
|
|
22576
23096
|
{
|
|
22577
|
-
type: "
|
|
23097
|
+
type: "select",
|
|
22578
23098
|
name: "path",
|
|
22579
23099
|
message: t("prompt.selectWorkspace"),
|
|
22580
23100
|
choices: choices2
|
|
@@ -22600,7 +23120,7 @@ var InteractivePrompts = class {
|
|
|
22600
23120
|
];
|
|
22601
23121
|
const answers = await inquirer2.prompt([
|
|
22602
23122
|
{
|
|
22603
|
-
type: "
|
|
23123
|
+
type: "select",
|
|
22604
23124
|
name: "selected",
|
|
22605
23125
|
message: t("prompt.browsePath", { path: currentPath }),
|
|
22606
23126
|
choices: choices2,
|
|
@@ -22642,7 +23162,7 @@ var InteractivePrompts = class {
|
|
|
22642
23162
|
*/
|
|
22643
23163
|
async selectTheme() {
|
|
22644
23164
|
const answers = await inquirer2.prompt({
|
|
22645
|
-
type: "
|
|
23165
|
+
type: "select",
|
|
22646
23166
|
name: "theme",
|
|
22647
23167
|
message: t("prompt.selectTheme"),
|
|
22648
23168
|
choices: [
|
|
@@ -22664,7 +23184,7 @@ var InteractivePrompts = class {
|
|
|
22664
23184
|
${t("prompt.configWizard")}
|
|
22665
23185
|
`));
|
|
22666
23186
|
const themeAnswer = await inquirer2.prompt({
|
|
22667
|
-
type: "
|
|
23187
|
+
type: "select",
|
|
22668
23188
|
name: "theme",
|
|
22669
23189
|
message: t("prompt.selectTheme"),
|
|
22670
23190
|
choices: [
|
|
@@ -22688,7 +23208,7 @@ ${t("prompt.configWizard")}
|
|
|
22688
23208
|
default: true
|
|
22689
23209
|
});
|
|
22690
23210
|
const strategyAnswer = await inquirer2.prompt({
|
|
22691
|
-
type: "
|
|
23211
|
+
type: "select",
|
|
22692
23212
|
name: "updateStrategy",
|
|
22693
23213
|
message: t("prompt.defaultStrategy"),
|
|
22694
23214
|
choices: [
|
|
@@ -22755,7 +23275,7 @@ ${t("prompt.impactPreview")}
|
|
|
22755
23275
|
];
|
|
22756
23276
|
const answers = await inquirer2.prompt([
|
|
22757
23277
|
{
|
|
22758
|
-
type: "
|
|
23278
|
+
type: "select",
|
|
22759
23279
|
name: "action",
|
|
22760
23280
|
message: StyledText.iconError(t("prompt.errorMessage", { error })),
|
|
22761
23281
|
choices: options
|
|
@@ -23466,6 +23986,7 @@ var WorkspaceCommand = class {
|
|
|
23466
23986
|
constructor(workspaceService) {
|
|
23467
23987
|
this.workspaceService = workspaceService;
|
|
23468
23988
|
}
|
|
23989
|
+
workspaceService;
|
|
23469
23990
|
/**
|
|
23470
23991
|
* Execute the workspace command
|
|
23471
23992
|
*/
|
|
@@ -23674,7 +24195,7 @@ var InteractiveOptionsCollector = class {
|
|
|
23674
24195
|
message: t("interactive.analyze.packageName"),
|
|
23675
24196
|
placeholder: "lodash, react, ...",
|
|
23676
24197
|
validate: (value) => {
|
|
23677
|
-
if (!value
|
|
24198
|
+
if (!value?.trim()) return t("interactive.analyze.packageNameRequired");
|
|
23678
24199
|
return void 0;
|
|
23679
24200
|
}
|
|
23680
24201
|
});
|
|
@@ -23842,7 +24363,8 @@ function createCommandAction(serviceFactory, config, executor) {
|
|
|
23842
24363
|
}
|
|
23843
24364
|
let finalOptions = options;
|
|
23844
24365
|
if (config.interactiveCollector) {
|
|
23845
|
-
const
|
|
24366
|
+
const isCiMode = globalOptions.ci === true;
|
|
24367
|
+
const isInteractive = isCiMode ? false : options.interactive === true;
|
|
23846
24368
|
const noMeaningfulOptions = !hasProvidedOptions(
|
|
23847
24369
|
options,
|
|
23848
24370
|
command,
|
|
@@ -23867,6 +24389,16 @@ function createCommandAction(serviceFactory, config, executor) {
|
|
|
23867
24389
|
};
|
|
23868
24390
|
}
|
|
23869
24391
|
function registerCommands(program, serviceFactory, packageJson) {
|
|
24392
|
+
program.option(
|
|
24393
|
+
"--ci",
|
|
24394
|
+
"Enable CI mode for non-interactive execution. Skips all prompts and uses sensible defaults.",
|
|
24395
|
+
false
|
|
24396
|
+
).hook("preAction", (thisCommand) => {
|
|
24397
|
+
const opts = thisCommand.opts();
|
|
24398
|
+
if (opts.ci) {
|
|
24399
|
+
opts.noColor = true;
|
|
24400
|
+
}
|
|
24401
|
+
});
|
|
23870
24402
|
program.command("check").description(t("cli.description.check")).option("-i, --interactive", t("cli.option.interactive")).option("--catalog <name>", t("cli.option.catalog")).addOption(
|
|
23871
24403
|
new Option("-f, --format <type>", t("cli.option.format")).choices(CLI_CHOICES.format).default("table")
|
|
23872
24404
|
).addOption(
|
|
@@ -24195,7 +24727,7 @@ ${t("cli.help.tipLabel")} ${t("cli.help.tipContent", { locale: I18n.getLocale()
|
|
|
24195
24727
|
cliOutput.print(chalk10.gray(t("command.selfUpdate.restartHint")));
|
|
24196
24728
|
} else {
|
|
24197
24729
|
cliOutput.error(chalk10.red(t("command.selfUpdate.failed")));
|
|
24198
|
-
cliOutput.print(chalk10.gray("
|
|
24730
|
+
cliOutput.print(chalk10.gray(t("command.selfUpdate.manualHint")));
|
|
24199
24731
|
exitProcess(1);
|
|
24200
24732
|
}
|
|
24201
24733
|
} catch (error) {
|
|
@@ -24203,7 +24735,7 @@ ${t("cli.help.tipLabel")} ${t("cli.help.tipContent", { locale: I18n.getLocale()
|
|
|
24203
24735
|
if (globalOptions.verbose) {
|
|
24204
24736
|
cliOutput.error(error);
|
|
24205
24737
|
}
|
|
24206
|
-
cliOutput.print(chalk10.gray("
|
|
24738
|
+
cliOutput.print(chalk10.gray(t("command.selfUpdate.manualHint")));
|
|
24207
24739
|
exitProcess(1);
|
|
24208
24740
|
}
|
|
24209
24741
|
}
|
|
@@ -24212,12 +24744,12 @@ ${t("cli.help.tipLabel")} ${t("cli.help.tipContent", { locale: I18n.getLocale()
|
|
|
24212
24744
|
}
|
|
24213
24745
|
|
|
24214
24746
|
// src/cli/index.ts
|
|
24215
|
-
var __filename = fileURLToPath(import.meta.url);
|
|
24216
|
-
var __dirname = dirname(__filename);
|
|
24747
|
+
var __filename$1 = fileURLToPath(import.meta.url);
|
|
24748
|
+
var __dirname$1 = dirname(__filename$1);
|
|
24217
24749
|
var _packageJson = null;
|
|
24218
24750
|
function getPackageJson() {
|
|
24219
24751
|
if (!_packageJson) {
|
|
24220
|
-
_packageJson = JSON.parse(readFileSync(join(__dirname, "../package.json"), "utf-8"));
|
|
24752
|
+
_packageJson = JSON.parse(readFileSync(join(__dirname$1, "../package.json"), "utf-8"));
|
|
24221
24753
|
}
|
|
24222
24754
|
return _packageJson;
|
|
24223
24755
|
}
|
|
@@ -24267,32 +24799,44 @@ async function showUpdateNotificationIfAvailable(checkPromise) {
|
|
|
24267
24799
|
}
|
|
24268
24800
|
async function handleVersionFlag(args, config) {
|
|
24269
24801
|
if (!args.includes("--version")) return;
|
|
24270
|
-
|
|
24802
|
+
const pkg = getPackageJson();
|
|
24803
|
+
const version = pkg.version;
|
|
24271
24804
|
if (VersionChecker.shouldCheckForUpdates() && config.advanced?.checkForUpdates !== false) {
|
|
24272
24805
|
try {
|
|
24273
|
-
|
|
24274
|
-
|
|
24806
|
+
process.stdout.write(
|
|
24807
|
+
`${chalk10.cyan("pcu")} ${chalk10.bold(`v${version}`)} ${chalk10.gray(t("cli.checkingUpdates"))}`
|
|
24808
|
+
);
|
|
24809
|
+
const versionResult = await VersionChecker.checkVersion(version, {
|
|
24275
24810
|
skipPrompt: false,
|
|
24276
24811
|
timeout: 5e3
|
|
24277
|
-
// Longer timeout for explicit version check
|
|
24278
24812
|
});
|
|
24279
|
-
|
|
24813
|
+
process.stdout.write("\r\x1B[K");
|
|
24814
|
+
if (versionResult.shouldPrompt && versionResult.latestVersion) {
|
|
24815
|
+
cliOutput.print(
|
|
24816
|
+
`${chalk10.cyan("pcu")} ${chalk10.bold(`v${version}`)} ${chalk10.yellow(`-> v${versionResult.latestVersion} ${t("cli.available")}`)}`
|
|
24817
|
+
);
|
|
24280
24818
|
const didUpdate = await VersionChecker.promptAndUpdate(versionResult);
|
|
24281
24819
|
if (didUpdate) {
|
|
24282
24820
|
cliOutput.print(chalk10.blue(t("cli.runAgain")));
|
|
24283
24821
|
exitWithCleanup(0);
|
|
24284
24822
|
}
|
|
24285
|
-
} else
|
|
24286
|
-
cliOutput.print(
|
|
24823
|
+
} else {
|
|
24824
|
+
cliOutput.print(
|
|
24825
|
+
`${chalk10.cyan("pcu")} ${chalk10.bold(`v${version}`)} ${chalk10.green(t("cli.latestVersion"))}`
|
|
24826
|
+
);
|
|
24287
24827
|
}
|
|
24288
24828
|
} catch (error) {
|
|
24829
|
+
process.stdout.write("\r\x1B[K");
|
|
24830
|
+
cliOutput.print(`${chalk10.cyan("pcu")} ${chalk10.bold(`v${version}`)}`);
|
|
24289
24831
|
logger.debug("Version flag update check failed", {
|
|
24290
24832
|
error: error instanceof Error ? error.message : error
|
|
24291
24833
|
});
|
|
24292
24834
|
if (args.includes("-v") || args.includes("--verbose")) {
|
|
24293
|
-
cliOutput.warn(chalk10.yellow(
|
|
24835
|
+
cliOutput.warn(chalk10.yellow(` ${t("cli.couldNotCheckUpdates")}`), error);
|
|
24294
24836
|
}
|
|
24295
24837
|
}
|
|
24838
|
+
} else {
|
|
24839
|
+
cliOutput.print(`${chalk10.cyan("pcu")} ${chalk10.bold(`v${version}`)}`);
|
|
24296
24840
|
}
|
|
24297
24841
|
exitWithCleanup(0);
|
|
24298
24842
|
}
|