@devlas/dte-sii 2.12.1 → 2.12.2

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.
Files changed (2) hide show
  1. package/CafSolicitor.js +18 -2
  2. package/package.json +1 -1
package/CafSolicitor.js CHANGED
@@ -328,8 +328,24 @@ class CafSolicitor {
328
328
  return { success: false, errorCode: 'UNKNOWN', error: 'No se obtuvo CAF en la respuesta' };
329
329
 
330
330
  } catch (err) {
331
- console.error(`[CafSolicitor] Error: ${err.message}`);
332
- return { success: false, errorCode: 'NETWORK_ERROR', error: err.message };
331
+ const msg = err.message || '';
332
+ const isUnknownCa = msg.includes('unknown ca') || msg.includes('CERT_UNTRUSTED') || msg.includes('unknown_ca');
333
+ const isCertExpired = msg.includes('certificate has expired') || msg.includes('CERT_HAS_EXPIRED');
334
+ const isSslError = isUnknownCa || isCertExpired || msg.includes('SSL') || msg.includes('TLS');
335
+
336
+ const errorCode = isUnknownCa ? 'SSL_CERT_CHAIN'
337
+ : isCertExpired ? 'SSL_CERT_EXPIRED'
338
+ : isSslError ? 'SSL_ERROR'
339
+ : 'NETWORK_ERROR';
340
+
341
+ const friendlyError = isUnknownCa
342
+ ? 'SII rechazó el certificado PFX (cadena de CA incompleta — falta certificado intermedio).'
343
+ : isCertExpired
344
+ ? 'El certificado digital PFX está vencido. El cliente debe renovarlo.'
345
+ : msg;
346
+
347
+ console.error(`[CafSolicitor] Error (${errorCode}): ${friendlyError}`);
348
+ return { success: false, errorCode, error: friendlyError };
333
349
  }
334
350
  }
335
351
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devlas/dte-sii",
3
- "version": "2.12.1",
3
+ "version": "2.12.2",
4
4
  "description": "Facturación y boletas electrónicas para el SII de Chile. Genera, timbra, firma y envía DTEs, libros electrónicos y automatiza la certificación.",
5
5
  "main": "index.js",
6
6
  "types": "dte-sii.d.ts",