Security News
UK Officials Consider Banning Ransomware Payments from Public Entities
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.
▄████████ ███▄▄▄▄ ▄████████ ▄█ ████████▄ ▄████████ ▄████████
███ ███ ███▀▀▀██▄ ███ ███ ███ ███ ▀███ ███ ███ ███ ███
███ ███ ███ ███ ███ █▀ ███▌ ███ ███ ███ █▀ ███ █▀
███ ███ ███ ███ ███ ███▌ ███ ███ ▄███▄▄▄ ███
▀███████████ ███ ███ ▀███████████ ███▌ ███ ███ ▀▀███▀▀▀ ███
███ ███ ███ ███ ███ ███ ███ ███ ███ █▄ ███ █▄
███ ███ ███ ███ ▄█ ███ ███ ███ ▄███ ███ ███ ███ ███
███ █▀ ▀█ █▀ ▄████████▀ █▀ ████████▀ ██████████ ████████▀
ANSIDec is a library for handling limited number of ANSI escape sequences for use in Browsers. The primary goal of the library is to allow of displaying ANSI and ASCII art in Browsers by transforming Unix encoding to html. But it can also be used from Node.js.
https://jcubic.github.io/ansidec/
Npm installation for use with webpack:
npm install ansidec
Besides npm you can also download that file locally or use unpkg.com:
<script src="https://unpkg.com/ansidec"></script>
// if you're using webpack or node.js you can use npm
var ansi = require('ansidec');
var format = ansi.format(function(styles, color, background, text) {
var style = [];
if (color) {
style.push('color:' + color);
}
if (background) {
style.push('background:' + background);
}
if (styles.bold) {
style.push('font-weight:bold');
}
if (styles.italic) {
style.push('font-style:italic');
}
if (styles.underline) {
styles.push('text-decoration:underline');
}
return '<span style="' + style.join(';') + '">' + text + '</span>';
});
document.querySelector('pre').innerHTML = format(text);
format function can be executed with text as second argument, then it will return string. If it don't get string as second argument it will return function. So it's like it was curried.
If you want just to output html you can use helper:
var ansi = require('ansidec');
var output = document.querySelector('pre');
output.innerHTML = ansi.html(text)
and use format only if you need different html or any different output text.
If you want to render ANSI art with this library you will need to covert the text from ANSI art file to UTF-8 to do that you can use iconv-lite library or iconv on a Back-End see how to do that in examples directory.
Some ANSI art are 80 characters wide but some have meta data called
SAUCE. You can read those data
using ansi.meta
function:
var sauce = ansi.meta(text);
if (sauce) {
var chars = sauce.tInfo[0];
// note that ch unit don't work properly in IE
output.style.width = chars + 'ch';
}
meta object have those properties (description in SAUCE specification linked above).
{
id: 'SAUCE',
version: string,
title: string,
author: string,
group: string,
date: string,
fileSize: number,
tInfo: number[],
comments: string,
tflags: string,
zstring: string
}
Released under MIT license
Copyright (c) 2018-2020 Jakub T. Jankiewicz
FAQs
Limited Unix ANSI escape sequences transformer for use in Browsers
The npm package ansidec receives a total of 521 weekly downloads. As such, ansidec popularity was classified as not popular.
We found that ansidec 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
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.
Security News
Snyk's use of malicious npm packages for research raises ethical concerns, highlighting risks in public deployment, data exfiltration, and unauthorized testing.
Research
Security News
Socket researchers found several malicious npm packages typosquatting Chalk and Chokidar, targeting Node.js developers with kill switches and data theft.