Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
@redocmx/client
Advanced tools
El módulo @redocmx/client
es un cliente de Node.js diseñado para interactuar con la API REST de redoc.mx para convertir CFDIs (Comprobante Fiscal Digital por Internet) a PDFs.
Este cliente facilita el proceso de enviar datos XML y recibir el PDF convertido, junto con los detalles de la transacción y metadatos.
Este paquete incluye definiciones de TypeScript que te permiten integrarlo sin problemas en tus proyectos de TypeScript.
Para instalar el módulo, ejecuta:
npm install @redocmx/client
o si usas yarn
:
yarn add @redocmx/client
Primero, importa el módulo y crea una instancia del cliente Redoc.
Puedes pasar opcionalmente tu clave API como un argumento, o el cliente intentará cargarla de la variable de entorno REDOC_API_KEY
.
import Redoc from '@redocmx/client';
const redoc = new Redoc('tu_clave_api_aquí');
@redocmx/client
proporciona dos opciones para cargar datos CFDI: desde un archivo o directamente desde una cadena.
const cfdi = redoc.cfdi.fromFile('./ruta/a/tu/archivo.xml');
const cfdi = redoc.cfdi.fromString('<cadena_de_contenido_xml_aquí>');
Para convertir el CFDI cargado a un PDF:
try {
const pdf = await cfdi.toPdf();
const buffer = pdf.toBuffer();
// Escribiendo el buffer del PDF a un archivo
await fs.writeFile('./ruta/para/guardar/archivo.pdf', buffer);
console.log(`ID de Transacción: ${pdf.getTransactionId()}`);
console.log(`Total de Páginas: ${pdf.getTotalPages()}`);
console.log(`Tiempo Total: ${pdf.getTotalTimeMs()} ms`);
console.log(`Metadatos: ${pdf.getMetadata()}`);
} catch (error) {
console.error("Ocurrió un error durante la conversión:", error);
}
El objeto redoc
es una instancia de Redoc
, creada usando new Redoc(api_key)
.
Método | Descripción |
---|---|
redoc.cfdi.fromFile(filePath) | Devuelve: Cfdi - Instancia Carga contenido de archivo del sistema para convertir un CFDI a PDF. El archivo debe ser XML válido para un CFDI. Devuelve una instancia de la clase Cfdi, que se puede usar para obtener el PDF. |
redoc.cfdi.fromString(fileContent) | Devuelve: Cfdi - Instancia Usa un CFDI como cadena para convertir el CFDI a PDF. La cadena debe ser XML válido para un CFDI. Devuelve una instancia de la clase Cfdi, que se puede usar para obtener el PDF. |
El objeto cfdi
es una instancia de Cfdi
, creada usando redoc.cfdi.fromFile(rutaDelArchivo)
o redoc.cfdi.fromString(contenidoDelArchivo)
.
Método | Descripción |
---|---|
cfdi.setAddenda(str) | Parámetros: String Permite el uso de una addenda de redoc para tener control total sobre el diseño del PDF final. |
cfdi.toPdf(opciones) | Parámetros: Object - OpcionesPdf Devuelve: Pdf - Instancia Una instancia de la clase Pdf, que al invocarse, convierte el CFDI a PDF y lo almacena, junto con los datos generados de la solicitud de conversión. |
{
"estilo_pdf": "John"
}
El objeto pdf
es una instancia de Pdf
, creado a partir de cfdi.toPdf(opciones)
.
Método | Descripción |
---|---|
pdf.toBuffer() | Devuelve: Buffer El documento PDF como buffer, listo para almacenarse en el sistema de archivos o para enviarse de vuelta en una solicitud HTTP. |
pdf.getTransactionId() | Devuelve: String - UUID Un ID único para la solicitud de transacción al servicio de redoc. |
pdf.getTotalPages() | Devuelve: Integer El número total de páginas generadas para el archivo PDF. |
pdf.getTotalTimeMs() | Devuelve: Integer Tiempo en milisegundos tomado para convertir el CFDI a PDF. |
pdf.getMetadata() | Devuelve: Object - MetadatosCfdi Información general del CFDI convertido. |
{
TDB...
}
¡Las contribuciones son bienvenidas! No dudes en enviarnos una solicitud de extracción o abrir un problema para cualquier error, característica o mejora.
Este proyecto está licenciado bajo la Licencia MIT - vea el archivo LICENSE para más detalles.
FAQs
Conversión CFDI a PDF
We found that @redocmx/client demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.