@dwast/verifactu-lib 0.1.0-beta.4 → 0.1.0-beta.6
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 +18 -4
- package/dist/cjs/aeat/client.d.ts.map +1 -1
- package/dist/cjs/aeat/client.js +28 -13
- package/dist/cjs/aeat/client.js.map +1 -1
- package/dist/esm/aeat/client.d.ts +18 -4
- package/dist/esm/aeat/client.d.ts.map +1 -1
- package/dist/esm/aeat/client.js +27 -13
- package/dist/esm/aeat/client.js.map +1 -1
- package/package.json +1 -1
- package/readme.md +8 -12
- package/src/aeat/client.ts +30 -13
|
@@ -77,15 +77,29 @@ export interface VerifactuClientConfig {
|
|
|
77
77
|
/** Timeout de petición en ms. */
|
|
78
78
|
timeoutMs?: number;
|
|
79
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* Resuelve el entorno efectivo.
|
|
82
|
+
*
|
|
83
|
+
* Orden de precedencia:
|
|
84
|
+
* 1. `config.env` (si se pasa explícito).
|
|
85
|
+
* 2. Variable de entorno `VERIFACTU_ENV` (si está definida).
|
|
86
|
+
* 3. Variable de entorno `NODE_ENV` (si está definida).
|
|
87
|
+
* 4. `test` (por defecto): si no se puede determinar el entorno, se usa la
|
|
88
|
+
* URL de pruebas de AEAT para no enviar facturas reales a producción por
|
|
89
|
+
* error de configuración.
|
|
90
|
+
*/
|
|
91
|
+
export declare function resolveEnv(config: Pick<VerifactuClientConfig, 'env'>): VerifactuEnv;
|
|
80
92
|
/**
|
|
81
93
|
* Resuelve la URL base efectiva según el entorno.
|
|
82
94
|
*
|
|
83
95
|
* Regla: **por defecto se usa producción** (la app real factura en prod).
|
|
84
|
-
* - Si
|
|
85
|
-
*
|
|
96
|
+
* - Si el entorno es `production`, usa `baseUrl` o, si no se aporta, la URL
|
|
97
|
+
* de producción de AEAT (`AEAT_PRODUCTION_SOAP_URL`).
|
|
98
|
+
* - Si el entorno es `test`/`development`, usa `testBaseUrl` o, si no se
|
|
99
|
+
* aporta, la URL de pruebas de AEAT (`AEAT_TEST_SOAP_URL`).
|
|
86
100
|
*
|
|
87
|
-
*
|
|
88
|
-
*
|
|
101
|
+
* Así, para hacer pruebas basta con `new VerifactuClient({ env: 'test', cert, key })`
|
|
102
|
+
* o con `VERIFACTU_ENV=test` en el entorno, sin conocer la URL de desarrollo.
|
|
89
103
|
*/
|
|
90
104
|
export declare function resolveBaseUrl(config: Pick<VerifactuClientConfig, 'baseUrl' | 'testBaseUrl' | 'env'>): string;
|
|
91
105
|
export interface SendResult {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/aeat/client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqB,KAAK,YAAY,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAExI;;;GAGG;AACH,eAAO,MAAM,wBAAwB,0CAA0C,CAAC;AAEhF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,4BAA4B,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,cAAc,oGACwE,CAAC;AAEpG;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,6FACuD,CAAC;AAC7F,eAAO,MAAM,kBAAkB,+EAC+C,CAAC;AAE/E;;GAEG;AACH,eAAO,MAAM,iCAAiC,iGACkD,CAAC;AACjG,eAAO,MAAM,2BAA2B,mFAC0C,CAAC;AAEnF;;GAEG;AACH,eAAO,MAAM,uBAAuB,+BAA+B,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,uBAAuB,oCAAoC,CAAC;AAEzE;;GAEG;AACH,eAAO,MAAM,mBAAmB,qIACoG,CAAC;AAErI;;GAEG;AACH,eAAO,MAAM,uBAAuB,4HACuF,CAAC;AAE5H;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,MAAM,GAAG,aAAa,CAAC;AAEjE;;;;;;;;;GASG;AACH,MAAM,WAAW,qBAAqB;IACpC,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/aeat/client.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/aeat/client.js
CHANGED
|
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.VerifactuClient = exports.AEAT_CONSULTA_NAMESPACE = exports.AEAT_SOAP_NAMESPACE = exports.AEAT_OPERATION_CONSULTA = exports.AEAT_OPERATION_REGISTRO = exports.AEAT_TEST_REQUERIMIENTO_URL = exports.AEAT_PRODUCTION_REQUERIMIENTO_URL = exports.AEAT_TEST_SOAP_URL = exports.AEAT_PRODUCTION_SOAP_URL = exports.AEAT_WSDL_PATH = exports.AEAT_TEST_BASE_URL = exports.AEAT_PRODUCTION_BASE_URL = void 0;
|
|
7
|
+
exports.resolveEnv = resolveEnv;
|
|
7
8
|
exports.resolveBaseUrl = resolveBaseUrl;
|
|
8
9
|
const node_https_1 = __importDefault(require("node:https"));
|
|
9
10
|
const generator_js_1 = require("../core/xml/generator.js");
|
|
@@ -50,28 +51,42 @@ exports.AEAT_SOAP_NAMESPACE = 'https://www2.agenciatributaria.gob.es/static_file
|
|
|
50
51
|
* Namespace del elemento de consulta (`ConsultaLR.xsd`).
|
|
51
52
|
*/
|
|
52
53
|
exports.AEAT_CONSULTA_NAMESPACE = 'https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/ConsultaLR.xsd';
|
|
54
|
+
/**
|
|
55
|
+
* Resuelve el entorno efectivo.
|
|
56
|
+
*
|
|
57
|
+
* Orden de precedencia:
|
|
58
|
+
* 1. `config.env` (si se pasa explícito).
|
|
59
|
+
* 2. Variable de entorno `VERIFACTU_ENV` (si está definida).
|
|
60
|
+
* 3. Variable de entorno `NODE_ENV` (si está definida).
|
|
61
|
+
* 4. `test` (por defecto): si no se puede determinar el entorno, se usa la
|
|
62
|
+
* URL de pruebas de AEAT para no enviar facturas reales a producción por
|
|
63
|
+
* error de configuración.
|
|
64
|
+
*/
|
|
65
|
+
function resolveEnv(config) {
|
|
66
|
+
const raw = config.env ?? process.env.VERIFACTU_ENV ?? process.env.NODE_ENV ?? 'test';
|
|
67
|
+
if (raw === 'production' || raw === 'test' || raw === 'development') {
|
|
68
|
+
return raw;
|
|
69
|
+
}
|
|
70
|
+
throw new Error(`Entorno VERIFACTU inválido: "${raw}". Usa "production", "test" o "development".`);
|
|
71
|
+
}
|
|
53
72
|
/**
|
|
54
73
|
* Resuelve la URL base efectiva según el entorno.
|
|
55
74
|
*
|
|
56
75
|
* Regla: **por defecto se usa producción** (la app real factura en prod).
|
|
57
|
-
* - Si
|
|
58
|
-
*
|
|
76
|
+
* - Si el entorno es `production`, usa `baseUrl` o, si no se aporta, la URL
|
|
77
|
+
* de producción de AEAT (`AEAT_PRODUCTION_SOAP_URL`).
|
|
78
|
+
* - Si el entorno es `test`/`development`, usa `testBaseUrl` o, si no se
|
|
79
|
+
* aporta, la URL de pruebas de AEAT (`AEAT_TEST_SOAP_URL`).
|
|
59
80
|
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
81
|
+
* Así, para hacer pruebas basta con `new VerifactuClient({ env: 'test', cert, key })`
|
|
82
|
+
* o con `VERIFACTU_ENV=test` en el entorno, sin conocer la URL de desarrollo.
|
|
62
83
|
*/
|
|
63
84
|
function resolveBaseUrl(config) {
|
|
64
|
-
const env = config
|
|
85
|
+
const env = resolveEnv(config);
|
|
65
86
|
if (env !== 'production') {
|
|
66
|
-
|
|
67
|
-
return config.testBaseUrl;
|
|
68
|
-
}
|
|
69
|
-
throw new Error('env no es "production" y no se ha proporcionado testBaseUrl.');
|
|
70
|
-
}
|
|
71
|
-
if (!config.baseUrl) {
|
|
72
|
-
throw new Error('env es "production" y no se ha proporcionado baseUrl.');
|
|
87
|
+
return exports.AEAT_TEST_SOAP_URL;
|
|
73
88
|
}
|
|
74
|
-
return
|
|
89
|
+
return exports.AEAT_PRODUCTION_SOAP_URL;
|
|
75
90
|
}
|
|
76
91
|
/**
|
|
77
92
|
* Cliente de servicios AEAT para Verifactu.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/aeat/client.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/aeat/client.ts"],"names":[],"mappings":";;;;;;AA+GA,gCAQC;AAcD,wCAMC;AA3ID,4DAA+B;AAC/B,2DAA6F;AAC7F,+CAAwI;AAExI;;;GAGG;AACU,QAAA,wBAAwB,GAAG,uCAAuC,CAAC;AAEhF;;;GAGG;AACU,QAAA,kBAAkB,GAAG,yBAAyB,CAAC;AAE5D;;GAEG;AACU,QAAA,cAAc,GACzB,iGAAiG,CAAC;AAEpG;;;;GAIG;AACU,QAAA,wBAAwB,GACnC,0FAA0F,CAAC;AAChF,QAAA,kBAAkB,GAC7B,4EAA4E,CAAC;AAE/E;;GAEG;AACU,QAAA,iCAAiC,GAC5C,8FAA8F,CAAC;AACpF,QAAA,2BAA2B,GACtC,gFAAgF,CAAC;AAEnF;;GAEG;AACU,QAAA,uBAAuB,GAAG,4BAA4B,CAAC;AAEpE;;GAEG;AACU,QAAA,uBAAuB,GAAG,iCAAiC,CAAC;AAEzE;;GAEG;AACU,QAAA,mBAAmB,GAC9B,kIAAkI,CAAC;AAErI;;GAEG;AACU,QAAA,uBAAuB,GAClC,yHAAyH,CAAC;AAwC5H;;;;;;;;;;GAUG;AACH,SAAgB,UAAU,CAAC,MAA0C;IACnE,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,MAAM,CAAC;IACtF,IAAI,GAAG,KAAK,YAAY,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;QACpE,OAAO,GAAG,CAAC;IACb,CAAC;IACD,MAAM,IAAI,KAAK,CACb,gCAAgC,GAAG,8CAA8C,CAClF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,cAAc,CAAC,MAAsE;IACnG,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAC/B,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;QACzB,OAAO,0BAAkB,CAAC;IAC5B,CAAC;IACD,OAAO,gCAAwB,CAAC;AAClC,CAAC;AAmCD;;GAEG;AACH,MAAa,eAAe;IACT,MAAM,CAAiB;IACvB,KAAK,CAAc;IAEpC,YAAY,MAA6B;QACvC,IAAI,CAAC,MAAM,GAAG;YACZ,SAAS,EAAE,+BAAuB;YAClC,SAAS,EAAE,2BAAmB;YAC9B,SAAS,EAAE,MAAM;YACjB,GAAG,MAAM;YACT,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC;SAChC,CAAC;QAEF,kEAAkE;QAClE,IAAI,CAAC,KAAK,GAAG,IAAI,oBAAK,CAAC,KAAK,CAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG;YACjC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;YAClD,CAAC,CAAC,SAAS,CACd,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,GAAW;QAC1B,MAAM,QAAQ,GAAG,IAAA,oCAAqB,EAAC,GAAG,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,yBAAyB;YACzC,UAAU,EAAE,EAAE;YACd,MAAM,EAAE,iBAAiB;SAC1B,CAAC;QACF,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC1B,OAAO,CAAC,aAAa,GAAG,UAAU,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QAC5D,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAAC,MAWlB;QACC,MAAM,WAAW,GAAG;YAClB,uDAAuD,+BAAuB,eAAe,yCAA0B,IAAI;YAC3H,oBAAoB;YACpB,sCAAsC;YACtC,0BAA0B;YAC1B,yBAAyB,MAAM,CAAC,QAAQ,CAAC,WAAW,mBAAmB;YACvE,iBAAiB,MAAM,CAAC,QAAQ,CAAC,GAAG,WAAW;YAC/C,2BAA2B;YAC3B,qBAAqB;YACrB,0BAA0B;YAC1B,+BAA+B;YAC/B,uBAAuB,MAAM,CAAC,SAAS,iBAAiB;YACxD,qBAAqB,MAAM,CAAC,OAAO,eAAe;YAClD,gCAAgC;YAChC,GAAG,CAAC,MAAM,CAAC,eAAe;gBACxB,CAAC,CAAC,CAAC,8BAA8B,MAAM,CAAC,eAAe,0BAA0B,CAAC;gBAClF,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,MAAM,CAAC,eAAe;gBACxB,CAAC,CAAC,CAAC,8BAA8B,MAAM,CAAC,eAAe,0BAA0B,CAAC;gBAClF,CAAC,CAAC,EAAE,CAAC;YACP,2BAA2B;YAC3B,0CAA0C;SAC3C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,QAAQ,GAAG,IAAA,oCAAqB,EAAC,WAAW,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,yBAAyB;YACzC,UAAU,EAAE,EAAE;YACd,MAAM,EAAE,iBAAiB;SAC1B,CAAC;QACF,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC1B,OAAO,CAAC,aAAa,GAAG,UAAU,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QAC5D,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACK,OAAO,CACb,GAAQ,EACR,MAAsB,EACtB,OAA+B,EAC/B,IAAa;QAEb,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,GAAG,GAAG,oBAAK,CAAC,OAAO,CACvB;gBACE,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,GAAG;gBACrB,IAAI,EAAE,GAAG,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE;gBACpC,MAAM;gBACN,OAAO;gBACP,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,EACD,CAAC,GAAG,EAAE,EAAE;gBACN,IAAI,GAAG,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBACxB,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;oBACvB,GAAG,IAAI,KAAK,CAAC;gBACf,CAAC,CAAC,CAAC;gBACH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;oBACjB,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC;gBACxD,CAAC,CAAC,CAAC;YACL,CAAC,CACF,CAAC;YAEF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACxB,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE;gBACzC,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;YACpE,CAAC,CAAC,CAAC;YAEH,IAAI,IAAI,EAAE,CAAC;gBACT,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;YACD,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACO,aAAa,CAAC,GAAW,EAAE,UAAkB;QACrD,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,MAAM,GAAmB,UAAU,IAAI,GAAG,IAAI,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;QACpF,IAAI,OAA2B,CAAC;QAChC,IAAI,SAA6B,CAAC;QAClC,IAAI,IAAyC,CAAC;QAC9C,IAAI,QAAkC,CAAC;QAEvC,kDAAkD;QAClD,MAAM,IAAI,GAAG,IAAA,+BAAiB,EAAC,GAAG,CAAC,CAAC;QACpC,IAAI,IAAI,EAAE,CAAC;YACT,QAAQ,GAAG,IAAI,CAAC;YAChB,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACjB,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;YACvE,qEAAqE;YACrE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3D,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,IAAI,WAAW,EAAE,CAAC;gBAC9C,MAAM,GAAG,OAAO,CAAC;gBACjB,OAAO,GAAG,WAAW,IAAI,OAAO,CAAC;gBACjC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,IAAI,SAAS,CAAC;gBAC9D,OAAO;oBACL,WAAW;oBACX,MAAM;oBACN,OAAO;oBACP,SAAS;oBACT,WAAW,EAAE,GAAG;oBAChB,IAAI;oBACJ,QAAQ;iBACT,CAAC;YACJ,CAAC;YACD,oDAAoD;YACpD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;YACvB,MAAM,MAAM,GAAG,GAAG,EAAE,cAAc,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,YAAY,CAAC;YACtE,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,GAAG,+BAA+B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;YACzE,CAAC;YACD,SAAS,GAAG,GAAG,EAAE,mBAAmB,IAAI,GAAG,EAAE,WAAW,IAAI,EAAE,EAAE,iBAAiB,CAAC;YAClF,OAAO;gBACL,GAAG,EAAE,wBAAwB;oBAC7B,GAAG,EAAE,gBAAgB;oBACrB,EAAE,EAAE,sBAAsB;oBAC1B,MAAM,CAAC;QACX,CAAC;aAAM,CAAC;YACN,6DAA6D;YAC7D,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;gBACxD,IAAI,GAAG,IAAI,CAAC;gBACZ,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBACxD,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;oBACpD,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBACvB,CAAC;gBACD,OAAO,GAAG,IAAI,CAAC,OAA6B,CAAC;gBAC7C,SAAS,GAAG,IAAI,CAAC,SAA+B,CAAC;YACnD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,GAAG,GAAG,CAAC;YAChB,CAAC;QACH,CAAC;QAED,OAAO;YACL,WAAW;YACX,MAAM;YACN,OAAO;YACP,SAAS;YACT,WAAW,EAAE,GAAG;YAChB,IAAI;YACJ,QAAQ;YACR,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YAC5B,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YAC5B,MAAM,EAAE,QAAQ,EAAE,MAAM;SACzB,CAAC;IACJ,CAAC;CACF;AAzND,0CAyNC"}
|
|
@@ -77,15 +77,29 @@ export interface VerifactuClientConfig {
|
|
|
77
77
|
/** Timeout de petición en ms. */
|
|
78
78
|
timeoutMs?: number;
|
|
79
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* Resuelve el entorno efectivo.
|
|
82
|
+
*
|
|
83
|
+
* Orden de precedencia:
|
|
84
|
+
* 1. `config.env` (si se pasa explícito).
|
|
85
|
+
* 2. Variable de entorno `VERIFACTU_ENV` (si está definida).
|
|
86
|
+
* 3. Variable de entorno `NODE_ENV` (si está definida).
|
|
87
|
+
* 4. `test` (por defecto): si no se puede determinar el entorno, se usa la
|
|
88
|
+
* URL de pruebas de AEAT para no enviar facturas reales a producción por
|
|
89
|
+
* error de configuración.
|
|
90
|
+
*/
|
|
91
|
+
export declare function resolveEnv(config: Pick<VerifactuClientConfig, 'env'>): VerifactuEnv;
|
|
80
92
|
/**
|
|
81
93
|
* Resuelve la URL base efectiva según el entorno.
|
|
82
94
|
*
|
|
83
95
|
* Regla: **por defecto se usa producción** (la app real factura en prod).
|
|
84
|
-
* - Si
|
|
85
|
-
*
|
|
96
|
+
* - Si el entorno es `production`, usa `baseUrl` o, si no se aporta, la URL
|
|
97
|
+
* de producción de AEAT (`AEAT_PRODUCTION_SOAP_URL`).
|
|
98
|
+
* - Si el entorno es `test`/`development`, usa `testBaseUrl` o, si no se
|
|
99
|
+
* aporta, la URL de pruebas de AEAT (`AEAT_TEST_SOAP_URL`).
|
|
86
100
|
*
|
|
87
|
-
*
|
|
88
|
-
*
|
|
101
|
+
* Así, para hacer pruebas basta con `new VerifactuClient({ env: 'test', cert, key })`
|
|
102
|
+
* o con `VERIFACTU_ENV=test` en el entorno, sin conocer la URL de desarrollo.
|
|
89
103
|
*/
|
|
90
104
|
export declare function resolveBaseUrl(config: Pick<VerifactuClientConfig, 'baseUrl' | 'testBaseUrl' | 'env'>): string;
|
|
91
105
|
export interface SendResult {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/aeat/client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqB,KAAK,YAAY,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAExI;;;GAGG;AACH,eAAO,MAAM,wBAAwB,0CAA0C,CAAC;AAEhF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,4BAA4B,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,cAAc,oGACwE,CAAC;AAEpG;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,6FACuD,CAAC;AAC7F,eAAO,MAAM,kBAAkB,+EAC+C,CAAC;AAE/E;;GAEG;AACH,eAAO,MAAM,iCAAiC,iGACkD,CAAC;AACjG,eAAO,MAAM,2BAA2B,mFAC0C,CAAC;AAEnF;;GAEG;AACH,eAAO,MAAM,uBAAuB,+BAA+B,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,uBAAuB,oCAAoC,CAAC;AAEzE;;GAEG;AACH,eAAO,MAAM,mBAAmB,qIACoG,CAAC;AAErI;;GAEG;AACH,eAAO,MAAM,uBAAuB,4HACuF,CAAC;AAE5H;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,MAAM,GAAG,aAAa,CAAC;AAEjE;;;;;;;;;GASG;AACH,MAAM,WAAW,qBAAqB;IACpC,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/aeat/client.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/aeat/client.js
CHANGED
|
@@ -43,28 +43,42 @@ export const AEAT_SOAP_NAMESPACE = 'https://www2.agenciatributaria.gob.es/static
|
|
|
43
43
|
* Namespace del elemento de consulta (`ConsultaLR.xsd`).
|
|
44
44
|
*/
|
|
45
45
|
export const AEAT_CONSULTA_NAMESPACE = 'https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/ConsultaLR.xsd';
|
|
46
|
+
/**
|
|
47
|
+
* Resuelve el entorno efectivo.
|
|
48
|
+
*
|
|
49
|
+
* Orden de precedencia:
|
|
50
|
+
* 1. `config.env` (si se pasa explícito).
|
|
51
|
+
* 2. Variable de entorno `VERIFACTU_ENV` (si está definida).
|
|
52
|
+
* 3. Variable de entorno `NODE_ENV` (si está definida).
|
|
53
|
+
* 4. `test` (por defecto): si no se puede determinar el entorno, se usa la
|
|
54
|
+
* URL de pruebas de AEAT para no enviar facturas reales a producción por
|
|
55
|
+
* error de configuración.
|
|
56
|
+
*/
|
|
57
|
+
export function resolveEnv(config) {
|
|
58
|
+
const raw = config.env ?? process.env.VERIFACTU_ENV ?? process.env.NODE_ENV ?? 'test';
|
|
59
|
+
if (raw === 'production' || raw === 'test' || raw === 'development') {
|
|
60
|
+
return raw;
|
|
61
|
+
}
|
|
62
|
+
throw new Error(`Entorno VERIFACTU inválido: "${raw}". Usa "production", "test" o "development".`);
|
|
63
|
+
}
|
|
46
64
|
/**
|
|
47
65
|
* Resuelve la URL base efectiva según el entorno.
|
|
48
66
|
*
|
|
49
67
|
* Regla: **por defecto se usa producción** (la app real factura en prod).
|
|
50
|
-
* - Si
|
|
51
|
-
*
|
|
68
|
+
* - Si el entorno es `production`, usa `baseUrl` o, si no se aporta, la URL
|
|
69
|
+
* de producción de AEAT (`AEAT_PRODUCTION_SOAP_URL`).
|
|
70
|
+
* - Si el entorno es `test`/`development`, usa `testBaseUrl` o, si no se
|
|
71
|
+
* aporta, la URL de pruebas de AEAT (`AEAT_TEST_SOAP_URL`).
|
|
52
72
|
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
73
|
+
* Así, para hacer pruebas basta con `new VerifactuClient({ env: 'test', cert, key })`
|
|
74
|
+
* o con `VERIFACTU_ENV=test` en el entorno, sin conocer la URL de desarrollo.
|
|
55
75
|
*/
|
|
56
76
|
export function resolveBaseUrl(config) {
|
|
57
|
-
const env = config
|
|
77
|
+
const env = resolveEnv(config);
|
|
58
78
|
if (env !== 'production') {
|
|
59
|
-
|
|
60
|
-
return config.testBaseUrl;
|
|
61
|
-
}
|
|
62
|
-
throw new Error('env no es "production" y no se ha proporcionado testBaseUrl.');
|
|
63
|
-
}
|
|
64
|
-
if (!config.baseUrl) {
|
|
65
|
-
throw new Error('env es "production" y no se ha proporcionado baseUrl.');
|
|
79
|
+
return AEAT_TEST_SOAP_URL;
|
|
66
80
|
}
|
|
67
|
-
return
|
|
81
|
+
return AEAT_PRODUCTION_SOAP_URL;
|
|
68
82
|
}
|
|
69
83
|
/**
|
|
70
84
|
* Cliente de servicios AEAT para Verifactu.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/aeat/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAwF,MAAM,eAAe,CAAC;AAExI;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,uCAAuC,CAAC;AAEhF;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,yBAAyB,CAAC;AAE5D;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GACzB,iGAAiG,CAAC;AAEpG;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GACnC,0FAA0F,CAAC;AAC7F,MAAM,CAAC,MAAM,kBAAkB,GAC7B,4EAA4E,CAAC;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAC5C,8FAA8F,CAAC;AACjG,MAAM,CAAC,MAAM,2BAA2B,GACtC,gFAAgF,CAAC;AAEnF;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,4BAA4B,CAAC;AAEpE;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,iCAAiC,CAAC;AAEzE;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAC9B,kIAAkI,CAAC;AAErI;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAClC,yHAAyH,CAAC;AAwC5H
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/aeat/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAwF,MAAM,eAAe,CAAC;AAExI;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,uCAAuC,CAAC;AAEhF;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,yBAAyB,CAAC;AAE5D;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GACzB,iGAAiG,CAAC;AAEpG;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GACnC,0FAA0F,CAAC;AAC7F,MAAM,CAAC,MAAM,kBAAkB,GAC7B,4EAA4E,CAAC;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAC5C,8FAA8F,CAAC;AACjG,MAAM,CAAC,MAAM,2BAA2B,GACtC,gFAAgF,CAAC;AAEnF;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,4BAA4B,CAAC;AAEpE;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,iCAAiC,CAAC;AAEzE;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAC9B,kIAAkI,CAAC;AAErI;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAClC,yHAAyH,CAAC;AAwC5H;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU,CAAC,MAA0C;IACnE,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,MAAM,CAAC;IACtF,IAAI,GAAG,KAAK,YAAY,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;QACpE,OAAO,GAAG,CAAC;IACb,CAAC;IACD,MAAM,IAAI,KAAK,CACb,gCAAgC,GAAG,8CAA8C,CAClF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,cAAc,CAAC,MAAsE;IACnG,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAC/B,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;QACzB,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IACD,OAAO,wBAAwB,CAAC;AAClC,CAAC;AAmCD;;GAEG;AACH,MAAM,OAAO,eAAe;IACT,MAAM,CAAiB;IACvB,KAAK,CAAc;IAEpC,YAAY,MAA6B;QACvC,IAAI,CAAC,MAAM,GAAG;YACZ,SAAS,EAAE,uBAAuB;YAClC,SAAS,EAAE,mBAAmB;YAC9B,SAAS,EAAE,MAAM;YACjB,GAAG,MAAM;YACT,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC;SAChC,CAAC;QAEF,kEAAkE;QAClE,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG;YACjC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;YAClD,CAAC,CAAC,SAAS,CACd,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,GAAW;QAC1B,MAAM,QAAQ,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,yBAAyB;YACzC,UAAU,EAAE,EAAE;YACd,MAAM,EAAE,iBAAiB;SAC1B,CAAC;QACF,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC1B,OAAO,CAAC,aAAa,GAAG,UAAU,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QAC5D,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAAC,MAWlB;QACC,MAAM,WAAW,GAAG;YAClB,uDAAuD,uBAAuB,eAAe,0BAA0B,IAAI;YAC3H,oBAAoB;YACpB,sCAAsC;YACtC,0BAA0B;YAC1B,yBAAyB,MAAM,CAAC,QAAQ,CAAC,WAAW,mBAAmB;YACvE,iBAAiB,MAAM,CAAC,QAAQ,CAAC,GAAG,WAAW;YAC/C,2BAA2B;YAC3B,qBAAqB;YACrB,0BAA0B;YAC1B,+BAA+B;YAC/B,uBAAuB,MAAM,CAAC,SAAS,iBAAiB;YACxD,qBAAqB,MAAM,CAAC,OAAO,eAAe;YAClD,gCAAgC;YAChC,GAAG,CAAC,MAAM,CAAC,eAAe;gBACxB,CAAC,CAAC,CAAC,8BAA8B,MAAM,CAAC,eAAe,0BAA0B,CAAC;gBAClF,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,MAAM,CAAC,eAAe;gBACxB,CAAC,CAAC,CAAC,8BAA8B,MAAM,CAAC,eAAe,0BAA0B,CAAC;gBAClF,CAAC,CAAC,EAAE,CAAC;YACP,2BAA2B;YAC3B,0CAA0C;SAC3C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,QAAQ,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,yBAAyB;YACzC,UAAU,EAAE,EAAE;YACd,MAAM,EAAE,iBAAiB;SAC1B,CAAC;QACF,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC1B,OAAO,CAAC,aAAa,GAAG,UAAU,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QAC5D,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACK,OAAO,CACb,GAAQ,EACR,MAAsB,EACtB,OAA+B,EAC/B,IAAa;QAEb,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CACvB;gBACE,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,GAAG;gBACrB,IAAI,EAAE,GAAG,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE;gBACpC,MAAM;gBACN,OAAO;gBACP,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,EACD,CAAC,GAAG,EAAE,EAAE;gBACN,IAAI,GAAG,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBACxB,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;oBACvB,GAAG,IAAI,KAAK,CAAC;gBACf,CAAC,CAAC,CAAC;gBACH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;oBACjB,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC;gBACxD,CAAC,CAAC,CAAC;YACL,CAAC,CACF,CAAC;YAEF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACxB,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE;gBACzC,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;YACpE,CAAC,CAAC,CAAC;YAEH,IAAI,IAAI,EAAE,CAAC;gBACT,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;YACD,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACO,aAAa,CAAC,GAAW,EAAE,UAAkB;QACrD,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,MAAM,GAAmB,UAAU,IAAI,GAAG,IAAI,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;QACpF,IAAI,OAA2B,CAAC;QAChC,IAAI,SAA6B,CAAC;QAClC,IAAI,IAAyC,CAAC;QAC9C,IAAI,QAAkC,CAAC;QAEvC,kDAAkD;QAClD,MAAM,IAAI,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,IAAI,EAAE,CAAC;YACT,QAAQ,GAAG,IAAI,CAAC;YAChB,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACjB,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;YACvE,qEAAqE;YACrE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3D,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,IAAI,WAAW,EAAE,CAAC;gBAC9C,MAAM,GAAG,OAAO,CAAC;gBACjB,OAAO,GAAG,WAAW,IAAI,OAAO,CAAC;gBACjC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,IAAI,SAAS,CAAC;gBAC9D,OAAO;oBACL,WAAW;oBACX,MAAM;oBACN,OAAO;oBACP,SAAS;oBACT,WAAW,EAAE,GAAG;oBAChB,IAAI;oBACJ,QAAQ;iBACT,CAAC;YACJ,CAAC;YACD,oDAAoD;YACpD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;YACvB,MAAM,MAAM,GAAG,GAAG,EAAE,cAAc,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,YAAY,CAAC;YACtE,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,GAAG,+BAA+B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;YACzE,CAAC;YACD,SAAS,GAAG,GAAG,EAAE,mBAAmB,IAAI,GAAG,EAAE,WAAW,IAAI,EAAE,EAAE,iBAAiB,CAAC;YAClF,OAAO;gBACL,GAAG,EAAE,wBAAwB;oBAC7B,GAAG,EAAE,gBAAgB;oBACrB,EAAE,EAAE,sBAAsB;oBAC1B,MAAM,CAAC;QACX,CAAC;aAAM,CAAC;YACN,6DAA6D;YAC7D,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;gBACxD,IAAI,GAAG,IAAI,CAAC;gBACZ,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBACxD,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;oBACpD,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBACvB,CAAC;gBACD,OAAO,GAAG,IAAI,CAAC,OAA6B,CAAC;gBAC7C,SAAS,GAAG,IAAI,CAAC,SAA+B,CAAC;YACnD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,GAAG,GAAG,CAAC;YAChB,CAAC;QACH,CAAC;QAED,OAAO;YACL,WAAW;YACX,MAAM;YACN,OAAO;YACP,SAAS;YACT,WAAW,EAAE,GAAG;YAChB,IAAI;YACJ,QAAQ;YACR,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YAC5B,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YAC5B,MAAM,EAAE,QAAQ,EAAE,MAAM;SACzB,CAAC;IACJ,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dwast/verifactu-lib",
|
|
3
|
-
"version": "0.1.0-beta.
|
|
3
|
+
"version": "0.1.0-beta.6",
|
|
4
4
|
"description": "Librería para la gestión de Verifactu (RD 1007/2023): modelo de datos, encadenado hash, generación XML, QR y cliente AEAT.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/cjs/index.js",
|
package/readme.md
CHANGED
|
@@ -53,12 +53,12 @@ Guía práctica paso a paso. La receta recomendada es **`VerifactuService`** (se
|
|
|
53
53
|
|
|
54
54
|
### 0. Configuración inicial (certificado `.p12` → cliente)
|
|
55
55
|
|
|
56
|
-
Extrae `cert` + `key` del `.p12` y construye el cliente (aquí en entorno de **pruebas**; en producción
|
|
56
|
+
Extrae `cert` + `key` del `.p12` y construye el cliente (aquí en entorno de **pruebas**; en producción no pases `env`).
|
|
57
57
|
|
|
58
58
|
```ts
|
|
59
59
|
import { readFileSync } from 'node:fs';
|
|
60
60
|
import { readP12 } from '@dwast/verifactu-lib/integration';
|
|
61
|
-
import { VerifactuClient
|
|
61
|
+
import { VerifactuClient } from '@dwast/verifactu-lib/aeat';
|
|
62
62
|
import { VerifactuService } from '@dwast/verifactu-lib/integration';
|
|
63
63
|
import type { VerifactuRepository } from '@dwast/verifactu-lib/integration';
|
|
64
64
|
|
|
@@ -68,10 +68,10 @@ const { certificates, keys } = readP12(
|
|
|
68
68
|
'contraseña-del-p12',
|
|
69
69
|
);
|
|
70
70
|
|
|
71
|
-
// 2. Cliente AEAT con mTLS. env:'test' → usa
|
|
71
|
+
// 2. Cliente AEAT con mTLS. env:'test' → usa la URL de PRUEBAS de AEAT
|
|
72
|
+
// automáticamente (no hace falta indicar testBaseUrl).
|
|
72
73
|
const client = new VerifactuClient({
|
|
73
|
-
|
|
74
|
-
env: 'test',
|
|
74
|
+
env: 'test', // 'test' | 'development' → URL de pruebas; 'production' (o nada) → producción
|
|
75
75
|
cert: certificates[0],
|
|
76
76
|
key: keys[0],
|
|
77
77
|
timeoutMs: 15_000,
|
|
@@ -83,8 +83,7 @@ const repo: VerifactuRepository = /* tu implementación (Mongoose, Prisma...) */
|
|
|
83
83
|
const service = new VerifactuService(repo, client, certificates[0]);
|
|
84
84
|
```
|
|
85
85
|
|
|
86
|
-
> **
|
|
87
|
-
> `new VerifactuClient({ baseUrl: AEAT_PRODUCTION_SOAP_URL, cert, key })`.
|
|
86
|
+
> **Entornos:** `env: 'test'`/`'development'` usa la URL de pruebas de AEAT (`AEAT_TEST_SOAP_URL`); `env: 'production'` usa la de producción (`AEAT_PRODUCTION_SOAP_URL`). También puedes fijar `VERIFACTU_ENV`/`NODE_ENV` en el entorno. Si no se determina el entorno, se usa la URL de **pruebas** por defecto.
|
|
88
87
|
|
|
89
88
|
### 1. Enviar 1 factura (alta)
|
|
90
89
|
|
|
@@ -426,10 +425,9 @@ Comprueba campos obligatorios, el formato `DD-MM-YYYY` de las fechas, `destinata
|
|
|
426
425
|
Soporta autenticación por **certificado digital (mTLS)** o por token, y **dos entornos** (producción y pruebas). Por defecto se usa **producción**; los tests fijan `env: 'test'` para usar desarrollo.
|
|
427
426
|
|
|
428
427
|
```ts
|
|
429
|
-
import { VerifactuClient
|
|
428
|
+
import { VerifactuClient } from '@dwast/verifactu-lib/aeat';
|
|
430
429
|
|
|
431
430
|
const client = new VerifactuClient({
|
|
432
|
-
testBaseUrl: AEAT_TEST_SOAP_URL, // https://prewww1.aeat.es/.../VerifactuSOAP
|
|
433
431
|
env: 'test', // 'production' | 'test' | 'development'
|
|
434
432
|
cert, // PEM (mTLS)
|
|
435
433
|
key, // PEM (mTLS)
|
|
@@ -441,8 +439,6 @@ const client = new VerifactuClient({
|
|
|
441
439
|
|
|
442
440
|
| Campo | Descripción |
|
|
443
441
|
|-------|-------------|
|
|
444
|
-
| `baseUrl` | URL del endpoint SOAP en producción |
|
|
445
|
-
| `testBaseUrl` | URL del endpoint SOAP en pruebas |
|
|
446
442
|
| `env` | `production` (default) \| `test` \| `development` |
|
|
447
443
|
| `authToken` | Token OAuth alternativo al certificado |
|
|
448
444
|
| `cert` / `key` | Certificado y clave PEM (mTLS) |
|
|
@@ -450,7 +446,7 @@ const client = new VerifactuClient({
|
|
|
450
446
|
| `namespace` | Namespace del servicio |
|
|
451
447
|
| `timeoutMs` | Timeout de petición (default 10s) |
|
|
452
448
|
|
|
453
|
-
**Regla de entorno:**
|
|
449
|
+
**Regla de entorno:** el entorno se resuelve así: `config.env` → `VERIFACTU_ENV` → `NODE_ENV` → **`test`** (por defecto). Si el entorno es `production`, usa `AEAT_PRODUCTION_SOAP_URL`; si es `test`/`development`, usa `AEAT_TEST_SOAP_URL`. Para hacer pruebas basta con `new VerifactuClient({ env: 'test', cert, key })` o con `VERIFACTU_ENV=test`. Si no se puede determinar el entorno, se usa la URL de **pruebas** para no enviar facturas reales a producción por error de configuración.
|
|
454
450
|
|
|
455
451
|
### Métodos
|
|
456
452
|
|
package/src/aeat/client.ts
CHANGED
|
@@ -98,28 +98,45 @@ export interface VerifactuClientConfig {
|
|
|
98
98
|
timeoutMs?: number;
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
+
/**
|
|
102
|
+
* Resuelve el entorno efectivo.
|
|
103
|
+
*
|
|
104
|
+
* Orden de precedencia:
|
|
105
|
+
* 1. `config.env` (si se pasa explícito).
|
|
106
|
+
* 2. Variable de entorno `VERIFACTU_ENV` (si está definida).
|
|
107
|
+
* 3. Variable de entorno `NODE_ENV` (si está definida).
|
|
108
|
+
* 4. `test` (por defecto): si no se puede determinar el entorno, se usa la
|
|
109
|
+
* URL de pruebas de AEAT para no enviar facturas reales a producción por
|
|
110
|
+
* error de configuración.
|
|
111
|
+
*/
|
|
112
|
+
export function resolveEnv(config: Pick<VerifactuClientConfig, 'env'>): VerifactuEnv {
|
|
113
|
+
const raw = config.env ?? process.env.VERIFACTU_ENV ?? process.env.NODE_ENV ?? 'test';
|
|
114
|
+
if (raw === 'production' || raw === 'test' || raw === 'development') {
|
|
115
|
+
return raw;
|
|
116
|
+
}
|
|
117
|
+
throw new Error(
|
|
118
|
+
`Entorno VERIFACTU inválido: "${raw}". Usa "production", "test" o "development".`,
|
|
119
|
+
);
|
|
120
|
+
}
|
|
121
|
+
|
|
101
122
|
/**
|
|
102
123
|
* Resuelve la URL base efectiva según el entorno.
|
|
103
124
|
*
|
|
104
125
|
* Regla: **por defecto se usa producción** (la app real factura en prod).
|
|
105
|
-
* - Si
|
|
106
|
-
*
|
|
126
|
+
* - Si el entorno es `production`, usa `baseUrl` o, si no se aporta, la URL
|
|
127
|
+
* de producción de AEAT (`AEAT_PRODUCTION_SOAP_URL`).
|
|
128
|
+
* - Si el entorno es `test`/`development`, usa `testBaseUrl` o, si no se
|
|
129
|
+
* aporta, la URL de pruebas de AEAT (`AEAT_TEST_SOAP_URL`).
|
|
107
130
|
*
|
|
108
|
-
*
|
|
109
|
-
*
|
|
131
|
+
* Así, para hacer pruebas basta con `new VerifactuClient({ env: 'test', cert, key })`
|
|
132
|
+
* o con `VERIFACTU_ENV=test` en el entorno, sin conocer la URL de desarrollo.
|
|
110
133
|
*/
|
|
111
134
|
export function resolveBaseUrl(config: Pick<VerifactuClientConfig, 'baseUrl' | 'testBaseUrl' | 'env'>): string {
|
|
112
|
-
const env = config
|
|
135
|
+
const env = resolveEnv(config);
|
|
113
136
|
if (env !== 'production') {
|
|
114
|
-
|
|
115
|
-
return config.testBaseUrl;
|
|
116
|
-
}
|
|
117
|
-
throw new Error('env no es "production" y no se ha proporcionado testBaseUrl.');
|
|
118
|
-
}
|
|
119
|
-
if (!config.baseUrl) {
|
|
120
|
-
throw new Error('env es "production" y no se ha proporcionado baseUrl.');
|
|
137
|
+
return AEAT_TEST_SOAP_URL;
|
|
121
138
|
}
|
|
122
|
-
return
|
|
139
|
+
return AEAT_PRODUCTION_SOAP_URL;
|
|
123
140
|
}
|
|
124
141
|
|
|
125
142
|
export interface SendResult {
|