@hed-hog/developer-mode 0.0.279 → 0.0.285
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/developermode.service.d.ts +9 -1
- package/dist/developermode.service.d.ts.map +1 -1
- package/dist/developermode.service.js +180 -67
- package/dist/developermode.service.js.map +1 -1
- package/hedhog/frontend/app/components/sections.tsx.ejs +2 -1
- package/hedhog/frontend/app/page.tsx.ejs +6 -7
- package/package.json +3 -3
- package/src/developermode.service.ts +224 -71
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { PrismaService } from '@hed-hog/api-prisma';
|
|
1
2
|
import { RunScriptDTO } from './dto/run-script.dto';
|
|
2
3
|
type FrameworkType = 'nestjs' | 'nextjs' | 'angular' | 'vue' | 'react-native' | 'expo';
|
|
3
4
|
interface LibraryScript {
|
|
@@ -75,11 +76,12 @@ interface DeveloperModeData {
|
|
|
75
76
|
stats: ProjectStats;
|
|
76
77
|
}
|
|
77
78
|
export declare class DeveloperModeService {
|
|
79
|
+
private readonly prisma;
|
|
78
80
|
private readonly logger;
|
|
79
81
|
private readonly repoRoot;
|
|
80
82
|
private readonly appScriptAllowList;
|
|
81
83
|
private readonly libraryScriptAllowList;
|
|
82
|
-
constructor();
|
|
84
|
+
constructor(prisma: PrismaService);
|
|
83
85
|
/**
|
|
84
86
|
* Obtém todos os dados do developer mode
|
|
85
87
|
*/
|
|
@@ -114,6 +116,12 @@ export declare class DeveloperModeService {
|
|
|
114
116
|
private checkHasTests;
|
|
115
117
|
private getAllFiles;
|
|
116
118
|
private parseDatabaseUrl;
|
|
119
|
+
private getDatabaseUrl;
|
|
120
|
+
private getDatabaseMetrics;
|
|
121
|
+
private getLastMigrationInfo;
|
|
122
|
+
private toNumber;
|
|
123
|
+
private formatRelativeTime;
|
|
124
|
+
private formatUptime;
|
|
117
125
|
private findFilesByPattern;
|
|
118
126
|
private getDirSize;
|
|
119
127
|
private formatBytes;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"developermode.service.d.ts","sourceRoot":"","sources":["../src/developermode.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"developermode.service.d.ts","sourceRoot":"","sources":["../src/developermode.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,6 +44,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
44
44
|
var DeveloperModeService_1;
|
|
45
45
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
46
46
|
exports.DeveloperModeService = void 0;
|
|
47
|
+
const api_prisma_1 = require("@hed-hog/api-prisma");
|
|
47
48
|
const common_1 = require("@nestjs/common");
|
|
48
49
|
const child_process_1 = require("child_process");
|
|
49
50
|
const fs = __importStar(require("fs"));
|
|
@@ -52,7 +53,8 @@ const util_1 = require("util");
|
|
|
52
53
|
const execAsync = (0, util_1.promisify)(child_process_1.exec);
|
|
53
54
|
const execFileAsync = (0, util_1.promisify)(child_process_1.execFile);
|
|
54
55
|
let DeveloperModeService = DeveloperModeService_1 = class DeveloperModeService {
|
|
55
|
-
constructor() {
|
|
56
|
+
constructor(prisma) {
|
|
57
|
+
this.prisma = prisma;
|
|
56
58
|
this.logger = new common_1.Logger(DeveloperModeService_1.name);
|
|
57
59
|
this.repoRoot = this.getRepoRoot();
|
|
58
60
|
this.appScriptAllowList = {
|
|
@@ -207,53 +209,14 @@ let DeveloperModeService = DeveloperModeService_1 = class DeveloperModeService {
|
|
|
207
209
|
*/
|
|
208
210
|
async getDatabaseInfo() {
|
|
209
211
|
try {
|
|
210
|
-
|
|
211
|
-
const envPath = path.join(this.repoRoot, 'apps', 'api', '.env');
|
|
212
|
-
const dockerComposePath = path.join(this.repoRoot, 'docker-compose.yaml');
|
|
213
|
-
let databaseUrl = null;
|
|
214
|
-
if (fs.existsSync(envPath)) {
|
|
215
|
-
const envContent = fs.readFileSync(envPath, 'utf-8');
|
|
216
|
-
const match = envContent.match(/DATABASE_URL\s*=\s*(.+)/);
|
|
217
|
-
if (match) {
|
|
218
|
-
// Limpar espaços, aspas e quebras de linha
|
|
219
|
-
databaseUrl = match[1].trim().replace(/^["']|["']$/g, '').split('\r')[0];
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
// Se não encontrou no .env, tentar docker-compose
|
|
223
|
-
if (!databaseUrl && fs.existsSync(dockerComposePath)) {
|
|
224
|
-
const dockerContent = fs.readFileSync(dockerComposePath, 'utf-8');
|
|
225
|
-
const pgMatch = dockerContent.match(/POSTGRES_DB\s*:\s*(.+)/);
|
|
226
|
-
if (pgMatch) {
|
|
227
|
-
const dbName = pgMatch[1].trim();
|
|
228
|
-
databaseUrl = `postgresql://localhost:5432/${dbName}`;
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
// Parsear a URL do banco
|
|
212
|
+
const databaseUrl = this.getDatabaseUrl();
|
|
232
213
|
if (databaseUrl) {
|
|
233
214
|
const parsed = this.parseDatabaseUrl(databaseUrl);
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
try {
|
|
240
|
-
const migrationsDir = path.join(this.repoRoot, 'apps', 'api', 'prisma', 'migrations');
|
|
241
|
-
if (fs.existsSync(migrationsDir)) {
|
|
242
|
-
const migrations = fs.readdirSync(migrationsDir).sort().reverse();
|
|
243
|
-
if (migrations.length > 0) {
|
|
244
|
-
const lastMigrationName = migrations[0];
|
|
245
|
-
parsed.lastMigration = {
|
|
246
|
-
name: lastMigrationName,
|
|
247
|
-
date: '2 hours ago', // Será obtido do filesystem se necessário
|
|
248
|
-
status: 'success',
|
|
249
|
-
};
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
catch (_a) {
|
|
254
|
-
// Sem informações de migração
|
|
255
|
-
}
|
|
256
|
-
return parsed;
|
|
215
|
+
const [databaseMetrics, lastMigration] = await Promise.all([
|
|
216
|
+
this.getDatabaseMetrics(parsed.type),
|
|
217
|
+
Promise.resolve(this.getLastMigrationInfo()),
|
|
218
|
+
]);
|
|
219
|
+
return Object.assign(Object.assign(Object.assign({}, parsed), databaseMetrics), (lastMigration ? { lastMigration } : {}));
|
|
257
220
|
}
|
|
258
221
|
return {
|
|
259
222
|
name: 'unknown',
|
|
@@ -420,23 +383,7 @@ let DeveloperModeService = DeveloperModeService_1 = class DeveloperModeService {
|
|
|
420
383
|
catch (error) {
|
|
421
384
|
this.logger.warn('Error getting last commit', error);
|
|
422
385
|
}
|
|
423
|
-
|
|
424
|
-
let uptime = 'N/A';
|
|
425
|
-
try {
|
|
426
|
-
// Se API está rodando, usar isso como referência
|
|
427
|
-
const apiPath = path.join(this.repoRoot, 'apps', 'api');
|
|
428
|
-
if (fs.existsSync(apiPath)) {
|
|
429
|
-
const stat = fs.statSync(apiPath);
|
|
430
|
-
const startTime = stat.birthtime;
|
|
431
|
-
const now = new Date();
|
|
432
|
-
const diffMs = now.getTime() - startTime.getTime();
|
|
433
|
-
const diffDays = Math.floor(diffMs / (1000 * 60 * 60 * 24));
|
|
434
|
-
uptime = `${diffDays}d`;
|
|
435
|
-
}
|
|
436
|
-
}
|
|
437
|
-
catch (error) {
|
|
438
|
-
this.logger.warn('Error calculating uptime', error);
|
|
439
|
-
}
|
|
386
|
+
const uptime = this.formatUptime(process.uptime());
|
|
440
387
|
// Conexões do banco de dados (obtém de .env ou docker-compose)
|
|
441
388
|
let dbConnections = 0;
|
|
442
389
|
try {
|
|
@@ -571,13 +518,19 @@ let DeveloperModeService = DeveloperModeService_1 = class DeveloperModeService {
|
|
|
571
518
|
const cleanUrl = url.trim().replace(/^["']|["']$/g, '').split('\r')[0].split('\n')[0];
|
|
572
519
|
const dbUrl = new URL(cleanUrl);
|
|
573
520
|
const protocol = dbUrl.protocol.replace(':', '');
|
|
521
|
+
const type = protocol === 'postgres' || protocol === 'postgresql'
|
|
522
|
+
? 'postgresql'
|
|
523
|
+
: protocol === 'mysql'
|
|
524
|
+
? 'mysql'
|
|
525
|
+
: 'unknown';
|
|
526
|
+
const databaseName = dbUrl.pathname.replace(/^\//, '') || 'unknown';
|
|
574
527
|
return {
|
|
575
|
-
name:
|
|
528
|
+
name: databaseName,
|
|
576
529
|
host: dbUrl.hostname || 'localhost',
|
|
577
530
|
port: parseInt(dbUrl.port) || (protocol === 'postgresql' ? 5432 : 3306),
|
|
578
|
-
type
|
|
531
|
+
type,
|
|
579
532
|
user: dbUrl.username,
|
|
580
|
-
database:
|
|
533
|
+
database: databaseName,
|
|
581
534
|
};
|
|
582
535
|
}
|
|
583
536
|
catch (_a) {
|
|
@@ -589,6 +542,166 @@ let DeveloperModeService = DeveloperModeService_1 = class DeveloperModeService {
|
|
|
589
542
|
};
|
|
590
543
|
}
|
|
591
544
|
}
|
|
545
|
+
getDatabaseUrl() {
|
|
546
|
+
const envPath = path.join(this.repoRoot, 'apps', 'api', '.env');
|
|
547
|
+
const dockerComposePath = path.join(this.repoRoot, 'docker-compose.yaml');
|
|
548
|
+
if (fs.existsSync(envPath)) {
|
|
549
|
+
const envContent = fs.readFileSync(envPath, 'utf-8');
|
|
550
|
+
const match = envContent.match(/DATABASE_URL\s*=\s*(.+)/);
|
|
551
|
+
if (match) {
|
|
552
|
+
return match[1]
|
|
553
|
+
.trim()
|
|
554
|
+
.replace(/^["']|["']$/g, '')
|
|
555
|
+
.split('\r')[0]
|
|
556
|
+
.split('\n')[0];
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
if (fs.existsSync(dockerComposePath)) {
|
|
560
|
+
const dockerContent = fs.readFileSync(dockerComposePath, 'utf-8');
|
|
561
|
+
const pgMatch = dockerContent.match(/POSTGRES_DB\s*:\s*(.+)/);
|
|
562
|
+
if (pgMatch) {
|
|
563
|
+
const dbName = pgMatch[1].trim();
|
|
564
|
+
return `postgresql://localhost:5432/${dbName}`;
|
|
565
|
+
}
|
|
566
|
+
}
|
|
567
|
+
return null;
|
|
568
|
+
}
|
|
569
|
+
async getDatabaseMetrics(dbType) {
|
|
570
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
571
|
+
const fallback = {
|
|
572
|
+
tables: 0,
|
|
573
|
+
size: 'N/A',
|
|
574
|
+
connections: { active: 0, max: 0 },
|
|
575
|
+
connected: false,
|
|
576
|
+
};
|
|
577
|
+
if (dbType === 'unknown') {
|
|
578
|
+
return fallback;
|
|
579
|
+
}
|
|
580
|
+
try {
|
|
581
|
+
if (dbType === 'postgresql') {
|
|
582
|
+
const tableRows = await this.prisma.$queryRaw `
|
|
583
|
+
SELECT COUNT(*)::bigint AS count
|
|
584
|
+
FROM information_schema.tables
|
|
585
|
+
WHERE table_type = 'BASE TABLE'
|
|
586
|
+
AND table_schema NOT IN ('pg_catalog', 'information_schema')
|
|
587
|
+
`;
|
|
588
|
+
const sizeRows = await this.prisma.$queryRaw `
|
|
589
|
+
SELECT pg_database_size(current_database())::bigint AS size_bytes
|
|
590
|
+
`;
|
|
591
|
+
const activeRows = await this.prisma.$queryRaw `
|
|
592
|
+
SELECT COUNT(*)::bigint AS active_connections
|
|
593
|
+
FROM pg_stat_activity
|
|
594
|
+
`;
|
|
595
|
+
const maxRows = await this.prisma.$queryRaw `
|
|
596
|
+
SELECT current_setting('max_connections') AS max_connections
|
|
597
|
+
`;
|
|
598
|
+
const tables = this.toNumber((_a = tableRows[0]) === null || _a === void 0 ? void 0 : _a.count);
|
|
599
|
+
const sizeBytes = this.toNumber((_b = sizeRows[0]) === null || _b === void 0 ? void 0 : _b.size_bytes);
|
|
600
|
+
const active = this.toNumber((_c = activeRows[0]) === null || _c === void 0 ? void 0 : _c.active_connections);
|
|
601
|
+
const max = this.toNumber((_d = maxRows[0]) === null || _d === void 0 ? void 0 : _d.max_connections);
|
|
602
|
+
return {
|
|
603
|
+
tables,
|
|
604
|
+
size: this.formatBytes(sizeBytes),
|
|
605
|
+
connections: { active, max },
|
|
606
|
+
connected: true,
|
|
607
|
+
};
|
|
608
|
+
}
|
|
609
|
+
const tableRows = await this.prisma.$queryRaw `
|
|
610
|
+
SELECT COUNT(*) AS count
|
|
611
|
+
FROM information_schema.tables
|
|
612
|
+
WHERE table_schema = DATABASE()
|
|
613
|
+
AND table_type = 'BASE TABLE'
|
|
614
|
+
`;
|
|
615
|
+
const sizeRows = await this.prisma.$queryRaw `
|
|
616
|
+
SELECT COALESCE(SUM(data_length + index_length), 0) AS size_bytes
|
|
617
|
+
FROM information_schema.tables
|
|
618
|
+
WHERE table_schema = DATABASE()
|
|
619
|
+
`;
|
|
620
|
+
const activeRows = await this.prisma.$queryRaw `
|
|
621
|
+
SHOW STATUS LIKE 'Threads_connected'
|
|
622
|
+
`;
|
|
623
|
+
const maxRows = await this.prisma.$queryRaw `
|
|
624
|
+
SHOW VARIABLES LIKE 'max_connections'
|
|
625
|
+
`;
|
|
626
|
+
const tables = this.toNumber((_e = tableRows[0]) === null || _e === void 0 ? void 0 : _e.count);
|
|
627
|
+
const sizeBytes = this.toNumber((_f = sizeRows[0]) === null || _f === void 0 ? void 0 : _f.size_bytes);
|
|
628
|
+
const active = this.toNumber((_g = activeRows[0]) === null || _g === void 0 ? void 0 : _g.Value);
|
|
629
|
+
const max = this.toNumber((_h = maxRows[0]) === null || _h === void 0 ? void 0 : _h.Value);
|
|
630
|
+
return {
|
|
631
|
+
tables,
|
|
632
|
+
size: this.formatBytes(sizeBytes),
|
|
633
|
+
connections: { active, max },
|
|
634
|
+
connected: true,
|
|
635
|
+
};
|
|
636
|
+
}
|
|
637
|
+
catch (error) {
|
|
638
|
+
this.logger.warn('Could not collect real database metrics', error);
|
|
639
|
+
return fallback;
|
|
640
|
+
}
|
|
641
|
+
}
|
|
642
|
+
getLastMigrationInfo() {
|
|
643
|
+
try {
|
|
644
|
+
const migrationsDir = path.join(this.repoRoot, 'apps', 'api', 'prisma', 'migrations');
|
|
645
|
+
if (!fs.existsSync(migrationsDir)) {
|
|
646
|
+
return undefined;
|
|
647
|
+
}
|
|
648
|
+
const migrations = fs
|
|
649
|
+
.readdirSync(migrationsDir)
|
|
650
|
+
.filter((entry) => fs.statSync(path.join(migrationsDir, entry)).isDirectory())
|
|
651
|
+
.sort()
|
|
652
|
+
.reverse();
|
|
653
|
+
if (migrations.length === 0) {
|
|
654
|
+
return undefined;
|
|
655
|
+
}
|
|
656
|
+
const lastMigrationName = migrations[0];
|
|
657
|
+
const lastMigrationPath = path.join(migrationsDir, lastMigrationName);
|
|
658
|
+
const stats = fs.statSync(lastMigrationPath);
|
|
659
|
+
return {
|
|
660
|
+
name: lastMigrationName,
|
|
661
|
+
date: this.formatRelativeTime(stats.mtime),
|
|
662
|
+
status: 'success',
|
|
663
|
+
};
|
|
664
|
+
}
|
|
665
|
+
catch (_a) {
|
|
666
|
+
return undefined;
|
|
667
|
+
}
|
|
668
|
+
}
|
|
669
|
+
toNumber(value) {
|
|
670
|
+
if (value === null || value === undefined) {
|
|
671
|
+
return 0;
|
|
672
|
+
}
|
|
673
|
+
const parsed = Number(value);
|
|
674
|
+
return Number.isFinite(parsed) ? parsed : 0;
|
|
675
|
+
}
|
|
676
|
+
formatRelativeTime(date) {
|
|
677
|
+
const diffMs = Date.now() - date.getTime();
|
|
678
|
+
if (diffMs < 60 * 1000) {
|
|
679
|
+
return 'just now';
|
|
680
|
+
}
|
|
681
|
+
const minutes = Math.floor(diffMs / (60 * 1000));
|
|
682
|
+
if (minutes < 60) {
|
|
683
|
+
return `${minutes}m ago`;
|
|
684
|
+
}
|
|
685
|
+
const hours = Math.floor(minutes / 60);
|
|
686
|
+
if (hours < 24) {
|
|
687
|
+
return `${hours}h ago`;
|
|
688
|
+
}
|
|
689
|
+
const days = Math.floor(hours / 24);
|
|
690
|
+
return `${days}d ago`;
|
|
691
|
+
}
|
|
692
|
+
formatUptime(seconds) {
|
|
693
|
+
const totalMinutes = Math.floor(seconds / 60);
|
|
694
|
+
const days = Math.floor(totalMinutes / (60 * 24));
|
|
695
|
+
const hours = Math.floor((totalMinutes % (60 * 24)) / 60);
|
|
696
|
+
const minutes = totalMinutes % 60;
|
|
697
|
+
if (days > 0) {
|
|
698
|
+
return `${days}d ${hours}h`;
|
|
699
|
+
}
|
|
700
|
+
if (hours > 0) {
|
|
701
|
+
return `${hours}h ${minutes}m`;
|
|
702
|
+
}
|
|
703
|
+
return `${minutes}m`;
|
|
704
|
+
}
|
|
592
705
|
findFilesByPattern(dir, pattern, maxDepth = 10, currentDepth = 0) {
|
|
593
706
|
if (currentDepth > maxDepth)
|
|
594
707
|
return [];
|
|
@@ -806,6 +919,6 @@ let DeveloperModeService = DeveloperModeService_1 = class DeveloperModeService {
|
|
|
806
919
|
exports.DeveloperModeService = DeveloperModeService;
|
|
807
920
|
exports.DeveloperModeService = DeveloperModeService = DeveloperModeService_1 = __decorate([
|
|
808
921
|
(0, common_1.Injectable)(),
|
|
809
|
-
__metadata("design:paramtypes", [])
|
|
922
|
+
__metadata("design:paramtypes", [api_prisma_1.PrismaService])
|
|
810
923
|
], DeveloperModeService);
|
|
811
924
|
//# sourceMappingURL=developermode.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"developermode.service.js","sourceRoot":"","sources":["../src/developermode.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"developermode.service.js","sourceRoot":"","sources":["../src/developermode.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -654,7 +654,8 @@ export function DatabaseInfoCard({
|
|
|
654
654
|
};
|
|
655
655
|
}) {
|
|
656
656
|
const t = useTranslations('developer-mode.Sections');
|
|
657
|
-
const connectionPercentage =
|
|
657
|
+
const connectionPercentage =
|
|
658
|
+
connections.max > 0 ? (connections.active / connections.max) * 100 : 0;
|
|
658
659
|
const migrationStatusColors: Record<string, string> = {
|
|
659
660
|
success: 'bg-success/20 text-success border-success/30',
|
|
660
661
|
pending: 'bg-warning/20 text-warning border-warning/30',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { PageHeader } from '@/components/entity-list';
|
|
3
|
+
import { Page, PageHeader } from '@/components/entity-list';
|
|
4
4
|
import { FileCode, Package, RefreshCw } from 'lucide-react';
|
|
5
5
|
import { useTranslations } from 'next-intl';
|
|
6
6
|
import * as React from 'react';
|
|
@@ -10,7 +10,6 @@ import {
|
|
|
10
10
|
DatabaseInfoCard,
|
|
11
11
|
GitInfo,
|
|
12
12
|
LibrariesList,
|
|
13
|
-
QuickActionsBar,
|
|
14
13
|
StatsCards,
|
|
15
14
|
WizardDialog,
|
|
16
15
|
} from './components/sections';
|
|
@@ -136,7 +135,7 @@ export default function DeveloperDashboard() {
|
|
|
136
135
|
};
|
|
137
136
|
|
|
138
137
|
return (
|
|
139
|
-
<
|
|
138
|
+
<Page>
|
|
140
139
|
<PageHeader
|
|
141
140
|
title={t('header.title')}
|
|
142
141
|
description={t('header.description')}
|
|
@@ -147,7 +146,7 @@ export default function DeveloperDashboard() {
|
|
|
147
146
|
/>
|
|
148
147
|
|
|
149
148
|
{/* Main Content */}
|
|
150
|
-
<main className="
|
|
149
|
+
<main className="flex-col gap-4 flex">
|
|
151
150
|
{/* Loading State */}
|
|
152
151
|
{isLoading && (
|
|
153
152
|
<div className="flex items-center justify-center py-12">
|
|
@@ -171,10 +170,10 @@ export default function DeveloperDashboard() {
|
|
|
171
170
|
{developerModeData && !isLoading && (
|
|
172
171
|
<>
|
|
173
172
|
{/* Quick Actions */}
|
|
174
|
-
|
|
173
|
+
{/*<QuickActionsBar onAction={handleAction} />*/}
|
|
175
174
|
|
|
176
175
|
{/* Main Grid */}
|
|
177
|
-
<div className="grid grid-cols-1 lg:grid-cols-3 gap-
|
|
176
|
+
<div className="grid grid-cols-1 lg:grid-cols-3 gap-4">
|
|
178
177
|
<div className="lg:col-span-2">
|
|
179
178
|
<AppsGrid
|
|
180
179
|
apps={developerModeData.apps}
|
|
@@ -242,6 +241,6 @@ export default function DeveloperDashboard() {
|
|
|
242
241
|
config={currentWizard}
|
|
243
242
|
/>
|
|
244
243
|
)}
|
|
245
|
-
</
|
|
244
|
+
</Page>
|
|
246
245
|
);
|
|
247
246
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hed-hog/developer-mode",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.285",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"dependencies": {
|
|
@@ -10,9 +10,9 @@
|
|
|
10
10
|
"@nestjs/jwt": "^11",
|
|
11
11
|
"@nestjs/mapped-types": "*",
|
|
12
12
|
"@hed-hog/api-prisma": "0.0.5",
|
|
13
|
-
"@hed-hog/
|
|
13
|
+
"@hed-hog/core": "0.0.285",
|
|
14
14
|
"@hed-hog/api": "0.0.4",
|
|
15
|
-
"@hed-hog/
|
|
15
|
+
"@hed-hog/api-locale": "0.0.13",
|
|
16
16
|
"@hed-hog/api-pagination": "0.0.6"
|
|
17
17
|
},
|
|
18
18
|
"exports": {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { PrismaService } from '@hed-hog/api-prisma';
|
|
1
2
|
import { BadRequestException, Injectable, Logger } from '@nestjs/common';
|
|
2
3
|
import { exec, execFile, spawn } from 'child_process';
|
|
3
4
|
import * as fs from 'fs';
|
|
@@ -112,7 +113,7 @@ export class DeveloperModeService {
|
|
|
112
113
|
'prod',
|
|
113
114
|
]);
|
|
114
115
|
|
|
115
|
-
constructor() {
|
|
116
|
+
constructor(private readonly prisma: PrismaService) {
|
|
116
117
|
this.logger.debug(`Repo root: ${this.repoRoot}`);
|
|
117
118
|
}
|
|
118
119
|
|
|
@@ -288,59 +289,19 @@ export class DeveloperModeService {
|
|
|
288
289
|
*/
|
|
289
290
|
private async getDatabaseInfo(): Promise<DatabaseInfo> {
|
|
290
291
|
try {
|
|
291
|
-
|
|
292
|
-
const envPath = path.join(this.repoRoot, 'apps', 'api', '.env');
|
|
293
|
-
const dockerComposePath = path.join(this.repoRoot, 'docker-compose.yaml');
|
|
294
|
-
|
|
295
|
-
let databaseUrl: string | null = null;
|
|
296
|
-
|
|
297
|
-
if (fs.existsSync(envPath)) {
|
|
298
|
-
const envContent = fs.readFileSync(envPath, 'utf-8');
|
|
299
|
-
const match = envContent.match(/DATABASE_URL\s*=\s*(.+)/);
|
|
300
|
-
if (match) {
|
|
301
|
-
// Limpar espaços, aspas e quebras de linha
|
|
302
|
-
databaseUrl = match[1].trim().replace(/^["']|["']$/g, '').split('\r')[0];
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
// Se não encontrou no .env, tentar docker-compose
|
|
307
|
-
if (!databaseUrl && fs.existsSync(dockerComposePath)) {
|
|
308
|
-
const dockerContent = fs.readFileSync(dockerComposePath, 'utf-8');
|
|
309
|
-
const pgMatch = dockerContent.match(/POSTGRES_DB\s*:\s*(.+)/);
|
|
310
|
-
if (pgMatch) {
|
|
311
|
-
const dbName = pgMatch[1].trim();
|
|
312
|
-
databaseUrl = `postgresql://localhost:5432/${dbName}`;
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
// Parsear a URL do banco
|
|
292
|
+
const databaseUrl = this.getDatabaseUrl();
|
|
317
293
|
if (databaseUrl) {
|
|
318
294
|
const parsed = this.parseDatabaseUrl(databaseUrl);
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
const migrations = fs.readdirSync(migrationsDir).sort().reverse();
|
|
330
|
-
if (migrations.length > 0) {
|
|
331
|
-
const lastMigrationName = migrations[0];
|
|
332
|
-
parsed.lastMigration = {
|
|
333
|
-
name: lastMigrationName,
|
|
334
|
-
date: '2 hours ago', // Será obtido do filesystem se necessário
|
|
335
|
-
status: 'success',
|
|
336
|
-
};
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
} catch {
|
|
340
|
-
// Sem informações de migração
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
return parsed;
|
|
295
|
+
const [databaseMetrics, lastMigration] = await Promise.all([
|
|
296
|
+
this.getDatabaseMetrics(parsed.type),
|
|
297
|
+
Promise.resolve(this.getLastMigrationInfo()),
|
|
298
|
+
]);
|
|
299
|
+
|
|
300
|
+
return {
|
|
301
|
+
...parsed,
|
|
302
|
+
...databaseMetrics,
|
|
303
|
+
...(lastMigration ? { lastMigration } : {}),
|
|
304
|
+
};
|
|
344
305
|
}
|
|
345
306
|
|
|
346
307
|
return {
|
|
@@ -516,22 +477,7 @@ export class DeveloperModeService {
|
|
|
516
477
|
this.logger.warn('Error getting last commit', error);
|
|
517
478
|
}
|
|
518
479
|
|
|
519
|
-
|
|
520
|
-
let uptime = 'N/A';
|
|
521
|
-
try {
|
|
522
|
-
// Se API está rodando, usar isso como referência
|
|
523
|
-
const apiPath = path.join(this.repoRoot, 'apps', 'api');
|
|
524
|
-
if (fs.existsSync(apiPath)) {
|
|
525
|
-
const stat = fs.statSync(apiPath);
|
|
526
|
-
const startTime = stat.birthtime;
|
|
527
|
-
const now = new Date();
|
|
528
|
-
const diffMs = now.getTime() - startTime.getTime();
|
|
529
|
-
const diffDays = Math.floor(diffMs / (1000 * 60 * 60 * 24));
|
|
530
|
-
uptime = `${diffDays}d`;
|
|
531
|
-
}
|
|
532
|
-
} catch (error) {
|
|
533
|
-
this.logger.warn('Error calculating uptime', error);
|
|
534
|
-
}
|
|
480
|
+
const uptime = this.formatUptime(process.uptime());
|
|
535
481
|
|
|
536
482
|
// Conexões do banco de dados (obtém de .env ou docker-compose)
|
|
537
483
|
let dbConnections = 0;
|
|
@@ -672,14 +618,20 @@ export class DeveloperModeService {
|
|
|
672
618
|
|
|
673
619
|
const dbUrl = new URL(cleanUrl);
|
|
674
620
|
const protocol = dbUrl.protocol.replace(':', '');
|
|
621
|
+
const type = protocol === 'postgres' || protocol === 'postgresql'
|
|
622
|
+
? 'postgresql'
|
|
623
|
+
: protocol === 'mysql'
|
|
624
|
+
? 'mysql'
|
|
625
|
+
: 'unknown';
|
|
626
|
+
const databaseName = dbUrl.pathname.replace(/^\//, '') || 'unknown';
|
|
675
627
|
|
|
676
628
|
return {
|
|
677
|
-
name:
|
|
629
|
+
name: databaseName,
|
|
678
630
|
host: dbUrl.hostname || 'localhost',
|
|
679
631
|
port: parseInt(dbUrl.port) || (protocol === 'postgresql' ? 5432 : 3306),
|
|
680
|
-
type
|
|
632
|
+
type,
|
|
681
633
|
user: dbUrl.username,
|
|
682
|
-
database:
|
|
634
|
+
database: databaseName,
|
|
683
635
|
};
|
|
684
636
|
} catch {
|
|
685
637
|
return {
|
|
@@ -691,6 +643,207 @@ export class DeveloperModeService {
|
|
|
691
643
|
}
|
|
692
644
|
}
|
|
693
645
|
|
|
646
|
+
private getDatabaseUrl(): string | null {
|
|
647
|
+
const envPath = path.join(this.repoRoot, 'apps', 'api', '.env');
|
|
648
|
+
const dockerComposePath = path.join(this.repoRoot, 'docker-compose.yaml');
|
|
649
|
+
|
|
650
|
+
if (fs.existsSync(envPath)) {
|
|
651
|
+
const envContent = fs.readFileSync(envPath, 'utf-8');
|
|
652
|
+
const match = envContent.match(/DATABASE_URL\s*=\s*(.+)/);
|
|
653
|
+
if (match) {
|
|
654
|
+
return match[1]
|
|
655
|
+
.trim()
|
|
656
|
+
.replace(/^["']|["']$/g, '')
|
|
657
|
+
.split('\r')[0]
|
|
658
|
+
.split('\n')[0];
|
|
659
|
+
}
|
|
660
|
+
}
|
|
661
|
+
|
|
662
|
+
if (fs.existsSync(dockerComposePath)) {
|
|
663
|
+
const dockerContent = fs.readFileSync(dockerComposePath, 'utf-8');
|
|
664
|
+
const pgMatch = dockerContent.match(/POSTGRES_DB\s*:\s*(.+)/);
|
|
665
|
+
if (pgMatch) {
|
|
666
|
+
const dbName = pgMatch[1].trim();
|
|
667
|
+
return `postgresql://localhost:5432/${dbName}`;
|
|
668
|
+
}
|
|
669
|
+
}
|
|
670
|
+
|
|
671
|
+
return null;
|
|
672
|
+
}
|
|
673
|
+
|
|
674
|
+
private async getDatabaseMetrics(
|
|
675
|
+
dbType: DatabaseInfo['type']
|
|
676
|
+
): Promise<Pick<DatabaseInfo, 'tables' | 'size' | 'connections' | 'connected'>> {
|
|
677
|
+
const fallback = {
|
|
678
|
+
tables: 0,
|
|
679
|
+
size: 'N/A',
|
|
680
|
+
connections: { active: 0, max: 0 },
|
|
681
|
+
connected: false,
|
|
682
|
+
};
|
|
683
|
+
|
|
684
|
+
if (dbType === 'unknown') {
|
|
685
|
+
return fallback;
|
|
686
|
+
}
|
|
687
|
+
|
|
688
|
+
try {
|
|
689
|
+
if (dbType === 'postgresql') {
|
|
690
|
+
const tableRows = await this.prisma.$queryRaw<Array<{ count: bigint | number | string }>>`
|
|
691
|
+
SELECT COUNT(*)::bigint AS count
|
|
692
|
+
FROM information_schema.tables
|
|
693
|
+
WHERE table_type = 'BASE TABLE'
|
|
694
|
+
AND table_schema NOT IN ('pg_catalog', 'information_schema')
|
|
695
|
+
`;
|
|
696
|
+
|
|
697
|
+
const sizeRows = await this.prisma.$queryRaw<Array<{ size_bytes: bigint | number | string }>>`
|
|
698
|
+
SELECT pg_database_size(current_database())::bigint AS size_bytes
|
|
699
|
+
`;
|
|
700
|
+
|
|
701
|
+
const activeRows = await this.prisma.$queryRaw<Array<{ active_connections: bigint | number | string }>>`
|
|
702
|
+
SELECT COUNT(*)::bigint AS active_connections
|
|
703
|
+
FROM pg_stat_activity
|
|
704
|
+
`;
|
|
705
|
+
|
|
706
|
+
const maxRows = await this.prisma.$queryRaw<Array<{ max_connections: string | number | bigint }>>`
|
|
707
|
+
SELECT current_setting('max_connections') AS max_connections
|
|
708
|
+
`;
|
|
709
|
+
|
|
710
|
+
const tables = this.toNumber(tableRows[0]?.count);
|
|
711
|
+
const sizeBytes = this.toNumber(sizeRows[0]?.size_bytes);
|
|
712
|
+
const active = this.toNumber(activeRows[0]?.active_connections);
|
|
713
|
+
const max = this.toNumber(maxRows[0]?.max_connections);
|
|
714
|
+
|
|
715
|
+
return {
|
|
716
|
+
tables,
|
|
717
|
+
size: this.formatBytes(sizeBytes),
|
|
718
|
+
connections: { active, max },
|
|
719
|
+
connected: true,
|
|
720
|
+
};
|
|
721
|
+
}
|
|
722
|
+
|
|
723
|
+
const tableRows = await this.prisma.$queryRaw<Array<{ count: bigint | number | string }>>`
|
|
724
|
+
SELECT COUNT(*) AS count
|
|
725
|
+
FROM information_schema.tables
|
|
726
|
+
WHERE table_schema = DATABASE()
|
|
727
|
+
AND table_type = 'BASE TABLE'
|
|
728
|
+
`;
|
|
729
|
+
|
|
730
|
+
const sizeRows = await this.prisma.$queryRaw<Array<{ size_bytes: bigint | number | string | null }>>`
|
|
731
|
+
SELECT COALESCE(SUM(data_length + index_length), 0) AS size_bytes
|
|
732
|
+
FROM information_schema.tables
|
|
733
|
+
WHERE table_schema = DATABASE()
|
|
734
|
+
`;
|
|
735
|
+
|
|
736
|
+
const activeRows = await this.prisma.$queryRaw<Array<{ Value: string }>>`
|
|
737
|
+
SHOW STATUS LIKE 'Threads_connected'
|
|
738
|
+
`;
|
|
739
|
+
|
|
740
|
+
const maxRows = await this.prisma.$queryRaw<Array<{ Value: string }>>`
|
|
741
|
+
SHOW VARIABLES LIKE 'max_connections'
|
|
742
|
+
`;
|
|
743
|
+
|
|
744
|
+
const tables = this.toNumber(tableRows[0]?.count);
|
|
745
|
+
const sizeBytes = this.toNumber(sizeRows[0]?.size_bytes);
|
|
746
|
+
const active = this.toNumber(activeRows[0]?.Value);
|
|
747
|
+
const max = this.toNumber(maxRows[0]?.Value);
|
|
748
|
+
|
|
749
|
+
return {
|
|
750
|
+
tables,
|
|
751
|
+
size: this.formatBytes(sizeBytes),
|
|
752
|
+
connections: { active, max },
|
|
753
|
+
connected: true,
|
|
754
|
+
};
|
|
755
|
+
} catch (error) {
|
|
756
|
+
this.logger.warn('Could not collect real database metrics', error);
|
|
757
|
+
return fallback;
|
|
758
|
+
}
|
|
759
|
+
}
|
|
760
|
+
|
|
761
|
+
private getLastMigrationInfo(): DatabaseInfo['lastMigration'] | undefined {
|
|
762
|
+
try {
|
|
763
|
+
const migrationsDir = path.join(
|
|
764
|
+
this.repoRoot,
|
|
765
|
+
'apps',
|
|
766
|
+
'api',
|
|
767
|
+
'prisma',
|
|
768
|
+
'migrations'
|
|
769
|
+
);
|
|
770
|
+
|
|
771
|
+
if (!fs.existsSync(migrationsDir)) {
|
|
772
|
+
return undefined;
|
|
773
|
+
}
|
|
774
|
+
|
|
775
|
+
const migrations = fs
|
|
776
|
+
.readdirSync(migrationsDir)
|
|
777
|
+
.filter((entry) =>
|
|
778
|
+
fs.statSync(path.join(migrationsDir, entry)).isDirectory()
|
|
779
|
+
)
|
|
780
|
+
.sort()
|
|
781
|
+
.reverse();
|
|
782
|
+
|
|
783
|
+
if (migrations.length === 0) {
|
|
784
|
+
return undefined;
|
|
785
|
+
}
|
|
786
|
+
|
|
787
|
+
const lastMigrationName = migrations[0];
|
|
788
|
+
const lastMigrationPath = path.join(migrationsDir, lastMigrationName);
|
|
789
|
+
const stats = fs.statSync(lastMigrationPath);
|
|
790
|
+
|
|
791
|
+
return {
|
|
792
|
+
name: lastMigrationName,
|
|
793
|
+
date: this.formatRelativeTime(stats.mtime),
|
|
794
|
+
status: 'success',
|
|
795
|
+
};
|
|
796
|
+
} catch {
|
|
797
|
+
return undefined;
|
|
798
|
+
}
|
|
799
|
+
}
|
|
800
|
+
|
|
801
|
+
private toNumber(value: unknown): number {
|
|
802
|
+
if (value === null || value === undefined) {
|
|
803
|
+
return 0;
|
|
804
|
+
}
|
|
805
|
+
|
|
806
|
+
const parsed = Number(value);
|
|
807
|
+
return Number.isFinite(parsed) ? parsed : 0;
|
|
808
|
+
}
|
|
809
|
+
|
|
810
|
+
private formatRelativeTime(date: Date): string {
|
|
811
|
+
const diffMs = Date.now() - date.getTime();
|
|
812
|
+
if (diffMs < 60 * 1000) {
|
|
813
|
+
return 'just now';
|
|
814
|
+
}
|
|
815
|
+
|
|
816
|
+
const minutes = Math.floor(diffMs / (60 * 1000));
|
|
817
|
+
if (minutes < 60) {
|
|
818
|
+
return `${minutes}m ago`;
|
|
819
|
+
}
|
|
820
|
+
|
|
821
|
+
const hours = Math.floor(minutes / 60);
|
|
822
|
+
if (hours < 24) {
|
|
823
|
+
return `${hours}h ago`;
|
|
824
|
+
}
|
|
825
|
+
|
|
826
|
+
const days = Math.floor(hours / 24);
|
|
827
|
+
return `${days}d ago`;
|
|
828
|
+
}
|
|
829
|
+
|
|
830
|
+
private formatUptime(seconds: number): string {
|
|
831
|
+
const totalMinutes = Math.floor(seconds / 60);
|
|
832
|
+
const days = Math.floor(totalMinutes / (60 * 24));
|
|
833
|
+
const hours = Math.floor((totalMinutes % (60 * 24)) / 60);
|
|
834
|
+
const minutes = totalMinutes % 60;
|
|
835
|
+
|
|
836
|
+
if (days > 0) {
|
|
837
|
+
return `${days}d ${hours}h`;
|
|
838
|
+
}
|
|
839
|
+
|
|
840
|
+
if (hours > 0) {
|
|
841
|
+
return `${hours}h ${minutes}m`;
|
|
842
|
+
}
|
|
843
|
+
|
|
844
|
+
return `${minutes}m`;
|
|
845
|
+
}
|
|
846
|
+
|
|
694
847
|
private findFilesByPattern(dir: string, pattern: RegExp, maxDepth = 10, currentDepth = 0): string[] {
|
|
695
848
|
if (currentDepth > maxDepth) return [];
|
|
696
849
|
|