@useinvio/nfse-sdk 2.2.0 → 3.0.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.
- package/JSON_MAPPING.md +30 -17
- package/README.md +33 -14
- package/dist/certificateValidation.d.ts +3 -1
- package/dist/certificateValidation.js +7 -2
- package/dist/certificateValidation.js.map +1 -1
- package/dist/client.d.ts +4 -1
- package/dist/client.js +3 -3
- package/dist/client.js.map +1 -1
- package/dist/decimal.d.ts +7 -0
- package/dist/decimal.js +24 -0
- package/dist/decimal.js.map +1 -0
- package/dist/dpsJson.js +15 -45
- package/dist/dpsJson.js.map +1 -1
- package/dist/dpsNormalization.d.ts +10 -0
- package/dist/dpsNormalization.js +85 -0
- package/dist/dpsNormalization.js.map +1 -0
- package/dist/emissaoNota.js +25 -7
- package/dist/emissaoNota.js.map +1 -1
- package/dist/fiscalValidation.d.ts +1 -0
- package/dist/fiscalValidation.js +108 -45
- package/dist/fiscalValidation.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/xmlInspection.d.ts +6 -0
- package/dist/xmlInspection.js +61 -0
- package/dist/xmlInspection.js.map +1 -0
- package/docs/CORRECOES_EMISSAO.md +55 -0
- package/docs/FISCAL_MATRIX.md +11 -0
- package/docs/REGRAS_NEGOCIO_EMISSAO.md +317 -0
- package/examples/README.md +3 -0
- package/examples/client-resource.ts +5 -39
- package/examples/emit-homologation.ts +3 -38
- package/examples/generate-dps-xml.ts +3 -40
- package/examples/handle-errors.ts +3 -2
- package/examples/payloads.ts +36 -0
- package/llms.txt +7 -2
- package/package.json +1 -1
package/JSON_MAPPING.md
CHANGED
|
@@ -33,8 +33,9 @@ type DpsJsonRequest = {
|
|
|
33
33
|
|
|
34
34
|
| Campo | Obrigatorio | Tipo | Descricao |
|
|
35
35
|
| --- | --- | --- | --- |
|
|
36
|
-
| `cnpj` |
|
|
37
|
-
| `
|
|
36
|
+
| `cnpj` | Alternativa a `cpf` | `string` | CNPJ com exatamente 14 digitos, sem pontuacao. Informe exatamente um identificador. |
|
|
37
|
+
| `cpf` | Alternativa a `cnpj` | `string` | CPF com exatamente 11 digitos, sem pontuacao. |
|
|
38
|
+
| `tpInsc` | Nao | `'1' \| '2' \| string` | Legado ignorado. O SDK deriva o tipo do documento: `1` = CPF, `2` = CNPJ. |
|
|
38
39
|
| `cLocEmi` | Sim | `string` | Codigo IBGE do municipio de emissao. |
|
|
39
40
|
| `serie` | Sim | `string` | Serie padrao da DPS. Pode ser sobrescrita por `emissao.serie`. |
|
|
40
41
|
| `opSimpNac` | Sim | `string` | Opcao pelo Simples Nacional, serializada em `prest/regTrib/opSimpNac`. |
|
|
@@ -58,7 +59,7 @@ type DpsJsonRequest = {
|
|
|
58
59
|
| `serie` | Nao | `string` | Serie desta DPS. Quando informado, sobrescreve `prestador.serie` apenas nesta emissao. |
|
|
59
60
|
| `dhEmi` | Nao | `string` | Data e hora da emissao em ISO com offset, por exemplo `2026-06-15T10:30:00-03:00`. Quando ausente, usa a data/hora atual. |
|
|
60
61
|
| `dCompet` | Nao | `string` | Data de competencia no formato `YYYY-MM-DD`. Quando ausente, usa a data de `dhEmi`. |
|
|
61
|
-
| `valores` | Condicional | `Valores` | Valores do servico
|
|
62
|
+
| `valores` | Condicional | `Valores` | Valores do servico. Descontos e deducoes ainda nao sao suportados. Para calcular `vServ`, informe `valores.vServ` ou `valores.vServMoeda` + `valores.cotacao`. |
|
|
62
63
|
| `vServ` | Condicional | `string` | Atalho legado para o valor do servico. Usado quando `valores.vServ` nao foi informado. |
|
|
63
64
|
| `vServMoeda` | Condicional | `string` | Atalho legado para valor em moeda estrangeira. Usado com `cotacao` quando `vServ` nao foi informado. |
|
|
64
65
|
| `cotacao` | Condicional | `number` | Atalho legado para cotacao. Usado com `vServMoeda` quando `vServ` nao foi informado. |
|
|
@@ -88,7 +89,11 @@ type DpsJsonRequest = {
|
|
|
88
89
|
Regra condicional: para gerar a DPS, o SDK precisa obter `vServ`. Informe
|
|
89
90
|
`valores.vServ` ou informe o par `valores.vServMoeda` + `valores.cotacao`.
|
|
90
91
|
Os atalhos `emissao.vServ`, `emissao.vServMoeda` e `emissao.cotacao` tambem sao
|
|
91
|
-
aceitos
|
|
92
|
+
aceitos. A resolucao e por campo: `valores` prevalece sobre o atalho correspondente, permitindo entradas mistas. A mesma resolucao e usada na validacao e no XML.
|
|
93
|
+
|
|
94
|
+
No modelo atual, nacional exige reais e proibe moeda/cotacao. Exportacao exige comercio exterior, valor estrangeiro e cotacao, mesmo quando ha `vServ` explicito. Informar somente o valor no bloco `comercioExterior` nao satisfaz essa exigencia.
|
|
95
|
+
|
|
96
|
+
`vServ` explicito prevalece sobre a conversao. O valor estrangeiro do bloco `comercioExterior` prevalece na tag `comExt/vServMoeda`. Divergencias geram `CURRENCY_BRL_MISMATCH` e `CURRENCY_FOREIGN_MISMATCH` em `warnings`, comparadas em centavos, sem bloquear a emissao. A multiplicacao preserva a precisao original; a serializacao arredonda metade para cima em duas casas, inclusive `comExt.vServMoeda`. Valores de servico que arredondam para zero ou excedem 15 digitos inteiros sao rejeitados.
|
|
92
97
|
|
|
93
98
|
## `emissao.servico`
|
|
94
99
|
|
|
@@ -107,12 +112,12 @@ aceitos, mas o formato com `valores` e preferencial.
|
|
|
107
112
|
| `NIF` | Nao | `string` | Numero de identificacao fiscal estrangeiro. |
|
|
108
113
|
| `cNaoNIF` | Nao | `string` | Motivo/codigo de nao informacao do NIF. |
|
|
109
114
|
| `xNome` | Sim, se `tomador` existir | `string` | Nome ou razao social do tomador. |
|
|
110
|
-
| `end` |
|
|
115
|
+
| `end` | Sim, se `tomador` existir | `Endereco` | Endereco. Veja `Endereco` abaixo. |
|
|
111
116
|
| `fone` | Nao | `string` | Telefone. |
|
|
112
117
|
| `email` | Nao | `string` | Email. |
|
|
113
118
|
|
|
114
119
|
Quando `tomador` for informado, use exatamente um identificador entre `CNPJ`,
|
|
115
|
-
`CPF`, `NIF` e `cNaoNIF`.
|
|
120
|
+
`CPF`, `NIF` e `cNaoNIF`. Nacional exige CPF/CNPJ e `endNac`; exterior exige NIF ou `cNaoNIF` (`1`/`2`) e `endExt`. Omitir todo o tomador continua permitido localmente.
|
|
116
121
|
|
|
117
122
|
### `Endereco`
|
|
118
123
|
|
|
@@ -176,7 +181,7 @@ Regras adicionais:
|
|
|
176
181
|
| `pAliqCofins` | Nao | `string` | Aliquota de COFINS. Serializada com duas casas decimais. |
|
|
177
182
|
| `vPis` | Nao | `string` | Valor de PIS. Serializado com duas casas decimais. |
|
|
178
183
|
| `vCofins` | Nao | `string` | Valor de COFINS. Serializado com duas casas decimais. |
|
|
179
|
-
| `tpRetPisCofins` | Nao | `string` | Tipo de retencao de PIS/COFINS
|
|
184
|
+
| `tpRetPisCofins` | Nao | `string` | Tipo de retencao de PIS/COFINS, codigo de `0` a `9`. |
|
|
180
185
|
|
|
181
186
|
## `tribNac`
|
|
182
187
|
|
|
@@ -203,8 +208,8 @@ ainda nao implementa esse bloco.
|
|
|
203
208
|
|
|
204
209
|
| Campo | Obrigatorio | Tipo | Descricao |
|
|
205
210
|
| --- | --- | --- | --- |
|
|
206
|
-
| `cObra` |
|
|
207
|
-
| `inscImobFisc` | Nao | `string` | Inscricao imobiliaria fiscal
|
|
211
|
+
| `cObra` | Sim, se `obra` existir | `string` | Codigo da obra, 1 a 30 caracteres. |
|
|
212
|
+
| `inscImobFisc` | Nao | `string` | Inscricao imobiliaria fiscal, 1 a 30 caracteres; serializada antes de `cObra`. |
|
|
208
213
|
| `cCM` | Nao suportado | `string` | Campo legado bloqueado por validacao; nao existe como filho de `obra` no XSD v1.01. |
|
|
209
214
|
|
|
210
215
|
## `evento`
|
|
@@ -216,8 +221,7 @@ ainda nao implementa esse bloco.
|
|
|
216
221
|
|
|
217
222
|
## `totTrib`
|
|
218
223
|
|
|
219
|
-
`totTrib` e um `xs:choice` no XSD:
|
|
220
|
-
abaixo. A SDK rejeita zero ou mais de um grupo preenchido.
|
|
224
|
+
`totTrib` e um `xs:choice` no XSD. O validador JSON atual restringe a modalidade por regime: nao optante (`1`) exige os tres `pTotTribFed/Est/Mun`; MEI (`2`) exige somente `indTotTrib="0"`; ME/EPP (`3`) exige somente `pTotTribSN`. Misturas e grupos incompletos sao rejeitados.
|
|
221
225
|
|
|
222
226
|
| Campo | Obrigatorio | Tipo | Descricao |
|
|
223
227
|
| --- | --- | --- | --- |
|
|
@@ -227,19 +231,28 @@ abaixo. A SDK rejeita zero ou mais de um grupo preenchido.
|
|
|
227
231
|
| `pTotTribFed` | Condicional | `string` | Percentual aproximado de tributos federais. Serializado com duas casas decimais. |
|
|
228
232
|
| `pTotTribEst` | Condicional | `string` | Percentual aproximado de tributos estaduais. Serializado com duas casas decimais. |
|
|
229
233
|
| `pTotTribMun` | Condicional | `string` | Percentual aproximado de tributos municipais. Serializado com duas casas decimais. |
|
|
230
|
-
| `pTotTribSN` | Condicional | `string` | Percentual aproximado de tributos no Simples Nacional.
|
|
231
|
-
| `indTotTrib` | Condicional | `string` | Indicador oficial para nao informar valor estimado. Use `0`
|
|
234
|
+
| `pTotTribSN` | Condicional | `string` | Percentual aproximado de tributos no Simples Nacional. Use somente quando `prestador.opSimpNac = "3"`. |
|
|
235
|
+
| `indTotTrib` | Condicional | `string` | Indicador oficial para nao informar valor estimado. Use `0` somente para MEI no modelo JSON atual. |
|
|
232
236
|
|
|
233
|
-
|
|
234
|
-
grupo `pTotTrib*` (Fed+Est+Mun), `pTotTribSN` ou `indTotTrib=0`. Ao escolher o
|
|
235
|
-
grupo `vTotTrib*` ou `pTotTrib*`, os tres campos (Fed/Est/Mun) sao obrigatorios.
|
|
237
|
+
Os campos `vTotTrib*` permanecem tipados por compatibilidade, mas nenhum dos regimes aceitos permite essa modalidade no JSON atual.
|
|
236
238
|
|
|
237
239
|
## Regras de formatacao
|
|
238
240
|
|
|
239
241
|
- Valores monetarios sao serializados com duas casas decimais.
|
|
240
242
|
- Aliquotas (`pAliq`, `pAliqPis`, `pAliqCofins`) sao serializadas com duas casas decimais.
|
|
241
243
|
- Percentuais de carga tributaria em `totTrib` sao serializados com duas casas decimais.
|
|
242
|
-
- Campos
|
|
244
|
+
- Campos opcionais ausentes ou `undefined` sao omitidos; `null`, strings vazias e tipos incorretos sao rejeitados antecipadamente.
|
|
243
245
|
- Campos obrigatorios ausentes geram erro antes da DPS ser retornada.
|
|
244
246
|
- `comercioExterior` tem prioridade sobre `comExt` quando os dois forem informados.
|
|
245
247
|
- O XML gerado nos testes e validado contra `schemas/nfse/v1.01/Schemas/1.01/DPS_v1.01.xsd`.
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
## Relatorio e limites estruturais
|
|
251
|
+
|
|
252
|
+
`validateDpsJsonRequest` retorna `issues` com erros e `warnings` com avisos; somente erros tornam `valid=false`. `normalizedPayload` e uma copia independente com os valores e o alias de comercio exterior resolvidos, mantendo os campos legados. Estruturas invalidas retornam `INVALID_STRUCTURE`, sem acessos que lancem `TypeError`.
|
|
253
|
+
|
|
254
|
+
`dhEmi` exige data de calendario valida entre 2000 e 2099, segundos sem fracao e offset de horas inteiras de -11:00 a +12:00; `Z` nao e aceito pelo leiaute local. `dCompet` exige data valida no mesmo intervalo de anos. Nao se impoe relacao fiscal entre as datas.
|
|
255
|
+
|
|
256
|
+
Limites apos arredondamento: valores monetarios, 15 digitos inteiros; ISS, 1; aliquotas PIS/COFINS e `pTotTribSN`, 2; `pTotTribFed/Est/Mun`, 3. Esses limites sao estruturais, nao autorizacao fiscal de aliquotas. Retencoes federais podem ser zero, mas nao negativas.
|
|
257
|
+
|
|
258
|
+
Dominios de comercio exterior: `mdPrestacao` 0–4; `vincPrest` 0–6 ou 9; `tpMoeda` tres digitos; `mecAFComexP` 00–08; `mecAFComexT` 00–26; `movTempBens` 0–3; `mdic` 0–1. Nao se consultam catalogos externos. Os dois aliases de comercio exterior nao sao combinados.
|
package/README.md
CHANGED
|
@@ -71,7 +71,6 @@ const nota = {
|
|
|
71
71
|
ambiente: 'restrita' as const,
|
|
72
72
|
prestador: {
|
|
73
73
|
cnpj: '12345678000195',
|
|
74
|
-
tpInsc: '2',
|
|
75
74
|
cLocEmi: '4106902',
|
|
76
75
|
serie: '1601',
|
|
77
76
|
opSimpNac: '1',
|
|
@@ -89,8 +88,7 @@ const nota = {
|
|
|
89
88
|
dCompet: '2026-06-01',
|
|
90
89
|
valores: { vServ: '1500.00' },
|
|
91
90
|
tributacaoMunicipal: {
|
|
92
|
-
tribISSQN: '
|
|
93
|
-
cPaisResult: 'BR',
|
|
91
|
+
tribISSQN: '1',
|
|
94
92
|
tpRetISSQN: '1',
|
|
95
93
|
},
|
|
96
94
|
tributacaoFederal: {
|
|
@@ -163,7 +161,6 @@ const client = new NfseClient({
|
|
|
163
161
|
defaults: {
|
|
164
162
|
prestador: {
|
|
165
163
|
cnpj: '12345678000195',
|
|
166
|
-
tpInsc: '2',
|
|
167
164
|
cLocEmi: '4106902',
|
|
168
165
|
serie: '1601',
|
|
169
166
|
opSimpNac: '1',
|
|
@@ -184,9 +181,13 @@ const invoice = await client.invoices.create({
|
|
|
184
181
|
tomador: {
|
|
185
182
|
CPF: '00000000000',
|
|
186
183
|
xNome: 'Cliente Exemplo',
|
|
184
|
+
end: {
|
|
185
|
+
endNac: { cMun: '4106902', CEP: '80010000' },
|
|
186
|
+
xLgr: 'Rua Exemplo', nro: '100', xBairro: 'Centro',
|
|
187
|
+
},
|
|
187
188
|
},
|
|
188
189
|
tributacaoMunicipal: {
|
|
189
|
-
tribISSQN: '
|
|
190
|
+
tribISSQN: '1',
|
|
190
191
|
tpRetISSQN: '1',
|
|
191
192
|
},
|
|
192
193
|
tributacaoFederal: {
|
|
@@ -219,12 +220,33 @@ const dps = client.invoices.buildDpsJson({
|
|
|
219
220
|
emissao: {
|
|
220
221
|
nDPS: '2',
|
|
221
222
|
valores: { vServ: '2500.00' },
|
|
223
|
+
tributacaoMunicipal: { tribISSQN: '1', tpRetISSQN: '1' },
|
|
224
|
+
totTrib: { pTotTribFed: '0', pTotTribEst: '0', pTotTribMun: '5' },
|
|
222
225
|
},
|
|
223
226
|
});
|
|
224
227
|
```
|
|
225
228
|
|
|
226
229
|
---
|
|
227
230
|
|
|
231
|
+
|
|
232
|
+
### Validacao e compatibilidade
|
|
233
|
+
|
|
234
|
+
`validateDpsJsonRequest(entrada)` retorna `valid`, `issues` (erros), `warnings` (avisos) e uma copia `normalizedPayload`. Campos opcionais devem ser omitidos ou `undefined`; strings vazias, `null` e tipos incorretos sao rejeitados. Consulte [o mapeamento JSON](JSON_MAPPING.md) para os limites de datas e valores.
|
|
235
|
+
|
|
236
|
+
Divergencias entre `vServ` e a conversao cambial geram avisos, preservando o valor explicito. O mesmo vale para o valor estrangeiro do bloco de comercio exterior. Todos os valores monetarios sao arredondados para duas casas, inclusive `comExt.vServMoeda`; valores de servico que arredondam para zero sao rejeitados. Leia `warnings` antes da emissao quando quiser apresentar esses avisos ao usuario.
|
|
237
|
+
|
|
238
|
+
`prepararNota` verifica a vigencia do certificado antes de assinar; `transmitirNotaPreparada` verifica novamente antes do envio. `assertCertificateValidity(pfx, now?)` expoe essa verificacao. A checagem de titularidade continua explicita via `assertCertificateForProvider(pfx, documento, now?)`; o SDK nao resolve representacao fiscal.
|
|
239
|
+
|
|
240
|
+
O ambiente para JSON segue `options.ambiente` → `request.ambiente` → `restrita`, tanto no XML quanto no destino. XML externo usa `tpAmb` e rejeita uma opcao divergente. Notas preparadas tambem precisam ter o mesmo ambiente no XML assinado e no envio.
|
|
241
|
+
|
|
242
|
+
`client.invoices.get(chaveAcesso, { ambiente: 'producao' })` permite consultar uma emissao feita com sobrescrita de ambiente. Sem opcao, usa `defaults.ambiente` ou o ambiente do construtor. O cliente nao memoriza o ambiente da ultima emissao.
|
|
243
|
+
|
|
244
|
+
HTTP 2xx sem XML NFS-e bem formado e chave de 50 digitos consistente gera `EmitirNotaError` com codigo `INVALID_AUTHORIZATION_RESPONSE`, preservando corpo, status e DPS. Isso nao confirma rejeicao fiscal: concilie a emissao antes de reenviar. Nao ha retentativa automatica nem verificacao da assinatura da NFS-e recebida.
|
|
245
|
+
|
|
246
|
+
Veja [as correcoes e mudancas de comportamento](docs/CORRECOES_EMISSAO.md) e os [payloads nacional e exterior testados](examples/payloads.ts). Os exemplos declaram cenarios ilustrativos; a aplicacao escolhe o enquadramento aplicavel.
|
|
247
|
+
|
|
248
|
+
> **Migracao para 3.0.0:** esta versao tem breaking changes de validacao e resposta de autorizacao. Leia o guia curto em [CORRECOES_EMISSAO.md](docs/CORRECOES_EMISSAO.md) antes de atualizar.
|
|
249
|
+
|
|
228
250
|
## Certificado A1
|
|
229
251
|
|
|
230
252
|
### A partir de arquivo
|
|
@@ -262,11 +284,7 @@ console.log(resultado.chaveAcesso);
|
|
|
262
284
|
console.log(resultado.nfseXml);
|
|
263
285
|
```
|
|
264
286
|
|
|
265
|
-
> O XML precisa ter
|
|
266
|
-
|
|
267
|
-
```ts
|
|
268
|
-
await emitirNfse(dpsXml, pfx, { dpsId: 'DPS0001', ambiente: 'restrita' });
|
|
269
|
-
```
|
|
287
|
+
> O XML precisa ter `Id` valido em `<infDPS>` e `tpAmb` consistente com o destino. `options.dpsId` apenas seleciona a referencia de assinatura; nao corrige um XML incompleto nem dispensa o XSD.
|
|
270
288
|
|
|
271
289
|
---
|
|
272
290
|
|
|
@@ -284,7 +302,6 @@ const nota: DpsJsonRequest = {
|
|
|
284
302
|
ambiente: 'restrita',
|
|
285
303
|
prestador: {
|
|
286
304
|
cnpj: '12345678000195',
|
|
287
|
-
tpInsc: '2',
|
|
288
305
|
cLocEmi: '4106902',
|
|
289
306
|
serie: '1601',
|
|
290
307
|
opSimpNac: '1',
|
|
@@ -302,8 +319,7 @@ const nota: DpsJsonRequest = {
|
|
|
302
319
|
dCompet: '2026-06-01',
|
|
303
320
|
valores: { vServ: '1500.00' },
|
|
304
321
|
tributacaoMunicipal: {
|
|
305
|
-
tribISSQN: '
|
|
306
|
-
cPaisResult: 'BR',
|
|
322
|
+
tribISSQN: '1',
|
|
307
323
|
tpRetISSQN: '1',
|
|
308
324
|
},
|
|
309
325
|
tributacaoFederal: {
|
|
@@ -465,6 +481,8 @@ Leia o guia completo em [docs/METRICS.md](./docs/METRICS.md).
|
|
|
465
481
|
|
|
466
482
|
| Função | Descrição |
|
|
467
483
|
|---|---|
|
|
484
|
+
| `assertCertificateValidity(pfx, now?)` | Verifica vigencia do certificado; aplicada na preparacao e no envio. |
|
|
485
|
+
| `assertCertificateForProvider(pfx, documento, now?)` | Verifica explicitamente vigencia e correspondencia do titular. |
|
|
468
486
|
| `loadPfx(path, password)` | Carrega certificado A1 a partir de arquivo. |
|
|
469
487
|
| `loadPfxFromBuffer(buffer, password)` | Carrega certificado A1 a partir de buffer. |
|
|
470
488
|
|
|
@@ -474,7 +492,7 @@ Leia o guia completo em [docs/METRICS.md](./docs/METRICS.md).
|
|
|
474
492
|
|---|---|
|
|
475
493
|
| `signDps(xml, dpsId, pfx)` | Assina XML de DPS com XMLDSIG. |
|
|
476
494
|
| `signEnveloped(xml, id, ref, pfx)` | Assina XML genérico (eventos). |
|
|
477
|
-
| `verifyDps(xml)` | Verifica assinatura de uma DPS. |
|
|
495
|
+
| `verifyDps(xml, certPem)` | Verifica assinatura de uma DPS. |
|
|
478
496
|
| `gzipBase64(xml)` | Compacta XML em GZip e codifica em Base64. |
|
|
479
497
|
| `gunzipBase64(b64)` | Descompacta resposta GZip/Base64. |
|
|
480
498
|
| `extrairErros(body)` | Normaliza erros oficiais de uma resposta da SEFIN. |
|
|
@@ -486,6 +504,7 @@ Leia o guia completo em [docs/METRICS.md](./docs/METRICS.md).
|
|
|
486
504
|
import type {
|
|
487
505
|
Ambiente,
|
|
488
506
|
CreateInvoiceInput,
|
|
507
|
+
GetInvoiceOptions,
|
|
489
508
|
DpsJsonInput,
|
|
490
509
|
DpsJsonRequest,
|
|
491
510
|
EmitirNotaOptions,
|
|
@@ -3,5 +3,7 @@ export declare class CertificateValidationError extends Error {
|
|
|
3
3
|
readonly code: 'CERTIFICATE_NOT_YET_VALID' | 'CERTIFICATE_EXPIRED' | 'CERTIFICATE_HOLDER_MISMATCH';
|
|
4
4
|
constructor(code: 'CERTIFICATE_NOT_YET_VALID' | 'CERTIFICATE_EXPIRED' | 'CERTIFICATE_HOLDER_MISMATCH', message: string);
|
|
5
5
|
}
|
|
6
|
-
/**
|
|
6
|
+
/** Validity is checked at signing time and again immediately before transmission. */
|
|
7
|
+
export declare function assertCertificateValidity(pfx: PfxMaterial, now?: Date): void;
|
|
8
|
+
/** Explicit holder check; does not resolve fiscal representation/authorization. */
|
|
7
9
|
export declare function assertCertificateForProvider(pfx: PfxMaterial, providerTaxId: string, now?: Date): void;
|
|
@@ -7,8 +7,8 @@ export class CertificateValidationError extends Error {
|
|
|
7
7
|
this.name = 'CertificateValidationError';
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
|
-
/**
|
|
11
|
-
export function
|
|
10
|
+
/** Validity is checked at signing time and again immediately before transmission. */
|
|
11
|
+
export function assertCertificateValidity(pfx, now = new Date()) {
|
|
12
12
|
const certificate = forge.pki.certificateFromPem(pfx.certPem);
|
|
13
13
|
if (now < certificate.validity.notBefore) {
|
|
14
14
|
throw new CertificateValidationError('CERTIFICATE_NOT_YET_VALID', 'O certificado digital ainda nao esta vigente.');
|
|
@@ -16,6 +16,11 @@ export function assertCertificateForProvider(pfx, providerTaxId, now = new Date(
|
|
|
16
16
|
if (now >= certificate.validity.notAfter) {
|
|
17
17
|
throw new CertificateValidationError('CERTIFICATE_EXPIRED', 'O certificado digital esta expirado.');
|
|
18
18
|
}
|
|
19
|
+
}
|
|
20
|
+
/** Explicit holder check; does not resolve fiscal representation/authorization. */
|
|
21
|
+
export function assertCertificateForProvider(pfx, providerTaxId, now = new Date()) {
|
|
22
|
+
assertCertificateValidity(pfx, now);
|
|
23
|
+
const certificate = forge.pki.certificateFromPem(pfx.certPem);
|
|
19
24
|
const expected = providerTaxId.replace(/\D/g, '');
|
|
20
25
|
const subjectText = certificate.subject.attributes.map((attribute) => String(attribute.value)).join(' ');
|
|
21
26
|
const derText = forge.asn1.toDer(forge.pki.certificateToAsn1(certificate)).getBytes();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"certificateValidation.js","sourceRoot":"","sources":["../certificateValidation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAG/B,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IAEjC;IADlB,YACkB,IAAyF,EACzG,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,SAAI,GAAJ,IAAI,CAAqF;QAIzG,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF;AAED,
|
|
1
|
+
{"version":3,"file":"certificateValidation.js","sourceRoot":"","sources":["../certificateValidation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAG/B,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IAEjC;IADlB,YACkB,IAAyF,EACzG,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,SAAI,GAAJ,IAAI,CAAqF;QAIzG,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF;AAED,qFAAqF;AACrF,MAAM,UAAU,yBAAyB,CAAC,GAAgB,EAAE,GAAG,GAAG,IAAI,IAAI,EAAE;IAC1E,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9D,IAAI,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QACzC,MAAM,IAAI,0BAA0B,CAAC,2BAA2B,EAAE,+CAA+C,CAAC,CAAC;IACrH,CAAC;IACD,IAAI,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACzC,MAAM,IAAI,0BAA0B,CAAC,qBAAqB,EAAE,sCAAsC,CAAC,CAAC;IACtG,CAAC;AACH,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,4BAA4B,CAAC,GAAgB,EAAE,aAAqB,EAAE,GAAG,GAAG,IAAI,IAAI,EAAE;IACpG,yBAAyB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACpC,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAClD,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzG,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACtF,MAAM,MAAM,GAAa,GAAG,WAAW,IAAI,OAAO,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;IACtF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,0BAA0B,CAClC,6BAA6B,EAC7B,2EAA2E,CAC5E,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/dist/client.d.ts
CHANGED
|
@@ -17,6 +17,9 @@ export interface NfseClientDpsDefaults {
|
|
|
17
17
|
emissao?: Partial<DpsJsonInput>;
|
|
18
18
|
}
|
|
19
19
|
export type CreateInvoiceInput = NfseClientDpsDefaults;
|
|
20
|
+
export interface GetInvoiceOptions {
|
|
21
|
+
ambiente?: Ambiente;
|
|
22
|
+
}
|
|
20
23
|
export interface NfseClientOptions {
|
|
21
24
|
environment?: NfseEnvironment;
|
|
22
25
|
certificate: NfseCertificateInput | PfxMaterial;
|
|
@@ -25,7 +28,7 @@ export interface NfseClientOptions {
|
|
|
25
28
|
export interface InvoiceResource {
|
|
26
29
|
create(input: CreateInvoiceInput): Promise<ResultadoEmissaoNota>;
|
|
27
30
|
buildDpsJson(input: CreateInvoiceInput): DpsJsonRequest;
|
|
28
|
-
get(chaveAcesso: string): Promise<SefinResposta>;
|
|
31
|
+
get(chaveAcesso: string, options?: GetInvoiceOptions): Promise<SefinResposta>;
|
|
29
32
|
}
|
|
30
33
|
export declare class NfseClient {
|
|
31
34
|
readonly invoices: InvoiceResource;
|
package/dist/client.js
CHANGED
|
@@ -43,7 +43,7 @@ export class NfseClient {
|
|
|
43
43
|
this.invoices = {
|
|
44
44
|
create: (input) => this.createInvoice(input),
|
|
45
45
|
buildDpsJson: (input) => this.buildInvoiceDpsJson(input),
|
|
46
|
-
get: (chaveAcesso) => this.getInvoice(chaveAcesso),
|
|
46
|
+
get: (chaveAcesso, options) => this.getInvoice(chaveAcesso, options),
|
|
47
47
|
};
|
|
48
48
|
}
|
|
49
49
|
buildInvoiceDpsJson(input) {
|
|
@@ -70,8 +70,8 @@ export class NfseClient {
|
|
|
70
70
|
const dpsJson = this.buildInvoiceDpsJson(input);
|
|
71
71
|
return emitirNfse(dpsJson, this.pfx, { ambiente: dpsJson.ambiente });
|
|
72
72
|
}
|
|
73
|
-
async getInvoice(chaveAcesso) {
|
|
74
|
-
return consultarNfse(chaveAcesso, this.pfx, this.ambiente);
|
|
73
|
+
async getInvoice(chaveAcesso, options = {}) {
|
|
74
|
+
return consultarNfse(chaveAcesso, this.pfx, options.ambiente ?? this.defaults.ambiente ?? this.ambiente);
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
//# sourceMappingURL=client.js.map
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG/C,OAAO,EAAE,UAAU,EAA6B,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAoB,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,aAAa,EAAsB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG/C,OAAO,EAAE,UAAU,EAA6B,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAoB,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,aAAa,EAAsB,MAAM,kBAAkB,CAAC;AAoCrE,SAAS,kBAAkB,CAAC,WAAwC;IAClE,IAAI,CAAC,WAAW,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,gBAAgB,CAAC;IACvE,IAAI,WAAW,KAAK,YAAY;QAAE,OAAO,UAAU,CAAC;IACpD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,aAAa,CAAC,KAAyC;IAC9D,OAAO,eAAe,IAAI,KAAK,IAAI,SAAS,IAAI,KAAK,IAAI,WAAW,IAAI,KAAK,CAAC;AAChF,CAAC;AAED,SAAS,wBAAwB,CAAC,WAAiC;IACjE,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC;QAAE,OAAO,WAAW,CAAC,OAAO,CAAC;IAErE,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAC3C,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,IAAI,QAAQ,CAAC;IAClD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACzF,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,YAAY,CAAmB,KAAoB,EAAE,KAAa;IACzE,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,+CAA+C,KAAK,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,OAAO,UAAU;IACL,QAAQ,CAAkB;IAEzB,QAAQ,CAAW;IACnB,GAAG,CAAc;IACjB,QAAQ,CAAwB;IAEjD,YAAY,OAA0B;QACpC,IAAI,CAAC,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACxD,IAAI,CAAC,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC;YAC3C,CAAC,CAAC,OAAO,CAAC,WAAW;YACrB,CAAC,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACnG,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG;YACd,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;YAC5C,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;YACxD,GAAG,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC;SACrE,CAAC;IACJ,CAAC;IAEO,mBAAmB,CAAC,KAAyB;QACnD,MAAM,SAAS,GAAG;YAChB,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS;YAC1B,GAAG,KAAK,CAAC,SAAS;SACnB,CAAC;QACF,MAAM,OAAO,GAAG;YACd,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO;YACxB,GAAG,KAAK,CAAC,OAAO;SACjB,CAAC;QACF,MAAM,OAAO,GAAG;YACd,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO;YACxB,GAAG,KAAK,CAAC,OAAO;SACjB,CAAC;QAEF,OAAO;YACL,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;YACnE,SAAS,EAAE,YAAY,CAAC,SAAS,EAAE,WAAW,CAAqB;YACnE,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,SAAS,CAAmB;YAC3D,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,SAAS,CAAiB;SAC1D,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,KAAyB;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAChD,OAAO,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvE,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,WAAmB,EAAE,UAA6B,EAAE;QAC3E,OAAO,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3G,CAAC;CACF"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Decimal arithmetic shared by validation and serialization; no binary float math. */
|
|
2
|
+
export declare function decimalParts(value: string | number): {
|
|
3
|
+
integer: bigint;
|
|
4
|
+
scale: number;
|
|
5
|
+
};
|
|
6
|
+
export declare function fixedDecimal(value: string | number): string;
|
|
7
|
+
export declare function mulDecimal(a: string, b: number): string;
|
package/dist/decimal.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/** Decimal arithmetic shared by validation and serialization; no binary float math. */
|
|
2
|
+
export function decimalParts(value) {
|
|
3
|
+
const text = String(value);
|
|
4
|
+
if (!/^\d+(?:\.\d+)?$/.test(text))
|
|
5
|
+
throw new Error(`Decimal invalido: ${text}`);
|
|
6
|
+
const [whole, fraction = ''] = text.split('.');
|
|
7
|
+
return { integer: BigInt(`${whole}${fraction}`), scale: fraction.length };
|
|
8
|
+
}
|
|
9
|
+
function fixedFromInteger(integer, scale, decimals = 2) {
|
|
10
|
+
const divisor = 10n ** BigInt(Math.max(0, scale - decimals));
|
|
11
|
+
const scaled = scale > decimals ? (integer + divisor / 2n) / divisor : integer * 10n ** BigInt(decimals - scale);
|
|
12
|
+
const text = scaled.toString().padStart(decimals + 1, '0');
|
|
13
|
+
return `${text.slice(0, -decimals)}.${text.slice(-decimals)}`;
|
|
14
|
+
}
|
|
15
|
+
export function fixedDecimal(value) {
|
|
16
|
+
const { integer, scale } = decimalParts(value);
|
|
17
|
+
return fixedFromInteger(integer, scale);
|
|
18
|
+
}
|
|
19
|
+
export function mulDecimal(a, b) {
|
|
20
|
+
const left = decimalParts(a);
|
|
21
|
+
const right = decimalParts(b);
|
|
22
|
+
return fixedFromInteger(left.integer * right.integer, left.scale + right.scale);
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=decimal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decimal.js","sourceRoot":"","sources":["../decimal.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,MAAM,UAAU,YAAY,CAAC,KAAsB;IACjD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;IAChF,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,KAAK,GAAG,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;AAC5E,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAe,EAAE,KAAa,EAAE,QAAQ,GAAG,CAAC;IACpE,MAAM,OAAO,GAAG,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,GAAG,GAAG,IAAI,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;IACjH,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3D,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAsB;IACjD,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAC/C,OAAO,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,CAAS,EAAE,CAAS;IAC7C,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAC9B,OAAO,gBAAgB,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;AAClF,CAAC"}
|
package/dist/dpsJson.js
CHANGED
|
@@ -1,18 +1,10 @@
|
|
|
1
1
|
import { DEFAULT_AMBIENTE, TP_AMB } from './config.js';
|
|
2
|
-
import {
|
|
2
|
+
import { DpsFiscalValidationError, validateDpsJsonRequest } from './fiscalValidation.js';
|
|
3
|
+
import { fixedDecimal, mulDecimal } from './decimal.js';
|
|
4
|
+
import { resolveValores } from './dpsNormalization.js';
|
|
3
5
|
const NS = 'http://www.sped.fazenda.gov.br/nfse';
|
|
4
6
|
const VERSAO = '1.01';
|
|
5
7
|
const VER_APLIC = 'UseInvio';
|
|
6
|
-
function normalizeRequest(input) {
|
|
7
|
-
const parsed = typeof input === 'string' ? JSON.parse(input) : input;
|
|
8
|
-
if (!parsed?.prestador)
|
|
9
|
-
throw new Error('JSON da DPS deve informar prestador');
|
|
10
|
-
if (!parsed?.servico)
|
|
11
|
-
throw new Error('JSON da DPS deve informar servico');
|
|
12
|
-
if (!parsed?.emissao)
|
|
13
|
-
throw new Error('JSON da DPS deve informar emissao');
|
|
14
|
-
return parsed;
|
|
15
|
-
}
|
|
16
8
|
function escapeXml(value) {
|
|
17
9
|
return String(value)
|
|
18
10
|
.replace(/&/g, '&')
|
|
@@ -47,31 +39,9 @@ function onlyDigits(value) {
|
|
|
47
39
|
function pad(value, length) {
|
|
48
40
|
return onlyDigits(value).padStart(length, '0');
|
|
49
41
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
throw new Error(`Decimal invalido: ${text}`);
|
|
54
|
-
const [whole, fraction = ''] = text.split('.');
|
|
55
|
-
return { integer: BigInt(`${whole}${fraction}`), scale: fraction.length };
|
|
56
|
-
}
|
|
57
|
-
function fixedFromInteger(integer, scale, decimals = 2) {
|
|
58
|
-
const divisor = 10n ** BigInt(Math.max(0, scale - decimals));
|
|
59
|
-
const scaled = scale > decimals ? (integer + divisor / 2n) / divisor : integer * 10n ** BigInt(decimals - scale);
|
|
60
|
-
const text = scaled.toString().padStart(decimals + 1, '0');
|
|
61
|
-
return `${text.slice(0, -decimals)}.${text.slice(-decimals)}`;
|
|
62
|
-
}
|
|
63
|
-
function fixedDecimal(value, decimals = 2) {
|
|
64
|
-
const { integer, scale } = decimalParts(value);
|
|
65
|
-
return fixedFromInteger(integer, scale, decimals);
|
|
66
|
-
}
|
|
67
|
-
function roundMoney(value) { return fixedDecimal(value); }
|
|
68
|
-
function roundRate(value) { return fixedDecimal(value); }
|
|
69
|
-
function roundTaxBurdenRate(value) { return fixedDecimal(value); }
|
|
70
|
-
function mulDecimal(a, b) {
|
|
71
|
-
const left = decimalParts(a);
|
|
72
|
-
const right = decimalParts(b);
|
|
73
|
-
return fixedFromInteger(left.integer * right.integer, left.scale + right.scale, 2);
|
|
74
|
-
}
|
|
42
|
+
const roundMoney = fixedDecimal;
|
|
43
|
+
const roundRate = fixedDecimal;
|
|
44
|
+
const roundTaxBurdenRate = fixedDecimal;
|
|
75
45
|
function nowSaoPauloOffset(date = new Date()) {
|
|
76
46
|
const parts = new Intl.DateTimeFormat('en-CA', {
|
|
77
47
|
timeZone: 'America/Sao_Paulo', year: 'numeric', month: '2-digit', day: '2-digit',
|
|
@@ -80,19 +50,16 @@ function nowSaoPauloOffset(date = new Date()) {
|
|
|
80
50
|
return `${parts.year}-${parts.month}-${parts.day}T${parts.hour}:${parts.minute}:${parts.second}-03:00`;
|
|
81
51
|
}
|
|
82
52
|
function resolveVServ(input) {
|
|
83
|
-
const
|
|
84
|
-
const vServ = values?.vServ ?? input.vServ;
|
|
53
|
+
const { vServ, vServMoeda, cotacao } = resolveValores(input);
|
|
85
54
|
if (vServ)
|
|
86
55
|
return roundMoney(vServ);
|
|
87
|
-
const vServMoeda = values?.vServMoeda ?? input.vServMoeda;
|
|
88
|
-
const cotacao = values?.cotacao ?? input.cotacao;
|
|
89
56
|
if (!vServMoeda || !cotacao) {
|
|
90
57
|
throw new Error('Informe valores.vServ ou (valores.vServMoeda + valores.cotacao) no JSON da DPS.');
|
|
91
58
|
}
|
|
92
59
|
return mulDecimal(vServMoeda, cotacao);
|
|
93
60
|
}
|
|
94
61
|
function resolveVServMoeda(input) {
|
|
95
|
-
return input.
|
|
62
|
+
return resolveValores(input).vServMoeda ?? '0.00';
|
|
96
63
|
}
|
|
97
64
|
export function buildDpsId(prestador, nDPS, serie = prestador.serie) {
|
|
98
65
|
const taxId = prestador.cnpj ?? prestador.cpf;
|
|
@@ -215,7 +182,7 @@ function buildComExt(input, comExt) {
|
|
|
215
182
|
textEl('mdPrestacao', comExt.mdPrestacao),
|
|
216
183
|
textEl('vincPrest', comExt.vincPrest),
|
|
217
184
|
textEl('tpMoeda', comExt.tpMoeda),
|
|
218
|
-
requiredTextEl('vServMoeda', comExt.vServMoeda ?? resolveVServMoeda(input)),
|
|
185
|
+
requiredTextEl('vServMoeda', roundMoney(comExt.vServMoeda ?? resolveVServMoeda(input))),
|
|
219
186
|
textEl('mecAFComexP', comExt.mecAFComexP),
|
|
220
187
|
textEl('mecAFComexT', comExt.mecAFComexT),
|
|
221
188
|
textEl('movTempBens', comExt.movTempBens),
|
|
@@ -223,8 +190,11 @@ function buildComExt(input, comExt) {
|
|
|
223
190
|
].join(''));
|
|
224
191
|
}
|
|
225
192
|
export function buildDpsFromJson(input) {
|
|
226
|
-
const
|
|
227
|
-
|
|
193
|
+
const parsed = typeof input === 'string' ? JSON.parse(input) : input;
|
|
194
|
+
const report = validateDpsJsonRequest(parsed);
|
|
195
|
+
if (!report.valid)
|
|
196
|
+
throw new DpsFiscalValidationError(report);
|
|
197
|
+
const request = report.normalizedPayload;
|
|
228
198
|
const ambiente = request.ambiente ?? DEFAULT_AMBIENTE;
|
|
229
199
|
const { prestador, servico } = request;
|
|
230
200
|
const emissao = request.emissao;
|
|
@@ -248,7 +218,7 @@ export function buildDpsFromJson(input) {
|
|
|
248
218
|
el('locPrest', requiredTextEl('cLocPrestacao', serviceOverride?.cLocPrestacao ?? servico.cLocPrestacao)),
|
|
249
219
|
cServ,
|
|
250
220
|
comExt ? buildComExt(emissao, comExt) : '',
|
|
251
|
-
emissao.obra ? el('obra', textEl('
|
|
221
|
+
emissao.obra ? el('obra', textEl('inscImobFisc', emissao.obra.inscImobFisc) + requiredTextEl('cObra', emissao.obra.cObra)) : '',
|
|
252
222
|
emissao.evento ? el('atvEvento', textEl('xDesc', emissao.evento.xDesc) + textEl('dtEvento', emissao.evento.dtEvento)) : '',
|
|
253
223
|
].join(''));
|
|
254
224
|
const vServPrest = el('vServPrest', requiredTextEl('vServ', vServ) +
|
package/dist/dpsJson.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dpsJson.js","sourceRoot":"","sources":["../dpsJson.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dpsJson.js","sourceRoot":"","sources":["../dpsJson.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { DpsJsonInput, DpsJsonRequest, Valores } from './dpsJson.js';
|
|
2
|
+
export declare function resolveValores(input: DpsJsonInput): Valores;
|
|
3
|
+
/** Called only after the structural check. Retains legacy fields for compatibility. */
|
|
4
|
+
export declare function normalizeDpsRequest<T extends DpsJsonRequest>(request: T): T;
|
|
5
|
+
/** Copy JSON-like data without throwing on extra non-JSON properties. */
|
|
6
|
+
export declare function clonePayload<T>(value: T, seen?: WeakMap<object, unknown>): T;
|
|
7
|
+
export declare function structuralIssues(value: unknown): Array<{
|
|
8
|
+
path: string;
|
|
9
|
+
message: string;
|
|
10
|
+
}>;
|