@nfewizard/shared 1.0.2 → 1.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.
- package/.rollup.cache/usr/projetos/nfewizard/nfewizard-io-idle-old/packages/shared/dist/src/adapters/SchemaLoader.js +1 -0
- package/.rollup.cache/usr/projetos/nfewizard/nfewizard-io-idle-old/packages/shared/dist/src/adapters/SchemaLoader.js.map +1 -1
- package/.rollup.cache/usr/projetos/nfewizard/nfewizard-io-idle-old/packages/shared/dist/src/base/BaseNFe.d.ts +1 -1
- package/.rollup.cache/usr/projetos/nfewizard/nfewizard-io-idle-old/packages/shared/dist/src/base/GerarConsulta.js +1 -0
- package/.rollup.cache/usr/projetos/nfewizard/nfewizard-io-idle-old/packages/shared/dist/src/base/GerarConsulta.js.map +1 -1
- package/.rollup.cache/usr/projetos/nfewizard/nfewizard-io-idle-old/packages/shared/dist/src/environment/LoadCertificate.d.ts +5 -0
- package/.rollup.cache/usr/projetos/nfewizard/nfewizard-io-idle-old/packages/shared/dist/src/environment/LoadCertificate.js +30 -9
- package/.rollup.cache/usr/projetos/nfewizard/nfewizard-io-idle-old/packages/shared/dist/src/environment/LoadCertificate.js.map +1 -1
- package/.rollup.cache/usr/projetos/nfewizard/nfewizard-io-idle-old/packages/shared/dist/src/utils/XmlParser.d.ts +65 -0
- package/.rollup.cache/usr/projetos/nfewizard/nfewizard-io-idle-old/packages/shared/dist/src/utils/XmlParser.js +189 -0
- package/.rollup.cache/usr/projetos/nfewizard/nfewizard-io-idle-old/packages/shared/dist/src/utils/XmlParser.js.map +1 -1
- package/.rollup.cache/usr/projetos/nfewizard/nfewizard-io-idle-old/packages/shared/dist/src/utils/index.d.ts +2 -0
- package/.rollup.cache/usr/projetos/nfewizard/nfewizard-io-idle-old/packages/shared/dist/src/utils/index.js +1 -0
- package/.rollup.cache/usr/projetos/nfewizard/nfewizard-io-idle-old/packages/shared/dist/src/utils/index.js.map +1 -1
- package/.rollup.cache/usr/projetos/nfewizard/nfewizard-io-idle-old/packages/shared/dist/src/utils/validateSchema.d.ts +96 -0
- package/.rollup.cache/usr/projetos/nfewizard/nfewizard-io-idle-old/packages/shared/dist/src/utils/validateSchema.js +252 -0
- package/.rollup.cache/usr/projetos/nfewizard/nfewizard-io-idle-old/packages/shared/dist/src/utils/validateSchema.js.map +1 -0
- package/.rollup.cache/usr/projetos/nfewizard/nfewizard-io-idle-old/packages/shared/dist/tsconfig.tsbuildinfo +1 -1
- package/README.md +47 -1
- package/dist/index.cjs +470 -9
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +470 -10
- package/dist/index.mjs.map +1 -1
- package/dist/src/base/BaseNFe.d.ts +1 -1
- package/dist/src/environment/LoadCertificate.d.ts +5 -0
- package/dist/src/utils/XmlParser.d.ts +65 -0
- package/dist/src/utils/index.d.ts +2 -0
- package/dist/src/utils/validateSchema.d.ts +96 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -27,6 +27,7 @@ export const getSchema = (metodo) => {
|
|
|
27
27
|
RecepcaoEvento: `${pathSchemas}/envEvento_v1.00.xsd`,
|
|
28
28
|
NFeDistribuicaoDFe: `${pathSchemas}/distDFeInt_v1.01.xsd`,
|
|
29
29
|
NFEAutorizacao: `${pathSchemas}/enviNFe_v4.00.xsd`,
|
|
30
|
+
NFeAutorizacao: `${pathSchemas}/enviNFe_v4.00.xsd`,
|
|
30
31
|
NFEInutilizacao: `${pathSchemas}/inutNFe_v4.00.xsd`,
|
|
31
32
|
NFERetAutorizacao: `${pathSchemas}/consReciNFe_v4.00.xsd`,
|
|
32
33
|
CTeDistribuicaoDFe: `${pathSchemas}/cte/distDFeInt_v1.00.xsd`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaLoader.js","sourceRoot":"","sources":["../../../src/adapters/SchemaLoader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAGpC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAC5D,wDAAwD;AACxD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;AAUvD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAc,EAAE,EAAE;IAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAE/C,MAAM,MAAM,GAAgB;QAC1B,gBAAgB,EAAE,GAAG,WAAW,yBAAyB;QACzD,oBAAoB,EAAE,GAAG,WAAW,uBAAuB;QAC3D,cAAc,EAAE,GAAG,WAAW,sBAAsB;QACpD,kBAAkB,EAAE,GAAG,WAAW,uBAAuB;QACzD,cAAc,EAAE,GAAG,WAAW,oBAAoB;QAClD,eAAe,EAAE,GAAG,WAAW,oBAAoB;QACnD,iBAAiB,EAAE,GAAG,WAAW,wBAAwB;QACzD,kBAAkB,EAAE,GAAG,WAAW,2BAA2B;QAC7D,uDAAuD;QACvD,gBAAgB,EAAE,GAAG,WAAW,qBAAqB;QACrD,aAAa,EAAE,GAAG,WAAW,sBAAsB;QACnD,iBAAiB,EAAE,GAAG,WAAW,sBAAsB;QACvD,YAAY,EAAE,GAAG,WAAW,8BAA8B;QAC1D,yBAAyB,EAAE,SAAS,EAAE,gCAAgC;KACvE,CAAA;IAED,IAAI,CAAC;QACH,OAAO;YACL,QAAQ,EAAE,WAAW;YACrB,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC;SAC3B,CAAA;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;AACH,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"SchemaLoader.js","sourceRoot":"","sources":["../../../src/adapters/SchemaLoader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAGpC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAC5D,wDAAwD;AACxD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;AAUvD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAc,EAAE,EAAE;IAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAE/C,MAAM,MAAM,GAAgB;QAC1B,gBAAgB,EAAE,GAAG,WAAW,yBAAyB;QACzD,oBAAoB,EAAE,GAAG,WAAW,uBAAuB;QAC3D,cAAc,EAAE,GAAG,WAAW,sBAAsB;QACpD,kBAAkB,EAAE,GAAG,WAAW,uBAAuB;QACzD,cAAc,EAAE,GAAG,WAAW,oBAAoB;QAClD,cAAc,EAAE,GAAG,WAAW,oBAAoB;QAClD,eAAe,EAAE,GAAG,WAAW,oBAAoB;QACnD,iBAAiB,EAAE,GAAG,WAAW,wBAAwB;QACzD,kBAAkB,EAAE,GAAG,WAAW,2BAA2B;QAC7D,uDAAuD;QACvD,gBAAgB,EAAE,GAAG,WAAW,qBAAqB;QACrD,aAAa,EAAE,GAAG,WAAW,sBAAsB;QACnD,iBAAiB,EAAE,GAAG,WAAW,sBAAsB;QACvD,YAAY,EAAE,GAAG,WAAW,8BAA8B;QAC1D,yBAAyB,EAAE,SAAS,EAAE,gCAAgC;KACvE,CAAA;IAED,IAAI,CAAC;QACH,OAAO;YACL,QAAQ,EAAE,WAAW;YACrB,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC;SAC3B,CAAA;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;AACH,CAAC,CAAA"}
|
|
@@ -19,7 +19,7 @@ declare abstract class BaseNFE {
|
|
|
19
19
|
* Método de geração do XML - Deve ser implementado pelas subclasses
|
|
20
20
|
*/
|
|
21
21
|
protected gerarXml(data?: any): string;
|
|
22
|
-
protected setContentType(): "text/xml; charset=utf-8"
|
|
22
|
+
protected setContentType(): "application/soap+xml" | "text/xml; charset=utf-8";
|
|
23
23
|
protected callWebService(xmlConsulta: string, webServiceUrl: string, ContentType: string, action: string, agent: Agent): Promise<AxiosResponse<any, any>>;
|
|
24
24
|
/**
|
|
25
25
|
* Método para obter o modelo
|
|
@@ -40,6 +40,7 @@ class GerarConsulta {
|
|
|
40
40
|
const config = this.environment.getConfig();
|
|
41
41
|
// Capturando o schema path
|
|
42
42
|
const { schemaPath } = this.utility.getSchema(metodo);
|
|
43
|
+
logger.info(xmlConsulta);
|
|
43
44
|
// Valida Schema apenas se o schema path estiver definido
|
|
44
45
|
if (schemaPath) {
|
|
45
46
|
if (config.lib?.useForSchemaValidation !== 'validateSchemaJsBased') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GerarConsulta.js","sourceRoot":"","sources":["../../../src/base/GerarConsulta.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAKjD,MAAM,aAAa;IAKf,YAAY,WAAwB,EAAE,OAAgB,EAAE,UAAsB;QAC1E,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,CAAC;IAED,iBAAiB,CAAC,WAAmB,EAAE,MAAc,EAAE,MAAc,EAAE,UAAmB,KAAK,EAAE,GAAG,GAAG,EAAE,EAAE,cAAsB,aAAa;QAC1I,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE;YACnC,OAAO,EAAE,eAAe;SAC3B,CAAC,CAAC;QACH,uDAAuD;QACvD,IAAI,UAAU,GAAG,IAAI,CAAC;QACtB,IAAI,OAAO,EAAE,CAAC;YACV,UAAU,GAAG;gBACT,GAAG;gBACH,SAAS,EAAE,MAAM;aACpB,CAAC;QACN,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IACrG,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,WAAmB,EAAE,MAAc,EAAE,gBAAgB,GAAG,KAAK,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,GAAG,KAAK,EAAE,UAAmB,KAAK,EAAE,GAAG,GAAG,EAAE,EAAE,cAAsB,aAAa;QAChL,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;YAE5C,2BAA2B;YAC3B,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"GerarConsulta.js","sourceRoot":"","sources":["../../../src/base/GerarConsulta.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,11 @@ declare class LoadCertificate {
|
|
|
4
4
|
private certificate;
|
|
5
5
|
private cert_key;
|
|
6
6
|
constructor(config: NFeWizardProps);
|
|
7
|
+
/**
|
|
8
|
+
* Resolve o conteúdo binário do PFX a partir do `pathCertificado` informado em
|
|
9
|
+
* config. Aceita `string` (caminho), `Buffer` ou `NodeJS.ReadableStream`.
|
|
10
|
+
*/
|
|
11
|
+
private resolvePfxBuffer;
|
|
7
12
|
private loadCertificateWithPEM;
|
|
8
13
|
private loadCertificateWithNodeForge;
|
|
9
14
|
loadCertificate(): Promise<CertificateLoadReturn>;
|
|
@@ -30,12 +30,35 @@ class LoadCertificate {
|
|
|
30
30
|
this.certificate = '';
|
|
31
31
|
this.cert_key = '';
|
|
32
32
|
}
|
|
33
|
-
|
|
33
|
+
/**
|
|
34
|
+
* Resolve o conteúdo binário do PFX a partir do `pathCertificado` informado em
|
|
35
|
+
* config. Aceita `string` (caminho), `Buffer` ou `NodeJS.ReadableStream`.
|
|
36
|
+
*/
|
|
37
|
+
async resolvePfxBuffer() {
|
|
38
|
+
const input = this.config.dfe.pathCertificado;
|
|
39
|
+
if (typeof input === 'string') {
|
|
40
|
+
return fs.readFileSync(input);
|
|
41
|
+
}
|
|
42
|
+
if (Buffer.isBuffer(input)) {
|
|
43
|
+
return input;
|
|
44
|
+
}
|
|
45
|
+
if (input && typeof input.pipe === 'function') {
|
|
46
|
+
const stream = input;
|
|
47
|
+
return await new Promise((resolve, reject) => {
|
|
48
|
+
const chunks = [];
|
|
49
|
+
stream.on('data', (chunk) => {
|
|
50
|
+
chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
|
|
51
|
+
});
|
|
52
|
+
stream.on('end', () => resolve(Buffer.concat(chunks)));
|
|
53
|
+
stream.on('error', (err) => reject(err));
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
throw new Error('pathCertificado deve ser uma string (path), Buffer ou Stream legível.');
|
|
57
|
+
}
|
|
58
|
+
loadCertificateWithPEM(pfxFile) {
|
|
34
59
|
return new Promise((resolve, reject) => {
|
|
35
60
|
try {
|
|
36
|
-
const pfxPath = this.config.dfe.pathCertificado;
|
|
37
61
|
const pfxPassword = this.config.dfe.senhaCertificado;
|
|
38
|
-
const pfxFile = fs.readFileSync(pfxPath);
|
|
39
62
|
const certsDir = path.resolve(baseDir, dir);
|
|
40
63
|
// Read CA certificates if directory exists and has files
|
|
41
64
|
let caCerts = [];
|
|
@@ -94,13 +117,10 @@ class LoadCertificate {
|
|
|
94
117
|
}
|
|
95
118
|
});
|
|
96
119
|
}
|
|
97
|
-
loadCertificateWithNodeForge() {
|
|
120
|
+
loadCertificateWithNodeForge(pfxFile) {
|
|
98
121
|
return new Promise((resolve, reject) => {
|
|
99
122
|
try {
|
|
100
|
-
const pfxPath = this.config.dfe.pathCertificado;
|
|
101
123
|
const pfxPassword = this.config.dfe.senhaCertificado;
|
|
102
|
-
// Lê o arquivo PFX
|
|
103
|
-
const pfxFile = fs.readFileSync(pfxPath);
|
|
104
124
|
// Decodifica o arquivo PFX (PKCS#12)
|
|
105
125
|
const p12Asn1 = forge.asn1.fromDer(pfxFile.toString('binary'));
|
|
106
126
|
const p12 = forge.pkcs12.pkcs12FromAsn1(p12Asn1, pfxPassword);
|
|
@@ -172,15 +192,16 @@ class LoadCertificate {
|
|
|
172
192
|
logger.info('Validando certificado', {
|
|
173
193
|
context: 'LoadCertificate',
|
|
174
194
|
});
|
|
195
|
+
const pfxFile = await this.resolvePfxBuffer();
|
|
175
196
|
if (this.config.lib?.useOpenSSL || this.config.lib?.useOpenSSL === undefined) {
|
|
176
|
-
const { agent } = await this.loadCertificateWithPEM();
|
|
197
|
+
const { agent } = await this.loadCertificateWithPEM(pfxFile);
|
|
177
198
|
return {
|
|
178
199
|
certificate: this.certificate,
|
|
179
200
|
cert_key: this.cert_key,
|
|
180
201
|
agent
|
|
181
202
|
};
|
|
182
203
|
}
|
|
183
|
-
const { agent } = await this.loadCertificateWithNodeForge();
|
|
204
|
+
const { agent } = await this.loadCertificateWithNodeForge(pfxFile);
|
|
184
205
|
return {
|
|
185
206
|
certificate: this.certificate,
|
|
186
207
|
cert_key: this.cert_key,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoadCertificate.js","sourceRoot":"","sources":["../../../src/environment/LoadCertificate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"LoadCertificate.js","sourceRoot":"","sources":["../../../src/environment/LoadCertificate.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,4 +15,69 @@ export declare class XmlParser {
|
|
|
15
15
|
getAutorizacaoRetornoEventBody(jsonData: any): any;
|
|
16
16
|
getInutilizacaoRetornoEventBody(jsonData: any): any;
|
|
17
17
|
convertXmlToJson(xml: string, metodo: string, nsu?: string): GenericObject;
|
|
18
|
+
/**
|
|
19
|
+
* Converte um XML de envio (`enviNFe`) ou uma `NFe` solo em uma
|
|
20
|
+
* estrutura JSON compatível com o tipo `NFe` esperado pelos serviços
|
|
21
|
+
* de Autorização de NFe/NFCe (`{ idLote, indSinc, NFe }`).
|
|
22
|
+
*
|
|
23
|
+
* Formatos aceitos:
|
|
24
|
+
* - Envelope `enviNFe` contendo uma ou mais `NFe`.
|
|
25
|
+
* - `nfeProc` (XML autorizado) — extrai a `NFe` interna.
|
|
26
|
+
* - `NFe` solo — empacota com defaults (`idLote=1`, `indSinc=1`).
|
|
27
|
+
*
|
|
28
|
+
* Defaults são aplicáveis somente para os campos do envelope; o
|
|
29
|
+
* conteúdo de `infNFe` não é alterado e segue o fluxo normal de
|
|
30
|
+
* geração/assinatura no service.
|
|
31
|
+
*
|
|
32
|
+
* @param xml String XML de entrada.
|
|
33
|
+
* @param overrides Permite sobrescrever `idLote`/`indSinc` quando o XML
|
|
34
|
+
* não contém envelope.
|
|
35
|
+
*/
|
|
36
|
+
convertXmlEnvioNFeToJson(xml: string, overrides?: {
|
|
37
|
+
idLote?: string | number;
|
|
38
|
+
indSinc?: 0 | 1;
|
|
39
|
+
}): GenericObject;
|
|
40
|
+
/**
|
|
41
|
+
* Converte um XML autorizado (`nfeProc`) ou uma `NFe` solo em uma
|
|
42
|
+
* estrutura JSON compatível com o gerador de DANFE
|
|
43
|
+
* (`{ NFe, protNFe? }`), além de retornar a chave de acesso quando
|
|
44
|
+
* disponível.
|
|
45
|
+
*
|
|
46
|
+
* @param xml String XML de entrada.
|
|
47
|
+
*/
|
|
48
|
+
convertXmlNfeProcToJson(xml: string): {
|
|
49
|
+
data: GenericObject;
|
|
50
|
+
chave: string;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Faz o parse de um XML de NFe/NFCe (envio, retorno ou solo) preservando
|
|
54
|
+
* atributos e elevando-os para o nível do elemento (ex.: `Id` em `infNFe`,
|
|
55
|
+
* `versao` em `NFe`, `nItem` em `det`). Necessário para alimentar o
|
|
56
|
+
* fluxo interno da lib que espera atributos como propriedades comuns.
|
|
57
|
+
*/
|
|
58
|
+
private parseNfeLikeXml;
|
|
59
|
+
/**
|
|
60
|
+
* Eleva, recursivamente, as chaves de `_attributes` para o próprio nível
|
|
61
|
+
* do elemento e remove o nó `_attributes`. Compatível com a saída de
|
|
62
|
+
* `xml-js` em modo compacto.
|
|
63
|
+
*/
|
|
64
|
+
private liftAttributes;
|
|
65
|
+
/**
|
|
66
|
+
* Normaliza uma `NFe` parseada de XML para o formato interno da lib:
|
|
67
|
+
* - converte `CNPJ`/`CPF`/`idEstrangeiro` em `CNPJCPF` em `emit`,
|
|
68
|
+
* `dest`, `transp.transporta` e `NFref.refNFP`.
|
|
69
|
+
* - remove atributos elevados que a lib re-aplica via `$` ao montar
|
|
70
|
+
* o XML final (`infNFe.versao`, `det.nItem`), evitando duplicidade
|
|
71
|
+
* no XML gerado.
|
|
72
|
+
*
|
|
73
|
+
* Observação: `infRespTec` mantém o campo `CNPJ` original — a lib não
|
|
74
|
+
* unifica documento para esse nó.
|
|
75
|
+
*/
|
|
76
|
+
private normalizeNfeForLibFormat;
|
|
77
|
+
/**
|
|
78
|
+
* Em um nó (ex.: `emit`, `dest`), unifica `CNPJ`/`CPF`/`idEstrangeiro`
|
|
79
|
+
* em um único campo `CNPJCPF`, removendo as chaves originais. Mantém a
|
|
80
|
+
* primeira não-vazia encontrada na ordem `CNPJ → CPF → idEstrangeiro`.
|
|
81
|
+
*/
|
|
82
|
+
private unifyDocFields;
|
|
18
83
|
}
|
|
@@ -170,5 +170,194 @@ export class XmlParser {
|
|
|
170
170
|
}
|
|
171
171
|
return jsonBody;
|
|
172
172
|
}
|
|
173
|
+
/**
|
|
174
|
+
* Converte um XML de envio (`enviNFe`) ou uma `NFe` solo em uma
|
|
175
|
+
* estrutura JSON compatível com o tipo `NFe` esperado pelos serviços
|
|
176
|
+
* de Autorização de NFe/NFCe (`{ idLote, indSinc, NFe }`).
|
|
177
|
+
*
|
|
178
|
+
* Formatos aceitos:
|
|
179
|
+
* - Envelope `enviNFe` contendo uma ou mais `NFe`.
|
|
180
|
+
* - `nfeProc` (XML autorizado) — extrai a `NFe` interna.
|
|
181
|
+
* - `NFe` solo — empacota com defaults (`idLote=1`, `indSinc=1`).
|
|
182
|
+
*
|
|
183
|
+
* Defaults são aplicáveis somente para os campos do envelope; o
|
|
184
|
+
* conteúdo de `infNFe` não é alterado e segue o fluxo normal de
|
|
185
|
+
* geração/assinatura no service.
|
|
186
|
+
*
|
|
187
|
+
* @param xml String XML de entrada.
|
|
188
|
+
* @param overrides Permite sobrescrever `idLote`/`indSinc` quando o XML
|
|
189
|
+
* não contém envelope.
|
|
190
|
+
*/
|
|
191
|
+
convertXmlEnvioNFeToJson(xml, overrides) {
|
|
192
|
+
logger.info('Convertendo XML de envio para JSON', {
|
|
193
|
+
context: 'XmlParser',
|
|
194
|
+
method: 'convertXmlEnvioNFeToJson',
|
|
195
|
+
});
|
|
196
|
+
const jsonData = this.parseNfeLikeXml(xml);
|
|
197
|
+
let envelope = this.findInObj(jsonData, 'enviNFe');
|
|
198
|
+
if (!envelope) {
|
|
199
|
+
const nfeProc = this.findInObj(jsonData, 'nfeProc');
|
|
200
|
+
const nfeNode = nfeProc ? this.findInObj(nfeProc, 'NFe') : this.findInObj(jsonData, 'NFe');
|
|
201
|
+
if (!nfeNode) {
|
|
202
|
+
throw new Error('XML inválido: não foi possível localizar `enviNFe` ou `NFe`.');
|
|
203
|
+
}
|
|
204
|
+
envelope = {
|
|
205
|
+
idLote: overrides?.idLote ?? '1',
|
|
206
|
+
indSinc: overrides?.indSinc ?? 1,
|
|
207
|
+
NFe: nfeNode,
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
// Normaliza CNPJ/CPF -> CNPJCPF nas NFe (formato esperado pela lib)
|
|
211
|
+
const nfeList = Array.isArray(envelope.NFe) ? envelope.NFe : [envelope.NFe];
|
|
212
|
+
nfeList.forEach((n) => this.normalizeNfeForLibFormat(n));
|
|
213
|
+
return {
|
|
214
|
+
idLote: envelope.idLote ?? overrides?.idLote ?? '1',
|
|
215
|
+
indSinc: Number(envelope.indSinc ?? overrides?.indSinc ?? 1),
|
|
216
|
+
NFe: envelope.NFe,
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Converte um XML autorizado (`nfeProc`) ou uma `NFe` solo em uma
|
|
221
|
+
* estrutura JSON compatível com o gerador de DANFE
|
|
222
|
+
* (`{ NFe, protNFe? }`), além de retornar a chave de acesso quando
|
|
223
|
+
* disponível.
|
|
224
|
+
*
|
|
225
|
+
* @param xml String XML de entrada.
|
|
226
|
+
*/
|
|
227
|
+
convertXmlNfeProcToJson(xml) {
|
|
228
|
+
logger.info('Convertendo nfeProc para JSON', {
|
|
229
|
+
context: 'XmlParser',
|
|
230
|
+
method: 'convertXmlNfeProcToJson',
|
|
231
|
+
});
|
|
232
|
+
const jsonData = this.parseNfeLikeXml(xml);
|
|
233
|
+
const nfeProc = this.findInObj(jsonData, 'nfeProc');
|
|
234
|
+
const NFe = nfeProc ? this.findInObj(nfeProc, 'NFe') : this.findInObj(jsonData, 'NFe');
|
|
235
|
+
if (!NFe) {
|
|
236
|
+
throw new Error('XML inválido: não foi possível localizar `NFe` ou `nfeProc`.');
|
|
237
|
+
}
|
|
238
|
+
const protNFe = nfeProc ? this.findInObj(nfeProc, 'protNFe') : this.findInObj(jsonData, 'protNFe');
|
|
239
|
+
const chFromProt = protNFe?.infProt?.chNFe;
|
|
240
|
+
const idAttr = NFe?.infNFe?.Id ?? '';
|
|
241
|
+
const chFromId = typeof idAttr === 'string' ? idAttr.replace(/^NFe/, '') : '';
|
|
242
|
+
const chave = chFromProt || chFromId || '';
|
|
243
|
+
const data = { NFe };
|
|
244
|
+
if (protNFe)
|
|
245
|
+
data.protNFe = protNFe;
|
|
246
|
+
return { data, chave };
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Faz o parse de um XML de NFe/NFCe (envio, retorno ou solo) preservando
|
|
250
|
+
* atributos e elevando-os para o nível do elemento (ex.: `Id` em `infNFe`,
|
|
251
|
+
* `versao` em `NFe`, `nItem` em `det`). Necessário para alimentar o
|
|
252
|
+
* fluxo interno da lib que espera atributos como propriedades comuns.
|
|
253
|
+
*/
|
|
254
|
+
parseNfeLikeXml(xml) {
|
|
255
|
+
const jsonAsString = convert.xml2json(xml, {
|
|
256
|
+
compact: true,
|
|
257
|
+
spaces: 2,
|
|
258
|
+
ignoreAttributes: false,
|
|
259
|
+
ignoreDeclaration: true,
|
|
260
|
+
trim: true,
|
|
261
|
+
ignoreInstruction: true,
|
|
262
|
+
ignoreComment: true,
|
|
263
|
+
ignoreCdata: true,
|
|
264
|
+
ignoreDoctype: true,
|
|
265
|
+
textFn: this.removeJsonTextAttribute,
|
|
266
|
+
});
|
|
267
|
+
const parsed = JSON.parse(jsonAsString);
|
|
268
|
+
this.liftAttributes(parsed);
|
|
269
|
+
return parsed;
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Eleva, recursivamente, as chaves de `_attributes` para o próprio nível
|
|
273
|
+
* do elemento e remove o nó `_attributes`. Compatível com a saída de
|
|
274
|
+
* `xml-js` em modo compacto.
|
|
275
|
+
*/
|
|
276
|
+
liftAttributes(node) {
|
|
277
|
+
if (!node || typeof node !== 'object')
|
|
278
|
+
return;
|
|
279
|
+
if (Array.isArray(node)) {
|
|
280
|
+
node.forEach(item => this.liftAttributes(item));
|
|
281
|
+
return;
|
|
282
|
+
}
|
|
283
|
+
if (node._attributes && typeof node._attributes === 'object') {
|
|
284
|
+
for (const attrKey of Object.keys(node._attributes)) {
|
|
285
|
+
if (!(attrKey in node)) {
|
|
286
|
+
node[attrKey] = node._attributes[attrKey];
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
delete node._attributes;
|
|
290
|
+
}
|
|
291
|
+
for (const key of Object.keys(node)) {
|
|
292
|
+
const value = node[key];
|
|
293
|
+
if (value && typeof value === 'object') {
|
|
294
|
+
this.liftAttributes(value);
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Normaliza uma `NFe` parseada de XML para o formato interno da lib:
|
|
300
|
+
* - converte `CNPJ`/`CPF`/`idEstrangeiro` em `CNPJCPF` em `emit`,
|
|
301
|
+
* `dest`, `transp.transporta` e `NFref.refNFP`.
|
|
302
|
+
* - remove atributos elevados que a lib re-aplica via `$` ao montar
|
|
303
|
+
* o XML final (`infNFe.versao`, `det.nItem`), evitando duplicidade
|
|
304
|
+
* no XML gerado.
|
|
305
|
+
*
|
|
306
|
+
* Observação: `infRespTec` mantém o campo `CNPJ` original — a lib não
|
|
307
|
+
* unifica documento para esse nó.
|
|
308
|
+
*/
|
|
309
|
+
normalizeNfeForLibFormat(nfeNode) {
|
|
310
|
+
const infNFe = nfeNode?.infNFe;
|
|
311
|
+
if (!infNFe || typeof infNFe !== 'object')
|
|
312
|
+
return;
|
|
313
|
+
// versao é re-aplicado pela lib via $ ao montar `infNFe`
|
|
314
|
+
delete infNFe.versao;
|
|
315
|
+
// O atributo `Id` no XML vem com prefixo "NFe" (ex.: "NFe4126..."),
|
|
316
|
+
// mas a lib espera apenas a chave de 44 dígitos em `infNFe.Id` —
|
|
317
|
+
// ela própria re-prefixa com "NFe" ao calcular `chaveAcesso`.
|
|
318
|
+
if (typeof infNFe.Id === 'string' && /^NFe\d{44}$/.test(infNFe.Id)) {
|
|
319
|
+
infNFe.Id = infNFe.Id.slice(3);
|
|
320
|
+
}
|
|
321
|
+
this.unifyDocFields(infNFe.emit);
|
|
322
|
+
this.unifyDocFields(infNFe.dest);
|
|
323
|
+
this.unifyDocFields(infNFe.transp?.transporta);
|
|
324
|
+
// nItem é re-aplicado pela lib via $ em cada `det` quando é array.
|
|
325
|
+
// Por isso normalizamos sempre para array (no XML, com 1 item, viraria
|
|
326
|
+
// objeto único e a lib não re-aplicaria nItem, quebrando a validação XSD).
|
|
327
|
+
const det = infNFe.det;
|
|
328
|
+
if (Array.isArray(det)) {
|
|
329
|
+
det.forEach((d) => { if (d && typeof d === 'object')
|
|
330
|
+
delete d.nItem; });
|
|
331
|
+
}
|
|
332
|
+
else if (det && typeof det === 'object') {
|
|
333
|
+
delete det.nItem;
|
|
334
|
+
infNFe.det = [det];
|
|
335
|
+
}
|
|
336
|
+
const NFref = infNFe.NFref;
|
|
337
|
+
if (Array.isArray(NFref)) {
|
|
338
|
+
NFref.forEach((ref) => this.unifyDocFields(ref?.refNFP));
|
|
339
|
+
}
|
|
340
|
+
else if (NFref && typeof NFref === 'object') {
|
|
341
|
+
this.unifyDocFields(NFref.refNFP);
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* Em um nó (ex.: `emit`, `dest`), unifica `CNPJ`/`CPF`/`idEstrangeiro`
|
|
346
|
+
* em um único campo `CNPJCPF`, removendo as chaves originais. Mantém a
|
|
347
|
+
* primeira não-vazia encontrada na ordem `CNPJ → CPF → idEstrangeiro`.
|
|
348
|
+
*/
|
|
349
|
+
unifyDocFields(target) {
|
|
350
|
+
if (!target || typeof target !== 'object')
|
|
351
|
+
return;
|
|
352
|
+
if (target.CNPJCPF)
|
|
353
|
+
return;
|
|
354
|
+
const candidate = target.CNPJ || target.CPF || target.idEstrangeiro;
|
|
355
|
+
if (candidate) {
|
|
356
|
+
target.CNPJCPF = candidate;
|
|
357
|
+
}
|
|
358
|
+
delete target.CNPJ;
|
|
359
|
+
delete target.CPF;
|
|
360
|
+
delete target.idEstrangeiro;
|
|
361
|
+
}
|
|
173
362
|
}
|
|
174
363
|
//# sourceMappingURL=XmlParser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XmlParser.js","sourceRoot":"","sources":["../../../src/utils/XmlParser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"XmlParser.js","sourceRoot":"","sources":["../../../src/utils/XmlParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,3 +9,5 @@ export { ValidaCPFCNPJ } from './ValidaCPFCNPJ.js';
|
|
|
9
9
|
export { getCodIBGE } from './getCodIBGE.js';
|
|
10
10
|
export { getDesTipoPag } from './getDesTipoPag.js';
|
|
11
11
|
export { mountICMS, mountPIS, mountCOFINS } from './NFEImposto.js';
|
|
12
|
+
export { NFE_SchemaValidate } from './validateSchema.js';
|
|
13
|
+
export type { SchemaValidator, SchemaValidateMethod, NFESchemaValidateOptions, SchemaValidationIssue, SchemaValidationResult, } from './validateSchema.js';
|
|
@@ -25,4 +25,5 @@ export { ValidaCPFCNPJ } from './ValidaCPFCNPJ.js';
|
|
|
25
25
|
export { getCodIBGE } from './getCodIBGE.js';
|
|
26
26
|
export { getDesTipoPag } from './getDesTipoPag.js';
|
|
27
27
|
export { mountICMS, mountPIS, mountCOFINS } from './NFEImposto.js';
|
|
28
|
+
export { NFE_SchemaValidate } from './validateSchema.js';
|
|
28
29
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import type { Environment } from '../environment/Environment.js';
|
|
2
|
+
/** Estratégias de validação de schema disponíveis. */
|
|
3
|
+
export type SchemaValidator = 'validateSchemaJsBased' | 'validateSchemaJavaBased';
|
|
4
|
+
/**
|
|
5
|
+
* Nomes de métodos/operações fiscais aceitos pela validação de schema.
|
|
6
|
+
* Devem corresponder às chaves mapeadas em `SchemaLoader.getSchema`.
|
|
7
|
+
*/
|
|
8
|
+
export type SchemaValidateMethod = 'NFEStatusServico' | 'NFEConsultaProtocolo' | 'RecepcaoEvento' | 'NFeDistribuicaoDFe' | 'NFEAutorizacao' | 'NFeAutorizacao' | 'NFEInutilizacao' | 'NFERetAutorizacao' | 'CTeDistribuicaoDFe' | 'NFSe_Autorizacao' | 'NFSe_Consulta' | 'NFSe_Distribuicao' | 'NFSe_Eventos' | 'NFSe_ParametrosMunicipais';
|
|
9
|
+
/**
|
|
10
|
+
* Erro individual de validação de schema, já com mensagem original e versão humanizada.
|
|
11
|
+
*/
|
|
12
|
+
export interface SchemaValidationIssue {
|
|
13
|
+
/** Mensagem original retornada pelo parser/validador (libxmljs ou xsd-schema-validator). */
|
|
14
|
+
raw: string;
|
|
15
|
+
/** Versão amigável da mensagem, em português, sem namespaces. */
|
|
16
|
+
humanized: string;
|
|
17
|
+
/** Elemento XML envolvido (quando identificável). Ex.: `NFe`, `infNFe`, `ide`. */
|
|
18
|
+
element?: string;
|
|
19
|
+
/** Atributo envolvido (quando o erro for em atributo). */
|
|
20
|
+
attribute?: string;
|
|
21
|
+
/** Filhos/valores esperados extraídos da mensagem (quando aplicável). */
|
|
22
|
+
expected?: string[];
|
|
23
|
+
/** Linha do XML reportada pelo validador. */
|
|
24
|
+
line?: number;
|
|
25
|
+
/** Coluna do XML reportada pelo validador. */
|
|
26
|
+
column?: number;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Resultado completo da validação. Compatível com o retorno anterior
|
|
30
|
+
* (`{ success, message }`) e expandido com campos adicionais.
|
|
31
|
+
*/
|
|
32
|
+
export interface SchemaValidationResult {
|
|
33
|
+
success: boolean;
|
|
34
|
+
/** Mensagem-resumo (humanizada). Em sucesso: `'XML válido.'`. */
|
|
35
|
+
message: string;
|
|
36
|
+
/** Lista de todos os erros de schema encontrados. Vazia em sucesso. */
|
|
37
|
+
errors: SchemaValidationIssue[];
|
|
38
|
+
/** Relatório multilinha pronto para `console.log`, no estilo do validador SEFAZ-RS. */
|
|
39
|
+
report: string;
|
|
40
|
+
/** Linhas estruturadas para `console.table(result.tableRows)`. */
|
|
41
|
+
tableRows: Array<{
|
|
42
|
+
'#': number;
|
|
43
|
+
Linha: number | '';
|
|
44
|
+
Elemento: string;
|
|
45
|
+
Mensagem: string;
|
|
46
|
+
}>;
|
|
47
|
+
/** Método/schema utilizado na validação. */
|
|
48
|
+
metodo: SchemaValidateMethod;
|
|
49
|
+
/** Nome do arquivo XSD aplicado. */
|
|
50
|
+
schema: string;
|
|
51
|
+
}
|
|
52
|
+
export interface NFESchemaValidateOptions {
|
|
53
|
+
/**
|
|
54
|
+
* Qual validador utilizar.
|
|
55
|
+
*
|
|
56
|
+
* - `'validateSchemaJsBased'` — usa `libxmljs2` + `xsd-assembler` (sem JDK).
|
|
57
|
+
* - `'validateSchemaJavaBased'` — usa `xsd-schema-validator` (requer JDK).
|
|
58
|
+
*
|
|
59
|
+
* Quando não informado, lê `lib.useForSchemaValidation` da configuração da lib
|
|
60
|
+
* (via `environment`); se nenhum dos dois estiver definido, aplica
|
|
61
|
+
* `'validateSchemaJsBased'` como padrão.
|
|
62
|
+
*/
|
|
63
|
+
validator?: SchemaValidator;
|
|
64
|
+
/**
|
|
65
|
+
* Instância do `Environment` inicializada pela lib. Usada apenas para ler
|
|
66
|
+
* `lib.useForSchemaValidation` quando `validator` não for informado
|
|
67
|
+
* explicitamente.
|
|
68
|
+
*/
|
|
69
|
+
environment?: Environment;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Valida um XML contra o schema XSD correspondente ao método fiscal informado.
|
|
73
|
+
*
|
|
74
|
+
* ### Seleção do validador (ordem de prioridade)
|
|
75
|
+
* 1. `options.validator` — escolha explícita do caller.
|
|
76
|
+
* 2. `options.environment.getConfig().lib?.useForSchemaValidation` — valor definido
|
|
77
|
+
* na inicialização da lib.
|
|
78
|
+
* 3. `'validateSchemaJsBased'` — padrão (sem JDK).
|
|
79
|
+
*
|
|
80
|
+
* @param xml - String XML a ser validada.
|
|
81
|
+
* @param metodo - Nome do método/operação fiscal (ex.: `'NFeAutorizacao'`).
|
|
82
|
+
* @param options - Opções opcionais: `validator` e/ou `environment`.
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* // Sem opções: usa validateSchemaJsBased
|
|
86
|
+
* await NFE_SchemaValidate(xml, 'NFeAutorizacao');
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* // Passando o environment inicializado pela lib (lê useForSchemaValidation do config)
|
|
90
|
+
* await NFE_SchemaValidate(xml, 'NFeAutorizacao', { environment });
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* // Forçando um validador específico
|
|
94
|
+
* await NFE_SchemaValidate(xml, 'NFeAutorizacao', { validator: 'validateSchemaJavaBased' });
|
|
95
|
+
*/
|
|
96
|
+
export declare function NFE_SchemaValidate(xml: string, metodo: SchemaValidateMethod, options?: NFESchemaValidateOptions): Promise<SchemaValidationResult>;
|