@leonardofirme/deploy-nextjs16 1.2.3 → 1.2.5
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/README.md +30 -55
- package/bin/cli.js +46 -35
- package/package.json +1 -1
- package/src/app/page.tsx +1 -1
package/README.md
CHANGED
|
@@ -9,91 +9,66 @@ Estrutura profissional (Scaffold) para desenvolvimento de SaaS e ERPs dinâmicos
|
|
|
9
9
|
|
|
10
10
|
---
|
|
11
11
|
|
|
12
|
-
## 🚀
|
|
12
|
+
## 🚀 Inicialização Instantânea (Zero Config)
|
|
13
13
|
|
|
14
|
-
Para
|
|
14
|
+
Para criar um novo projeto com toda a arquitetura de pastas, componentes de UI e configurações de ambiente prontos para uso, execute:
|
|
15
15
|
|
|
16
16
|
```bash
|
|
17
|
-
npx @leonardofirme/deploy-nextjs16
|
|
17
|
+
npx @leonardofirme/deploy-nextjs16@latest meu-novo-projeto
|
|
18
18
|
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
-
> **
|
|
21
|
+
> **O que este comando faz:** Clona o repositório oficial, remove arquivos de infraestrutura desnecessários, instala todas as dependências do ecossistema e entrega o projeto pronto para o `npm run dev`.
|
|
22
22
|
|
|
23
23
|
---
|
|
24
24
|
|
|
25
|
-
## 📂
|
|
25
|
+
## 📂 Arquitetura do Ecossistema
|
|
26
26
|
|
|
27
|
-
### 📁
|
|
27
|
+
### 📁 UI System (`src/components/ui`)
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
* **`package.json`**: Manifesto com dependências (Next 16.1.6, React 19.2.3, Tailwind v4). Define o binário `lf-init`.
|
|
31
|
-
* **`package-lock.json`**: Controle de integridade e versões das dependências.
|
|
32
|
-
* **`postcss.config.mjs`**: Configuração do motor PostCSS para processamento do Tailwind v4.
|
|
33
|
-
* **`tsconfig.json`**: Regras de tipagem estática e aliases de caminhos (paths) do projeto.
|
|
29
|
+
Biblioteca de componentes atômicos construída sob o padrão **Tailwind v4**, com suporte nativo a `dark:mode` e layouts responsivos para ERPs.
|
|
34
30
|
|
|
35
|
-
|
|
31
|
+
* **Core:** Button, Input, Select, Table, Modal e Form Elements (sem restrição de case).
|
|
32
|
+
* **Visuals:** Backgrounds animados (`Starfield`, `Fireworks`) e controle de tema dinâmico.
|
|
36
33
|
|
|
37
|
-
|
|
38
|
-
* **`page.tsx`**: View principal da rota raiz (Home).
|
|
39
|
-
* **`globals.css`**: Configuração global do Tailwind v4 e variáveis de cores dinâmicas.
|
|
34
|
+
### 📁 Core & Security (`src/core` & `src/proxy.ts`)
|
|
40
35
|
|
|
41
|
-
|
|
36
|
+
* **Proxy.ts:** Camada de segurança e redirecionamento moderno (substituindo middlewares descontinuados).
|
|
37
|
+
* **Node-Resolver:** Gerenciamento de hidratação para estabilidade entre Client e Server side.
|
|
38
|
+
* **Centralização:** Tipagens globais e configurações de animação (Framer Motion) padronizadas.
|
|
42
39
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
* **`Alert.tsx`, `Badge.tsx`, `Breadcrumb.tsx**`: Sinalização, status e navegação.
|
|
46
|
-
* **`Button.tsx`**: Ação principal (`bg-gray-800` light / `bg-gray-50` dark).
|
|
47
|
-
* **`Card.tsx`, `Modal.tsx`, `Dropdown.tsx**`: Containers de conteúdo e sobreposição.
|
|
48
|
-
* **`Input.tsx`, `Select.tsx`, `Checkbox.tsx`, `Toggle.tsx`, `Textarea.tsx**`: Elementos de formulário (sem manipulação de `uppercase`).
|
|
49
|
-
* **`Table.tsx`**: Grid de dados avançado para sistemas ERP.
|
|
50
|
-
* **`StarfieldBackground.tsx` & `FireworksBackground.tsx**`: Backgrounds animados profissionais.
|
|
51
|
-
* **`ToggleDarkmode.tsx`**: Controle de alternância de tema.
|
|
52
|
-
* **`Provider.tsx`**: Wrapper centralizador de contextos de interface.
|
|
53
|
-
* **`Index.tsx`**: Ponto central de exportação dos componentes.
|
|
54
|
-
|
|
55
|
-
### 📁 `src/core` (Lógica e Regras)
|
|
56
|
-
|
|
57
|
-
* **`animations.ts`**: Configurações centralizadas de Framer Motion.
|
|
58
|
-
* **`config.ts`**: Variáveis de ambiente e constantes globais do sistema.
|
|
59
|
-
* **`constants.ts`**: Valores estáticos e Enums de negócio.
|
|
60
|
-
* **`legal.ts`**: Textos jurídicos e termos padronizados.
|
|
61
|
-
* **`providers/node-resolver.tsx`**: Gerenciador de hidratação para componentes Client/Server.
|
|
40
|
+
---
|
|
62
41
|
|
|
63
|
-
|
|
42
|
+
## 🛠️ Comandos de Operação
|
|
64
43
|
|
|
65
|
-
|
|
66
|
-
* **`default-layout.tsx`**: Template base estrutural para dashboards e plataformas.
|
|
44
|
+
Após a inicialização via `npx`, utilize os comandos padrão:
|
|
67
45
|
|
|
68
|
-
|
|
46
|
+
```bash
|
|
47
|
+
# Iniciar servidor de desenvolvimento (Turbo)
|
|
48
|
+
npm run dev
|
|
69
49
|
|
|
70
|
-
|
|
50
|
+
# Gerar build de produção otimizado
|
|
51
|
+
npm run build
|
|
71
52
|
|
|
72
|
-
|
|
53
|
+
# Iniciar projeto em produção
|
|
54
|
+
npm run start
|
|
73
55
|
|
|
74
|
-
|
|
75
|
-
* **`index.ts` & `common.ts**`: Contratos de interfaces e tipos globais do TypeScript.
|
|
56
|
+
```
|
|
76
57
|
|
|
77
58
|
---
|
|
78
59
|
|
|
79
|
-
##
|
|
80
|
-
|
|
81
|
-
```bash
|
|
82
|
-
# Instalar dependências localmente
|
|
83
|
-
npm install
|
|
60
|
+
## 👨💻 Autor e Mantenedor
|
|
84
61
|
|
|
85
|
-
|
|
86
|
-
npm run dev
|
|
62
|
+
Desenvolvido por **Leonardo Firme**. Focado em entregar estruturas escaláveis para o mercado de plataformas SaaS e sistemas de gestão.
|
|
87
63
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
```
|
|
64
|
+
* **GitHub Pessoal:** [LeonardoFirme](https://github.com/LeonardoFirme)
|
|
65
|
+
* **V0 Digital:** [v0digital](https://github.com/v0digital)
|
|
66
|
+
* **NPM Profile:** [@leonardofirme](https://www.npmjs.com/~leonardofirme)
|
|
92
67
|
|
|
93
68
|
---
|
|
94
69
|
|
|
95
70
|
## 📄 Licença
|
|
96
71
|
|
|
97
|
-
|
|
72
|
+
Uso disponível para a comunidade sob os termos de desenvolvimento de plataformas do ecossistema Leonardo Firme.
|
|
98
73
|
|
|
99
74
|
---
|
package/bin/cli.js
CHANGED
|
@@ -2,52 +2,63 @@
|
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* @file cli.js
|
|
5
|
-
* @description CLI Profissional
|
|
5
|
+
* @description CLI Profissional Leonardo Firme - Deploy System
|
|
6
6
|
* @author Leonardo Firme
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
const { execSync } = require('child_process');
|
|
10
|
-
const fs = require('fs
|
|
10
|
+
const fs = require('fs');
|
|
11
11
|
const path = require('path');
|
|
12
|
-
|
|
12
|
+
|
|
13
|
+
// ANSI Escape Codes para cores (Nativo, não depende de libs externas que quebram)
|
|
14
|
+
const reset = "\x1b[0m";
|
|
15
|
+
const bold = "\x1b[1m";
|
|
16
|
+
const cyan = "\x1b[36m";
|
|
17
|
+
const green = "\x1b[32m";
|
|
18
|
+
const white = "\x1b[37m";
|
|
19
|
+
const gray = "\x1b[90m";
|
|
20
|
+
const red = "\x1b[31m";
|
|
13
21
|
|
|
14
22
|
const projectName = process.argv[2] || '.';
|
|
15
23
|
const targetPath = path.resolve(process.cwd(), projectName);
|
|
16
24
|
|
|
17
|
-
console.log(
|
|
18
|
-
console.log(
|
|
19
|
-
console.log(
|
|
25
|
+
console.log(`${gray}\n---------------------------------------------------${reset}`);
|
|
26
|
+
console.log(`${white}${bold} ESTRUTURAS LEONARDO FIRME | DEPLOY SYSTEM${reset}`);
|
|
27
|
+
console.log(`${gray}---------------------------------------------------${reset}\n`);
|
|
20
28
|
|
|
21
29
|
try {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
console.log(
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
30
|
+
// 1. Clonagem
|
|
31
|
+
console.log(`${cyan}▹ Clonando repositório de LeonardoFirme/deploy-nextjs16...${reset}`);
|
|
32
|
+
execSync(`npx degit leonardofirme/deploy-nextjs16 ${projectName} --force`, { stdio: 'inherit' });
|
|
33
|
+
|
|
34
|
+
// 2. Limpeza da pasta bin (Remover o que não pertence ao usuário)
|
|
35
|
+
const unwantedBin = path.join(targetPath, 'bin');
|
|
36
|
+
if (fs.existsSync(unwantedBin)) {
|
|
37
|
+
fs.rmSync(unwantedBin, { recursive: true, force: true });
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// 3. Instalação Automática
|
|
41
|
+
console.log(`\n${cyan}▹ Instalando dependências do ecossistema...${reset}`);
|
|
42
|
+
process.chdir(targetPath);
|
|
43
|
+
|
|
44
|
+
// Executa o install e mostra o progresso real para o usuário
|
|
45
|
+
execSync('npm install', { stdio: 'inherit' });
|
|
46
|
+
|
|
47
|
+
// 4. Assinatura Final
|
|
48
|
+
console.log(`${gray}\n---------------------------------------------------${reset}`);
|
|
49
|
+
console.log(`${green}${bold} 🚀 ESTRUTURA INSTALADA COM SUCESSO!${reset}`);
|
|
50
|
+
console.log(`\n Para iniciar o desenvolvimento:`);
|
|
51
|
+
if (projectName !== '.') {
|
|
52
|
+
console.log(`${cyan} cd ${projectName}${reset}`);
|
|
53
|
+
}
|
|
54
|
+
console.log(`${cyan} npm run dev${reset}`);
|
|
55
|
+
|
|
56
|
+
console.log(`${gray}\n Desenvolvido com precisão por:${reset}`);
|
|
57
|
+
console.log(`${white}${bold} LEONARDO FIRME • 2026${reset}`);
|
|
58
|
+
console.log(`${gray}---------------------------------------------------${reset}\n`);
|
|
49
59
|
|
|
50
60
|
} catch (error) {
|
|
51
|
-
|
|
52
|
-
|
|
61
|
+
console.error(`${red}\n❌ Erro crítico na inicialização:${reset}`);
|
|
62
|
+
console.error(error.message);
|
|
63
|
+
process.exit(1);
|
|
53
64
|
}
|
package/package.json
CHANGED
package/src/app/page.tsx
CHANGED
|
@@ -35,7 +35,7 @@ export default function HomePage() {
|
|
|
35
35
|
{/* Badge de Versão */}
|
|
36
36
|
<motion.div variants={ITEM_VARIANTS}>
|
|
37
37
|
<Badge className="bg-white px-5 py-1.5 font-orbitron tracking-[0.2em] text-gray-800 border-gray-200 dark:bg-gray-950/30 dark:border-gray-800 dark:text-gray-50">
|
|
38
|
-
ESTRUTURA V1.2.
|
|
38
|
+
ESTRUTURA V1.2.5 VALIDADA
|
|
39
39
|
</Badge>
|
|
40
40
|
</motion.div>
|
|
41
41
|
|