web-architect-cli 1.0.5 → 1.0.7

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.
Files changed (3) hide show
  1. package/README.md +122 -64
  2. package/bin/index.js +8 -0
  3. package/package.json +4 -1
package/README.md CHANGED
@@ -1,26 +1,30 @@
1
+
2
+
1
3
  # 🏗️ Web Architect CLI
2
4
 
3
- O **Web Architect CLI** é uma ferramenta de linha de comando projetada para padronizar e acelerar a criação de interfaces web (especialmente para o ecossistema Sankhya). Com um único comando, você gera uma estrutura completa, configurada com TailwindCSS e um sistema de build automático.
5
+ O **Web Architect CLI** é uma ferramenta de linha de comando desenvolvida para padronizar e acelerar a criação de projetos no ecossistema **Sankhya**.
4
6
 
5
- ## 📦 Instalação
7
+ Com um único comando, você pode gerar:
6
8
 
7
- Para utilizar a ferramenta em qualquer lugar do seu computador, instale a versão mais recente globalmente via npm:
9
+ 1. 🖥️ **Interfaces Web:** HTML5/JSP com TailwindCSS e compactação automática (zip).
10
+ 2. 🗄️ **Personalizações de Banco:** Estrutura organizada para PL/SQL (Procedures, Triggers, Views).
11
+ 3. ☕ **Extensões Java:** Projetos configurados nativamente para IntelliJ (JDK 1.8 + libs-java).
8
12
 
9
- Bash
13
+ ---
10
14
 
11
- ```
15
+ ## 📦 Instalação
16
+
17
+ Para utilizar a ferramenta em qualquer lugar do seu sistema, instale globalmente via npm:
18
+
19
+ ```bashnpm install -g web-architect-cli@latest
12
20
  npm install -g web-architect-cli@latest
13
21
  ```
14
22
 
15
- > **Nota:** É necessário ter o [Node.js](https://nodejs.org/) instalado.
16
-
17
- ---
23
+ **Requisito:** É necessário ter o [Node.js](https://nodejs.org/) instalado.
18
24
 
19
25
  ## 🚀 Como Utilizar
20
26
 
21
- ### 1. Criando um Novo Projeto
22
-
23
- Abra o terminal na pasta onde deseja iniciar o trabalho e execute:
27
+ Abra o terminal na pasta onde deseja criar o projeto e execute:
24
28
 
25
29
  Bash
26
30
 
@@ -28,50 +32,130 @@ Bash
28
32
  web-arch
29
33
  ```
30
34
 
31
- O assistente interativo iniciará:
35
+ O assistente interativo apresentará um menu. Escolha o tipo de projeto:
32
36
 
33
- 1. Ele pedirá o **nome do projeto** (ex: `painel-metas`).
37
+ ### Opção [1] HTML5 (Web & Dashboards)
34
38
 
35
- 2. Criará automaticamente toda a estrutura de pastas e arquivos.
39
+ Ideal para telas adicionais, dashboards e interfaces visuais.
36
40
 
37
- 3. Instalará as dependências necessárias.
41
+ - **O que faz:** Cria estrutura MVC, configura TailwindCSS e gera script de build.
38
42
 
39
- ### 2. Fluxo de Desenvolvimento (O "Pulo do Gato")
43
+ - **Diferencial:** Possui o modo **"Watch"** (explicação abaixo).
40
44
 
41
- Após criar o projeto, entre na pasta e inicie o modo de desenvolvimento:
45
+ ### Opção [2] PERSONALIZACAO (Banco de Dados)
42
46
 
43
- Bash
47
+ Ideal para organizar scripts de banco e documentação técnica.
48
+
49
+ - **O que faz:** Cria pastas padronizadas (`src/Procedure`, `src/Trigger`, etc.) e inicializa o Git.
50
+
51
+ - **Estrutura:** Separa o código-fonte (`src`) da documentação funcional (`doc`).
52
+
53
+ ### Opção [3] JAVA (IntelliJ Native)
54
+
55
+ Ideal para eventos, botões de ação e agendadores Java.
56
+
57
+ - **O que faz:** Gera a estrutura de pastas Java (`br.com.sankhya...`) e os arquivos de configuração do **IntelliJ IDEA**.
58
+
59
+ - **Configuração:** Já define o projeto para **JDK 1.8** e vincula a biblioteca global `libs-java`.
60
+
61
+ ---
62
+
63
+ ## 🛠️ Fluxos de Trabalho (Workflows)
64
+
65
+ Dependendo do modelo escolhido, o fluxo de trabalho muda:
66
+
67
+ ### 👉 Para Projetos Web (HTML5)
68
+
69
+ O grande trunfo aqui é a compactação automática.
70
+
71
+ 1. Entre na pasta criada: `cd meu-projeto-web`
72
+
73
+ 2. Inicie o monitoramento: `npm start`
74
+
75
+ 3. **Desenvolva:** Ao salvar qualquer arquivo (HTML, JS, CSS), o sistema **gera automaticamente um .zip** na raiz do projeto.
76
+
77
+ 4. **Implante:** Basta subir esse zip para o Repositório de Arquivos do Sankhya.
78
+
79
+ ### 👉 Para Projetos Java
80
+
81
+ O foco é a integração imediata com a IDE.
82
+
83
+ 1. Abra o **IntelliJ IDEA**.
84
+
85
+ 2. Vá em **File > Open** e selecione a pasta do projeto criado.
86
+
87
+ 3. **Pronto!** O projeto será reconhecido como módulo Java, com JDK 1.8 selecionado e pastas de source (`src`) configuradas.
88
+
89
+ > *Nota: Certifique-se de ter uma Global Library chamada `libs-java` configurada no seu IntelliJ.*
90
+
91
+ ---
92
+
93
+ ## 📂 Estruturas Geradas
94
+
95
+ Veja como cada projeto é organizado:
96
+
97
+ ### 1. Web (HTML5)
98
+
99
+ Plaintext
44
100
 
45
101
  ```
46
- cd painel-metas
47
- npm start
102
+ meu-dashboard/
103
+ ├── build.js # Automação de ZIP
104
+ ├── index.jsp # Entry point Sankhya (<snk:load/>)
105
+ ├── index.html # Testes locais
106
+ └── src/
107
+ ├── controllers/ # Lógica JS
108
+ ├── views/ # Manipulação de DOM
109
+ └── assets/ # TailwindCSS e Imagens
48
110
  ```
49
111
 
50
- **O que acontece agora?**
112
+ ### 2. Personalização
113
+
114
+ Plaintext
51
115
 
52
- - O sistema entra em modo **WATCH** (monitoramento).
116
+ ```
117
+ minha-customizacao/
118
+ ├── doc/ # Documentação funcional/técnica
119
+ └── src/
120
+ ├── Function/
121
+ ├── Procedure/
122
+ ├── Trigger/
123
+ ├── View/
124
+ └── SQL/ # Scripts gerais
125
+ ```
53
126
 
54
- - Qualquer arquivo que você salvar dentro da pasta (HTML, CSS, JS), o script **automaticamente compacta o projeto** em um arquivo `.zip` com o nome da pasta (ex: `painel-metas.zip`).
127
+ ### 3. Java (Sankhya)
55
128
 
56
- - **Benefício:** Você não precisa zipar manualmente os arquivos toda vez que quiser subir para o ERP/Portal. Basta arrastar o zip gerado.
129
+ Plaintext
57
130
 
58
- ---
131
+ ```
132
+ meu-evento-java/
133
+ ├── .idea/ # Configurações do IntelliJ (Versionado)
134
+ ├── meu-evento.iml # Módulo Java com libs-java
135
+ ├── out/ # Saída de compilação (Ignorado)
136
+ └── src/
137
+ └── br/com/sankhya/meuevento/
138
+ ├── business/ # Regras de negócio (Eventos, Botões)
139
+ └── domain/ # Modelos e Repositórios
140
+ ```
59
141
 
60
142
  ## 💡 Casos de Uso (Workflows)
61
143
 
62
- Aqui estão os cenários comuns onde o **Web Architect CLI** brilha:
144
+
145
+
146
+ Aqui estão os cenários comuns onde o **Web Architect CLI** brilha:
63
147
 
64
148
  ### Caso A: Início Rápido de Dashboards (HTML/JSP)
65
149
 
66
150
  > *Você precisa criar uma tela customizada para apresentar indicadores.*
67
151
 
68
- 1. Rode `web-arch` e nomeie como `dash-financeiro`.
152
+ 1. Rode `web-arch` e nomeie como `dash-financeiro`.
69
153
 
70
- 2. O projeto já nasce com `index.jsp` contendo as importações Sankhya (`<snk:load/>`) e `index.html` para testes locais.
154
+ 2. O projeto já nasce com `index.jsp` contendo as importações Sankhya (`<snk:load/>`) e `index.html` para testes locais.
71
155
 
72
- 3. Edite o `src/views/main.js` ou o HTML.
156
+ 3. Edite o `src/views/main.js` ou o HTML.
73
157
 
74
- 4. O arquivo `dash-financeiro.zip` é atualizado instantaneamente.
158
+ 4. O arquivo `dash-financeiro.zip` é atualizado instantaneamente.
75
159
 
76
160
  5. Faça o upload do ZIP no "Repositório de Arquivos" do sistema.
77
161
 
@@ -79,7 +163,7 @@ Aqui estão os cenários comuns onde o **Web Architect CLI** brilha:
79
163
 
80
164
  > *Você quer testar um layout moderno sem configurar Webpack ou PostCSS.*
81
165
 
82
- 1. Rode `web-arch`.
166
+ 1. Rode `web-arch`.
83
167
 
84
168
  2. Vá direto ao HTML e comece a usar classes utilitárias:
85
169
 
@@ -87,7 +171,7 @@ Aqui estão os cenários comuns onde o **Web Architect CLI** brilha:
87
171
 
88
172
  ```
89
173
  <div class="bg-blue-600 text-white p-4 rounded-lg shadow-md">
90
- Olá, Mundo!
174
+ Olá, Mundo!
91
175
  </div>
92
176
  ```
93
177
 
@@ -97,44 +181,16 @@ Aqui estão os cenários comuns onde o **Web Architect CLI** brilha:
97
181
 
98
182
  > *Vários desenvolvedores trabalhando em telas diferentes.*
99
183
 
100
- Ao usar o comando `web-arch`, todos os projetos seguem a mesma árvore:
184
+ Ao usar o comando `web-arch`, todos os projetos seguem a mesma árvore:
101
185
 
102
- - `src/controllers/` (Lógica de negócio)
186
+ - `src/controllers/` (Lógica de negócio)
103
187
 
104
- - `src/views/` (Manipulação de DOM)
188
+ - `src/views/` (Manipulação de DOM)
105
189
 
106
- - `src/services/` (Chamadas de API)
190
+ - `src/services/` (Chamadas de API)
107
191
 
108
192
  Isso facilita a manutenção cruzada: qualquer desenvolvedor sabe onde encontrar o código.
109
193
 
110
- ---
111
-
112
- ## 📂 Estrutura do Projeto Gerado
113
-
114
- Plaintext
115
-
116
- ```
117
- meu-projeto/
118
- ├── .git/
119
- ├── node_modules/
120
- ├── src/
121
- │ ├── assets/
122
- │ │ ├── css/ # Estilos globais
123
- │ │ ├── js/ # Bibliotecas (Tailwind, etc)
124
- │ ├── components/ # Fragmentos de UI
125
- │ ├── controllers/ # Lógica
126
- │ ├── services/ # Integrações
127
- │ ├── utils/ # Funções auxiliares
128
- │ └── main.js # Ponto de entrada JS
129
- ├── build.js # Script de automação (Zip automático)
130
- ├── index.html # Para rodar no navegador local
131
- ├── index.jsp # Para rodar no servidor
132
- ├── package.json
133
- └── README.md
134
- ```
135
-
136
- ---
137
-
138
194
  ## 🛠 Comandos do Projeto (Scripts)
139
195
 
140
196
  Dentro da pasta do projeto criado, você pode usar:
@@ -143,3 +199,5 @@ Dentro da pasta do projeto criado, você pode usar:
143
199
  | --------------- | --------------------------------------------------- |
144
200
  | `npm start` | Inicia o monitoramento. Altera arquivo -> Gera ZIP. |
145
201
  | `npm run build` | Gera o ZIP apenas uma vez e encerra. |
202
+
203
+
package/bin/index.js CHANGED
@@ -1,4 +1,12 @@
1
1
  #!/usr/bin/env node
2
+
3
+ if (process.platform === "win32") {
4
+ try {
5
+ require("child_process").execSync("chcp 65001", { stdio: 'ignore' });
6
+ } catch (e) {
7
+
8
+ }
9
+ }
2
10
  const fs = require('fs');
3
11
  const path = require('path');
4
12
  const { execSync } = require('child_process');
package/package.json CHANGED
@@ -1,11 +1,14 @@
1
1
  {
2
2
  "name": "web-architect-cli",
3
- "version": "1.0.5",
3
+ "version": "1.0.7",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "bin": {
7
7
  "web-arch": "bin/index.js"
8
8
  },
9
+ "dependencies": {
10
+ "archiver": "^7.0.0"
11
+ },
9
12
  "scripts": {
10
13
  "test": "echo \"Error: no test specified\" && exit 1"
11
14
  },