@purecore/one-server-4-all 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Um mini-validador type-safe inspirado no Zod.
3
+ * Garante que nossa configuração de entrada seja válida sem importar bibliotecas externas.
4
+ */
5
+ export class Schema {
6
+ validator;
7
+ constructor(validator) {
8
+ this.validator = validator;
9
+ }
10
+ parse(value) {
11
+ return this.validator(value);
12
+ }
13
+ }
14
+ export const z = {
15
+ string: () => new Schema((val) => {
16
+ if (typeof val !== 'string')
17
+ throw new Error(`Expected string, received ${typeof val}`);
18
+ return val;
19
+ }),
20
+ number: () => new Schema((val) => {
21
+ const num = Number(val);
22
+ if (isNaN(num))
23
+ throw new Error(`Expected number, received ${val}`);
24
+ return num;
25
+ }),
26
+ object: (shape) => new Schema((val) => {
27
+ if (typeof val !== 'object' || val === null)
28
+ throw new Error("Expected object");
29
+ const result = {};
30
+ const obj = val;
31
+ for (const key in shape) {
32
+ try {
33
+ result[key] = shape[key].parse(obj[key]);
34
+ }
35
+ catch (e) {
36
+ throw new Error(`In field '${key}': ${e.message}`);
37
+ }
38
+ }
39
+ return result;
40
+ })
41
+ };
42
+ // Configuração Schema para o nosso servidor
43
+ export const configSchema = z.object({
44
+ port: z.number(),
45
+ root: z.string(),
46
+ open: z.string(), // boolean as string 'true'/'false' simplificado para CLI
47
+ spa: z.string(), // boolean as string 'true'/'false' para suporte SPA
48
+ https: z.string() // boolean as string 'true'/'false' para modo HTTPS
49
+ });
@@ -0,0 +1,58 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import { EventEmitter } from 'node:events';
4
+ export class Watcher extends EventEmitter {
5
+ root;
6
+ timeout = null;
7
+ watcher = null;
8
+ constructor(root) {
9
+ super();
10
+ this.root = path.resolve(root);
11
+ }
12
+ start() {
13
+ if (!fs.existsSync(this.root)) {
14
+ console.error(`❌ Diretório não encontrado: ${this.root}`);
15
+ return;
16
+ }
17
+ try {
18
+ // Recursive watch é suportado na maioria dos OS modernos Node v20+
19
+ // No Linux pode ter limitações dependendo do FS, mas para dev local funciona bem.
20
+ this.watcher = fs.watch(this.root, { recursive: true }, (eventType, filename) => {
21
+ if (filename && !this.isIgnored(filename.toString())) {
22
+ this.debounceChange(filename.toString());
23
+ }
24
+ });
25
+ console.log(`👀 Observando mudanças em: ${this.root}`);
26
+ }
27
+ catch (err) {
28
+ console.error("Erro ao iniciar watcher:", err);
29
+ // Fallback para não-recursivo se falhar (ex: Linux kernels antigos)
30
+ console.warn("⚠️ Fallback para watcher não recursivo.");
31
+ this.watcher = fs.watch(this.root, (event, filename) => {
32
+ if (filename)
33
+ this.debounceChange(filename.toString());
34
+ });
35
+ }
36
+ }
37
+ isIgnored(filename) {
38
+ // Ignorar node_modules e arquivos ocultos (.git, etc)
39
+ return filename.includes('node_modules') ||
40
+ filename.includes('.git') ||
41
+ filename.endsWith('.tmp');
42
+ }
43
+ debounceChange(filename) {
44
+ // Evita múltiplos disparos (ex: salvar arquivo dispara 2 eventos 'change' e 'rename')
45
+ if (this.timeout)
46
+ clearTimeout(this.timeout);
47
+ this.timeout = setTimeout(() => {
48
+ console.log(`🔄 Arquivo alterado: ${filename}`);
49
+ this.emit('change', filename);
50
+ }, 100); // 100ms debounce
51
+ }
52
+ stop() {
53
+ if (this.watcher) {
54
+ this.watcher.close();
55
+ this.watcher = null;
56
+ }
57
+ }
58
+ }
@@ -0,0 +1 @@
1
+ (hot-server)->(0.1.0)
@@ -0,0 +1,26 @@
1
+ $ignitePath = "$env:USERPROFILE\.purecore\ignite"
2
+ $binPath = "$env:USERPROFILE\.purecore\bin"
3
+
4
+ Write-Host "Installing PureCore Ignite..."
5
+
6
+ New-Item -ItemType Directory -Force -Path $ignitePath | Out-Null
7
+ New-Item -ItemType Directory -Force -Path $binPath | Out-Null
8
+
9
+ Copy-Item .\ignite.exe "$ignitePath\ignite.exe" -Force
10
+
11
+ $target = "$binPath\ignite.exe"
12
+ $source = "$ignitePath\ignite.exe"
13
+
14
+ cmd /c mklink $target $source | Out-Null
15
+
16
+ $envPath = [Environment]::GetEnvironmentVariable("Path", "User")
17
+ if ($envPath -notlike "*$binPath*") {
18
+ [Environment]::SetEnvironmentVariable(
19
+ "Path",
20
+ "$envPath;$binPath",
21
+ "User"
22
+ )
23
+ }
24
+
25
+ Write-Host "Ignite installed successfully."
26
+ Write-Host "Restart your terminal and run: ignite"
@@ -0,0 +1,25 @@
1
+ #!/bin/bash
2
+
3
+ set -e
4
+
5
+ IGNITE_PATH="$HOME/.purecore/ignite"
6
+ BIN_PATH="$HOME/.local/bin"
7
+
8
+ mkdir -p "$IGNITE_PATH"
9
+ mkdir -p "$BIN_PATH"
10
+
11
+ echo "Installing PureCore Ignite..."
12
+
13
+ # exemplo: copia binário ou script JS empacotado
14
+ cp ./ignite "$IGNITE_PATH/ignite"
15
+ chmod +x "$IGNITE_PATH/ignite"
16
+
17
+ ln -sf "$IGNITE_PATH/ignite" "$BIN_PATH/ignite"
18
+
19
+ if [[ ":$PATH:" != *":$BIN_PATH:"* ]]; then
20
+ echo "export PATH=\"$BIN_PATH:\$PATH\"" >> "$HOME/.bashrc"
21
+ echo "export PATH=\"$BIN_PATH:\$PATH\"" >> "$HOME/.zshrc"
22
+ fi
23
+
24
+ echo "Ignite installed successfully."
25
+ echo "Restart your terminal and run: ignite"
@@ -0,0 +1,7 @@
1
+ module.exports = {
2
+ testEnvironment: 'node',
3
+ roots: ['<rootDir>/dist'],
4
+ testMatch: ['**/?(*.)+(spec|test).js'],
5
+ transform: {}, // sem ts-jest
6
+ moduleFileExtensions: ['js', 'json']
7
+ };
package/package.json ADDED
@@ -0,0 +1,36 @@
1
+ {
2
+ "name": "@purecore/one-server-4-all",
3
+ "version": "0.1.0",
4
+ "description": "Zero dependency modern hot-reload server replacement",
5
+ "main": "dist/index.js",
6
+ "type": "module",
7
+ "bin": {
8
+ "one-server": "./dist/index.js",
9
+ "vai-server": "./dist/index.js"
10
+ },
11
+ "scripts": {
12
+ "build": "tsc",
13
+ "start": "node dist/index.js",
14
+ "dev": "bun run src/index.ts",
15
+ "dev:https": "bun run src/index.ts --https=true",
16
+ "test": "jest",
17
+ "certs:generate": "bun run src/cert-generator.ts generate",
18
+ "certs:clean": "bun run src/cert-generator.ts clean",
19
+ "certs:info": "bun run src/cert-generator.ts info"
20
+ },
21
+ "keywords": [
22
+ "http-server",
23
+ "hot-reload",
24
+ "hot-server",
25
+ "live-server",
26
+ "zero-dependency"
27
+ ],
28
+ "author": "Suissa",
29
+ "license": "CEL",
30
+ "devDependencies": {
31
+ "@types/node": "^20.11.0",
32
+ "ts-jest": "^29.1.2",
33
+ "typescript": "^5.3.3"
34
+ },
35
+ "dependencies": {}
36
+ }
@@ -0,0 +1,154 @@
1
+ # Relatório de Implementação: Purecore Hot Server - Funcionalidades Avançadas
2
+
3
+ ## 📋 Resumo das Implementações
4
+
5
+ Foram implementadas com sucesso as 4 funcionalidades solicitadas do documento `COMPARACAO_LIVE_SERVER.md`, mantendo a filosofia **zero dependencies** do projeto.
6
+
7
+ ## ✅ Implementações Realizadas
8
+
9
+ ### 1. Injeção de CSS (CSS Hot Loading)
10
+
11
+ **O que foi implementado:**
12
+ - Script injetado no HTML agora diferencia mudanças em arquivos CSS de outros tipos
13
+ - Quando um arquivo `.css` é modificado, em vez de recarregar toda a página, o sistema:
14
+ - Identifica os links `<link rel="stylesheet">` que referenciam o arquivo CSS alterado
15
+ - Adiciona um timestamp de cache busting (`?v=timestamp`) para forçar o reload do CSS
16
+ - Mantém o resto da página intacto
17
+
18
+ **Arquivos modificados:**
19
+ - `src/server.ts`: Script injetado e método `notifyClients()` atualizado
20
+ - `src/watcher.ts`: Compatibilidade mantida
21
+
22
+ **Técnicas utilizadas:**
23
+ - JSON parsing no client-side para distinguir tipos de mudança
24
+ - DOM manipulation para atualizar apenas CSS links
25
+ - Fallback para compatibilidade com mensagens antigas
26
+
27
+ ### 2. Suporte a SPA (Single Page Applications)
28
+
29
+ **O que foi implementado:**
30
+ - Nova flag `--spa` (padrão: `false`)
31
+ - Quando habilitado (`--spa=true`):
32
+ - Rotas não encontradas (404) redirecionam automaticamente para `index.html`
33
+ - Permite que frameworks como React/Vue assumam o controle do roteamento
34
+ - Configuração integrada ao sistema de validação
35
+
36
+ **Arquivos modificados:**
37
+ - `src/index.ts`: Parsing da flag `--spa`
38
+ - `src/validator.ts`: Schema atualizado para incluir configuração SPA
39
+ - `src/server.ts`: Lógica de fallback para SPA implementada
40
+
41
+ **Técnicas utilizadas:**
42
+ - Validação type-safe com mini-Zod
43
+ - Parsing de argumentos CLI robusto
44
+ - Lógica condicional no handler de arquivos
45
+
46
+ ### 3. Mime-Types Robustos
47
+
48
+ **O que foi implementado:**
49
+ - Expansão significativa da lista `MIME_TYPES`
50
+ - Suporte completo para:
51
+ - **Vídeos**: `.mp4`, `.webm`, `.ogg`, `.avi`, `.mov`, `.wmv`, `.flv`
52
+ - **Áudios**: `.mp3`, `.wav`, `.ogg`, `.aac`, `.m4a`, `.opus`
53
+ - **Fontes**: `.woff`, `.woff2`, `.ttf`, `.otf`, `.eot`
54
+ - **Imagens extras**: `.webp`, `.bmp`, `.tiff`, `.tif`
55
+ - **Documentos**: `.pdf`, `.csv`, `.yaml`, `.toml`
56
+ - **Arquivos comprimidos**: `.zip`, `.gzip`, `.tar`
57
+ - **Web**: `.webmanifest`
58
+
59
+ **Arquivos modificados:**
60
+ - `src/server.ts`: Lista `MIME_TYPES` expandida de ~10 para ~35 tipos
61
+
62
+ **Técnicas utilizadas:**
63
+ - Organização por categoria para manutenção
64
+ - Cobertura abrangente de tipos modernos da web
65
+
66
+ ### 4. CORS (Cross-Origin Resource Sharing)
67
+
68
+ **O que foi implementado:**
69
+ - Headers CORS adicionados a todas as respostas de arquivos estáticos:
70
+ - `Access-Control-Allow-Origin: *`
71
+ - `Access-Control-Allow-Methods: GET, HEAD, OPTIONS`
72
+ - `Access-Control-Allow-Headers: Content-Type`
73
+ - Aplicado tanto para arquivos HTML injetados quanto para arquivos binários/stream
74
+
75
+ **Arquivos modificados:**
76
+ - `src/server.ts`: Headers CORS adicionados em ambos os caminhos de resposta
77
+
78
+ **Técnicas utilizadas:**
79
+ - Headers aplicados consistentemente em todas as respostas
80
+ - Suporte a métodos HTTP comuns
81
+ - Configuração permissiva para desenvolvimento
82
+
83
+ ## 🔧 Arquitetura Mantida
84
+
85
+ - **Zero Dependencies**: Todas as implementações usam apenas APIs nativas do Node.js
86
+ - **TypeScript Estrito**: Código mantido com tipagem forte
87
+ - **Performance**: Implementações otimizadas e eficientes
88
+ - **Compatibilidade**: Fallback para funcionalidades antigas
89
+
90
+ ## 🧪 Como Testar
91
+
92
+ ### CSS Injection:
93
+ ```bash
94
+ # Inicie o servidor
95
+ npx ts-node src/index.ts
96
+
97
+ # Modifique qualquer arquivo .css - deve atualizar sem reload da página
98
+ ```
99
+
100
+ ### SPA Support:
101
+ ```bash
102
+ # Com suporte SPA
103
+ npx ts-node src/index.ts --spa=true
104
+
105
+ # Acesse qualquer rota inexistente - deve carregar index.html
106
+ # Ex: http://localhost:9999/qualquer-rota-inexistente
107
+ ```
108
+
109
+ ### MIME Types:
110
+ ```bash
111
+ # Sirva arquivos de diferentes tipos
112
+ # Vídeos, fontes, manifestos agora são servidos com MIME types corretos
113
+ ```
114
+
115
+ ### CORS:
116
+ ```bash
117
+ # Arquivos podem ser acessados de outros domínios/origins
118
+ # Útil para desenvolvimento com múltiplos servidores locais
119
+ ```
120
+
121
+ ## 📈 Benefícios Alcançados
122
+
123
+ 1. **Performance Melhorada**: CSS injection evita reloads desnecessários
124
+ 2. **Compatibilidade SPA**: Suporte nativo a frameworks modernos
125
+ 3. **Robustez**: MIME types abrangentes para todos os tipos de arquivo
126
+ 4. **Flexibilidade**: CORS permite integrações cross-origin
127
+ 5. **Manutenibilidade**: Código organizado e bem documentado
128
+
129
+ ## 🎯 Resultado Final
130
+
131
+ O Purecore Hot Server agora oferece funcionalidades comparáveis ao `live-server` mantendo sua vantagem principal: **zero dependencies**. As implementações são:
132
+
133
+ - ✅ **Leves**: Sem adicionar dependências externas
134
+ - ✅ **Eficientes**: Usam APIs nativas do Node.js
135
+ - ✅ **Type-Safe**: Mantêm tipagem TypeScript rigorosa
136
+ - ✅ **Compatíveis**: Funcionam com projetos existentes
137
+
138
+ ## 🔗 Fontes de Informação Utilizadas
139
+
140
+ - [MDN Web Docs - MIME Types](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types)
141
+ - [MDN Web Docs - CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS)
142
+ - [Node.js Documentation - HTTP Module](https://nodejs.org/api/http.html)
143
+ - [TypeScript Handbook](https://www.typescriptlang.org/docs/)
144
+ - [Server-Sent Events Specification](https://html.spec.whatwg.org/multipage/server-sent-events.html)
145
+
146
+ ## 📝 Próximos Passos
147
+
148
+ O servidor agora está pronto para uso avançado com:
149
+ - Hot reload inteligente (CSS injection + full reload)
150
+ - Suporte SPA completo
151
+ - MIME types robustos
152
+ - CORS habilitado
153
+
154
+ Para deploy em produção, considere adicionar configurações de segurança apropriadas.
@@ -0,0 +1,184 @@
1
+ # Relatório de Implementação: HTTPS + Certificados Auto-Assinados + Logs Avançados
2
+
3
+ ## 🎯 Resumo das Implementações
4
+
5
+ Foram implementadas com sucesso as funcionalidades de HTTPS, geração automática de certificados auto-assinados, e sistema avançado de logs com indicadores visuais e detalhamento de arquivos servidos.
6
+
7
+ ## ✅ Implementações Realizadas
8
+
9
+ ### 1. 🔒 Suporte Completo a HTTPS
10
+
11
+ **O que foi implementado:**
12
+ - Modo HTTPS opcional ativado pela flag `--https=true`
13
+ - Geração automática de certificados SSL auto-assinados
14
+ - Servidor HTTP/HTTPS dinâmico baseado na configuração
15
+ - Suporte completo a protocolos HTTP e HTTPS
16
+
17
+ **Arquivos modificados:**
18
+ - `src/server.ts`: Classe HotServer modificada para suportar HTTPS
19
+ - `src/index.ts`: Parsing da flag `--https`
20
+ - `src/validator.ts`: Validação da configuração HTTPS
21
+
22
+ **Técnicas utilizadas:**
23
+ - Módulo `https` do Node.js para servidor SSL
24
+ - Detecção automática de certificados existentes
25
+ - Fallback gracioso para modo HTTP quando necessário
26
+ - Protocol-aware browser opening
27
+
28
+ ### 2. 🛠️ Sistema de Geração de Certificados
29
+
30
+ **O que foi implementado:**
31
+ - Classe `CertGenerator` completa para gerenciamento de certificados
32
+ - Geração automática de pares chave privada/certificado
33
+ - Comandos CLI para geração, limpeza e informações
34
+ - Certificados salvos em `.hot-server-certs/` padrão
35
+
36
+ **Arquivos criados:**
37
+ - `src/cert-generator.ts`: Sistema completo de geração de certificados
38
+
39
+ **Técnicas utilizadas:**
40
+ - Crypto API nativa do Node.js para geração RSA
41
+ - File system operations para persistência
42
+ - Command-line interface com subcomandos
43
+ - Validação de existência de certificados
44
+
45
+ ### 3. 🔓🔒 Indicadores Visuais no Terminal
46
+
47
+ **O que foi implementado:**
48
+ - Emojis de cadeado no log de inicialização:
49
+ - 🔓 para modo HTTP (cadeado aberto)
50
+ - 🔒 para modo HTTPS (cadeado fechado)
51
+ - URLs com protocolo correto (http/https)
52
+ - Visual feedback imediato do modo de segurança
53
+
54
+ **Arquivos modificados:**
55
+ - `src/server.ts`: Logs de inicialização com indicadores visuais
56
+
57
+ **Técnicas utilizadas:**
58
+ - Template literals com emojis Unicode
59
+ - Detecção dinâmica de protocolo
60
+ - Console output formatting
61
+
62
+ ### 4. 📊 Sistema Avançado de Logs
63
+
64
+ **O que foi implementado:**
65
+ - Logs detalhados para cada arquivo servido
66
+ - Informações de tamanho e tipo MIME
67
+ - Parsing automático de recursos HTML
68
+ - Detecção de CSS, JavaScript e imagens no HTML
69
+ - Logs especiais para injeção de hot-reload
70
+
71
+ **Arquivos modificados:**
72
+ - `src/server.ts`: Sistema completo de logging
73
+
74
+ **Técnicas utilizadas:**
75
+ - Regex parsing para recursos HTML
76
+ - File system stats para informações de tamanho
77
+ - Formatação human-readable de bytes
78
+ - Emoji categorization por tipo de recurso
79
+
80
+ ## 🔧 Funcionalidades Técnicas
81
+
82
+ ### Scripts NPM Adicionados
83
+ ```json
84
+ {
85
+ "dev:https": "ts-node src/index.ts --https=true",
86
+ "certs:generate": "ts-node src/cert-generator.ts generate",
87
+ "certs:clean": "ts-node src/cert-generator.ts clean",
88
+ "certs:info": "ts-node src/cert-generator.ts info"
89
+ }
90
+ ```
91
+
92
+ ### Estrutura de Certificados
93
+ ```
94
+ .hot-server-certs/
95
+ ├── localhost.key # Chave privada RSA
96
+ └── localhost.crt # Certificado auto-assinado
97
+ ```
98
+
99
+ ### Exemplo de Logs de Saída
100
+ ```
101
+ 🔐 Gerando certificados auto-assinados...
102
+ ✅ Certificados gerados com sucesso!
103
+
104
+ 🚀 Hot-Server rodando!
105
+ -----------------------------------
106
+ 📂 Root: /path/to/project
107
+ 🔒 Local: https://localhost:9999
108
+ -----------------------------------
109
+
110
+ 📄 Servindo: index.html (2.1 KB) [text/html]
111
+ 🔍 Recursos encontrados em index.html:
112
+ 🎨 styles.css
113
+ 📜 app.js
114
+ 🖼️ logo.png
115
+ 🌐 HTML injetado com hot-reload: index.html
116
+ ```
117
+
118
+ ## 🧪 Como Testar
119
+
120
+ ### Modo HTTPS
121
+ ```bash
122
+ # Ativar HTTPS
123
+ npm run dev:https
124
+
125
+ # Ou manualmente
126
+ ts-node src/index.ts --https=true
127
+ ```
128
+
129
+ ### Gerenciamento de Certificados
130
+ ```bash
131
+ # Gerar certificados
132
+ npm run certs:generate
133
+
134
+ # Ver informações
135
+ npm run certs:info
136
+
137
+ # Limpar certificados
138
+ npm run certs:clean
139
+ ```
140
+
141
+ ### Logs Detalhados
142
+ 1. Inicie o servidor
143
+ 2. Abra uma página HTML no navegador
144
+ 3. Observe no terminal:
145
+ - 📄 Arquivos servidos com metadados
146
+ - 🔍 Recursos detectados automaticamente
147
+ - 🌐 Confirmação de injeção
148
+
149
+ ## 📈 Benefícios Alcançados
150
+
151
+ ### Segurança
152
+ - ✅ Desenvolvimento local com HTTPS
153
+ - ✅ Certificados auto-gerados automaticamente
154
+ - ✅ Feedback visual de segurança
155
+
156
+ ### Desenvolvimento
157
+ - ✅ Logs detalhados para debugging
158
+ - ✅ Visibilidade de recursos HTML
159
+ - ✅ Protocol-aware operations
160
+
161
+ ### Experiência do Desenvolvedor
162
+ - ✅ Indicadores visuais claros
163
+ - ✅ Automação de tarefas repetitivas
164
+ - ✅ CLI intuitiva e completa
165
+
166
+ ## 🎯 Resultado Final
167
+
168
+ O Purecore Hot Server agora oferece:
169
+
170
+ - **🔒 HTTPS nativo** com certificados auto-assinados
171
+ - **🛠️ Gerenciamento automático** de certificados SSL
172
+ - **🔓🔒 Indicadores visuais** de segurança no terminal
173
+ - **📊 Logs avançados** com parsing de recursos HTML
174
+ - **📁 Informações detalhadas** de arquivos servidos
175
+
176
+ **Mantendo a filosofia zero dependencies e arquitetura moderna!** 🚀
177
+
178
+ ## 🔗 Fontes de Informação Utilizadas
179
+
180
+ - [Node.js HTTPS Documentation](https://nodejs.org/api/https.html)
181
+ - [OpenSSL Certificate Generation](https://www.openssl.org/docs/man1.1.1/man1/req.html)
182
+ - [MDN Web Docs - SSL/TLS](https://developer.mozilla.org/en-US/docs/Glossary/SSL)
183
+ - [RFC 5280 - Certificate Standards](https://tools.ietf.org/html/rfc5280)
184
+ - [Unicode Emoji Reference](https://unicode.org/emoji/charts/full-emoji-list.html)
@@ -0,0 +1,29 @@
1
+ # Relatório de Modificação - Log Estilo Vite
2
+
3
+ **Data:** 31-12-2025
4
+ **Tarefa:** Customizar o log de inicialização do `hot-server` para ser idêntico ao do Vite.
5
+
6
+ ## O que foi feito
7
+
8
+ - Refatorado o método `start()` na classe `HotServer` em `src/server.ts`.
9
+ - Implementada a detecção de interfaces de rede usando o módulo nativo `node:os`.
10
+ - Adicionada medição de tempo de inicialização (`startTime`) para exibir "ready in X ms".
11
+ - Estilização completa usando códigos de escape ANSI para cores e negrito, imitando perfeitamente o visual premium do Vite.
12
+ - Substituído o nome "VITE" por "HOT-SERVER".
13
+ - Adicionado o link de ajuda "press h + enter to show help".
14
+ - Atualizado o feedback de porta em uso para também seguir o padrão visual.
15
+ - Corrigido o `.gitignore` para incluir a pasta `dist`.
16
+ - Incrementada a versão do projeto para `0.3.1`.
17
+
18
+ ## Por que foi feito
19
+
20
+ - Para melhorar a experiência do desenvolvedor (DX), fornecendo um feedback visual familiar e profissional.
21
+ - Para facilitar o acesso ao servidor a partir de outros dispositivos na mesma rede (exibindo IPs de Network).
22
+ - Para alinhar o projeto com as melhores práticas de estética moderna solicitadas pelo usuário.
23
+
24
+ ## Como testar
25
+
26
+ 1. Execute `bun run dev` ou `bun run src/index.ts`.
27
+ 2. Observe o log de inicialização formatado no terminal.
28
+ 3. Verifique se as URLs Local e Network estão corretas e acessíveis.
29
+ 4. Tente iniciar o servidor em uma porta já ocupada para ver o novo log de fallback.
@@ -0,0 +1,19 @@
1
+ # Relatório de Modificação - Porta Padrão
2
+
3
+ **Data:** 31-12-2025
4
+ **Tarefa:** Alterar a porta padrão do `hot-server` para 6000.
5
+
6
+ ## O que foi feito
7
+
8
+ - Alterado o valor padrão de `port` em `src/index.ts` de `9999` para `6000`.
9
+ - Incrementada a versão do projeto para `0.3.2`.
10
+ - Atualizado o `CHANGELOG.md`.
11
+
12
+ ## Por que foi feito
13
+
14
+ - Atender à solicitação do usuário de padronizar a porta de execução para 6000.
15
+
16
+ ## Como testar
17
+
18
+ 1. Execute `bun run src/index.ts`.
19
+ 2. Verifique se o log exibe `http://localhost:6000/` por padrão.
@@ -0,0 +1,31 @@
1
+ # Relatório de Modificação - Implementação do Deployer Interativo
2
+
3
+ **Data:** 31-12-2025
4
+ **Tarefa:** Substituir o script `cria.sh` por um comando `deploy` interativo integrado ao CLI do `hot-server`.
5
+
6
+ ## O que foi feito
7
+
8
+ - Criada a classe `Deployer` em `src/deployer.ts` para gerenciar o processo de deploy.
9
+ - Implementada uma interface de linha de comando (CLI) interativa e visualmente "premium" usando `readline` e códigos ANSI.
10
+ - Automatizada a criação de configurações do Nginx (proxy reverso e suporte a WebSocket).
11
+ - Automatizado o uso do Certbot para geração de certificados SSL.
12
+ - Adicionada geração automática do comando de inicialização PM2 com nomes baseados no domínio/subdomínio.
13
+ - Integrado o novo comando no `src/index.ts` detectando o argumento `deploy`.
14
+ - Renomeado `cria.sh` para `APAGAR_cria.sh` (indicando depreciação).
15
+ - Incrementada versão para `0.4.0` e atualizado `CHANGELOG.md`.
16
+
17
+ ## Por que foi feito
18
+
19
+ - Para oferecer uma experiência de deploy profissional e segura, eliminando a manipulação manual de scripts Shell.
20
+ - Para simplificar o fluxo de deploy em produção (Nginx + SSL + PM2) com um único comando Wizard.
21
+ - Para atender ao requisito de interface "bonita" e interativa no terminal.
22
+
23
+ ## Como testar
24
+
25
+ 1. Compile o projeto: `bun run build`.
26
+ 2. Execute o deployer (simulação): `bun run src/index.ts deploy`.
27
+ 3. Siga as instruções interativas no terminal.
28
+ - Digite um domínio (ex: `app.teste.com`).
29
+ - Confirme a porta (default `6000`).
30
+ - Observe o comando PM2 gerado.
31
+ - (Opcional) Confirme a configuração do Nginx (requer `sudo` e ambiente compatível).