@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.
@@ -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 `env` es `production` (o no se indica), usa `baseUrl`.
85
- * - Si `env` es `test`/`development`, usa `testBaseUrl`.
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
- * Los tests se ejecutan aparte y fijan `env: 'test'` + `testBaseUrl` para
88
- * usar desarrollo (sin necesidad de indicar la URL de producción).
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":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/aeat/client.ts"],"names":[],"mappings":"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"}
@@ -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 `env` es `production` (o no se indica), usa `baseUrl`.
58
- * - Si `env` es `test`/`development`, usa `testBaseUrl`.
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
- * Los tests se ejecutan aparte y fijan `env: 'test'` + `testBaseUrl` para
61
- * usar desarrollo (sin necesidad de indicar la URL de producción).
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.env ?? 'production';
85
+ const env = resolveEnv(config);
65
86
  if (env !== 'production') {
66
- if (config.testBaseUrl) {
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 config.baseUrl;
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":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/aeat/client.ts"],"names":[],"mappings":"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"}
@@ -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 `env` es `production` (o no se indica), usa `baseUrl`.
85
- * - Si `env` es `test`/`development`, usa `testBaseUrl`.
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
- * Los tests se ejecutan aparte y fijan `env: 'test'` + `testBaseUrl` para
88
- * usar desarrollo (sin necesidad de indicar la URL de producción).
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":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/aeat/client.ts"],"names":[],"mappings":"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"}
@@ -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 `env` es `production` (o no se indica), usa `baseUrl`.
51
- * - Si `env` es `test`/`development`, usa `testBaseUrl`.
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
- * Los tests se ejecutan aparte y fijan `env: 'test'` + `testBaseUrl` para
54
- * usar desarrollo (sin necesidad de indicar la URL de producción).
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.env ?? 'production';
77
+ const env = resolveEnv(config);
58
78
  if (env !== 'production') {
59
- if (config.testBaseUrl) {
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 config.baseUrl;
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":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/aeat/client.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dwast/verifactu-lib",
3
- "version": "0.1.0-beta.4",
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 usa `baseUrl` y no pases `env`).
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, AEAT_TEST_SOAP_URL } from '@dwast/verifactu-lib/aeat';
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 testBaseUrl (pruebas).
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
- testBaseUrl: AEAT_TEST_SOAP_URL, // https://prewww1.aeat.es/.../VerifactuSOAP
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
- > **Producción:** omite `env` y `testBaseUrl`, usa `baseUrl`:
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, AEAT_TEST_SOAP_URL } from '@dwast/verifactu-lib/aeat';
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:** por defecto se usa **producción**. Si `env` es `production` (o no se indica), usa `baseUrl`. Si `env` es `test`/`development`, usa `testBaseUrl` (o lanza error si no hay). Los tests fijan `env: 'test'` para usar desarrollo.
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
 
@@ -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 `env` es `production` (o no se indica), usa `baseUrl`.
106
- * - Si `env` es `test`/`development`, usa `testBaseUrl`.
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
- * Los tests se ejecutan aparte y fijan `env: 'test'` + `testBaseUrl` para
109
- * usar desarrollo (sin necesidad de indicar la URL de producción).
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.env ?? 'production';
135
+ const env = resolveEnv(config);
113
136
  if (env !== 'production') {
114
- if (config.testBaseUrl) {
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 config.baseUrl;
139
+ return AEAT_PRODUCTION_SOAP_URL;
123
140
  }
124
141
 
125
142
  export interface SendResult {