@cat-indev/catops-cli 0.0.1-alpha.23 → 0.0.1-alpha.24

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 CHANGED
@@ -323,6 +323,68 @@ await ctx.services.tekton.pipelineStart("build-pipeline", { params: { image: "ap
323
323
  await ctx.services.az.acrBuild({ registry: "miregistro", image: "app:v1" });
324
324
  ```
325
325
 
326
+ ## Docker (`ctx.services.docker`)
327
+
328
+ `ctx.services.docker` agrupa las operaciones habituales de Docker (`build`, `push`, `tag`, `login`, `pull`, `rm`, `rmi`, `prune`) más utilidades de validación de disco y caché (`systemDf`, `buildxDu`, `validateCache`, `validateSpace`).
329
+
330
+ ```javascript
331
+ // build — `--pull=false/true` y `--no-cache`
332
+ await ctx.services.docker.build({
333
+ image: "registry/app:v1",
334
+ context: ".",
335
+ dockerfile: "Dockerfile",
336
+ buildArgs: { NODE_ENV: "production" },
337
+ pull: false, // docker build --pull=false ...
338
+ noCache: true // ... --no-cache
339
+ });
340
+
341
+ await ctx.services.docker.push("registry/app:v1");
342
+ await ctx.services.docker.tag("app:v1", "registry/app:v1");
343
+ await ctx.services.docker.login({ registry, username, password });
344
+ await ctx.services.docker.pull("registry/app:v1");
345
+
346
+ // rm / rmi — eliminar contenedor / imagen (rm con -f si lo deseas)
347
+ await ctx.services.docker.rm("mycontainer");
348
+ await ctx.services.docker.rm("mycontainer", { force: true });
349
+ await ctx.services.docker.rmi("registry/app:v1");
350
+
351
+ // prune — docker system prune [-a] [--volumes] [--filter ...]
352
+ await ctx.services.docker.prune({ all: true, volumes: true });
353
+ await ctx.services.docker.prune({ all: true, filter: "until=24h" });
354
+
355
+ // systemDf — docker system df con tamaños normalizados a bytes
356
+ const usage = await ctx.services.docker.systemDf();
357
+ // → { rows: [{ type: "Images", total, active, size, reclaimable }, ...],
358
+ // total: { size, reclaimable, ... }, raw }
359
+ console.log(usage.total.size); // bytes totales ocupados
360
+ console.log(usage.rows[0].reclaimable); // bytes reclaimables por tipo
361
+
362
+ // buildxDu — tamaño de la caché de build (buildkit)
363
+ await ctx.services.docker.buildxDu();
364
+
365
+ // validateCache — cuánto ocupa la caché de build y cuánto es recuperable
366
+ const cache = await ctx.services.docker.validateCache();
367
+ // → { cache, reclaimable, usage }
368
+
369
+ // validateSpace — compara cada métrica contra umbrales configurados (bytes)
370
+ const { exceeded } = await ctx.services.docker.validateSpace({
371
+ images: 10 * 1e9, // 10 GB de imágenes
372
+ containers: 2 * 1e9, // 2 GB de contenedores
373
+ volumes: 5 * 1e9, // 5 GB de volúmenes
374
+ buildCache: 3 * 1e9, // 3 GB de caché de build
375
+ reclaimable: 6 * 1e9 // 6 GB reclaimables en total
376
+ });
377
+
378
+ if (exceeded.length) {
379
+ await ctx.services.docker.prune({ all: true });
380
+ }
381
+
382
+ // Con throwOnExceeded=true lanza un Error si se supera algún umbral
383
+ await ctx.services.docker.validateSpace({ images: 8 * 1e9 }, undefined, true);
384
+ ```
385
+
386
+ Los umbrales y los tamaños del `systemDf` se expresan en **bytes** (con `parseSize` que normaliza `KB/MB/GB/TB`). Todas las funciones aceptan `exec` (retry/timeout/dryRun) como antes.
387
+
326
388
  ## kubectl / oc: kubeconfig, namespace, retry/timeout, y espera cíclica del rollout
327
389
 
328
390
  `kubectl` y `oc` aceptan `{ kubeconfig, namespace, exec }` como último argumento en **todos** sus comandos (retrocompatible, sigue funcionando sin ese argumento — ver la sección anterior para el detalle de `exec`):
package/dist/index.d.ts CHANGED
@@ -10,6 +10,7 @@ export { PipelineRegistry, Pipeline, PipelineStage, PipelineJob, PipelineTask, P
10
10
  export type { PipelineConfig, PipelineStageConfig, PipelineJobConfig, PipelineTaskConfig, PipelineTaskBase, CallbackTaskConfig, PipelineRunResult, PipelineEntityStatus } from "./services/pipeline";
11
11
  export { YamlService } from "./services/yaml";
12
12
  export type { YamlPrepareActions } from "./services/yaml";
13
+ export * as docker from "./services/docker";
13
14
  export { http, HttpService, HttpRegistry } from "./services/http";
14
15
  export type { HttpMethod, HttpRequest, HttpResponse, HttpServiceConfig, RequestInterceptor, ResponseInterceptor, RequestContext, ResponseContext } from "./services/http-types";
15
16
  export { AzureDevOpsApi } from "./services/azdo-api";
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.ServiceError = exports.messages = exports.classifiers = exports.senders = exports.Notifier = exports.formatAzdoError = exports.parseAzdoError = exports.AzdoApiError = exports.AzureDevOpsApi = exports.HttpRegistry = exports.HttpService = exports.http = exports.YamlService = exports.PipelineResultsAccessor = exports.PipelineTask = exports.PipelineJob = exports.PipelineStage = exports.Pipeline = exports.PipelineRegistry = exports.services = exports.prompt = exports.logger = exports.Menu = exports.Context = void 0;
36
+ exports.ServiceError = exports.messages = exports.classifiers = exports.senders = exports.Notifier = exports.formatAzdoError = exports.parseAzdoError = exports.AzdoApiError = exports.AzureDevOpsApi = exports.HttpRegistry = exports.HttpService = exports.http = exports.docker = exports.YamlService = exports.PipelineResultsAccessor = exports.PipelineTask = exports.PipelineJob = exports.PipelineStage = exports.Pipeline = exports.PipelineRegistry = 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");
@@ -52,6 +52,7 @@ Object.defineProperty(exports, "PipelineTask", { enumerable: true, get: function
52
52
  Object.defineProperty(exports, "PipelineResultsAccessor", { enumerable: true, get: function () { return pipeline_1.PipelineResultsAccessor; } });
53
53
  var yaml_1 = require("./services/yaml");
54
54
  Object.defineProperty(exports, "YamlService", { enumerable: true, get: function () { return yaml_1.YamlService; } });
55
+ exports.docker = __importStar(require("./services/docker"));
55
56
  var http_1 = require("./services/http");
56
57
  Object.defineProperty(exports, "http", { enumerable: true, get: function () { return http_1.http; } });
57
58
  Object.defineProperty(exports, "HttpService", { enumerable: true, get: function () { return http_1.HttpService; } });
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,gDAAoI;AAA3H,4GAAA,gBAAgB,OAAA;AAAE,oGAAA,QAAQ,OAAA;AAAE,yGAAA,aAAa,OAAA;AAAE,uGAAA,WAAW,OAAA;AAAE,wGAAA,YAAY,OAAA;AAAE,mHAAA,uBAAuB,OAAA;AAYtG,wCAA8C;AAArC,mGAAA,WAAW,OAAA;AAGpB,wCAAkE;AAAzD,4FAAA,IAAI,OAAA;AAAE,mGAAA,WAAW,OAAA;AAAE,oGAAA,YAAY,OAAA;AAYxC,gDAAqD;AAA5C,0GAAA,cAAc,OAAA;AA6BvB,sDAAuF;AAA9E,2GAAA,YAAY,OAAA;AAAE,6GAAA,cAAc,OAAA;AAAE,8GAAA,eAAe,OAAA;AAGtD,4CAA2C;AAAlC,oGAAA,QAAQ,OAAA;AACjB,0DAA0C;AAC1C,kEAAkD;AAClD,4DAA4C;AAmB5C,sCAA4C;AAAnC,qGAAA,YAAY,OAAA"}
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,gDAAoI;AAA3H,4GAAA,gBAAgB,OAAA;AAAE,oGAAA,QAAQ,OAAA;AAAE,yGAAA,aAAa,OAAA;AAAE,uGAAA,WAAW,OAAA;AAAE,wGAAA,YAAY,OAAA;AAAE,mHAAA,uBAAuB,OAAA;AAYtG,wCAA8C;AAArC,mGAAA,WAAW,OAAA;AAGpB,4DAA4C;AAE5C,wCAAkE;AAAzD,4FAAA,IAAI,OAAA;AAAE,mGAAA,WAAW,OAAA;AAAE,oGAAA,YAAY,OAAA;AAYxC,gDAAqD;AAA5C,0GAAA,cAAc,OAAA;AA6BvB,sDAAuF;AAA9E,2GAAA,YAAY,OAAA;AAAE,6GAAA,cAAc,OAAA;AAAE,8GAAA,eAAe,OAAA;AAGtD,4CAA2C;AAAlC,oGAAA,QAAQ,OAAA;AACjB,0DAA0C;AAC1C,kEAAkD;AAClD,4DAA4C;AAmB5C,sCAA4C;AAAnC,qGAAA,YAAY,OAAA"}
@@ -4,6 +4,10 @@ export interface DockerBuildOptions {
4
4
  context?: string;
5
5
  dockerfile?: string;
6
6
  buildArgs?: Record<string, string>;
7
+ /** `--pull=<true|false>`: fuerza intentar descargar la imagen base. */
8
+ pull?: boolean;
9
+ /** `--no-cache`: omite la caché de capas durante el build. */
10
+ noCache?: boolean;
7
11
  /** retry/timeout/dryRun para esta llamada puntual. */
8
12
  exec?: ExecOptions;
9
13
  }
@@ -13,9 +17,83 @@ export interface DockerLoginOptions {
13
17
  password: string;
14
18
  exec?: ExecOptions;
15
19
  }
16
- export declare function build({ image, context, dockerfile, buildArgs, exec }: DockerBuildOptions): Promise<ExecResult>;
20
+ export interface DockerPruneOptions {
21
+ /** `-a`: elimina también imágenes y caché sin uso (build cache). */
22
+ all?: boolean;
23
+ /** `--volumes`: elimina también volúmenes anónimos. */
24
+ volumes?: boolean;
25
+ /** `--filter`: filtros adicionales (ej. "until=24h"). */
26
+ filter?: string;
27
+ /** retry/timeout/dryRun para esta llamada puntual. */
28
+ exec?: ExecOptions;
29
+ }
30
+ export interface DockerRmOptions {
31
+ /** Fuerza la eliminación de un contenedor en ejecución. */
32
+ force?: boolean;
33
+ /** retry/timeout/dryRun para esta llamada puntual. */
34
+ exec?: ExecOptions;
35
+ }
36
+ /** Entrada parseada de una fila de `docker system df`. */
37
+ export interface DockerDiskUsageRow {
38
+ type: string;
39
+ total: number;
40
+ active: number;
41
+ size: number;
42
+ reclaimable: number;
43
+ }
44
+ /** Resultado de `docker system df` con unidades normalizadas a bytes. */
45
+ export interface DockerDiskUsage {
46
+ rows: DockerDiskUsageRow[];
47
+ /** Fila agregada que suma todos los tipos (total/reclaimable en bytes). */
48
+ total: DockerDiskUsageRow;
49
+ raw: string;
50
+ }
51
+ /** Umbrals de validación para `validateSpace` (en bytes). */
52
+ export interface DockerSpaceThresholds {
53
+ /** Espacio total ocupado por imágenes. */
54
+ images?: number;
55
+ /** Espacio total ocupado por contenedores. */
56
+ containers?: number;
57
+ /** Espacio total ocupado por volúmenes locales. */
58
+ volumes?: number;
59
+ /** Espacio total ocupado por la caché de build. */
60
+ buildCache?: number;
61
+ /** Espacio total reclaimable (suma de todos los tipos). */
62
+ reclaimable?: number;
63
+ }
64
+ export declare function build({ image, context, dockerfile, buildArgs, pull, noCache, exec }: DockerBuildOptions): Promise<ExecResult>;
17
65
  export declare function push(image: string, exec?: ExecOptions): Promise<ExecResult>;
18
66
  export declare function tag(source: string, target: string, exec?: ExecOptions): Promise<ExecResult>;
19
67
  export declare function login({ registry, username, password, exec }: DockerLoginOptions): Promise<ExecResult>;
20
68
  export declare function pull(image: string, exec?: ExecOptions): Promise<ExecResult>;
21
69
  export declare function rmi(image: string, exec?: ExecOptions): Promise<ExecResult>;
70
+ export declare function rm(container: string, { force, exec }?: DockerRmOptions): Promise<ExecResult>;
71
+ /** `docker system prune`: libera espacio eliminando contenedores/imágenes/volúmenes/caché sin uso. */
72
+ export declare function prune({ all, volumes, filter, exec }?: DockerPruneOptions): Promise<ExecResult>;
73
+ /**
74
+ * `docker system df`: devuelve el uso de disco de imágenes, contenedores,
75
+ * volúmenes y caché de build, normalizado a bytes para su análisis.
76
+ */
77
+ export declare function systemDf(exec?: ExecOptions): Promise<DockerDiskUsage>;
78
+ /** `docker buildx du`: tamaño de la caché de build (buildkit). */
79
+ export declare function buildxDu(exec?: ExecOptions): Promise<ExecResult>;
80
+ /**
81
+ * Valida la caché de build. Devuelve el uso de la caché (reclaimable) para
82
+ * decidir si conviene hacer prune. No lanza error por sí mismo: retorna el
83
+ * resultado analizado.
84
+ */
85
+ export declare function validateCache(exec?: ExecOptions): Promise<{
86
+ cache: number;
87
+ reclaimable: number;
88
+ usage: DockerDiskUsage;
89
+ }>;
90
+ /**
91
+ * Valida el espacio usado por imagenes, contenedores, volúmenes y caché.
92
+ * Compara cada métrica con los umbrales configurados (en bytes) y devuelve
93
+ * una lista con los que se han superado. Si `throwOnExceeded` es true, lanza
94
+ * un Error al superarse algún umbral.
95
+ */
96
+ export declare function validateSpace(thresholds?: DockerSpaceThresholds, exec?: ExecOptions, throwOnExceeded?: boolean): Promise<{
97
+ exceeded: string[];
98
+ usage: DockerDiskUsage;
99
+ }>;
@@ -6,8 +6,14 @@ exports.tag = tag;
6
6
  exports.login = login;
7
7
  exports.pull = pull;
8
8
  exports.rmi = rmi;
9
+ exports.rm = rm;
10
+ exports.prune = prune;
11
+ exports.systemDf = systemDf;
12
+ exports.buildxDu = buildxDu;
13
+ exports.validateCache = validateCache;
14
+ exports.validateSpace = validateSpace;
9
15
  const shell_1 = require("./shell");
10
- function build({ image, context = ".", dockerfile, buildArgs = {}, exec }) {
16
+ function build({ image, context = ".", dockerfile, buildArgs = {}, pull, noCache, exec }) {
11
17
  const args = ["build", "-t", image];
12
18
  if (dockerfile) {
13
19
  args.push("-f", dockerfile);
@@ -15,6 +21,12 @@ function build({ image, context = ".", dockerfile, buildArgs = {}, exec }) {
15
21
  Object.entries(buildArgs).forEach(([k, v]) => {
16
22
  args.push("--build-arg", `${k}=${v}`);
17
23
  });
24
+ if (pull !== undefined) {
25
+ args.push("--pull", String(pull));
26
+ }
27
+ if (noCache) {
28
+ args.push("--no-cache");
29
+ }
18
30
  args.push(context);
19
31
  return shell_1.shell.exec("docker", ...(0, shell_1.withExecOptions)(args, exec));
20
32
  }
@@ -33,4 +45,135 @@ function pull(image, exec) {
33
45
  function rmi(image, exec) {
34
46
  return shell_1.shell.exec("docker", ...(0, shell_1.withExecOptions)(["rmi", image], exec));
35
47
  }
48
+ function rm(container, { force, exec } = {}) {
49
+ const args = ["rm"];
50
+ if (force) {
51
+ args.push("-f");
52
+ }
53
+ args.push(container);
54
+ return shell_1.shell.exec("docker", ...(0, shell_1.withExecOptions)(args, exec));
55
+ }
56
+ /** `docker system prune`: libera espacio eliminando contenedores/imágenes/volúmenes/caché sin uso. */
57
+ function prune({ all, volumes, filter, exec } = {}) {
58
+ const args = ["system", "prune"];
59
+ if (all) {
60
+ args.push("-a");
61
+ }
62
+ if (volumes) {
63
+ args.push("--volumes");
64
+ }
65
+ if (filter) {
66
+ args.push("--filter", filter);
67
+ }
68
+ args.push("-f");
69
+ return shell_1.shell.exec("docker", ...(0, shell_1.withExecOptions)(args, exec));
70
+ }
71
+ /**
72
+ * `docker system df`: devuelve el uso de disco de imágenes, contenedores,
73
+ * volúmenes y caché de build, normalizado a bytes para su análisis.
74
+ */
75
+ async function systemDf(exec) {
76
+ const res = await shell_1.shell.exec("docker", ...(0, shell_1.withExecOptions)(["system", "df"], exec));
77
+ return parseSystemDf(res.stdout);
78
+ }
79
+ /** `docker buildx du`: tamaño de la caché de build (buildkit). */
80
+ function buildxDu(exec) {
81
+ return shell_1.shell.exec("docker", ...(0, shell_1.withExecOptions)(["buildx", "du"], exec));
82
+ }
83
+ /**
84
+ * Valida la caché de build. Devuelve el uso de la caché (reclaimable) para
85
+ * decidir si conviene hacer prune. No lanza error por sí mismo: retorna el
86
+ * resultado analizado.
87
+ */
88
+ async function validateCache(exec) {
89
+ const usage = await systemDf(exec);
90
+ const cacheRows = usage.rows.filter(r => /cache/i.test(r.type));
91
+ const cache = cacheRows.reduce((s, r) => s + r.size, 0);
92
+ const reclaimable = cacheRows.reduce((s, r) => s + r.reclaimable, 0);
93
+ return { cache, reclaimable, usage };
94
+ }
95
+ /**
96
+ * Valida el espacio usado por imagenes, contenedores, volúmenes y caché.
97
+ * Compara cada métrica con los umbrales configurados (en bytes) y devuelve
98
+ * una lista con los que se han superado. Si `throwOnExceeded` es true, lanza
99
+ * un Error al superarse algún umbral.
100
+ */
101
+ async function validateSpace(thresholds = {}, exec, throwOnExceeded = false) {
102
+ const usage = await systemDf(exec);
103
+ const map = {
104
+ images: { actual: usage.rows.find(r => /^images$/i.test(r.type))?.size ?? 0, limit: thresholds.images, label: "Imágenes" },
105
+ containers: { actual: usage.rows.find(r => /^containers$/i.test(r.type))?.size ?? 0, limit: thresholds.containers, label: "Contenedores" },
106
+ volumes: { actual: usage.rows.find(r => /volume/i.test(r.type))?.size ?? 0, limit: thresholds.volumes, label: "Volúmenes" },
107
+ buildCache: { actual: usage.rows.find(r => /cache/i.test(r.type))?.size ?? 0, limit: thresholds.buildCache, label: "Caché de build" },
108
+ reclaimable: { actual: usage.total.reclaimable, limit: thresholds.reclaimable, label: "Espacio reclaimable" }
109
+ };
110
+ const exceeded = [];
111
+ for (const [, { actual, limit, label }] of Object.entries(map)) {
112
+ if (limit !== undefined && actual > limit) {
113
+ exceeded.push(`${label}: ${formatBytes(actual)} supera el umbral de ${formatBytes(limit)}`);
114
+ }
115
+ }
116
+ if (throwOnExceeded && exceeded.length > 0) {
117
+ throw new Error(`Espacio de docker por encima de los umbrales: ${exceeded.join("; ")}`);
118
+ }
119
+ return { exceeded, usage };
120
+ }
121
+ // ---------------------------------------------------------------------------
122
+ // Helpers internos
123
+ // ---------------------------------------------------------------------------
124
+ function parseSize(value) {
125
+ const trimmed = value.trim();
126
+ if (!trimmed || trimmed === "-" || trimmed === "0B")
127
+ return 0;
128
+ const match = /^([\d.]+)\s*([kKmMgGtT]?)[bB]?$/.exec(trimmed);
129
+ if (!match)
130
+ return 0;
131
+ const num = parseFloat(match[1]);
132
+ const unit = match[2].toLowerCase();
133
+ const mult = { "": 1, k: 1e3, m: 1e6, g: 1e9, t: 1e12 };
134
+ return Math.round(num * (mult[unit] ?? 1));
135
+ }
136
+ function composeNumber(value) {
137
+ const m = /(\d+)/.exec(value.trim());
138
+ return m ? parseInt(m[1], 10) : 0;
139
+ }
140
+ function parseSystemDf(stdout) {
141
+ const lines = stdout.split(/\r?\n/).map(l => l.trim()).filter(Boolean);
142
+ const headerIdx = lines.findIndex(l => /^TYPE/.test(l));
143
+ if (headerIdx === -1) {
144
+ return { rows: [], total: { type: "Total", total: 0, active: 0, size: 0, reclaimable: 0 }, raw: stdout };
145
+ }
146
+ const rows = [];
147
+ for (let i = headerIdx + 1; i < lines.length; i++) {
148
+ const line = lines[i];
149
+ if (!line)
150
+ continue;
151
+ const cols = line.split(/\s{2,}/).map(c => c.trim());
152
+ if (cols.length < 5)
153
+ continue;
154
+ rows.push({
155
+ type: cols[0],
156
+ total: composeNumber(cols[1]),
157
+ active: composeNumber(cols[2]),
158
+ size: parseSize(cols[3]),
159
+ reclaimable: parseSize(cols[4].split(" ")[0])
160
+ });
161
+ }
162
+ const total = {
163
+ type: "Total",
164
+ total: rows.reduce((s, r) => s + r.total, 0),
165
+ active: rows.reduce((s, r) => s + r.active, 0),
166
+ size: rows.reduce((s, r) => s + r.size, 0),
167
+ reclaimable: rows.reduce((s, r) => s + r.reclaimable, 0)
168
+ };
169
+ return { rows, total, raw: stdout };
170
+ }
171
+ function formatBytes(bytes) {
172
+ if (!bytes)
173
+ return "0 B";
174
+ const units = ["B", "KB", "MB", "GB", "TB"];
175
+ const i = Math.floor(Math.log(bytes) / Math.log(1000));
176
+ const val = bytes / Math.pow(1000, Math.min(i, units.length - 1));
177
+ return `${val.toFixed(1)} ${units[Math.min(i, units.length - 1)]}`;
178
+ }
36
179
  //# sourceMappingURL=docker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/services/docker.ts"],"names":[],"mappings":";;AAmBA,sBAsBC;AAED,oBAEC;AAED,kBAEC;AAED,sBAEC;AAED,oBAEC;AAED,kBAEC;AA7DD,mCAAiD;AAmBjD,SAAgB,KAAK,CAAC,EAClB,KAAK,EACL,OAAO,GAAG,GAAG,EACb,UAAU,EACV,SAAS,GAAG,EAAE,EACd,IAAI,EACa;IAEjB,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAEpC,IAAI,UAAU,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;QACzC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEnB,OAAO,aAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAA,uBAAe,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAEhE,CAAC;AAED,SAAgB,IAAI,CAAC,KAAa,EAAE,IAAkB;IAClD,OAAO,aAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAA,uBAAe,EAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,SAAgB,GAAG,CAAC,MAAc,EAAE,MAAc,EAAE,IAAkB;IAClE,OAAO,aAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAA,uBAAe,EAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACnF,CAAC;AAED,SAAgB,KAAK,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAsB;IAC5E,OAAO,aAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAA,uBAAe,EAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC/G,CAAC;AAED,SAAgB,IAAI,CAAC,KAAa,EAAE,IAAkB;IAClD,OAAO,aAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAA,uBAAe,EAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,SAAgB,GAAG,CAAC,KAAa,EAAE,IAAkB;IACjD,OAAO,aAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAA,uBAAe,EAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC1E,CAAC"}
1
+ {"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/services/docker.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-indev/catops-cli",
3
- "version": "0.0.1-alpha.23",
3
+ "version": "0.0.1-alpha.24",
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",