create-proyect-cli 1.1.0 → 2.0.1
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/.gitignore +2 -0
- package/README.md +58 -24
- package/binary-install.js +212 -0
- package/binary.js +128 -0
- package/install.js +4 -0
- package/npm-shrinkwrap.json +545 -0
- package/package.json +101 -23
- package/run-create-proyect-cli.js +4 -0
- package/.travis.yml +0 -12
- package/index.js +0 -154
package/.gitignore
ADDED
package/README.md
CHANGED
|
@@ -1,47 +1,81 @@
|
|
|
1
|
-
# Create Proyect CLI
|
|
1
|
+
# Create Proyect CLI 🚀
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](https://www.npmjs.com/package/create-proyect-cli)
|
|
4
|
+
[](https://crates.io/crates/create-proyect-cli)
|
|
5
|
+
[](https://opensource.org/licenses/ISC)
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
Este CLI te permite realizar diversas acciones relacionadas con repositorios y proyectos, proporcionando una interfaz interactiva ultrarrápida para simplificar tareas comunes. Originalmente escrito en Node.js y ahora **reescrito en Rust para un rendimiento nativo y tiempos de inicio instantáneos**.
|
|
6
8
|
|
|
7
|
-
|
|
9
|
+
Con esta herramienta puedes clonar repositorios, inicializar proyectos en múltiples lenguajes y frameworks, configurar bases de datos, contenedores Docker y gestionar dependencias de manera fluida.
|
|
8
10
|
|
|
9
|
-
|
|
11
|
+
## 📦 Instalación
|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
Gracias a su nuevo motor en Rust, puedes instalar este CLI desde el ecosistema que prefieras:
|
|
12
14
|
|
|
13
|
-
|
|
15
|
+
### Opción 1: Vía NPM (Recomendado para desarrolladores web)
|
|
14
16
|
|
|
15
|
-
|
|
17
|
+
Si ya utilizas el ecosistema de JavaScript/Node.js, instala el binario globalmente a través de npm:
|
|
16
18
|
|
|
17
|
-
|
|
19
|
+
```bash
|
|
20
|
+
npm install -g create-proyect-cli
|
|
21
|
+
```
|
|
18
22
|
|
|
19
|
-
|
|
23
|
+
### Opción 2: Vía Cargo (Para usuarios de Rust)
|
|
20
24
|
|
|
21
|
-
|
|
25
|
+
Si tienes Rust instalado en tu sistema, puedes compilar e instalar la herramienta directamente desde `crates.io`:
|
|
22
26
|
|
|
23
|
-
|
|
27
|
+
```bash
|
|
28
|
+
cargo install create-proyect-cli
|
|
29
|
+
```
|
|
24
30
|
|
|
25
|
-
|
|
31
|
+
## 💻 Uso
|
|
26
32
|
|
|
27
|
-
|
|
33
|
+
Una vez instalado, abre tu terminal en cualquier ubicación y ejecuta:
|
|
28
34
|
|
|
29
|
-
|
|
35
|
+
```bash
|
|
36
|
+
create-proyect-cli
|
|
37
|
+
```
|
|
30
38
|
|
|
31
|
-
|
|
39
|
+
El menú interactivo te guiará a través de las diferentes acciones disponibles, sin necesidad de recordar comandos o banderas complejas.
|
|
32
40
|
|
|
33
|
-
|
|
41
|
+
## 🛠️ Acciones Disponibles
|
|
34
42
|
|
|
35
|
-
|
|
43
|
+
### 1. Crear Proyecto (Generador Inteligente)
|
|
44
|
+
Genera la estructura base para nuevos proyectos. El CLI soporta múltiples ecosistemas y te guiará con configuraciones interactivas:
|
|
36
45
|
|
|
37
|
-
**
|
|
46
|
+
* **Frontend & Móvil:**
|
|
47
|
+
* Angular
|
|
48
|
+
* React
|
|
49
|
+
* Vue (Vite)
|
|
50
|
+
* Ionic
|
|
51
|
+
* **Backend Avanzado (API Express - TypeScript):**
|
|
52
|
+
* Generación de estructura escalable (rutas, controladores, middlewares).
|
|
53
|
+
* **Bases de datos:** Elección interactiva entre MySQL, MongoDB, SQL Server, MariaDB o SQLite.
|
|
54
|
+
* **ORMs:** Configuración automática de Prisma, TypeORM o Mongoose.
|
|
55
|
+
* **Documentación:** Instalación opcional de Swagger (`swagger-ui-express`).
|
|
56
|
+
* **Docker:** Generación automática de `Dockerfile` y `docker-compose.yml` vinculando tu API con la base de datos seleccionada.
|
|
57
|
+
* **Otros Lenguajes:**
|
|
58
|
+
* **Python:** Crea un proyecto base e inicializa automáticamente su entorno virtual (`venv`).
|
|
59
|
+
* **Rust:** Inicializa un proyecto nativo con Cargo.
|
|
38
60
|
|
|
39
|
-
|
|
61
|
+
### 2. Clonar Repositorio
|
|
62
|
+
Clona un repositorio Git proporcionando la URL y la ubicación destino, mostrando el progreso en tiempo real.
|
|
40
63
|
|
|
41
|
-
|
|
64
|
+
### 3. Instalar Dependencias
|
|
65
|
+
Navega automáticamente a la ubicación de tu proyecto y ejecuta la instalación de dependencias (`npm install`) en segundo plano.
|
|
42
66
|
|
|
43
|
-
|
|
67
|
+
### 4. Eliminar Repositorio Local
|
|
68
|
+
Borra de forma segura y recursiva un directorio o repositorio local especificando su ruta.
|
|
44
69
|
|
|
45
|
-
|
|
70
|
+
## 🤝 Contribuir
|
|
46
71
|
|
|
47
|
-
|
|
72
|
+
Si encuentras errores, tienes sugerencias de mejora o deseas agregar soporte para nuevos lenguajes, no dudes en crear un *issue* o enviar un *pull request* en el repositorio oficial.
|
|
73
|
+
|
|
74
|
+
**¡Gracias por usar este CLI! Esperamos que acelere la creación de todos tus proyectos.**
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## 📄 Licencia y Autoría
|
|
79
|
+
|
|
80
|
+
* **Autor:** Carlos Ignacio Olano Mares
|
|
81
|
+
* **Licencia:** GPL
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
const { createWriteStream, existsSync, mkdirSync, mkdtemp } = require("fs");
|
|
2
|
+
const { join, sep } = require("path");
|
|
3
|
+
const { spawnSync } = require("child_process");
|
|
4
|
+
const { tmpdir } = require("os");
|
|
5
|
+
|
|
6
|
+
const axios = require("axios");
|
|
7
|
+
const rimraf = require("rimraf");
|
|
8
|
+
const tmpDir = tmpdir();
|
|
9
|
+
|
|
10
|
+
const error = (msg) => {
|
|
11
|
+
console.error(msg);
|
|
12
|
+
process.exit(1);
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
class Package {
|
|
16
|
+
constructor(platform, name, url, filename, zipExt, binaries) {
|
|
17
|
+
let errors = [];
|
|
18
|
+
if (typeof url !== "string") {
|
|
19
|
+
errors.push("url must be a string");
|
|
20
|
+
} else {
|
|
21
|
+
try {
|
|
22
|
+
new URL(url);
|
|
23
|
+
} catch (e) {
|
|
24
|
+
errors.push(e);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
if (name && typeof name !== "string") {
|
|
28
|
+
errors.push("package name must be a string");
|
|
29
|
+
}
|
|
30
|
+
if (!name) {
|
|
31
|
+
errors.push("You must specify the name of your package");
|
|
32
|
+
}
|
|
33
|
+
if (binaries && typeof binaries !== "object") {
|
|
34
|
+
errors.push("binaries must be a string => string map");
|
|
35
|
+
}
|
|
36
|
+
if (!binaries) {
|
|
37
|
+
errors.push("You must specify the binaries in the package");
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
if (errors.length > 0) {
|
|
41
|
+
let errorMsg =
|
|
42
|
+
"One or more of the parameters you passed to the Binary constructor are invalid:\n";
|
|
43
|
+
errors.forEach((error) => {
|
|
44
|
+
errorMsg += error;
|
|
45
|
+
});
|
|
46
|
+
errorMsg +=
|
|
47
|
+
'\n\nCorrect usage: new Package("my-binary", "https://example.com/binary/download.tar.gz", {"my-binary": "my-binary"})';
|
|
48
|
+
error(errorMsg);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
this.platform = platform;
|
|
52
|
+
this.url = url;
|
|
53
|
+
this.name = name;
|
|
54
|
+
this.filename = filename;
|
|
55
|
+
this.zipExt = zipExt;
|
|
56
|
+
this.installDirectory = join(__dirname, "node_modules", ".bin_real");
|
|
57
|
+
this.binaries = binaries;
|
|
58
|
+
|
|
59
|
+
if (!existsSync(this.installDirectory)) {
|
|
60
|
+
mkdirSync(this.installDirectory, { recursive: true });
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
exists() {
|
|
65
|
+
for (const binaryName in this.binaries) {
|
|
66
|
+
const binRelPath = this.binaries[binaryName];
|
|
67
|
+
const binPath = join(this.installDirectory, binRelPath);
|
|
68
|
+
if (!existsSync(binPath)) {
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
install(fetchOptions, suppressLogs = false) {
|
|
76
|
+
if (this.exists()) {
|
|
77
|
+
if (!suppressLogs) {
|
|
78
|
+
console.error(
|
|
79
|
+
`${this.name} is already installed, skipping installation.`,
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
return Promise.resolve();
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
if (existsSync(this.installDirectory)) {
|
|
86
|
+
rimraf.sync(this.installDirectory);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
mkdirSync(this.installDirectory, { recursive: true });
|
|
90
|
+
|
|
91
|
+
if (!suppressLogs) {
|
|
92
|
+
console.error(`Downloading release from ${this.url}`);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
return axios({ ...fetchOptions, url: this.url, responseType: "stream" })
|
|
96
|
+
.then((res) => {
|
|
97
|
+
return new Promise((resolve, reject) => {
|
|
98
|
+
mkdtemp(`${tmpDir}${sep}`, (err, directory) => {
|
|
99
|
+
let tempFile = join(directory, this.filename);
|
|
100
|
+
const sink = res.data.pipe(createWriteStream(tempFile));
|
|
101
|
+
sink.on("error", (err) => reject(err));
|
|
102
|
+
sink.on("close", () => {
|
|
103
|
+
if (/\.tar\.*/.test(this.zipExt)) {
|
|
104
|
+
const result = spawnSync("tar", [
|
|
105
|
+
"xf",
|
|
106
|
+
tempFile,
|
|
107
|
+
// The tarballs are stored with a leading directory
|
|
108
|
+
// component; we strip one component in the
|
|
109
|
+
// shell installers too.
|
|
110
|
+
"--strip-components",
|
|
111
|
+
"1",
|
|
112
|
+
"-C",
|
|
113
|
+
this.installDirectory,
|
|
114
|
+
]);
|
|
115
|
+
if (result.status == 0) {
|
|
116
|
+
resolve();
|
|
117
|
+
} else if (result.error) {
|
|
118
|
+
reject(result.error);
|
|
119
|
+
} else {
|
|
120
|
+
reject(
|
|
121
|
+
new Error(
|
|
122
|
+
`An error occurred untarring the artifact: stdout: ${result.stdout}; stderr: ${result.stderr}`,
|
|
123
|
+
),
|
|
124
|
+
);
|
|
125
|
+
}
|
|
126
|
+
} else if (this.zipExt == ".zip") {
|
|
127
|
+
let result;
|
|
128
|
+
if (this.platform.artifactName.includes("windows")) {
|
|
129
|
+
// Windows does not have "unzip" by default on many installations, instead
|
|
130
|
+
// we use Expand-Archive from powershell
|
|
131
|
+
result = spawnSync("powershell.exe", [
|
|
132
|
+
"-NoProfile",
|
|
133
|
+
"-NonInteractive",
|
|
134
|
+
"-Command",
|
|
135
|
+
`& {
|
|
136
|
+
param([string]$LiteralPath, [string]$DestinationPath)
|
|
137
|
+
Expand-Archive -LiteralPath $LiteralPath -DestinationPath $DestinationPath -Force
|
|
138
|
+
}`,
|
|
139
|
+
tempFile,
|
|
140
|
+
this.installDirectory,
|
|
141
|
+
]);
|
|
142
|
+
} else {
|
|
143
|
+
result = spawnSync("unzip", [
|
|
144
|
+
"-q",
|
|
145
|
+
tempFile,
|
|
146
|
+
"-d",
|
|
147
|
+
this.installDirectory,
|
|
148
|
+
]);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
if (result.status == 0) {
|
|
152
|
+
resolve();
|
|
153
|
+
} else if (result.error) {
|
|
154
|
+
reject(result.error);
|
|
155
|
+
} else {
|
|
156
|
+
reject(
|
|
157
|
+
new Error(
|
|
158
|
+
`An error occurred unzipping the artifact: stdout: ${result.stdout}; stderr: ${result.stderr}`,
|
|
159
|
+
),
|
|
160
|
+
);
|
|
161
|
+
}
|
|
162
|
+
} else {
|
|
163
|
+
reject(
|
|
164
|
+
new Error(`Unrecognized file extension: ${this.zipExt}`),
|
|
165
|
+
);
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
})
|
|
171
|
+
.then(() => {
|
|
172
|
+
if (!suppressLogs) {
|
|
173
|
+
console.error(`${this.name} has been installed!`);
|
|
174
|
+
}
|
|
175
|
+
})
|
|
176
|
+
.catch((e) => {
|
|
177
|
+
error(`Error fetching release: ${e.message}`);
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
run(binaryName, fetchOptions) {
|
|
182
|
+
const promise = !this.exists()
|
|
183
|
+
? this.install(fetchOptions, true)
|
|
184
|
+
: Promise.resolve();
|
|
185
|
+
|
|
186
|
+
promise
|
|
187
|
+
.then(() => {
|
|
188
|
+
const [, , ...args] = process.argv;
|
|
189
|
+
|
|
190
|
+
const options = { cwd: process.cwd(), stdio: "inherit" };
|
|
191
|
+
|
|
192
|
+
const binRelPath = this.binaries[binaryName];
|
|
193
|
+
if (!binRelPath) {
|
|
194
|
+
error(`${binaryName} is not a known binary in ${this.name}`);
|
|
195
|
+
}
|
|
196
|
+
const binPath = join(this.installDirectory, binRelPath);
|
|
197
|
+
const result = spawnSync(binPath, args, options);
|
|
198
|
+
|
|
199
|
+
if (result.error) {
|
|
200
|
+
error(result.error);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
process.exit(result.status);
|
|
204
|
+
})
|
|
205
|
+
.catch((e) => {
|
|
206
|
+
error(e.message);
|
|
207
|
+
process.exit(1);
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
module.exports.Package = Package;
|
package/binary.js
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
const { Package } = require("./binary-install");
|
|
2
|
+
const os = require("os");
|
|
3
|
+
const cTable = require("console.table");
|
|
4
|
+
const libc = require("detect-libc");
|
|
5
|
+
const { configureProxy } = require("axios-proxy-builder");
|
|
6
|
+
|
|
7
|
+
const error = (msg) => {
|
|
8
|
+
console.error(msg);
|
|
9
|
+
process.exit(1);
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
const {
|
|
13
|
+
name,
|
|
14
|
+
artifactDownloadUrls,
|
|
15
|
+
supportedPlatforms,
|
|
16
|
+
glibcMinimum,
|
|
17
|
+
} = require("./package.json");
|
|
18
|
+
|
|
19
|
+
// FIXME: implement NPM installer handling of fallback download URLs
|
|
20
|
+
const artifactDownloadUrl = artifactDownloadUrls[0];
|
|
21
|
+
const builderGlibcMajorVersion = glibcMinimum.major;
|
|
22
|
+
const builderGlibcMinorVersion = glibcMinimum.series;
|
|
23
|
+
|
|
24
|
+
const getPlatform = () => {
|
|
25
|
+
const rawOsType = os.type();
|
|
26
|
+
const rawArchitecture = os.arch();
|
|
27
|
+
|
|
28
|
+
// We want to use rust-style target triples as the canonical key
|
|
29
|
+
// for a platform, so translate the "os" library's concepts into rust ones
|
|
30
|
+
let osType = "";
|
|
31
|
+
switch (rawOsType) {
|
|
32
|
+
case "Windows_NT":
|
|
33
|
+
osType = "pc-windows-msvc";
|
|
34
|
+
break;
|
|
35
|
+
case "Darwin":
|
|
36
|
+
osType = "apple-darwin";
|
|
37
|
+
break;
|
|
38
|
+
case "Linux":
|
|
39
|
+
osType = "unknown-linux-gnu";
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
let arch = "";
|
|
44
|
+
switch (rawArchitecture) {
|
|
45
|
+
case "x64":
|
|
46
|
+
arch = "x86_64";
|
|
47
|
+
break;
|
|
48
|
+
case "arm64":
|
|
49
|
+
arch = "aarch64";
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
if (rawOsType === "Linux") {
|
|
54
|
+
if (libc.familySync() == "musl") {
|
|
55
|
+
osType = "unknown-linux-musl-dynamic";
|
|
56
|
+
} else if (libc.isNonGlibcLinuxSync()) {
|
|
57
|
+
console.warn(
|
|
58
|
+
"Your libc is neither glibc nor musl; trying static musl binary instead",
|
|
59
|
+
);
|
|
60
|
+
osType = "unknown-linux-musl-static";
|
|
61
|
+
} else {
|
|
62
|
+
let libcVersion = libc.versionSync();
|
|
63
|
+
let splitLibcVersion = libcVersion.split(".");
|
|
64
|
+
let libcMajorVersion = splitLibcVersion[0];
|
|
65
|
+
let libcMinorVersion = splitLibcVersion[1];
|
|
66
|
+
if (
|
|
67
|
+
libcMajorVersion != builderGlibcMajorVersion ||
|
|
68
|
+
libcMinorVersion < builderGlibcMinorVersion
|
|
69
|
+
) {
|
|
70
|
+
// We can't run the glibc binaries, but we can run the static musl ones
|
|
71
|
+
// if they exist
|
|
72
|
+
console.warn(
|
|
73
|
+
"Your glibc isn't compatible; trying static musl binary instead",
|
|
74
|
+
);
|
|
75
|
+
osType = "unknown-linux-musl-static";
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// Assume the above succeeded and build a target triple to look things up with.
|
|
81
|
+
// If any of it failed, this lookup will fail and we'll handle it like normal.
|
|
82
|
+
let targetTriple = `${arch}-${osType}`;
|
|
83
|
+
let platform = supportedPlatforms[targetTriple];
|
|
84
|
+
|
|
85
|
+
if (!platform) {
|
|
86
|
+
error(
|
|
87
|
+
`Platform with type "${rawOsType}" and architecture "${rawArchitecture}" is not supported by ${name}.\nYour system must be one of the following:\n\n${Object.keys(
|
|
88
|
+
supportedPlatforms,
|
|
89
|
+
).join(",")}`,
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
return platform;
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
const getPackage = () => {
|
|
97
|
+
const platform = getPlatform();
|
|
98
|
+
const url = `${artifactDownloadUrl}/${platform.artifactName}`;
|
|
99
|
+
let filename = platform.artifactName;
|
|
100
|
+
let ext = platform.zipExt;
|
|
101
|
+
let binary = new Package(platform, name, url, filename, ext, platform.bins);
|
|
102
|
+
|
|
103
|
+
return binary;
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
const install = (suppressLogs) => {
|
|
107
|
+
if (!artifactDownloadUrl || artifactDownloadUrl.length === 0) {
|
|
108
|
+
console.warn("in demo mode, not installing binaries");
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
const package = getPackage();
|
|
112
|
+
const proxy = configureProxy(package.url);
|
|
113
|
+
|
|
114
|
+
return package.install(proxy, suppressLogs);
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
const run = (binaryName) => {
|
|
118
|
+
const package = getPackage();
|
|
119
|
+
const proxy = configureProxy(package.url);
|
|
120
|
+
|
|
121
|
+
package.run(binaryName, proxy);
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
module.exports = {
|
|
125
|
+
install,
|
|
126
|
+
run,
|
|
127
|
+
getPackage,
|
|
128
|
+
};
|
package/install.js
ADDED
|
@@ -0,0 +1,545 @@
|
|
|
1
|
+
{
|
|
2
|
+
"lockfileVersion": 3,
|
|
3
|
+
"name": "create-proyect-cli",
|
|
4
|
+
"packages": {
|
|
5
|
+
"": {
|
|
6
|
+
"bin": {
|
|
7
|
+
"create-proyect-cli": "run-create-proyect-cli.js"
|
|
8
|
+
},
|
|
9
|
+
"dependencies": {
|
|
10
|
+
"axios": "^1.13.5",
|
|
11
|
+
"axios-proxy-builder": "^0.1.2",
|
|
12
|
+
"console.table": "^0.10.0",
|
|
13
|
+
"detect-libc": "^2.1.2",
|
|
14
|
+
"rimraf": "^6.1.3"
|
|
15
|
+
},
|
|
16
|
+
"devDependencies": {
|
|
17
|
+
"prettier": "^3.8.1"
|
|
18
|
+
},
|
|
19
|
+
"engines": {
|
|
20
|
+
"node": ">=14",
|
|
21
|
+
"npm": ">=6"
|
|
22
|
+
},
|
|
23
|
+
"hasInstallScript": true,
|
|
24
|
+
"name": "create-proyect-cli",
|
|
25
|
+
"version": "2.0.1"
|
|
26
|
+
},
|
|
27
|
+
"node_modules/@isaacs/cliui": {
|
|
28
|
+
"engines": {
|
|
29
|
+
"node": ">=18"
|
|
30
|
+
},
|
|
31
|
+
"integrity": "sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==",
|
|
32
|
+
"license": "BlueOak-1.0.0",
|
|
33
|
+
"resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-9.0.0.tgz",
|
|
34
|
+
"version": "9.0.0"
|
|
35
|
+
},
|
|
36
|
+
"node_modules/asynckit": {
|
|
37
|
+
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
|
|
38
|
+
"license": "MIT",
|
|
39
|
+
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
|
40
|
+
"version": "0.4.0"
|
|
41
|
+
},
|
|
42
|
+
"node_modules/axios": {
|
|
43
|
+
"dependencies": {
|
|
44
|
+
"follow-redirects": "^1.15.11",
|
|
45
|
+
"form-data": "^4.0.5",
|
|
46
|
+
"proxy-from-env": "^1.1.0"
|
|
47
|
+
},
|
|
48
|
+
"integrity": "sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q==",
|
|
49
|
+
"license": "MIT",
|
|
50
|
+
"resolved": "https://registry.npmjs.org/axios/-/axios-1.13.5.tgz",
|
|
51
|
+
"version": "1.13.5"
|
|
52
|
+
},
|
|
53
|
+
"node_modules/axios-proxy-builder": {
|
|
54
|
+
"dependencies": {
|
|
55
|
+
"tunnel": "^0.0.6"
|
|
56
|
+
},
|
|
57
|
+
"integrity": "sha512-6uBVsBZzkB3tCC8iyx59mCjQckhB8+GQrI9Cop8eC7ybIsvs/KtnNgEBfRMSEa7GqK2VBGUzgjNYMdPIfotyPA==",
|
|
58
|
+
"license": "MIT",
|
|
59
|
+
"resolved": "https://registry.npmjs.org/axios-proxy-builder/-/axios-proxy-builder-0.1.2.tgz",
|
|
60
|
+
"version": "0.1.2"
|
|
61
|
+
},
|
|
62
|
+
"node_modules/balanced-match": {
|
|
63
|
+
"dependencies": {
|
|
64
|
+
"jackspeak": "^4.2.3"
|
|
65
|
+
},
|
|
66
|
+
"engines": {
|
|
67
|
+
"node": "20 || >=22"
|
|
68
|
+
},
|
|
69
|
+
"integrity": "sha512-x0K50QvKQ97fdEz2kPehIerj+YTeptKF9hyYkKf6egnwmMWAkADiO0QCzSp0R5xN8FTZgYaBfSaue46Ej62nMg==",
|
|
70
|
+
"license": "MIT",
|
|
71
|
+
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.2.tgz",
|
|
72
|
+
"version": "4.0.2"
|
|
73
|
+
},
|
|
74
|
+
"node_modules/brace-expansion": {
|
|
75
|
+
"dependencies": {
|
|
76
|
+
"balanced-match": "^4.0.2"
|
|
77
|
+
},
|
|
78
|
+
"engines": {
|
|
79
|
+
"node": "20 || >=22"
|
|
80
|
+
},
|
|
81
|
+
"integrity": "sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==",
|
|
82
|
+
"license": "MIT",
|
|
83
|
+
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.2.tgz",
|
|
84
|
+
"version": "5.0.2"
|
|
85
|
+
},
|
|
86
|
+
"node_modules/call-bind-apply-helpers": {
|
|
87
|
+
"dependencies": {
|
|
88
|
+
"es-errors": "^1.3.0",
|
|
89
|
+
"function-bind": "^1.1.2"
|
|
90
|
+
},
|
|
91
|
+
"engines": {
|
|
92
|
+
"node": ">= 0.4"
|
|
93
|
+
},
|
|
94
|
+
"integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
|
|
95
|
+
"license": "MIT",
|
|
96
|
+
"resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
|
|
97
|
+
"version": "1.0.2"
|
|
98
|
+
},
|
|
99
|
+
"node_modules/clone": {
|
|
100
|
+
"engines": {
|
|
101
|
+
"node": ">=0.8"
|
|
102
|
+
},
|
|
103
|
+
"integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==",
|
|
104
|
+
"license": "MIT",
|
|
105
|
+
"optional": true,
|
|
106
|
+
"resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
|
|
107
|
+
"version": "1.0.4"
|
|
108
|
+
},
|
|
109
|
+
"node_modules/combined-stream": {
|
|
110
|
+
"dependencies": {
|
|
111
|
+
"delayed-stream": "~1.0.0"
|
|
112
|
+
},
|
|
113
|
+
"engines": {
|
|
114
|
+
"node": ">= 0.8"
|
|
115
|
+
},
|
|
116
|
+
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
|
|
117
|
+
"license": "MIT",
|
|
118
|
+
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
|
|
119
|
+
"version": "1.0.8"
|
|
120
|
+
},
|
|
121
|
+
"node_modules/console.table": {
|
|
122
|
+
"dependencies": {
|
|
123
|
+
"easy-table": "1.1.0"
|
|
124
|
+
},
|
|
125
|
+
"engines": {
|
|
126
|
+
"node": "> 0.10"
|
|
127
|
+
},
|
|
128
|
+
"integrity": "sha512-dPyZofqggxuvSf7WXvNjuRfnsOk1YazkVP8FdxH4tcH2c37wc79/Yl6Bhr7Lsu00KMgy2ql/qCMuNu8xctZM8g==",
|
|
129
|
+
"license": "MIT",
|
|
130
|
+
"resolved": "https://registry.npmjs.org/console.table/-/console.table-0.10.0.tgz",
|
|
131
|
+
"version": "0.10.0"
|
|
132
|
+
},
|
|
133
|
+
"node_modules/defaults": {
|
|
134
|
+
"dependencies": {
|
|
135
|
+
"clone": "^1.0.2"
|
|
136
|
+
},
|
|
137
|
+
"funding": {
|
|
138
|
+
"url": "https://github.com/sponsors/sindresorhus"
|
|
139
|
+
},
|
|
140
|
+
"integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==",
|
|
141
|
+
"license": "MIT",
|
|
142
|
+
"optional": true,
|
|
143
|
+
"resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz",
|
|
144
|
+
"version": "1.0.4"
|
|
145
|
+
},
|
|
146
|
+
"node_modules/delayed-stream": {
|
|
147
|
+
"engines": {
|
|
148
|
+
"node": ">=0.4.0"
|
|
149
|
+
},
|
|
150
|
+
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
|
|
151
|
+
"license": "MIT",
|
|
152
|
+
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
|
153
|
+
"version": "1.0.0"
|
|
154
|
+
},
|
|
155
|
+
"node_modules/detect-libc": {
|
|
156
|
+
"engines": {
|
|
157
|
+
"node": ">=8"
|
|
158
|
+
},
|
|
159
|
+
"integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
|
|
160
|
+
"license": "Apache-2.0",
|
|
161
|
+
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
|
|
162
|
+
"version": "2.1.2"
|
|
163
|
+
},
|
|
164
|
+
"node_modules/dunder-proto": {
|
|
165
|
+
"dependencies": {
|
|
166
|
+
"call-bind-apply-helpers": "^1.0.1",
|
|
167
|
+
"es-errors": "^1.3.0",
|
|
168
|
+
"gopd": "^1.2.0"
|
|
169
|
+
},
|
|
170
|
+
"engines": {
|
|
171
|
+
"node": ">= 0.4"
|
|
172
|
+
},
|
|
173
|
+
"integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
|
|
174
|
+
"license": "MIT",
|
|
175
|
+
"resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
|
|
176
|
+
"version": "1.0.1"
|
|
177
|
+
},
|
|
178
|
+
"node_modules/easy-table": {
|
|
179
|
+
"integrity": "sha512-oq33hWOSSnl2Hoh00tZWaIPi1ievrD9aFG82/IgjlycAnW9hHx5PkJiXpxPsgEE+H7BsbVQXFVFST8TEXS6/pA==",
|
|
180
|
+
"license": "MIT",
|
|
181
|
+
"optionalDependencies": {
|
|
182
|
+
"wcwidth": ">=1.0.1"
|
|
183
|
+
},
|
|
184
|
+
"resolved": "https://registry.npmjs.org/easy-table/-/easy-table-1.1.0.tgz",
|
|
185
|
+
"version": "1.1.0"
|
|
186
|
+
},
|
|
187
|
+
"node_modules/es-define-property": {
|
|
188
|
+
"engines": {
|
|
189
|
+
"node": ">= 0.4"
|
|
190
|
+
},
|
|
191
|
+
"integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
|
|
192
|
+
"license": "MIT",
|
|
193
|
+
"resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
|
|
194
|
+
"version": "1.0.1"
|
|
195
|
+
},
|
|
196
|
+
"node_modules/es-errors": {
|
|
197
|
+
"engines": {
|
|
198
|
+
"node": ">= 0.4"
|
|
199
|
+
},
|
|
200
|
+
"integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
|
|
201
|
+
"license": "MIT",
|
|
202
|
+
"resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
|
|
203
|
+
"version": "1.3.0"
|
|
204
|
+
},
|
|
205
|
+
"node_modules/es-object-atoms": {
|
|
206
|
+
"dependencies": {
|
|
207
|
+
"es-errors": "^1.3.0"
|
|
208
|
+
},
|
|
209
|
+
"engines": {
|
|
210
|
+
"node": ">= 0.4"
|
|
211
|
+
},
|
|
212
|
+
"integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
|
|
213
|
+
"license": "MIT",
|
|
214
|
+
"resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
|
|
215
|
+
"version": "1.1.1"
|
|
216
|
+
},
|
|
217
|
+
"node_modules/es-set-tostringtag": {
|
|
218
|
+
"dependencies": {
|
|
219
|
+
"es-errors": "^1.3.0",
|
|
220
|
+
"get-intrinsic": "^1.2.6",
|
|
221
|
+
"has-tostringtag": "^1.0.2",
|
|
222
|
+
"hasown": "^2.0.2"
|
|
223
|
+
},
|
|
224
|
+
"engines": {
|
|
225
|
+
"node": ">= 0.4"
|
|
226
|
+
},
|
|
227
|
+
"integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
|
|
228
|
+
"license": "MIT",
|
|
229
|
+
"resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
|
|
230
|
+
"version": "2.1.0"
|
|
231
|
+
},
|
|
232
|
+
"node_modules/follow-redirects": {
|
|
233
|
+
"engines": {
|
|
234
|
+
"node": ">=4.0"
|
|
235
|
+
},
|
|
236
|
+
"funding": [
|
|
237
|
+
{
|
|
238
|
+
"type": "individual",
|
|
239
|
+
"url": "https://github.com/sponsors/RubenVerborgh"
|
|
240
|
+
}
|
|
241
|
+
],
|
|
242
|
+
"integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==",
|
|
243
|
+
"license": "MIT",
|
|
244
|
+
"peerDependenciesMeta": {
|
|
245
|
+
"debug": {
|
|
246
|
+
"optional": true
|
|
247
|
+
}
|
|
248
|
+
},
|
|
249
|
+
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz",
|
|
250
|
+
"version": "1.15.11"
|
|
251
|
+
},
|
|
252
|
+
"node_modules/form-data": {
|
|
253
|
+
"dependencies": {
|
|
254
|
+
"asynckit": "^0.4.0",
|
|
255
|
+
"combined-stream": "^1.0.8",
|
|
256
|
+
"es-set-tostringtag": "^2.1.0",
|
|
257
|
+
"hasown": "^2.0.2",
|
|
258
|
+
"mime-types": "^2.1.12"
|
|
259
|
+
},
|
|
260
|
+
"engines": {
|
|
261
|
+
"node": ">= 6"
|
|
262
|
+
},
|
|
263
|
+
"integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==",
|
|
264
|
+
"license": "MIT",
|
|
265
|
+
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz",
|
|
266
|
+
"version": "4.0.5"
|
|
267
|
+
},
|
|
268
|
+
"node_modules/function-bind": {
|
|
269
|
+
"funding": {
|
|
270
|
+
"url": "https://github.com/sponsors/ljharb"
|
|
271
|
+
},
|
|
272
|
+
"integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
|
|
273
|
+
"license": "MIT",
|
|
274
|
+
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
|
|
275
|
+
"version": "1.1.2"
|
|
276
|
+
},
|
|
277
|
+
"node_modules/get-intrinsic": {
|
|
278
|
+
"dependencies": {
|
|
279
|
+
"call-bind-apply-helpers": "^1.0.2",
|
|
280
|
+
"es-define-property": "^1.0.1",
|
|
281
|
+
"es-errors": "^1.3.0",
|
|
282
|
+
"es-object-atoms": "^1.1.1",
|
|
283
|
+
"function-bind": "^1.1.2",
|
|
284
|
+
"get-proto": "^1.0.1",
|
|
285
|
+
"gopd": "^1.2.0",
|
|
286
|
+
"has-symbols": "^1.1.0",
|
|
287
|
+
"hasown": "^2.0.2",
|
|
288
|
+
"math-intrinsics": "^1.1.0"
|
|
289
|
+
},
|
|
290
|
+
"engines": {
|
|
291
|
+
"node": ">= 0.4"
|
|
292
|
+
},
|
|
293
|
+
"funding": {
|
|
294
|
+
"url": "https://github.com/sponsors/ljharb"
|
|
295
|
+
},
|
|
296
|
+
"integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
|
|
297
|
+
"license": "MIT",
|
|
298
|
+
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
|
|
299
|
+
"version": "1.3.0"
|
|
300
|
+
},
|
|
301
|
+
"node_modules/get-proto": {
|
|
302
|
+
"dependencies": {
|
|
303
|
+
"dunder-proto": "^1.0.1",
|
|
304
|
+
"es-object-atoms": "^1.0.0"
|
|
305
|
+
},
|
|
306
|
+
"engines": {
|
|
307
|
+
"node": ">= 0.4"
|
|
308
|
+
},
|
|
309
|
+
"integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
|
|
310
|
+
"license": "MIT",
|
|
311
|
+
"resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
|
|
312
|
+
"version": "1.0.1"
|
|
313
|
+
},
|
|
314
|
+
"node_modules/glob": {
|
|
315
|
+
"dependencies": {
|
|
316
|
+
"minimatch": "^10.2.0",
|
|
317
|
+
"minipass": "^7.1.2",
|
|
318
|
+
"path-scurry": "^2.0.0"
|
|
319
|
+
},
|
|
320
|
+
"engines": {
|
|
321
|
+
"node": "20 || >=22"
|
|
322
|
+
},
|
|
323
|
+
"funding": {
|
|
324
|
+
"url": "https://github.com/sponsors/isaacs"
|
|
325
|
+
},
|
|
326
|
+
"integrity": "sha512-/g3B0mC+4x724v1TgtBlBtt2hPi/EWptsIAmXUx9Z2rvBYleQcsrmaOzd5LyL50jf/Soi83ZDJmw2+XqvH/EeA==",
|
|
327
|
+
"license": "BlueOak-1.0.0",
|
|
328
|
+
"resolved": "https://registry.npmjs.org/glob/-/glob-13.0.3.tgz",
|
|
329
|
+
"version": "13.0.3"
|
|
330
|
+
},
|
|
331
|
+
"node_modules/gopd": {
|
|
332
|
+
"engines": {
|
|
333
|
+
"node": ">= 0.4"
|
|
334
|
+
},
|
|
335
|
+
"funding": {
|
|
336
|
+
"url": "https://github.com/sponsors/ljharb"
|
|
337
|
+
},
|
|
338
|
+
"integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
|
|
339
|
+
"license": "MIT",
|
|
340
|
+
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
|
|
341
|
+
"version": "1.2.0"
|
|
342
|
+
},
|
|
343
|
+
"node_modules/has-symbols": {
|
|
344
|
+
"engines": {
|
|
345
|
+
"node": ">= 0.4"
|
|
346
|
+
},
|
|
347
|
+
"funding": {
|
|
348
|
+
"url": "https://github.com/sponsors/ljharb"
|
|
349
|
+
},
|
|
350
|
+
"integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
|
|
351
|
+
"license": "MIT",
|
|
352
|
+
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
|
|
353
|
+
"version": "1.1.0"
|
|
354
|
+
},
|
|
355
|
+
"node_modules/has-tostringtag": {
|
|
356
|
+
"dependencies": {
|
|
357
|
+
"has-symbols": "^1.0.3"
|
|
358
|
+
},
|
|
359
|
+
"engines": {
|
|
360
|
+
"node": ">= 0.4"
|
|
361
|
+
},
|
|
362
|
+
"funding": {
|
|
363
|
+
"url": "https://github.com/sponsors/ljharb"
|
|
364
|
+
},
|
|
365
|
+
"integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
|
|
366
|
+
"license": "MIT",
|
|
367
|
+
"resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
|
|
368
|
+
"version": "1.0.2"
|
|
369
|
+
},
|
|
370
|
+
"node_modules/hasown": {
|
|
371
|
+
"dependencies": {
|
|
372
|
+
"function-bind": "^1.1.2"
|
|
373
|
+
},
|
|
374
|
+
"engines": {
|
|
375
|
+
"node": ">= 0.4"
|
|
376
|
+
},
|
|
377
|
+
"integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
|
|
378
|
+
"license": "MIT",
|
|
379
|
+
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
|
|
380
|
+
"version": "2.0.2"
|
|
381
|
+
},
|
|
382
|
+
"node_modules/jackspeak": {
|
|
383
|
+
"dependencies": {
|
|
384
|
+
"@isaacs/cliui": "^9.0.0"
|
|
385
|
+
},
|
|
386
|
+
"engines": {
|
|
387
|
+
"node": "20 || >=22"
|
|
388
|
+
},
|
|
389
|
+
"funding": {
|
|
390
|
+
"url": "https://github.com/sponsors/isaacs"
|
|
391
|
+
},
|
|
392
|
+
"integrity": "sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==",
|
|
393
|
+
"license": "BlueOak-1.0.0",
|
|
394
|
+
"resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.2.3.tgz",
|
|
395
|
+
"version": "4.2.3"
|
|
396
|
+
},
|
|
397
|
+
"node_modules/lru-cache": {
|
|
398
|
+
"engines": {
|
|
399
|
+
"node": "20 || >=22"
|
|
400
|
+
},
|
|
401
|
+
"integrity": "sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==",
|
|
402
|
+
"license": "BlueOak-1.0.0",
|
|
403
|
+
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.6.tgz",
|
|
404
|
+
"version": "11.2.6"
|
|
405
|
+
},
|
|
406
|
+
"node_modules/math-intrinsics": {
|
|
407
|
+
"engines": {
|
|
408
|
+
"node": ">= 0.4"
|
|
409
|
+
},
|
|
410
|
+
"integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
|
|
411
|
+
"license": "MIT",
|
|
412
|
+
"resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
|
|
413
|
+
"version": "1.1.0"
|
|
414
|
+
},
|
|
415
|
+
"node_modules/mime-db": {
|
|
416
|
+
"engines": {
|
|
417
|
+
"node": ">= 0.6"
|
|
418
|
+
},
|
|
419
|
+
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
|
|
420
|
+
"license": "MIT",
|
|
421
|
+
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
|
|
422
|
+
"version": "1.52.0"
|
|
423
|
+
},
|
|
424
|
+
"node_modules/mime-types": {
|
|
425
|
+
"dependencies": {
|
|
426
|
+
"mime-db": "1.52.0"
|
|
427
|
+
},
|
|
428
|
+
"engines": {
|
|
429
|
+
"node": ">= 0.6"
|
|
430
|
+
},
|
|
431
|
+
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
|
|
432
|
+
"license": "MIT",
|
|
433
|
+
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
|
|
434
|
+
"version": "2.1.35"
|
|
435
|
+
},
|
|
436
|
+
"node_modules/minimatch": {
|
|
437
|
+
"dependencies": {
|
|
438
|
+
"brace-expansion": "^5.0.2"
|
|
439
|
+
},
|
|
440
|
+
"engines": {
|
|
441
|
+
"node": "20 || >=22"
|
|
442
|
+
},
|
|
443
|
+
"funding": {
|
|
444
|
+
"url": "https://github.com/sponsors/isaacs"
|
|
445
|
+
},
|
|
446
|
+
"integrity": "sha512-ugkC31VaVg9cF0DFVoADH12k6061zNZkZON+aX8AWsR9GhPcErkcMBceb6znR8wLERM2AkkOxy2nWRLpT9Jq5w==",
|
|
447
|
+
"license": "BlueOak-1.0.0",
|
|
448
|
+
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.0.tgz",
|
|
449
|
+
"version": "10.2.0"
|
|
450
|
+
},
|
|
451
|
+
"node_modules/minipass": {
|
|
452
|
+
"engines": {
|
|
453
|
+
"node": ">=16 || 14 >=14.17"
|
|
454
|
+
},
|
|
455
|
+
"integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
|
|
456
|
+
"license": "ISC",
|
|
457
|
+
"resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
|
|
458
|
+
"version": "7.1.2"
|
|
459
|
+
},
|
|
460
|
+
"node_modules/package-json-from-dist": {
|
|
461
|
+
"integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
|
|
462
|
+
"license": "BlueOak-1.0.0",
|
|
463
|
+
"resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
|
|
464
|
+
"version": "1.0.1"
|
|
465
|
+
},
|
|
466
|
+
"node_modules/path-scurry": {
|
|
467
|
+
"dependencies": {
|
|
468
|
+
"lru-cache": "^11.0.0",
|
|
469
|
+
"minipass": "^7.1.2"
|
|
470
|
+
},
|
|
471
|
+
"engines": {
|
|
472
|
+
"node": "20 || >=22"
|
|
473
|
+
},
|
|
474
|
+
"funding": {
|
|
475
|
+
"url": "https://github.com/sponsors/isaacs"
|
|
476
|
+
},
|
|
477
|
+
"integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==",
|
|
478
|
+
"license": "BlueOak-1.0.0",
|
|
479
|
+
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz",
|
|
480
|
+
"version": "2.0.1"
|
|
481
|
+
},
|
|
482
|
+
"node_modules/prettier": {
|
|
483
|
+
"bin": {
|
|
484
|
+
"prettier": "bin/prettier.cjs"
|
|
485
|
+
},
|
|
486
|
+
"dev": true,
|
|
487
|
+
"engines": {
|
|
488
|
+
"node": ">=14"
|
|
489
|
+
},
|
|
490
|
+
"funding": {
|
|
491
|
+
"url": "https://github.com/prettier/prettier?sponsor=1"
|
|
492
|
+
},
|
|
493
|
+
"integrity": "sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==",
|
|
494
|
+
"license": "MIT",
|
|
495
|
+
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.1.tgz",
|
|
496
|
+
"version": "3.8.1"
|
|
497
|
+
},
|
|
498
|
+
"node_modules/proxy-from-env": {
|
|
499
|
+
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
|
|
500
|
+
"license": "MIT",
|
|
501
|
+
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
|
|
502
|
+
"version": "1.1.0"
|
|
503
|
+
},
|
|
504
|
+
"node_modules/rimraf": {
|
|
505
|
+
"bin": {
|
|
506
|
+
"rimraf": "dist/esm/bin.mjs"
|
|
507
|
+
},
|
|
508
|
+
"dependencies": {
|
|
509
|
+
"glob": "^13.0.3",
|
|
510
|
+
"package-json-from-dist": "^1.0.1"
|
|
511
|
+
},
|
|
512
|
+
"engines": {
|
|
513
|
+
"node": "20 || >=22"
|
|
514
|
+
},
|
|
515
|
+
"funding": {
|
|
516
|
+
"url": "https://github.com/sponsors/isaacs"
|
|
517
|
+
},
|
|
518
|
+
"integrity": "sha512-LKg+Cr2ZF61fkcaK1UdkH2yEBBKnYjTyWzTJT6KNPcSPaiT7HSdhtMXQuN5wkTX0Xu72KQ1l8S42rlmexS2hSA==",
|
|
519
|
+
"license": "BlueOak-1.0.0",
|
|
520
|
+
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.1.3.tgz",
|
|
521
|
+
"version": "6.1.3"
|
|
522
|
+
},
|
|
523
|
+
"node_modules/tunnel": {
|
|
524
|
+
"engines": {
|
|
525
|
+
"node": ">=0.6.11 <=0.7.0 || >=0.7.3"
|
|
526
|
+
},
|
|
527
|
+
"integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==",
|
|
528
|
+
"license": "MIT",
|
|
529
|
+
"resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
|
|
530
|
+
"version": "0.0.6"
|
|
531
|
+
},
|
|
532
|
+
"node_modules/wcwidth": {
|
|
533
|
+
"dependencies": {
|
|
534
|
+
"defaults": "^1.0.3"
|
|
535
|
+
},
|
|
536
|
+
"integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==",
|
|
537
|
+
"license": "MIT",
|
|
538
|
+
"optional": true,
|
|
539
|
+
"resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
|
|
540
|
+
"version": "1.0.1"
|
|
541
|
+
}
|
|
542
|
+
},
|
|
543
|
+
"requires": true,
|
|
544
|
+
"version": "2.0.1"
|
|
545
|
+
}
|
package/package.json
CHANGED
|
@@ -1,28 +1,106 @@
|
|
|
1
1
|
{
|
|
2
|
+
"artifactDownloadUrls": [
|
|
3
|
+
"https://github.com/CARLOSMARES/proyecto-cli/releases/download/v2.0.1"
|
|
4
|
+
],
|
|
5
|
+
"author": "Carlos Ignacio Olano Mares",
|
|
6
|
+
"bin": {
|
|
7
|
+
"create-proyect-cli": "run-create-proyect-cli.js"
|
|
8
|
+
},
|
|
9
|
+
"dependencies": {
|
|
10
|
+
"axios": "^1.13.5",
|
|
11
|
+
"axios-proxy-builder": "^0.1.2",
|
|
12
|
+
"console.table": "^0.10.0",
|
|
13
|
+
"detect-libc": "^2.1.2",
|
|
14
|
+
"rimraf": "^6.1.3"
|
|
15
|
+
},
|
|
16
|
+
"description": "CLI para crear proyectos rápidamente",
|
|
17
|
+
"devDependencies": {
|
|
18
|
+
"prettier": "^3.8.1"
|
|
19
|
+
},
|
|
20
|
+
"engines": {
|
|
21
|
+
"node": ">=14",
|
|
22
|
+
"npm": ">=6"
|
|
23
|
+
},
|
|
24
|
+
"glibcMinimum": {
|
|
25
|
+
"major": 2,
|
|
26
|
+
"series": 35
|
|
27
|
+
},
|
|
2
28
|
"name": "create-proyect-cli",
|
|
3
|
-
"
|
|
4
|
-
"
|
|
5
|
-
"main": "index.js",
|
|
29
|
+
"preferUnplugged": true,
|
|
30
|
+
"repository": "https://github.com/CARLOSMARES/proyecto-cli",
|
|
6
31
|
"scripts": {
|
|
7
|
-
"
|
|
32
|
+
"fmt": "prettier --write **/*.js",
|
|
33
|
+
"fmt:check": "prettier --check **/*.js",
|
|
34
|
+
"postinstall": "node ./install.js"
|
|
8
35
|
},
|
|
9
|
-
"
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
36
|
+
"supportedPlatforms": {
|
|
37
|
+
"aarch64-apple-darwin": {
|
|
38
|
+
"artifactName": "create-proyect-cli-aarch64-apple-darwin.tar.xz",
|
|
39
|
+
"bins": {
|
|
40
|
+
"create-proyect-cli": "create-proyect-cli"
|
|
41
|
+
},
|
|
42
|
+
"zipExt": ".tar.xz"
|
|
43
|
+
},
|
|
44
|
+
"aarch64-pc-windows-msvc": {
|
|
45
|
+
"artifactName": "create-proyect-cli-x86_64-pc-windows-msvc.zip",
|
|
46
|
+
"bins": {
|
|
47
|
+
"create-proyect-cli": "create-proyect-cli.exe"
|
|
48
|
+
},
|
|
49
|
+
"zipExt": ".zip"
|
|
50
|
+
},
|
|
51
|
+
"aarch64-unknown-linux-gnu": {
|
|
52
|
+
"artifactName": "create-proyect-cli-aarch64-unknown-linux-gnu.tar.xz",
|
|
53
|
+
"bins": {
|
|
54
|
+
"create-proyect-cli": "create-proyect-cli"
|
|
55
|
+
},
|
|
56
|
+
"zipExt": ".tar.xz"
|
|
57
|
+
},
|
|
58
|
+
"x86_64-apple-darwin": {
|
|
59
|
+
"artifactName": "create-proyect-cli-x86_64-apple-darwin.tar.xz",
|
|
60
|
+
"bins": {
|
|
61
|
+
"create-proyect-cli": "create-proyect-cli"
|
|
62
|
+
},
|
|
63
|
+
"zipExt": ".tar.xz"
|
|
64
|
+
},
|
|
65
|
+
"x86_64-pc-windows-gnu": {
|
|
66
|
+
"artifactName": "create-proyect-cli-x86_64-pc-windows-msvc.zip",
|
|
67
|
+
"bins": {
|
|
68
|
+
"create-proyect-cli": "create-proyect-cli.exe"
|
|
69
|
+
},
|
|
70
|
+
"zipExt": ".zip"
|
|
71
|
+
},
|
|
72
|
+
"x86_64-pc-windows-msvc": {
|
|
73
|
+
"artifactName": "create-proyect-cli-x86_64-pc-windows-msvc.zip",
|
|
74
|
+
"bins": {
|
|
75
|
+
"create-proyect-cli": "create-proyect-cli.exe"
|
|
76
|
+
},
|
|
77
|
+
"zipExt": ".zip"
|
|
78
|
+
},
|
|
79
|
+
"x86_64-unknown-linux-gnu": {
|
|
80
|
+
"artifactName": "create-proyect-cli-x86_64-unknown-linux-gnu.tar.xz",
|
|
81
|
+
"bins": {
|
|
82
|
+
"create-proyect-cli": "create-proyect-cli"
|
|
83
|
+
},
|
|
84
|
+
"zipExt": ".tar.xz"
|
|
85
|
+
},
|
|
86
|
+
"x86_64-unknown-linux-musl-dynamic": {
|
|
87
|
+
"artifactName": "create-proyect-cli-x86_64-unknown-linux-musl.tar.xz",
|
|
88
|
+
"bins": {
|
|
89
|
+
"create-proyect-cli": "create-proyect-cli"
|
|
90
|
+
},
|
|
91
|
+
"zipExt": ".tar.xz"
|
|
92
|
+
},
|
|
93
|
+
"x86_64-unknown-linux-musl-static": {
|
|
94
|
+
"artifactName": "create-proyect-cli-x86_64-unknown-linux-musl.tar.xz",
|
|
95
|
+
"bins": {
|
|
96
|
+
"create-proyect-cli": "create-proyect-cli"
|
|
97
|
+
},
|
|
98
|
+
"zipExt": ".tar.xz"
|
|
99
|
+
}
|
|
16
100
|
},
|
|
17
|
-
"
|
|
18
|
-
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
"create",
|
|
24
|
-
"proyect",
|
|
25
|
-
"project"
|
|
26
|
-
],
|
|
27
|
-
"bin": "./index.js"
|
|
28
|
-
}
|
|
101
|
+
"version": "2.0.1",
|
|
102
|
+
"volta": {
|
|
103
|
+
"node": "18.14.1",
|
|
104
|
+
"npm": "9.5.0"
|
|
105
|
+
}
|
|
106
|
+
}
|
package/.travis.yml
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
language: node_js
|
|
2
|
-
node_js:
|
|
3
|
-
- "node" # Usa la última versión de Node.js
|
|
4
|
-
|
|
5
|
-
deploy:
|
|
6
|
-
provider: npm
|
|
7
|
-
email: "microsystemags@hotmail.com" # Tu dirección de correo electrónico asociada con tu cuenta de npm
|
|
8
|
-
api_key: "$NPM_TOKEN" # Configura esta variable de entorno en la configuración de Travis CI
|
|
9
|
-
|
|
10
|
-
branches:
|
|
11
|
-
only:
|
|
12
|
-
- main # O el nombre de la rama que desees
|
package/index.js
DELETED
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
import { exec } from 'child_process';
|
|
4
|
-
import inquirer from 'inquirer';
|
|
5
|
-
import ora from 'ora';
|
|
6
|
-
import figlet from 'figlet';
|
|
7
|
-
|
|
8
|
-
// Función para clonar un repositorio
|
|
9
|
-
function cloneRepository(repoUrl, cloneLocation) {
|
|
10
|
-
const cloneCommand = `git clone ${repoUrl} ${cloneLocation}`;
|
|
11
|
-
const cloneSpinner = ora('Clonando repositorio...').start();
|
|
12
|
-
|
|
13
|
-
exec(cloneCommand, (error, stdout, stderr) => {
|
|
14
|
-
if (error) {
|
|
15
|
-
cloneSpinner.fail(`Error al clonar el repositorio: ${stderr}`);
|
|
16
|
-
} else {
|
|
17
|
-
cloneSpinner.succeed(`Repositorio clonado exitosamente en: ${cloneLocation}`);
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
//Funcion para instalar dependencias
|
|
23
|
-
function installdependencias(location) {
|
|
24
|
-
const install = 'npm install';
|
|
25
|
-
const installSpinner = ora('Instalando Dependencias..').start();
|
|
26
|
-
exec(`cd ${location}`, (error, stdout, stderr)=>{
|
|
27
|
-
if(error){
|
|
28
|
-
installSpinner.fail(`Error al ingresar a la carpeta: ${stderr}`)
|
|
29
|
-
}else {
|
|
30
|
-
exec(install, (error, stdout, stderr) => {
|
|
31
|
-
if (error) {
|
|
32
|
-
installSpinner.fail(`Error al Instalar las dependecias: ${stderr}`);
|
|
33
|
-
} else {
|
|
34
|
-
installSpinner.succeed('Dependencias Instaladas Exitosamente');
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
//Funcion para eliminar repo local
|
|
42
|
-
function deleterepo(location) {
|
|
43
|
-
const deleteRepo = `rm -rf ${location}`;
|
|
44
|
-
const deleteSpinner = ora('Eliminando Repositorio Local..').start();
|
|
45
|
-
exec(deleteRepo, (error, stdout, stderr) => {
|
|
46
|
-
if (error) {
|
|
47
|
-
deleteSpinner.fail(`Error al Eliminar el repositorio: ${stderr}`);
|
|
48
|
-
} else {
|
|
49
|
-
deleteSpinner.succeed('Repositorio Eliminado Correctamente');
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
// Función para crear un proyecto en Angular, React o Ionic
|
|
54
|
-
function createProject(projectType, projectName) {
|
|
55
|
-
let createCommand = '';
|
|
56
|
-
let createSpinnerText = '';
|
|
57
|
-
|
|
58
|
-
switch (projectType) {
|
|
59
|
-
case 'Angular':
|
|
60
|
-
createCommand = `npx ng new ${projectName}`;
|
|
61
|
-
createSpinnerText = 'Creando proyecto Angular...';
|
|
62
|
-
break;
|
|
63
|
-
case 'React':
|
|
64
|
-
createCommand = `npx create-react-app ${projectName}`;
|
|
65
|
-
createSpinnerText = 'Creando proyecto React...';
|
|
66
|
-
break;
|
|
67
|
-
case 'Ionic':
|
|
68
|
-
createCommand = `npx ionic start ${projectName} blank`;
|
|
69
|
-
createSpinnerText = 'Creando proyecto Ionic...';
|
|
70
|
-
break;
|
|
71
|
-
default:
|
|
72
|
-
console.error('Tipo de proyecto no reconocido.');
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
const createSpinner = ora(createSpinnerText).start();
|
|
77
|
-
|
|
78
|
-
exec(createCommand, (error, stdout, stderr) => {
|
|
79
|
-
if (error) {
|
|
80
|
-
createSpinner.fail(`Error al crear el proyecto: ${stderr}`);
|
|
81
|
-
} else {
|
|
82
|
-
createSpinner.succeed(`Proyecto ${projectName} creado exitosamente.`);
|
|
83
|
-
}
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
// Presentación del texto con Figlet
|
|
88
|
-
figlet('Create Project CLI', (err, data) => {
|
|
89
|
-
if (err) {
|
|
90
|
-
console.error('Error al generar el texto de presentación.');
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
console.log(data);
|
|
94
|
-
|
|
95
|
-
const questions = [
|
|
96
|
-
{
|
|
97
|
-
type: 'list',
|
|
98
|
-
name: 'action',
|
|
99
|
-
message: '¿Qué acción desea realizar?',
|
|
100
|
-
choices: ['Clonar repositorio', 'Crear proyecto', 'Instalar Dependencias', 'Eliminar Repositorio Local'],
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
type: 'input',
|
|
104
|
-
name: 'repoUrl',
|
|
105
|
-
message: 'Ingrese la URL del repositorio:',
|
|
106
|
-
when: (answers) => answers.action === 'Clonar repositorio',
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
type: 'input',
|
|
110
|
-
name: 'location',
|
|
111
|
-
message: 'Ingrese la URL del repositorio local:',
|
|
112
|
-
when: (answers) => answers.action === 'Eliminar Repositorio Local',
|
|
113
|
-
},
|
|
114
|
-
{
|
|
115
|
-
type: 'input',
|
|
116
|
-
name: 'cloneLocation',
|
|
117
|
-
message: 'Ingrese la ubicación donde desea clonar el repositorio:',
|
|
118
|
-
when: (answers) => answers.action === 'Clonar repositorio',
|
|
119
|
-
default: './',
|
|
120
|
-
},
|
|
121
|
-
{
|
|
122
|
-
type: 'input',
|
|
123
|
-
name: 'location',
|
|
124
|
-
message: 'Ingrese la ubicación donde desea instalar las dependencias:',
|
|
125
|
-
when: (answers) => answers.action === 'Instalar Dependencias',
|
|
126
|
-
default: './',
|
|
127
|
-
},
|
|
128
|
-
{
|
|
129
|
-
type: 'list',
|
|
130
|
-
name: 'projectType',
|
|
131
|
-
message: 'Seleccione el tipo de proyecto:',
|
|
132
|
-
choices: ['Angular', 'React', 'Ionic'],
|
|
133
|
-
when: (answers) => answers.action === 'Crear proyecto',
|
|
134
|
-
},
|
|
135
|
-
{
|
|
136
|
-
type: 'input',
|
|
137
|
-
name: 'projectName',
|
|
138
|
-
message: 'Ingrese el nombre del proyecto:',
|
|
139
|
-
when: (answers) => answers.action === 'Crear proyecto',
|
|
140
|
-
},
|
|
141
|
-
];
|
|
142
|
-
|
|
143
|
-
inquirer.prompt(questions).then((answers) => {
|
|
144
|
-
if (answers.action === 'Clonar repositorio') {
|
|
145
|
-
cloneRepository(answers.repoUrl, answers.cloneLocation);
|
|
146
|
-
} else if (answers.action === 'Crear proyecto') {
|
|
147
|
-
createProject(answers.projectType, answers.projectName);
|
|
148
|
-
}else if (answers.action === 'Instalar Dependencias'){
|
|
149
|
-
installdependencias(answers.location);
|
|
150
|
-
} else if(answers.action === 'Eliminar Repositorio Local'){
|
|
151
|
-
deleteLocalRepo(answers.location);
|
|
152
|
-
}
|
|
153
|
-
});
|
|
154
|
-
});
|