@darkstar-cli/cli 0.0.8 → 0.0.9
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/dist/commands/forge/db-create.d.ts +2 -0
- package/dist/commands/forge/db-create.d.ts.map +1 -0
- package/dist/commands/forge/db-create.js +86 -0
- package/dist/commands/forge/db-create.js.map +1 -0
- package/dist/commands/forge/db-migrate.d.ts +2 -0
- package/dist/commands/forge/db-migrate.d.ts.map +1 -0
- package/dist/commands/forge/db-migrate.js +168 -0
- package/dist/commands/forge/db-migrate.js.map +1 -0
- package/dist/commands/forge/db-rollback.d.ts +2 -0
- package/dist/commands/forge/db-rollback.d.ts.map +1 -0
- package/dist/commands/forge/db-rollback.js +86 -0
- package/dist/commands/forge/db-rollback.js.map +1 -0
- package/dist/commands/forge/db-seed.d.ts +2 -0
- package/dist/commands/forge/db-seed.d.ts.map +1 -0
- package/dist/commands/forge/db-seed.js +25 -0
- package/dist/commands/forge/db-seed.js.map +1 -0
- package/dist/commands/forge/make-api.d.ts +5 -0
- package/dist/commands/forge/make-controller.d.ts +2 -0
- package/dist/commands/forge/make-deps.d.ts +2 -0
- package/dist/commands/forge/make-deps.d.ts.map +1 -0
- package/dist/commands/forge/make-deps.js +200 -0
- package/dist/commands/forge/make-deps.js.map +1 -0
- package/dist/commands/forge/make-middleware.d.ts +2 -0
- package/dist/commands/forge/make-migration.d.ts +2 -0
- package/dist/commands/forge/make-model.d.ts +2 -0
- package/dist/commands/forge/make-repository.d.ts +2 -0
- package/dist/commands/forge/make-repository.d.ts.map +1 -0
- package/dist/commands/forge/make-repository.js +74 -0
- package/dist/commands/forge/make-repository.js.map +1 -0
- package/dist/commands/forge/make-schema.d.ts +2 -0
- package/dist/commands/forge/make-schema.d.ts.map +1 -0
- package/dist/commands/forge/make-schema.js +66 -0
- package/dist/commands/forge/make-schema.js.map +1 -0
- package/dist/commands/forge/make-security.d.ts +2 -0
- package/dist/commands/forge/make-security.d.ts.map +1 -0
- package/dist/commands/forge/make-security.js +316 -0
- package/dist/commands/forge/make-security.js.map +1 -0
- package/dist/commands/forge/make-seeder.d.ts +2 -0
- package/dist/commands/forge/make-seeder.d.ts.map +1 -0
- package/dist/commands/forge/make-seeder.js +176 -0
- package/dist/commands/forge/make-seeder.js.map +1 -0
- package/dist/commands/forge/make-service.d.ts +2 -0
- package/dist/commands/forge/make-service.d.ts.map +1 -0
- package/dist/commands/forge/make-service.js +76 -0
- package/dist/commands/forge/make-service.js.map +1 -0
- package/dist/commands/forge/make-util.d.ts +2 -0
- package/dist/commands/forge/make-util.d.ts.map +1 -0
- package/dist/commands/forge/make-util.js +83 -0
- package/dist/commands/forge/make-util.js.map +1 -0
- package/dist/commands/new.d.ts +2 -0
- package/dist/commands/serve.d.ts +2 -0
- package/dist/commands/serve.d.ts.map +1 -0
- package/dist/commands/serve.js +20 -0
- package/dist/commands/serve.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +115 -0
- package/dist/index.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db-create.d.ts","sourceRoot":"","sources":["../../../src/commands/forge/db-create.ts"],"names":[],"mappings":"AAMA,wBAAsB,QAAQ,kBAkD7B"}
|
|
@@ -0,0 +1,86 @@
|
|
|
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.dbCreate = dbCreate;
|
|
40
|
+
const kleur_1 = __importDefault(require("kleur"));
|
|
41
|
+
function success(msg) { console.log(kleur_1.default.green(' ✔ ') + msg); }
|
|
42
|
+
function info(msg) { console.log(kleur_1.default.cyan(' → ') + msg); }
|
|
43
|
+
function error(msg) { console.log(kleur_1.default.red(' ✘ ') + msg); }
|
|
44
|
+
async function dbCreate() {
|
|
45
|
+
const db = process.env.DB_CONNECTION ?? 'mysql';
|
|
46
|
+
const database = process.env.DB_DATABASE ?? 'darkstar';
|
|
47
|
+
info(`Criando banco: ${database}...`);
|
|
48
|
+
try {
|
|
49
|
+
if (db === 'mysql' || db === 'mariadb') {
|
|
50
|
+
const mysql = await Promise.resolve().then(() => __importStar(require('mysql2/promise')));
|
|
51
|
+
const conn = await mysql.createConnection({
|
|
52
|
+
host: process.env.DB_HOST ?? '127.0.0.1',
|
|
53
|
+
port: Number(process.env.DB_PORT ?? 3306),
|
|
54
|
+
user: process.env.DB_USERNAME ?? 'root',
|
|
55
|
+
password: process.env.DB_PASSWORD ?? '',
|
|
56
|
+
});
|
|
57
|
+
await conn.query(`CREATE DATABASE IF NOT EXISTS \`${database}\``);
|
|
58
|
+
await conn.end();
|
|
59
|
+
}
|
|
60
|
+
if (db === 'postgres') {
|
|
61
|
+
const { Client } = await Promise.resolve().then(() => __importStar(require('pg')));
|
|
62
|
+
const client = new Client({
|
|
63
|
+
host: process.env.DB_HOST ?? '127.0.0.1',
|
|
64
|
+
port: Number(process.env.DB_PORT ?? 5432),
|
|
65
|
+
user: process.env.DB_USERNAME ?? 'postgres',
|
|
66
|
+
password: process.env.DB_PASSWORD ?? '',
|
|
67
|
+
database: 'postgres',
|
|
68
|
+
});
|
|
69
|
+
await client.connect();
|
|
70
|
+
const res = await client.query(`SELECT 1 FROM pg_database WHERE datname = $1`, [database]);
|
|
71
|
+
if (res.rowCount === 0) {
|
|
72
|
+
await client.query(`CREATE DATABASE "${database}"`);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
info(`Banco "${database}" já existe, pulando...`);
|
|
76
|
+
}
|
|
77
|
+
await client.end();
|
|
78
|
+
}
|
|
79
|
+
success(`Banco "${database}" criado com sucesso!`);
|
|
80
|
+
}
|
|
81
|
+
catch (err) {
|
|
82
|
+
error(`Falha: ${err.message}`);
|
|
83
|
+
process.exit(1);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=db-create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db-create.js","sourceRoot":"","sources":["../../../src/commands/forge/db-create.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAyB;AAEzB,SAAS,OAAO,CAAC,GAAW,IAAI,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAA,CAAC,CAAC;AACxE,SAAS,IAAI,CAAC,GAAW,IAAO,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAA,CAAC,CAAC;AACvE,SAAS,KAAK,CAAC,GAAW,IAAM,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAA,CAAC,CAAC;AAE/D,KAAK;IACV,MAAM,EAAE,GAAS,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,CAAA;IACrD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAM,UAAU,CAAA;IAExD,IAAI,CAAC,kBAAkB,QAAQ,KAAK,CAAC,CAAA;IAErC,IAAI,CAAC;QACH,IAAI,EAAE,KAAK,OAAO,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,wDAAa,gBAAgB,GAAC,CAAA;YAC5C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,gBAAgB,CAAC;gBACxC,IAAI,EAAM,OAAO,CAAC,GAAG,CAAC,OAAO,IAAQ,WAAW;gBAChD,IAAI,EAAM,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC;gBAC7C,IAAI,EAAM,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,MAAM;gBAC3C,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE;aACxC,CAAC,CAAA;YACF,MAAM,IAAI,CAAC,KAAK,CAAC,mCAAmC,QAAQ,IAAI,CAAC,CAAA;YACjE,MAAM,IAAI,CAAC,GAAG,EAAE,CAAA;QAClB,CAAC;QAED,IAAI,EAAE,KAAK,UAAU,EAAE,CAAC;YACtB,MAAM,EAAE,MAAM,EAAE,GAAG,wDAAa,IAAI,GAAC,CAAA;YACrC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;gBACxB,IAAI,EAAM,OAAO,CAAC,GAAG,CAAC,OAAO,IAAQ,WAAW;gBAChD,IAAI,EAAM,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC;gBAC7C,IAAI,EAAM,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,UAAU;gBAC/C,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE;gBACvC,QAAQ,EAAE,UAAU;aACrB,CAAC,CAAA;YACF,MAAM,MAAM,CAAC,OAAO,EAAE,CAAA;YAEtB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAC5B,8CAA8C,EAC9C,CAAC,QAAQ,CAAC,CACX,CAAA;YAED,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM,MAAM,CAAC,KAAK,CAAC,oBAAoB,QAAQ,GAAG,CAAC,CAAA;YACrD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,UAAU,QAAQ,yBAAyB,CAAC,CAAA;YACnD,CAAC;YAED,MAAM,MAAM,CAAC,GAAG,EAAE,CAAA;QACpB,CAAC;QAED,OAAO,CAAC,UAAU,QAAQ,uBAAuB,CAAC,CAAA;IAEpD,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,KAAK,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;QAC9B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db-migrate.d.ts","sourceRoot":"","sources":["../../../src/commands/forge/db-migrate.ts"],"names":[],"mappings":"AAoCA,wBAAsB,SAAS,kBA6G9B"}
|
|
@@ -0,0 +1,168 @@
|
|
|
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.dbMigrate = dbMigrate;
|
|
40
|
+
const kleur_1 = __importDefault(require("kleur"));
|
|
41
|
+
const fs = __importStar(require("fs"));
|
|
42
|
+
const path = __importStar(require("path"));
|
|
43
|
+
const orm_1 = require("@darkstar-cli/orm");
|
|
44
|
+
function success(msg) { console.log(kleur_1.default.green(' ✔ ') + msg); }
|
|
45
|
+
function info(msg) { console.log(kleur_1.default.cyan(' → ') + msg); }
|
|
46
|
+
function error(msg) { console.log(kleur_1.default.red(' ✘ ') + msg); }
|
|
47
|
+
function warn(msg) { console.log(kleur_1.default.yellow(' ⚠ ') + msg); }
|
|
48
|
+
async function acquireLock(driver, db) {
|
|
49
|
+
try {
|
|
50
|
+
if (db === 'postgres') {
|
|
51
|
+
await driver.query(`SELECT pg_advisory_lock(123456789)`);
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
const { rows } = await driver.query(`SELECT GET_LOCK('darkstar_migrate', 0) as result`);
|
|
55
|
+
if (rows[0]?.result !== 1)
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
async function releaseLock(driver, db) {
|
|
65
|
+
try {
|
|
66
|
+
if (db === 'postgres') {
|
|
67
|
+
await driver.query(`SELECT pg_advisory_unlock(123456789)`);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
await driver.query(`SELECT RELEASE_LOCK('darkstar_migrate')`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
catch { }
|
|
74
|
+
}
|
|
75
|
+
async function dbMigrate() {
|
|
76
|
+
info('Rodando migrations...');
|
|
77
|
+
try {
|
|
78
|
+
await orm_1.Connection.connect();
|
|
79
|
+
}
|
|
80
|
+
catch (err) {
|
|
81
|
+
error(`Não foi possível conectar ao banco: ${err.message}`);
|
|
82
|
+
process.exit(1);
|
|
83
|
+
}
|
|
84
|
+
const driver = orm_1.Connection.get();
|
|
85
|
+
const db = driver.type();
|
|
86
|
+
const locked = await acquireLock(driver, db);
|
|
87
|
+
if (!locked) {
|
|
88
|
+
error('Outra instância já está rodando migrations. Tente novamente.');
|
|
89
|
+
await orm_1.Connection.disconnect();
|
|
90
|
+
process.exit(1);
|
|
91
|
+
}
|
|
92
|
+
try {
|
|
93
|
+
const createTableSQL = db === 'postgres'
|
|
94
|
+
? `CREATE TABLE IF NOT EXISTS darkstar_migrations (
|
|
95
|
+
id SERIAL PRIMARY KEY,
|
|
96
|
+
name VARCHAR(255) NOT NULL UNIQUE,
|
|
97
|
+
ran_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
98
|
+
)`
|
|
99
|
+
: `CREATE TABLE IF NOT EXISTS darkstar_migrations (
|
|
100
|
+
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
101
|
+
name VARCHAR(255) NOT NULL UNIQUE,
|
|
102
|
+
ran_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
103
|
+
)`;
|
|
104
|
+
await driver.query(createTableSQL);
|
|
105
|
+
const { rows } = await driver.query(`SELECT name FROM darkstar_migrations`);
|
|
106
|
+
const ran = new Set(rows.map(r => r.name));
|
|
107
|
+
const migrationsDir = path.resolve(process.cwd(), 'database/migrations');
|
|
108
|
+
if (!fs.existsSync(migrationsDir)) {
|
|
109
|
+
warn('Pasta database/migrations não encontrada.');
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
const files = fs.readdirSync(migrationsDir)
|
|
113
|
+
.filter(f => f.endsWith('.ts') || f.endsWith('.js'))
|
|
114
|
+
.sort();
|
|
115
|
+
const pending = files.filter(f => !ran.has(f));
|
|
116
|
+
if (pending.length === 0) {
|
|
117
|
+
info('Nenhuma migration pendente.');
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
for (const file of pending) {
|
|
121
|
+
const filePath = path.join(migrationsDir, file);
|
|
122
|
+
if (!fs.existsSync(filePath)) {
|
|
123
|
+
warn(`${file} não encontrado no disco — pulando.`);
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
let migration;
|
|
127
|
+
try {
|
|
128
|
+
migration = await Promise.resolve(`${filePath}`).then(s => __importStar(require(s)));
|
|
129
|
+
}
|
|
130
|
+
catch (err) {
|
|
131
|
+
error(`Falha ao carregar ${file}: ${err.message}`);
|
|
132
|
+
process.exit(1);
|
|
133
|
+
}
|
|
134
|
+
if (typeof migration.up !== 'function') {
|
|
135
|
+
warn(`${file} não exporta uma função up() — pulando.`);
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
info(`Rodando: ${file}`);
|
|
139
|
+
try {
|
|
140
|
+
const begin = db === 'postgres' ? 'BEGIN' : 'START TRANSACTION';
|
|
141
|
+
await driver.query(begin);
|
|
142
|
+
await migration.up(driver);
|
|
143
|
+
const sql = db === 'postgres'
|
|
144
|
+
? `INSERT INTO darkstar_migrations (name) VALUES ($1)`
|
|
145
|
+
: `INSERT INTO darkstar_migrations (name) VALUES (?)`;
|
|
146
|
+
await driver.query(sql, [file]);
|
|
147
|
+
await driver.query('COMMIT');
|
|
148
|
+
success(file);
|
|
149
|
+
}
|
|
150
|
+
catch (err) {
|
|
151
|
+
try {
|
|
152
|
+
await driver.query('ROLLBACK');
|
|
153
|
+
}
|
|
154
|
+
catch { }
|
|
155
|
+
error(`Falha em ${file}: ${err.message}`);
|
|
156
|
+
warn('Migration interrompida. Corrija o erro e rode db:migrate novamente.');
|
|
157
|
+
process.exit(1);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
console.log('');
|
|
161
|
+
success(`${pending.length} migration(s) executada(s).`);
|
|
162
|
+
}
|
|
163
|
+
finally {
|
|
164
|
+
await releaseLock(driver, db);
|
|
165
|
+
await orm_1.Connection.disconnect();
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=db-migrate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db-migrate.js","sourceRoot":"","sources":["../../../src/commands/forge/db-migrate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db-rollback.d.ts","sourceRoot":"","sources":["../../../src/commands/forge/db-rollback.ts"],"names":[],"mappings":"AASA,wBAAsB,UAAU,kBAkD/B"}
|
|
@@ -0,0 +1,86 @@
|
|
|
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.dbRollback = dbRollback;
|
|
40
|
+
const kleur_1 = __importDefault(require("kleur"));
|
|
41
|
+
const path = __importStar(require("path"));
|
|
42
|
+
const orm_1 = require("@darkstar-cli/orm");
|
|
43
|
+
function success(msg) { console.log(kleur_1.default.green(' ✔ ') + msg); }
|
|
44
|
+
function info(msg) { console.log(kleur_1.default.cyan(' → ') + msg); }
|
|
45
|
+
function error(msg) { console.log(kleur_1.default.red(' ✘ ') + msg); }
|
|
46
|
+
function warn(msg) { console.log(kleur_1.default.yellow(' ⚠ ') + msg); }
|
|
47
|
+
async function dbRollback() {
|
|
48
|
+
info('Desfazendo última migration...');
|
|
49
|
+
try {
|
|
50
|
+
await orm_1.Connection.connect();
|
|
51
|
+
const driver = orm_1.Connection.get();
|
|
52
|
+
const db = driver.type();
|
|
53
|
+
// 1. Pega a última migration executada
|
|
54
|
+
const { rows } = await driver.query(`SELECT name FROM darkstar_migrations ORDER BY id DESC LIMIT 1`);
|
|
55
|
+
if (rows.length === 0) {
|
|
56
|
+
warn('Nenhuma migration para desfazer.');
|
|
57
|
+
await orm_1.Connection.disconnect();
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
const last = rows[0].name;
|
|
61
|
+
// 2. Carrega o arquivo e chama down()
|
|
62
|
+
const migrationsDir = path.resolve(process.cwd(), 'database/migrations');
|
|
63
|
+
const filePath = path.join(migrationsDir, last);
|
|
64
|
+
const migration = await Promise.resolve(`${filePath}`).then(s => __importStar(require(s)));
|
|
65
|
+
if (typeof migration.down !== 'function') {
|
|
66
|
+
warn(`${last} não exporta uma função down() — pulando.`);
|
|
67
|
+
await orm_1.Connection.disconnect();
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
info(`Desfazendo: ${last}`);
|
|
71
|
+
await migration.down(driver);
|
|
72
|
+
// 3. Remove o registro da tabela de controle
|
|
73
|
+
const sql = db === 'postgres'
|
|
74
|
+
? `DELETE FROM darkstar_migrations WHERE name = $1`
|
|
75
|
+
: `DELETE FROM darkstar_migrations WHERE name = ?`;
|
|
76
|
+
await driver.query(sql, [last]);
|
|
77
|
+
await orm_1.Connection.disconnect();
|
|
78
|
+
console.log('');
|
|
79
|
+
success(`${last} desfeita com sucesso.`);
|
|
80
|
+
}
|
|
81
|
+
catch (err) {
|
|
82
|
+
error(`Falha: ${err.message}`);
|
|
83
|
+
process.exit(1);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=db-rollback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db-rollback.js","sourceRoot":"","sources":["../../../src/commands/forge/db-rollback.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAyB;AACzB,MAAY,IAAI,iCAAY;AAC5B,2CAA8C;AAE9C,SAAS,OAAO,CAAC,GAAW,IAAI,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAA,CAAC,CAAC;AACxE,SAAS,IAAI,CAAC,GAAW,IAAO,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAA,CAAC,CAAC;AACvE,SAAS,KAAK,CAAC,GAAW,IAAM,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAA,CAAC,CAAC;AACtE,SAAS,IAAI,CAAC,GAAW,IAAO,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAA,CAAC,CAAC;AAElE,KAAK;IACV,IAAI,CAAC,gCAAgC,CAAC,CAAA;IAEtC,IAAI,CAAC;QACH,MAAM,gBAAU,CAAC,OAAO,EAAE,CAAA;QAC1B,MAAM,MAAM,GAAG,gBAAU,CAAC,GAAG,EAAE,CAAA;QAC/B,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA;QAExB,uCAAuC;QACvC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CACjC,+DAA+D,CAChE,CAAA;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,kCAAkC,CAAC,CAAA;YACxC,MAAM,gBAAU,CAAC,UAAU,EAAE,CAAA;YAC7B,OAAM;QACR,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAEzB,sCAAsC;QACtC,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,qBAAqB,CAAC,CAAA;QACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAA;QAC/C,MAAM,SAAS,GAAG,yBAAa,QAAQ,uCAAC,CAAA;QAExC,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACzC,IAAI,CAAC,GAAG,IAAI,2CAA2C,CAAC,CAAA;YACxD,MAAM,gBAAU,CAAC,UAAU,EAAE,CAAA;YAC7B,OAAM;QACR,CAAC;QAED,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC,CAAA;QAC3B,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAE5B,6CAA6C;QAC7C,MAAM,GAAG,GAAG,EAAE,KAAK,UAAU;YAC3B,CAAC,CAAC,iDAAiD;YACnD,CAAC,CAAC,gDAAgD,CAAA;QAEpD,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;QAE/B,MAAM,gBAAU,CAAC,UAAU,EAAE,CAAA;QAC7B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACf,OAAO,CAAC,GAAG,IAAI,wBAAwB,CAAC,CAAA;IAE1C,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,KAAK,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;QAC9B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db-seed.d.ts","sourceRoot":"","sources":["../../../src/commands/forge/db-seed.ts"],"names":[],"mappings":"AAQA,wBAAsB,MAAM,kBAU3B"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.dbSeed = dbSeed;
|
|
7
|
+
const kleur_1 = __importDefault(require("kleur"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const child_process_1 = require("child_process");
|
|
10
|
+
function success(msg) { console.log(kleur_1.default.green(' ✔ ') + msg); }
|
|
11
|
+
function info(msg) { console.log(kleur_1.default.cyan(' → ') + msg); }
|
|
12
|
+
function error(msg) { console.log(kleur_1.default.red(' ✘ ') + msg); }
|
|
13
|
+
async function dbSeed() {
|
|
14
|
+
info('Rodando seeders...');
|
|
15
|
+
try {
|
|
16
|
+
const seederPath = path_1.default.resolve(process.cwd(), 'database/seeders/DatabaseSeeder.ts');
|
|
17
|
+
(0, child_process_1.execSync)(`npx tsx ${seederPath}`, { stdio: 'inherit' });
|
|
18
|
+
success('Seeders executados com sucesso!');
|
|
19
|
+
}
|
|
20
|
+
catch (err) {
|
|
21
|
+
error(`Falha: ${err.message}`);
|
|
22
|
+
process.exit(1);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=db-seed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db-seed.js","sourceRoot":"","sources":["../../../src/commands/forge/db-seed.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAyB;AACzB,gDAAuB;AACvB,iDAAwC;AAExC,SAAS,OAAO,CAAC,GAAW,IAAI,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAA,CAAC,CAAC;AACxE,SAAS,IAAI,CAAC,GAAW,IAAO,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAA,CAAC,CAAC;AACvE,SAAS,KAAK,CAAC,GAAW,IAAM,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAA,CAAC,CAAC;AAE/D,KAAK;IACV,IAAI,CAAC,oBAAoB,CAAC,CAAA;IAC1B,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,oCAAoC,CAAC,CAAA;QACpF,IAAA,wBAAQ,EAAC,WAAW,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;QACvD,OAAO,CAAC,iCAAiC,CAAC,CAAA;IAC5C,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,KAAK,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;QAC9B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"make-deps.d.ts","sourceRoot":"","sources":["../../../src/commands/forge/make-deps.ts"],"names":[],"mappings":"AA4LA,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAgCvC"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.makeDeps = makeDeps;
|
|
7
|
+
const kleur_1 = __importDefault(require("kleur"));
|
|
8
|
+
const child_process_1 = require("child_process");
|
|
9
|
+
function success(msg) { console.log(kleur_1.default.green(' ✔ ') + msg); }
|
|
10
|
+
function info(msg) { console.log(kleur_1.default.cyan(' → ') + msg); }
|
|
11
|
+
function error(msg) { console.log(kleur_1.default.red(' ✘ ') + msg); }
|
|
12
|
+
const DEPS = {
|
|
13
|
+
'Autenticação': {
|
|
14
|
+
jwt: {
|
|
15
|
+
packages: ['jsonwebtoken'],
|
|
16
|
+
dev: ['@types/jsonwebtoken'],
|
|
17
|
+
desc: 'Geração e verificação de tokens JWT',
|
|
18
|
+
},
|
|
19
|
+
bcrypt: {
|
|
20
|
+
packages: ['bcrypt'],
|
|
21
|
+
dev: ['@types/bcrypt'],
|
|
22
|
+
desc: 'Hash de senhas',
|
|
23
|
+
},
|
|
24
|
+
otplib: {
|
|
25
|
+
packages: ['otplib'],
|
|
26
|
+
desc: '2FA compatível com Google Authenticator',
|
|
27
|
+
},
|
|
28
|
+
passport: {
|
|
29
|
+
packages: ['passport', 'passport-local', 'passport-jwt'],
|
|
30
|
+
dev: ['@types/passport', '@types/passport-local', '@types/passport-jwt'],
|
|
31
|
+
desc: 'Autenticação por estratégias (local, JWT, OAuth...)',
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
'Validação': {
|
|
35
|
+
zod: {
|
|
36
|
+
packages: ['zod'],
|
|
37
|
+
desc: 'Validação e parsing de schemas com TypeScript-first',
|
|
38
|
+
},
|
|
39
|
+
yup: {
|
|
40
|
+
packages: ['yup'],
|
|
41
|
+
desc: 'Validação de schemas estilo fluent',
|
|
42
|
+
},
|
|
43
|
+
joi: {
|
|
44
|
+
packages: ['joi'],
|
|
45
|
+
desc: 'Validação de objetos poderosa e flexível',
|
|
46
|
+
},
|
|
47
|
+
'class-validator': {
|
|
48
|
+
packages: ['class-validator', 'class-transformer'],
|
|
49
|
+
desc: 'Validação via decoradores em classes TypeScript',
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
'Upload & Arquivos': {
|
|
53
|
+
multer: {
|
|
54
|
+
packages: ['multer'],
|
|
55
|
+
dev: ['@types/multer'],
|
|
56
|
+
desc: 'Upload de arquivos multipart/form-data',
|
|
57
|
+
},
|
|
58
|
+
sharp: {
|
|
59
|
+
packages: ['sharp'],
|
|
60
|
+
desc: 'Processamento e redimensionamento de imagens',
|
|
61
|
+
},
|
|
62
|
+
'pdf-lib': {
|
|
63
|
+
packages: ['pdf-lib'],
|
|
64
|
+
desc: 'Criação e edição de PDFs',
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
'Email': {
|
|
68
|
+
nodemailer: {
|
|
69
|
+
packages: ['nodemailer'],
|
|
70
|
+
dev: ['@types/nodemailer'],
|
|
71
|
+
desc: 'Envio de e-mails via SMTP',
|
|
72
|
+
},
|
|
73
|
+
resend: {
|
|
74
|
+
packages: ['resend'],
|
|
75
|
+
desc: 'Envio de e-mails via API Resend',
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
'HTTP & Rede': {
|
|
79
|
+
cors: {
|
|
80
|
+
packages: ['cors'],
|
|
81
|
+
dev: ['@types/cors'],
|
|
82
|
+
desc: 'Habilita CORS nas rotas',
|
|
83
|
+
},
|
|
84
|
+
axios: {
|
|
85
|
+
packages: ['axios'],
|
|
86
|
+
desc: 'Cliente HTTP para consumir APIs externas',
|
|
87
|
+
},
|
|
88
|
+
helmet: {
|
|
89
|
+
packages: ['helmet'],
|
|
90
|
+
desc: 'Headers de segurança HTTP',
|
|
91
|
+
},
|
|
92
|
+
'rate-limiter': {
|
|
93
|
+
packages: ['express-rate-limit'],
|
|
94
|
+
desc: 'Rate limiting por IP',
|
|
95
|
+
},
|
|
96
|
+
},
|
|
97
|
+
'Logs': {
|
|
98
|
+
winston: {
|
|
99
|
+
packages: ['winston'],
|
|
100
|
+
desc: 'Logger estruturado com níveis e transports',
|
|
101
|
+
},
|
|
102
|
+
pino: {
|
|
103
|
+
packages: ['pino', 'pino-pretty'],
|
|
104
|
+
desc: 'Logger de alta performance com output JSON',
|
|
105
|
+
},
|
|
106
|
+
morgan: {
|
|
107
|
+
packages: ['morgan'],
|
|
108
|
+
dev: ['@types/morgan'],
|
|
109
|
+
desc: 'Logger de requisições HTTP',
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
'Banco de Dados': {
|
|
113
|
+
redis: {
|
|
114
|
+
packages: ['ioredis'],
|
|
115
|
+
dev: ['@types/ioredis'],
|
|
116
|
+
desc: 'Cliente Redis para cache e filas',
|
|
117
|
+
},
|
|
118
|
+
mongoose: {
|
|
119
|
+
packages: ['mongoose'],
|
|
120
|
+
desc: 'ODM para MongoDB',
|
|
121
|
+
},
|
|
122
|
+
prisma: {
|
|
123
|
+
packages: ['prisma', '@prisma/client'],
|
|
124
|
+
desc: 'ORM moderno com migrations e type safety',
|
|
125
|
+
},
|
|
126
|
+
},
|
|
127
|
+
'Utilitários': {
|
|
128
|
+
uuid: {
|
|
129
|
+
packages: ['uuid'],
|
|
130
|
+
dev: ['@types/uuid'],
|
|
131
|
+
desc: 'Geração de UUIDs',
|
|
132
|
+
},
|
|
133
|
+
dayjs: {
|
|
134
|
+
packages: ['dayjs'],
|
|
135
|
+
desc: 'Manipulação de datas leve e imutável',
|
|
136
|
+
},
|
|
137
|
+
lodash: {
|
|
138
|
+
packages: ['lodash'],
|
|
139
|
+
dev: ['@types/lodash'],
|
|
140
|
+
desc: 'Utilitários para arrays, objetos e strings',
|
|
141
|
+
},
|
|
142
|
+
dotenv: {
|
|
143
|
+
packages: ['dotenv'],
|
|
144
|
+
desc: 'Carrega variáveis de ambiente do .env',
|
|
145
|
+
},
|
|
146
|
+
},
|
|
147
|
+
};
|
|
148
|
+
// índice flat pra busca por nome
|
|
149
|
+
const FLAT = {};
|
|
150
|
+
for (const cat of Object.values(DEPS)) {
|
|
151
|
+
for (const [key, dep] of Object.entries(cat)) {
|
|
152
|
+
FLAT[key] = dep;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
function install(packages, dev = false) {
|
|
156
|
+
const flag = dev ? '--save-dev' : '--save';
|
|
157
|
+
const list = packages.map(p => `${p}@latest`).join(' ');
|
|
158
|
+
(0, child_process_1.execSync)(`npm install ${flag} ${list}`, { stdio: 'inherit' });
|
|
159
|
+
}
|
|
160
|
+
function listAll() {
|
|
161
|
+
for (const [category, deps] of Object.entries(DEPS)) {
|
|
162
|
+
console.log(kleur_1.default.magenta(`\n ${category}`));
|
|
163
|
+
for (const [key, dep] of Object.entries(deps)) {
|
|
164
|
+
console.log(kleur_1.default.cyan(` ${key.padEnd(18)}`), kleur_1.default.gray(dep.desc));
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
console.log('');
|
|
168
|
+
console.log(kleur_1.default.gray(' Uso: darkstar forge make:deps bcrypt winston zod'));
|
|
169
|
+
console.log('');
|
|
170
|
+
}
|
|
171
|
+
function makeDeps(names) {
|
|
172
|
+
console.log('');
|
|
173
|
+
console.log(kleur_1.default.magenta(' DarkStar — Instalador de dependências'));
|
|
174
|
+
console.log('');
|
|
175
|
+
if (names.length === 0) {
|
|
176
|
+
listAll();
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
for (const name of names) {
|
|
180
|
+
const dep = FLAT[name];
|
|
181
|
+
if (!dep) {
|
|
182
|
+
error(`Dependência desconhecida: "${name}" — rode sem argumentos pra ver a lista`);
|
|
183
|
+
continue;
|
|
184
|
+
}
|
|
185
|
+
info(`Instalando ${name}...`);
|
|
186
|
+
try {
|
|
187
|
+
install(dep.packages);
|
|
188
|
+
if (dep.dev?.length)
|
|
189
|
+
install(dep.dev, true);
|
|
190
|
+
success(`${name} instalado`);
|
|
191
|
+
}
|
|
192
|
+
catch {
|
|
193
|
+
error(`Falha ao instalar ${name}. Rode manualmente: npm install ${dep.packages.join(' ')}`);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
console.log('');
|
|
197
|
+
success('Pronto!');
|
|
198
|
+
console.log('');
|
|
199
|
+
}
|
|
200
|
+
//# sourceMappingURL=make-deps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"make-deps.js","sourceRoot":"","sources":["../../../src/commands/forge/make-deps.ts"],"names":[],"mappings":"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"}
|