package-installer-cli 1.1.0 → 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.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1 -1
  3. data/dist/commands/add.js +109 -75
  4. data/dist/commands/analyze.js +43 -35
  5. data/dist/commands/cache.js +142 -6
  6. data/dist/commands/check.js +119 -72
  7. data/dist/commands/clean.js +230 -92
  8. data/dist/commands/clone.js +66 -44
  9. data/dist/commands/create.js +74 -53
  10. data/dist/commands/deploy.js +30 -22
  11. data/dist/commands/doctor.js +27 -28
  12. data/dist/commands/env.js +44 -31
  13. data/dist/commands/update.js +599 -113
  14. data/dist/commands/upgrade-cli.js +32 -24
  15. data/dist/index.js +58 -15
  16. data/dist/utils/banner.js +1 -1
  17. data/dist/utils/cacheManager.js +57 -124
  18. data/dist/utils/dependencyInstaller.js +0 -46
  19. data/dist/utils/featureInstaller.js +489 -153
  20. data/dist/utils/helpFormatter.js +110 -0
  21. data/dist/utils/languageConfig.js +167 -298
  22. data/dist/utils/pathResolver.js +34 -72
  23. data/dist/utils/templateResolver.js +3 -4
  24. data/dist/utils/utils.js +20 -5
  25. data/lib/package_installer_cli.rb +1 -1
  26. data/templates/django/django-full-stack-template/django-project-template/deployment/docker/build.sh +0 -0
  27. data/templates/django/django-full-stack-template/django-project-template/deployment/docker/manage.py +0 -0
  28. data/templates/django/django-full-stack-template/django-project-template/src/compile-locale.sh +0 -0
  29. data/templates/django/django-full-stack-template/django-project-template/src/compile-sass.sh +0 -0
  30. data/templates/django/django-full-stack-template/django-project-template/src/manage.py +0 -0
  31. data/templates/django/django-inertia-svelte-template/django-inertia-svelte-template-starter/manage.py +0 -0
  32. data/templates/flask/flask-cookiecutter-advance-template/cookiecutter-docker.sh +0 -0
  33. data/templates/flask/flask-cookiecutter-advance-template/{{cookiecutter.app_name}}/autoapp.py +0 -0
  34. data/templates/flask/flask-project-template/apply.sh +0 -0
  35. data/templates/react-native/typescript/template/android/gradlew +0 -0
  36. data/templates/ruby/rails_7_esbuild_hotwire_tailwindcss_starter/bin/bundle +0 -0
  37. data/templates/ruby/rails_7_esbuild_hotwire_tailwindcss_starter/bin/dev +0 -0
  38. data/templates/ruby/rails_7_esbuild_hotwire_tailwindcss_starter/bin/docker-entrypoint +0 -0
  39. data/templates/ruby/rails_7_esbuild_hotwire_tailwindcss_starter/bin/rails +0 -0
  40. data/templates/ruby/rails_7_esbuild_hotwire_tailwindcss_starter/bin/rake +0 -0
  41. data/templates/ruby/rails_7_esbuild_hotwire_tailwindcss_starter/bin/setup +0 -0
  42. data/templates/ruby/ruby-on-rails-apis-template/bin/bundle +0 -0
  43. data/templates/ruby/ruby-on-rails-apis-template/bin/rails +0 -0
  44. data/templates/ruby/ruby-on-rails-apis-template/bin/rake +0 -0
  45. data/templates/ruby/ruby-on-rails-apis-template/bin/setup +0 -0
  46. data/templates/ruby/ruby-on-rails-apis-template/bin/spring +0 -0
  47. data/templates/ruby/ruby-on-rails-apis-template/bin/update +0 -0
  48. data/templates/ruby/ruby-on-rails-boilerplate-template/bin/bundle +0 -0
  49. data/templates/ruby/ruby-on-rails-boilerplate-template/bin/dev +0 -0
  50. data/templates/ruby/ruby-on-rails-boilerplate-template/bin/importmap +0 -0
  51. data/templates/ruby/ruby-on-rails-boilerplate-template/bin/rails +0 -0
  52. data/templates/ruby/ruby-on-rails-boilerplate-template/bin/rake +0 -0
  53. data/templates/ruby/ruby-on-rails-boilerplate-template/bin/setup +0 -0
  54. metadata +6 -5
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Standardized Help Formatter for Package Installer CLI
3
+ * Creates consistent, beautiful help displays for all commands
4
+ */
5
+ import chalk from 'chalk';
6
+ import gradient from 'gradient-string';
7
+ import boxen from 'boxen';
8
+ import { getPackageVersion } from './utils.js';
9
+ /**
10
+ * Create standardized help display for commands
11
+ */
12
+ export function createStandardHelp(config) {
13
+ const version = getPackageVersion();
14
+ const piGradient = gradient(['#00c6ff', '#0072ff']);
15
+ const headerGradient = gradient(['#4facfe', '#00f2fe']);
16
+ let helpContent = '';
17
+ // Header
18
+ helpContent += headerGradient(`${config.emoji} Package Installer CLI - ${config.commandName} Command`) + '\n\n';
19
+ // Description
20
+ helpContent += chalk.white(config.description) + '\n\n';
21
+ // Usage
22
+ helpContent += chalk.cyan('Usage:') + '\n';
23
+ config.usage.forEach(usage => {
24
+ helpContent += chalk.white(` ${piGradient('pi')} ${usage}`) + '\n';
25
+ });
26
+ helpContent += '\n';
27
+ // Options
28
+ if (config.options && config.options.length > 0) {
29
+ helpContent += chalk.cyan('Options:') + '\n';
30
+ config.options.forEach(option => {
31
+ helpContent += chalk.gray(` ${option.flag.padEnd(20)} ${option.description}`) + '\n';
32
+ });
33
+ helpContent += '\n';
34
+ }
35
+ // Examples
36
+ if (config.examples && config.examples.length > 0) {
37
+ helpContent += chalk.cyan('Examples:') + '\n';
38
+ config.examples.forEach(example => {
39
+ // Check if command already starts with 'pi', if not add it
40
+ const command = example.command.startsWith('pi ') ? example.command : `pi ${example.command}`;
41
+ const formattedCommand = command.replace(/^pi /, `${piGradient('pi')} `);
42
+ helpContent += chalk.gray(` ${formattedCommand.padEnd(35)} # ${example.description}`) + '\n';
43
+ });
44
+ helpContent += '\n';
45
+ }
46
+ // Additional sections
47
+ if (config.additionalSections && config.additionalSections.length > 0) {
48
+ config.additionalSections.forEach(section => {
49
+ helpContent += chalk.hex('#00d2d3')(`💡 ${section.title}:`) + '\n';
50
+ section.items.forEach(item => {
51
+ helpContent += chalk.hex('#95afc0')(` • ${item}`) + '\n';
52
+ });
53
+ helpContent += '\n';
54
+ });
55
+ }
56
+ // Tips
57
+ if (config.tips && config.tips.length > 0) {
58
+ config.tips.forEach(tip => {
59
+ helpContent += chalk.yellow(`💡 Tip: ${tip}`) + '\n';
60
+ });
61
+ }
62
+ // Version footer
63
+ helpContent += chalk.hex('#636e72')(`\n📦 Package Installer CLI v${version} • Fast • Smart • Feature-Rich`);
64
+ console.log('\n' + boxen(helpContent, {
65
+ padding: 1,
66
+ borderStyle: 'round',
67
+ borderColor: 'cyan',
68
+ backgroundColor: '#0a0a0a'
69
+ }));
70
+ }
71
+ /**
72
+ * Quick help display for commands with minimal options
73
+ */
74
+ export function createQuickHelp(commandName, emoji, description, usage, options) {
75
+ const piGradient = gradient(['#00c6ff', '#0072ff']);
76
+ const headerGradient = gradient(['#4facfe', '#00f2fe']);
77
+ let helpContent = headerGradient(`${emoji} ${commandName.toUpperCase()} COMMAND HELP`) + '\n\n';
78
+ helpContent += chalk.white(description) + '\n\n';
79
+ helpContent += chalk.cyan('Usage:') + '\n';
80
+ helpContent += chalk.white(` ${piGradient('pi')} ${usage}`) + '\n\n';
81
+ if (options.length > 0) {
82
+ helpContent += chalk.cyan('Options:') + '\n';
83
+ options.forEach(option => {
84
+ helpContent += chalk.gray(` ${option}`) + '\n';
85
+ });
86
+ }
87
+ console.log('\n' + boxen(helpContent, {
88
+ padding: 1,
89
+ borderStyle: 'round',
90
+ borderColor: 'cyan',
91
+ backgroundColor: '#0a0a0a'
92
+ }));
93
+ }
94
+ /**
95
+ * Create error help display
96
+ */
97
+ export function createErrorHelp(commandName, error, suggestion) {
98
+ let helpContent = chalk.red(`❌ ${commandName.toUpperCase()} ERROR`) + '\n\n';
99
+ helpContent += chalk.white(error) + '\n';
100
+ if (suggestion) {
101
+ helpContent += '\n' + chalk.yellow(`💡 Suggestion: ${suggestion}`) + '\n';
102
+ }
103
+ helpContent += '\n' + chalk.gray(`Run: `) + chalk.cyan(`pi ${commandName} --help`) + chalk.gray(` for more information`);
104
+ console.log('\n' + boxen(helpContent, {
105
+ padding: 1,
106
+ borderStyle: 'round',
107
+ borderColor: 'red',
108
+ backgroundColor: '#0a0a0a'
109
+ }));
110
+ }
@@ -12,39 +12,6 @@ export const ENHANCED_LANGUAGE_CONFIGS = {
12
12
  category: 'web',
13
13
  maturity: 'stable',
14
14
  packageManagers: [
15
- {
16
- name: 'bun',
17
- displayName: 'Bun',
18
- description: 'Fast all-in-one JavaScript runtime & toolkit',
19
- installCommand: 'bun install',
20
- updateCommand: 'bun update',
21
- addCommand: 'bun add',
22
- removeCommand: 'bun remove',
23
- listCommand: 'bun pm ls',
24
- lockFiles: ['bun.lockb'],
25
- configFiles: ['bunfig.toml'],
26
- detectCommand: 'bun --version',
27
- versionCommand: 'bun --version',
28
- priority: 1,
29
- features: [
30
- { name: 'Native bundling', description: 'Built-in bundler and transpiler', supported: true },
31
- { name: 'TypeScript support', description: 'Native TypeScript execution', supported: true },
32
- { name: 'JSX support', description: 'Native JSX transpilation', supported: true },
33
- { name: 'Hot reloading', description: 'Development server with hot reload', supported: true }
34
- ],
35
- performance: {
36
- installSpeed: 'fast',
37
- diskUsage: 'low',
38
- networkEfficiency: 'excellent',
39
- caching: 'global'
40
- },
41
- security: {
42
- checksums: true,
43
- signatures: true,
44
- vulnerabilityScanning: true,
45
- lockFileValidation: true
46
- }
47
- },
48
15
  {
49
16
  name: 'pnpm',
50
17
  displayName: 'pnpm',
@@ -59,7 +26,7 @@ export const ENHANCED_LANGUAGE_CONFIGS = {
59
26
  configFiles: ['pnpm-workspace.yaml', '.pnpmrc'],
60
27
  detectCommand: 'pnpm --version',
61
28
  versionCommand: 'pnpm --version',
62
- priority: 2,
29
+ priority: 1,
63
30
  globalFlag: '-g',
64
31
  features: [
65
32
  { name: 'Workspace support', description: 'Monorepo and workspace management', supported: true },
@@ -80,6 +47,41 @@ export const ENHANCED_LANGUAGE_CONFIGS = {
80
47
  lockFileValidation: true
81
48
  }
82
49
  },
50
+ {
51
+ name: 'npm',
52
+ displayName: 'npm',
53
+ description: 'Node.js package manager',
54
+ installCommand: 'npm install',
55
+ updateCommand: 'npm update',
56
+ addCommand: 'npm install',
57
+ removeCommand: 'npm uninstall',
58
+ listCommand: 'npm list',
59
+ searchCommand: 'npm search',
60
+ lockFiles: ['package-lock.json'],
61
+ configFiles: ['.npmrc'],
62
+ detectCommand: 'npm --version',
63
+ versionCommand: 'npm --version',
64
+ priority: 2,
65
+ globalFlag: '-g',
66
+ features: [
67
+ { name: 'Package scripts', description: 'Custom script execution', supported: true },
68
+ { name: 'Version management', description: 'Semantic versioning support', supported: true },
69
+ { name: 'Workspaces', description: 'Monorepo support', supported: true }
70
+ ],
71
+ performance: {
72
+ installSpeed: 'medium',
73
+ diskUsage: 'high',
74
+ networkEfficiency: 'good',
75
+ caching: 'local'
76
+ },
77
+ security: {
78
+ checksums: true,
79
+ signatures: false,
80
+ auditCommand: 'npm audit',
81
+ vulnerabilityScanning: true,
82
+ lockFileValidation: true
83
+ }
84
+ },
83
85
  {
84
86
  name: 'yarn',
85
87
  displayName: 'Yarn',
@@ -115,36 +117,34 @@ export const ENHANCED_LANGUAGE_CONFIGS = {
115
117
  }
116
118
  },
117
119
  {
118
- name: 'npm',
119
- displayName: 'npm',
120
- description: 'Node.js package manager',
121
- installCommand: 'npm install',
122
- updateCommand: 'npm update',
123
- addCommand: 'npm install',
124
- removeCommand: 'npm uninstall',
125
- listCommand: 'npm list',
126
- searchCommand: 'npm search',
127
- lockFiles: ['package-lock.json'],
128
- configFiles: ['.npmrc'],
129
- detectCommand: 'npm --version',
130
- versionCommand: 'npm --version',
120
+ name: 'bun',
121
+ displayName: 'Bun',
122
+ description: 'Fast all-in-one JavaScript runtime & toolkit',
123
+ installCommand: 'bun install',
124
+ updateCommand: 'bun update',
125
+ addCommand: 'bun add',
126
+ removeCommand: 'bun remove',
127
+ listCommand: 'bun pm ls',
128
+ lockFiles: ['bun.lockb'],
129
+ configFiles: ['bunfig.toml'],
130
+ detectCommand: 'bun --version',
131
+ versionCommand: 'bun --version',
131
132
  priority: 4,
132
- globalFlag: '-g',
133
133
  features: [
134
- { name: 'Package scripts', description: 'Custom script execution', supported: true },
135
- { name: 'Version management', description: 'Semantic versioning support', supported: true },
136
- { name: 'Workspaces', description: 'Monorepo support', supported: true }
134
+ { name: 'Native bundling', description: 'Built-in bundler and transpiler', supported: true },
135
+ { name: 'TypeScript support', description: 'Native TypeScript execution', supported: true },
136
+ { name: 'JSX support', description: 'Native JSX transpilation', supported: true },
137
+ { name: 'Hot reloading', description: 'Development server with hot reload', supported: true }
137
138
  ],
138
139
  performance: {
139
- installSpeed: 'medium',
140
- diskUsage: 'high',
141
- networkEfficiency: 'good',
142
- caching: 'local'
140
+ installSpeed: 'fast',
141
+ diskUsage: 'low',
142
+ networkEfficiency: 'excellent',
143
+ caching: 'global'
143
144
  },
144
145
  security: {
145
146
  checksums: true,
146
- signatures: false,
147
- auditCommand: 'npm audit',
147
+ signatures: true,
148
148
  vulnerabilityScanning: true,
149
149
  lockFileValidation: true
150
150
  }
@@ -304,7 +304,111 @@ export const ENHANCED_LANGUAGE_CONFIGS = {
304
304
  category: 'web',
305
305
  maturity: 'stable',
306
306
  packageManagers: [
307
- // Inherits from JavaScript but with TypeScript-specific tooling
307
+ // Inherits from JavaScript with same priority order: pnpm > npm > yarn > bun
308
+ {
309
+ name: 'pnpm',
310
+ displayName: 'pnpm',
311
+ description: 'Fast, disk space efficient package manager',
312
+ installCommand: 'pnpm install',
313
+ updateCommand: 'pnpm update',
314
+ addCommand: 'pnpm add',
315
+ removeCommand: 'pnpm remove',
316
+ listCommand: 'pnpm list',
317
+ searchCommand: 'pnpm search',
318
+ lockFiles: ['pnpm-lock.yaml'],
319
+ configFiles: ['pnpm-workspace.yaml', '.pnpmrc'],
320
+ detectCommand: 'pnpm --version',
321
+ versionCommand: 'pnpm --version',
322
+ priority: 1,
323
+ globalFlag: '-g',
324
+ features: [
325
+ { name: 'TypeScript support', description: 'Excellent TypeScript integration', supported: true },
326
+ { name: 'Workspace support', description: 'Monorepo and workspace management', supported: true },
327
+ { name: 'Content-addressed storage', description: 'Efficient disk space usage', supported: true }
328
+ ],
329
+ performance: {
330
+ installSpeed: 'fast',
331
+ diskUsage: 'low',
332
+ networkEfficiency: 'excellent',
333
+ caching: 'global'
334
+ },
335
+ security: {
336
+ checksums: true,
337
+ signatures: false,
338
+ auditCommand: 'pnpm audit',
339
+ vulnerabilityScanning: true,
340
+ lockFileValidation: true
341
+ }
342
+ },
343
+ {
344
+ name: 'npm',
345
+ displayName: 'npm',
346
+ description: 'Node.js package manager with TypeScript support',
347
+ installCommand: 'npm install',
348
+ updateCommand: 'npm update',
349
+ addCommand: 'npm install',
350
+ removeCommand: 'npm uninstall',
351
+ listCommand: 'npm list',
352
+ searchCommand: 'npm search',
353
+ lockFiles: ['package-lock.json'],
354
+ configFiles: ['.npmrc'],
355
+ detectCommand: 'npm --version',
356
+ versionCommand: 'npm --version',
357
+ priority: 2,
358
+ globalFlag: '-g',
359
+ features: [
360
+ { name: 'TypeScript support', description: 'Official TypeScript support', supported: true },
361
+ { name: 'Package scripts', description: 'Custom script execution', supported: true },
362
+ { name: 'Version management', description: 'Semantic versioning support', supported: true }
363
+ ],
364
+ performance: {
365
+ installSpeed: 'medium',
366
+ diskUsage: 'high',
367
+ networkEfficiency: 'good',
368
+ caching: 'local'
369
+ },
370
+ security: {
371
+ checksums: true,
372
+ signatures: false,
373
+ auditCommand: 'npm audit',
374
+ vulnerabilityScanning: true,
375
+ lockFileValidation: true
376
+ }
377
+ },
378
+ {
379
+ name: 'yarn',
380
+ displayName: 'Yarn',
381
+ description: 'Reliable, secure, fast package manager with TypeScript support',
382
+ installCommand: 'yarn install',
383
+ updateCommand: 'yarn upgrade',
384
+ addCommand: 'yarn add',
385
+ removeCommand: 'yarn remove',
386
+ listCommand: 'yarn list',
387
+ lockFiles: ['yarn.lock'],
388
+ configFiles: ['.yarnrc.yml', '.yarnrc'],
389
+ detectCommand: 'yarn --version',
390
+ versionCommand: 'yarn --version',
391
+ priority: 3,
392
+ globalFlag: 'global',
393
+ features: [
394
+ { name: 'TypeScript support', description: 'Excellent TypeScript integration', supported: true },
395
+ { name: 'Zero-installs', description: 'Offline installation support', supported: true },
396
+ { name: 'Plug\'n\'Play', description: 'Fast module resolution', supported: true }
397
+ ],
398
+ performance: {
399
+ installSpeed: 'fast',
400
+ diskUsage: 'medium',
401
+ networkEfficiency: 'good',
402
+ caching: 'global'
403
+ },
404
+ security: {
405
+ checksums: true,
406
+ signatures: false,
407
+ auditCommand: 'yarn npm audit',
408
+ vulnerabilityScanning: true,
409
+ lockFileValidation: true
410
+ }
411
+ },
308
412
  {
309
413
  name: 'bun',
310
414
  displayName: 'Bun',
@@ -312,14 +416,17 @@ export const ENHANCED_LANGUAGE_CONFIGS = {
312
416
  installCommand: 'bun install',
313
417
  updateCommand: 'bun update',
314
418
  addCommand: 'bun add',
419
+ removeCommand: 'bun remove',
420
+ listCommand: 'bun pm ls',
315
421
  lockFiles: ['bun.lockb'],
316
422
  configFiles: ['bunfig.toml'],
317
423
  detectCommand: 'bun --version',
318
424
  versionCommand: 'bun --version',
319
- priority: 1,
425
+ priority: 4,
320
426
  features: [
321
427
  { name: 'Native TypeScript', description: 'No transpilation needed', supported: true },
322
- { name: 'Type checking', description: 'Built-in type checking', supported: true }
428
+ { name: 'Type checking', description: 'Built-in type checking', supported: true },
429
+ { name: 'Hot reloading', description: 'Development server with hot reload', supported: true }
323
430
  ],
324
431
  performance: {
325
432
  installSpeed: 'fast',
@@ -880,164 +987,6 @@ export const ENHANCED_LANGUAGE_CONFIGS = {
880
987
  ]
881
988
  }
882
989
  },
883
- php: {
884
- name: 'php',
885
- displayName: 'PHP',
886
- description: 'Server-side scripting language for web development',
887
- icon: '🐘',
888
- category: 'web',
889
- maturity: 'stable',
890
- packageManagers: [
891
- {
892
- name: 'composer',
893
- displayName: 'Composer',
894
- description: 'Dependency Manager for PHP',
895
- installCommand: 'composer install',
896
- updateCommand: 'composer update',
897
- addCommand: 'composer require',
898
- removeCommand: 'composer remove',
899
- listCommand: 'composer show',
900
- lockFiles: ['composer.lock'],
901
- configFiles: ['composer.json'],
902
- detectCommand: 'composer --version',
903
- versionCommand: 'composer --version',
904
- priority: 1,
905
- features: [
906
- { name: 'Autoloading', description: 'PSR-4 autoloading support', supported: true },
907
- { name: 'Version constraints', description: 'Semantic versioning', supported: true }
908
- ],
909
- performance: {
910
- installSpeed: 'medium',
911
- diskUsage: 'medium',
912
- networkEfficiency: 'good',
913
- caching: 'global'
914
- },
915
- security: {
916
- checksums: true,
917
- signatures: false,
918
- vulnerabilityScanning: true,
919
- lockFileValidation: true
920
- }
921
- }
922
- ],
923
- configFiles: [
924
- {
925
- filename: 'composer.json',
926
- description: 'PHP dependency configuration',
927
- required: true,
928
- type: 'dependency',
929
- parser: 'json'
930
- }
931
- ],
932
- buildFiles: ['vendor'],
933
- sourceFileExtensions: ['.php'],
934
- frameworkDetection: [
935
- {
936
- framework: 'laravel',
937
- displayName: 'Laravel',
938
- patterns: ['artisan'],
939
- dependencies: ['laravel/framework'],
940
- popularity: 90,
941
- category: 'backend'
942
- }
943
- ],
944
- toolchain: {
945
- interpreter: { name: 'PHP', command: 'php', optional: false, description: 'PHP interpreter' }
946
- },
947
- ecosystem: {
948
- registry: { name: 'Packagist', url: 'packagist.org' },
949
- community: { github: { repos: 300000, stars: 1000000 }, stackoverflow: { questions: 300000, activity: 'high' } },
950
- learning: [],
951
- trends: { githubStars: 1000000, stackoverflowQuestions: 300000, jobPostings: 120000, trendDirection: 'stable' }
952
- },
953
- compatibility: {
954
- operatingSystems: ['windows', 'macos', 'linux'],
955
- architectures: ['x64', 'arm64'],
956
- containers: true,
957
- cloud: [
958
- { name: 'AWS', supported: true, deployment: ['Lambda', 'EC2'] }
959
- ]
960
- }
961
- },
962
- java: {
963
- name: 'java',
964
- displayName: 'Java',
965
- description: 'Enterprise-grade, platform-independent programming language',
966
- icon: '☕',
967
- category: 'enterprise',
968
- maturity: 'stable',
969
- packageManagers: [
970
- {
971
- name: 'maven',
972
- displayName: 'Maven',
973
- description: 'Build automation and dependency management',
974
- installCommand: 'mvn install',
975
- updateCommand: 'mvn versions:use-latest-versions',
976
- addCommand: 'mvn dependency:get',
977
- listCommand: 'mvn dependency:list',
978
- lockFiles: [],
979
- configFiles: ['pom.xml'],
980
- detectCommand: 'mvn --version',
981
- versionCommand: 'mvn --version',
982
- priority: 1,
983
- features: [
984
- { name: 'Central repository', description: 'Maven Central repository', supported: true },
985
- { name: 'Build lifecycle', description: 'Standardized build process', supported: true }
986
- ],
987
- performance: {
988
- installSpeed: 'medium',
989
- diskUsage: 'high',
990
- networkEfficiency: 'good',
991
- caching: 'local'
992
- },
993
- security: {
994
- checksums: true,
995
- signatures: true,
996
- vulnerabilityScanning: true,
997
- lockFileValidation: false
998
- }
999
- }
1000
- ],
1001
- configFiles: [
1002
- {
1003
- filename: 'pom.xml',
1004
- description: 'Maven project configuration',
1005
- required: true,
1006
- type: 'dependency',
1007
- parser: 'xml'
1008
- }
1009
- ],
1010
- buildFiles: ['target', '.m2'],
1011
- sourceFileExtensions: ['.java'],
1012
- frameworkDetection: [
1013
- {
1014
- framework: 'spring',
1015
- displayName: 'Spring Boot',
1016
- patterns: ['src/main/java/**/*Application.java'],
1017
- dependencies: ['org.springframework.boot:spring-boot-starter'],
1018
- popularity: 95,
1019
- category: 'backend'
1020
- }
1021
- ],
1022
- toolchain: {
1023
- interpreter: { name: 'Java', command: 'java', optional: false, description: 'Java runtime' }
1024
- },
1025
- ecosystem: {
1026
- registry: { name: 'Maven Central', url: 'mvnrepository.com' },
1027
- community: { github: { repos: 800000, stars: 3000000 }, stackoverflow: { questions: 1500000, activity: 'high' } },
1028
- learning: [],
1029
- trends: { githubStars: 3000000, stackoverflowQuestions: 1500000, jobPostings: 200000, trendDirection: 'stable' }
1030
- },
1031
- compatibility: {
1032
- operatingSystems: ['windows', 'macos', 'linux'],
1033
- architectures: ['x64', 'arm64'],
1034
- containers: true,
1035
- cloud: [
1036
- { name: 'AWS', supported: true },
1037
- { name: 'Google Cloud', supported: true }
1038
- ]
1039
- }
1040
- },
1041
990
  ruby: {
1042
991
  name: 'ruby',
1043
992
  displayName: 'Ruby',
@@ -1115,86 +1064,6 @@ export const ENHANCED_LANGUAGE_CONFIGS = {
1115
1064
  { name: 'Heroku', supported: true }
1116
1065
  ]
1117
1066
  }
1118
- },
1119
- dotnet: {
1120
- name: 'dotnet',
1121
- displayName: '.NET',
1122
- description: 'Cross-platform framework for modern applications',
1123
- icon: '🟣',
1124
- category: 'enterprise',
1125
- maturity: 'stable',
1126
- packageManagers: [
1127
- {
1128
- name: 'dotnet',
1129
- displayName: 'NuGet',
1130
- description: '.NET package manager',
1131
- installCommand: 'dotnet restore',
1132
- updateCommand: 'dotnet outdated --upgrade',
1133
- addCommand: 'dotnet add package',
1134
- removeCommand: 'dotnet remove package',
1135
- listCommand: 'dotnet list package',
1136
- lockFiles: ['packages.lock.json'],
1137
- configFiles: ['*.csproj', '*.fsproj', '*.vbproj'],
1138
- detectCommand: 'dotnet --version',
1139
- versionCommand: 'dotnet --version',
1140
- priority: 1,
1141
- features: [
1142
- { name: 'Package references', description: 'Modern package management', supported: true },
1143
- { name: 'Central package management', description: 'Centralized version control', supported: true }
1144
- ],
1145
- performance: {
1146
- installSpeed: 'fast',
1147
- diskUsage: 'medium',
1148
- networkEfficiency: 'excellent',
1149
- caching: 'global'
1150
- },
1151
- security: {
1152
- checksums: true,
1153
- signatures: true,
1154
- vulnerabilityScanning: true,
1155
- lockFileValidation: true
1156
- }
1157
- }
1158
- ],
1159
- configFiles: [
1160
- {
1161
- filename: '*.csproj',
1162
- description: 'C# project file',
1163
- required: true,
1164
- type: 'dependency',
1165
- parser: 'xml'
1166
- }
1167
- ],
1168
- buildFiles: ['bin', 'obj'],
1169
- sourceFileExtensions: ['.cs', '.fs', '.vb'],
1170
- frameworkDetection: [
1171
- {
1172
- framework: 'aspnet',
1173
- displayName: 'ASP.NET Core',
1174
- patterns: ['Program.cs', 'Startup.cs'],
1175
- dependencies: ['Microsoft.AspNetCore'],
1176
- popularity: 85,
1177
- category: 'backend'
1178
- }
1179
- ],
1180
- toolchain: {
1181
- interpreter: { name: '.NET', command: 'dotnet', optional: false, description: '.NET CLI' }
1182
- },
1183
- ecosystem: {
1184
- registry: { name: 'NuGet', url: 'nuget.org' },
1185
- community: { github: { repos: 600000, stars: 2500000 }, stackoverflow: { questions: 800000, activity: 'high' } },
1186
- learning: [],
1187
- trends: { githubStars: 2500000, stackoverflowQuestions: 800000, jobPostings: 150000, trendDirection: 'rising' }
1188
- },
1189
- compatibility: {
1190
- operatingSystems: ['windows', 'macos', 'linux'],
1191
- architectures: ['x64', 'arm64'],
1192
- containers: true,
1193
- cloud: [
1194
- { name: 'Azure', supported: true },
1195
- { name: 'AWS', supported: true }
1196
- ]
1197
- }
1198
1067
  }
1199
1068
  // Additional languages would be added here with full configuration...
1200
1069
  // For brevity, I'm showing the structure with key languages implemented