kubiy-paas-cli 0.1.21 → 0.1.26
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.md +118 -118
- package/dist/index.js +2 -0
- package/dist/src/api.js +1 -0
- package/dist/src/commands/config.js +1 -0
- package/dist/src/commands/deploy.js +1 -0
- package/dist/src/commands/login.js +1 -0
- package/dist/src/commands/logs.js +1 -0
- package/dist/src/commands/rollback.js +1 -0
- package/dist/src/commands/service-get.js +1 -0
- package/dist/src/commands/service-link.js +1 -0
- package/dist/src/commands/version.js +1 -0
- package/dist/src/commands/whoami.js +1 -0
- package/dist/src/config.js +1 -0
- package/dist/src/git.js +1 -0
- package/dist/src/logger.js +1 -0
- package/package.json +36 -30
- package/index.js +0 -114
- package/src/api.js +0 -85
- package/src/commands/config.js +0 -71
- package/src/commands/deploy.js +0 -544
- package/src/commands/login.js +0 -16
- package/src/commands/logs.js +0 -112
- package/src/commands/rollback.js +0 -81
- package/src/commands/service-get.js +0 -39
- package/src/commands/service-link.js +0 -126
- package/src/commands/version.js +0 -17
- package/src/commands/whoami.js +0 -15
- package/src/config.js +0 -60
- package/src/git.js +0 -24
- package/src/logger.js +0 -31
package/index.js
DELETED
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
const path = require("path");
|
|
4
|
-
const { logInfo, logError } = require("./src/logger");
|
|
5
|
-
const { getLang, setLang } = require("./src/config");
|
|
6
|
-
|
|
7
|
-
const rawArgs = process.argv.slice(2);
|
|
8
|
-
|
|
9
|
-
// Extraer --lang / --lang= del CLI y dejar el resto de args limpios
|
|
10
|
-
let langFromCli = null;
|
|
11
|
-
const args = [];
|
|
12
|
-
for (let i = 0; i < rawArgs.length; i++) {
|
|
13
|
-
const a = rawArgs[i];
|
|
14
|
-
if (a === "--lang" && i + 1 < rawArgs.length) {
|
|
15
|
-
langFromCli = rawArgs[i + 1];
|
|
16
|
-
i++;
|
|
17
|
-
} else if (a.startsWith("--lang=")) {
|
|
18
|
-
langFromCli = a.split("=")[1];
|
|
19
|
-
} else {
|
|
20
|
-
args.push(a);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
const command = args[0];
|
|
25
|
-
|
|
26
|
-
function resolveLang(langFromCli) {
|
|
27
|
-
// 1) CLI
|
|
28
|
-
if (langFromCli === "es" || langFromCli === "en") {
|
|
29
|
-
return langFromCli;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
// 2) Config persistente
|
|
33
|
-
const saved = getLang && getLang();
|
|
34
|
-
if (saved === "es" || saved === "en") {
|
|
35
|
-
return saved;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
// 3) Default
|
|
39
|
-
return "es";
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
async function main() {
|
|
43
|
-
const lang = resolveLang(langFromCli);
|
|
44
|
-
|
|
45
|
-
try {
|
|
46
|
-
switch (command) {
|
|
47
|
-
case "login":
|
|
48
|
-
logInfo("El comando 'kubiy login' está deshabilitado temporalmente y no se utiliza en esta versión del CLI.");
|
|
49
|
-
process.exit(1);
|
|
50
|
-
case "whoami":
|
|
51
|
-
await require("./src/commands/whoami").run(args.slice(1), { lang });
|
|
52
|
-
break;
|
|
53
|
-
case "service:get":
|
|
54
|
-
await require("./src/commands/service-get").run(args.slice(1), { lang });
|
|
55
|
-
break;
|
|
56
|
-
case "link":
|
|
57
|
-
await require("./src/commands/service-link").run(args.slice(1), { lang });
|
|
58
|
-
break;
|
|
59
|
-
case "deploy":
|
|
60
|
-
await require("./src/commands/deploy").run(args.slice(1), { lang });
|
|
61
|
-
break;
|
|
62
|
-
case "logs":
|
|
63
|
-
await require("./src/commands/logs").run(args.slice(1), { lang });
|
|
64
|
-
break;
|
|
65
|
-
case "rollback":
|
|
66
|
-
await require("./src/commands/rollback").run(args.slice(1), { lang });
|
|
67
|
-
break;
|
|
68
|
-
case "version":
|
|
69
|
-
case "--version":
|
|
70
|
-
case "-v":
|
|
71
|
-
await require("./src/commands/version").run(args.slice(1), { lang });
|
|
72
|
-
break;
|
|
73
|
-
case "config":
|
|
74
|
-
await require("./src/commands/config").run(args.slice(1), { lang, langFromCli });
|
|
75
|
-
break;
|
|
76
|
-
default:
|
|
77
|
-
printHelp(lang);
|
|
78
|
-
process.exit(0);
|
|
79
|
-
}
|
|
80
|
-
} catch (err) {
|
|
81
|
-
logError("Error en CLI:", err.message || err);
|
|
82
|
-
process.exit(1);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
function printHelp(lang) {
|
|
87
|
-
const isEs = lang === "es";
|
|
88
|
-
|
|
89
|
-
logInfo(isEs ? "Kubiy PaaS CLI" : "Kubiy PaaS CLI");
|
|
90
|
-
console.log("");
|
|
91
|
-
console.log(isEs ? "Uso:" : "Usage:");
|
|
92
|
-
console.log(" kubiy login <cliToken> (deshabilitado temporalmente)");
|
|
93
|
-
console.log(" kubiy whoami");
|
|
94
|
-
console.log(" kubiy link <appId> [--env=prod|stg|dev] [--apikey=...] [--save-secrets]");
|
|
95
|
-
console.log(' kubiy deploy --message "<texto>" [--static] [--dir=<carpeta>]');
|
|
96
|
-
console.log(" kubiy service:get <serviceId>");
|
|
97
|
-
console.log(" kubiy logs [<serviceId>] [--kind=deploy|app] [--lines=200]");
|
|
98
|
-
console.log(" kubiy rollback <deployId>");
|
|
99
|
-
console.log(" kubiy rollback <appId> <serviceId> <deployId>");
|
|
100
|
-
console.log(" kubiy version");
|
|
101
|
-
console.log(" kubiy config --lang es|en");
|
|
102
|
-
console.log("");
|
|
103
|
-
console.log(isEs ? "Ejemplos:" : "Examples:");
|
|
104
|
-
console.log(" kubiy link my-app-id --apikey=xxx");
|
|
105
|
-
console.log(' kubiy deploy --message "Release v1.0"');
|
|
106
|
-
console.log(' kubiy deploy -m "Fix login" --static');
|
|
107
|
-
console.log(' kubiy deploy --message="Deploy prod" --static --dir=dist');
|
|
108
|
-
console.log(" kubiy logs --kind=deploy --lines=100");
|
|
109
|
-
console.log(" kubiy config --lang es");
|
|
110
|
-
console.log(" kubiy config --lang en");
|
|
111
|
-
console.log("");
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
main();
|
package/src/api.js
DELETED
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
const https = require("https");
|
|
2
|
-
const { getCliToken } = require("./config");
|
|
3
|
-
const { logError, logInfo } = require("./logger");
|
|
4
|
-
|
|
5
|
-
// URL base de la API de Kubiy
|
|
6
|
-
const API_BASE = process.env.KUBIY_API_BASE || "https://cli.kubiy.cloud/v1";
|
|
7
|
-
|
|
8
|
-
function request(method, path, body, opts = {}) {
|
|
9
|
-
return new Promise((resolve, reject) => {
|
|
10
|
-
const token = opts.token || getCliToken();
|
|
11
|
-
const url = API_BASE + path; //new URL(path, API_BASE);
|
|
12
|
-
|
|
13
|
-
const headers = {
|
|
14
|
-
"Accept": "application/json"
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
// Combinar headers personalizados de opts.headers
|
|
18
|
-
if (opts.headers) {
|
|
19
|
-
Object.assign(headers, opts.headers);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
let payload = null;
|
|
23
|
-
if (body) {
|
|
24
|
-
payload = JSON.stringify(body);
|
|
25
|
-
headers["Content-Type"] = "application/json";
|
|
26
|
-
headers["Content-Length"] = Buffer.byteLength(payload);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
// Si se usa X-Kubiy-Token no añadimos Authorization
|
|
30
|
-
if (token && !opts.headers?.["X-Kubiy-Token"]) {
|
|
31
|
-
headers["Authorization"] = `Bearer ${token}`;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
const options = {
|
|
35
|
-
method,
|
|
36
|
-
headers
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
const req = https.request(url, options, (res) => {
|
|
40
|
-
let data = "";
|
|
41
|
-
|
|
42
|
-
res.on("data", (chunk) => (data += chunk));
|
|
43
|
-
res.on("end", () => {
|
|
44
|
-
if (!data) {
|
|
45
|
-
return resolve(null);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
if (res.statusCode >= 200 && res.statusCode < 300) {
|
|
49
|
-
try {
|
|
50
|
-
resolve(JSON.parse(data));
|
|
51
|
-
} catch (e) {
|
|
52
|
-
resolve(data);
|
|
53
|
-
}
|
|
54
|
-
} else {
|
|
55
|
-
reject(
|
|
56
|
-
new Error(
|
|
57
|
-
`API ${res.statusCode}: ${data || res.statusMessage || "Error"}`
|
|
58
|
-
)
|
|
59
|
-
);
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
req.on("error", reject);
|
|
65
|
-
|
|
66
|
-
if (payload) {
|
|
67
|
-
req.write(payload);
|
|
68
|
-
}
|
|
69
|
-
req.end();
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
function apiGet(path, opts) {
|
|
74
|
-
return request("GET", path, null, opts);
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
function apiPost(path, body, opts) {
|
|
78
|
-
return request("POST", path, body, opts);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
module.exports = {
|
|
82
|
-
apiGet,
|
|
83
|
-
apiPost,
|
|
84
|
-
API_BASE
|
|
85
|
-
};
|
package/src/commands/config.js
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
const { logInfo, logError } = require("../logger");
|
|
2
|
-
const { getLang, setLang } = require("../config");
|
|
3
|
-
|
|
4
|
-
function parseArgs(args) {
|
|
5
|
-
let lang = null;
|
|
6
|
-
|
|
7
|
-
for (let i = 0; i < args.length; i++) {
|
|
8
|
-
const a = args[i];
|
|
9
|
-
if (a === "--lang" && i + 1 < args.length) {
|
|
10
|
-
lang = args[i + 1];
|
|
11
|
-
i++;
|
|
12
|
-
} else if (a.startsWith("--lang=")) {
|
|
13
|
-
lang = a.split("=")[1];
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
return { lang };
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
async function run(args = [], options = {}) {
|
|
21
|
-
const { lang: currentLangFromIndex } = options;
|
|
22
|
-
const { lang } = parseArgs(args);
|
|
23
|
-
|
|
24
|
-
// Si no se pasa --lang, mostrar idioma actual
|
|
25
|
-
if (!lang) {
|
|
26
|
-
const saved = getLang && getLang();
|
|
27
|
-
const effective = currentLangFromIndex || saved || "es";
|
|
28
|
-
const isEs = effective === "es";
|
|
29
|
-
|
|
30
|
-
if (isEs) {
|
|
31
|
-
logInfo(`Idioma actual del CLI: ${effective}`);
|
|
32
|
-
logInfo("Puedes cambiarlo con: kubiy config --lang es|en");
|
|
33
|
-
} else {
|
|
34
|
-
logInfo(`Current CLI language: ${effective}`);
|
|
35
|
-
logInfo("You can change it with: kubiy config --lang es|en");
|
|
36
|
-
}
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
if (lang !== "es" && lang !== "en") {
|
|
41
|
-
const isEs = (currentLangFromIndex || getLang() || "es") === "es";
|
|
42
|
-
if (isEs) {
|
|
43
|
-
logError("Idioma no soportado. Usa 'es' o 'en'.");
|
|
44
|
-
} else {
|
|
45
|
-
logError("Unsupported language. Use 'es' or 'en'.");
|
|
46
|
-
}
|
|
47
|
-
process.exit(1);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
try {
|
|
51
|
-
setLang(lang);
|
|
52
|
-
const isEs = lang === "es";
|
|
53
|
-
if (isEs) {
|
|
54
|
-
logInfo("Idioma guardado como Español.");
|
|
55
|
-
} else {
|
|
56
|
-
logInfo("Language saved as English.");
|
|
57
|
-
}
|
|
58
|
-
} catch (err) {
|
|
59
|
-
const isEs = (currentLangFromIndex || getLang() || "es") === "es";
|
|
60
|
-
if (isEs) {
|
|
61
|
-
logError("No se pudo guardar el idioma:");
|
|
62
|
-
} else {
|
|
63
|
-
logError("Failed to save language:");
|
|
64
|
-
}
|
|
65
|
-
logError(err.message || err);
|
|
66
|
-
process.exit(1);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
module.exports = { run };
|
|
71
|
-
|