@dwast/verifactu-lib 0.1.0-beta.0 → 0.1.0-beta.1
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/dist/cjs/aeat/client.d.ts.map +1 -0
- package/dist/cjs/aeat/client.js +91 -0
- package/dist/cjs/aeat/client.js.map +1 -0
- package/dist/cjs/aeat/index.d.ts.map +1 -0
- package/dist/cjs/aeat/index.js +18 -0
- package/dist/cjs/aeat/index.js.map +1 -0
- package/dist/cjs/core/hash/chain.d.ts.map +1 -0
- package/dist/cjs/core/hash/chain.js +127 -0
- package/dist/cjs/core/hash/chain.js.map +1 -0
- package/dist/cjs/core/hash/index.d.ts.map +1 -0
- package/dist/cjs/core/hash/index.js +18 -0
- package/dist/cjs/core/hash/index.js.map +1 -0
- package/dist/cjs/core/index.d.ts.map +1 -0
- package/dist/cjs/core/index.js +21 -0
- package/dist/cjs/core/index.js.map +1 -0
- package/dist/cjs/core/models/event.d.ts.map +1 -0
- package/dist/cjs/core/models/event.js +3 -0
- package/dist/{core → cjs/core}/models/event.js.map +1 -1
- package/dist/cjs/core/models/index.d.ts.map +1 -0
- package/dist/cjs/core/models/index.js +19 -0
- package/dist/cjs/core/models/index.js.map +1 -0
- package/dist/cjs/core/models/invoice.d.ts.map +1 -0
- package/dist/cjs/core/models/invoice.js +3 -0
- package/dist/{core → cjs/core}/models/invoice.js.map +1 -1
- package/dist/cjs/core/qr/index.d.ts.map +1 -0
- package/dist/cjs/core/qr/index.js +18 -0
- package/dist/cjs/core/qr/index.js.map +1 -0
- package/dist/cjs/core/qr/qr.d.ts.map +1 -0
- package/dist/cjs/core/qr/qr.js +19 -0
- package/dist/cjs/core/qr/qr.js.map +1 -0
- package/dist/cjs/core/xml/generator.d.ts.map +1 -0
- package/dist/cjs/core/xml/generator.js +107 -0
- package/dist/cjs/core/xml/generator.js.map +1 -0
- package/dist/cjs/core/xml/index.d.ts.map +1 -0
- package/dist/cjs/core/xml/index.js +18 -0
- package/dist/cjs/core/xml/index.js.map +1 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +20 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/integration/index.d.ts.map +1 -0
- package/dist/cjs/integration/index.js +19 -0
- package/dist/cjs/integration/index.js.map +1 -0
- package/dist/cjs/integration/repository.d.ts.map +1 -0
- package/dist/cjs/integration/repository.js +3 -0
- package/dist/cjs/integration/repository.js.map +1 -0
- package/dist/cjs/integration/service.d.ts.map +1 -0
- package/dist/cjs/integration/service.js +144 -0
- package/dist/cjs/integration/service.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/esm/aeat/client.d.ts +57 -0
- package/dist/esm/aeat/client.d.ts.map +1 -0
- package/dist/esm/aeat/client.js.map +1 -0
- package/dist/esm/aeat/index.d.ts +2 -0
- package/dist/esm/aeat/index.d.ts.map +1 -0
- package/dist/esm/aeat/index.js.map +1 -0
- package/dist/esm/core/hash/chain.d.ts +97 -0
- package/dist/esm/core/hash/chain.d.ts.map +1 -0
- package/dist/esm/core/hash/chain.js.map +1 -0
- package/dist/esm/core/hash/index.d.ts +2 -0
- package/dist/esm/core/hash/index.d.ts.map +1 -0
- package/dist/esm/core/hash/index.js.map +1 -0
- package/dist/esm/core/index.d.ts +5 -0
- package/dist/esm/core/index.d.ts.map +1 -0
- package/dist/esm/core/index.js.map +1 -0
- package/dist/esm/core/models/event.d.ts +25 -0
- package/dist/esm/core/models/event.d.ts.map +1 -0
- package/dist/esm/core/models/event.js.map +1 -0
- package/dist/esm/core/models/index.d.ts +3 -0
- package/dist/esm/core/models/index.d.ts.map +1 -0
- package/dist/esm/core/models/index.js.map +1 -0
- package/dist/esm/core/models/invoice.d.ts +90 -0
- package/dist/esm/core/models/invoice.d.ts.map +1 -0
- package/dist/esm/core/models/invoice.js.map +1 -0
- package/dist/esm/core/qr/index.d.ts +2 -0
- package/dist/esm/core/qr/index.d.ts.map +1 -0
- package/dist/esm/core/qr/index.js.map +1 -0
- package/dist/esm/core/qr/qr.d.ts +13 -0
- package/dist/esm/core/qr/qr.d.ts.map +1 -0
- package/dist/esm/core/qr/qr.js.map +1 -0
- package/dist/esm/core/xml/generator.d.ts +32 -0
- package/dist/esm/core/xml/generator.d.ts.map +1 -0
- package/dist/esm/core/xml/generator.js.map +1 -0
- package/dist/esm/core/xml/index.d.ts +2 -0
- package/dist/esm/core/xml/index.d.ts.map +1 -0
- package/dist/esm/core/xml/index.js.map +1 -0
- package/dist/esm/index.d.ts +4 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/integration/index.d.ts +3 -0
- package/dist/esm/integration/index.d.ts.map +1 -0
- package/dist/esm/integration/index.js.map +1 -0
- package/dist/esm/integration/repository.d.ts +77 -0
- package/dist/esm/integration/repository.d.ts.map +1 -0
- package/dist/esm/integration/repository.js.map +1 -0
- package/dist/esm/integration/service.d.ts +36 -0
- package/dist/esm/integration/service.d.ts.map +1 -0
- package/dist/esm/integration/service.js.map +1 -0
- package/package.json +43 -13
- package/dist/aeat/client.d.ts.map +0 -1
- package/dist/aeat/client.js.map +0 -1
- package/dist/aeat/index.d.ts.map +0 -1
- package/dist/aeat/index.js.map +0 -1
- package/dist/core/hash/chain.d.ts.map +0 -1
- package/dist/core/hash/chain.js.map +0 -1
- package/dist/core/hash/index.d.ts.map +0 -1
- package/dist/core/hash/index.js.map +0 -1
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js.map +0 -1
- package/dist/core/models/event.d.ts.map +0 -1
- package/dist/core/models/index.d.ts.map +0 -1
- package/dist/core/models/index.js.map +0 -1
- package/dist/core/models/invoice.d.ts.map +0 -1
- package/dist/core/qr/index.d.ts.map +0 -1
- package/dist/core/qr/index.js.map +0 -1
- package/dist/core/qr/qr.d.ts.map +0 -1
- package/dist/core/qr/qr.js.map +0 -1
- package/dist/core/xml/generator.d.ts.map +0 -1
- package/dist/core/xml/generator.js.map +0 -1
- package/dist/core/xml/index.d.ts.map +0 -1
- package/dist/core/xml/index.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/integration/index.d.ts.map +0 -1
- package/dist/integration/index.js.map +0 -1
- package/dist/integration/repository.d.ts.map +0 -1
- package/dist/integration/repository.js.map +0 -1
- package/dist/integration/service.d.ts.map +0 -1
- package/dist/integration/service.js.map +0 -1
- /package/dist/{aeat → cjs/aeat}/client.d.ts +0 -0
- /package/dist/{aeat → cjs/aeat}/index.d.ts +0 -0
- /package/dist/{core → cjs/core}/hash/chain.d.ts +0 -0
- /package/dist/{core → cjs/core}/hash/index.d.ts +0 -0
- /package/dist/{core → cjs/core}/index.d.ts +0 -0
- /package/dist/{core → cjs/core}/models/event.d.ts +0 -0
- /package/dist/{core → cjs/core}/models/index.d.ts +0 -0
- /package/dist/{core → cjs/core}/models/invoice.d.ts +0 -0
- /package/dist/{core → cjs/core}/qr/index.d.ts +0 -0
- /package/dist/{core → cjs/core}/qr/qr.d.ts +0 -0
- /package/dist/{core → cjs/core}/xml/generator.d.ts +0 -0
- /package/dist/{core → cjs/core}/xml/index.d.ts +0 -0
- /package/dist/{index.d.ts → cjs/index.d.ts} +0 -0
- /package/dist/{integration → cjs/integration}/index.d.ts +0 -0
- /package/dist/{integration → cjs/integration}/repository.d.ts +0 -0
- /package/dist/{integration → cjs/integration}/service.d.ts +0 -0
- /package/dist/{aeat → esm/aeat}/client.js +0 -0
- /package/dist/{aeat → esm/aeat}/index.js +0 -0
- /package/dist/{core → esm/core}/hash/chain.js +0 -0
- /package/dist/{core → esm/core}/hash/index.js +0 -0
- /package/dist/{core → esm/core}/index.js +0 -0
- /package/dist/{core → esm/core}/models/event.js +0 -0
- /package/dist/{core → esm/core}/models/index.js +0 -0
- /package/dist/{core → esm/core}/models/invoice.js +0 -0
- /package/dist/{core → esm/core}/qr/index.js +0 -0
- /package/dist/{core → esm/core}/qr/qr.js +0 -0
- /package/dist/{core → esm/core}/xml/generator.js +0 -0
- /package/dist/{core → esm/core}/xml/index.js +0 -0
- /package/dist/{index.js → esm/index.js} +0 -0
- /package/dist/{integration → esm/integration}/index.js +0 -0
- /package/dist/{integration → esm/integration}/repository.js +0 -0
- /package/dist/{integration → esm/integration}/service.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/aeat/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,qBAAqB;IACpC,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;IACvB,0BAA0B;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAUD;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;gBAE5B,MAAM,EAAE,qBAAqB;IASzC;;OAEG;IACG,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA0BlD;;OAEG;IACG,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAkBlE;;;OAGG;IACH,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,UAAU;CAqBrE"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VerifactuClient = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Cliente de servicios AEAT para Verifactu.
|
|
6
|
+
*/
|
|
7
|
+
class VerifactuClient {
|
|
8
|
+
config;
|
|
9
|
+
constructor(config) {
|
|
10
|
+
this.config = {
|
|
11
|
+
sendPath: '/verifactu/registro',
|
|
12
|
+
statusPath: '/verifactu/estado',
|
|
13
|
+
timeoutMs: 10_000,
|
|
14
|
+
...config,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Envía un registro (factura o evento) a AEAT.
|
|
19
|
+
*/
|
|
20
|
+
async sendRecord(xml) {
|
|
21
|
+
const url = `${this.config.baseUrl}${this.config.sendPath}`;
|
|
22
|
+
const headers = {
|
|
23
|
+
'Content-Type': 'application/xml',
|
|
24
|
+
Accept: 'application/json',
|
|
25
|
+
};
|
|
26
|
+
if (this.config.authToken) {
|
|
27
|
+
headers.Authorization = `Bearer ${this.config.authToken}`;
|
|
28
|
+
}
|
|
29
|
+
const controller = new AbortController();
|
|
30
|
+
const timer = setTimeout(() => controller.abort(), this.config.timeoutMs);
|
|
31
|
+
try {
|
|
32
|
+
const res = await fetch(url, {
|
|
33
|
+
method: 'POST',
|
|
34
|
+
headers,
|
|
35
|
+
body: xml,
|
|
36
|
+
signal: controller.signal,
|
|
37
|
+
});
|
|
38
|
+
const raw = await res.text();
|
|
39
|
+
return this.parseResponse(raw, res.status);
|
|
40
|
+
}
|
|
41
|
+
finally {
|
|
42
|
+
clearTimeout(timer);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Consulta el estado de una operación enviada.
|
|
47
|
+
*/
|
|
48
|
+
async getOperationStatus(operationId) {
|
|
49
|
+
const url = `${this.config.baseUrl}${this.config.statusPath}/${encodeURIComponent(operationId)}`;
|
|
50
|
+
const headers = { Accept: 'application/json' };
|
|
51
|
+
if (this.config.authToken) {
|
|
52
|
+
headers.Authorization = `Bearer ${this.config.authToken}`;
|
|
53
|
+
}
|
|
54
|
+
const controller = new AbortController();
|
|
55
|
+
const timer = setTimeout(() => controller.abort(), this.config.timeoutMs);
|
|
56
|
+
try {
|
|
57
|
+
const res = await fetch(url, { method: 'GET', headers, signal: controller.signal });
|
|
58
|
+
const raw = await res.text();
|
|
59
|
+
return this.parseResponse(raw, res.status);
|
|
60
|
+
}
|
|
61
|
+
finally {
|
|
62
|
+
clearTimeout(timer);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Parsea la respuesta de AEAT. La estructura exacta depende del servicio;
|
|
67
|
+
* este es un mapeo base que el consumidor puede sobrescribir.
|
|
68
|
+
*/
|
|
69
|
+
parseResponse(raw, httpStatus) {
|
|
70
|
+
let operationId = '';
|
|
71
|
+
let status = httpStatus >= 200 && httpStatus < 300 ? 'OK' : 'ERROR';
|
|
72
|
+
let message;
|
|
73
|
+
let errorCode;
|
|
74
|
+
try {
|
|
75
|
+
const json = JSON.parse(raw);
|
|
76
|
+
operationId = String(json.operationId ?? json.id ?? '');
|
|
77
|
+
if (json.status === 'OK' || json.status === 'ERROR') {
|
|
78
|
+
status = json.status;
|
|
79
|
+
}
|
|
80
|
+
message = json.message;
|
|
81
|
+
errorCode = json.errorCode;
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
// Respuesta no JSON: se conserva el cuerpo como mensaje.
|
|
85
|
+
message = raw;
|
|
86
|
+
}
|
|
87
|
+
return { operationId, status, message, errorCode, rawResponse: raw };
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
exports.VerifactuClient = VerifactuClient;
|
|
91
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/aeat/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/aeat/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./client.js"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/aeat/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../../../src/core/hash/chain.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAEpD;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC,GAAG,MAAM,CAO5F;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,sCAAsC;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,oCAAoC;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,yCAAyC;IACzC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iDAAiD;IACjD,wBAAwB,EAAE,MAAM,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,sDAAsD;IACtD,sBAAsB,EAAE,MAAM,CAAC;IAC/B,4CAA4C;IAC5C,sBAAsB,EAAE,MAAM,CAAC;IAC/B,iDAAiD;IACjD,6BAA6B,EAAE,MAAM,CAAC;IACtC,2CAA2C;IAC3C,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iDAAiD;IACjD,wBAAwB,EAAE,MAAM,CAAC;CAClC;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAWxE;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM,CAQlF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAEpE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM,CAE9E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAE1F;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,sBAAsB,EAC7B,YAAY,EAAE,MAAM,GACnB,OAAO,CAET;AAED;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,MAAM,CAAK;IAEnB,2EAA2E;IAC3E,IAAI,QAAQ,IAAI,MAAM,GAAG,IAAI,CAE5B;IAED,mDAAmD;IACnD,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,GAAG,MAAM;IAOlE;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,sBAAsB,EAAE,gBAAgB,CAAC,GAAG,MAAM;IAO5E,0BAA0B;IAC1B,KAAK,IAAI,IAAI;CAId"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HashChain = void 0;
|
|
4
|
+
exports.sha256 = sha256;
|
|
5
|
+
exports.concatenateFields = concatenateFields;
|
|
6
|
+
exports.concatenateRegistroAlta = concatenateRegistroAlta;
|
|
7
|
+
exports.concatenateRegistroAnulacion = concatenateRegistroAnulacion;
|
|
8
|
+
exports.computeRegistroAlta = computeRegistroAlta;
|
|
9
|
+
exports.computeRegistroAnulacion = computeRegistroAnulacion;
|
|
10
|
+
exports.verifyRegistroAlta = verifyRegistroAlta;
|
|
11
|
+
exports.verifyRegistroAnulacion = verifyRegistroAnulacion;
|
|
12
|
+
const node_crypto_1 = require("node:crypto");
|
|
13
|
+
/**
|
|
14
|
+
* Calcula el hash SHA-256 de un dato en hexadecimal MAYÚSCULA.
|
|
15
|
+
* Verifactu exige el hash en hexadecimal en mayúsculas (64 caracteres).
|
|
16
|
+
*/
|
|
17
|
+
function sha256(data) {
|
|
18
|
+
return (0, node_crypto_1.createHash)('sha256').update(data).digest('hex').toUpperCase();
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Concatena los campos de un registro en el formato Verifactu:
|
|
22
|
+
* `nombreCampo1=valor1&nombreCampo2=valor2&...`
|
|
23
|
+
*
|
|
24
|
+
* Reglas de normalización (AEAT):
|
|
25
|
+
* - Se eliminan los espacios al inicio y final de cada valor (trim).
|
|
26
|
+
* - Los campos vacíos o ausentes se incluyen como `nombreCampo=` (sin valor).
|
|
27
|
+
* - No se aplica URL-encoding ni escaping a caracteres especiales.
|
|
28
|
+
*/
|
|
29
|
+
function concatenateFields(fields) {
|
|
30
|
+
return fields
|
|
31
|
+
.map(([name, value]) => {
|
|
32
|
+
const trimmed = value ? value.trim() : '';
|
|
33
|
+
return `${name}=${trimmed}`;
|
|
34
|
+
})
|
|
35
|
+
.join('&');
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Construye la cadena canónica a hashear de un registro de alta.
|
|
39
|
+
*/
|
|
40
|
+
function concatenateRegistroAlta(input) {
|
|
41
|
+
return concatenateFields([
|
|
42
|
+
['IDEmisorFactura', input.idEmisorFactura],
|
|
43
|
+
['NumSerieFactura', input.numSerieFactura],
|
|
44
|
+
['FechaExpedicionFactura', input.fechaExpedicionFactura],
|
|
45
|
+
['TipoFactura', input.tipoFactura],
|
|
46
|
+
['CuotaTotal', input.cuotaTotal],
|
|
47
|
+
['ImporteTotal', input.importeTotal],
|
|
48
|
+
['Huella', input.huellaAnterior],
|
|
49
|
+
['FechaHoraHusoGenRegistro', input.fechaHoraHusoGenRegistro],
|
|
50
|
+
]);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Construye la cadena canónica a hashear de un registro de anulación.
|
|
54
|
+
*/
|
|
55
|
+
function concatenateRegistroAnulacion(input) {
|
|
56
|
+
return concatenateFields([
|
|
57
|
+
['IDEmisorFacturaAnulada', input.idEmisorFacturaAnulada],
|
|
58
|
+
['NumSerieFacturaAnulada', input.numSerieFacturaAnulada],
|
|
59
|
+
['FechaExpedicionFacturaAnulada', input.fechaExpedicionFacturaAnulada],
|
|
60
|
+
['Huella', input.huellaAnterior],
|
|
61
|
+
['FechaHoraHusoGenRegistro', input.fechaHoraHusoGenRegistro],
|
|
62
|
+
]);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Calcula la huella (hash) de un registro de alta.
|
|
66
|
+
*/
|
|
67
|
+
function computeRegistroAlta(input) {
|
|
68
|
+
return sha256(concatenateRegistroAlta(input));
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Calcula la huella (hash) de un registro de anulación.
|
|
72
|
+
*/
|
|
73
|
+
function computeRegistroAnulacion(input) {
|
|
74
|
+
return sha256(concatenateRegistroAnulacion(input));
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Verifica que el hash de un registro de alta coincide con el esperado.
|
|
78
|
+
*/
|
|
79
|
+
function verifyRegistroAlta(input, expectedHash) {
|
|
80
|
+
return computeRegistroAlta(input).toLowerCase() === expectedHash.toLowerCase();
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Verifica que el hash de un registro de anulación coincide con el esperado.
|
|
84
|
+
*/
|
|
85
|
+
function verifyRegistroAnulacion(input, expectedHash) {
|
|
86
|
+
return computeRegistroAnulacion(input).toLowerCase() === expectedHash.toLowerCase();
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Cadena de hash con estado, para encadenar registros de forma secuencial.
|
|
90
|
+
*/
|
|
91
|
+
class HashChain {
|
|
92
|
+
_lastHash = null;
|
|
93
|
+
_count = 0;
|
|
94
|
+
/** Hash del último registro encadenado, o `null` si aún no hay ninguno. */
|
|
95
|
+
get lastHash() {
|
|
96
|
+
return this._lastHash;
|
|
97
|
+
}
|
|
98
|
+
/** Número de registros encadenados hasta ahora. */
|
|
99
|
+
get count() {
|
|
100
|
+
return this._count;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Encadena un nuevo registro de alta y devuelve su huella.
|
|
104
|
+
*/
|
|
105
|
+
pushAlta(input) {
|
|
106
|
+
const hash = computeRegistroAlta({ ...input, huellaAnterior: this._lastHash });
|
|
107
|
+
this._lastHash = hash;
|
|
108
|
+
this._count += 1;
|
|
109
|
+
return hash;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Encadena un nuevo registro de anulación y devuelve su huella.
|
|
113
|
+
*/
|
|
114
|
+
pushAnulacion(input) {
|
|
115
|
+
const hash = computeRegistroAnulacion({ ...input, huellaAnterior: this._lastHash });
|
|
116
|
+
this._lastHash = hash;
|
|
117
|
+
this._count += 1;
|
|
118
|
+
return hash;
|
|
119
|
+
}
|
|
120
|
+
/** Reinicia la cadena. */
|
|
121
|
+
reset() {
|
|
122
|
+
this._lastHash = null;
|
|
123
|
+
this._count = 0;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
exports.HashChain = HashChain;
|
|
127
|
+
//# sourceMappingURL=chain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain.js","sourceRoot":"","sources":["../../../../src/core/hash/chain.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/hash/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./chain.js"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/hash/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./models/index.js"), exports);
|
|
18
|
+
__exportStar(require("./hash/index.js"), exports);
|
|
19
|
+
__exportStar(require("./xml/index.js"), exports);
|
|
20
|
+
__exportStar(require("./qr/index.js"), exports);
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,kDAAgC;AAChC,iDAA+B;AAC/B,gDAA8B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../../../src/core/models/event.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,WAAW,GAAG,cAAc,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,sBAAsB;IACtB,IAAI,EAAE,SAAS,CAAC;IAChB,iDAAiD;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6DAA6D;IAC7D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"event.js","sourceRoot":"","sources":["../../../../src/core/models/event.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./invoice.js"), exports);
|
|
18
|
+
__exportStar(require("./event.js"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/models/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,6CAA2B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invoice.d.ts","sourceRoot":"","sources":["../../../../src/core/models/invoice.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,sBAAsB;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,eAAe,EAAE,MAAM,CAAC;IACxB,qCAAqC;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,CAAC;AAET;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,2BAA2B;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,yBAAyB;IACzB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,gDAAgD;IAChD,aAAa,EAAE,MAAM,CAAC;IACtB,uBAAuB;IACvB,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,sCAAsC;IACtC,eAAe,EAAE,qBAAqB,EAAE,CAAC;IACzC,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,oCAAoC;IACpC,EAAE,EAAE,SAAS,CAAC;IACd,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,uBAAuB;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,wBAAwB;IACxB,YAAY,EAAE,YAAY,CAAC;IAC3B,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invoice.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"invoice.js","sourceRoot":"","sources":["../../../../src/core/models/invoice.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/qr/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./qr.js"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/qr/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qr.d.ts","sourceRoot":"","sources":["../../../../src/core/qr/qr.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,SAA8D,EACrE,WAAW,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACvC,MAAM,CAGR"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildQrPayload = buildQrPayload;
|
|
4
|
+
/**
|
|
5
|
+
* Construye el payload del QR Verifactu.
|
|
6
|
+
*
|
|
7
|
+
* El QR Verifactu codifica una URL de verificación que incluye el hash del
|
|
8
|
+
* registro, de modo que cualquier persona pueda verificar la integridad de
|
|
9
|
+
* la factura contra la AEAT.
|
|
10
|
+
*
|
|
11
|
+
* @param hash Hash del registro (encadenado).
|
|
12
|
+
* @param baseUrl URL base de verificación de la AEAT.
|
|
13
|
+
* @param extraParams Parámetros adicionales a incluir en la URL.
|
|
14
|
+
*/
|
|
15
|
+
function buildQrPayload(hash, baseUrl = 'https://www2.agenciatributaria.gob.es/verifactu/verificar', extraParams = {}) {
|
|
16
|
+
const params = new URLSearchParams({ hash, ...extraParams });
|
|
17
|
+
return `${baseUrl}?${params.toString()}`;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=qr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qr.js","sourceRoot":"","sources":["../../../../src/core/qr/qr.ts"],"names":[],"mappings":";;AAWA,wCAOC;AAlBD;;;;;;;;;;GAUG;AACH,SAAgB,cAAc,CAC5B,IAAY,EACZ,OAAO,GAAG,2DAA2D,EACrE,cAAsC,EAAE;IAExC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,IAAI,EAAE,GAAG,WAAW,EAAE,CAAC,CAAC;IAC7D,OAAO,GAAG,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;AAC3C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../../src/core/xml/generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,4CAA4C;IAC5C,sBAAsB,EAAE,MAAM,CAAC;IAC/B,4CAA4C;IAC5C,sBAAsB,EAAE,MAAM,CAAC;IAC/B,iDAAiD;IACjD,6BAA6B,EAAE,MAAM,CAAC;IACtC,2CAA2C;IAC3C,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAqBD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAwDxF;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,cAAc,EACzB,YAAY,EAAE,MAAM,GAAG,IAAI,GAC1B,MAAM,CAqBR"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateInvoiceXml = generateInvoiceXml;
|
|
4
|
+
exports.generateAnulacionXml = generateAnulacionXml;
|
|
5
|
+
/**
|
|
6
|
+
* Escapa caracteres especiales para XML.
|
|
7
|
+
*/
|
|
8
|
+
function escapeXml(value) {
|
|
9
|
+
return value
|
|
10
|
+
.replace(/&/g, '&')
|
|
11
|
+
.replace(/</g, '<')
|
|
12
|
+
.replace(/>/g, '>')
|
|
13
|
+
.replace(/"/g, '"')
|
|
14
|
+
.replace(/'/g, ''');
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Formatea un número con 2 decimales (formato Verifactu).
|
|
18
|
+
*/
|
|
19
|
+
function formatAmount(value) {
|
|
20
|
+
return value.toFixed(2);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Genera el XML Verifactu de una factura (registro de alta).
|
|
24
|
+
*
|
|
25
|
+
* Estructura basada en el RD 1007/2023 y la documentación técnica de la
|
|
26
|
+
* AEAT. NOTA: el esquema XSD oficial debe validarse antes de producción;
|
|
27
|
+
* este esqueleto refleja los bloques principales (IDFactura, IDEmisorFactura,
|
|
28
|
+
* TipoFactura, TipoDesglose, Desglose, CuotaTotal, Encadenamiento, Huella).
|
|
29
|
+
*/
|
|
30
|
+
function generateInvoiceXml(invoice, previousHash) {
|
|
31
|
+
const { id, emisor, desglose, tipoFactura, tipoDesglose } = invoice;
|
|
32
|
+
const detalles = desglose.tipoOperaciones
|
|
33
|
+
.map((op) => {
|
|
34
|
+
const iva = op.detallesIva
|
|
35
|
+
.map((d) => ` <DetalleIVA>` +
|
|
36
|
+
`<TipoImpositivo>${formatAmount(d.tipoImpositivo)}</TipoImpositivo>` +
|
|
37
|
+
`<BaseImponible>${formatAmount(d.baseImponible)}</BaseImponible>` +
|
|
38
|
+
`<CuotaRepercutida>${formatAmount(d.cuotaRepercutida)}</CuotaRepercutida>` +
|
|
39
|
+
`</DetalleIVA>`)
|
|
40
|
+
.join('\n');
|
|
41
|
+
return (` <DesgloseTipoOperacion>` +
|
|
42
|
+
`<TipoOperacion>${escapeXml(op.tipoOperacion)}</TipoOperacion>` +
|
|
43
|
+
`\n <DesgloseIVA>\n${iva}\n </DesgloseIVA>` +
|
|
44
|
+
`\n </DesgloseTipoOperacion>`);
|
|
45
|
+
})
|
|
46
|
+
.join('\n');
|
|
47
|
+
const xml = [
|
|
48
|
+
'<?xml version="1.0" encoding="UTF-8"?>',
|
|
49
|
+
'<RegistroFactura>',
|
|
50
|
+
' <IDFactura>',
|
|
51
|
+
' <IDEmisorFactura>',
|
|
52
|
+
` <NIF>${escapeXml(emisor.nif)}</NIF>`,
|
|
53
|
+
` <NombreRazon>${escapeXml(emisor.nombreRazon)}</NombreRazon>`,
|
|
54
|
+
emisor.pais ? ` <Pais>${escapeXml(emisor.pais)}</Pais>` : '',
|
|
55
|
+
emisor.codigoPostal ? ` <CodigoPostal>${escapeXml(emisor.codigoPostal)}</CodigoPostal>` : '',
|
|
56
|
+
emisor.municipio ? ` <Municipio>${escapeXml(emisor.municipio)}</Municipio>` : '',
|
|
57
|
+
emisor.direccion ? ` <Direccion>${escapeXml(emisor.direccion)}</Direccion>` : '',
|
|
58
|
+
' </IDEmisorFactura>',
|
|
59
|
+
id.serie ? ` <SerieFactura>${escapeXml(id.serie)}</SerieFactura>` : '',
|
|
60
|
+
` <NumeroFactura>${escapeXml(id.numero)}</NumeroFactura>`,
|
|
61
|
+
` <FechaExpedicionFactura>${id.fechaExpedicion}</FechaExpedicionFactura>`,
|
|
62
|
+
id.fechaOperacion ? ` <FechaOperacion>${id.fechaOperacion}</FechaOperacion>` : '',
|
|
63
|
+
' </IDFactura>',
|
|
64
|
+
` <TipoFactura>${tipoFactura}</TipoFactura>`,
|
|
65
|
+
` <TipoDesglose>${tipoDesglose}</TipoDesglose>`,
|
|
66
|
+
' <Desglose>',
|
|
67
|
+
detalles,
|
|
68
|
+
' </Desglose>',
|
|
69
|
+
` <CuotaTotal>${formatAmount(desglose.cuotaTotal)}</CuotaTotal>`,
|
|
70
|
+
' <Encadenamiento>',
|
|
71
|
+
` <HashAnterior>${previousHash ?? ''}</HashAnterior>`,
|
|
72
|
+
' </Encadenamiento>',
|
|
73
|
+
'</RegistroFactura>',
|
|
74
|
+
]
|
|
75
|
+
.filter((line) => line !== '')
|
|
76
|
+
.join('\n');
|
|
77
|
+
return xml;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Genera el XML Verifactu de un registro de anulación.
|
|
81
|
+
*
|
|
82
|
+
* Referencia la factura anulada (IDFactura + Huella) y encadena con el hash
|
|
83
|
+
* anterior. Estructura basada en el RD 1007/2023; validar contra el XSD
|
|
84
|
+
* oficial antes de producción.
|
|
85
|
+
*/
|
|
86
|
+
function generateAnulacionXml(anulacion, previousHash) {
|
|
87
|
+
const xml = [
|
|
88
|
+
'<?xml version="1.0" encoding="UTF-8"?>',
|
|
89
|
+
'<RegistroFactura>',
|
|
90
|
+
' <RegistroAnulacion>',
|
|
91
|
+
' <IDFactura>',
|
|
92
|
+
' <IDEmisorFactura>',
|
|
93
|
+
` <NIF>${escapeXml(anulacion.idEmisorFacturaAnulada)}</NIF>`,
|
|
94
|
+
' </IDEmisorFactura>',
|
|
95
|
+
` <NumeroFactura>${escapeXml(anulacion.numSerieFacturaAnulada)}</NumeroFactura>`,
|
|
96
|
+
` <FechaExpedicionFactura>${anulacion.fechaExpedicionFacturaAnulada}</FechaExpedicionFactura>`,
|
|
97
|
+
' </IDFactura>',
|
|
98
|
+
` <Huella>${anulacion.huellaFacturaAnulada}</Huella>`,
|
|
99
|
+
' </RegistroAnulacion>',
|
|
100
|
+
' <Encadenamiento>',
|
|
101
|
+
` <HashAnterior>${previousHash ?? ''}</HashAnterior>`,
|
|
102
|
+
' </Encadenamiento>',
|
|
103
|
+
'</RegistroFactura>',
|
|
104
|
+
].join('\n');
|
|
105
|
+
return xml;
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../src/core/xml/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/xml/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./generator.js"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/xml/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./core/index.js"), exports);
|
|
18
|
+
__exportStar(require("./aeat/index.js"), exports);
|
|
19
|
+
__exportStar(require("./integration/index.js"), exports);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,kDAAgC;AAChC,yDAAuC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/integration/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC"}
|