codecrypto-cli 1.0.2 → 1.0.4

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.
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const deployScCommand: Command;
3
+ //# sourceMappingURL=deploy-sc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy-sc.d.ts","sourceRoot":"","sources":["../../src/commands/deploy-sc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,eAAe,SA6JxB,CAAC"}
@@ -0,0 +1,185 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.deployScCommand = void 0;
40
+ const commander_1 = require("commander");
41
+ const chalk_1 = __importDefault(require("chalk"));
42
+ const ora_1 = __importDefault(require("ora"));
43
+ const child_process_1 = require("child_process");
44
+ const fs = __importStar(require("fs"));
45
+ const path = __importStar(require("path"));
46
+ exports.deployScCommand = new commander_1.Command('deploy-sc')
47
+ .description('Deploy smart contract using Foundry')
48
+ .argument('<script-path>', 'Path to the Foundry deployment script')
49
+ .option('-u, --url <rpc-url>', 'RPC URL of the blockchain', 'http://server.codecrypto.academy:8546')
50
+ .option('-k, --private-key <key>', 'Private key for deployment (or use PRIVATE_KEY env var)')
51
+ .option('--verify', 'Verify contract on block explorer', false)
52
+ .option('--broadcast', 'Broadcast the transaction', true)
53
+ .option('--slow', 'Use slow mode for deployment', false)
54
+ .action(async (scriptPath, options) => {
55
+ console.log(chalk_1.default.blue('\n🔷 CodeCrypto Smart Contract Deployment\n'));
56
+ try {
57
+ // Resolver ruta del script
58
+ const resolvedScriptPath = path.resolve(scriptPath);
59
+ // Verificar que el script existe
60
+ if (!fs.existsSync(resolvedScriptPath)) {
61
+ console.error(chalk_1.default.red(`❌ Error: El script no existe: ${resolvedScriptPath}`));
62
+ process.exit(1);
63
+ }
64
+ // Verificar que es un archivo .s.sol (Foundry script)
65
+ if (!resolvedScriptPath.endsWith('.s.sol')) {
66
+ console.warn(chalk_1.default.yellow(`⚠️ Advertencia: El archivo no tiene extensión .s.sol`));
67
+ }
68
+ // Obtener directorio del proyecto (asumimos que el script está en un proyecto Foundry)
69
+ const projectDir = path.dirname(resolvedScriptPath);
70
+ // Verificar que existe foundry.toml o que estamos en un proyecto Foundry
71
+ const foundryToml = path.join(projectDir, 'foundry.toml');
72
+ const foundryTomlParent = path.join(path.dirname(projectDir), 'foundry.toml');
73
+ let foundryProjectDir = projectDir;
74
+ if (fs.existsSync(foundryToml)) {
75
+ foundryProjectDir = projectDir;
76
+ }
77
+ else if (fs.existsSync(foundryTomlParent)) {
78
+ foundryProjectDir = path.dirname(projectDir);
79
+ }
80
+ else {
81
+ console.warn(chalk_1.default.yellow('⚠️ No se encontró foundry.toml, asumiendo que foundry está instalado globalmente'));
82
+ }
83
+ // Obtener nombre del script relativo al proyecto
84
+ const scriptRelativePath = path.relative(foundryProjectDir, resolvedScriptPath);
85
+ console.log(chalk_1.default.gray('Deployment Configuration:'));
86
+ console.log(chalk_1.default.white(` Script: ${chalk_1.default.green(scriptRelativePath)}`));
87
+ console.log(chalk_1.default.white(` RPC URL: ${chalk_1.default.green(options.url)}`));
88
+ console.log(chalk_1.default.white(` Broadcast: ${chalk_1.default.green(options.broadcast ? 'Yes' : 'No')}`));
89
+ console.log(chalk_1.default.white(` Verify: ${options.verify ? chalk_1.default.green('Yes') : chalk_1.default.yellow('No')}\n`));
90
+ // Verificar que forge está instalado
91
+ const forgeSpinner = (0, ora_1.default)('Verificando Foundry...').start();
92
+ try {
93
+ (0, child_process_1.execSync)('forge --version', { stdio: 'pipe' });
94
+ forgeSpinner.succeed('Foundry está instalado');
95
+ }
96
+ catch (error) {
97
+ forgeSpinner.fail('Foundry no está instalado');
98
+ console.error(chalk_1.default.red('Por favor instala Foundry: https://book.getfoundry.sh/getting-started/installation'));
99
+ process.exit(1);
100
+ }
101
+ // Preparar variables de entorno
102
+ const env = {
103
+ ...process.env,
104
+ RPC_URL: options.url,
105
+ };
106
+ // Agregar private key si se proporciona
107
+ if (options.privateKey) {
108
+ env.PRIVATE_KEY = options.privateKey;
109
+ }
110
+ else if (!process.env.PRIVATE_KEY) {
111
+ console.warn(chalk_1.default.yellow('⚠️ No se proporcionó PRIVATE_KEY. Asegúrate de tenerla configurada en el entorno.'));
112
+ }
113
+ // Construir comando forge script
114
+ const forgeArgs = [
115
+ 'script',
116
+ scriptRelativePath,
117
+ '--rpc-url',
118
+ options.url,
119
+ ];
120
+ // Agregar private key si está disponible
121
+ const privateKey = options.privateKey || process.env.PRIVATE_KEY;
122
+ if (privateKey) {
123
+ forgeArgs.push('--private-key', privateKey);
124
+ }
125
+ if (options.broadcast) {
126
+ forgeArgs.push('--broadcast');
127
+ }
128
+ // Solo agregar --verify si se especifica explícitamente
129
+ // Advertir si se intenta verificar en una cadena personalizada
130
+ if (options.verify) {
131
+ // Detectar si es una cadena personalizada (no es mainnet, sepolia, etc.)
132
+ const isCustomChain = options.url.includes('codecrypto.academy') ||
133
+ options.url.includes('localhost') ||
134
+ options.url.includes('127.0.0.1') ||
135
+ options.url.includes('8546') ||
136
+ options.url.includes('8545');
137
+ if (isCustomChain) {
138
+ console.warn(chalk_1.default.yellow('⚠️ Advertencia: La verificación en block explorer puede no funcionar para cadenas personalizadas'));
139
+ console.warn(chalk_1.default.yellow(' Si obtienes un error "Chain not found", omite el flag --verify'));
140
+ }
141
+ forgeArgs.push('--verify');
142
+ }
143
+ if (options.slow) {
144
+ forgeArgs.push('--slow');
145
+ }
146
+ // Ejecutar el script
147
+ const deploySpinner = (0, ora_1.default)('Desplegando smart contract...').start();
148
+ try {
149
+ const command = `forge ${forgeArgs.join(' ')}`;
150
+ console.log(chalk_1.default.gray(`\nEjecutando: ${command}\n`));
151
+ (0, child_process_1.execSync)(command, {
152
+ cwd: foundryProjectDir,
153
+ stdio: 'inherit',
154
+ env,
155
+ });
156
+ deploySpinner.succeed('Smart contract desplegado exitosamente');
157
+ console.log(chalk_1.default.green('\n✅ Deployment completed successfully!'));
158
+ console.log(chalk_1.default.gray('Contract details:'));
159
+ console.log(chalk_1.default.white(` Script: ${chalk_1.default.cyan(scriptRelativePath)}`));
160
+ console.log(chalk_1.default.white(` Network: ${chalk_1.default.cyan(options.url)}`));
161
+ }
162
+ catch (error) {
163
+ deploySpinner.fail('Error al desplegar el smart contract');
164
+ console.error(chalk_1.default.red('\n❌ Error durante el despliegue'));
165
+ const errorOutput = error.stdout?.toString() || error.stderr?.toString() || error.message || String(error);
166
+ // Detectar error de verificación en cadena no soportada
167
+ if (errorOutput.includes('Chain') && errorOutput.includes('not found')) {
168
+ console.error(chalk_1.default.yellow('\n💡 Sugerencia: Parece que estás intentando verificar en una cadena personalizada.'));
169
+ console.error(chalk_1.default.yellow(' Intenta ejecutar sin el flag --verify:'));
170
+ console.error(chalk_1.default.cyan(` codecrypto deploy-sc ${scriptRelativePath} --url ${options.url}`));
171
+ }
172
+ else {
173
+ if (errorOutput) {
174
+ console.error(chalk_1.default.red(` ${errorOutput}`));
175
+ }
176
+ }
177
+ process.exit(1);
178
+ }
179
+ }
180
+ catch (error) {
181
+ console.error(chalk_1.default.red(`\n❌ Error: ${error.message}`));
182
+ process.exit(1);
183
+ }
184
+ });
185
+ //# sourceMappingURL=deploy-sc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy-sc.js","sourceRoot":"","sources":["../../src/commands/deploy-sc.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  const commander_1 = require("commander");
5
5
  const deploy_1 = require("./commands/deploy");
6
+ const deploy_sc_1 = require("./commands/deploy-sc");
6
7
  const user_1 = require("./commands/user");
7
8
  const config_1 = require("./commands/config");
8
9
  const database_1 = require("./commands/database");
@@ -13,6 +14,7 @@ program
13
14
  .version('1.0.0');
14
15
  // Registrar comandos
15
16
  program.addCommand(deploy_1.deployCommand);
17
+ program.addCommand(deploy_sc_1.deployScCommand);
16
18
  program.addCommand(user_1.userCommand);
17
19
  program.addCommand(config_1.configCommand);
18
20
  program.addCommand(database_1.dbCommand);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,8CAAkD;AAClD,0CAA8C;AAC9C,8CAAkD;AAClD,kDAAgD;AAEhD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,oCAAoC,CAAC;KACjD,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,qBAAqB;AACrB,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,kBAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,oBAAS,CAAC,CAAC;AAE9B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,8CAAkD;AAClD,oDAAuD;AACvD,0CAA8C;AAC9C,8CAAkD;AAClD,kDAAgD;AAEhD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,oCAAoC,CAAC;KACjD,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,qBAAqB;AACrB,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,2BAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,kBAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,oBAAS,CAAC,CAAC;AAE9B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codecrypto-cli",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "description": "CLI tool for CodeCrypto operations",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -0,0 +1,166 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import ora from 'ora';
4
+ import { execSync } from 'child_process';
5
+ import * as fs from 'fs';
6
+ import * as path from 'path';
7
+
8
+ export const deployScCommand = new Command('deploy-sc')
9
+ .description('Deploy smart contract using Foundry')
10
+ .argument('<script-path>', 'Path to the Foundry deployment script')
11
+ .option('-u, --url <rpc-url>', 'RPC URL of the blockchain', 'http://server.codecrypto.academy:8546')
12
+ .option('-k, --private-key <key>', 'Private key for deployment (or use PRIVATE_KEY env var)')
13
+ .option('--verify', 'Verify contract on block explorer', false)
14
+ .option('--broadcast', 'Broadcast the transaction', true)
15
+ .option('--slow', 'Use slow mode for deployment', false)
16
+ .action(async (scriptPath: string, options) => {
17
+ console.log(chalk.blue('\n🔷 CodeCrypto Smart Contract Deployment\n'));
18
+
19
+ try {
20
+ // Resolver ruta del script
21
+ const resolvedScriptPath = path.resolve(scriptPath);
22
+
23
+ // Verificar que el script existe
24
+ if (!fs.existsSync(resolvedScriptPath)) {
25
+ console.error(chalk.red(`❌ Error: El script no existe: ${resolvedScriptPath}`));
26
+ process.exit(1);
27
+ }
28
+
29
+ // Verificar que es un archivo .s.sol (Foundry script)
30
+ if (!resolvedScriptPath.endsWith('.s.sol')) {
31
+ console.warn(chalk.yellow(`⚠️ Advertencia: El archivo no tiene extensión .s.sol`));
32
+ }
33
+
34
+ // Obtener directorio del proyecto (asumimos que el script está en un proyecto Foundry)
35
+ const projectDir = path.dirname(resolvedScriptPath);
36
+
37
+ // Verificar que existe foundry.toml o que estamos en un proyecto Foundry
38
+ const foundryToml = path.join(projectDir, 'foundry.toml');
39
+ const foundryTomlParent = path.join(path.dirname(projectDir), 'foundry.toml');
40
+
41
+ let foundryProjectDir = projectDir;
42
+ if (fs.existsSync(foundryToml)) {
43
+ foundryProjectDir = projectDir;
44
+ } else if (fs.existsSync(foundryTomlParent)) {
45
+ foundryProjectDir = path.dirname(projectDir);
46
+ } else {
47
+ console.warn(chalk.yellow('⚠️ No se encontró foundry.toml, asumiendo que foundry está instalado globalmente'));
48
+ }
49
+
50
+ // Obtener nombre del script relativo al proyecto
51
+ const scriptRelativePath = path.relative(foundryProjectDir, resolvedScriptPath);
52
+
53
+ console.log(chalk.gray('Deployment Configuration:'));
54
+ console.log(chalk.white(` Script: ${chalk.green(scriptRelativePath)}`));
55
+ console.log(chalk.white(` RPC URL: ${chalk.green(options.url)}`));
56
+ console.log(chalk.white(` Broadcast: ${chalk.green(options.broadcast ? 'Yes' : 'No')}`));
57
+ console.log(chalk.white(` Verify: ${options.verify ? chalk.green('Yes') : chalk.yellow('No')}\n`));
58
+
59
+ // Verificar que forge está instalado
60
+ const forgeSpinner = ora('Verificando Foundry...').start();
61
+ try {
62
+ execSync('forge --version', { stdio: 'pipe' });
63
+ forgeSpinner.succeed('Foundry está instalado');
64
+ } catch (error) {
65
+ forgeSpinner.fail('Foundry no está instalado');
66
+ console.error(chalk.red('Por favor instala Foundry: https://book.getfoundry.sh/getting-started/installation'));
67
+ process.exit(1);
68
+ }
69
+
70
+ // Preparar variables de entorno
71
+ const env: Record<string, string> = {
72
+ ...process.env,
73
+ RPC_URL: options.url,
74
+ };
75
+
76
+ // Agregar private key si se proporciona
77
+ if (options.privateKey) {
78
+ env.PRIVATE_KEY = options.privateKey;
79
+ } else if (!process.env.PRIVATE_KEY) {
80
+ console.warn(chalk.yellow('⚠️ No se proporcionó PRIVATE_KEY. Asegúrate de tenerla configurada en el entorno.'));
81
+ }
82
+
83
+ // Construir comando forge script
84
+ const forgeArgs: string[] = [
85
+ 'script',
86
+ scriptRelativePath,
87
+ '--rpc-url',
88
+ options.url,
89
+ ];
90
+
91
+ // Agregar private key si está disponible
92
+ const privateKey = options.privateKey || process.env.PRIVATE_KEY;
93
+ if (privateKey) {
94
+ forgeArgs.push('--private-key', privateKey);
95
+ }
96
+
97
+ if (options.broadcast) {
98
+ forgeArgs.push('--broadcast');
99
+ }
100
+
101
+ // Solo agregar --verify si se especifica explícitamente
102
+ // Advertir si se intenta verificar en una cadena personalizada
103
+ if (options.verify) {
104
+ // Detectar si es una cadena personalizada (no es mainnet, sepolia, etc.)
105
+ const isCustomChain = options.url.includes('codecrypto.academy') ||
106
+ options.url.includes('localhost') ||
107
+ options.url.includes('127.0.0.1') ||
108
+ options.url.includes('8546') ||
109
+ options.url.includes('8545');
110
+
111
+ if (isCustomChain) {
112
+ console.warn(chalk.yellow('⚠️ Advertencia: La verificación en block explorer puede no funcionar para cadenas personalizadas'));
113
+ console.warn(chalk.yellow(' Si obtienes un error "Chain not found", omite el flag --verify'));
114
+ }
115
+ forgeArgs.push('--verify');
116
+ }
117
+
118
+ if (options.slow) {
119
+ forgeArgs.push('--slow');
120
+ }
121
+
122
+ // Ejecutar el script
123
+ const deploySpinner = ora('Desplegando smart contract...').start();
124
+
125
+ try {
126
+ const command = `forge ${forgeArgs.join(' ')}`;
127
+ console.log(chalk.gray(`\nEjecutando: ${command}\n`));
128
+
129
+ execSync(command, {
130
+ cwd: foundryProjectDir,
131
+ stdio: 'inherit',
132
+ env,
133
+ });
134
+
135
+ deploySpinner.succeed('Smart contract desplegado exitosamente');
136
+
137
+ console.log(chalk.green('\n✅ Deployment completed successfully!'));
138
+ console.log(chalk.gray('Contract details:'));
139
+ console.log(chalk.white(` Script: ${chalk.cyan(scriptRelativePath)}`));
140
+ console.log(chalk.white(` Network: ${chalk.cyan(options.url)}`));
141
+
142
+ } catch (error: any) {
143
+ deploySpinner.fail('Error al desplegar el smart contract');
144
+ console.error(chalk.red('\n❌ Error durante el despliegue'));
145
+
146
+ const errorOutput = error.stdout?.toString() || error.stderr?.toString() || error.message || String(error);
147
+
148
+ // Detectar error de verificación en cadena no soportada
149
+ if (errorOutput.includes('Chain') && errorOutput.includes('not found')) {
150
+ console.error(chalk.yellow('\n💡 Sugerencia: Parece que estás intentando verificar en una cadena personalizada.'));
151
+ console.error(chalk.yellow(' Intenta ejecutar sin el flag --verify:'));
152
+ console.error(chalk.cyan(` codecrypto deploy-sc ${scriptRelativePath} --url ${options.url}`));
153
+ } else {
154
+ if (errorOutput) {
155
+ console.error(chalk.red(` ${errorOutput}`));
156
+ }
157
+ }
158
+ process.exit(1);
159
+ }
160
+
161
+ } catch (error: any) {
162
+ console.error(chalk.red(`\n❌ Error: ${error.message}`));
163
+ process.exit(1);
164
+ }
165
+ });
166
+
@@ -37,7 +37,7 @@ export const deployCommand = new Command('deploy')
37
37
  const imageName = `${imageBase}:${version}`;
38
38
  const imageLatest = `${imageBase}:latest`;
39
39
 
40
- console.log(chalk.gray('Deployment Configuration:'));
40
+ console.log(chalk.gray('Deployment Configuration:'));
41
41
  console.log(chalk.white(` Project: ${chalk.green(projectName)}`));
42
42
  console.log(chalk.white(` Version: ${chalk.green(version)}`));
43
43
  console.log(chalk.white(` Image: ${chalk.green(imageName)}`));
@@ -140,7 +140,7 @@ CMD ["node", "server.js"]
140
140
  execSync(`docker buildx create --name ${builderName} --use --bootstrap`, { stdio: 'pipe' });
141
141
  } else {
142
142
  execSync(`docker buildx use ${builderName}`, { stdio: 'pipe' });
143
- }
143
+ }
144
144
  builderSpinner.succeed('Builder ready');
145
145
  } catch (error) {
146
146
  builderSpinner.fail('Failed to setup builder');
package/src/index.ts CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  import { Command } from 'commander';
4
4
  import { deployCommand } from './commands/deploy';
5
+ import { deployScCommand } from './commands/deploy-sc';
5
6
  import { userCommand } from './commands/user';
6
7
  import { configCommand } from './commands/config';
7
8
  import { dbCommand } from './commands/database';
@@ -15,6 +16,7 @@ program
15
16
 
16
17
  // Registrar comandos
17
18
  program.addCommand(deployCommand);
19
+ program.addCommand(deployScCommand);
18
20
  program.addCommand(userCommand);
19
21
  program.addCommand(configCommand);
20
22
  program.addCommand(dbCommand);