Skip to content

Releases: lukeed/kleur

v4.1.5

26 Jun 18:52
Compare
Choose a tag to compare

Patches

  • Add "types" export conditions for Node16 TypeScript module resolution (#57): 06f28e0
    Thank you @calebeby~!
  • Handle undefined process.env with fallback (#54): ec20016
    For browser/vite support. Thank you @farnabaz~!

Full Changelog: v4.1.4...v4.1.5

v4.1.4

22 Jan 20:18
Compare
Choose a tag to compare

Chores

  • Replace includes() usage with indexOf to allow support for older browsers (#45): 86a7db8
    No behavioral differences. Simply allows kleur to run in old browsers (eg, IE8-11) without requiring a polyfill.
    Thank you @Krinkle~!

  • Update benchmarks to reflect includes -> indexOf update: 19764d4

v4.1.3

30 Sep 04:34
Compare
Choose a tag to compare

Patches

  • Add existence process.stdout check for browser-like polyfills (#42): 01963cc
    Bundlers like parcel, webpack, and browserify polyfill process but don't include a stdout implementation.
    Thank you @tinchoz49~!

v4.1.2

26 Sep 18:29
Compare
Choose a tag to compare

Patches

Chores

  • Adds tests to ensure FORCE_COLOR= works as expected (#41): b329629
    Much like NO_COLOR, use of FORCE_COLOR= is expected to be truthy.

v4.1.1

19 Aug 06:02
Compare
Choose a tag to compare

Patches

  • (types): Ensure kleur/colors type definitions can be resolved: 06923d0, cc66a6f

v4.1.0

13 Aug 03:05
Compare
Choose a tag to compare

Features

Chores

v4.0.3

31 Jul 18:17
Compare
Choose a tag to compare

Patches

  • Ensure process is defined before setting process-based values (#36): 303e502
    This allows for kleur to be imported into browsers without any bundle-shimming.

    NOTE: ANSI code support varies between browsers, but typically colors and background-colors work (never modifiers).

v4.0.2

24 Jun 23:27
Compare
Choose a tag to compare

Patches

  • Disable colorization if inside a TTY context (#33): 5c7353f
    Thank you @ai~!

    # Before:
    $ npx app.js > log.txt
    #=> The `log.txt` filled with ANSI codes 
    
    # After:
    $ npx app.js > log.txt
    #=> The `log.txt` is plain text
    
    # OVERRIDE:
    $ FORCE_COLOR=1 npx app.js > log.txt
    #=> The `log.txt` filled with ANSI codes; as requested

Chores

  • Add bash tests for ENV detection: 5c7353f
  • Update README with TTY explainer and example: 3a6a272, 3b3742a
  • Update test runner version: 5fd93ba

v4.0.1

19 Jun 04:52
Compare
Choose a tag to compare

Patches

  • Revert to Node 6.x minimum support: 8c01d93
    The code works perfectly in that environment, so there's no reason not to.
    Truth be told, it was only bumped to 10.x because of the test runner constraint.

  • (types) fix kleur/colors overloaded definition: f2f33a8
    Original print order assumed that every export returned null, which is not true.

v4.0.0

17 Jun 18:06
Compare
Choose a tag to compare

Breaking

The minimum Node.js runtime increased from 6.x to 10.x since 10.x is the oldest active LTS version.
If you need to continue supporting Node 6.x, either continue using kleur@3.x or ignore the "engines" constraint of kleur@4.x – its CommonJS files will still execute in a Node 6.x environment.

Features

  • Added native ESM support with exports map (for Node 12.18.x, Node 14+) (#30): 2da16a9
    Thank you @kristoferbaxter~!

  • Added module package entry (for bundler and PikaCDN) (#31): 2da16a9

  • Added new kleur/colors entry module: 049c080

These changes allow for import statements with kleur.
It's done in a way such that Node.js environments that natively support import will work. For those that don't and are using webpack/Rollup, the "module" entry is made available so that you can still take advantage of the ESM format.

We took this idea one step further with kleur/colors – which individually exports each color, modifier, and background function. This allows you to import only the methods you need, and the unused pieces of code are detached from your code. In other words, kleur/colors is 100% treeshakeable, which is a big advantage of the ESM format. Node.js (with native ESM support), Rollup, and webpack benefit from this, which means that your programs only include/load the kleur code you use.

If you're not ready to use ESM yet, require statements still work for both modules in all environments.

See the Individual Colors documentation for more info

import kleur from 'kleur';
import * as colors from 'kleur/colors';

console.log(
  kleur.underline().green('kleur natively supports ESM~!')
);

console.log(
  colors.white(colors.italic(`... so does "${ colors.green('kleur/colors') }"~!`))
);

Chores