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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +1 -1
- data/dist/commands/add.js +109 -75
- data/dist/commands/analyze.js +43 -35
- data/dist/commands/cache.js +142 -6
- data/dist/commands/check.js +119 -72
- data/dist/commands/clean.js +230 -92
- data/dist/commands/clone.js +66 -44
- data/dist/commands/create.js +74 -53
- data/dist/commands/deploy.js +30 -22
- data/dist/commands/doctor.js +27 -28
- data/dist/commands/env.js +44 -31
- data/dist/commands/update.js +599 -113
- data/dist/commands/upgrade-cli.js +32 -24
- data/dist/index.js +58 -15
- data/dist/utils/banner.js +1 -1
- data/dist/utils/cacheManager.js +57 -124
- data/dist/utils/dependencyInstaller.js +0 -46
- data/dist/utils/featureInstaller.js +489 -153
- data/dist/utils/helpFormatter.js +110 -0
- data/dist/utils/languageConfig.js +167 -298
- data/dist/utils/pathResolver.js +34 -72
- data/dist/utils/templateResolver.js +3 -4
- data/dist/utils/utils.js +20 -5
- data/lib/package_installer_cli.rb +1 -1
- data/templates/django/django-full-stack-template/django-project-template/deployment/docker/build.sh +0 -0
- data/templates/django/django-full-stack-template/django-project-template/deployment/docker/manage.py +0 -0
- data/templates/django/django-full-stack-template/django-project-template/src/compile-locale.sh +0 -0
- data/templates/django/django-full-stack-template/django-project-template/src/compile-sass.sh +0 -0
- data/templates/django/django-full-stack-template/django-project-template/src/manage.py +0 -0
- data/templates/django/django-inertia-svelte-template/django-inertia-svelte-template-starter/manage.py +0 -0
- data/templates/flask/flask-cookiecutter-advance-template/cookiecutter-docker.sh +0 -0
- data/templates/flask/flask-cookiecutter-advance-template/{{cookiecutter.app_name}}/autoapp.py +0 -0
- data/templates/flask/flask-project-template/apply.sh +0 -0
- data/templates/react-native/typescript/template/android/gradlew +0 -0
- data/templates/ruby/rails_7_esbuild_hotwire_tailwindcss_starter/bin/bundle +0 -0
- data/templates/ruby/rails_7_esbuild_hotwire_tailwindcss_starter/bin/dev +0 -0
- data/templates/ruby/rails_7_esbuild_hotwire_tailwindcss_starter/bin/docker-entrypoint +0 -0
- data/templates/ruby/rails_7_esbuild_hotwire_tailwindcss_starter/bin/rails +0 -0
- data/templates/ruby/rails_7_esbuild_hotwire_tailwindcss_starter/bin/rake +0 -0
- data/templates/ruby/rails_7_esbuild_hotwire_tailwindcss_starter/bin/setup +0 -0
- data/templates/ruby/ruby-on-rails-apis-template/bin/bundle +0 -0
- data/templates/ruby/ruby-on-rails-apis-template/bin/rails +0 -0
- data/templates/ruby/ruby-on-rails-apis-template/bin/rake +0 -0
- data/templates/ruby/ruby-on-rails-apis-template/bin/setup +0 -0
- data/templates/ruby/ruby-on-rails-apis-template/bin/spring +0 -0
- data/templates/ruby/ruby-on-rails-apis-template/bin/update +0 -0
- data/templates/ruby/ruby-on-rails-boilerplate-template/bin/bundle +0 -0
- data/templates/ruby/ruby-on-rails-boilerplate-template/bin/dev +0 -0
- data/templates/ruby/ruby-on-rails-boilerplate-template/bin/importmap +0 -0
- data/templates/ruby/ruby-on-rails-boilerplate-template/bin/rails +0 -0
- data/templates/ruby/ruby-on-rails-boilerplate-template/bin/rake +0 -0
- data/templates/ruby/ruby-on-rails-boilerplate-template/bin/setup +0 -0
- 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:
|
|
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: '
|
|
119
|
-
displayName: '
|
|
120
|
-
description: '
|
|
121
|
-
installCommand: '
|
|
122
|
-
updateCommand: '
|
|
123
|
-
addCommand: '
|
|
124
|
-
removeCommand: '
|
|
125
|
-
listCommand: '
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
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: '
|
|
135
|
-
{ name: '
|
|
136
|
-
{ name: '
|
|
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: '
|
|
140
|
-
diskUsage: '
|
|
141
|
-
networkEfficiency: '
|
|
142
|
-
caching: '
|
|
140
|
+
installSpeed: 'fast',
|
|
141
|
+
diskUsage: 'low',
|
|
142
|
+
networkEfficiency: 'excellent',
|
|
143
|
+
caching: 'global'
|
|
143
144
|
},
|
|
144
145
|
security: {
|
|
145
146
|
checksums: true,
|
|
146
|
-
signatures:
|
|
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
|
|
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:
|
|
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
|