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/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": "Sie verwenden die neueste Version!",
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": "You are using the latest version!",
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": "\xA1Est\xE1 usando la \xFAltima versi\xF3n!",
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": "Vous utilisez la derni\xE8re version !",
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\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u4F7F\u7528\u3057\u3066\u3044\u307E\u3059\uFF01",
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\uC744 \uC0AC\uC6A9 \uC911\uC785\uB2C8\uB2E4!",
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": "\u60A8\u6B63\u5728\u4F7F\u7528\u6700\u65B0\u7248\u672C\uFF01",
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
- if (_preloadPromise !== null) {
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.error(chalk10.red("\u274C Update failed:"), error instanceof Error ? error : void 0);
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(catalogsToCheck, config);
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
- return false;
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
- name: packageName,
13734
- version,
13735
- requires: {},
13736
- dependencies: {}
14217
+ query: {
14218
+ name: packageName,
14219
+ version
14220
+ }
13737
14221
  };
13738
14222
  const authConfig = this.getAuthConfig(registryUrl);
13739
- const response = await npmRegistryFetch("/-/npm/v1/security/audits", {
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 advisory of Object.values(auditResult.advisories)) {
13753
- vulnerabilities.push({
13754
- id: advisory.id.toString(),
13755
- title: advisory.title,
13756
- severity: advisory.severity,
13757
- description: advisory.overview,
13758
- reference: advisory.url,
13759
- vulnerable_versions: advisory.vulnerable_versions,
13760
- patched_versions: advisory.patched_versions,
13761
- recommendation: advisory.recommendation
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
- logger.warn(`Security impact analysis failed for ${packageName}`, {
13985
- packageName,
13986
- currentVersion,
13987
- newVersion,
13988
- error: errorMessage
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
- try {
14832
- const workspace = await this.discoverWorkspace(workspacePath);
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(StyledText.muted(" https://github.com/houko/pnpm-catalog-updates#configuration"));
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: "list",
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: "list",
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: "list",
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: "list",
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: "list",
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: "list",
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: "list",
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: "list",
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: "list",
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.trim()) return t("interactive.analyze.packageNameRequired");
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 isInteractive = options.interactive === true;
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("You can manually update with: npm install -g pcu@latest"));
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("You can manually update with: npm install -g pcu@latest"));
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
- cliOutput.print(getPackageJson().version);
24802
+ const pkg = getPackageJson();
24803
+ const version = pkg.version;
24271
24804
  if (VersionChecker.shouldCheckForUpdates() && config.advanced?.checkForUpdates !== false) {
24272
24805
  try {
24273
- cliOutput.print(chalk10.gray(t("cli.checkingUpdates")));
24274
- const versionResult = await VersionChecker.checkVersion(getPackageJson().version, {
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
- if (versionResult.shouldPrompt) {
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 if (versionResult.isLatest) {
24286
- cliOutput.print(chalk10.green(t("cli.latestVersion")));
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(`\u26A0\uFE0F ${t("cli.couldNotCheckUpdates")}`), error);
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
  }