@configjs/cli 1.1.3 → 1.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.fr.md +1 -1
- package/README.md +40 -6
- package/dist/{check-7PYMMMZK.js → check-AJCBQBFD.js} +6 -5
- package/dist/chunk-3V72QFFY.js +383 -0
- package/dist/{install-7LTMBLVZ.js → chunk-CNAEKUBH.js} +310 -434
- package/dist/chunk-D37FHAGO.js +569 -0
- package/dist/chunk-HM2JWJOO.js +418 -0
- package/dist/chunk-MQV3WNMH.js +114 -0
- package/dist/{chunk-ZSDLWQSS.js → chunk-TVZWTKJU.js} +341 -216
- package/dist/{chunk-OJGTPK6N.js → chunk-V75HW2AM.js} +8347 -4788
- package/dist/cli.js +32 -7
- package/dist/{installed-Y76PWTXI.js → installed-WA6I2IFD.js} +4 -3
- package/dist/{list-NW6ENYK6.js → list-Y7I5NUWT.js} +3 -2
- package/dist/nextjs-command-AUVNEBHG.js +59 -0
- package/dist/nextjs-installer-RWBGWW23.js +80 -0
- package/dist/nextjs-setup-7LWMEC5I.js +100 -0
- package/dist/react-command-DTIKCCPO.js +59 -0
- package/dist/{remove-7HJKNAEX.js → remove-JBICRDXX.js} +4 -3
- package/dist/vite-installer-XIJFJ4CN.js +49 -0
- package/dist/vite-setup-3U22LJFG.js +51 -0
- package/dist/vue-command-R4XETTRT.js +73 -0
- package/dist/vue-installer-SFROF4N3.js +74 -0
- package/dist/vue-setup-X65P3CZX.js +91 -0
- package/package.json +5 -2
- package/dist/chunk-QRFLHLFE.js +0 -300
- package/dist/chunk-VJ254HJY.js +0 -214
package/README.fr.md
CHANGED
|
@@ -359,7 +359,7 @@ Les contributions sont les bienvenues ! Consultez [CONTRIBUTING.md](./docs/CONTR
|
|
|
359
359
|
|
|
360
360
|
### Développer un Plugin
|
|
361
361
|
|
|
362
|
-
Voir [PLUGIN_DEVELOPMENT.md](./docs/PLUGIN_DEVELOPMENT.md) pour créer vos propres plugins.
|
|
362
|
+
Voir [PLUGIN_DEVELOPMENT.md](./docs/PLUGIN_DEVELOPMENT.md) pour créer vos propres plugins (documentation de développement).
|
|
363
363
|
|
|
364
364
|
### Configuration de Développement
|
|
365
365
|
|
package/README.md
CHANGED
|
@@ -49,13 +49,26 @@ npx @configjs/cli react
|
|
|
49
49
|
|
|
50
50
|
**No installation required!** Use directly with `npx`:
|
|
51
51
|
|
|
52
|
+
### For React Projects
|
|
52
53
|
```bash
|
|
53
54
|
cd your-react-project
|
|
54
55
|
npx @configjs/cli react
|
|
55
56
|
```
|
|
56
57
|
|
|
58
|
+
### For Next.js Projects
|
|
59
|
+
```bash
|
|
60
|
+
cd your-nextjs-project
|
|
61
|
+
npx @configjs/cli nextjs
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### For Vue.js Projects
|
|
65
|
+
```bash
|
|
66
|
+
cd your-vue-project
|
|
67
|
+
npx @configjs/cli vue
|
|
68
|
+
```
|
|
69
|
+
|
|
57
70
|
That's it! ConfigJS will:
|
|
58
|
-
1. 🔍 **Detect** your environment (React version, TypeScript, bundler)
|
|
71
|
+
1. 🔍 **Detect** your environment (React/Next.js version, TypeScript, bundler)
|
|
59
72
|
2. 🎯 **Guide** you through library selection by category
|
|
60
73
|
3. 📦 **Install** all packages sequentially (no conflicts)
|
|
61
74
|
4. ⚙️ **Configure** everything with working code
|
|
@@ -113,9 +126,10 @@ $ npx @configjs/cli react
|
|
|
113
126
|
### 🎯 Smart Detection
|
|
114
127
|
|
|
115
128
|
ConfigJS automatically detects your project setup:
|
|
116
|
-
- ✅ **Framework & Version** (React 18/19)
|
|
129
|
+
- ✅ **Framework & Version** (React 18/19, Next.js 13/14)
|
|
130
|
+
- ✅ **Router Type** (App Router vs Pages Router for Next.js)
|
|
117
131
|
- ✅ **Language** (JavaScript/TypeScript)
|
|
118
|
-
- ✅ **Bundler** (Vite, Webpack, Create React App)
|
|
132
|
+
- ✅ **Bundler** (Vite, Webpack, Create React App, Next.js)
|
|
119
133
|
- ✅ **Package Manager** (npm, yarn, pnpm, bun)
|
|
120
134
|
- ✅ **Already Installed Libraries** (skips duplicates)
|
|
121
135
|
- ✅ **Project Structure** (adapts configuration)
|
|
@@ -263,9 +277,12 @@ ConfigJS creates a `.configjsrc` file to track installations and prevent conflic
|
|
|
263
277
|
### Commands
|
|
264
278
|
|
|
265
279
|
```bash
|
|
266
|
-
# Interactive installation
|
|
280
|
+
# Interactive installation for React
|
|
267
281
|
npx @configjs/cli react
|
|
268
282
|
|
|
283
|
+
# Interactive installation for Next.js
|
|
284
|
+
npx @configjs/cli nextjs
|
|
285
|
+
|
|
269
286
|
# List available plugins
|
|
270
287
|
npx @configjs/cli list
|
|
271
288
|
npx @configjs/cli list --category routing
|
|
@@ -280,6 +297,23 @@ npx @configjs/cli remove <plugin-name>
|
|
|
280
297
|
npx @configjs/cli check
|
|
281
298
|
```
|
|
282
299
|
|
|
300
|
+
### Next.js Support
|
|
301
|
+
|
|
302
|
+
ConfigJS fully supports Next.js projects with automatic detection of:
|
|
303
|
+
- **App Router** vs **Pages Router**
|
|
304
|
+
- Next.js-specific plugins (Image Optimization, Font Optimization, Middleware, API Routes)
|
|
305
|
+
- Compatible libraries adapted for Next.js (TailwindCSS, Shadcn/ui, React Hot Toast)
|
|
306
|
+
|
|
307
|
+
### Vue.js Support
|
|
308
|
+
|
|
309
|
+
ConfigJS fully supports Vue.js 3 projects with automatic detection of:
|
|
310
|
+
- **Composition API** vs **Options API**
|
|
311
|
+
- Vue.js-specific plugins (Vue Router, Pinia, VueUse, Vuetify)
|
|
312
|
+
- Compatible libraries adapted for Vue.js (TailwindCSS, Axios, ESLint Vue)
|
|
313
|
+
- Automatic project creation with Vite
|
|
314
|
+
|
|
315
|
+
See [Next.js Documentation](./DOCUMENTATION/NEXTJS.md) and [Vue.js Documentation](./DOCUMENTATION/VUE.md) for complete guides.
|
|
316
|
+
|
|
283
317
|
### CLI Options
|
|
284
318
|
|
|
285
319
|
```bash
|
|
@@ -359,7 +393,7 @@ Contributions are welcome! Check out [CONTRIBUTING.md](./docs/CONTRIBUTING.md) f
|
|
|
359
393
|
|
|
360
394
|
### Develop a Plugin
|
|
361
395
|
|
|
362
|
-
See [PLUGIN_DEVELOPMENT.md](./docs/PLUGIN_DEVELOPMENT.md) to create your own plugins.
|
|
396
|
+
See [PLUGIN_DEVELOPMENT.md](./docs/PLUGIN_DEVELOPMENT.md) to create your own plugins (development documentation).
|
|
363
397
|
|
|
364
398
|
### Development Setup
|
|
365
399
|
|
|
@@ -411,7 +445,7 @@ npm run build
|
|
|
411
445
|
- [ ] Conflict resolution wizard
|
|
412
446
|
|
|
413
447
|
### v2.0 (Q3 2025)
|
|
414
|
-
- [
|
|
448
|
+
- [x] Support Next.js ✅
|
|
415
449
|
- [ ] Support Remix
|
|
416
450
|
- [ ] Support Astro
|
|
417
451
|
- [ ] Web UI for configuration
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CompatibilityValidator,
|
|
3
|
-
|
|
4
|
-
} from "./chunk-
|
|
3
|
+
allCompatibilityRules
|
|
4
|
+
} from "./chunk-D37FHAGO.js";
|
|
5
5
|
import {
|
|
6
6
|
pluginRegistry
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-V75HW2AM.js";
|
|
8
|
+
import "./chunk-MQV3WNMH.js";
|
|
8
9
|
import {
|
|
9
10
|
logger
|
|
10
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-HM2JWJOO.js";
|
|
11
12
|
import "./chunk-QGM4M3NI.js";
|
|
12
13
|
|
|
13
14
|
// src/cli/commands/check.ts
|
|
@@ -71,7 +72,7 @@ async function checkCompatibility(options) {
|
|
|
71
72
|
}
|
|
72
73
|
}
|
|
73
74
|
console.log("\n\u{1F50D} Analyse de compatibilit\xE9...\n");
|
|
74
|
-
const validator = new CompatibilityValidator(
|
|
75
|
+
const validator = new CompatibilityValidator(allCompatibilityRules);
|
|
75
76
|
const validation = validator.validate(
|
|
76
77
|
selectedPlugins
|
|
77
78
|
);
|
|
@@ -0,0 +1,383 @@
|
|
|
1
|
+
// src/cli/i18n/fr.ts
|
|
2
|
+
var fr = {
|
|
3
|
+
language: {
|
|
4
|
+
select: "Choisissez votre langue",
|
|
5
|
+
options: [
|
|
6
|
+
{ value: "fr", name: "Fran\xE7ais" },
|
|
7
|
+
{ value: "en", name: "English" },
|
|
8
|
+
{ value: "es", name: "Espa\xF1ol" }
|
|
9
|
+
]
|
|
10
|
+
},
|
|
11
|
+
common: {
|
|
12
|
+
continue: "Continuer",
|
|
13
|
+
cancel: "Annuler",
|
|
14
|
+
back: "Retour",
|
|
15
|
+
none: "Aucun",
|
|
16
|
+
selected: (count) => count === 0 ? "Aucune biblioth\xE8que s\xE9lectionn\xE9e" : count === 1 ? "1 biblioth\xE8que s\xE9lectionn\xE9e" : `${count} biblioth\xE8ques s\xE9lectionn\xE9es`
|
|
17
|
+
},
|
|
18
|
+
plugins: {
|
|
19
|
+
selectCategory: (category) => `S\xE9lectionnez vos biblioth\xE8ques : ${category}`,
|
|
20
|
+
selectMultiple: "S\xE9lection multiple",
|
|
21
|
+
pressSpace: "Appuyez sur <espace> pour s\xE9lectionner",
|
|
22
|
+
pressEnter: "Appuyez sur <entr\xE9e> pour valider",
|
|
23
|
+
description: "Description"
|
|
24
|
+
},
|
|
25
|
+
detection: {
|
|
26
|
+
detecting: "\u{1F50D} D\xE9tection du contexte...",
|
|
27
|
+
framework: "Framework",
|
|
28
|
+
typescript: "TypeScript",
|
|
29
|
+
bundler: "Bundler",
|
|
30
|
+
packageManager: "Gestionnaire de paquets"
|
|
31
|
+
},
|
|
32
|
+
confirmation: {
|
|
33
|
+
summary: "\u{1F4CB} R\xE9sum\xE9 de l'installation",
|
|
34
|
+
packagesToInstall: "\u{1F4E6} Packages \xE0 installer",
|
|
35
|
+
filesToCreate: "\u{1F4DD} Fichiers qui seront cr\xE9\xE9s",
|
|
36
|
+
filesToModify: "\u{1F4DD} Fichiers qui seront modifi\xE9s",
|
|
37
|
+
continueQuestion: "Continuer avec l'installation ?"
|
|
38
|
+
},
|
|
39
|
+
installation: {
|
|
40
|
+
installing: "Installation en cours...",
|
|
41
|
+
configuring: "Configuration en cours...",
|
|
42
|
+
success: "\u2728 Installation termin\xE9e !",
|
|
43
|
+
error: "\u274C Erreur lors de l'installation",
|
|
44
|
+
rollback: "\u21BA Rollback en cours..."
|
|
45
|
+
},
|
|
46
|
+
report: {
|
|
47
|
+
title: "\u2728 Installation termin\xE9e !",
|
|
48
|
+
packagesInstalled: "\u{1F4E6} Packages install\xE9s",
|
|
49
|
+
filesCreated: "\u{1F4DD} Fichiers cr\xE9\xE9s",
|
|
50
|
+
filesModified: "\u{1F4DD} Fichiers modifi\xE9s",
|
|
51
|
+
nextSteps: "\u{1F680} Prochaines \xE9tapes"
|
|
52
|
+
},
|
|
53
|
+
errors: {
|
|
54
|
+
detectionFailed: "\xC9chec de la d\xE9tection du contexte",
|
|
55
|
+
installationFailed: "\xC9chec de l'installation",
|
|
56
|
+
validationFailed: "\xC9chec de la validation",
|
|
57
|
+
incompatiblePlugins: (plugins) => `Plugins incompatibles d\xE9tect\xE9s : ${plugins.join(", ")}`
|
|
58
|
+
},
|
|
59
|
+
vite: {
|
|
60
|
+
noReactDetected: "\u26A0\uFE0F Aucun projet React d\xE9tect\xE9 dans le r\xE9pertoire actuel.",
|
|
61
|
+
proposeSetup: "Souhaitez-vous cr\xE9er un nouveau projet React avec Vite ?",
|
|
62
|
+
projectName: "Nom du projet",
|
|
63
|
+
projectNamePlaceholder: "mon-projet-react",
|
|
64
|
+
template: "Template",
|
|
65
|
+
templateOptions: [
|
|
66
|
+
{ value: "react", name: "React (JavaScript)" },
|
|
67
|
+
{ value: "react-ts", name: "React (TypeScript)" }
|
|
68
|
+
],
|
|
69
|
+
creating: "Cr\xE9ation du projet React avec Vite...",
|
|
70
|
+
success: "\u2705 Projet cr\xE9\xE9 avec succ\xE8s !",
|
|
71
|
+
error: "\u274C Erreur lors de la cr\xE9ation du projet",
|
|
72
|
+
changingDirectory: "Changement vers le r\xE9pertoire du projet...",
|
|
73
|
+
validation: {
|
|
74
|
+
empty: "Le nom du projet ne peut pas \xEAtre vide",
|
|
75
|
+
invalid: "Le nom du projet ne peut contenir que des lettres, chiffres, tirets et underscores"
|
|
76
|
+
},
|
|
77
|
+
folderExists: (name) => `Le dossier "${name}" existe d\xE9j\xE0. Veuillez choisir un autre nom.`
|
|
78
|
+
},
|
|
79
|
+
nextjs: {
|
|
80
|
+
noNextjsDetected: "\u26A0\uFE0F Aucun projet Next.js d\xE9tect\xE9 dans le r\xE9pertoire actuel.",
|
|
81
|
+
proposeSetup: "Souhaitez-vous cr\xE9er un nouveau projet Next.js ?",
|
|
82
|
+
projectName: "Nom du projet",
|
|
83
|
+
projectNamePlaceholder: "mon-projet-nextjs",
|
|
84
|
+
typescript: "Utiliser TypeScript ?",
|
|
85
|
+
eslint: "Utiliser ESLint ?",
|
|
86
|
+
tailwind: "Utiliser TailwindCSS ?",
|
|
87
|
+
srcDir: "Utiliser le dossier src/ ?",
|
|
88
|
+
appRouter: "Utiliser App Router (recommand\xE9) ?",
|
|
89
|
+
importAlias: "Alias d'import (ex: @/*)",
|
|
90
|
+
creating: "Cr\xE9ation du projet Next.js...",
|
|
91
|
+
success: "\u2705 Projet cr\xE9\xE9 avec succ\xE8s !",
|
|
92
|
+
error: "\u274C Erreur lors de la cr\xE9ation du projet",
|
|
93
|
+
changingDirectory: "Changement vers le r\xE9pertoire du projet...",
|
|
94
|
+
validation: {
|
|
95
|
+
empty: "Le nom du projet ne peut pas \xEAtre vide",
|
|
96
|
+
invalid: "Le nom du projet ne peut contenir que des lettres, chiffres, tirets et underscores"
|
|
97
|
+
},
|
|
98
|
+
folderExists: (name) => `Le dossier "${name}" existe d\xE9j\xE0. Veuillez choisir un autre nom.`
|
|
99
|
+
},
|
|
100
|
+
vue: {
|
|
101
|
+
noVueDetected: "\u26A0\uFE0F Aucun projet Vue.js d\xE9tect\xE9 dans le r\xE9pertoire actuel.",
|
|
102
|
+
proposeSetup: "Souhaitez-vous cr\xE9er un nouveau projet Vue.js avec Vite ?",
|
|
103
|
+
projectName: "Nom du projet",
|
|
104
|
+
projectNamePlaceholder: "mon-projet-vue",
|
|
105
|
+
typescript: "Utiliser TypeScript ?",
|
|
106
|
+
router: "Utiliser Vue Router ?",
|
|
107
|
+
pinia: "Utiliser Pinia (state management) ?",
|
|
108
|
+
vitest: "Utiliser Vitest (testing) ?",
|
|
109
|
+
eslint: "Utiliser ESLint ?",
|
|
110
|
+
prettier: "Utiliser Prettier ?",
|
|
111
|
+
creating: "Cr\xE9ation du projet Vue.js avec Vite...",
|
|
112
|
+
success: "\u2705 Projet cr\xE9\xE9 avec succ\xE8s !",
|
|
113
|
+
error: "\u274C Erreur lors de la cr\xE9ation du projet",
|
|
114
|
+
changingDirectory: "Changement vers le r\xE9pertoire du projet...",
|
|
115
|
+
validation: {
|
|
116
|
+
empty: "Le nom du projet ne peut pas \xEAtre vide",
|
|
117
|
+
invalid: "Le nom du projet ne peut contenir que des lettres, chiffres, tirets et underscores"
|
|
118
|
+
},
|
|
119
|
+
folderExists: (name) => `Le dossier "${name}" existe d\xE9j\xE0. Veuillez choisir un autre nom.`
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
// src/cli/i18n/en.ts
|
|
124
|
+
var en = {
|
|
125
|
+
language: {
|
|
126
|
+
select: "Choose your language",
|
|
127
|
+
options: [
|
|
128
|
+
{ value: "fr", name: "Fran\xE7ais" },
|
|
129
|
+
{ value: "en", name: "English" },
|
|
130
|
+
{ value: "es", name: "Espa\xF1ol" }
|
|
131
|
+
]
|
|
132
|
+
},
|
|
133
|
+
common: {
|
|
134
|
+
continue: "Continue",
|
|
135
|
+
cancel: "Cancel",
|
|
136
|
+
back: "Back",
|
|
137
|
+
none: "None",
|
|
138
|
+
selected: (count) => count === 0 ? "No library selected" : count === 1 ? "1 library selected" : `${count} libraries selected`
|
|
139
|
+
},
|
|
140
|
+
plugins: {
|
|
141
|
+
selectCategory: (category) => `Select your libraries: ${category}`,
|
|
142
|
+
selectMultiple: "Multiple selection",
|
|
143
|
+
pressSpace: "Press <space> to select",
|
|
144
|
+
pressEnter: "Press <enter> to confirm",
|
|
145
|
+
description: "Description"
|
|
146
|
+
},
|
|
147
|
+
detection: {
|
|
148
|
+
detecting: "\u{1F50D} Detecting context...",
|
|
149
|
+
framework: "Framework",
|
|
150
|
+
typescript: "TypeScript",
|
|
151
|
+
bundler: "Bundler",
|
|
152
|
+
packageManager: "Package manager"
|
|
153
|
+
},
|
|
154
|
+
confirmation: {
|
|
155
|
+
summary: "\u{1F4CB} Installation Summary",
|
|
156
|
+
packagesToInstall: "\u{1F4E6} Packages to install",
|
|
157
|
+
filesToCreate: "\u{1F4DD} Files that will be created",
|
|
158
|
+
filesToModify: "\u{1F4DD} Files that will be modified",
|
|
159
|
+
continueQuestion: "Continue with installation?"
|
|
160
|
+
},
|
|
161
|
+
installation: {
|
|
162
|
+
installing: "Installing...",
|
|
163
|
+
configuring: "Configuring...",
|
|
164
|
+
success: "\u2728 Installation completed!",
|
|
165
|
+
error: "\u274C Installation error",
|
|
166
|
+
rollback: "\u21BA Rolling back..."
|
|
167
|
+
},
|
|
168
|
+
report: {
|
|
169
|
+
title: "\u2728 Installation completed!",
|
|
170
|
+
packagesInstalled: "\u{1F4E6} Installed packages",
|
|
171
|
+
filesCreated: "\u{1F4DD} Created files",
|
|
172
|
+
filesModified: "\u{1F4DD} Modified files",
|
|
173
|
+
nextSteps: "\u{1F680} Next steps"
|
|
174
|
+
},
|
|
175
|
+
errors: {
|
|
176
|
+
detectionFailed: "Context detection failed",
|
|
177
|
+
installationFailed: "Installation failed",
|
|
178
|
+
validationFailed: "Validation failed",
|
|
179
|
+
incompatiblePlugins: (plugins) => `Incompatible plugins detected: ${plugins.join(", ")}`
|
|
180
|
+
},
|
|
181
|
+
vite: {
|
|
182
|
+
noReactDetected: "\u26A0\uFE0F No React project detected in the current directory.",
|
|
183
|
+
proposeSetup: "Would you like to create a new React project with Vite?",
|
|
184
|
+
projectName: "Project name",
|
|
185
|
+
projectNamePlaceholder: "my-react-project",
|
|
186
|
+
template: "Template",
|
|
187
|
+
templateOptions: [
|
|
188
|
+
{ value: "react", name: "React (JavaScript)" },
|
|
189
|
+
{ value: "react-ts", name: "React (TypeScript)" }
|
|
190
|
+
],
|
|
191
|
+
creating: "Creating React project with Vite...",
|
|
192
|
+
success: "\u2705 Project created successfully!",
|
|
193
|
+
error: "\u274C Error creating project",
|
|
194
|
+
changingDirectory: "Changing to project directory...",
|
|
195
|
+
validation: {
|
|
196
|
+
empty: "Project name cannot be empty",
|
|
197
|
+
invalid: "Project name can only contain letters, numbers, dashes and underscores"
|
|
198
|
+
},
|
|
199
|
+
folderExists: (name) => `Folder "${name}" already exists. Please choose another name.`
|
|
200
|
+
},
|
|
201
|
+
nextjs: {
|
|
202
|
+
noNextjsDetected: "\u26A0\uFE0F No Next.js project detected in the current directory.",
|
|
203
|
+
proposeSetup: "Would you like to create a new Next.js project?",
|
|
204
|
+
projectName: "Project name",
|
|
205
|
+
projectNamePlaceholder: "my-nextjs-project",
|
|
206
|
+
typescript: "Use TypeScript?",
|
|
207
|
+
eslint: "Use ESLint?",
|
|
208
|
+
tailwind: "Use TailwindCSS?",
|
|
209
|
+
srcDir: "Use src/ directory?",
|
|
210
|
+
appRouter: "Use App Router (recommended)?",
|
|
211
|
+
importAlias: "Import alias (e.g. @/*)",
|
|
212
|
+
creating: "Creating Next.js project...",
|
|
213
|
+
success: "\u2705 Project created successfully!",
|
|
214
|
+
error: "\u274C Error creating project",
|
|
215
|
+
changingDirectory: "Changing to project directory...",
|
|
216
|
+
validation: {
|
|
217
|
+
empty: "Project name cannot be empty",
|
|
218
|
+
invalid: "Project name can only contain letters, numbers, dashes and underscores"
|
|
219
|
+
},
|
|
220
|
+
folderExists: (name) => `Folder "${name}" already exists. Please choose another name.`
|
|
221
|
+
},
|
|
222
|
+
vue: {
|
|
223
|
+
noVueDetected: "\u26A0\uFE0F No Vue.js project detected in the current directory.",
|
|
224
|
+
proposeSetup: "Would you like to create a new Vue.js project with Vite?",
|
|
225
|
+
projectName: "Project name",
|
|
226
|
+
projectNamePlaceholder: "my-vue-project",
|
|
227
|
+
typescript: "Use TypeScript?",
|
|
228
|
+
router: "Use Vue Router?",
|
|
229
|
+
pinia: "Use Pinia (state management)?",
|
|
230
|
+
vitest: "Use Vitest (testing)?",
|
|
231
|
+
eslint: "Use ESLint?",
|
|
232
|
+
prettier: "Use Prettier?",
|
|
233
|
+
creating: "Creating Vue.js project with Vite...",
|
|
234
|
+
success: "\u2705 Project created successfully!",
|
|
235
|
+
error: "\u274C Error creating project",
|
|
236
|
+
changingDirectory: "Changing to project directory...",
|
|
237
|
+
validation: {
|
|
238
|
+
empty: "Project name cannot be empty",
|
|
239
|
+
invalid: "Project name can only contain letters, numbers, dashes and underscores"
|
|
240
|
+
},
|
|
241
|
+
folderExists: (name) => `Folder "${name}" already exists. Please choose another name.`
|
|
242
|
+
}
|
|
243
|
+
};
|
|
244
|
+
|
|
245
|
+
// src/cli/i18n/es.ts
|
|
246
|
+
var es = {
|
|
247
|
+
language: {
|
|
248
|
+
select: "Elige tu idioma",
|
|
249
|
+
options: [
|
|
250
|
+
{ value: "fr", name: "Fran\xE7ais" },
|
|
251
|
+
{ value: "en", name: "English" },
|
|
252
|
+
{ value: "es", name: "Espa\xF1ol" }
|
|
253
|
+
]
|
|
254
|
+
},
|
|
255
|
+
common: {
|
|
256
|
+
continue: "Continuar",
|
|
257
|
+
cancel: "Cancelar",
|
|
258
|
+
back: "Volver",
|
|
259
|
+
none: "Ninguno",
|
|
260
|
+
selected: (count) => count === 0 ? "Ninguna biblioteca seleccionada" : count === 1 ? "1 biblioteca seleccionada" : `${count} bibliotecas seleccionadas`
|
|
261
|
+
},
|
|
262
|
+
plugins: {
|
|
263
|
+
selectCategory: (category) => `Selecciona tus bibliotecas: ${category}`,
|
|
264
|
+
selectMultiple: "Selecci\xF3n m\xFAltiple",
|
|
265
|
+
pressSpace: "Presiona <espacio> para seleccionar",
|
|
266
|
+
pressEnter: "Presiona <entrar> para confirmar",
|
|
267
|
+
description: "Descripci\xF3n"
|
|
268
|
+
},
|
|
269
|
+
detection: {
|
|
270
|
+
detecting: "\u{1F50D} Detectando contexto...",
|
|
271
|
+
framework: "Framework",
|
|
272
|
+
typescript: "TypeScript",
|
|
273
|
+
bundler: "Bundler",
|
|
274
|
+
packageManager: "Gestor de paquetes"
|
|
275
|
+
},
|
|
276
|
+
confirmation: {
|
|
277
|
+
summary: "\u{1F4CB} Resumen de la instalaci\xF3n",
|
|
278
|
+
packagesToInstall: "\u{1F4E6} Paquetes a instalar",
|
|
279
|
+
filesToCreate: "\u{1F4DD} Archivos que se crear\xE1n",
|
|
280
|
+
filesToModify: "\u{1F4DD} Archivos que se modificar\xE1n",
|
|
281
|
+
continueQuestion: "\xBFContinuar con la instalaci\xF3n?"
|
|
282
|
+
},
|
|
283
|
+
installation: {
|
|
284
|
+
installing: "Instalando...",
|
|
285
|
+
configuring: "Configurando...",
|
|
286
|
+
success: "\u2728 \xA1Instalaci\xF3n completada!",
|
|
287
|
+
error: "\u274C Error en la instalaci\xF3n",
|
|
288
|
+
rollback: "\u21BA Revirtiendo..."
|
|
289
|
+
},
|
|
290
|
+
report: {
|
|
291
|
+
title: "\u2728 \xA1Instalaci\xF3n completada!",
|
|
292
|
+
packagesInstalled: "\u{1F4E6} Paquetes instalados",
|
|
293
|
+
filesCreated: "\u{1F4DD} Archivos creados",
|
|
294
|
+
filesModified: "\u{1F4DD} Archivos modificados",
|
|
295
|
+
nextSteps: "\u{1F680} Pr\xF3ximos pasos"
|
|
296
|
+
},
|
|
297
|
+
errors: {
|
|
298
|
+
detectionFailed: "Fallo en la detecci\xF3n del contexto",
|
|
299
|
+
installationFailed: "Fallo en la instalaci\xF3n",
|
|
300
|
+
validationFailed: "Fallo en la validaci\xF3n",
|
|
301
|
+
incompatiblePlugins: (plugins) => `Plugins incompatibles detectados: ${plugins.join(", ")}`
|
|
302
|
+
},
|
|
303
|
+
vite: {
|
|
304
|
+
noReactDetected: "\u26A0\uFE0F No se detect\xF3 ning\xFAn proyecto React en el directorio actual.",
|
|
305
|
+
proposeSetup: "\xBFDesea crear un nuevo proyecto React con Vite?",
|
|
306
|
+
projectName: "Nombre del proyecto",
|
|
307
|
+
projectNamePlaceholder: "mi-proyecto-react",
|
|
308
|
+
template: "Plantilla",
|
|
309
|
+
templateOptions: [
|
|
310
|
+
{ value: "react", name: "React (JavaScript)" },
|
|
311
|
+
{ value: "react-ts", name: "React (TypeScript)" }
|
|
312
|
+
],
|
|
313
|
+
creating: "Creando proyecto React con Vite...",
|
|
314
|
+
success: "\u2705 \xA1Proyecto creado con \xE9xito!",
|
|
315
|
+
error: "\u274C Error al crear el proyecto",
|
|
316
|
+
changingDirectory: "Cambiando al directorio del proyecto...",
|
|
317
|
+
validation: {
|
|
318
|
+
empty: "El nombre del proyecto no puede estar vac\xEDo",
|
|
319
|
+
invalid: "El nombre del proyecto solo puede contener letras, n\xFAmeros, guiones y guiones bajos"
|
|
320
|
+
},
|
|
321
|
+
folderExists: (name) => `La carpeta "${name}" ya existe. Por favor, elija otro nombre.`
|
|
322
|
+
},
|
|
323
|
+
nextjs: {
|
|
324
|
+
noNextjsDetected: "\u26A0\uFE0F No se detect\xF3 ning\xFAn proyecto Next.js en el directorio actual.",
|
|
325
|
+
proposeSetup: "\xBFDesea crear un nuevo proyecto Next.js?",
|
|
326
|
+
projectName: "Nombre del proyecto",
|
|
327
|
+
projectNamePlaceholder: "mi-proyecto-nextjs",
|
|
328
|
+
typescript: "\xBFUsar TypeScript?",
|
|
329
|
+
eslint: "\xBFUsar ESLint?",
|
|
330
|
+
tailwind: "\xBFUsar TailwindCSS?",
|
|
331
|
+
srcDir: "\xBFUsar directorio src/?",
|
|
332
|
+
appRouter: "\xBFUsar App Router (recomendado)?",
|
|
333
|
+
importAlias: "Alias de importaci\xF3n (ej: @/*)",
|
|
334
|
+
creating: "Creando proyecto Next.js...",
|
|
335
|
+
success: "\u2705 \xA1Proyecto creado con \xE9xito!",
|
|
336
|
+
error: "\u274C Error al crear el proyecto",
|
|
337
|
+
changingDirectory: "Cambiando al directorio del proyecto...",
|
|
338
|
+
validation: {
|
|
339
|
+
empty: "El nombre del proyecto no puede estar vac\xEDo",
|
|
340
|
+
invalid: "El nombre del proyecto solo puede contener letras, n\xFAmeros, guiones y guiones bajos"
|
|
341
|
+
},
|
|
342
|
+
folderExists: (name) => `La carpeta "${name}" ya existe. Por favor, elija otro nombre.`
|
|
343
|
+
},
|
|
344
|
+
vue: {
|
|
345
|
+
noVueDetected: "\u26A0\uFE0F No se detect\xF3 ning\xFAn proyecto Vue.js en el directorio actual.",
|
|
346
|
+
proposeSetup: "\xBFDesea crear un nuevo proyecto Vue.js con Vite?",
|
|
347
|
+
projectName: "Nombre del proyecto",
|
|
348
|
+
projectNamePlaceholder: "mi-proyecto-vue",
|
|
349
|
+
typescript: "\xBFUsar TypeScript?",
|
|
350
|
+
router: "\xBFUsar Vue Router?",
|
|
351
|
+
pinia: "\xBFUsar Pinia (gesti\xF3n de estado)?",
|
|
352
|
+
vitest: "\xBFUsar Vitest (pruebas)?",
|
|
353
|
+
eslint: "\xBFUsar ESLint?",
|
|
354
|
+
prettier: "\xBFUsar Prettier?",
|
|
355
|
+
creating: "Creando proyecto Vue.js con Vite...",
|
|
356
|
+
success: "\u2705 \xA1Proyecto creado con \xE9xito!",
|
|
357
|
+
error: "\u274C Error al crear el proyecto",
|
|
358
|
+
changingDirectory: "Cambiando al directorio del proyecto...",
|
|
359
|
+
validation: {
|
|
360
|
+
empty: "El nombre del proyecto no puede estar vac\xEDo",
|
|
361
|
+
invalid: "El nombre del proyecto solo puede contener letras, n\xFAmeros, guiones y guiones bajos"
|
|
362
|
+
},
|
|
363
|
+
folderExists: (name) => `La carpeta "${name}" ya existe. Por favor, elija otro nombre.`
|
|
364
|
+
}
|
|
365
|
+
};
|
|
366
|
+
|
|
367
|
+
// src/cli/i18n/index.ts
|
|
368
|
+
function getTranslations(lang) {
|
|
369
|
+
switch (lang) {
|
|
370
|
+
case "fr":
|
|
371
|
+
return fr;
|
|
372
|
+
case "en":
|
|
373
|
+
return en;
|
|
374
|
+
case "es":
|
|
375
|
+
return es;
|
|
376
|
+
default:
|
|
377
|
+
return en;
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
export {
|
|
382
|
+
getTranslations
|
|
383
|
+
};
|