@useinvio/nfse-sdk 3.0.0 → 3.2.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/CHANGELOG.md +176 -0
- package/README.en.md +146 -0
- package/README.md +77 -518
- package/dist/agent.d.ts +131 -0
- package/dist/agent.js +551 -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 +11 -6
- package/dist/certificateValidation.js +23 -12
- package/dist/certificateValidation.js.map +1 -1
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +520 -0
- package/dist/cli.js.map +1 -0
- package/dist/cliBin.d.ts +2 -0
- package/dist/cliBin.js +6 -0
- package/dist/cliBin.js.map +1 -0
- package/dist/cliExample.d.ts +6 -0
- package/dist/cliExample.js +29 -0
- package/dist/cliExample.js.map +1 -0
- package/dist/client.d.ts +51 -4
- package/dist/client.js +41 -10
- package/dist/client.js.map +1 -1
- package/dist/config.d.ts +3 -0
- package/dist/config.js +8 -0
- package/dist/config.js.map +1 -1
- package/dist/consultas.d.ts +34 -0
- package/dist/consultas.js +61 -0
- package/dist/consultas.js.map +1 -0
- package/dist/dpsJson.js +1 -41
- 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/emissaoNota.d.ts +11 -6
- package/dist/emissaoNota.js +10 -6
- package/dist/emissaoNota.js.map +1 -1
- package/dist/eventoJson.d.ts +76 -0
- package/dist/eventoJson.js +128 -0
- package/dist/eventoJson.js.map +1 -0
- package/dist/eventosNfse.d.ts +38 -0
- package/dist/eventosNfse.js +73 -0
- package/dist/eventosNfse.js.map +1 -0
- package/dist/fiscalDomains.d.ts +22 -0
- package/dist/fiscalDomains.js +99 -0
- package/dist/fiscalDomains.js.map +1 -0
- package/dist/fiscalValidation.js +21 -53
- package/dist/fiscalValidation.js.map +1 -1
- package/dist/gzipB64.d.ts +5 -0
- package/dist/gzipB64.js +12 -0
- package/dist/gzipB64.js.map +1 -1
- package/dist/index.d.ts +22 -7
- package/dist/index.js +11 -4
- 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/mcpCli.d.ts +2 -0
- package/dist/mcpCli.js +7 -0
- package/dist/mcpCli.js.map +1 -0
- package/dist/mcpServer.d.ts +49 -0
- package/dist/mcpServer.js +159 -0
- package/dist/mcpServer.js.map +1 -0
- package/dist/nfseXml.d.ts +48 -0
- package/dist/nfseXml.js +86 -0
- package/dist/nfseXml.js.map +1 -0
- package/dist/rejeicoes.d.ts +50 -0
- package/dist/rejeicoes.js +62 -0
- package/dist/rejeicoes.js.map +1 -0
- package/dist/rejeicoesCatalog.d.ts +10 -0
- package/dist/rejeicoesCatalog.js +4449 -0
- package/dist/rejeicoesCatalog.js.map +1 -0
- package/dist/sefinClient.d.ts +107 -7
- package/dist/sefinClient.js +232 -22
- package/dist/sefinClient.js.map +1 -1
- package/dist/signXml.d.ts +3 -3
- package/dist/signXml.js +17 -7
- package/dist/signXml.js.map +1 -1
- package/dist/testing.d.ts +80 -0
- package/dist/testing.js +285 -0
- package/dist/testing.js.map +1 -0
- package/dist/xmlBuild.d.ts +11 -0
- package/dist/xmlBuild.js +44 -0
- package/dist/xmlBuild.js.map +1 -0
- package/dist/xmlInspection.d.ts +1 -1
- package/dist/xmlInspection.js +10 -9
- package/dist/xmlInspection.js.map +1 -1
- package/dist/xsdValidation.d.ts +24 -5
- package/dist/xsdValidation.js +97 -67
- package/dist/xsdValidation.js.map +1 -1
- package/docs/README.md +47 -0
- package/docs/REGRAS_NEGOCIO_EMISSAO.md +8 -8
- package/docs/conceitos/como-funciona.md +87 -0
- package/docs/guias/adn.md +51 -0
- package/docs/guias/agentes-ia.md +111 -0
- package/docs/guias/cancelar.md +70 -0
- package/docs/guias/certificado.md +88 -0
- package/docs/guias/cli.md +68 -0
- package/docs/guias/consultar.md +54 -0
- package/docs/guias/emitir.md +172 -0
- package/docs/guias/recuperar-emissao.md +33 -0
- package/docs/guias/rejeicoes.md +70 -0
- package/docs/guias/testes.md +79 -0
- package/docs/guias/timeouts.md +33 -0
- package/docs/referencia/ambientes.md +35 -0
- package/docs/referencia/api.md +137 -0
- package/docs/referencia/erros.md +55 -0
- package/docs/tutoriais/primeira-nfse.md +130 -0
- package/examples/README.md +3 -1
- package/examples/cancel-nfse.ts +29 -0
- package/examples/client-resource.ts +3 -5
- package/examples/emit-homologation.ts +3 -4
- package/examples/handle-errors.ts +3 -3
- package/examples/recover-emission.ts +29 -0
- package/llms.txt +97 -82
- package/package.json +31 -6
package/dist/sefinClient.js
CHANGED
|
@@ -1,9 +1,47 @@
|
|
|
1
1
|
import https from 'node:https';
|
|
2
2
|
import { performance } from 'node:perf_hooks';
|
|
3
|
-
import { resolveSefinBaseUrl } from './config.js';
|
|
3
|
+
import { resolveAdnBaseUrl, resolveSefinBaseUrl } from './config.js';
|
|
4
|
+
import { resolveCredentials } from './certificate.js';
|
|
4
5
|
/** Evita que uma conexao travada com o SEFIN prenda um worker indefinidamente. */
|
|
5
6
|
const SEFIN_REQUEST_TIMEOUT_MS = 60_000;
|
|
6
7
|
export const SEFIN_LATENCY_METRICS_ENV = 'NFSE_SEFIN_LATENCY_METRICS';
|
|
8
|
+
/** The access key is not 50 digits; raised before any network I/O so it never reaches the URL path. */
|
|
9
|
+
export class ChaveAcessoInvalidaError extends Error {
|
|
10
|
+
chaveAcesso;
|
|
11
|
+
code = 'CHAVE_ACESSO_INVALID_FORMAT';
|
|
12
|
+
constructor(chaveAcesso) {
|
|
13
|
+
super('chaveAcesso deve ter exatamente 50 digitos numericos.');
|
|
14
|
+
this.chaveAcesso = chaveAcesso;
|
|
15
|
+
this.name = 'ChaveAcessoInvalidaError';
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export function assertChaveAcesso(chave) {
|
|
19
|
+
if (typeof chave !== 'string' || !/^\d{50}$/.test(chave))
|
|
20
|
+
throw new ChaveAcessoInvalidaError(String(chave));
|
|
21
|
+
return chave;
|
|
22
|
+
}
|
|
23
|
+
/** A path parameter has the wrong format; raised before any network I/O. */
|
|
24
|
+
export class SefinParametroInvalidoError extends Error {
|
|
25
|
+
field;
|
|
26
|
+
value;
|
|
27
|
+
code = 'SEFIN_PARAMETER_INVALID';
|
|
28
|
+
constructor(field, value, expected) {
|
|
29
|
+
super(`${field} invalido: esperado ${expected}.`);
|
|
30
|
+
this.field = field;
|
|
31
|
+
this.value = value;
|
|
32
|
+
this.name = 'SefinParametroInvalidoError';
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
function assertSegment(field, value, pattern, expected) {
|
|
36
|
+
const text = typeof value === 'number' && Number.isSafeInteger(value) ? String(value) : value;
|
|
37
|
+
if (typeof text !== 'string' || !pattern.test(text))
|
|
38
|
+
throw new SefinParametroInvalidoError(field, String(value), expected);
|
|
39
|
+
return text;
|
|
40
|
+
}
|
|
41
|
+
/** Id da DPS (TSIdDPS): "DPS" + 42 digitos. */
|
|
42
|
+
export function assertDpsId(dpsId) {
|
|
43
|
+
return assertSegment('dpsId', dpsId, /^DPS\d{42}$/, '"DPS" seguido de 42 digitos');
|
|
44
|
+
}
|
|
7
45
|
let sefinRequestObserver;
|
|
8
46
|
export function isSefinLatencyMetricsEnabled(env = process.env) {
|
|
9
47
|
const value = env[SEFIN_LATENCY_METRICS_ENV]?.trim().toLowerCase();
|
|
@@ -95,15 +133,27 @@ export function createSefinLatencyTracker(options = {}) {
|
|
|
95
133
|
},
|
|
96
134
|
};
|
|
97
135
|
}
|
|
136
|
+
let sefinTransport;
|
|
137
|
+
/**
|
|
138
|
+
* @internal Replaces HTTPS with an in-process transport and returns the previous
|
|
139
|
+
* one. Used by `installMockSefin`; never needed in production code.
|
|
140
|
+
*/
|
|
141
|
+
export function setSefinTransport(transport) {
|
|
142
|
+
const previous = sefinTransport;
|
|
143
|
+
sefinTransport = transport;
|
|
144
|
+
return previous;
|
|
145
|
+
}
|
|
98
146
|
/**
|
|
99
147
|
* Requisição mTLS de baixo nível ao SefinNacional, retornando o corpo bruto (Buffer).
|
|
100
|
-
* Usa key+cert PEM
|
|
148
|
+
* Usa key+cert PEM (ou o agente mTLS dedicado de `NfseCertificate`) no handshake;
|
|
149
|
+
* o .pfx legado ICP-Brasil é rejeitado pelo TLS do Node.
|
|
101
150
|
*/
|
|
102
|
-
function sefinRequest(opts,
|
|
151
|
+
function sefinRequest(opts, certificate, metricOpts, baseOverride, requestOptions = {}) {
|
|
103
152
|
const url = new URL(`${baseOverride ?? resolveSefinBaseUrl()}${opts.path}`);
|
|
153
|
+
const timeoutMs = requestOptions.timeoutMs ?? SEFIN_REQUEST_TIMEOUT_MS;
|
|
104
154
|
const payload = opts.jsonBody != null ? JSON.stringify(opts.jsonBody) : undefined;
|
|
105
155
|
const headers = {
|
|
106
|
-
Accept: 'application/json',
|
|
156
|
+
Accept: opts.accept ?? 'application/json',
|
|
107
157
|
};
|
|
108
158
|
if (payload != null) {
|
|
109
159
|
headers['Content-Type'] = 'application/json';
|
|
@@ -115,10 +165,10 @@ function sefinRequest(opts, pfx, metricOpts, baseOverride) {
|
|
|
115
165
|
port: url.port || 443,
|
|
116
166
|
path: url.pathname + url.search,
|
|
117
167
|
headers,
|
|
118
|
-
|
|
119
|
-
cert: pfx.certPem,
|
|
168
|
+
...resolveCredentials(certificate).tls,
|
|
120
169
|
rejectUnauthorized: true,
|
|
121
|
-
timeout:
|
|
170
|
+
timeout: timeoutMs,
|
|
171
|
+
...(requestOptions.signal ? { signal: requestOptions.signal } : {}),
|
|
122
172
|
};
|
|
123
173
|
return new Promise((resolve, reject) => {
|
|
124
174
|
const startedAt = performance.now();
|
|
@@ -132,6 +182,21 @@ function sefinRequest(opts, pfx, metricOpts, baseOverride) {
|
|
|
132
182
|
durationMs: performance.now() - startedAt,
|
|
133
183
|
});
|
|
134
184
|
};
|
|
185
|
+
if (sefinTransport) {
|
|
186
|
+
const base = { operation: metricOpts.operation, ambiente: metricOpts.ambiente, method: opts.method, pathTemplate: metricOpts.pathTemplate };
|
|
187
|
+
sefinTransport({ method: opts.method, url, headers, body: payload, certificate, signal: requestOptions.signal }).then((res) => {
|
|
188
|
+
emitMetric({ ...base, status: res.status, success: res.status >= 200 && res.status < 300 });
|
|
189
|
+
resolve({
|
|
190
|
+
status: res.status,
|
|
191
|
+
contentType: res.contentType ?? 'application/json',
|
|
192
|
+
buffer: Buffer.isBuffer(res.body) ? res.body : Buffer.from(res.body ?? ''),
|
|
193
|
+
});
|
|
194
|
+
}, (error) => {
|
|
195
|
+
emitMetric({ ...base, success: false, errorName: error.name, errorMessage: error.message });
|
|
196
|
+
reject(error);
|
|
197
|
+
});
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
135
200
|
const req = https.request(options, (res) => {
|
|
136
201
|
const chunks = [];
|
|
137
202
|
res.on('data', (c) => chunks.push(c));
|
|
@@ -165,13 +230,52 @@ function sefinRequest(opts, pfx, metricOpts, baseOverride) {
|
|
|
165
230
|
reject(error);
|
|
166
231
|
});
|
|
167
232
|
req.on('timeout', () => {
|
|
168
|
-
req.destroy(new Error(`SEFIN request timed out after ${
|
|
233
|
+
req.destroy(new Error(`SEFIN request timed out after ${timeoutMs}ms`));
|
|
169
234
|
});
|
|
170
235
|
if (payload != null)
|
|
171
236
|
req.write(payload);
|
|
172
237
|
req.end();
|
|
173
238
|
});
|
|
174
239
|
}
|
|
240
|
+
const RETRYABLE_STATUS = new Set([429, 502, 503, 504]);
|
|
241
|
+
function retryDelayMs(attempt) {
|
|
242
|
+
const base = Math.min(4_000, 500 * 2 ** attempt);
|
|
243
|
+
return base / 2 + Math.random() * (base / 2);
|
|
244
|
+
}
|
|
245
|
+
function sleep(ms, signal) {
|
|
246
|
+
return new Promise((resolve, reject) => {
|
|
247
|
+
if (signal?.aborted) {
|
|
248
|
+
reject(signal.reason);
|
|
249
|
+
return;
|
|
250
|
+
}
|
|
251
|
+
const timer = setTimeout(() => { signal?.removeEventListener('abort', onAbort); resolve(); }, ms);
|
|
252
|
+
const onAbort = () => { clearTimeout(timer); reject(signal.reason); };
|
|
253
|
+
signal?.addEventListener('abort', onAbort, { once: true });
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Executes the request, retrying transient failures. Only GETs are retried:
|
|
258
|
+
* emission and event POSTs are not idempotent and must never be resent blindly
|
|
259
|
+
* (recover a timed-out emission with `consultarDps`).
|
|
260
|
+
*/
|
|
261
|
+
async function sefinRequestWithRetry(opts, certificate, metricOpts, baseOverride, requestOptions = {}) {
|
|
262
|
+
const retries = opts.method === 'GET' ? Math.max(0, Math.floor(requestOptions.retries ?? 0)) : 0;
|
|
263
|
+
for (let attempt = 0;; attempt += 1) {
|
|
264
|
+
try {
|
|
265
|
+
const res = await sefinRequest(opts, certificate, metricOpts, baseOverride, requestOptions);
|
|
266
|
+
if (attempt < retries && RETRYABLE_STATUS.has(res.status)) {
|
|
267
|
+
await sleep(retryDelayMs(attempt), requestOptions.signal);
|
|
268
|
+
continue;
|
|
269
|
+
}
|
|
270
|
+
return res;
|
|
271
|
+
}
|
|
272
|
+
catch (error) {
|
|
273
|
+
if (attempt >= retries || requestOptions.signal?.aborted)
|
|
274
|
+
throw error;
|
|
275
|
+
await sleep(retryDelayMs(attempt), requestOptions.signal);
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
}
|
|
175
279
|
/** Parseia o corpo como JSON; mantém texto cru se não for JSON (ex.: 403 HTML). */
|
|
176
280
|
function parseJson(raw) {
|
|
177
281
|
const text = raw.buffer.toString('utf-8');
|
|
@@ -227,23 +331,129 @@ export function extrairErros(body) {
|
|
|
227
331
|
{ Codigo: 'DESCONHECIDO', Descricao: JSON.stringify(body) },
|
|
228
332
|
];
|
|
229
333
|
}
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
334
|
+
function sefinBase(ambiente) {
|
|
335
|
+
return ambiente ? resolveSefinBaseUrl(ambiente) : undefined;
|
|
336
|
+
}
|
|
337
|
+
/** SefinNacional · POST /nfse — transporte baixo nivel de DPS ja compactada em GZip+Base64. Nunca repetido automaticamente. */
|
|
338
|
+
export async function transmitirDpsCompactada(dpsXmlGZipB64, pfx, ambiente, options) {
|
|
339
|
+
return parseJson(await sefinRequestWithRetry({ method: 'POST', path: '/nfse', jsonBody: { dpsXmlGZipB64 } }, pfx, { operation: 'transmitir_dps', ambiente, pathTemplate: '/nfse' }, sefinBase(ambiente), options));
|
|
234
340
|
}
|
|
235
341
|
/** SefinNacional · GET /nfse/{chave} — consulta a NFS-e pela chave de acesso (50 dígitos). */
|
|
236
|
-
export async function consultarNfse(chave, pfx, ambiente) {
|
|
237
|
-
|
|
238
|
-
return parseJson(await
|
|
239
|
-
}
|
|
240
|
-
/**
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
342
|
+
export async function consultarNfse(chave, pfx, ambiente, options) {
|
|
343
|
+
assertChaveAcesso(chave);
|
|
344
|
+
return parseJson(await sefinRequestWithRetry({ method: 'GET', path: `/nfse/${chave}` }, pfx, { operation: 'consultar_nfse', ambiente, pathTemplate: '/nfse/{chave}' }, sefinBase(ambiente), options));
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* SefinNacional · GET /dps/{id} — recupera a chave de acesso da NFS-e gerada a
|
|
348
|
+
* partir de uma DPS. Use para recuperar uma emissao que sofreu timeout em vez
|
|
349
|
+
* de reenviar a DPS.
|
|
350
|
+
*/
|
|
351
|
+
export async function consultarDps(dpsId, pfx, ambiente, options) {
|
|
352
|
+
assertDpsId(dpsId);
|
|
353
|
+
return parseJson(await sefinRequestWithRetry({ method: 'GET', path: `/dps/${dpsId}` }, pfx, { operation: 'consultar_dps', ambiente, pathTemplate: '/dps/{id}' }, sefinBase(ambiente), options));
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* SefinNacional · POST /nfse/{chave}/eventos — registra evento fiscal da NFS-e.
|
|
357
|
+
* O corpo usa o campo oficial `pedidoRegistroEventoXmlGZipB64`. Nunca repetido automaticamente.
|
|
358
|
+
*/
|
|
359
|
+
export async function enviarEvento(pedidoRegistroEventoXmlGZipB64, pfx, chaveAcesso, ambiente, options) {
|
|
360
|
+
assertChaveAcesso(chaveAcesso);
|
|
361
|
+
return parseJson(await sefinRequestWithRetry({
|
|
244
362
|
method: 'POST',
|
|
245
363
|
path: `/nfse/${chaveAcesso}/eventos`,
|
|
246
|
-
jsonBody: {
|
|
247
|
-
}, pfx, { operation: 'enviar_evento', ambiente, pathTemplate: '/nfse/{chave}/eventos' },
|
|
364
|
+
jsonBody: { pedidoRegistroEventoXmlGZipB64 },
|
|
365
|
+
}, pfx, { operation: 'enviar_evento', ambiente, pathTemplate: '/nfse/{chave}/eventos' }, sefinBase(ambiente), options));
|
|
366
|
+
}
|
|
367
|
+
/** SefinNacional · GET /nfse/{chave}/eventos/{tpEvento}/{nSeqEvento} — consulta um evento registrado. */
|
|
368
|
+
export async function consultarEvento(chaveAcesso, tpEvento, pfx, ambiente, options = {}) {
|
|
369
|
+
assertChaveAcesso(chaveAcesso);
|
|
370
|
+
const tipo = assertSegment('tpEvento', tpEvento, /^\d{6}$/, '6 digitos (ex.: 101101)');
|
|
371
|
+
const seq = assertSegment('nSeqEvento', options.nSeqEvento ?? 1, /^\d{1,3}$/, '1 a 3 digitos');
|
|
372
|
+
return parseJson(await sefinRequestWithRetry({ method: 'GET', path: `/nfse/${chaveAcesso}/eventos/${tipo}/${seq}` }, pfx, { operation: 'consultar_evento', ambiente, pathTemplate: '/nfse/{chave}/eventos/{tpEvento}/{nSeqEvento}' }, sefinBase(ambiente), options));
|
|
373
|
+
}
|
|
374
|
+
/** ADN · GET /danfse/{chave} — baixa o PDF do DANFSe gerado pelo Ambiente de Dados Nacional. */
|
|
375
|
+
export async function baixarDanfse(chaveAcesso, pfx, ambiente, options) {
|
|
376
|
+
assertChaveAcesso(chaveAcesso);
|
|
377
|
+
const raw = await sefinRequestWithRetry({ method: 'GET', path: `/danfse/${chaveAcesso}`, accept: 'application/pdf' }, pfx, { operation: 'baixar_danfse', ambiente, pathTemplate: '/danfse/{chave}' }, resolveAdnBaseUrl(ambiente), options);
|
|
378
|
+
const isPdf = raw.buffer.subarray(0, 5).toString('latin1') === '%PDF-';
|
|
379
|
+
if (raw.status >= 200 && raw.status < 300 && isPdf) {
|
|
380
|
+
return { status: raw.status, contentType: raw.contentType, pdf: raw.buffer };
|
|
381
|
+
}
|
|
382
|
+
return { status: raw.status, contentType: raw.contentType, body: parseJson(raw).body };
|
|
383
|
+
}
|
|
384
|
+
/** ADN · GET /contribuintes/DFe/{nsu} — distribuicao de documentos fiscais (emitidos e recebidos) por NSU. */
|
|
385
|
+
export async function distribuirDfePorNsu(nsu, pfx, ambiente, options = {}) {
|
|
386
|
+
const nsuText = assertSegment('nsu', nsu, /^\d{1,20}$/, 'ate 20 digitos');
|
|
387
|
+
const query = new URLSearchParams();
|
|
388
|
+
if (options.cnpjConsulta) {
|
|
389
|
+
query.set('cnpjConsulta', assertSegment('cnpjConsulta', options.cnpjConsulta.replace(/\D/g, ''), /^\d{14}$/, '14 digitos'));
|
|
390
|
+
}
|
|
391
|
+
if (options.lote !== undefined)
|
|
392
|
+
query.set('lote', String(options.lote));
|
|
393
|
+
const queryString = query.size > 0 ? `?${query.toString()}` : '';
|
|
394
|
+
return parseJson(await sefinRequestWithRetry({ method: 'GET', path: `/contribuintes/DFe/${nsuText}${queryString}` }, pfx, { operation: 'adn_distribuicao_nsu', ambiente, pathTemplate: '/contribuintes/DFe/{nsu}' }, resolveAdnBaseUrl(ambiente), options));
|
|
395
|
+
}
|
|
396
|
+
/** ADN · GET /contribuintes/NFSe/{chave}/Eventos — todos os eventos vinculados a NFS-e. */
|
|
397
|
+
export async function consultarEventosPorChaveAdn(chaveAcesso, pfx, ambiente, options) {
|
|
398
|
+
assertChaveAcesso(chaveAcesso);
|
|
399
|
+
return parseJson(await sefinRequestWithRetry({ method: 'GET', path: `/contribuintes/NFSe/${chaveAcesso}/Eventos` }, pfx, { operation: 'adn_eventos_chave', ambiente, pathTemplate: '/contribuintes/NFSe/{chave}/Eventos' }, resolveAdnBaseUrl(ambiente), options));
|
|
400
|
+
}
|
|
401
|
+
const COD_MUN = /^\d{7}$/;
|
|
402
|
+
const COD_SERVICO = /^[0-9.]{1,12}$/;
|
|
403
|
+
const COMPETENCIA = /^\d{4}-\d{2}-\d{2}(T[0-9:.+-]+)?$/;
|
|
404
|
+
async function consultarParametrosMunicipais(segments, pathTemplate, pfx, ambiente, options) {
|
|
405
|
+
const path = `/parametrizacao/${segments.map(encodeURIComponent).join('/')}`;
|
|
406
|
+
return parseJson(await sefinRequestWithRetry({ method: 'GET', path }, pfx, { operation: 'adn_parametros_municipais', ambiente, pathTemplate }, resolveAdnBaseUrl(ambiente), options));
|
|
407
|
+
}
|
|
408
|
+
/** ADN · GET /parametrizacao/{codMun}/convenio — situacao do convenio do municipio com o Sistema Nacional. */
|
|
409
|
+
export async function consultarConvenio(codigoMunicipio, pfx, ambiente, options) {
|
|
410
|
+
const mun = assertSegment('codigoMunicipio', codigoMunicipio, COD_MUN, '7 digitos IBGE');
|
|
411
|
+
return consultarParametrosMunicipais([mun, 'convenio'], '/parametrizacao/{codMun}/convenio', pfx, ambiente, options);
|
|
412
|
+
}
|
|
413
|
+
/**
|
|
414
|
+
* ADN · GET /parametrizacao/{codMun}/{codServico}/{competencia}/aliquota — aliquota
|
|
415
|
+
* do ISSQN vigente para o servico na competencia (AAAA-MM-DD).
|
|
416
|
+
*/
|
|
417
|
+
export async function consultarAliquota(codigoMunicipio, codigoServico, competencia, pfx, ambiente, options) {
|
|
418
|
+
return consultarParametrosMunicipais([
|
|
419
|
+
assertSegment('codigoMunicipio', codigoMunicipio, COD_MUN, '7 digitos IBGE'),
|
|
420
|
+
assertSegment('codigoServico', codigoServico, COD_SERVICO, 'codigo de servico (ex.: 01.01.01)'),
|
|
421
|
+
assertSegment('competencia', competencia, COMPETENCIA, 'data AAAA-MM-DD'),
|
|
422
|
+
'aliquota',
|
|
423
|
+
], '/parametrizacao/{codMun}/{codServico}/{competencia}/aliquota', pfx, ambiente, options);
|
|
424
|
+
}
|
|
425
|
+
/** ADN · GET /parametrizacao/{codMun}/{codServico}/historicoaliquotas — historico de aliquotas do servico. */
|
|
426
|
+
export async function consultarHistoricoAliquotas(codigoMunicipio, codigoServico, pfx, ambiente, options) {
|
|
427
|
+
return consultarParametrosMunicipais([
|
|
428
|
+
assertSegment('codigoMunicipio', codigoMunicipio, COD_MUN, '7 digitos IBGE'),
|
|
429
|
+
assertSegment('codigoServico', codigoServico, COD_SERVICO, 'codigo de servico (ex.: 01.01.01)'),
|
|
430
|
+
'historicoaliquotas',
|
|
431
|
+
], '/parametrizacao/{codMun}/{codServico}/historicoaliquotas', pfx, ambiente, options);
|
|
432
|
+
}
|
|
433
|
+
/** ADN · GET /parametrizacao/{codMun}/{codServico}/{competencia}/regimes_especiais — regimes especiais de tributacao. */
|
|
434
|
+
export async function consultarRegimesEspeciais(codigoMunicipio, codigoServico, competencia, pfx, ambiente, options) {
|
|
435
|
+
return consultarParametrosMunicipais([
|
|
436
|
+
assertSegment('codigoMunicipio', codigoMunicipio, COD_MUN, '7 digitos IBGE'),
|
|
437
|
+
assertSegment('codigoServico', codigoServico, COD_SERVICO, 'codigo de servico (ex.: 01.01.01)'),
|
|
438
|
+
assertSegment('competencia', competencia, COMPETENCIA, 'data AAAA-MM-DD'),
|
|
439
|
+
'regimes_especiais',
|
|
440
|
+
], '/parametrizacao/{codMun}/{codServico}/{competencia}/regimes_especiais', pfx, ambiente, options);
|
|
441
|
+
}
|
|
442
|
+
/** ADN · GET /parametrizacao/{codMun}/{competencia}/retencoes — retencoes de ISSQN do municipio. */
|
|
443
|
+
export async function consultarRetencoes(codigoMunicipio, competencia, pfx, ambiente, options) {
|
|
444
|
+
return consultarParametrosMunicipais([
|
|
445
|
+
assertSegment('codigoMunicipio', codigoMunicipio, COD_MUN, '7 digitos IBGE'),
|
|
446
|
+
assertSegment('competencia', competencia, COMPETENCIA, 'data AAAA-MM-DD'),
|
|
447
|
+
'retencoes',
|
|
448
|
+
], '/parametrizacao/{codMun}/{competencia}/retencoes', pfx, ambiente, options);
|
|
449
|
+
}
|
|
450
|
+
/** ADN · GET /parametrizacao/{codMun}/{numeroBeneficio}/{competencia}/beneficio — beneficio municipal. */
|
|
451
|
+
export async function consultarBeneficio(codigoMunicipio, numeroBeneficio, competencia, pfx, ambiente, options) {
|
|
452
|
+
return consultarParametrosMunicipais([
|
|
453
|
+
assertSegment('codigoMunicipio', codigoMunicipio, COD_MUN, '7 digitos IBGE'),
|
|
454
|
+
assertSegment('numeroBeneficio', numeroBeneficio, /^[0-9A-Za-z]{1,20}$/, 'ate 20 caracteres alfanumericos'),
|
|
455
|
+
assertSegment('competencia', competencia, COMPETENCIA, 'data AAAA-MM-DD'),
|
|
456
|
+
'beneficio',
|
|
457
|
+
], '/parametrizacao/{codMun}/{numeroBeneficio}/{competencia}/beneficio', pfx, ambiente, options);
|
|
248
458
|
}
|
|
249
459
|
//# sourceMappingURL=sefinClient.js.map
|
package/dist/sefinClient.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sefinClient.js","sourceRoot":"","sources":["../sefinClient.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sefinClient.js","sourceRoot":"","sources":["../sefinClient.ts"],"names":[],"mappings":"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"}
|
package/dist/signXml.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type CertificateInput } from './certificate.js';
|
|
2
2
|
/** Garante declaracao XML UTF-8 antes de compactar/enviar para a SEFIN. */
|
|
3
3
|
export declare function withUtf8XmlDeclaration(xml: string): string;
|
|
4
4
|
/**
|
|
@@ -6,8 +6,8 @@ export declare function withUtf8XmlDeclaration(xml: string): string;
|
|
|
6
6
|
* seu Id (URI="#<id>"). A <Signature> é inserida como irmã desse elemento.
|
|
7
7
|
* Usado para infDPS (emissão) e infPedReg (eventos/cancelamento).
|
|
8
8
|
*/
|
|
9
|
-
export declare function signEnveloped(xml: string, refId: string, localName: string,
|
|
9
|
+
export declare function signEnveloped(xml: string, refId: string, localName: string, certificate: CertificateInput): string;
|
|
10
10
|
/** Assina a DPS (referência em infDPS). */
|
|
11
|
-
export declare function signDps(xml: string, dpsId: string,
|
|
11
|
+
export declare function signDps(xml: string, dpsId: string, certificate: CertificateInput): string;
|
|
12
12
|
/** Valida uma DPS assinada usando o certificado fornecido. Útil em testes. */
|
|
13
13
|
export declare function verifyDps(signedXml: string, certPem: string): boolean;
|
package/dist/signXml.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { SignedXml } from 'xml-crypto';
|
|
2
2
|
import { DOMParser } from '@xmldom/xmldom';
|
|
3
|
+
import { resolveCredentials } from './certificate.js';
|
|
3
4
|
// Algoritmos observados nas NFS-e reais do Sistema Nacional.
|
|
4
5
|
// Centralizados aqui para troca fácil caso o ambiente exija variantes.
|
|
5
6
|
const SIGNATURE_ALGORITHM = 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha256';
|
|
@@ -16,11 +17,12 @@ export function withUtf8XmlDeclaration(xml) {
|
|
|
16
17
|
* seu Id (URI="#<id>"). A <Signature> é inserida como irmã desse elemento.
|
|
17
18
|
* Usado para infDPS (emissão) e infPedReg (eventos/cancelamento).
|
|
18
19
|
*/
|
|
19
|
-
export function signEnveloped(xml, refId, localName,
|
|
20
|
+
export function signEnveloped(xml, refId, localName, certificate) {
|
|
21
|
+
const credentials = resolveCredentials(certificate);
|
|
20
22
|
const xpath = `//*[local-name(.)='${localName}']`;
|
|
21
23
|
const sig = new SignedXml({
|
|
22
|
-
privateKey:
|
|
23
|
-
publicCert:
|
|
24
|
+
privateKey: credentials.privateKey,
|
|
25
|
+
publicCert: credentials.certPem,
|
|
24
26
|
signatureAlgorithm: SIGNATURE_ALGORITHM,
|
|
25
27
|
canonicalizationAlgorithm: CANON_ALGORITHM,
|
|
26
28
|
});
|
|
@@ -31,13 +33,13 @@ export function signEnveloped(xml, refId, localName, pfx) {
|
|
|
31
33
|
uri: refId,
|
|
32
34
|
});
|
|
33
35
|
// Emite <KeyInfo> com o certificado do titular.
|
|
34
|
-
sig.getKeyInfoContent = () => `<X509Data><X509Certificate>${
|
|
36
|
+
sig.getKeyInfoContent = () => `<X509Data><X509Certificate>${credentials.certDerBase64}</X509Certificate></X509Data>`;
|
|
35
37
|
sig.computeSignature(xml, { location: { reference: xpath, action: 'after' } });
|
|
36
38
|
return withUtf8XmlDeclaration(sig.getSignedXml());
|
|
37
39
|
}
|
|
38
40
|
/** Assina a DPS (referência em infDPS). */
|
|
39
|
-
export function signDps(xml, dpsId,
|
|
40
|
-
return signEnveloped(xml, dpsId, 'infDPS',
|
|
41
|
+
export function signDps(xml, dpsId, certificate) {
|
|
42
|
+
return signEnveloped(xml, dpsId, 'infDPS', certificate);
|
|
41
43
|
}
|
|
42
44
|
/** Valida uma DPS assinada usando o certificado fornecido. Útil em testes. */
|
|
43
45
|
export function verifyDps(signedXml, certPem) {
|
|
@@ -47,6 +49,14 @@ export function verifyDps(signedXml, certPem) {
|
|
|
47
49
|
throw new Error('Nenhuma <Signature> encontrada no XML');
|
|
48
50
|
const sig = new SignedXml({ publicCert: certPem });
|
|
49
51
|
sig.loadSignature(signature);
|
|
50
|
-
|
|
52
|
+
try {
|
|
53
|
+
return sig.checkSignature(signedXml);
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
// xml-crypto 6 throws instead of returning false for a wrong key or tampered content.
|
|
57
|
+
if (error instanceof Error && /invalid signature|digest/i.test(error.message))
|
|
58
|
+
return false;
|
|
59
|
+
throw error;
|
|
60
|
+
}
|
|
51
61
|
}
|
|
52
62
|
//# sourceMappingURL=signXml.js.map
|
package/dist/signXml.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signXml.js","sourceRoot":"","sources":["../signXml.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"signXml.js","sourceRoot":"","sources":["../signXml.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAyB,MAAM,kBAAkB,CAAC;AAE7E,6DAA6D;AAC7D,uEAAuE;AACvE,MAAM,mBAAmB,GAAG,mDAAmD,CAAC;AAChF,MAAM,gBAAgB,GAAG,yCAAyC,CAAC;AACnE,MAAM,eAAe,GAAG,qDAAqD,CAAC;AAC9E,MAAM,SAAS,GAAG,uDAAuD,CAAC;AAE1E,2EAA2E;AAC3E,MAAM,UAAU,sBAAsB,CAAC,GAAW;IAChD,MAAM,qBAAqB,GAAG,GAAG,CAAC,OAAO,CAAC,+BAA+B,EAAE,EAAE,CAAC,CAAC;IAC/E,OAAO,yCAAyC,qBAAqB,EAAE,CAAC;AAC1E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAC3B,GAAW,EACX,KAAa,EACb,SAAiB,EACjB,WAA6B;IAE7B,MAAM,WAAW,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,sBAAsB,SAAS,IAAI,CAAC;IAClD,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC;QACxB,UAAU,EAAE,WAAW,CAAC,UAAU;QAClC,UAAU,EAAE,WAAW,CAAC,OAAO;QAC/B,kBAAkB,EAAE,mBAAmB;QACvC,yBAAyB,EAAE,eAAe;KAC3C,CAAC,CAAC;IAEH,GAAG,CAAC,YAAY,CAAC;QACf,KAAK;QACL,UAAU,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC;QACxC,eAAe,EAAE,gBAAgB;QACjC,GAAG,EAAE,KAAK;KACX,CAAC,CAAC;IAEH,gDAAgD;IAChD,GAAG,CAAC,iBAAiB,GAAG,GAAG,EAAE,CAC3B,8BAA8B,WAAW,CAAC,aAAa,+BAA+B,CAAC;IAEzF,GAAG,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IAC/E,OAAO,sBAAsB,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,OAAO,CAAC,GAAW,EAAE,KAAa,EAAE,WAA6B;IAC/E,OAAO,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;AAC1D,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,SAAS,CAAC,SAAiB,EAAE,OAAe;IAC1D,MAAM,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG,GAAG,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IACzE,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;IACnD,GAAG,CAAC,aAAa,CAAC,SAA4B,CAAC,CAAC;IAChD,IAAI,CAAC;QACH,OAAO,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,sFAAsF;QACtF,IAAI,KAAK,YAAY,KAAK,IAAI,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5F,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { NfseCertificate } from './certificate.js';
|
|
2
|
+
import { type Ambiente } from './config.js';
|
|
3
|
+
import { type SefinErro, type SefinTransportRequest, type SefinTransportResponse } from './sefinClient.js';
|
|
4
|
+
export interface TestCertificateOptions {
|
|
5
|
+
/** Holder CNPJ written to the ICP-Brasil otherName 2.16.76.1.3.3. Default: 12345678000195. */
|
|
6
|
+
cnpj?: string;
|
|
7
|
+
/** Holder CPF (e-CPF otherName 2.16.76.1.3.1). When set, `cnpj` is ignored. */
|
|
8
|
+
cpf?: string;
|
|
9
|
+
/** Common name. Default: "EMPRESA DE TESTE LTDA:<documento>". */
|
|
10
|
+
commonName?: string;
|
|
11
|
+
/** Days of validity from now. Negative values create an expired certificate. Default: 365. */
|
|
12
|
+
validDays?: number;
|
|
13
|
+
/** PFX password. Default: "test". */
|
|
14
|
+
password?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface TestCertificate {
|
|
17
|
+
certificate: NfseCertificate;
|
|
18
|
+
/** PKCS#12 bytes, for testing `fromPfx`/`fromBase64`/`fromEnv`. */
|
|
19
|
+
pfx: Buffer;
|
|
20
|
+
password: string;
|
|
21
|
+
certPem: string;
|
|
22
|
+
keyPem: string;
|
|
23
|
+
}
|
|
24
|
+
/** Creates a self-signed A1 certificate whose holder CNPJ/CPF is read like a real ICP-Brasil one. */
|
|
25
|
+
export declare function createTestCertificate(options?: TestCertificateOptions): TestCertificate;
|
|
26
|
+
export interface MockNfse {
|
|
27
|
+
chaveAcesso: string;
|
|
28
|
+
dpsId: string;
|
|
29
|
+
ambiente: Ambiente;
|
|
30
|
+
nfseXml: string;
|
|
31
|
+
nsu: number;
|
|
32
|
+
cancelada: boolean;
|
|
33
|
+
eventos: Array<{
|
|
34
|
+
tpEvento: string;
|
|
35
|
+
nSeqEvento: number;
|
|
36
|
+
pedRegEventoXml: string;
|
|
37
|
+
eventoXml: string;
|
|
38
|
+
}>;
|
|
39
|
+
}
|
|
40
|
+
export interface MockRequestLog {
|
|
41
|
+
method: string;
|
|
42
|
+
host: string;
|
|
43
|
+
path: string;
|
|
44
|
+
status?: number;
|
|
45
|
+
error?: string;
|
|
46
|
+
}
|
|
47
|
+
export type MockHandler = (request: SefinTransportRequest, match: RegExpMatchArray) => SefinTransportResponse | Promise<SefinTransportResponse>;
|
|
48
|
+
export interface MockSefin {
|
|
49
|
+
/** Authorized NFS-e by access key. */
|
|
50
|
+
readonly notas: Map<string, MockNfse>;
|
|
51
|
+
readonly requests: MockRequestLog[];
|
|
52
|
+
/** Rejects the next matching request with these errors (default: HTTP 400). */
|
|
53
|
+
rejectNext(erros: SefinErro[] | string, options?: {
|
|
54
|
+
status?: number;
|
|
55
|
+
path?: RegExp;
|
|
56
|
+
}): void;
|
|
57
|
+
/** Fails the next request with a network error before SEFIN processes it. */
|
|
58
|
+
failNext(error?: Error): void;
|
|
59
|
+
/**
|
|
60
|
+
* Processes the next request, then fails with a network error as if the
|
|
61
|
+
* connection dropped before the answer arrived. Use it to test recovery.
|
|
62
|
+
*/
|
|
63
|
+
dropResponseNext(error?: Error): void;
|
|
64
|
+
/** Adds or overrides a route. `path` is matched against the URL path without the service prefix. */
|
|
65
|
+
route(method: 'GET' | 'POST', path: RegExp, handler: MockHandler): void;
|
|
66
|
+
/** Uninstalls the mock and restores the real HTTPS transport. */
|
|
67
|
+
restore(): void;
|
|
68
|
+
}
|
|
69
|
+
export interface MockSefinOptions {
|
|
70
|
+
/** Municipality code used in generated access keys when the DPS has none. Default: 3550308. */
|
|
71
|
+
codigoMunicipio?: string;
|
|
72
|
+
/** Skip the XSD check on received DPS/events. Default: false. */
|
|
73
|
+
skipXsd?: boolean;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Installs an in-process SEFIN + ADN. Every SDK call is answered locally until
|
|
77
|
+
* `restore()`. Received DPS and events are checked against the official XSD and
|
|
78
|
+
* their XMLDSIG signature is verified with the calling certificate.
|
|
79
|
+
*/
|
|
80
|
+
export declare function installMockSefin(options?: MockSefinOptions): MockSefin;
|