@useinvio/nfse-sdk 2.2.0 → 3.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/JSON_MAPPING.md +30 -17
- package/README.md +145 -67
- package/dist/agent.d.ts +86 -0
- package/dist/agent.js +235 -0
- package/dist/agent.js.map +1 -0
- package/dist/certificate.d.ts +96 -0
- package/dist/certificate.js +218 -0
- package/dist/certificate.js.map +1 -0
- package/dist/certificateValidation.d.ts +12 -5
- package/dist/certificateValidation.js +25 -9
- package/dist/certificateValidation.js.map +1 -1
- package/dist/client.d.ts +8 -3
- package/dist/client.js +8 -7
- 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/dpsJsonSchema.d.ts +17 -0
- package/dist/dpsJsonSchema.js +184 -0
- package/dist/dpsJsonSchema.js.map +1 -0
- package/dist/dpsNormalization.d.ts +10 -0
- package/dist/dpsNormalization.js +85 -0
- package/dist/dpsNormalization.js.map +1 -0
- package/dist/emissaoNota.d.ts +4 -4
- package/dist/emissaoNota.js +27 -8
- package/dist/emissaoNota.js.map +1 -1
- package/dist/fiscalDomains.d.ts +22 -0
- package/dist/fiscalDomains.js +99 -0
- package/dist/fiscalDomains.js.map +1 -0
- package/dist/fiscalValidation.d.ts +1 -0
- package/dist/fiscalValidation.js +119 -88
- package/dist/fiscalValidation.js.map +1 -1
- package/dist/index.d.ts +9 -4
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/jsonSchemaCheck.d.ts +12 -0
- package/dist/jsonSchemaCheck.js +70 -0
- package/dist/jsonSchemaCheck.js.map +1 -0
- package/dist/loadPfx.d.ts +2 -0
- package/dist/loadPfx.js +2 -1
- package/dist/loadPfx.js.map +1 -1
- package/dist/sefinClient.d.ts +10 -4
- package/dist/sefinClient.js +22 -4
- package/dist/sefinClient.js.map +1 -1
- package/dist/signXml.d.ts +3 -3
- package/dist/signXml.js +8 -6
- package/dist/signXml.js.map +1 -1
- package/dist/xmlInspection.d.ts +6 -0
- package/dist/xmlInspection.js +62 -0
- package/dist/xmlInspection.js.map +1 -0
- package/dist/xsdValidation.d.ts +17 -5
- package/dist/xsdValidation.js +75 -67
- package/dist/xsdValidation.js.map +1 -1
- 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 +4 -1
- package/examples/client-resource.ts +8 -44
- package/examples/emit-homologation.ts +4 -40
- package/examples/generate-dps-xml.ts +3 -40
- package/examples/handle-errors.ts +6 -5
- package/examples/payloads.ts +36 -0
- package/llms.txt +22 -7
- package/package.json +9 -4
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
export function resolveValores(input) {
|
|
2
|
+
return {
|
|
3
|
+
...input.valores,
|
|
4
|
+
vServ: input.valores?.vServ ?? input.vServ,
|
|
5
|
+
vServMoeda: input.valores?.vServMoeda ?? input.vServMoeda,
|
|
6
|
+
cotacao: input.valores?.cotacao ?? input.cotacao,
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
/** Called only after the structural check. Retains legacy fields for compatibility. */
|
|
10
|
+
export function normalizeDpsRequest(request) {
|
|
11
|
+
const copy = clonePayload(request);
|
|
12
|
+
copy.emissao.valores = resolveValores(copy.emissao);
|
|
13
|
+
copy.emissao.comercioExterior = copy.emissao.comercioExterior ?? copy.emissao.comExt;
|
|
14
|
+
return copy;
|
|
15
|
+
}
|
|
16
|
+
/** Copy JSON-like data without throwing on extra non-JSON properties. */
|
|
17
|
+
export function clonePayload(value, seen = new WeakMap()) {
|
|
18
|
+
if (value === null || typeof value !== 'object')
|
|
19
|
+
return value;
|
|
20
|
+
if (seen.has(value))
|
|
21
|
+
return seen.get(value);
|
|
22
|
+
const copy = Array.isArray(value) ? [] : {};
|
|
23
|
+
seen.set(value, copy);
|
|
24
|
+
for (const [key, item] of Object.entries(value)) {
|
|
25
|
+
Object.defineProperty(copy, key, { value: clonePayload(item, seen), enumerable: true, writable: true, configurable: true });
|
|
26
|
+
}
|
|
27
|
+
return copy;
|
|
28
|
+
}
|
|
29
|
+
const fields = (...names) => Object.fromEntries(names.map((name) => [name, 'string']));
|
|
30
|
+
const endereco = {
|
|
31
|
+
...fields('xLgr', 'nro', 'xCpl', 'xBairro'),
|
|
32
|
+
endNac: fields('cMun', 'CEP'),
|
|
33
|
+
endExt: fields('cPais', 'cEndPost', 'xCidade', 'xEstProvReg'),
|
|
34
|
+
};
|
|
35
|
+
const pessoa = { ...fields('CNPJ', 'CPF', 'NIF', 'cNaoNIF', 'xNome', 'fone', 'email'), end: endereco };
|
|
36
|
+
const comExt = fields('mdPrestacao', 'vincPrest', 'tpMoeda', 'vServMoeda', 'mecAFComexP', 'mecAFComexT', 'movTempBens', 'mdic', 'cPaisResult');
|
|
37
|
+
const shape = {
|
|
38
|
+
ambiente: 'string',
|
|
39
|
+
prestador: fields('cnpj', 'cpf', 'tpInsc', 'cLocEmi', 'serie', 'opSimpNac', 'regApTribSN', 'regEspTrib'),
|
|
40
|
+
servico: fields('cTribNac', 'xDescServ', 'cLocPrestacao', 'cNBS'),
|
|
41
|
+
emissao: {
|
|
42
|
+
...fields('nDPS', 'serie', 'dhEmi', 'dCompet', 'vServ', 'vServMoeda', 'xDescServ'),
|
|
43
|
+
cotacao: 'number',
|
|
44
|
+
valores: { ...fields('vServ', 'vServMoeda', 'vDesc', 'vDedRed'), cotacao: 'number' },
|
|
45
|
+
servico: fields('xDescServ', 'cLocPrestacao', 'cNBS'),
|
|
46
|
+
tomador: pessoa, intermediario: pessoa,
|
|
47
|
+
tributacaoMunicipal: fields('tribISSQN', 'cPaisResult', 'tpRetISSQN', 'pAliq', 'tpImunidade', 'vBC', 'vISSQN'),
|
|
48
|
+
tributacaoFederal: {
|
|
49
|
+
...fields('vRetCP', 'vRetIRRF', 'vRetCSLL'),
|
|
50
|
+
piscofins: fields('CST', 'vBCPisCofins', 'pAliqPis', 'pAliqCofins', 'vPis', 'vCofins', 'tpRetPisCofins'),
|
|
51
|
+
},
|
|
52
|
+
totTrib: fields('vTotTribFed', 'vTotTribEst', 'vTotTribMun', 'pTotTribFed', 'pTotTribEst', 'pTotTribMun', 'pTotTribSN', 'indTotTrib'),
|
|
53
|
+
comercioExterior: comExt, comExt,
|
|
54
|
+
obra: fields('cObra', 'inscImobFisc', 'cCM'),
|
|
55
|
+
evento: {}, tribNac: {},
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
export function structuralIssues(value) {
|
|
59
|
+
const issues = [];
|
|
60
|
+
function walk(item, spec, path) {
|
|
61
|
+
const fail = (message) => issues.push({ path: path.replace(/^emissao\./, ''), message: `${path} ${message}` });
|
|
62
|
+
if (typeof spec === 'string') {
|
|
63
|
+
if (typeof item !== spec || (spec === 'number' && !Number.isFinite(item)))
|
|
64
|
+
fail(`deve ser ${spec}`);
|
|
65
|
+
else if (typeof item === 'string' && !item.trim())
|
|
66
|
+
fail('nao pode ser vazio');
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
if (!item || typeof item !== 'object' || Array.isArray(item)) {
|
|
70
|
+
fail('deve ser um objeto');
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const record = item;
|
|
74
|
+
for (const [key, child] of Object.entries(spec)) {
|
|
75
|
+
if (record[key] !== undefined)
|
|
76
|
+
walk(record[key], child, path === '$' ? key : `${path}.${key}`);
|
|
77
|
+
else if (path === '$' && ['prestador', 'servico', 'emissao'].includes(key)) {
|
|
78
|
+
issues.push({ path: key, message: `${key} e obrigatorio` });
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
walk(value, shape, '$');
|
|
83
|
+
return issues;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=dpsNormalization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dpsNormalization.js","sourceRoot":"","sources":["../dpsNormalization.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,cAAc,CAAC,KAAmB;IAChD,OAAO;QACL,GAAG,KAAK,CAAC,OAAO;QAChB,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,IAAI,KAAK,CAAC,KAAK;QAC1C,UAAU,EAAE,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,KAAK,CAAC,UAAU;QACzD,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,IAAI,KAAK,CAAC,OAAO;KACjD,CAAC;AACJ,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,mBAAmB,CAA2B,OAAU;IACtE,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpD,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IACrF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,YAAY,CAAI,KAAQ,EAAE,OAAO,IAAI,OAAO,EAAmB;IAC7E,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9D,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAM,CAAC;IACjD,MAAM,IAAI,GAAwC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACjF,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACtB,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9H,CAAC;IACD,OAAO,IAAS,CAAC;AACnB,CAAC;AAGD,MAAM,MAAM,GAAG,CAAC,GAAG,KAAe,EAAyB,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxH,MAAM,QAAQ,GAAU;IACtB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC;IAC3C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,CAAC;CAC9D,CAAC;AACF,MAAM,MAAM,GAAU,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AAC9G,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;AAC/I,MAAM,KAAK,GAAU;IACnB,QAAQ,EAAE,QAAQ;IAClB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,CAAC;IACxG,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,CAAC;IACjE,OAAO,EAAE;QACP,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,CAAC;QAClF,OAAO,EAAE,QAAQ;QACjB,OAAO,EAAE,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE;QACpF,OAAO,EAAE,MAAM,CAAC,WAAW,EAAE,eAAe,EAAE,MAAM,CAAC;QACrD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;QACtC,mBAAmB,EAAE,MAAM,CAAC,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC;QAC9G,iBAAiB,EAAE;YACjB,GAAG,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC;YAC3C,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,CAAC;SACzG;QACD,OAAO,EAAE,MAAM,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,CAAC;QACrI,gBAAgB,EAAE,MAAM,EAAE,MAAM;QAChC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,CAAC;QAC5C,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE;KACxB;CACF,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,MAAM,MAAM,GAA6C,EAAE,CAAC;IAC5D,SAAS,IAAI,CAAC,IAAa,EAAE,IAAW,EAAE,IAAY;QACpD,MAAM,IAAI,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;QACvH,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,IAAI,OAAO,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAAE,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;iBAC/F,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAC9E,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QACrG,MAAM,MAAM,GAAG,IAA+B,CAAC;QAC/C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAChD,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS;gBAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;iBAC1F,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC3E,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,GAAG,gBAAgB,EAAE,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IACxB,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/emissaoNota.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Ambiente } from './config.js';
|
|
2
2
|
import type { DpsJsonRequest } from './dpsJson.js';
|
|
3
|
-
import type
|
|
3
|
+
import { type CertificateInput } from './certificate.js';
|
|
4
4
|
import type { SefinErro } from './sefinClient.js';
|
|
5
5
|
export type NotaInput = DpsJsonRequest | string;
|
|
6
6
|
export interface EmitirNotaOptions {
|
|
@@ -28,13 +28,13 @@ export interface NotaPreparada {
|
|
|
28
28
|
unsignedXml: string;
|
|
29
29
|
signedXml: string;
|
|
30
30
|
}
|
|
31
|
-
export declare function prepararNota(input: NotaInput, pfx:
|
|
31
|
+
export declare function prepararNota(input: NotaInput, pfx: CertificateInput, options?: EmitirNotaOptions): NotaPreparada;
|
|
32
32
|
/** Sends an already validated, signed and persistable DPS. */
|
|
33
|
-
export declare function transmitirNotaPreparada(nota: NotaPreparada, pfx:
|
|
33
|
+
export declare function transmitirNotaPreparada(nota: NotaPreparada, pfx: CertificateInput): Promise<ResultadoEmissaoNota>;
|
|
34
34
|
/**
|
|
35
35
|
* Emite uma NFS-e a partir de XML de DPS ou JSON declarativo.
|
|
36
36
|
*
|
|
37
37
|
* O metodo centraliza a burocracia do protocolo: monta XML quando recebe JSON,
|
|
38
38
|
* assina, compacta em GZip/Base64, envia por mTLS e normaliza rejeicoes.
|
|
39
39
|
*/
|
|
40
|
-
export declare function emitirNfse(input: NotaInput, pfx:
|
|
40
|
+
export declare function emitirNfse(input: NotaInput, pfx: CertificateInput, options?: EmitirNotaOptions): Promise<ResultadoEmissaoNota>;
|
package/dist/emissaoNota.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { DEFAULT_AMBIENTE } from './config.js';
|
|
2
|
+
import { assertCertificateValidity } from './certificateValidation.js';
|
|
3
|
+
import { assertEnvironment, authorizedAccessKey, dpsEnvironment } from './xmlInspection.js';
|
|
2
4
|
import { buildDpsFromJson } from './dpsJson.js';
|
|
3
5
|
import { extrairErros, transmitirDpsCompactada } from './sefinClient.js';
|
|
4
6
|
import { gzipBase64, gunzipBase64 } from './gzipB64.js';
|
|
5
7
|
import { signDps } from './signXml.js';
|
|
6
8
|
import { verifyDps } from './signXml.js';
|
|
7
|
-
import { validateDpsXmlAgainstXsd } from './xsdValidation.js';
|
|
9
|
+
import { validateDpsXmlAgainstXsd, XsdEngineUnavailableError } from './xsdValidation.js';
|
|
10
|
+
import { resolveCredentials } from './certificate.js';
|
|
8
11
|
export class EmitirNotaError extends Error {
|
|
9
12
|
status;
|
|
10
13
|
erros;
|
|
@@ -34,32 +37,48 @@ export function prepararNota(input, pfx, options = {}) {
|
|
|
34
37
|
if (!dpsId) {
|
|
35
38
|
throw new Error('Informe options.dpsId ou um XML com Id em <infDPS>.');
|
|
36
39
|
}
|
|
37
|
-
ambiente =
|
|
40
|
+
ambiente = dpsEnvironment(input);
|
|
41
|
+
if (options.ambiente !== undefined)
|
|
42
|
+
assertEnvironment(ambiente, options.ambiente);
|
|
38
43
|
unsignedXml = input;
|
|
39
44
|
}
|
|
40
45
|
else {
|
|
41
46
|
const request = typeof input === 'string' ? JSON.parse(input) : input;
|
|
42
|
-
|
|
43
|
-
|
|
47
|
+
ambiente = options.ambiente ?? request?.ambiente ?? DEFAULT_AMBIENTE;
|
|
48
|
+
const built = buildDpsFromJson({ ...request, ambiente });
|
|
44
49
|
dpsId = built.id;
|
|
45
50
|
unsignedXml = built.xml;
|
|
46
51
|
}
|
|
47
52
|
validateDpsXmlAgainstXsd(unsignedXml);
|
|
53
|
+
assertCertificateValidity(pfx);
|
|
48
54
|
const signedXml = signDps(unsignedXml, dpsId, pfx);
|
|
49
|
-
if (!verifyDps(signedXml, pfx.certPem)) {
|
|
55
|
+
if (!verifyDps(signedXml, resolveCredentials(pfx).certPem)) {
|
|
50
56
|
throw new Error('A assinatura XML da DPS nao pode ser verificada.');
|
|
51
57
|
}
|
|
52
58
|
return { ambiente, dpsId, unsignedXml, signedXml };
|
|
53
59
|
}
|
|
54
60
|
/** Sends an already validated, signed and persistable DPS. */
|
|
55
61
|
export async function transmitirNotaPreparada(nota, pfx) {
|
|
62
|
+
assertEnvironment(dpsEnvironment(nota.signedXml), nota.ambiente);
|
|
63
|
+
assertCertificateValidity(pfx);
|
|
56
64
|
const dpsXmlGZipB64 = gzipBase64(nota.signedXml);
|
|
57
65
|
const { status, body } = await transmitirDpsCompactada(dpsXmlGZipB64, pfx, nota.ambiente);
|
|
58
66
|
const nfseB64 = body?.nfseXmlGZipB64 ?? body?.NfseXmlGZipB64;
|
|
59
67
|
if (status >= 200 && status < 300 && nfseB64) {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
68
|
+
try {
|
|
69
|
+
const nfseXml = gunzipBase64(nfseB64);
|
|
70
|
+
const chaveAcesso = authorizedAccessKey(nfseXml, body);
|
|
71
|
+
return { chaveAcesso, dpsId: nota.dpsId, nfseXml, status, body };
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
if (error instanceof XsdEngineUnavailableError)
|
|
75
|
+
throw error;
|
|
76
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
77
|
+
throw new EmitirNotaError(`Resposta de autorizacao invalida (HTTP ${status}): ${message}`, status, [{ Codigo: 'INVALID_AUTHORIZATION_RESPONSE', Descricao: message }], nota.dpsId, body);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
if (status >= 200 && status < 300) {
|
|
81
|
+
throw new EmitirNotaError(`Resposta de autorizacao incompleta (HTTP ${status}): XML da NFS-e ausente`, status, [...extrairErros(body), { Codigo: 'INVALID_AUTHORIZATION_RESPONSE', Descricao: 'XML da NFS-e ausente' }], nota.dpsId, body);
|
|
63
82
|
}
|
|
64
83
|
throw new EmitirNotaError(`Emissao rejeitada (HTTP ${status})`, status, extrairErros(body), nota.dpsId, body);
|
|
65
84
|
}
|
package/dist/emissaoNota.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emissaoNota.js","sourceRoot":"","sources":["../emissaoNota.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"emissaoNota.js","sourceRoot":"","sources":["../emissaoNota.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Code domains accepted by the JSON validator, shared with the JSON Schema so
|
|
3
|
+
* both reject the same values. Labels follow the v1.01 XSD documentation.
|
|
4
|
+
*/
|
|
5
|
+
export type LabeledDomain = Readonly<Record<string, string>>;
|
|
6
|
+
export declare const OP_SIMP_NAC: LabeledDomain;
|
|
7
|
+
export declare const REG_AP_TRIB_SN: LabeledDomain;
|
|
8
|
+
export declare const REG_ESP_TRIB: LabeledDomain;
|
|
9
|
+
export declare const TRIB_ISSQN: LabeledDomain;
|
|
10
|
+
export declare const TP_RET_ISSQN: LabeledDomain;
|
|
11
|
+
export declare const TP_IMUNIDADE: LabeledDomain;
|
|
12
|
+
/** `0` exists in the XSD but is restricted to notes imported from another origin. */
|
|
13
|
+
export declare const C_NAO_NIF: LabeledDomain;
|
|
14
|
+
export declare const TP_RET_PIS_COFINS: LabeledDomain;
|
|
15
|
+
export declare const PIS_COFINS_CST: readonly string[];
|
|
16
|
+
export declare const MD_PRESTACAO: LabeledDomain;
|
|
17
|
+
export declare const VINC_PREST: LabeledDomain;
|
|
18
|
+
export declare const MEC_AF_COMEX_P: readonly string[];
|
|
19
|
+
export declare const MEC_AF_COMEX_T: readonly string[];
|
|
20
|
+
export declare const MOV_TEMP_BENS: LabeledDomain;
|
|
21
|
+
export declare const MDIC: LabeledDomain;
|
|
22
|
+
export declare function domainValues(domain: LabeledDomain | readonly string[]): string[];
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Code domains accepted by the JSON validator, shared with the JSON Schema so
|
|
3
|
+
* both reject the same values. Labels follow the v1.01 XSD documentation.
|
|
4
|
+
*/
|
|
5
|
+
export const OP_SIMP_NAC = {
|
|
6
|
+
'1': 'Nao optante',
|
|
7
|
+
'2': 'Optante MEI',
|
|
8
|
+
'3': 'Optante ME/EPP',
|
|
9
|
+
};
|
|
10
|
+
export const REG_AP_TRIB_SN = {
|
|
11
|
+
'1': 'Tributos federais e municipal apurados pelo SN',
|
|
12
|
+
'2': 'Tributos federais pelo SN; ISSQN fora do SN',
|
|
13
|
+
'3': 'Tributos federais e municipal fora do SN',
|
|
14
|
+
};
|
|
15
|
+
export const REG_ESP_TRIB = {
|
|
16
|
+
'0': 'Nenhum',
|
|
17
|
+
'1': 'Ato cooperado (cooperativa)',
|
|
18
|
+
'2': 'Estimativa',
|
|
19
|
+
'3': 'Microempresa municipal',
|
|
20
|
+
'4': 'Notario ou registrador',
|
|
21
|
+
'5': 'Profissional autonomo',
|
|
22
|
+
'6': 'Sociedade de profissionais',
|
|
23
|
+
'9': 'Outros',
|
|
24
|
+
};
|
|
25
|
+
export const TRIB_ISSQN = {
|
|
26
|
+
'1': 'Operacao tributavel',
|
|
27
|
+
'2': 'Imunidade',
|
|
28
|
+
'3': 'Exportacao de servico',
|
|
29
|
+
'4': 'Nao incidencia',
|
|
30
|
+
};
|
|
31
|
+
export const TP_RET_ISSQN = {
|
|
32
|
+
'1': 'Nao retido',
|
|
33
|
+
'2': 'Retido pelo tomador',
|
|
34
|
+
'3': 'Retido pelo intermediario',
|
|
35
|
+
};
|
|
36
|
+
export const TP_IMUNIDADE = {
|
|
37
|
+
'0': 'Imunidade (tipo nao informado na nota de origem)',
|
|
38
|
+
'1': 'Patrimonio, renda ou servicos, uns dos outros (CF88, art. 150, VI, a)',
|
|
39
|
+
'2': 'Templos de qualquer culto (CF88, art. 150, VI, b)',
|
|
40
|
+
'3': 'Partidos politicos, sindicatos, educacao e assistencia social sem fins lucrativos (CF88, art. 150, VI, c)',
|
|
41
|
+
'4': 'Livros, jornais, periodicos e papel de impressao (CF88, art. 150, VI, d)',
|
|
42
|
+
'5': 'Fonogramas e videofonogramas musicais brasileiros (CF88, art. 150, VI, e)',
|
|
43
|
+
};
|
|
44
|
+
/** `0` exists in the XSD but is restricted to notes imported from another origin. */
|
|
45
|
+
export const C_NAO_NIF = {
|
|
46
|
+
'1': 'Dispensado do NIF',
|
|
47
|
+
'2': 'Nao exigencia do NIF',
|
|
48
|
+
};
|
|
49
|
+
export const TP_RET_PIS_COFINS = {
|
|
50
|
+
'0': 'PIS/COFINS/CSLL nao retidos',
|
|
51
|
+
'1': 'PIS/COFINS retidos',
|
|
52
|
+
'2': 'PIS/COFINS nao retidos',
|
|
53
|
+
'3': 'PIS/COFINS/CSLL retidos',
|
|
54
|
+
'4': 'PIS/COFINS retidos, CSLL nao retido',
|
|
55
|
+
'5': 'PIS retido, COFINS/CSLL nao retidos',
|
|
56
|
+
'6': 'COFINS retido, PIS/CSLL nao retidos',
|
|
57
|
+
'7': 'PIS nao retido, COFINS/CSLL retidos',
|
|
58
|
+
'8': 'PIS/COFINS nao retidos, CSLL retido',
|
|
59
|
+
'9': 'COFINS nao retido, PIS/CSLL retidos',
|
|
60
|
+
};
|
|
61
|
+
export const PIS_COFINS_CST = [
|
|
62
|
+
'00', '01', '02', '03', '04', '05', '06', '07', '08', '09',
|
|
63
|
+
'49', '50', '51', '52', '53', '54', '55', '56',
|
|
64
|
+
'60', '61', '62', '63', '64', '65', '66', '67',
|
|
65
|
+
'70', '71', '72', '73', '74', '75', '98', '99',
|
|
66
|
+
];
|
|
67
|
+
export const MD_PRESTACAO = {
|
|
68
|
+
'0': 'Desconhecido',
|
|
69
|
+
'1': 'Transfronteirico',
|
|
70
|
+
'2': 'Consumo no Brasil',
|
|
71
|
+
'3': 'Presenca comercial no exterior',
|
|
72
|
+
'4': 'Movimento temporario de pessoas fisicas',
|
|
73
|
+
};
|
|
74
|
+
export const VINC_PREST = {
|
|
75
|
+
'0': 'Sem vinculo',
|
|
76
|
+
'1': 'Controlada',
|
|
77
|
+
'2': 'Controladora',
|
|
78
|
+
'3': 'Coligada',
|
|
79
|
+
'4': 'Matriz',
|
|
80
|
+
'5': 'Filial ou sucursal',
|
|
81
|
+
'6': 'Outro vinculo',
|
|
82
|
+
'9': 'Desconhecido',
|
|
83
|
+
};
|
|
84
|
+
export const MEC_AF_COMEX_P = Array.from({ length: 9 }, (_, i) => String(i).padStart(2, '0'));
|
|
85
|
+
export const MEC_AF_COMEX_T = Array.from({ length: 27 }, (_, i) => String(i).padStart(2, '0'));
|
|
86
|
+
export const MOV_TEMP_BENS = {
|
|
87
|
+
'0': 'Desconhecido',
|
|
88
|
+
'1': 'Nao',
|
|
89
|
+
'2': 'Vinculada a declaracao de importacao',
|
|
90
|
+
'3': 'Vinculada a declaracao de exportacao',
|
|
91
|
+
};
|
|
92
|
+
export const MDIC = {
|
|
93
|
+
'0': 'Nao enviar para o MDIC',
|
|
94
|
+
'1': 'Enviar para o MDIC',
|
|
95
|
+
};
|
|
96
|
+
export function domainValues(domain) {
|
|
97
|
+
return Array.isArray(domain) ? [...domain] : Object.keys(domain);
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=fiscalDomains.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fiscalDomains.js","sourceRoot":"","sources":["../fiscalDomains.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,5 +25,6 @@ export interface DpsValidationReport<T = unknown> {
|
|
|
25
25
|
export declare function validationIssueFromMessage(message: string): DpsValidationIssue;
|
|
26
26
|
/** Canonical non-throwing validation API shared by clients, APIs and workers. */
|
|
27
27
|
export declare function validateDpsJsonRequest<T extends DpsJsonRequest>(request: T): DpsValidationReport<T>;
|
|
28
|
+
export declare function validateDpsJsonRequest(request: unknown): DpsValidationReport<unknown>;
|
|
28
29
|
/** Assertion used by builders that cannot produce output from an invalid request. */
|
|
29
30
|
export declare function assertValidDpsJsonRequest(request: DpsJsonRequest): void;
|