intifact 1.0.0 → 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/README.md +62 -125
- package/dist/index.d.ts +500 -1198
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +135 -180
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +938 -750
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -0
- package/package.json +47 -45
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,191 +1,146 @@
|
|
|
1
1
|
import createClient from "openapi-fetch";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Cliente para la API de Facturación Electrónica SUNAT.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* const fact = new FacturacionClient({ baseUrl: "http://localhost:3000" });
|
|
8
|
+
* const { data, error } = await fact.sendInvoice({ ...payload });
|
|
9
|
+
* if (data) console.log("encolado:", data.data.id);
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
export class FacturacionClient {
|
|
13
|
+
api;
|
|
4
14
|
constructor(opts) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
15
|
+
const { apiKey, ...clientOpts } = opts;
|
|
16
|
+
this.api = createClient(clientOpts);
|
|
17
|
+
if (apiKey) {
|
|
18
|
+
const authMiddleware = {
|
|
19
|
+
async onRequest({ request }) {
|
|
20
|
+
request.headers.set("Authorization", `Bearer ${apiKey}`);
|
|
21
|
+
return request;
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
this.api.use(authMiddleware);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
// --- Comprobantes ---
|
|
28
|
+
/** Envía factura o boleta. Encolada para procesamiento asíncrono. */
|
|
29
|
+
async sendInvoice(body) {
|
|
30
|
+
return this.api.POST("/api/v1/invoice/send", { body });
|
|
31
|
+
}
|
|
32
|
+
/** Envía nota de crédito (07) o débito (08). */
|
|
33
|
+
async sendNote(body) {
|
|
34
|
+
return this.api.POST("/api/v1/note/send", { body });
|
|
35
|
+
}
|
|
36
|
+
/** Envía guía de remisión (GRE REST). */
|
|
37
|
+
async sendDespatch(body) {
|
|
38
|
+
return this.api.POST("/api/v1/despatch/send", { body });
|
|
39
|
+
}
|
|
40
|
+
// --- Documentos ---
|
|
41
|
+
/** Lista documentos con filtros y paginación. */
|
|
42
|
+
async listDocuments(query) {
|
|
43
|
+
return this.api.GET("/api/v1/documents", { params: { query } });
|
|
44
|
+
}
|
|
45
|
+
/** Detalle de un documento por ID. */
|
|
46
|
+
async getDocument(id) {
|
|
47
|
+
return this.api.GET("/api/v1/documents/{id}", { params: { path: { id } } });
|
|
48
|
+
}
|
|
49
|
+
/** Re-encola un documento fallido (COLA_FALLIDA). */
|
|
50
|
+
async retryDocument(id) {
|
|
51
|
+
return this.api.POST("/api/v1/documents/{id}/retry", {
|
|
52
|
+
params: { path: { id } },
|
|
8
53
|
});
|
|
9
54
|
}
|
|
10
|
-
//
|
|
11
|
-
/**
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
/** Enviar una factura (01) o boleta (03) a SUNAT */
|
|
17
|
-
sendInvoice(body) {
|
|
18
|
-
return this.client.POST("/api/v1/invoice/send", { body: body });
|
|
19
|
-
}
|
|
20
|
-
/** Obtener el PDF de una factura/boleta */
|
|
21
|
-
getInvoicePdf(id) {
|
|
22
|
-
return this.client.GET("/api/v1/invoice/{id}/pdf", { params: { path: { id } } });
|
|
23
|
-
}
|
|
24
|
-
/** Obtener el XML firmado de una factura/boleta */
|
|
25
|
-
getInvoiceXml(id) {
|
|
26
|
-
return this.client.GET("/api/v1/invoice/{id}/xml", { params: { path: { id } } });
|
|
27
|
-
}
|
|
28
|
-
/** Obtener el CDR (constancia de recepción) de SUNAT */
|
|
29
|
-
getInvoiceCdr(id) {
|
|
30
|
-
return this.client.GET("/api/v1/invoice/{id}/cdr", { params: { path: { id } } });
|
|
31
|
-
}
|
|
32
|
-
/** Comunicar de baja una factura */
|
|
33
|
-
cancelInvoice(body) {
|
|
34
|
-
return this.client.POST("/api/v1/invoice/cancel", { body: body });
|
|
35
|
-
}
|
|
36
|
-
/** Comunicar de baja una boleta (resumen de bajas) */
|
|
37
|
-
cancelBoleta(body) {
|
|
38
|
-
return this.client.POST("/api/v1/boleta/cancel", { body: body });
|
|
39
|
-
}
|
|
40
|
-
// ── Notas de Crédito / Débito ──
|
|
41
|
-
/** Enviar una nota de crédito o débito */
|
|
42
|
-
sendNote(body) {
|
|
43
|
-
return this.client.POST("/api/v1/note/send", { body: body });
|
|
44
|
-
}
|
|
45
|
-
/** Obtener el PDF de una nota */
|
|
46
|
-
getNotePdf(id) {
|
|
47
|
-
return this.client.GET("/api/v1/note/{id}/pdf", { params: { path: { id } } });
|
|
48
|
-
}
|
|
49
|
-
/** Obtener el XML firmado de una nota */
|
|
50
|
-
getNoteXml(id) {
|
|
51
|
-
return this.client.GET("/api/v1/note/{id}/xml", { params: { path: { id } } });
|
|
52
|
-
}
|
|
53
|
-
// ── Guías de Remisión ──
|
|
54
|
-
/** Enviar una guía de remisión */
|
|
55
|
-
sendDespatch(body) {
|
|
56
|
-
return this.client.POST("/api/v1/despatch/send", { body: body });
|
|
57
|
-
}
|
|
58
|
-
/** Obtener el XML de una guía */
|
|
59
|
-
getDespatchXml(id) {
|
|
60
|
-
return this.client.GET("/api/v1/despatch/{id}/xml", { params: { path: { id } } });
|
|
61
|
-
}
|
|
62
|
-
/** Obtener el PDF de una guía */
|
|
63
|
-
getDespatchPdf(id) {
|
|
64
|
-
return this.client.GET("/api/v1/despatch/{id}/pdf", { params: { path: { id } } });
|
|
65
|
-
}
|
|
66
|
-
// ── Resúmenes y Anulaciones ──
|
|
67
|
-
/** Enviar un resumen diario de boletas */
|
|
68
|
-
sendSummary(body) {
|
|
69
|
-
return this.client.POST("/api/v1/summary/send", { body: body });
|
|
70
|
-
}
|
|
71
|
-
/** Enviar una comunicación de baja */
|
|
72
|
-
sendVoided(body) {
|
|
73
|
-
return this.client.POST("/api/v1/voided/send", { body: body });
|
|
74
|
-
}
|
|
75
|
-
/** Consultar el estado de un ticket (resumen/baja) */
|
|
76
|
-
getTicketStatus(ticket, query) {
|
|
77
|
-
return this.client.GET("/api/v1/ticket/{ticket}/status", { params: { path: { ticket }, query: query } });
|
|
78
|
-
}
|
|
79
|
-
// ── Documentos ──
|
|
80
|
-
/** Listar documentos emitidos (con filtros opcionales) */
|
|
81
|
-
listDocuments(query) {
|
|
82
|
-
return this.client.GET("/api/v1/documents", { params: { query: query } });
|
|
83
|
-
}
|
|
84
|
-
/** Obtener un documento por ID */
|
|
85
|
-
getDocument(id) {
|
|
86
|
-
return this.client.GET("/api/v1/documents/{id}", { params: { path: { id } } });
|
|
87
|
-
}
|
|
88
|
-
/** Reintentar el envío de un documento fallido */
|
|
89
|
-
retryDocument(id) {
|
|
90
|
-
return this.client.POST("/api/v1/documents/{id}/retry", { params: { path: { id } } });
|
|
91
|
-
}
|
|
92
|
-
/** Obtener el siguiente correlativo disponible */
|
|
93
|
-
getNextCorrelativo(query) {
|
|
94
|
-
return this.client.GET("/api/v1/documents/next-correlativo", { params: { query: query } });
|
|
95
|
-
}
|
|
96
|
-
// ── Colas ──
|
|
97
|
-
/** Obtener estadísticas de las colas de procesamiento */
|
|
98
|
-
getQueueStats() {
|
|
99
|
-
return this.client.GET("/api/v1/queues/stats");
|
|
100
|
-
}
|
|
101
|
-
// ── Empresas ──
|
|
102
|
-
/** Listar tus empresas registradas */
|
|
103
|
-
listCompanies() {
|
|
104
|
-
return this.client.GET("/api/v1/companies");
|
|
105
|
-
}
|
|
106
|
-
/** Registrar una nueva empresa */
|
|
107
|
-
createCompany(body) {
|
|
108
|
-
return this.client.POST("/api/v1/companies", { body: body });
|
|
109
|
-
}
|
|
110
|
-
/** Obtener los datos de una empresa */
|
|
111
|
-
getCompany(id) {
|
|
112
|
-
return this.client.GET("/api/v1/companies/{id}", { params: { path: { id } } });
|
|
113
|
-
}
|
|
114
|
-
/** Actualizar los datos de una empresa */
|
|
115
|
-
updateCompany(id, body) {
|
|
116
|
-
return this.client.PUT("/api/v1/companies/{id}", { params: { path: { id } }, body: body });
|
|
117
|
-
}
|
|
118
|
-
/** Subir el certificado digital (.pfx/.p12) de una empresa */
|
|
119
|
-
uploadCertificate(id, body) {
|
|
120
|
-
return this.client.POST("/api/v1/companies/{id}/certificate", { params: { path: { id } }, body: body });
|
|
121
|
-
}
|
|
122
|
-
/** Subir el logo de una empresa (aparece en PDFs) */
|
|
123
|
-
uploadLogo(id, body) {
|
|
124
|
-
return this.client.POST("/api/v1/companies/{id}/logo", { params: { path: { id } }, body: body });
|
|
125
|
-
}
|
|
126
|
-
/** Obtener el logo de una empresa */
|
|
127
|
-
getLogo(id) {
|
|
128
|
-
return this.client.GET("/api/v1/companies/{id}/logo", { params: { path: { id } } });
|
|
129
|
-
}
|
|
130
|
-
/** Eliminar el logo de una empresa */
|
|
131
|
-
deleteLogo(id) {
|
|
132
|
-
return this.client.DELETE("/api/v1/companies/{id}/logo", { params: { path: { id } } });
|
|
133
|
-
}
|
|
134
|
-
// ── Webhooks ──
|
|
135
|
-
/** Listar tus webhooks configurados */
|
|
136
|
-
listWebhooks() {
|
|
137
|
-
return this.client.GET("/api/v1/webhooks");
|
|
138
|
-
}
|
|
139
|
-
/** Crear un nuevo webhook */
|
|
140
|
-
createWebhook(body) {
|
|
141
|
-
return this.client.POST("/api/v1/webhooks", { body: body });
|
|
142
|
-
}
|
|
143
|
-
/** Obtener un webhook por ID */
|
|
144
|
-
getWebhook(id) {
|
|
145
|
-
return this.client.GET("/api/v1/webhooks/{id}", { params: { path: { id } } });
|
|
146
|
-
}
|
|
147
|
-
/** Actualizar un webhook */
|
|
148
|
-
updateWebhook(id, body) {
|
|
149
|
-
return this.client.PUT("/api/v1/webhooks/{id}", { params: { path: { id } }, body: body });
|
|
150
|
-
}
|
|
151
|
-
/** Eliminar un webhook */
|
|
152
|
-
deleteWebhook(id) {
|
|
153
|
-
return this.client.DELETE("/api/v1/webhooks/{id}", { params: { path: { id } } });
|
|
154
|
-
}
|
|
155
|
-
/** Listar entregas de un webhook */
|
|
156
|
-
listWebhookDeliveries(id, query) {
|
|
157
|
-
return this.client.GET("/api/v1/webhooks/{id}/deliveries", { params: { path: { id }, query: query } });
|
|
158
|
-
}
|
|
159
|
-
/** Re-enviar una entrega fallida */
|
|
160
|
-
redeliverWebhook(endpointId, deliveryId) {
|
|
161
|
-
return this.client.POST("/api/v1/webhooks/{id}/deliveries/{deliveryId}/redeliver", { params: { path: { id: endpointId, deliveryId } } });
|
|
162
|
-
}
|
|
163
|
-
/** Enviar un evento de prueba al webhook */
|
|
164
|
-
testWebhook(id) {
|
|
165
|
-
return this.client.POST("/api/v1/webhooks/{id}/test", { params: { path: { id } } });
|
|
166
|
-
}
|
|
167
|
-
// ── Uso ──
|
|
168
|
-
/** Obtener el consumo actual de tu plan */
|
|
169
|
-
getUsage() {
|
|
170
|
-
return this.client.GET("/api/v1/usage");
|
|
171
|
-
}
|
|
172
|
-
// ── Consulta Pública ──
|
|
173
|
-
/** Consultar un documento emitido (sin autenticación) */
|
|
174
|
-
consultarDocumento(ruc, tipoDoc, serie, numero) {
|
|
175
|
-
return this.client.GET("/api/v1/public/consultar/{ruc}/{tipoDoc}/{serie}/{numero}", {
|
|
176
|
-
params: { path: { ruc, tipoDoc, serie, numero } },
|
|
55
|
+
// --- Archivos generados ---
|
|
56
|
+
/** Descarga el XML firmado. Retorna ArrayBuffer. */
|
|
57
|
+
async getInvoiceXml(id) {
|
|
58
|
+
const response = await this.api.GET("/api/v1/invoice/{id}/xml", {
|
|
59
|
+
params: { path: { id } },
|
|
60
|
+
parseAs: "arrayBuffer",
|
|
177
61
|
});
|
|
62
|
+
if (response.error)
|
|
63
|
+
throw new Error(`xml not found: ${id}`);
|
|
64
|
+
return response.data;
|
|
65
|
+
}
|
|
66
|
+
/** Descarga el CDR (constancia SUNAT). */
|
|
67
|
+
async getInvoiceCdr(id) {
|
|
68
|
+
const response = await this.api.GET("/api/v1/invoice/{id}/cdr", {
|
|
69
|
+
params: { path: { id } },
|
|
70
|
+
parseAs: "arrayBuffer",
|
|
71
|
+
});
|
|
72
|
+
if (response.error)
|
|
73
|
+
throw new Error(`cdr not found: ${id}`);
|
|
74
|
+
return response.data;
|
|
75
|
+
}
|
|
76
|
+
/** Descarga el PDF generado. */
|
|
77
|
+
async getInvoicePdf(id) {
|
|
78
|
+
const response = await this.api.GET("/api/v1/invoice/{id}/pdf", {
|
|
79
|
+
params: { path: { id } },
|
|
80
|
+
parseAs: "arrayBuffer",
|
|
81
|
+
});
|
|
82
|
+
if (response.error)
|
|
83
|
+
throw new Error(`pdf not found: ${id}`);
|
|
84
|
+
return response.data;
|
|
85
|
+
}
|
|
86
|
+
// --- Resumen / baja ---
|
|
87
|
+
async sendSummary(body) {
|
|
88
|
+
return this.api.POST("/api/v1/summary/send", { body });
|
|
178
89
|
}
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
90
|
+
async sendVoided(body) {
|
|
91
|
+
return this.api.POST("/api/v1/voided/send", { body });
|
|
92
|
+
}
|
|
93
|
+
async getTicketStatus(ticket, ruc) {
|
|
94
|
+
return this.api.GET("/api/v1/ticket/{ticket}/status", {
|
|
95
|
+
params: { path: { ticket }, query: { ruc } },
|
|
183
96
|
});
|
|
184
97
|
}
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
return this.
|
|
188
|
-
|
|
98
|
+
// --- Empresas ---
|
|
99
|
+
async listCompanies() {
|
|
100
|
+
return this.api.GET("/api/v1/companies", {});
|
|
101
|
+
}
|
|
102
|
+
async getCompany(id) {
|
|
103
|
+
return this.api.GET("/api/v1/companies/{id}", {
|
|
104
|
+
params: { path: { id } },
|
|
189
105
|
});
|
|
190
106
|
}
|
|
107
|
+
// Nota: crear empresas y subir certificado/logo son operaciones administrativas
|
|
108
|
+
// (solo MASTER_API_KEY) y NO se exponen en el SDK. El backend (ERP) las llama
|
|
109
|
+
// directo. Ver lib/openapi-docs.ts en la API (endpoints ocultos del spec).
|
|
110
|
+
// --- Cola ---
|
|
111
|
+
/** Estado de las colas BullMQ (jobs en cada estado). */
|
|
112
|
+
async getQueueStats() {
|
|
113
|
+
const response = await this.api.GET("/api/v1/queues/stats", {});
|
|
114
|
+
if (response.error)
|
|
115
|
+
throw new Error("queue stats unavailable");
|
|
116
|
+
return response.data;
|
|
117
|
+
}
|
|
118
|
+
// --- Helpers ---
|
|
119
|
+
/**
|
|
120
|
+
* Espera a que un documento llegue a estado final (ACEPTADO/RECHAZADO/COLA_FALLIDA).
|
|
121
|
+
* Hace polling cada `intervalMs`. Timeout en `timeoutMs`.
|
|
122
|
+
*/
|
|
123
|
+
async waitForDocument(id, options = {}) {
|
|
124
|
+
const intervalMs = options.intervalMs ?? 2000;
|
|
125
|
+
const timeoutMs = options.timeoutMs ?? 60_000;
|
|
126
|
+
const deadline = Date.now() + timeoutMs;
|
|
127
|
+
const finalStates = new Set([
|
|
128
|
+
"ACEPTADO",
|
|
129
|
+
"RECHAZADO",
|
|
130
|
+
"COLA_FALLIDA",
|
|
131
|
+
"ANULADO",
|
|
132
|
+
]);
|
|
133
|
+
while (Date.now() < deadline) {
|
|
134
|
+
const { data, error } = await this.getDocument(id);
|
|
135
|
+
if (error)
|
|
136
|
+
throw new Error(`document ${id} not found`);
|
|
137
|
+
const estado = data
|
|
138
|
+
?.data?.sunat?.estado;
|
|
139
|
+
if (estado && finalStates.has(estado))
|
|
140
|
+
return data;
|
|
141
|
+
await new Promise((r) => setTimeout(r, intervalMs));
|
|
142
|
+
}
|
|
143
|
+
throw new Error(`timeout waiting for document ${id}`);
|
|
144
|
+
}
|
|
191
145
|
}
|
|
146
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|