@hed-hog/developer-mode 0.0.278 → 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.
@@ -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":"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"}
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
- // Tentar ler .env de /apps/api
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
- // Adicionar informações padrão para exibição
235
- parsed.tables = 24; // Valor realista para demo
236
- parsed.size = '156 MB'; // Tamanho aproximado
237
- parsed.connections = { active: 5, max: 100 }; // Conexões ativas/máximas
238
- // Tentar obter informação da última migração
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
- // Calcular uptime do servidor (tempo desde arquivo mais antigo)
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: dbUrl.pathname.replace('/', '') || 'unknown',
528
+ name: databaseName,
576
529
  host: dbUrl.hostname || 'localhost',
577
530
  port: parseInt(dbUrl.port) || (protocol === 'postgresql' ? 5432 : 3306),
578
- type: protocol === 'postgresql' ? 'postgresql' : protocol === 'mysql' ? 'mysql' : 'unknown',
531
+ type,
579
532
  user: dbUrl.username,
580
- database: dbUrl.pathname.replace('/', ''),
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 = (connections.active / connections.max) * 100;
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
- <div className="flex flex-col h-screen px-4">
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="container mx-auto py-6 space-y-6">
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
- <QuickActionsBar onAction={handleAction} />
173
+ {/*<QuickActionsBar onAction={handleAction} />*/}
175
174
 
176
175
  {/* Main Grid */}
177
- <div className="grid grid-cols-1 lg:grid-cols-3 gap-6">
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
- </div>
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.278",
3
+ "version": "0.0.285",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "dependencies": {
@@ -10,7 +10,7 @@
10
10
  "@nestjs/jwt": "^11",
11
11
  "@nestjs/mapped-types": "*",
12
12
  "@hed-hog/api-prisma": "0.0.5",
13
- "@hed-hog/core": "0.0.278",
13
+ "@hed-hog/core": "0.0.285",
14
14
  "@hed-hog/api": "0.0.4",
15
15
  "@hed-hog/api-locale": "0.0.13",
16
16
  "@hed-hog/api-pagination": "0.0.6"
@@ -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
- // Tentar ler .env de /apps/api
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
- // Adicionar informações padrão para exibição
321
- parsed.tables = 24; // Valor realista para demo
322
- parsed.size = '156 MB'; // Tamanho aproximado
323
- parsed.connections = { active: 5, max: 100 }; // Conexões ativas/máximas
324
-
325
- // Tentar obter informação da última migração
326
- try {
327
- const migrationsDir = path.join(this.repoRoot, 'apps', 'api', 'prisma', 'migrations');
328
- if (fs.existsSync(migrationsDir)) {
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
- // Calcular uptime do servidor (tempo desde arquivo mais antigo)
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: dbUrl.pathname.replace('/', '') || 'unknown',
629
+ name: databaseName,
678
630
  host: dbUrl.hostname || 'localhost',
679
631
  port: parseInt(dbUrl.port) || (protocol === 'postgresql' ? 5432 : 3306),
680
- type: protocol === 'postgresql' ? 'postgresql' : protocol === 'mysql' ? 'mysql' : 'unknown',
632
+ type,
681
633
  user: dbUrl.username,
682
- database: dbUrl.pathname.replace('/', ''),
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