@cat-indev/catops-cli 0.0.1-alpha.10

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.
Files changed (93) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1254 -0
  3. package/dist/bin/devops-cli.d.ts +2 -0
  4. package/dist/bin/devops-cli.js +132 -0
  5. package/dist/bin/devops-cli.js.map +1 -0
  6. package/dist/core/Context.d.ts +56 -0
  7. package/dist/core/Context.js +197 -0
  8. package/dist/core/Context.js.map +1 -0
  9. package/dist/core/Menu.d.ts +23 -0
  10. package/dist/core/Menu.js +160 -0
  11. package/dist/core/Menu.js.map +1 -0
  12. package/dist/core/Notifier.d.ts +42 -0
  13. package/dist/core/Notifier.js +128 -0
  14. package/dist/core/Notifier.js.map +1 -0
  15. package/dist/core/classifiers.d.ts +45 -0
  16. package/dist/core/classifiers.js +90 -0
  17. package/dist/core/classifiers.js.map +1 -0
  18. package/dist/core/logger.d.ts +8 -0
  19. package/dist/core/logger.js +37 -0
  20. package/dist/core/logger.js.map +1 -0
  21. package/dist/core/messages.d.ts +102 -0
  22. package/dist/core/messages.js +163 -0
  23. package/dist/core/messages.js.map +1 -0
  24. package/dist/core/prompt.d.ts +10 -0
  25. package/dist/core/prompt.js +87 -0
  26. package/dist/core/prompt.js.map +1 -0
  27. package/dist/core/senders.d.ts +27 -0
  28. package/dist/core/senders.js +109 -0
  29. package/dist/core/senders.js.map +1 -0
  30. package/dist/core/types.d.ts +135 -0
  31. package/dist/core/types.js +33 -0
  32. package/dist/core/types.js.map +1 -0
  33. package/dist/index.d.ts +20 -0
  34. package/dist/index.js +66 -0
  35. package/dist/index.js.map +1 -0
  36. package/dist/services/ansible.d.ts +12 -0
  37. package/dist/services/ansible.js +35 -0
  38. package/dist/services/ansible.js.map +1 -0
  39. package/dist/services/archive.d.ts +4 -0
  40. package/dist/services/archive.js +16 -0
  41. package/dist/services/archive.js.map +1 -0
  42. package/dist/services/argocd.d.ts +23 -0
  43. package/dist/services/argocd.js +48 -0
  44. package/dist/services/argocd.js.map +1 -0
  45. package/dist/services/az.d.ts +38 -0
  46. package/dist/services/az.js +51 -0
  47. package/dist/services/az.js.map +1 -0
  48. package/dist/services/azdo-api.d.ts +213 -0
  49. package/dist/services/azdo-api.js +247 -0
  50. package/dist/services/azdo-api.js.map +1 -0
  51. package/dist/services/azdo.d.ts +13 -0
  52. package/dist/services/azdo.js +57 -0
  53. package/dist/services/azdo.js.map +1 -0
  54. package/dist/services/docker.d.ts +21 -0
  55. package/dist/services/docker.js +36 -0
  56. package/dist/services/docker.js.map +1 -0
  57. package/dist/services/git.d.ts +9 -0
  58. package/dist/services/git.js +36 -0
  59. package/dist/services/git.js.map +1 -0
  60. package/dist/services/helm.d.ts +4 -0
  61. package/dist/services/helm.js +24 -0
  62. package/dist/services/helm.js.map +1 -0
  63. package/dist/services/http-types.d.ts +57 -0
  64. package/dist/services/http-types.js +3 -0
  65. package/dist/services/http-types.js.map +1 -0
  66. package/dist/services/http.d.ts +64 -0
  67. package/dist/services/http.js +288 -0
  68. package/dist/services/http.js.map +1 -0
  69. package/dist/services/index.d.ts +37 -0
  70. package/dist/services/index.js +88 -0
  71. package/dist/services/index.js.map +1 -0
  72. package/dist/services/kubectl.d.ts +137 -0
  73. package/dist/services/kubectl.js +271 -0
  74. package/dist/services/kubectl.js.map +1 -0
  75. package/dist/services/npm.d.ts +5 -0
  76. package/dist/services/npm.js +20 -0
  77. package/dist/services/npm.js.map +1 -0
  78. package/dist/services/oc.d.ts +156 -0
  79. package/dist/services/oc.js +309 -0
  80. package/dist/services/oc.js.map +1 -0
  81. package/dist/services/pipeline.d.ts +116 -0
  82. package/dist/services/pipeline.js +474 -0
  83. package/dist/services/pipeline.js.map +1 -0
  84. package/dist/services/shell.d.ts +28 -0
  85. package/dist/services/shell.js +206 -0
  86. package/dist/services/shell.js.map +1 -0
  87. package/dist/services/tekton.d.ts +16 -0
  88. package/dist/services/tekton.js +46 -0
  89. package/dist/services/tekton.js.map +1 -0
  90. package/dist/services/terraform.d.ts +31 -0
  91. package/dist/services/terraform.js +63 -0
  92. package/dist/services/terraform.js.map +1 -0
  93. package/package.json +58 -0
@@ -0,0 +1,206 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.shell = void 0;
37
+ exports.withExecOptions = withExecOptions;
38
+ const fs = __importStar(require("fs/promises"));
39
+ const fssync = __importStar(require("fs"));
40
+ const path = __importStar(require("path"));
41
+ const child_process_1 = require("child_process");
42
+ const logger_1 = require("../core/logger");
43
+ function isPlainObject(value) {
44
+ return Boolean(value)
45
+ && typeof value === "object"
46
+ && !Array.isArray(value);
47
+ }
48
+ function sleep(ms) {
49
+ return new Promise(resolve => setTimeout(resolve, ms));
50
+ }
51
+ class Shell {
52
+ constructor() {
53
+ this.cwdPath = process.cwd();
54
+ this.environment = { ...process.env };
55
+ // Defaults globales, ajustables con shell.configure({...})
56
+ // o por-llamada pasando un objeto de opciones al final de exec(...).
57
+ this.defaults = {
58
+ retry: 1,
59
+ retryDelay: 1000,
60
+ timeout: 0,
61
+ dryRun: false,
62
+ shell: false
63
+ };
64
+ }
65
+ configure(options = {}) {
66
+ Object.assign(this.defaults, options);
67
+ return this;
68
+ }
69
+ cwd(dir) {
70
+ this.cwdPath = path.resolve(dir);
71
+ return this;
72
+ }
73
+ env(name, value) {
74
+ this.environment[name] = value;
75
+ return this;
76
+ }
77
+ _execOnce(command, args, options) {
78
+ return new Promise((resolve, reject) => {
79
+ logger_1.logger.info(`EXEC: ${command} ${args.join(" ")}`);
80
+ if (options.dryRun) {
81
+ logger_1.logger.warn(`DRY-RUN: no se ejecuta realmente "${command} ${args.join(" ")}"`);
82
+ resolve({
83
+ code: 0,
84
+ stdout: "",
85
+ stderr: "",
86
+ dryRun: true,
87
+ command,
88
+ args
89
+ });
90
+ return;
91
+ }
92
+ const stdout = [];
93
+ const stderr = [];
94
+ const child = (0, child_process_1.spawn)(command, args, {
95
+ cwd: this.cwdPath,
96
+ env: this.environment,
97
+ shell: options.shell,
98
+ stdio: ["inherit", "pipe", "pipe"]
99
+ });
100
+ let timedOut = false;
101
+ let timer = null;
102
+ if (options.timeout > 0) {
103
+ timer = setTimeout(() => {
104
+ timedOut = true;
105
+ logger_1.logger.error(`TIMEOUT: "${command}" excedió ${options.timeout}ms, se envía SIGTERM`);
106
+ child.kill("SIGTERM");
107
+ }, options.timeout);
108
+ }
109
+ child.stdout?.on("data", data => {
110
+ const text = data.toString();
111
+ stdout.push(text);
112
+ logger_1.logger.info(text.trimEnd());
113
+ });
114
+ child.stderr?.on("data", data => {
115
+ const text = data.toString();
116
+ stderr.push(text);
117
+ logger_1.logger.error(text.trimEnd());
118
+ });
119
+ child.on("close", code => {
120
+ if (timer)
121
+ clearTimeout(timer);
122
+ const result = {
123
+ code,
124
+ stdout: stdout.join(""),
125
+ stderr: stderr.join(""),
126
+ timedOut,
127
+ command,
128
+ args
129
+ };
130
+ code === 0 && !timedOut
131
+ ? resolve(result)
132
+ : reject(result);
133
+ });
134
+ child.on("error", error => {
135
+ if (timer)
136
+ clearTimeout(timer);
137
+ Object.assign(error, { command, args });
138
+ reject(error);
139
+ });
140
+ });
141
+ }
142
+ async exec(command, ...rawArgs) {
143
+ let args = rawArgs;
144
+ let callOptions = {};
145
+ const last = rawArgs[rawArgs.length - 1];
146
+ if (rawArgs.length && isPlainObject(last)) {
147
+ callOptions = last;
148
+ args = rawArgs.slice(0, -1);
149
+ }
150
+ const options = {
151
+ ...this.defaults,
152
+ ...callOptions
153
+ };
154
+ const attempts = Math.max(1, options.retry);
155
+ let lastError = null;
156
+ for (let attempt = 1; attempt <= attempts; attempt++) {
157
+ try {
158
+ return await this._execOnce(command, args, options);
159
+ }
160
+ catch (error) {
161
+ lastError = error;
162
+ const isLastAttempt = attempt === attempts;
163
+ if (isLastAttempt)
164
+ break;
165
+ logger_1.logger.warn(`Reintentando "${command}" (intento ${attempt + 1}/${attempts}) tras fallo`);
166
+ if (options.retryDelay > 0) {
167
+ await sleep(options.retryDelay);
168
+ }
169
+ }
170
+ }
171
+ throw lastError;
172
+ }
173
+ async exists(file) {
174
+ return fssync.existsSync(file);
175
+ }
176
+ async mkdir(dir) {
177
+ await fs.mkdir(dir, { recursive: true });
178
+ }
179
+ async remove(target) {
180
+ await fs.rm(target, { recursive: true, force: true });
181
+ }
182
+ async copy(from, to) {
183
+ await fs.cp(from, to, { recursive: true });
184
+ }
185
+ async move(from, to) {
186
+ await fs.rename(from, to);
187
+ }
188
+ async read(file) {
189
+ return fs.readFile(file, "utf8");
190
+ }
191
+ async write(file, data) {
192
+ await fs.writeFile(file, data);
193
+ }
194
+ }
195
+ exports.shell = new Shell();
196
+ /**
197
+ * Helper compartido por todos los servicios (docker, git, kubectl, ...):
198
+ * arma la lista final de argumentos para `shell.exec`, agregando el objeto
199
+ * `exec` (retry/timeout/dryRun) al final SOLO si se pasó, para que el
200
+ * `retry`/`timeout`/`dryRun` de una llamada puntual llegue tal cual a
201
+ * `shell.exec` sin que cada servicio tenga que reimplementar esta lógica.
202
+ */
203
+ function withExecOptions(args, exec) {
204
+ return exec ? [...args, exec] : args;
205
+ }
206
+ //# sourceMappingURL=shell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/services/shell.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { ExecOptions, ExecResult } from "../core/types";
2
+ export interface TektonPipelineStartOptions {
3
+ params?: Record<string, string>;
4
+ workspace?: string;
5
+ serviceAccount?: string;
6
+ exec?: ExecOptions;
7
+ }
8
+ export interface TektonLogsOptions {
9
+ follow?: boolean;
10
+ exec?: ExecOptions;
11
+ }
12
+ export declare function pipelineStart(name: string, { params, workspace, serviceAccount, exec }?: TektonPipelineStartOptions): Promise<ExecResult>;
13
+ export declare function pipelinerunList(pipelineName?: string, exec?: ExecOptions): Promise<ExecResult>;
14
+ export declare function pipelinerunLogs(name: string, { follow, exec }?: TektonLogsOptions): Promise<ExecResult>;
15
+ export declare function taskStart(name: string, params?: Record<string, string>, exec?: ExecOptions): Promise<ExecResult>;
16
+ export declare function taskrunLogs(name: string, exec?: ExecOptions): Promise<ExecResult>;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pipelineStart = pipelineStart;
4
+ exports.pipelinerunList = pipelinerunList;
5
+ exports.pipelinerunLogs = pipelinerunLogs;
6
+ exports.taskStart = taskStart;
7
+ exports.taskrunLogs = taskrunLogs;
8
+ const shell_1 = require("./shell");
9
+ function pipelineStart(name, { params = {}, workspace, serviceAccount, exec } = {}) {
10
+ const args = ["pipeline", "start", name];
11
+ Object.entries(params).forEach(([k, v]) => {
12
+ args.push("-p", `${k}=${v}`);
13
+ });
14
+ if (workspace) {
15
+ args.push("-w", workspace);
16
+ }
17
+ if (serviceAccount) {
18
+ args.push("-s", serviceAccount);
19
+ }
20
+ return shell_1.shell.exec("tkn", ...(0, shell_1.withExecOptions)(args, exec));
21
+ }
22
+ function pipelinerunList(pipelineName, exec) {
23
+ const args = ["pipelinerun", "list"];
24
+ if (pipelineName) {
25
+ args.push(pipelineName);
26
+ }
27
+ return shell_1.shell.exec("tkn", ...(0, shell_1.withExecOptions)(args, exec));
28
+ }
29
+ function pipelinerunLogs(name, { follow = true, exec } = {}) {
30
+ const args = ["pipelinerun", "logs", name];
31
+ if (follow) {
32
+ args.push("-f");
33
+ }
34
+ return shell_1.shell.exec("tkn", ...(0, shell_1.withExecOptions)(args, exec));
35
+ }
36
+ function taskStart(name, params = {}, exec) {
37
+ const args = ["task", "start", name];
38
+ Object.entries(params).forEach(([k, v]) => {
39
+ args.push("-p", `${k}=${v}`);
40
+ });
41
+ return shell_1.shell.exec("tkn", ...(0, shell_1.withExecOptions)(args, exec));
42
+ }
43
+ function taskrunLogs(name, exec) {
44
+ return shell_1.shell.exec("tkn", ...(0, shell_1.withExecOptions)(["taskrun", "logs", name, "-f"], exec));
45
+ }
46
+ //# sourceMappingURL=tekton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tekton.js","sourceRoot":"","sources":["../../src/services/tekton.ts"],"names":[],"mappings":";;AAeA,sCAkBC;AAED,0CAUC;AAED,0CAUC;AAED,8BAUC;AAED,kCAEC;AAzED,mCAAiD;AAejD,SAAgB,aAAa,CAAC,IAAY,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,IAAI,KAAiC,EAAE;IAEzH,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAEzC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;QACtC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,IAAI,SAAS,EAAE,CAAC;QACZ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,cAAc,EAAE,CAAC;QACjB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,aAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAA,uBAAe,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAE7D,CAAC;AAED,SAAgB,eAAe,CAAC,YAAqB,EAAE,IAAkB;IAErE,MAAM,IAAI,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAErC,IAAI,YAAY,EAAE,CAAC;QACf,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,aAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAA,uBAAe,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAE7D,CAAC;AAED,SAAgB,eAAe,CAAC,IAAY,EAAE,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,KAAwB,EAAE;IAEzF,MAAM,IAAI,GAAG,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAE3C,IAAI,MAAM,EAAE,CAAC;QACT,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,aAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAA,uBAAe,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAE7D,CAAC;AAED,SAAgB,SAAS,CAAC,IAAY,EAAE,SAAiC,EAAE,EAAE,IAAkB;IAE3F,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAErC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;QACtC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,OAAO,aAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAA,uBAAe,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAE7D,CAAC;AAED,SAAgB,WAAW,CAAC,IAAY,EAAE,IAAkB;IACxD,OAAO,aAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAA,uBAAe,EAAC,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACxF,CAAC"}
@@ -0,0 +1,31 @@
1
+ import type { ExecOptions, ExecResult } from "../core/types";
2
+ export interface TerraformInitOptions {
3
+ backendConfig?: Record<string, string>;
4
+ exec?: ExecOptions;
5
+ }
6
+ export interface TerraformPlanOptions {
7
+ out?: string;
8
+ varFile?: string;
9
+ vars?: Record<string, string>;
10
+ exec?: ExecOptions;
11
+ }
12
+ export interface TerraformApplyOptions {
13
+ autoApprove?: boolean;
14
+ planFile?: string;
15
+ exec?: ExecOptions;
16
+ }
17
+ export interface TerraformDestroyOptions {
18
+ autoApprove?: boolean;
19
+ exec?: ExecOptions;
20
+ }
21
+ export interface TerraformFmtOptions {
22
+ check?: boolean;
23
+ exec?: ExecOptions;
24
+ }
25
+ export declare function init({ backendConfig, exec }?: TerraformInitOptions): Promise<ExecResult>;
26
+ export declare function plan({ out, varFile, vars, exec }?: TerraformPlanOptions): Promise<ExecResult>;
27
+ export declare function apply({ autoApprove, planFile, exec }?: TerraformApplyOptions): Promise<ExecResult>;
28
+ export declare function destroy({ autoApprove, exec }?: TerraformDestroyOptions): Promise<ExecResult>;
29
+ export declare function output(name?: string, exec?: ExecOptions): Promise<ExecResult>;
30
+ export declare function validate(exec?: ExecOptions): Promise<ExecResult>;
31
+ export declare function fmt({ check, exec }?: TerraformFmtOptions): Promise<ExecResult>;
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.init = init;
4
+ exports.plan = plan;
5
+ exports.apply = apply;
6
+ exports.destroy = destroy;
7
+ exports.output = output;
8
+ exports.validate = validate;
9
+ exports.fmt = fmt;
10
+ const shell_1 = require("./shell");
11
+ function init({ backendConfig = {}, exec } = {}) {
12
+ const args = ["init"];
13
+ Object.entries(backendConfig).forEach(([k, v]) => {
14
+ args.push("-backend-config", `${k}=${v}`);
15
+ });
16
+ return shell_1.shell.exec("terraform", ...(0, shell_1.withExecOptions)(args, exec));
17
+ }
18
+ function plan({ out, varFile, vars = {}, exec } = {}) {
19
+ const args = ["plan"];
20
+ if (varFile) {
21
+ args.push("-var-file", varFile);
22
+ }
23
+ Object.entries(vars).forEach(([k, v]) => {
24
+ args.push("-var", `${k}=${v}`);
25
+ });
26
+ if (out) {
27
+ args.push("-out", out);
28
+ }
29
+ return shell_1.shell.exec("terraform", ...(0, shell_1.withExecOptions)(args, exec));
30
+ }
31
+ function apply({ autoApprove = true, planFile, exec } = {}) {
32
+ const args = ["apply"];
33
+ if (autoApprove) {
34
+ args.push("-auto-approve");
35
+ }
36
+ if (planFile) {
37
+ args.push(planFile);
38
+ }
39
+ return shell_1.shell.exec("terraform", ...(0, shell_1.withExecOptions)(args, exec));
40
+ }
41
+ function destroy({ autoApprove = true, exec } = {}) {
42
+ const args = ["destroy"];
43
+ if (autoApprove) {
44
+ args.push("-auto-approve");
45
+ }
46
+ return shell_1.shell.exec("terraform", ...(0, shell_1.withExecOptions)(args, exec));
47
+ }
48
+ function output(name, exec) {
49
+ const args = ["output", "-raw"];
50
+ if (name)
51
+ args.push(name);
52
+ return shell_1.shell.exec("terraform", ...(0, shell_1.withExecOptions)(args, exec));
53
+ }
54
+ function validate(exec) {
55
+ return shell_1.shell.exec("terraform", ...(0, shell_1.withExecOptions)(["validate"], exec));
56
+ }
57
+ function fmt({ check = false, exec } = {}) {
58
+ const args = ["fmt"];
59
+ if (check)
60
+ args.push("-check");
61
+ return shell_1.shell.exec("terraform", ...(0, shell_1.withExecOptions)(args, exec));
62
+ }
63
+ //# sourceMappingURL=terraform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terraform.js","sourceRoot":"","sources":["../../src/services/terraform.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,58 @@
1
+ {
2
+ "name": "@cat-indev/catops-cli",
3
+ "version": "0.0.1-alpha.10",
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
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "require": "./dist/index.js",
11
+ "default": "./dist/index.js"
12
+ },
13
+ "./package.json": "./package.json"
14
+ },
15
+ "bin": {
16
+ "catops-cli": "./dist/bin/devops-cli.js"
17
+ },
18
+ "files": [
19
+ "dist",
20
+ "README.md",
21
+ "LICENSE"
22
+ ],
23
+ "keywords": [
24
+ "cli",
25
+ "devops",
26
+ "docker",
27
+ "kubernetes",
28
+ "kubectl",
29
+ "helm",
30
+ "git",
31
+ "terraform",
32
+ "ansible",
33
+ "argocd",
34
+ "tekton",
35
+ "pipeline",
36
+ "ci-cd",
37
+ "typescript"
38
+ ],
39
+ "scripts": {
40
+ "build": "tsc -p tsconfig.json",
41
+ "clean": "rm -rf dist",
42
+ "prebuild": "npm run clean",
43
+ "example": "npm run build && node examples/pipeline-example.js",
44
+ "start": "node dist/bin/devops-cli.js",
45
+ "pretest": "npm run build",
46
+ "test": "node --test",
47
+ "prepublishOnly": "npm run build && npm test",
48
+ "prepare": "npm run build"
49
+ },
50
+ "engines": {
51
+ "node": ">=18"
52
+ },
53
+ "devDependencies": {
54
+ "@types/node": "^20.14.0",
55
+ "typescript": "^5.5.0"
56
+ },
57
+ "license": "MIT"
58
+ }