Changelog
3.9.0 (2025-01-13)
- feat: revert handling of
null
and undefined
values to empty string as before v3.7.0
, #25
3.8.1 (2025-01-10)
- refactor: optimize package size
3.8.0 (2025-01-09)
feat: enforce a specific color support by a FORCE_COLOR
value:
false - Disables colors
0 - Disables colors
true (or unset) - Auto detects the supported colors (if no color detected, enforce truecolor)
1 - Enables 16 colors
2 - Enables 256 colors
3 - Enables truecolor
fix: if the function argument is an empty string should be returned an empty string w/o escape codes:
ansis.red('') => '', w/o escape codes
- refactor: optimize code by size
3.7.0 (2025-01-07)
- fix: cast falsy values
false
, null
, undefined
, NaN
to a string.
In previous versions, the empty string ''
was returned for falsy values.
- fix: functions with argument
0
, e.g. ansis.red(0)
, returning empty string ''
, now return colored value '0'
- test: add tests for function arguments with various types
3.6.0 (2025-01-04)
3.5.2 (2024-12-28)
- fix: TS2339: Property 'strip' does not exist on type when the TS compiler option
module
is node16
- refactor: optimize index.d.ts to reduce package size from 7.3 kB to 7.0 kB
3.5.1 (2024-12-26)
- refactor: invisible code optimisation
3.5.0 (2024-12-26) release
- refactor: optimise npm package to reduce size by 3 kB, from 10.3 kB to 7.3 kB
- feat: add support the
COLORTERM
variable for values: truecolor
, 24bit
, ansi256
, ansi
(16 colors)
- feat: add support the
xterm-direct
terminal to detect the truecolor
- fix: remove detection environment variable
GPG_TTY
introduced in 3.5.0-beta.0
version, because it make no sense
- fix: default import in TypeScript, compiled with
tsc
:
import ansis from 'ansis'
now works so well as import * as ansis from 'ansis'
3.5.0-beta.6 (2024-12-25)
- refactor: optimise npm package to reduce the size
- chore: update benchmarks with newest version
- test: add more use cases
3.5.0-beta.5 (2024-12-24)
- feat: detect
xterm-direct
terminal as supported the truecolor
- feat: add support the
COLORTERM
variable for values: truecolor
, 24bit
, ansi256
, ansi
(16 colors)
- docs: update readme for using
COLORTERM
with examples
3.5.0-beta.4 (2024-12-23)
- docs: remove badges in readme for npm package to reduce package size
3.5.0-beta.3 (2024-12-23)
- docs: fix badge urls in readme for npm package
3.5.0-beta.2 (2024-12-23)
- refactor: optimise npm package to reduce the size by ~0.5 kB, from 8.0 kB to 7.5 kB
- test: fix swc configuration for compiling into CJS
- test: fix handling line endings on windows
3.5.0-beta.1 (2024-12-23)
- refactor: optimise npm package to reduce the size by ~1 kB, from 8.9 kB to 8.0 kB
3.5.0-beta.0 (2024-12-21)
- feat: add support environment variable
GPG_TTY
to detect it as isTTY
.
NOTE: in release v3.5.1 was removed as needles.
- fix: default import in TypeScript, compiled with
tsc
:
import ansis from 'ansis'
now works so well as import * as ansis from 'ansis'
- refactor: optimise npm package to reduce size by ~1.3 kB, from 10.3 kB to 8.9 kB
- refactor: optimize index.d.ts, remove insignificant spaces and words, use the
type
with dynamic properties instead of the interface
- test: add integration tests to execute compiled TypeScript and compare outputs with expected strings
- test: add tests for
tsc
, swc
and esbuild
compilers
3.4.0 (2024-12-14)
- refactor: optimise npm package to reduce size by ~1 KB, from 11.3 kB to 10.3 kB
3.4.0-beta.1 (2024-12-12)
- fix: url to GitHub in readme for npm package
3.4.0-beta.0 (2024-12-12)
- refactor: invisible code optimisations
- refactor: optimize readme for npm package to save ~400 bytes
- refactor: optimize index.d.ts for npm package to save ~500 bytes
- test: refactor benchmark tests
- test: add new representative benchmark tests for using 1, 2, 3 and 4 styles
- test: add picocolors complex benchmark test
- docs: update readme
3.3.2 (2024-07-23)
- fix: correct detect TTY on Windows platform
- chore: optimize code to reduce the size by ~50 bytes
- chore: add benchmarks for
kolorist
package
- test: add test matrix for windows on GitHub
- docs: add compare the size of most popular packages
3.3.1 (2024-07-18)
- chore: optimize code to reduce the size by ~600 bytes,
- chore: minify
index.d.ts
to reduce the size by ~200 bytes,
- chore: increase performance, e.g. using chained styles, 70.000.000 -> 80.000.000 ops/sec
3.3.0 (2024-07-14)
3.2.1 (2024-07-12)
- chore: reduce unpacked size by ~ 1 KB
- docs: optimize README for NPM
3.2.0 (2024-04-24)
- feat: add
ansis.isSupported()
method to detect color support
3.1.1 (2024-04-15)
- fix: interpret FORCE_COLOR=false or FORCE_COLOR=0 as force disable colors\
others values, e.g., FORCE_COLOR=true or FORCE_COLOR=1 - force enable colors.\
See https://force-color.org.
3.1.0 (2024-04-10)
- feat: add detection of color support when using PM2 process manager
3.0.3 (2024-04-09)
- chore: add rollup-plugin-cleanup to remove comments from d.ts file for dist, that save yet 3 KB
- chore: update license year
3.0.2 (2024-04-08)
- chore: create mini version of README for NPM to minify package size
- docs: update readme
3.0.1 (2024-04-01)
- refactor: improve code
- chore: reduce code bundle size from 3.8 KB to 3.4 KB
- chore: update benchmark
- chore: update compare tests
- test: add more tests
- docs: improve readme
3.0.0 (2024-03-29)
- feat: add detection of color spaces support: TrueColor, 256 colors, 16 colors, no color
- feat: add fallback for supported color space: truecolor —> 256 colors —> 16 colors —> no colors
- perform: improve performance for
hex()
function
- chore: size increased from 3.2 KB to 3.8 KB as new features were added
- test: switch from jest to vitest
- test: add tests for new features
- docs: update readme for color spaces support
BREAKING CHANGE
In the new major version 3.x
are removed unused styles and methods.
⚠️ Warning
Before update, please check your code whether is used deleted styles and methods.
Support Node.js
Drop supports for Node <= 14
. Minimal supported version is 15.0.0
(Released 2020-10-20).
In the theory the v3
can works with Node12
, but we can't test it.
Deleted DEPRECATED named import syntax (since v3.3.0
)
ESM
- import { red } from 'ansis/colors';
+ import { red } from 'ansis';
CJS
- const { red } = require('ansis/colors');
+ const { red } = require('ansis');
Deleted styles
The not widely supported
styles are deleted:
faint
(alias for dim), replace in your code with dim
doubleUnderline
, replace in your code with underline
frame
, replace in your code with underline
encircle
, replace in your code with underline
overline
, replace in your code with underline
Deleted methods
The methods are deleted:
ansi
, replace in your code with ansi256
or fg
bgAnsi
, replace in your code with bgAnsi256
or bg
Deleted clamp in functions
The clamp (0, 255) for the ANSI 256 codes and RGB values is removed, because is unused.
You should self check the function arguments.
The affected functions:
ansi256
and fg
(alias to ansi256) - expected a code in the range 0 - 255
bgAnsi256
and bg
(alias to bgAnsi256) - expected a code in the range0 - 255
rgb
- expected r, g, b values in the range 0 - 255
bgRgb
- expected r, g, b values in the range 0 - 255
2.3.0 (2024-02-15)
- feat: add detection of additional terminals, thanks @dse, colors.js:issue #42
- test: add test to detect various terminals
2.2.0 (2024-02-03)
- feat: add supports the argument as
number
- test: add tests for new feature
- chore: add features compare of different libs, just run:
npm run compare
- chore: add compare example on stackblitz
- docs: update readme
2.1.0 (2024-01-30)
- feat: add
bgGrey
and bgGray
aliases for bgBlackBright
- refactor: optimize source code
- test: refactor tests
- docs: update readme
2.0.3 (2023-12-14)
- fix(index.d.ts): use function overload to make the tagged template have the correct type, #16
2.0.2 (2023-11-14)
- fix: could not find a declaration file for module 'ansis'
2.0.1 (2023-11-03)
- fix: missing exports of ansis.strip() and ansis.export() functions (issue was introduced in v2.0.0)
- refactor: optimize code to reduce distributed size
- test: add test for generated npm package in CJS and ESM mode
- test: add test for env variables and CLI flags
- test: add test to detect Deno
- test: add test to detect Next.js runtime
- docs: update readme
2.0.0 (2023-11-03)
- feat: add supports the Deno
- feat: add supports the Next.js
edge
runtime
- feat(CHANGE): add named import for
ansis
:\
NEW named import: import { red } from 'ansis'
.\
If you use TypeScript
and your IDE show the error: TS2307: Cannot find module ansis/colors
,\
then you should use the new syntax,
update you code: import { red } from 'ansis/colors'
--> import { red } from 'ansis'
.
- feat(DEPRECATE): OLD named import
import { red } from 'ansis/colors'
is deprecated, use the NEW named import
- feat(DEPRECATE): instead of the
ansi
use ansi256
or alias fg
- feat(DEPRECATE): instead of the
bgAnsi
use bgAnsi256
or alias bg
- feat: optimize named export
- feat: reduce the size of dist/ directory
- chore: update dev dependencies, new jest requires node.js >= 14
1.6.0-beta.0 (2023-11-01)
- feat: add supports the Deno
- feat: add supports the Next.js
edge
runtime
- test: add tests for isSupported() function
- chore: update dev dependencies
1.5.6 (2023-09-21)
- chore: update dev dependencies
- chore: add SECURITY.md
- chore: add PULL_REQUEST_TEMPLATE.md
- chore: update ISSUE_TEMPLATE
- docs: update readme
1.5.5 (2022-09-22)
- refactor: optimize code to reduce size by 120 bytes
- test: add test for isSupported() function
- docs: update readme, add example screenshots
1.5.4 (2022-09-14)
- fix: visible style with nested template strings
1.5.3 (2022-09-14)
- fix: set correct aliases for bgAnsi and fg methods by named export
- chore: refactor examples
- docs: update readme
1.5.2 (2022-09-10)
- fix: regard the value of the environment variable FORCE_COLOR=0 to force disable colors
- test: add tests for FORCE_COLOR
- docs: update readme
1.5.1 (2022-09-08)
- fix: add missing export for CJS mode in package.json
- test: add manual tests for CJS and ESM mode
1.5.0 (2022-09-08)
- DEPRECATE v1.5.0, because missing exports main for CJS mode, fixed in v1.5.1
1.5.0 (2022-09-08)
- feat: add supports the nested template literal syntax:
console.log(red`red ${yellow`yellow ${green`green`} yellow`} red`)
- feat: add named export of colors with supports for chained syntax:
import { red, green, yellow } from 'ansis/colors';
console.log(red.bold.underline`text`);
- feat: add extending of base colors with named custom truecolor
import ansis from 'ansis';
ansis.extend({ orange: '#FFAB40' });
console.log(ansis.orange.bold('text'));
- fix: corrected declarations in
index.d.ts
- chore: add
AnsiStyles
, AnsiColors
and AnsiColorsExtend types in index.d.ts
- refactor: optimize size of distributed bundle from 3.7KB to 3.1KB
- docs: add usage in CLI
1.4.0 (2022-07-02)
- feat: add method strip() to remove all ANSI codes from string
1.3.6 (2022-04-27)
- build: properly generated distribution package, bump to last stable version 1.3.6
- chore: update dev packages
1.3.5 (2022-04-27)
- DEPRECATED: this version is broken
1.3.4 (2022-01-30)
- feat: optimize distributed code size to smaller than
4 KB
1.3.3 (2022-01-24)
- feat: add UK spelling alias
grey
for gray
- chore: update dev dependencies
- docs: update readme
1.3.2 (2021-12-30)
- feat: add bundle generation for ESM
- build: auto generate bundles for ESM and CommonJS at npm publish
1.3.1 (2021-12-29)
- fix: usage for CommonJS:
const ansis = require('ansis').default;
--> const ansis = require('ansis');
1.3.0 (2021-12-29)
- feat: add support CommonJS (now supported ESM and CommonJS)
- feat: add aliases:
.fg()
for .ansi256()
and .bg()
for .bgAnsi256()
methods
- fix: some inner param types
- chore: remove examples from NPM package (it can be cloned und run local)
1.2.2 (2021-12-28)
- fix: the path of examples in package.json
1.2.1 (2021-12-28)
- chore: add demo examples of all features
- docs: update readme
1.2.0 (2021-12-27)
- feat: add supports the environment variables
NO_COLOR
FORCE_COLOR
and flags --no-color
--color
- feat: add aliases
ansi
for ansi256
and bgAnsi
for bgAnsi256
- docs: add to readme the compare of most popular ANSI libraries
1.1.1 (2021-12-27)
- feat: add the class Ansis to create more independent instances to increase the performance by benchmark
- feat: improve performance
- refactor: code refactoring
- docs: update readme
1.1.0 (2021-12-25)
- feat: add supports the use of
open
and close
properties for each style
- fix: codes for methods ansi256() and bgAnsi256()
- chore: added demo to npm package
- chore: update package.json
- docs: update readme
1.0.0 (2021-12-24)
First release