
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
sr-console
Advanced tools
Rapida, simple y colorida. Una herramienta para mejorar tus console.log()
Comando de instalacion (Node.js & NPM)
npm i sr-console
Activa la libreria. Esto va al inicio de tu archivo index.js o index.ts
import "sr-console"; // MODULE (EJ5 / ESNEXT)
require('sr-console'); // COMMONJS
// TODO SE GUARDA EN LAS VARIABLES GLOBALES
console.send("data");
LOG.send("data");
.env)Importante: Si estas usando un archivo .env deberas situarlo en la raiz del proyecto
Consulta la documentacion de la configuracion .env en el repositorio
La libreria cuenta con casi todas las funciones que existen en la clase Console original.
Aqui un ejemplo de todas las funciones con los colores que muestran y los valores que returnan
// COMMONJS
require("sr-console");
// MODULE (EJ5 / EJNEXT)
import "sr-console";
// NOTA: ES VALIDO SI USAS console.any() SIEMPRE Y CUANDO ESTE ACTIVADO EN EL .env EL SOBREESCRIBIR console
LOG.time();
LOG.warn("Iniciando demostracion de SR-CONSOLE");
LOG.warn("La implementacion puede estar a medias");
LOG.log("Cargando servidor ficticio");
LOG.log("Revisando informacion");
LOG.success("Toda la informacion fue validada");
LOG.group("Cargando registros")
LOG.debug("Se han detectado", 393, "registros");
LOG.debug("Importando registros");
LOG.debug("Indexandolos al nucleo del servidor");
LOG.group("Revision de registros")
LOG.err("Se detectaron 43 registros no validos o dañados");
LOG.info("Se intento reparar 43 registros");
LOG.warn("Existen", 4, "registros que se encuentran en un estado critico e irreparable")
LOG.unGroup("Se han cargado con exito", 350, "registros");
LOG.warn("Iniciando servidor");
LOG.log("Iniciando sesion");
LOG.send("Enviando Token NIGGA-XXXXXX-XXXXX");
LOG.success("Se ha iniciado session exitosamente")
LOG.info("Estan pendientes los",43, "registros sin cargar");
LOG.info("el servidor se encuentra usando 60gb de ram")
LOG.info("no se pudo procesar el modelo del procesador, se utilizo el modo seguro");
setTimeout(() => {
LOG.timeEnd();
LOG.fatalBack(new Error("FATAL ERROR OCURRED ON SYSTEM REGISTRY"));
LOG.log("recuperado");
LOG.warn("oh no");
LOG.err("no me siento bien");
throw new Error("Finalizado");
}, 2000);
[FIX] SrPrint.send("S") se comportaba como un console.send en lugar de console.success[FIX] setSocketIO() detectaba como invalido un socket valido[FIX] DMAX ya muestra los milisegundos[FIX] Espaciados se aplicaban donde no con cierta configuracion[FIX] Arreglo en la documentacion para SocketIO[ENH] El archivo log con colores ahora es por sesion (raw sigue siendo permanente)[ENH] Formato especial a [(Function: name)][FIX-ENH-NEW] Nueva variable SRCONSOLE_EXPERIMENTALS agregada al .env. Esto resuelve el problema en el que si ocurre un error no capturado el codigo seguia ejecutandose, no estaba intencionado, ya que era parte de una funcion nueva pero que no dio ese comportamiento en las pruebas internas con otros proyectos. se utilizara en futuras funciones que se vayan documentando
De una forma breve, la razon por la que diseñe SR-CONSOLE para hacer mas agradable los logs de
mis bots de discord, sin embargo (aparte de que ya no hago bots de discord) algo que frecuentaba mucho yo al codear (y que varios modulos de npm frecuentan) es meter a los Promises.catch() el console.err a secas o tambien acaparan las variables console a lo brusco
Por ese motivo SR-CONSOLE no se podia instanciar 2 veces, todo recaia en sus metodos estaticos de su clase principal y no en otras variables en this, al meter la funcion a secas pierde la nocion de que instancia viene, y al intentar utilizar elementos de esa instancia solo obtiene que this es undefined
ERRORES POR VENIR
La actualizacion 1.2.0 permitira reinstancias de SR-CONSOLE y posiblemente MUCHOS errores se vendran si utilizas console.func a secas para capturar los
mensajes de error. DEJA DE HACER ESO, en su lugar usa err => console.err(err);
Si alguna libreria que utilizas recae en esta mala praxis (generalmente para crear PRINTERS), abrir un issue en el REPOSITORIO para solucionarlo con el otro autor.
PARA CREADORES DE MODULOS
puedes utilizar new console.SrPrint("MY-MODULE"); como sustituto eficaz al printer que utilizas, su documentacion esta indicada en PRINT.send para enviar errores o advertencias
[PLUGIN] SRPRINT
const PRINT = new LOG.SrPrint("SYSTEM");
PRINT.send("L", "My cool output"); // Salida: [00:00:00][SYSTEM]: My cool output
PRINT.subPrinter("MY-SUBPRINT"); // Crea un SRPRINT con base al primero ->[00:00:00][SYSTEM/MY-SUBPRINT]: My cool output
.env de ser mostradas en consolachildProcess por medio de websocketsconsole.table() mas userFriendly
SrConsole puede integrarse o ser integrado con otras librerias utiles para expandir la utilidad de esta herramienta.
Puedes implementar tu servidor SOCKET.IO
const SocketIO = require('socket.io');
const io = SockeIO();
LOG.setSocketIO(io);
/* Detectar la salida de la consola */
socket.on('srconsole:in', data => {}); // INPUTS (no util por ahora)
socket.on('srconsole:out', data => {}); // OUTPUTS
socket.on('srconsole:err', data => {}); // OUTPUTS DE ERROR
Al usar sr-console ya no necesitas importar la libreria dotenv, ya lo hace por ti.
sin embargo cuenta con algunas restricciones.
.env a un Object()FAQs
Modulo mejorado de la consola de node.js
We found that sr-console demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer 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.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.