Ecosistema de paquetes Node.js/TypeScript para generacion, validacion, firma y procesamiento de CFDI (Comprobantes Fiscales Digitales por Internet) en Mexico.
- Monorepo: Rush + pnpm
- Lenguaje: TypeScript
- Build: Vite (migrando desde tsdx)
- Tests: Vitest
- Node: >= 22
rush install # Instalar dependencias
rush update # Actualizar dependencias
rush build # Compilar todos los paquetes
rush test:ci # Ejecutar testspackages/
cfdi/ # Paquetes core de facturacion
xml/ # Generacion y sellado de XML CFDI 4.0
csd/ # Certificados de Sello Digital (.cer/.key)
catalogos/ # Catalogos del SAT (enums, tipos)
complementos/ # Complementos fiscales (pagos, nomina, etc.)
elements/ # Elementos estructurales del comprobante
types/ # Interfaces TypeScript para CFDI
schema/ # Procesamiento de esquemas XSD
xsd/ # Validacion XSD con JSON Schema
transform/ # Transformacion de datos CFDI
expresiones/ # Expresiones impresas (QR)
xml2json/ # Conversion XML a JSON
csf/ # Lectura de Constancia de Situacion Fiscal
rfc/ # Validacion de RFC
pdf/ # Opciones de generacion PDF
designs/ # Plantillas y disenos PDF
utils/ # Utilidades (numeros a letras, logos)
sat/ # Paquetes de integracion con el SAT
auth/ # Autenticacion con webservices del SAT (FIEL)
recursos/ # Descarga de recursos XSD/XSLT del SAT
renapo/ # Paquetes de integracion con RENAPO
curp/ # Validacion y consulta de CURP
clir/ # CLI wrappers
openssl/ # Wrapper OpenSSL
saxon-he/ # Wrapper Saxon-HE (XSLT)
server/ # Aplicacion web Next.js
- Los paquetes workspace se consumen desde
src/directamente, NO desdedist/ - No compilar para compartir entre paquetes internos
- Los campos
main/moduleen package.json apuntan asrc/index.tspara desarrollo - XML debe validar contra el esquema oficial CFDI 4.0 del SAT
- RFC: 12 caracteres (persona moral) o 13 (persona fisica)
- CURP: 18 caracteres
- Firmas digitales usan SHA-256
- Tests deben pasar antes de cualquier merge
- OpenSSL (certificados digitales)
- Java JDK + Saxon-HE >= 9.9 (transformaciones XSLT para cadena original)