@cat-indev/catops-cli 0.0.1-alpha.5 → 0.0.1-alpha.6
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 +15 -0
- package/dist/core/Notifier.d.ts +16 -1
- package/dist/core/Notifier.js +26 -1
- package/dist/core/Notifier.js.map +1 -1
- package/dist/core/messages.d.ts +26 -0
- package/dist/core/messages.js +48 -0
- package/dist/core/messages.js.map +1 -0
- package/dist/core/types.d.ts +8 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -291,6 +291,21 @@ ctx.notifier.channel("*", senders.file({ path: "./devops-cli-errors.log" })); //
|
|
|
291
291
|
ctx.notifier.onSuccess(senders.log());
|
|
292
292
|
```
|
|
293
293
|
|
|
294
|
+
Tambien se pueden incluir parsers de error para convertir y usar errores amigables con las areas receptoras
|
|
295
|
+
|
|
296
|
+
```
|
|
297
|
+
const { classifiers, messages } = require("devops-cli");
|
|
298
|
+
|
|
299
|
+
ctx.notifier.classify(classifiers.byCommand({ docker: "containers" }));
|
|
300
|
+
|
|
301
|
+
ctx.notifier.describeError(messages.byPattern([
|
|
302
|
+
[/500 Internal Server Error/, "Se ha reportado a infraestructura: falta de espacio en el registry"],
|
|
303
|
+
[/unauthorized|403/i, "Credenciales inválidas contra el registry, revisa el secret"]
|
|
304
|
+
]));
|
|
305
|
+
|
|
306
|
+
ctx.notifier.channel("containers", senders.webhook({ url: TEAMS_WEBHOOK }));
|
|
307
|
+
```
|
|
308
|
+
|
|
294
309
|
A partir de aquí, cualquier `ctx.run(...)` o item de menú con `action` reporta automáticamente al notifier — no hay que llamarlo a mano en cada task.
|
|
295
310
|
|
|
296
311
|
### Senders incluidos
|
package/dist/core/Notifier.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { Context } from "./Context";
|
|
2
|
-
import type { ErrorClassifier, Sender } from "./types";
|
|
2
|
+
import type { ErrorClassifier, ErrorMessageFormatter, Sender } from "./types";
|
|
3
3
|
export declare class Notifier {
|
|
4
4
|
private classifiers;
|
|
5
|
+
private messageFormatters;
|
|
5
6
|
private channels;
|
|
6
7
|
private successSenders;
|
|
7
8
|
private defaultArea;
|
|
@@ -12,6 +13,19 @@ export declare class Notifier {
|
|
|
12
13
|
* (configurable con `setDefaultArea`).
|
|
13
14
|
*/
|
|
14
15
|
classify(classifier: ErrorClassifier): this;
|
|
16
|
+
/**
|
|
17
|
+
* Registra una función que, dado el error, devuelve el mensaje
|
|
18
|
+
* personalizado a reportar (reemplaza el stderr/mensaje crudo). Se
|
|
19
|
+
* prueban en orden; gana la primera que devuelva un string. Si ninguna
|
|
20
|
+
* matchea, se usa el mensaje crudo del error (stderr/Error.message).
|
|
21
|
+
*
|
|
22
|
+
* Ejemplo:
|
|
23
|
+
* notifier.describeError(messages.byPattern([
|
|
24
|
+
* [/500 Internal Server Error/, "Se reportó a infraestructura: falta de espacio en el registry"],
|
|
25
|
+
* [/unauthorized|403/, "Credenciales inválidas contra el registry, revisa el secret"]
|
|
26
|
+
* ]));
|
|
27
|
+
*/
|
|
28
|
+
describeError(formatter: ErrorMessageFormatter): this;
|
|
15
29
|
setDefaultArea(area: string): this;
|
|
16
30
|
/**
|
|
17
31
|
* Asocia uno o más senders a un área. Puedes registrar el mismo sender
|
|
@@ -22,6 +36,7 @@ export declare class Notifier {
|
|
|
22
36
|
/** Senders que se disparan en cada tarea exitosa, sin clasificación. */
|
|
23
37
|
onSuccess(...senders: Sender[]): this;
|
|
24
38
|
private resolveArea;
|
|
39
|
+
private resolveMessage;
|
|
25
40
|
reportSuccess(taskId: string, result: unknown, ctx: Context): Promise<void>;
|
|
26
41
|
reportError(taskId: string, error: unknown, ctx: Context): Promise<string>;
|
|
27
42
|
}
|
package/dist/core/Notifier.js
CHANGED
|
@@ -18,6 +18,7 @@ function toMessage(error) {
|
|
|
18
18
|
class Notifier {
|
|
19
19
|
constructor() {
|
|
20
20
|
this.classifiers = [];
|
|
21
|
+
this.messageFormatters = [];
|
|
21
22
|
this.channels = new Map();
|
|
22
23
|
this.successSenders = [];
|
|
23
24
|
this.defaultArea = "unclassified";
|
|
@@ -32,6 +33,22 @@ class Notifier {
|
|
|
32
33
|
this.classifiers.push(classifier);
|
|
33
34
|
return this;
|
|
34
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* Registra una función que, dado el error, devuelve el mensaje
|
|
38
|
+
* personalizado a reportar (reemplaza el stderr/mensaje crudo). Se
|
|
39
|
+
* prueban en orden; gana la primera que devuelva un string. Si ninguna
|
|
40
|
+
* matchea, se usa el mensaje crudo del error (stderr/Error.message).
|
|
41
|
+
*
|
|
42
|
+
* Ejemplo:
|
|
43
|
+
* notifier.describeError(messages.byPattern([
|
|
44
|
+
* [/500 Internal Server Error/, "Se reportó a infraestructura: falta de espacio en el registry"],
|
|
45
|
+
* [/unauthorized|403/, "Credenciales inválidas contra el registry, revisa el secret"]
|
|
46
|
+
* ]));
|
|
47
|
+
*/
|
|
48
|
+
describeError(formatter) {
|
|
49
|
+
this.messageFormatters.push(formatter);
|
|
50
|
+
return this;
|
|
51
|
+
}
|
|
35
52
|
setDefaultArea(area) {
|
|
36
53
|
this.defaultArea = area;
|
|
37
54
|
return this;
|
|
@@ -59,6 +76,14 @@ class Notifier {
|
|
|
59
76
|
}
|
|
60
77
|
return this.defaultArea;
|
|
61
78
|
}
|
|
79
|
+
resolveMessage(error, ctx) {
|
|
80
|
+
for (const formatter of this.messageFormatters) {
|
|
81
|
+
const message = formatter(error, ctx);
|
|
82
|
+
if (message)
|
|
83
|
+
return message;
|
|
84
|
+
}
|
|
85
|
+
return toMessage(error);
|
|
86
|
+
}
|
|
62
87
|
async reportSuccess(taskId, result, ctx) {
|
|
63
88
|
if (!this.successSenders.length)
|
|
64
89
|
return;
|
|
@@ -82,7 +107,7 @@ class Notifier {
|
|
|
82
107
|
taskId,
|
|
83
108
|
area,
|
|
84
109
|
error,
|
|
85
|
-
message:
|
|
110
|
+
message: this.resolveMessage(error, ctx),
|
|
86
111
|
timestamp: new Date().toISOString()
|
|
87
112
|
};
|
|
88
113
|
await Promise.allSettled(senders.map(sender => sender(event)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Notifier.js","sourceRoot":"","sources":["../../src/core/Notifier.ts"],"names":[],"mappings":";;;AAGA,MAAM,QAAQ,GAAG,GAAG,CAAC;AAErB,SAAS,SAAS,CAAC,KAAc;IAE7B,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,OAAO,CAAC;IACzB,CAAC;IAED,MAAM,cAAc,GAAG,KAA0D,CAAC;IAElF,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,OAAO,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,cAAc,CAAC,MAAM,CAAC;IACnF,CAAC;IAED,IAAI,cAAc,EAAE,OAAO,EAAE,CAAC;QAC1B,OAAO,cAAc,CAAC,OAAO,CAAC;IAClC,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AAEzB,CAAC;AAED,MAAa,QAAQ;IAArB;QAEY,gBAAW,GAAsB,EAAE,CAAC;QACpC,aAAQ,GAA0B,IAAI,GAAG,EAAE,CAAC;QAC5C,mBAAc,GAAa,EAAE,CAAC;QAC9B,gBAAW,GAAG,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"Notifier.js","sourceRoot":"","sources":["../../src/core/Notifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ErrorMessageFormatter } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Formateador de fábrica: prueba una lista de [regex, mensaje] contra el
|
|
4
|
+
* stderr/mensaje del error y devuelve el mensaje personalizado del primer
|
|
5
|
+
* patrón que matchee, en vez del stderr crudo.
|
|
6
|
+
*
|
|
7
|
+
* Ejemplo:
|
|
8
|
+
* notifier.describeError(messages.byPattern([
|
|
9
|
+
* [/500 Internal Server Error/, "Se reportó a infraestructura: falta de espacio en el registry"],
|
|
10
|
+
* [/unauthorized|403/i, "Credenciales inválidas contra el registry, revisa el secret"],
|
|
11
|
+
* [/no space left|ENOSPC/i, "El nodo se quedó sin espacio en disco"]
|
|
12
|
+
* ]));
|
|
13
|
+
*/
|
|
14
|
+
export declare function byPattern(rules: Array<[RegExp, string]>): ErrorMessageFormatter;
|
|
15
|
+
/**
|
|
16
|
+
* Formateador de fábrica: mapea el comando que falló (docker, kubectl,
|
|
17
|
+
* terraform, etc.) a un mensaje genérico fijo, sin importar el detalle del
|
|
18
|
+
* error. Útil como mensaje "catch-all" por comando cuando no necesitas
|
|
19
|
+
* distinguir por patrón.
|
|
20
|
+
*
|
|
21
|
+
* Ejemplo:
|
|
22
|
+
* notifier.describeError(messages.byCommand({
|
|
23
|
+
* docker: "Falló un paso de Docker, revisa el build/push del registry"
|
|
24
|
+
* }));
|
|
25
|
+
*/
|
|
26
|
+
export declare function byCommand(map: Record<string, string>): ErrorMessageFormatter;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.byPattern = byPattern;
|
|
4
|
+
exports.byCommand = byCommand;
|
|
5
|
+
/**
|
|
6
|
+
* Formateador de fábrica: prueba una lista de [regex, mensaje] contra el
|
|
7
|
+
* stderr/mensaje del error y devuelve el mensaje personalizado del primer
|
|
8
|
+
* patrón que matchee, en vez del stderr crudo.
|
|
9
|
+
*
|
|
10
|
+
* Ejemplo:
|
|
11
|
+
* notifier.describeError(messages.byPattern([
|
|
12
|
+
* [/500 Internal Server Error/, "Se reportó a infraestructura: falta de espacio en el registry"],
|
|
13
|
+
* [/unauthorized|403/i, "Credenciales inválidas contra el registry, revisa el secret"],
|
|
14
|
+
* [/no space left|ENOSPC/i, "El nodo se quedó sin espacio en disco"]
|
|
15
|
+
* ]));
|
|
16
|
+
*/
|
|
17
|
+
function byPattern(rules) {
|
|
18
|
+
return (error) => {
|
|
19
|
+
const execError = error;
|
|
20
|
+
const text = execError?.stderr || execError?.message || String(error);
|
|
21
|
+
for (const [pattern, message] of rules) {
|
|
22
|
+
if (pattern.test(text)) {
|
|
23
|
+
return message;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return undefined;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Formateador de fábrica: mapea el comando que falló (docker, kubectl,
|
|
31
|
+
* terraform, etc.) a un mensaje genérico fijo, sin importar el detalle del
|
|
32
|
+
* error. Útil como mensaje "catch-all" por comando cuando no necesitas
|
|
33
|
+
* distinguir por patrón.
|
|
34
|
+
*
|
|
35
|
+
* Ejemplo:
|
|
36
|
+
* notifier.describeError(messages.byCommand({
|
|
37
|
+
* docker: "Falló un paso de Docker, revisa el build/push del registry"
|
|
38
|
+
* }));
|
|
39
|
+
*/
|
|
40
|
+
function byCommand(map) {
|
|
41
|
+
return (error) => {
|
|
42
|
+
const command = error?.command;
|
|
43
|
+
if (!command)
|
|
44
|
+
return undefined;
|
|
45
|
+
return map[command];
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/core/messages.ts"],"names":[],"mappings":";;AAoBA,8BAiBC;AAaD,8BAYC;AAtDD;;;;;;;;;;;GAWG;AACH,SAAgB,SAAS,CAAC,KAA8B;IAEpD,OAAO,CAAC,KAAc,EAAE,EAAE;QAEtB,MAAM,SAAS,GAAG,KAAsB,CAAC;QACzC,MAAM,IAAI,GAAG,SAAS,EAAE,MAAM,IAAI,SAAS,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;QAEtE,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,KAAK,EAAE,CAAC;YACrC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,OAAO,OAAO,CAAC;YACnB,CAAC;QACL,CAAC;QAED,OAAO,SAAS,CAAC;IAErB,CAAC,CAAC;AAEN,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,SAAS,CAAC,GAA2B;IAEjD,OAAO,CAAC,KAAc,EAAE,EAAE;QAEtB,MAAM,OAAO,GAAI,KAAuB,EAAE,OAAO,CAAC;QAElD,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAE/B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;IAExB,CAAC,CAAC;AAEN,CAAC"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -103,3 +103,11 @@ export interface ResolvedMenuEntry {
|
|
|
103
103
|
onSuccess?: SuccessCallback;
|
|
104
104
|
onError?: ErrorCallback;
|
|
105
105
|
}
|
|
106
|
+
/**
|
|
107
|
+
* Igual que ErrorClassifier, pero en vez de decidir el área, devuelve el
|
|
108
|
+
* mensaje humano que se va a reportar (reemplazando el stderr/mensaje crudo
|
|
109
|
+
* del error). Devuelve `undefined` si no sabe describir ese error (se
|
|
110
|
+
* prueba el siguiente formatter registrado, y si ninguno matchea se usa el
|
|
111
|
+
* mensaje crudo del error como antes).
|
|
112
|
+
*/
|
|
113
|
+
export type ErrorMessageFormatter = (error: unknown, ctx: Context) => string | undefined;
|
package/dist/index.d.ts
CHANGED
|
@@ -9,4 +9,5 @@ export type { ServicesRegistry } from "./services";
|
|
|
9
9
|
export { Notifier } from "./core/Notifier";
|
|
10
10
|
export * as senders from "./core/senders";
|
|
11
11
|
export * as classifiers from "./core/classifiers";
|
|
12
|
-
export
|
|
12
|
+
export * as messages from "./core/messages";
|
|
13
|
+
export type { ExecOptions, ExecResult, MenuTask, MenuOptionWithSelector, MenuOptionValue, MenuDefinition, ResolvedMenuEntry, TaskHooks, SuccessCallback, ErrorCallback, NotificationEvent, ErrorClassifier, ErrorMessageFormatter, Sender } from "./core/types";
|
package/dist/index.js
CHANGED
|
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.classifiers = exports.senders = exports.Notifier = exports.services = exports.prompt = exports.logger = exports.Menu = exports.Context = void 0;
|
|
36
|
+
exports.messages = exports.classifiers = exports.senders = exports.Notifier = exports.services = exports.prompt = exports.logger = exports.Menu = exports.Context = void 0;
|
|
37
37
|
var Context_1 = require("./core/Context");
|
|
38
38
|
Object.defineProperty(exports, "Context", { enumerable: true, get: function () { return Context_1.Context; } });
|
|
39
39
|
var Menu_1 = require("./core/Menu");
|
|
@@ -47,4 +47,5 @@ var Notifier_1 = require("./core/Notifier");
|
|
|
47
47
|
Object.defineProperty(exports, "Notifier", { enumerable: true, get: function () { return Notifier_1.Notifier; } });
|
|
48
48
|
exports.senders = __importStar(require("./core/senders"));
|
|
49
49
|
exports.classifiers = __importStar(require("./core/classifiers"));
|
|
50
|
+
exports.messages = __importStar(require("./core/messages"));
|
|
50
51
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAAyC;AAAhC,kGAAA,OAAO,OAAA;AAGhB,oCAAmC;AAA1B,4FAAA,IAAI,OAAA;AAEb,wCAAuC;AAA9B,gGAAA,MAAM,OAAA;AAGf,wDAAwC;AAExC,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AAGjB,4CAA2C;AAAlC,oGAAA,QAAQ,OAAA;AACjB,0DAA0C;AAC1C,kEAAkD"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAAyC;AAAhC,kGAAA,OAAO,OAAA;AAGhB,oCAAmC;AAA1B,4FAAA,IAAI,OAAA;AAEb,wCAAuC;AAA9B,gGAAA,MAAM,OAAA;AAGf,wDAAwC;AAExC,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AAGjB,4CAA2C;AAAlC,oGAAA,QAAQ,OAAA;AACjB,0DAA0C;AAC1C,kEAAkD;AAClD,4DAA4C"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-indev/catops-cli",
|
|
3
|
-
"version": "0.0.1-alpha.
|
|
3
|
+
"version": "0.0.1-alpha.6",
|
|
4
4
|
"description": "Framework CLI para pipelines DevOps (shell, docker, git, kubectl, helm, npm, terraform, ansible, argocd, tekton, oc, az) sobre un ExecutionContext compartido, con menus interactivos y selectores automaticos por flag. Escrito en TypeScript, 100% usable desde JavaScript.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|