@sinete/nfe 0.0.0 → 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.
Files changed (101) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +11 -0
  3. package/README.md +147 -1
  4. package/dist/build/build.d.ts +127 -0
  5. package/dist/build/build.d.ts.map +1 -0
  6. package/dist/build/destinatario.d.ts +19 -0
  7. package/dist/build/destinatario.d.ts.map +1 -0
  8. package/dist/build/ibscbs.d.ts +27 -0
  9. package/dist/build/ibscbs.d.ts.map +1 -0
  10. package/dist/build/icms.d.ts +42 -0
  11. package/dist/build/icms.d.ts.map +1 -0
  12. package/dist/build/nfce.d.ts +122 -0
  13. package/dist/build/nfce.d.ts.map +1 -0
  14. package/dist/build/pl.d.ts +19 -0
  15. package/dist/build/pl.d.ts.map +1 -0
  16. package/dist/build/rejeicoes.d.ts +52 -0
  17. package/dist/build/rejeicoes.d.ts.map +1 -0
  18. package/dist/build/tributos.d.ts +45 -0
  19. package/dist/build/tributos.d.ts.map +1 -0
  20. package/dist/build/values.d.ts +48 -0
  21. package/dist/build/values.d.ts.map +1 -0
  22. package/dist/decimal.d.ts +66 -0
  23. package/dist/decimal.d.ts.map +1 -0
  24. package/dist/format.d.ts +48 -0
  25. package/dist/format.d.ts.map +1 -0
  26. package/dist/ibs-cbs.d.ts +14 -0
  27. package/dist/ibs-cbs.d.ts.map +1 -0
  28. package/dist/ibs-cbs.js +43 -0
  29. package/dist/ibs-cbs.js.map +10 -0
  30. package/dist/index.d.ts +37 -0
  31. package/dist/index.d.ts.map +1 -0
  32. package/dist/index.js +4370 -0
  33. package/dist/index.js.map +33 -0
  34. package/dist/issues.d.ts +24 -0
  35. package/dist/issues.d.ts.map +1 -0
  36. package/dist/model.d.ts +861 -0
  37. package/dist/model.d.ts.map +1 -0
  38. package/dist/ports.d.ts +109 -0
  39. package/dist/ports.d.ts.map +1 -0
  40. package/dist/rotulo.d.ts +12 -0
  41. package/dist/rotulo.d.ts.map +1 -0
  42. package/dist/rtc.d.ts +65 -0
  43. package/dist/rtc.d.ts.map +1 -0
  44. package/dist/services/client.d.ts +273 -0
  45. package/dist/services/client.d.ts.map +1 -0
  46. package/dist/services/gzip.d.ts +7 -0
  47. package/dist/services/gzip.d.ts.map +1 -0
  48. package/dist/services/index.d.ts +14 -0
  49. package/dist/services/index.d.ts.map +1 -0
  50. package/dist/services/outcome.d.ts +15 -0
  51. package/dist/services/outcome.d.ts.map +1 -0
  52. package/dist/services/proc.d.ts +41 -0
  53. package/dist/services/proc.d.ts.map +1 -0
  54. package/dist/services/recuperar.d.ts +28 -0
  55. package/dist/services/recuperar.d.ts.map +1 -0
  56. package/dist/services/resolver.d.ts +88 -0
  57. package/dist/services/resolver.d.ts.map +1 -0
  58. package/dist/services/soap.d.ts +43 -0
  59. package/dist/services/soap.d.ts.map +1 -0
  60. package/dist/time.d.ts +12 -0
  61. package/dist/time.d.ts.map +1 -0
  62. package/dist/versao-gerada.d.ts +3 -0
  63. package/dist/versao-gerada.d.ts.map +1 -0
  64. package/package.json +58 -3
  65. package/src/build/build.ts +1486 -0
  66. package/src/build/destinatario.ts +212 -0
  67. package/src/build/ibscbs.ts +131 -0
  68. package/src/build/icms.ts +645 -0
  69. package/src/build/nfce.ts +425 -0
  70. package/src/build/pl.ts +73 -0
  71. package/src/build/rejeicoes.ts +142 -0
  72. package/src/build/tributos.ts +217 -0
  73. package/src/build/values.ts +126 -0
  74. package/src/data/arredondamento.json +30 -0
  75. package/src/data/cstat.json +36 -0
  76. package/src/data/fusos.json +17 -0
  77. package/src/data/nfce-urls.json +170 -0
  78. package/src/data/produtor-rural.json +17 -0
  79. package/src/data/reforma.json +6 -0
  80. package/src/data/resp-tec.json +13 -0
  81. package/src/data/servicos.json +44 -0
  82. package/src/data/suframa.json +7 -0
  83. package/src/decimal.ts +231 -0
  84. package/src/format.ts +64 -0
  85. package/src/ibs-cbs.ts +89 -0
  86. package/src/index.ts +153 -0
  87. package/src/issues.ts +80 -0
  88. package/src/model.ts +1033 -0
  89. package/src/ports.ts +96 -0
  90. package/src/rotulo.ts +137 -0
  91. package/src/rtc.ts +305 -0
  92. package/src/services/client.ts +1085 -0
  93. package/src/services/gzip.ts +26 -0
  94. package/src/services/index.ts +43 -0
  95. package/src/services/outcome.ts +50 -0
  96. package/src/services/proc.ts +164 -0
  97. package/src/services/recuperar.ts +91 -0
  98. package/src/services/resolver.ts +127 -0
  99. package/src/services/soap.ts +133 -0
  100. package/src/time.ts +23 -0
  101. package/src/versao-gerada.ts +3 -0
@@ -0,0 +1,122 @@
1
+ /**
2
+ * NFC-e (modelo 65): as regras de montagem que valem só para ela e o `infNFeSupl` (QR Code e URL de consulta por
3
+ * chave). As regras vêm do MOC 7.0 Anexo I (regras de validação com modelo 65 e aplicação obrigatória), da NT 2023.002
4
+ * (emitente pessoa física, v1.01), da NT 2025.001 v1.03 (QR Code versão 3 e pagamentos) e da NT 2025.002 v1.51 (reforma
5
+ * tributária); o leiaute do QR Code, do Manual de Padrões Técnicos do DANFE NFC-e e QR Code, versão 6.0 (março de
6
+ * 2025), itens 4.3 e 4.4. Regra opcional por UF (aplicação "Facult." sem mudança posterior) não entra aqui: a SEFAZ da
7
+ * UF decide, e recusar localmente bloquearia a venda onde a regra não vale.
8
+ */
9
+ import type { Ambiente, Signer, Uf } from '@sinete/core';
10
+ import { Decimal } from '../decimal.js';
11
+ import type { Issues } from '../issues.js';
12
+ import type { NfeInput } from '../model.js';
13
+ /**
14
+ * Versão do QR Code da NFC-e. A 3 (padrão) dispensa o CSC: na emissão normal leva só chave, versão e ambiente, e na
15
+ * contingência off-line leva a assinatura dos parâmetros com o certificado da nota (NT 2025.001, item 02.1). A 2 usa
16
+ * o CSC e o identificador dele (`idCSC`), fornecidos pela SEFAZ da UF; o emitente pessoa física não pode usá-la
17
+ * (ZX02-222, rejeição 444).
18
+ */
19
+ export type QrCodeNfceOpcoes = {
20
+ readonly versao: '3';
21
+ } | {
22
+ readonly versao: '2';
23
+ /** Identificador do CSC na SEFAZ (até 6 dígitos); os zeros à esquerda saem do QR Code (Manual 6.0, 4.3.1). */
24
+ readonly idCSC: string;
25
+ /** O CSC (16 a 36 caracteres, Manual 6.0, 4.6). Nunca vai para o XML: só entra no hash. */
26
+ readonly CSC: string;
27
+ };
28
+ /** O que a montagem deixa pronto para o `infNFeSupl` da NFC-e. */
29
+ export interface NfceSupl {
30
+ readonly versao: '2' | '3';
31
+ /** URL de consulta por chave de acesso (`urlChave`), impressa no DANFC-e. */
32
+ readonly urlChave: string;
33
+ /** Endereço do QR Code até o `?p=`, inclusive. */
34
+ readonly base: string;
35
+ /** Parâmetros já separados por `|`: completos, ou de 1 a 7 quando falta a assinatura (versão 3 off-line). */
36
+ readonly parametros: string;
37
+ /** Versão 3 em contingência off-line: os parâmetros são assinados com o certificado da nota (Manual 6.0, 4.4.2). */
38
+ readonly assinar: boolean;
39
+ }
40
+ /**
41
+ * Endereços da NFC-e da UF no ambiente e no dia (`data/nfce-urls.json`, das tabelas do Portal Nacional da NFC-e). O
42
+ * `qrCode` é `undefined` onde a tabela não traz o endereço completo (AM e MA publicam sem o protocolo): informe
43
+ * `BuildNfeOptions.urlQrCode`.
44
+ */
45
+ export declare function urlsNfce(uf: Uf, ambiente: Ambiente, dia: string): {
46
+ readonly qrCode: string | undefined;
47
+ readonly urlChave: string | undefined;
48
+ };
49
+ /** O DigestValue em Base64 convertido para hexadecimal, caractere a caractere (Manual 6.0, 4.3.5, passo 1). */
50
+ export declare function hexDoDigestValue(digestValue: string): string;
51
+ /** Hash do QR Code versão 2: SHA-1 dos parâmetros concatenados ao CSC, em hexadecimal (Manual 6.0, 4.3.4 e 4.3.5). */
52
+ export declare function hashQrCodeV2(parametros: string, csc: string): Promise<string>;
53
+ export interface DadosQrCode {
54
+ readonly chave: string;
55
+ readonly ambiente: Ambiente;
56
+ readonly tpEmis: string;
57
+ /** `dhEmi` do documento. */
58
+ readonly dhEmi: string;
59
+ /** `vNF` como vai no XML (ponto decimal, sem milhar). */
60
+ readonly vNF: string;
61
+ readonly dest?: {
62
+ readonly CNPJ?: string;
63
+ readonly CPF?: string;
64
+ readonly idEstrangeiro?: string;
65
+ };
66
+ /** O XML montado (`<NFe>` sem assinatura): o `digVal` da versão 2 off-line sai dele. */
67
+ readonly xml: string;
68
+ }
69
+ /**
70
+ * Parâmetros do QR Code (Manual 6.0): versão 2 on-line `chave|2|tpAmb|idCSC|hash` e off-line
71
+ * `chave|2|tpAmb|dia|vNF|digVal|idCSC|hash`, com o hash SHA-1 em hexadecimal dos parâmetros concatenados ao CSC
72
+ * (4.3.4 e 4.3.5); versão 3 on-line `chave|3|tpAmb` e off-line `chave|3|tpAmb|dia|vNF|tpIdDest|idDest`, que o
73
+ * certificado assina (4.4.1 e 4.4.2). Destinatário não identificado deixa os campos 6 e 7 vazios; o estrangeiro, só o
74
+ * 7. Na contingência off-line (tpEmis 9) entram o dia da emissão e o valor da nota, que o consumidor confere sem a
75
+ * nota ter chegado à SEFAZ.
76
+ */
77
+ export declare function parametrosQrCode(d: DadosQrCode, qr: QrCodeNfceOpcoes): Promise<{
78
+ readonly parametros: string;
79
+ readonly assinar: boolean;
80
+ }>;
81
+ /**
82
+ * Assinatura dos parâmetros 1 a 7 do QR Code versão 3 off-line: RSA com SHA-1 (PKCS#1 v1.5), em Base64, com o mesmo
83
+ * certificado que assina a NFC-e (Manual 6.0, 4.4.2, parâmetro 8).
84
+ */
85
+ export declare function assinarParametros(parametros: string, signer: Signer): Promise<string>;
86
+ /** Valor da NFC-e acima do qual o destinatário tem de ser identificado (MOC 7.0 Anexo I, RV W16-40, rejeição 750). */
87
+ export declare const NFCE_LIMITE_SEM_DESTINATARIO = "10000.00";
88
+ /** Identificação já resolvida pelo montador (com os padrões aplicados). */
89
+ export interface IdeNfce {
90
+ readonly tpNF: string;
91
+ readonly idDest: string;
92
+ readonly tpImp: string;
93
+ readonly finNFe: string;
94
+ readonly indFinal: string;
95
+ readonly indPres: string;
96
+ }
97
+ /**
98
+ * Regras da NFC-e sobre a entrada (origem `entrada`, ADR 0011), todas de aplicação obrigatória. Grupos que a NFC-e
99
+ * não tem saem como `grupo_vedado` no caminho da entrada.
100
+ */
101
+ export declare function conferirNfce(input: NfeInput, ide: IdeNfce, issues: Issues): void;
102
+ /** O `pag` montado, na forma que as regras de pagamento leem e completam. */
103
+ export interface PagMontado {
104
+ readonly detPag: readonly {
105
+ readonly tPag: string;
106
+ readonly vPag: string;
107
+ readonly card?: {
108
+ readonly tpIntegra?: string;
109
+ readonly CNPJ?: string;
110
+ readonly cAut?: string;
111
+ };
112
+ }[];
113
+ vTroco?: string;
114
+ }
115
+ /**
116
+ * Regras de pagamento da NFC-e sobre o grupo montado, com o `vNF` já calculado (NT 2025.001, item 02.7: YA03-10 a
117
+ * YA06-10 passam a ser obrigatórias; MOC 7.0 Anexo I, YA09-10). Sem `vTroco` e com pagamento acima do total, o builder
118
+ * calcula o troco (YA03-20, rejeição 866); informado, ele tem de ser a diferença (YA09-10, rejeição 869). O pagamento
119
+ * posterior (tPag 91) tem valor zero e dispensa a soma igual ao total (NT 2025.001 v1.03, YA03-10 e YA03-30).
120
+ */
121
+ export declare function pagamentoNfce(pag: PagMontado, vNF: Decimal, issues: Issues): void;
122
+ //# sourceMappingURL=nfce.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nfce.d.ts","sourceRoot":"","sources":["../../src/build/nfce.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Escolha do pacote de liberação por vigência e conferência do objeto contra o descritor do PL escolhido.
3
+ *
4
+ * O builder monta sempre na forma do PL mais novo (`PL_010f`). Quando a vigência escolhe um PL mais antigo, o objeto é
5
+ * serializado com o descritor dele; o serializer ignora campos que o descritor não conhece, então antes de serializar
6
+ * `camposForaDoPl` aponta cada campo que sumiria em silêncio.
7
+ */
8
+ import type { Ambiente, Clock } from '@sinete/core';
9
+ import type { ComplexType, VigenciaEntry } from '@sinete/schemas';
10
+ import type { Issues } from '../issues.js';
11
+ export interface PlEscolhido {
12
+ readonly vigencia: VigenciaEntry;
13
+ readonly infNFe: ComplexType;
14
+ }
15
+ /** PL da NF-e vigente para o ambiente no relógio de emissão (ADR 0002, decisão 6). */
16
+ export declare function escolherPl(ambiente: Ambiente, emissao: Clock): PlEscolhido;
17
+ /** Aponta cada chave do objeto que o descritor não declara (o serializer a descartaria sem aviso). */
18
+ export declare function camposForaDoPl(ct: ComplexType, value: unknown, path: string, pl: string, issues: Issues): void;
19
+ //# sourceMappingURL=pl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pl.d.ts","sourceRoot":"","sources":["../../src/build/pl.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAY,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAI5E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAQ3C,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;CAC9B;AAED,sFAAsF;AACtF,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,GAAG,WAAW,CAQ1E;AAiBD,sGAAsG;AACtG,wBAAgB,cAAc,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAkB9G"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Regras de validação da SEFAZ que dependem só do documento e que rejeições reais de um integrador em produção mostraram
3
+ * chegando à SEFAZ: conferidas antes de assinar, com o caminho da entrada (ADR 0012).
4
+ *
5
+ * Só entra aqui regra obrigatória (`Obrig.` no MOC) cujo resultado sai do próprio documento, sem cadastro nem
6
+ * configuração da UF. Exceção que depende de tabela externa ou do critério da UF faz a conferência não recusar: na
7
+ * dúvida, a nota vai e a SEFAZ decide, porque recusar localmente uma nota que a SEFAZ aceitaria é pior que a rejeição.
8
+ */
9
+ import type { ValidationIssue } from '@sinete/core';
10
+ import type { Issues } from '../issues.js';
11
+ import type { NfeInput } from '../model.js';
12
+ import type { Instante } from '../time.js';
13
+ /**
14
+ * CST 50 ou 51 com destinatário contribuinte isento de IE (indIEDest 2): rejeição 529 (MOC 7.0 Anexo I, RV N12-80,
15
+ * obrigatória no modelo 55). Fica de fora o que as exceções liberam: o CST 50 nos CFOP da exceção 1 e o CST 51 em
16
+ * qualquer operação interna, que a exceção 3 deixa a critério da UF. A exceção 3 fala em destinatário CNPJ, mas uma UF
17
+ * autorizou em produção CST 51 interno com destinatário CPF isento; como o critério é da UF, o CST 51 interno não é
18
+ * recusado aqui, seja qual for o documento do destinatário. A exceção 2 (emissão antes de 01/07/2016) não alcança nota
19
+ * montada agora.
20
+ */
21
+ export declare function cstComIsento(input: NfeInput, idDest: string, issues: Issues): void;
22
+ /**
23
+ * Vencimento das duplicatas (grupo Y, modelo 55): uma parcela só, vencendo na data de emissão, cai na rejeição 853,
24
+ * "dados de cobrança não devem ser informados para pagamento à vista" (NT 2025.001 v1.03, RV Y09-40, em produção desde
25
+ * 01/09/2025).
26
+ *
27
+ * As RV Y09-20 (sem `dVenc` ou vencendo antes da emissão, rejeição 900) e Y09-30 (antes da parcela anterior, 850) não
28
+ * são conferidas aqui: uma UF autorizou em produção, em 2026, parcela única vencendo dois meses antes da emissão, o que
29
+ * mostra que a aplicação delas depende da UF. Na dúvida, a nota vai e a SEFAZ decide (ADR 0012).
30
+ *
31
+ * A data de emissão é a do `dhEmi`. O MOC não diz em que fuso a SEFAZ a compara; para não recusar nota que ela aceitaria,
32
+ * "na data da emissão" só vale quando a data local do `dhEmi`, a de Brasília e a de UTC coincidem.
33
+ */
34
+ export declare function vencimentos(input: NfeInput, emissao: {
35
+ readonly dhEmi: string;
36
+ readonly instante: Instante;
37
+ }, issues: Issues): void;
38
+ /**
39
+ * Confere o emitente com o titular do certificado que assina a NF-e (MOC 7.0 Anexo I, grupo F):
40
+ *
41
+ * - e-CNPJ: o CNPJ-base (8 primeiros caracteres) do emitente é o do certificado, senão rejeição 213 (RV F03);
42
+ * - e-CPF: o CPF do emitente é o do certificado, senão rejeição 227 (RV F03A).
43
+ *
44
+ * Só compara documento com documento do mesmo tipo: e-CNPJ assinando nota de emitente CPF (ou o contrário) fica para a
45
+ * SEFAZ. O certificado da SEFAZ que a F03 dispensa só assina a nota avulsa, que o `buildNfe` não monta (procEmi 0).
46
+ * Devolve as ocorrências (vazio quando confere), com o caminho da entrada.
47
+ */
48
+ export declare function conferirEmitenteDoCertificado(nfe: NfeInput, titular: {
49
+ readonly cnpj?: string | undefined;
50
+ readonly cpf?: string | undefined;
51
+ }): readonly ValidationIssue[];
52
+ //# sourceMappingURL=rejeicoes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rejeicoes.d.ts","sourceRoot":"","sources":["../../src/build/rejeicoes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAsB3C;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAgBlF;AASD;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;CAAE,EAChE,MAAM,EAAE,MAAM,GACb,IAAI,CAcN;AAKD;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,QAAQ,EACb,OAAO,EAAE;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GACjF,SAAS,eAAe,EAAE,CA0B5B"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * IPI (O), II (P), PIS (Q, R), COFINS (S, T), ISSQN (U) e ICMS para a UF de destino (NA) do item.
3
+ */
4
+ import type { TIpi, TNFe_infNFe_det_imposto_COFINS, TNFe_infNFe_det_imposto_COFINSST, TNFe_infNFe_det_imposto_ICMSUFDest, TNFe_infNFe_det_imposto_II, TNFe_infNFe_det_imposto_ISSQN, TNFe_infNFe_det_imposto_PIS, TNFe_infNFe_det_imposto_PISST } from '@sinete/schemas/nfe/PL_010f';
5
+ import { Decimal } from '../decimal.js';
6
+ import type { IcmsUfDest, ImpostoImportacao, Ipi, Issqn, PisCofins, PisCofinsSt } from '../model.js';
7
+ import type { Ctx } from './values.js';
8
+ /** IPI: por alíquota `vBC × pIPI` ou por unidade `qUnid × vUnid` (MOC O10 a O14; RV O14-10, nota *4). */
9
+ export declare function buildIpi(ctx: Ctx, input: Ipi, vOp: Decimal, path: string): {
10
+ grupo: TIpi;
11
+ vIPI: Decimal;
12
+ };
13
+ export declare function buildIi(ctx: Ctx, input: ImpostoImportacao, path: string): {
14
+ grupo: TNFe_infNFe_det_imposto_II;
15
+ vII: Decimal;
16
+ };
17
+ /**
18
+ * PIS ou COFINS (Q02 a Q05, S02 a S05): `valor = vBC × aliquota / 100` ou `qBCProd × vAliqProd` (RV Q09-10, S11-10,
19
+ * nota *4). `tag` escolhe os nomes do leiaute (`PIS`/`pPIS`/`vPIS` ou `COFINS`/`pCOFINS`/`vCOFINS`).
20
+ */
21
+ export declare function buildPisCofins(ctx: Ctx, input: PisCofins, tag: 'PIS' | 'COFINS', path: string): {
22
+ grupo: TNFe_infNFe_det_imposto_PIS | TNFe_infNFe_det_imposto_COFINS;
23
+ valor: Decimal;
24
+ };
25
+ /** PIS ST ou COFINS ST (R, T). */
26
+ export declare function buildPisCofinsSt(ctx: Ctx, input: PisCofinsSt, tag: 'PIS' | 'COFINS', path: string): {
27
+ grupo: TNFe_infNFe_det_imposto_PISST | TNFe_infNFe_det_imposto_COFINSST;
28
+ valor: Decimal;
29
+ soma: boolean;
30
+ };
31
+ /** ISSQN: `vISSQN = vBC × vAliq / 100` (RV U04-10, nota *4). */
32
+ export declare function buildIssqn(ctx: Ctx, input: Issqn, path: string): {
33
+ grupo: TNFe_infNFe_det_imposto_ISSQN;
34
+ vBC: Decimal;
35
+ vISSQN: Decimal;
36
+ opcionais: Record<string, Decimal>;
37
+ };
38
+ /** ICMS para a UF de destino (NA): valores informados; defaults de partilha 100% e remetente zero desde 2019. */
39
+ export declare function buildIcmsUfDest(ctx: Ctx, input: IcmsUfDest, path: string): {
40
+ grupo: TNFe_infNFe_det_imposto_ICMSUFDest;
41
+ vFCPUFDest: Decimal;
42
+ vICMSUFDest: Decimal;
43
+ vICMSUFRemet: Decimal;
44
+ };
45
+ //# sourceMappingURL=tributos.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tributos.d.ts","sourceRoot":"","sources":["../../src/build/tributos.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,IAAI,EACJ,8BAA8B,EAC9B,gCAAgC,EAChC,kCAAkC,EAClC,0BAA0B,EAC1B,6BAA6B,EAC7B,2BAA2B,EAC3B,6BAA6B,EAC9B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACrG,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAKvC,yGAAyG;AACzG,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAgCzG;AAED,wBAAgB,OAAO,CACrB,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,iBAAiB,EACxB,IAAI,EAAE,MAAM,GACX;IAAE,KAAK,EAAE,0BAA0B,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,CAWrD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,KAAK,GAAG,QAAQ,EACrB,IAAI,EAAE,MAAM,GACX;IAAE,KAAK,EAAE,2BAA2B,GAAG,8BAA8B,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CA8BzF;AAED,kCAAkC;AAClC,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,KAAK,GAAG,QAAQ,EACrB,IAAI,EAAE,MAAM,GACX;IAAE,KAAK,EAAE,6BAA6B,GAAG,gCAAgC,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAmB5G;AAED,gEAAgE;AAChE,wBAAgB,UAAU,CACxB,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,MAAM,GACX;IAAE,KAAK,EAAE,6BAA6B,CAAC;IAAC,GAAG,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAiC7G;AAED,iHAAiH;AACjH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,MAAM,GACX;IAAE,KAAK,EAAE,kCAAkC,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,OAAO,CAAA;CAAE,CA4BjH"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Contexto de uma montagem: coleta ocorrências e converte as entradas numéricas conferindo cada uma contra o formato do
3
+ * campo no leiaute. As contas usam o valor já na precisão do XML (uma alíquota com 5 casas é recusada, não
4
+ * arredondada em silêncio), para que o que vai no XML seja exatamente o que entrou na conta.
5
+ */
6
+ import type { DecimalInput, RoundingMode } from '../decimal.js';
7
+ import { Decimal } from '../decimal.js';
8
+ import type { DecimalFormat } from '../format.js';
9
+ import type { Issues } from '../issues.js';
10
+ /** Famílias de campo com modo de arredondamento próprio (`data/arredondamento.json`). */
11
+ export type Familia = 'produto' | 'icms' | 'ipi' | 'pisCofins' | 'issqn' | 'ibsCbs';
12
+ /** Tolerância das regras de validação de valor (MOC 7.0 Anexo I, nota (*4); NT 2025.002, observações das RV UB). */
13
+ export declare const TOLERANCIA: Decimal;
14
+ export declare class Ctx {
15
+ readonly issues: Issues;
16
+ readonly modes: Readonly<Record<Familia, RoundingMode>>;
17
+ /**
18
+ * Confere o valor informado contra o calculado. Desligado na NF-e complementar e na de ajuste (finNFe 2 e 3), cujos
19
+ * valores complementam outra nota e não seguem a conta do item (MOC 7.0 Anexo I, RV I11: "Se NF-e Normal").
20
+ */
21
+ readonly conferir: boolean;
22
+ constructor(issues: Issues, modes: Readonly<Record<Familia, RoundingMode>>, conferir?: boolean);
23
+ /** Entrada opcional; inválida vira ocorrência e `undefined`. */
24
+ opt(value: DecimalInput | undefined, path: string, format: DecimalFormat): Decimal | undefined;
25
+ /** Entrada obrigatória; ausente ou inválida vira ocorrência e zero, para que a montagem siga e junte tudo. */
26
+ req(value: DecimalInput | undefined, path: string, format: DecimalFormat): Decimal;
27
+ /** Arredonda um valor calculado no formato do campo pelo modo da família. */
28
+ round(value: Decimal, format: DecimalFormat, familia: Familia): Decimal;
29
+ /**
30
+ * Valor derivado: sem valor informado, o calculado (arredondado); com valor informado, o informado, conferido
31
+ * contra o calculado com a tolerância das regras de validação.
32
+ */
33
+ /**
34
+ * Base de cálculo: a informada prevalece sem conferência (a base legal varia por operação, UF e regime); o padrão
35
+ * só vale quando nada veio.
36
+ */
37
+ base(given: DecimalInput | undefined, padrao: Decimal, path: string, format: DecimalFormat, familia: Familia): Decimal;
38
+ calc(given: DecimalInput | undefined, computed: Decimal, path: string, format: DecimalFormat, familia: Familia): Decimal;
39
+ /** Texto no formato do campo. */
40
+ s(value: Decimal, format: DecimalFormat): string;
41
+ /** Texto opcional: ausente fica ausente, e zero some nos formatos que não aceitam zero. */
42
+ so(value: Decimal | undefined, format: DecimalFormat): string | undefined;
43
+ }
44
+ /** Remove as chaves com `undefined` (o serializer ignora, mas o objeto devolvido fica limpo e comparável). */
45
+ export declare function clean<T extends object>(o: T): T;
46
+ /** Só dígitos (tira máscara de CEP, CNPJ numérico, telefone). */
47
+ export declare function digits(s: string): string;
48
+ //# sourceMappingURL=values.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../../src/build/values.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,yFAAyF;AACzF,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEpF,oHAAoH;AACpH,eAAO,MAAM,UAAU,EAAE,OAA4B,CAAC;AAEtD,qBAAa,GAAG;IACd,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;IACxD;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAE3B,YAAY,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,UAAO,EAI1F;IAED,gEAAgE;IAChE,GAAG,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,GAAG,SAAS,CAa7F;IAED,8GAA8G;IAC9G,GAAG,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAMjF;IAED,6EAA6E;IAC7E,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAEtE;IAED;;;OAGG;IACH;;;OAGG;IACH,IAAI,CACF,KAAK,EAAE,YAAY,GAAG,SAAS,EAC/B,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,OAAO,GACf,OAAO,CAET;IAED,IAAI,CACF,KAAK,EAAE,YAAY,GAAG,SAAS,EAC/B,QAAQ,EAAE,OAAO,EACjB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,OAAO,GACf,OAAO,CAaT;IAED,iCAAiC;IACjC,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,CAE/C;IAED,2FAA2F;IAC3F,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAIxE;CACF;AAED,8GAA8G;AAC9G,wBAAgB,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAI/C;AAED,iEAAiE;AACjE,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAExC"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Decimal exato para os valores da NF-e. Nada de `number` nas contas: um valor é `coef × 10^-scale` com `coef` em
3
+ * `bigint`, então soma, subtração e multiplicação são exatas e só o arredondamento, feito de propósito e com o modo
4
+ * escolhido, descarta dígitos.
5
+ *
6
+ * Os modos são os que os leiautes usam:
7
+ * - `HALF_EVEN` (arredondamento bancário, NBR 5891): o que a Calculadora da RFB aplica ao IBS e à CBS (ADR 0007).
8
+ * - `HALF_UP` (metade para longe do zero): o arredondamento comercial usual nos demais tributos. O MOC 7.0 Anexo I,
9
+ * nota (*4) das regras de valor, só exige duas casas e aceita tolerância de R$ 0,01, sem fixar o modo.
10
+ * - `DOWN` (trunca em direção ao zero), para quem precisa reproduzir um sistema legado.
11
+ *
12
+ * Qual modo vale para qual campo é dado (`data/arredondamento.json`), não regra espalhada no código.
13
+ */
14
+ export type RoundingMode = 'HALF_EVEN' | 'HALF_UP' | 'DOWN';
15
+ /** O que as APIs de entrada aceitam como número. Prefira `string` (`'12.34'`): `number` perde dígitos acima de 15 algarismos. */
16
+ export type DecimalInput = string | number | bigint | Decimal;
17
+ /** Valor decimal imutável: `coef × 10^-scale`. */
18
+ export declare class Decimal {
19
+ /** Coeficiente inteiro (com sinal). */
20
+ readonly coef: bigint;
21
+ /** Casas decimais do coeficiente (0 ou mais). */
22
+ readonly scale: number;
23
+ private constructor();
24
+ static readonly ZERO: Decimal;
25
+ static readonly ONE: Decimal;
26
+ static readonly HUNDRED: Decimal;
27
+ /** Constrói a partir do coeficiente e da escala (`fromParts(1234n, 2)` = 12.34). */
28
+ static fromParts(coef: bigint, scale: number): Decimal;
29
+ /**
30
+ * Converte a entrada. Aceita texto com ponto decimal e expoente opcional (`'12.34'`, `'1e-3'`), `number` finito e
31
+ * `bigint`. Vírgula, separador de milhar e espaço são recusados: o texto é a forma do XML, não a da tela.
32
+ */
33
+ static of(input: DecimalInput): Decimal;
34
+ /** Como `of`, mas devolve `undefined` em vez de lançar. */
35
+ static tryOf(input: DecimalInput): Decimal | undefined;
36
+ private aligned;
37
+ plus(other: DecimalInput): Decimal;
38
+ minus(other: DecimalInput): Decimal;
39
+ times(other: DecimalInput): Decimal;
40
+ /** Divisão com o resultado arredondado em `scale` casas pelo modo dado. */
41
+ dividedBy(other: DecimalInput, scale: number, mode: RoundingMode): Decimal;
42
+ /** Percentual: `this × rate / 100`, sem arredondar. */
43
+ percent(rate: DecimalInput): Decimal;
44
+ negate(): Decimal;
45
+ abs(): Decimal;
46
+ /** Arredonda para `scale` casas. Com `scale` maior que a atual, só completa com zeros. */
47
+ round(scale: number, mode: RoundingMode): Decimal;
48
+ compare(other: DecimalInput): -1 | 0 | 1;
49
+ eq(other: DecimalInput): boolean;
50
+ lt(other: DecimalInput): boolean;
51
+ gt(other: DecimalInput): boolean;
52
+ isZero(): boolean;
53
+ isNegative(): boolean;
54
+ /** Quantas casas decimais o valor precisa (sem os zeros à direita). */
55
+ significantScale(): number;
56
+ /** Texto com exatamente `scale` casas (arredonda pelo modo dado quando precisa). */
57
+ toFixed(scale: number, mode?: RoundingMode): string;
58
+ /** Forma mínima, sem zeros à direita (`'12.3'`, `'0'`). */
59
+ toString(): string;
60
+ toJSON(): string;
61
+ }
62
+ /** Atalho para `Decimal.of`. */
63
+ export declare function dec(input: DecimalInput): Decimal;
64
+ /** Soma uma lista (vazia = zero). */
65
+ export declare function sum(values: Iterable<Decimal>): Decimal;
66
+ //# sourceMappingURL=decimal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decimal.d.ts","sourceRoot":"","sources":["../src/decimal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,SAAS,GAAG,MAAM,CAAC;AAE5D,iIAAiI;AACjI,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAS9D,kDAAkD;AAClD,qBAAa,OAAO;IAClB,uCAAuC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,OAAO,eAGN;IAED,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAsB;IACnD,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAsB;IAClD,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAwB;IAExD,oFAAoF;IACpF,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAGrD;IAED;;;OAGG;IACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAItC;IAED,2DAA2D;IAC3D,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,GAAG,SAAS,CAwBrD;IAED,OAAO,CAAC,OAAO;IAMf,IAAI,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAGjC;IAED,KAAK,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAGlC;IAED,KAAK,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAQlC;IAED,2EAA2E;IAC3E,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAUzE;IAED,uDAAuD;IACvD,OAAO,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAGnC;IAED,MAAM,IAAI,OAAO,CAEhB;IAED,GAAG,IAAI,OAAO,CAEb;IAED,0FAA0F;IAC1F,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAIhD;IAED,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAGvC;IAED,EAAE,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAE/B;IAED,EAAE,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAE/B;IAED,EAAE,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAE/B;IAED,MAAM,IAAI,OAAO,CAEhB;IAED,UAAU,IAAI,OAAO,CAEpB;IAED,uEAAuE;IACvE,gBAAgB,IAAI,MAAM,CASzB;IAED,oFAAoF;IACpF,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,YAAwB,GAAG,MAAM,CAO7D;IAED,2DAA2D;IAC3D,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,IAAI,MAAM,CAEf;CACF;AAkBD,gCAAgC;AAChC,wBAAgB,GAAG,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAEhD;AAED,qCAAqC;AACrC,wBAAgB,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,CAItD"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Formatação dos decimais na forma lexical que cada tipo do leiaute aceita (ADR 0002: o número de casas vem do
3
+ * pattern do XSD, nunca do serializer). Cada formato abaixo cita os tipos `TDec_*` que ele cobre.
4
+ */
5
+ import type { Decimal, RoundingMode } from './decimal.js';
6
+ export interface DecimalFormat {
7
+ /** Nome curto, para mensagens. */
8
+ readonly name: string;
9
+ /** Casas mínimas (completa com zeros até aqui). */
10
+ readonly min: number;
11
+ /** Casas máximas aceitas pelo pattern. */
12
+ readonly max: number;
13
+ /** Casas exigidas quando a parte inteira é zero e o valor não é zero (`TDec_0803v`: `0\.[0-9]{3}`). */
14
+ readonly minBelowOne?: number;
15
+ /** O pattern recusa zero (`TDec_1302Opc`, `TDec_0302a04Opc`): o campo zerado deve ser omitido. */
16
+ readonly nonZero?: boolean;
17
+ /** Maior quantidade de dígitos inteiros aceita. */
18
+ readonly intDigits: number;
19
+ }
20
+ /** `TDec_1302`, `TDec1302RTC`: 13 inteiros e exatamente 2 casas. */
21
+ export declare const D1302: DecimalFormat;
22
+ /** `TDec_1302Opc`: como `TDec_1302`, sem zero. */
23
+ export declare const D1302_OPC: DecimalFormat;
24
+ /** `TDec_0302a04`, `TDec_0302_04RTC`, `TDec_0302a04Max100`: 3 inteiros e 2 a 4 casas. */
25
+ export declare const D0302A04: DecimalFormat;
26
+ /** `TDec_0302a04Opc`: o pattern (`0\.[0-9]{2,4}|...`) aceita zero, ao contrário de `TDec_1302Opc`. */
27
+ export declare const D0302A04_OPC: DecimalFormat;
28
+ /** `TDec_0302Max100`: 2 casas exatas. */
29
+ export declare const D0302: DecimalFormat;
30
+ /** `TDec_1104v`: 11 inteiros e 0 a 4 casas. */
31
+ export declare const D1104V: DecimalFormat;
32
+ /** `TDec_1104`, `TDec1104RTC`: 11 inteiros e 4 casas. */
33
+ export declare const D1104: DecimalFormat;
34
+ /** `TDec_1110v`: 11 inteiros e 0 a 10 casas. */
35
+ export declare const D1110V: DecimalFormat;
36
+ /** `TDec_1204v`: 12 inteiros e 0 a 4 casas. */
37
+ export declare const D1204V: DecimalFormat;
38
+ /** `TDec_1204`: 12 inteiros e 4 casas quando há fração (4 fixas aqui, que o pattern aceita sempre). */
39
+ export declare const D1204: DecimalFormat;
40
+ /** `TDec_1203`: 12 inteiros e 3 casas. */
41
+ export declare const D1203: DecimalFormat;
42
+ /** `TDec_0803v`: 8 inteiros e até 3 casas; abaixo de 1, exatamente 3. */
43
+ export declare const D0803V: DecimalFormat;
44
+ /** Texto do valor já arredondado no formato (arredonda em `max` casas pelo modo dado). */
45
+ export declare function formatDecimal(value: Decimal, format: DecimalFormat, mode?: RoundingMode): string;
46
+ /** Por que o valor não cabe no formato, ou `undefined` se cabe sem perder dígitos. */
47
+ export declare function formatProblem(value: Decimal, format: DecimalFormat): string | undefined;
48
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE1D,MAAM,WAAW,aAAa;IAC5B,kCAAkC;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,uGAAuG;IACvG,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,kGAAkG;IAClG,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,mDAAmD;IACnD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,oEAAoE;AACpE,eAAO,MAAM,KAAK,EAAE,aAAoE,CAAC;AACzF,kDAAkD;AAClD,eAAO,MAAM,SAAS,EAAE,aAAsF,CAAC;AAC/G,yFAAyF;AACzF,eAAO,MAAM,QAAQ,EAAE,aAAsE,CAAC;AAC9F,sGAAsG;AACtG,eAAO,MAAM,YAAY,EAAE,aAAyE,CAAC;AACrG,yCAAyC;AACzC,eAAO,MAAM,KAAK,EAAE,aAAyE,CAAC;AAC9F,+CAA+C;AAC/C,eAAO,MAAM,MAAM,EAAE,aAAqE,CAAC;AAC3F,yDAAyD;AACzD,eAAO,MAAM,KAAK,EAAE,aAAoE,CAAC;AACzF,gDAAgD;AAChD,eAAO,MAAM,MAAM,EAAE,aAAsE,CAAC;AAC5F,+CAA+C;AAC/C,eAAO,MAAM,MAAM,EAAE,aAAqE,CAAC;AAC3F,uGAAuG;AACvG,eAAO,MAAM,KAAK,EAAE,aAAoE,CAAC;AACzF,0CAA0C;AAC1C,eAAO,MAAM,KAAK,EAAE,aAAoE,CAAC;AACzF,yEAAyE;AACzE,eAAO,MAAM,MAAM,EAAE,aAAoF,CAAC;AAE1G,0FAA0F;AAC1F,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,GAAE,YAAwB,GAAG,MAAM,CAK3G;AAED,sFAAsF;AACtF,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAOvF"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * `@sinete/nfe/ibs-cbs`: tudo o que quem emite NF-e precisa do IBS/CBS, sem importar `@sinete/ibs-cbs` nem
3
+ * `@sinete/ibs-cbs-dados` diretamente.
4
+ *
5
+ * Reexporta o motor inteiro (`@sinete/ibs-cbs`: alíquotas, cálculo, regras da NT 2025.002 e determinação de CST e
6
+ * cClassTrib) e o leitor do dataset (`@sinete/ibs-cbs-dados`: `loadDataset`, `verifyDataset`, diff, tipos). O dataset
7
+ * embarcado não entra aqui, para não ir para o bundle de quem não o usa: `carregarDatasetEmbarcado()`, na raiz do
8
+ * `@sinete/nfe`, o importa sob demanda. `Dec`, `IsoDate` e `Validity` vêm do motor (os de `Dec` e `IsoDate` são os
9
+ * mesmos; a `Validity` dos dados, com os campos do dataset, fica acessível pelos tipos que a usam).
10
+ */
11
+ export * from '@sinete/ibs-cbs';
12
+ export type { ActorClassTribRecord, ActorFilter, ActorGroupRecord, ActorRecord, ActorRole, AnnexRecord, Applicability, ApplicabilityRecord, ApplicabilityResult, ByTributo, CbsTransferRecord, ChangeKind, ClassTribCredit, ClassTribFilter, ClassTribGroups, ClassTribLegal, ClassTribRecord, CredPresCalculation, CredPresGroups, CredPresInForce, CredPresRates, CredPresRecord, CstGroups, CstRecord, DataSource, DatasetBundle, DatasetDiff, DatasetManifest, DatasetTables, DfeLink, DfeTypeRecord, Family, FieldChange, FixedRateRecord, GovPurchaseReducerRecord, IbsCbsDataErrorCode, IbsCbsDataset, Indicator, LegalBasis, NfseNbsRecord, Nomenclature, PrefixException, RateKind, RecordChange, ReductionRecord, SourceId, TableDiff, TableManifest, TableName, TaxContent, TreatmentExpressions, TreatmentFlags, TreatmentLink, TreatmentRecord, Tributo, } from '@sinete/ibs-cbs-dados';
13
+ export { applicability, BRASILIA_OFFSET_MINUTES, canonicalJson, canonicalTable, changeKind, civilDate, contentVersionOf, DATA_SCHEMA_VERSION, diffDatasets, formatDiff, IbsCbsDataError, inForce, isIsoDate, loadDataset, requireIsoDate, TABLE_NAMES, verifyDataset, } from '@sinete/ibs-cbs-dados';
14
+ //# sourceMappingURL=ibs-cbs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ibs-cbs.d.ts","sourceRoot":"","sources":["../src/ibs-cbs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,cAAc,iBAAiB,CAAC;AAChC,YAAY,EACV,oBAAoB,EACpB,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,SAAS,EACT,iBAAiB,EACjB,UAAU,EACV,eAAe,EACf,eAAe,EACf,eAAe,EACf,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,aAAa,EACb,cAAc,EACd,SAAS,EACT,SAAS,EACT,UAAU,EACV,aAAa,EACb,WAAW,EACX,eAAe,EACf,aAAa,EACb,OAAO,EACP,aAAa,EACb,MAAM,EACN,WAAW,EACX,eAAe,EACf,wBAAwB,EACxB,mBAAmB,EACnB,aAAa,EACb,SAAS,EACT,UAAU,EACV,aAAa,EACb,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,SAAS,EACT,aAAa,EACb,SAAS,EACT,UAAU,EACV,oBAAoB,EACpB,cAAc,EACd,aAAa,EACb,eAAe,EACf,OAAO,GACR,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,aAAa,EACb,uBAAuB,EACvB,aAAa,EACb,cAAc,EACd,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,eAAe,EACf,OAAO,EACP,SAAS,EACT,WAAW,EACX,cAAc,EACd,WAAW,EACX,aAAa,GACd,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,43 @@
1
+ // packages/nfe/src/ibs-cbs.ts
2
+ export * from "@sinete/ibs-cbs";
3
+ import {
4
+ applicability,
5
+ BRASILIA_OFFSET_MINUTES,
6
+ canonicalJson,
7
+ canonicalTable,
8
+ changeKind,
9
+ civilDate,
10
+ contentVersionOf,
11
+ DATA_SCHEMA_VERSION,
12
+ diffDatasets,
13
+ formatDiff,
14
+ IbsCbsDataError,
15
+ inForce,
16
+ isIsoDate,
17
+ loadDataset,
18
+ requireIsoDate,
19
+ TABLE_NAMES,
20
+ verifyDataset
21
+ } from "@sinete/ibs-cbs-dados";
22
+ export {
23
+ BRASILIA_OFFSET_MINUTES,
24
+ DATA_SCHEMA_VERSION,
25
+ IbsCbsDataError,
26
+ TABLE_NAMES,
27
+ applicability,
28
+ canonicalJson,
29
+ canonicalTable,
30
+ changeKind,
31
+ civilDate,
32
+ contentVersionOf,
33
+ diffDatasets,
34
+ formatDiff,
35
+ inForce,
36
+ isIsoDate,
37
+ loadDataset,
38
+ requireIsoDate,
39
+ verifyDataset
40
+ };
41
+
42
+ //# debugId=D0A53286486B3A8264756E2164756E21
43
+ //# sourceMappingURL=ibs-cbs.js.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/ibs-cbs.ts"],
4
+ "sourcesContent": [
5
+ "/**\n * `@sinete/nfe/ibs-cbs`: tudo o que quem emite NF-e precisa do IBS/CBS, sem importar `@sinete/ibs-cbs` nem\n * `@sinete/ibs-cbs-dados` diretamente.\n *\n * Reexporta o motor inteiro (`@sinete/ibs-cbs`: alíquotas, cálculo, regras da NT 2025.002 e determinação de CST e\n * cClassTrib) e o leitor do dataset (`@sinete/ibs-cbs-dados`: `loadDataset`, `verifyDataset`, diff, tipos). O dataset\n * embarcado não entra aqui, para não ir para o bundle de quem não o usa: `carregarDatasetEmbarcado()`, na raiz do\n * `@sinete/nfe`, o importa sob demanda. `Dec`, `IsoDate` e `Validity` vêm do motor (os de `Dec` e `IsoDate` são os\n * mesmos; a `Validity` dos dados, com os campos do dataset, fica acessível pelos tipos que a usam).\n */\n\n// biome-ignore lint/performance/noReExportAll: o subpath existe para reexportar o motor inteiro, e as duas pontas são do mesmo repo.\nexport * from '@sinete/ibs-cbs';\nexport type {\n ActorClassTribRecord,\n ActorFilter,\n ActorGroupRecord,\n ActorRecord,\n ActorRole,\n AnnexRecord,\n Applicability,\n ApplicabilityRecord,\n ApplicabilityResult,\n ByTributo,\n CbsTransferRecord,\n ChangeKind,\n ClassTribCredit,\n ClassTribFilter,\n ClassTribGroups,\n ClassTribLegal,\n ClassTribRecord,\n CredPresCalculation,\n CredPresGroups,\n CredPresInForce,\n CredPresRates,\n CredPresRecord,\n CstGroups,\n CstRecord,\n DataSource,\n DatasetBundle,\n DatasetDiff,\n DatasetManifest,\n DatasetTables,\n DfeLink,\n DfeTypeRecord,\n Family,\n FieldChange,\n FixedRateRecord,\n GovPurchaseReducerRecord,\n IbsCbsDataErrorCode,\n IbsCbsDataset,\n Indicator,\n LegalBasis,\n NfseNbsRecord,\n Nomenclature,\n PrefixException,\n RateKind,\n RecordChange,\n ReductionRecord,\n SourceId,\n TableDiff,\n TableManifest,\n TableName,\n TaxContent,\n TreatmentExpressions,\n TreatmentFlags,\n TreatmentLink,\n TreatmentRecord,\n Tributo,\n} from '@sinete/ibs-cbs-dados';\nexport {\n applicability,\n BRASILIA_OFFSET_MINUTES,\n canonicalJson,\n canonicalTable,\n changeKind,\n civilDate,\n contentVersionOf,\n DATA_SCHEMA_VERSION,\n diffDatasets,\n formatDiff,\n IbsCbsDataError,\n inForce,\n isIsoDate,\n loadDataset,\n requireIsoDate,\n TABLE_NAMES,\n verifyDataset,\n} from '@sinete/ibs-cbs-dados';\n"
6
+ ],
7
+ "mappings": ";AAYA;AA0DA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;",
8
+ "debugId": "D0A53286486B3A8264756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,37 @@
1
+ /**
2
+ * `@sinete/nfe`: NF-e modelo 55 e NFC-e modelo 65. Entrada do domínio (`NfeInput`), montagem com totais em decimal exato e validação
3
+ * estrita (`buildNfe`), assinatura por splice (`signNfe`) e os serviços da SEFAZ sobre `@sinete/transport`
4
+ * (`createNfeClient`). IBS/CBS pelo motor do sinete por padrão (`ibsCbsCalculator`), com o dataset carregado sob
5
+ * demanda. O emissor (bytes gravados antes do envio, trava, retomada, cancelamento com recuperação) está em
6
+ * `@sinete/emissor/nfe` (ADR 0010).
7
+ */
8
+ export type { BuildNfeOptions, BuildNfeResult, BuiltNfe, ExigenciaRespTec, } from './build/build.js';
9
+ export { assinaturaQrCode, buildNfe, comQrCode, exigenciaRespTec, hashCsrt, NFE_NS, signNfe, XNOME_HOMOLOGACAO, XPROD_HOMOLOGACAO_NFCE, } from './build/build.js';
10
+ export type { NfceSupl, QrCodeNfceOpcoes } from './build/nfce.js';
11
+ export { NFCE_LIMITE_SEM_DESTINATARIO, urlsNfce } from './build/nfce.js';
12
+ export { conferirEmitenteDoCertificado } from './build/rejeicoes.js';
13
+ export type { Familia } from './build/values.js';
14
+ export type { DecimalInput, RoundingMode } from './decimal.js';
15
+ export { Decimal, dec, sum } from './decimal.js';
16
+ export type { DecimalFormat } from './format.js';
17
+ export { formatDecimal, formatProblem } from './format.js';
18
+ export type { NfeIssueCode } from './issues.js';
19
+ export { NFE_ISSUE_CODES } from './issues.js';
20
+ export type { ClassificacaoIbsCbs, Cobranca, Contingencia, Crt, CstPisCofinsOutras, Desoneracao, DesoneracaoSt, Destinatario, DetalhePagamento, DocumentoPessoa, Emitente, Endereco, EnderecoExterior, FinNFe, IbsCbsItem, Icms, Icms00, Icms02, Icms10, Icms15, Icms20, Icms30, Icms40, Icms51, Icms53, Icms60, Icms61, Icms70, Icms90, IcmsFcp, IcmsPartilha, IcmsProprio, IcmsRepasseSt, IcmsSn101, IcmsSn102, IcmsSn201, IcmsSn202, IcmsSn500, IcmsSn900, IcmsSt, IcmsStRetido, IcmsUfDest, ImpostoImportacao, ImpostosItem, IndIEDest, InformacoesAdicionais, Ipi, IpiNaoTributado, IpiTributado, Issqn, Item, Local, ModBC, ModBCST, ModFrete, NfeInput, Origem, Pagamento, PisCofins, PisCofinsSt, Produto, ProdutoEspecifico, Referenciada, RefNfp, ResponsavelTecnico, TCIBS_NFe, TMonofasia, Transportador, Transporte, TTribNFe, Volume, } from './model.js';
21
+ export { MotivoDesoneracaoIcms, TipoPagamento } from './model.js';
22
+ export type { IbsCbsCalculator, IbsCbsItemRequest, IbsCbsNotaRequest, IbsCbsResponse } from './ports.js';
23
+ export { rotuloDoCaminho } from './rotulo.js';
24
+ export type { GrupoIbsCbs, IbsCbsCalculatorOptions } from './rtc.js';
25
+ export { carregarDatasetEmbarcado, ibsCbsCalculator, localDaOperacao } from './rtc.js';
26
+ export type { AutorDocumento, AutorizacaoOutcome, AutorizarOpcoes, Cadastro, CadastroPedido, CancelamentoPedido, CancelamentoSubstituicaoPedido, CartaCorrecaoPedido, ConsultaNfe, ConsultaOutcome, ConsultaReciboOpcoes, Distribuicao, DistribuicaoConsulta, DistribuicaoOpcoes, DocumentoDistribuido, EventoOutcome, EventoRegistrado, Inutilizacao, InutilizacaoOutcome, InutilizacaoPedido, ManifestacaoPedido, ManifestacaoTipo, NfeClient, NfeClientOptions, PoliticaRecibo, ProtocoloNfe, Sleep, StatusServico, } from './services/client.js';
27
+ export { autorizadorContingencia, createNfeClient } from './services/client.js';
28
+ export { gunzipBase64 } from './services/gzip.js';
29
+ export type { DocumentoAssinado } from './services/proc.js';
30
+ export { documentoAssinado, nfeAssinadaDoProc, sliceElement } from './services/proc.js';
31
+ export type { RecuperacaoEvento } from './services/recuperar.js';
32
+ export { recuperarEventoRegistrado } from './services/recuperar.js';
33
+ export type { ConteudoDoProtocolo, ResolucaoEnvio } from './services/resolver.js';
34
+ export { chaveDaDuplicidade, resolverEnvioSemResposta } from './services/resolver.js';
35
+ export type { Instante } from './time.js';
36
+ export { formatDh, offsetDaUf } from './time.js';
37
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}