nfewizard-io 1.0.0 → 1.0.2
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 +313 -0
- package/dist/src/index.d.ts +0 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
package/README.md
ADDED
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
# NFeWizard-io 🪄
|
|
2
|
+
|
|
3
|
+
## 🛠️ Lib atualizada com NT 2025.002 v.130 - Reforma Tributária
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 📦 Pacote de Operações NFe
|
|
8
|
+
|
|
9
|
+
Este é o pacote principal do ecossistema **NFeWizard**, responsável pelas **operações de NFe (Nota Fiscal Eletrônica - Modelo 55)**.
|
|
10
|
+
|
|
11
|
+
A partir da versão 1.0.0, o NFeWizard foi modularizado em 7 pacotes independentes:
|
|
12
|
+
|
|
13
|
+
| Pacote | Descrição | Tamanho |
|
|
14
|
+
|--------|-----------|---------|
|
|
15
|
+
| `nfewizard-io` | ✅ **Operações NFe** (este pacote) | 511.2 KB |
|
|
16
|
+
| `@nfewizard/nfce` | Operações NFCe + Cancelamento | 997.7 KB |
|
|
17
|
+
| `@nfewizard/nfse` | Operações NFSe | 578.0 KB |
|
|
18
|
+
| `@nfewizard/danfe` | Geração de DANFE (NFe e NFCe) | 2.31 MB |
|
|
19
|
+
| `@nfewizard/cte` | Operações CTe | 801.9 KB |
|
|
20
|
+
| `@nfewizard/types` | Tipos TypeScript | 542.4 KB |
|
|
21
|
+
| `@nfewizard/shared` | Utilitários compartilhados | 4.03 MB |
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 🚀 Instalação
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
npm install nfewizard-io
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## 🎯 Sobre Este Pacote
|
|
34
|
+
|
|
35
|
+
Este pacote fornece métodos para operações de NFe, incluindo:
|
|
36
|
+
|
|
37
|
+
- ✅ **Autorização (Emissão de NFe)**: Submissão de Notas Fiscais Eletrônicas para autorização
|
|
38
|
+
- ✅ **Distribuição DFe**: Consulta e Download de documentos fiscais eletrônicos
|
|
39
|
+
- ✅ **Consulta de Protocolo**: Verificação da situação da NFe na SEFAZ
|
|
40
|
+
- ✅ **Inutilização**: Inutilização de números de NFe não utilizados
|
|
41
|
+
- ✅ **Consulta de Status**: Monitoramento do status dos serviços da SEFAZ
|
|
42
|
+
- ✅ **Recepção de Eventos**:
|
|
43
|
+
- Cancelamento de NFe
|
|
44
|
+
- Carta de Correção
|
|
45
|
+
- Ciência da Operação
|
|
46
|
+
- Confirmação da Operação
|
|
47
|
+
- Desconhecimento da Operação
|
|
48
|
+
- EPEC (Evento Prévio de Emissão em Contingência)
|
|
49
|
+
- Operação Não Realizada
|
|
50
|
+
|
|
51
|
+
> **⚠️ Importante**:
|
|
52
|
+
> - Para **DANFE** (geração de PDF), instale separadamente: `npm install @nfewizard/danfe`
|
|
53
|
+
> - Para **NFCe**, use o pacote: `npm install @nfewizard/nfce`
|
|
54
|
+
> - Para **CTe**, use o pacote: `npm install @nfewizard/cte`
|
|
55
|
+
> - Para **NFSe**, use o pacote: `npm install @nfewizard/nfse`
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 💡 Exemplo de Uso
|
|
60
|
+
|
|
61
|
+
```typescript
|
|
62
|
+
import NFeWizard from 'nfewizard-io';
|
|
63
|
+
|
|
64
|
+
// Instanciar
|
|
65
|
+
const nfeWizard = new NFeWizard();
|
|
66
|
+
|
|
67
|
+
// Inicializar
|
|
68
|
+
await nfeWizard.NFE_LoadEnvironment({
|
|
69
|
+
config: {
|
|
70
|
+
dfe: {
|
|
71
|
+
baixarXMLDistribuicao: true,
|
|
72
|
+
pathXMLDistribuicao: "tmp/DistribuicaoDFe",
|
|
73
|
+
armazenarXMLAutorizacao: true,
|
|
74
|
+
pathXMLAutorizacao: "tmp/Autorizacao",
|
|
75
|
+
armazenarXMLRetorno: true,
|
|
76
|
+
pathXMLRetorno: "tmp/RequestLogs",
|
|
77
|
+
armazenarXMLConsulta: true,
|
|
78
|
+
pathXMLConsulta: "tmp/RequestLogs",
|
|
79
|
+
armazenarXMLConsultaComTagSoap: false,
|
|
80
|
+
armazenarRetornoEmJSON: false,
|
|
81
|
+
pathRetornoEmJSON: "tmp/DistribuicaoDFe",
|
|
82
|
+
|
|
83
|
+
pathCertificado: "certificado.pfx",
|
|
84
|
+
senhaCertificado: "1234",
|
|
85
|
+
UF: "SP",
|
|
86
|
+
CPFCNPJ: "99999999999999",
|
|
87
|
+
},
|
|
88
|
+
nfe: {
|
|
89
|
+
ambiente: 2,
|
|
90
|
+
versaoDF: "4.00",
|
|
91
|
+
idCSC: 1,
|
|
92
|
+
tokenCSC: '99999999-9999-9999-9999-999999999999'
|
|
93
|
+
},
|
|
94
|
+
email: {
|
|
95
|
+
host: 'mail.provider.com.br',
|
|
96
|
+
port: 465,
|
|
97
|
+
secure: true,
|
|
98
|
+
auth: {
|
|
99
|
+
user: 'nfe.example@email.com.br',
|
|
100
|
+
pass: '123456'
|
|
101
|
+
},
|
|
102
|
+
emailParams: {
|
|
103
|
+
from: 'Company <noreply.company@email.com>',
|
|
104
|
+
to: 'customer.name@email.com.br',
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
lib: {
|
|
108
|
+
connection: {
|
|
109
|
+
timeout: 30000,
|
|
110
|
+
},
|
|
111
|
+
log: {
|
|
112
|
+
exibirLogNoConsole: true,
|
|
113
|
+
armazenarLogs: true,
|
|
114
|
+
pathLogs: 'tmp/Logs'
|
|
115
|
+
},
|
|
116
|
+
useOpenSSL: false,
|
|
117
|
+
useForSchemaValidation: 'validateSchemaJsBased',
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
// Exemplo de Distribuição DFe por Chave
|
|
123
|
+
const chaveNFe: DFePorChaveNFe = {
|
|
124
|
+
cUFAutor: 35,
|
|
125
|
+
CNPJ: '99999999999999',
|
|
126
|
+
consChNFe: {
|
|
127
|
+
chNFe: '00000000000000000000000000000000000000000000'
|
|
128
|
+
},
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
await nfeWizard.NFE_DistribuicaoDFePorChave(chaveNFe);
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## 🚧 Requisitos
|
|
137
|
+
|
|
138
|
+
### JDK (Opcional)
|
|
139
|
+
Para algumas funções, o JDK é necessário. Caso esteja rodando em ambientes sem suporte ao JDK (Vercel, etc.), configure:
|
|
140
|
+
|
|
141
|
+
```typescript
|
|
142
|
+
lib: {
|
|
143
|
+
useForSchemaValidation: 'validateSchemaJsBased'
|
|
144
|
+
}
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Exemplo CJS (CommonJS)
|
|
148
|
+
|
|
149
|
+
```typescript
|
|
150
|
+
const NFeWizard = require('nfewizard-io').default;
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### Serverless Framework
|
|
154
|
+
|
|
155
|
+
Marque como dependência externa no `.yml`:
|
|
156
|
+
|
|
157
|
+
```yml
|
|
158
|
+
build:
|
|
159
|
+
esbuild:
|
|
160
|
+
bundle: true
|
|
161
|
+
minify: true
|
|
162
|
+
sourcemap: true
|
|
163
|
+
target: 'node20'
|
|
164
|
+
format: 'cjs'
|
|
165
|
+
external:
|
|
166
|
+
- better-sqlite3
|
|
167
|
+
- mysql
|
|
168
|
+
- mysql2
|
|
169
|
+
- oracledb
|
|
170
|
+
- tedious
|
|
171
|
+
- sqlite3
|
|
172
|
+
- pg-query-stream
|
|
173
|
+
- nfewizard-io
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## 📖 Documentação
|
|
179
|
+
|
|
180
|
+
- **Documentação completa**: [NFeWizard-io - Docs](https://nfewizard-org.github.io/)
|
|
181
|
+
- **Guia de Migração v1.0.0**: [BREAKING_CHANGES.md](../../BREAKING_CHANGES.md)
|
|
182
|
+
- **Exemplos de Uso**: Pasta [examples/](../../examples/)
|
|
183
|
+
- [Exemplos de NFe](../../examples/NFe/)
|
|
184
|
+
- [Guia de Build](../../examples/BUILD.md)
|
|
185
|
+
- [Instalação Local para Testes](../../examples/INSTALACAO_LOCAL.md)
|
|
186
|
+
- **CTe**: [Documentação CTe](../../DOCS_CTE.md)
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## 🔄 Versão 1.0.0 - Modularização
|
|
191
|
+
|
|
192
|
+
### 🎉 Principais Mudanças
|
|
193
|
+
|
|
194
|
+
- ✅ **NFe**: API 100% compatível (sem breaking changes nas operações)
|
|
195
|
+
- ⚠️ **DANFE**: Removido deste pacote - use `@nfewizard/danfe`
|
|
196
|
+
- ⚠️ **NFCe**: Movido para `@nfewizard/nfce`
|
|
197
|
+
- ⚠️ **CTe**: Movido para `@nfewizard/cte`
|
|
198
|
+
- 🆕 **NFSe**: Novo pacote `@nfewizard/nfse` (em testes)
|
|
199
|
+
- 📉 **Redução de bundle**: Até 77% menor (4.37 MB vs 19.1 MB)
|
|
200
|
+
- ✅ **NT 2025.002 v.130**: Suporte completo à Reforma Tributária
|
|
201
|
+
|
|
202
|
+
📋 **[Consulte o Guia Completo de Migração](../../BREAKING_CHANGES.md)**
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## ⚙️ Configuração TypeScript
|
|
207
|
+
|
|
208
|
+
### tsconfig.json recomendado
|
|
209
|
+
|
|
210
|
+
```json
|
|
211
|
+
{
|
|
212
|
+
"compilerOptions": {
|
|
213
|
+
"target": "es2020",
|
|
214
|
+
"module": "nodenext",
|
|
215
|
+
"outDir": "dist",
|
|
216
|
+
"esModuleInterop": true,
|
|
217
|
+
"forceConsistentCasingInFileNames": true,
|
|
218
|
+
"strict": true,
|
|
219
|
+
"skipLibCheck": true,
|
|
220
|
+
"sourceMap": true,
|
|
221
|
+
"inlineSources": true,
|
|
222
|
+
"inlineSourceMap": false,
|
|
223
|
+
"declaration": true,
|
|
224
|
+
"declarationMap": true,
|
|
225
|
+
"moduleResolution": "nodenext"
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
### Debug no VS Code (launch.json)
|
|
231
|
+
|
|
232
|
+
```json
|
|
233
|
+
{
|
|
234
|
+
"version": "0.2.0",
|
|
235
|
+
"configurations": [
|
|
236
|
+
{
|
|
237
|
+
"type": "node",
|
|
238
|
+
"request": "launch",
|
|
239
|
+
"name": "Debug NFe Wizard",
|
|
240
|
+
"skipFiles": ["<node_internals>/**"],
|
|
241
|
+
"program": "${workspaceFolder}/src/testes.ts",
|
|
242
|
+
"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/tsx",
|
|
243
|
+
"runtimeArgs": [],
|
|
244
|
+
"console": "integratedTerminal",
|
|
245
|
+
"env": {
|
|
246
|
+
"NODE_ENV": "development"
|
|
247
|
+
},
|
|
248
|
+
"sourceMaps": true,
|
|
249
|
+
"restart": true,
|
|
250
|
+
"protocol": "inspector",
|
|
251
|
+
"outFiles": ["${workspaceFolder}/**/*.js"]
|
|
252
|
+
}
|
|
253
|
+
]
|
|
254
|
+
}
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
## 📝 Observações
|
|
260
|
+
|
|
261
|
+
- **Certificado**: Implementado apenas em certificados A1
|
|
262
|
+
- **Node.js**: Testado com versões 16 ou superiores
|
|
263
|
+
- **UF**: Testado principalmente para São Paulo - reporte issues para outros estados
|
|
264
|
+
|
|
265
|
+
---
|
|
266
|
+
|
|
267
|
+
## 🐛 Reportando Issues
|
|
268
|
+
|
|
269
|
+
Ao abrir uma issue, inclua:
|
|
270
|
+
|
|
271
|
+
```markdown
|
|
272
|
+
## Parametrização
|
|
273
|
+
- UF: SP
|
|
274
|
+
- Certificado: A1
|
|
275
|
+
- Método: NFE_ConsultaStatusServico
|
|
276
|
+
- Status: ✅ Funcionando / ❌ Com erro
|
|
277
|
+
|
|
278
|
+
## Logs Relevantes
|
|
279
|
+
Inclua logs de: app.jsonl, error.jsonl, http.jsonl
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
```jsonl
|
|
283
|
+
{"context":"NFE_ConsultaProtocolo","error":{"message":"Rejeição: Consumo Indevido",...}
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
## 🤝 Contribua
|
|
289
|
+
|
|
290
|
+
- **Issues**: [GitHub Issues](https://github.com/Maurelima/nfewizard-io/issues)
|
|
291
|
+
- **Doações**: [GitHub Sponsors](https://github.com/sponsors/Maurelima)
|
|
292
|
+
- **Pix**: `944ce2f2-e90f-400a-a388-bb1fe6719e02` (Marco Lima)
|
|
293
|
+
|
|
294
|
+
### Outras formas de contribuir
|
|
295
|
+
|
|
296
|
+
- ⭐ Dar uma estrela no [GitHub](https://github.com/Maurelima/nfewizard-io)
|
|
297
|
+
- 🐛 Reportar bugs e sugerir melhorias
|
|
298
|
+
- 📝 Contribuir com código e documentação
|
|
299
|
+
- 📢 Compartilhar o projeto
|
|
300
|
+
|
|
301
|
+
---
|
|
302
|
+
|
|
303
|
+
## 👨💻 Criador
|
|
304
|
+
|
|
305
|
+
| [<img src="https://avatars.githubusercontent.com/u/59918400?s=400&u=3554ebcf0f75263637516867945ebd371e68da71&v=4" width="75px;"/>](https://github.com/Maurelima) |
|
|
306
|
+
| :---: |
|
|
307
|
+
| [Marco Lima](https://github.com/Maurelima) |
|
|
308
|
+
|
|
309
|
+
---
|
|
310
|
+
|
|
311
|
+
## 📄 Licença
|
|
312
|
+
|
|
313
|
+
Projetado com ♥ por [Marco Lima](https://github.com/Maurelima). Licenciado sob a [GPL-3.0](https://www.gnu.org/licenses/gpl-3.0.pt-br.html).
|
package/dist/src/index.d.ts
CHANGED
|
@@ -34,5 +34,3 @@ export { NFEEpec } from './nfe/operations/NFERecepcaoEvento/NFEEpec.js';
|
|
|
34
34
|
export { NFeWizard } from './NFeWizard.js';
|
|
35
35
|
export { default } from './NFeWizard.js';
|
|
36
36
|
export { mountICMS, mountPIS, mountCOFINS } from '@nfewizard/shared';
|
|
37
|
-
export type * from '@nfewizard/types/nfe';
|
|
38
|
-
export type * from '@nfewizard/types/shared';
|