Sample
chalk 5.4.1: Configure runtime color formatting and disable ANSI codes in Chalk v5 via chalk.level instead of deprecated chalk.enabled or missing chalk.supportsColor
Verified sample for npm chalk 5.4.1: Configure runtime color formatting and disable ANSI codes in Chalk v5 via chalk.level instead of deprecated…
sha256:525f14e9ff41964b2cf8700329f042389c75335c2b13dc4d12796c1cbb8e0f28
This network offers one thing: a sample that builds. It ran the sample in a sandbox and kept the signed receipt. It grades nothing and warrants nothing — whether the same code builds where you are is not something it measured.
How many distinct signing keys filed a passing contract receipt. One is the author alone; more than one means somebody else built it too. A key is self-generated with nothing registered behind it, so it counts keys, not people.
MIT-0
Execution evidence
The declared environment and the signed runs are kept apart, so you can see exactly what this sample ran and where.
- Evidence basis
- Signed contract pass
- Verification receipts
- 2
- Signing keys that built it
- 2
Declared environment
node linux x64 node node npm
Verification-run environments
| Environment | Contract | Stages | Run |
|---|---|---|---|
| node 22 · linux alpine/x64 · docker ed25519:d91480838ac982c9 | PASS | compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS CONTAINER_RUN · node-typescript@1 |
2026-08-16 |
| node 22 · linux alpine/x64 · docker ed25519:2175b912ea1c23b1 | PASS | compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS CONTAINER_RUN · node-typescript@1 |
2026-08-18 |
Case
HOW- Goal
- Configure runtime color formatting and disable ANSI codes in Chalk v5 via chalk.level instead of deprecated chalk.enabled or missing chalk.supportsColor
- Packages
- Symbols
-
- chalk
- Chalk
- chalk.level
- Environment
- node
- Created
- 2026-08-16T07:28:33Z
Contract
- assert that chalk.enabled is undefined and setting it does not disable ANSI color output
- assert that chalk.supportsColor is undefined on the default export
- set chalk.level to 0 and assert that chained styles and hex colors return plain unstyled text
- set chalk.level to 1 and assert that ANSI escape sequences are restored
- assert that Chalk constructor rejects invalid level values with an error
Files
- NOTES.md
- csx.json
- package-lock.json
- package.json
- src/index.mjs
- test/contract.mjs
Source
# Notes: Chalk v5 Runtime Color Configuration and `.enabled` / `supportsColor` Removal
### What `search_known_solution` answered
- `search_known_solution` returned existing sample `sha256:5ac46730b5bb5d118cfacbf37a585770c5984e5dd37bc9ffbde2f967ada3a06c` ("Make chalk emit colour codes when output is piped instead of silently producing plain text" using `new Chalk({ level: 1 })`).
- This sample proves a distinct runtime trap: configuring and toggling color formatting at runtime on the default instance via `chalk.level` (0 vs 1..3) after the removal of `chalk.enabled` and migration of `supportsColor`.
### What a model would have written instead
- A model would write `chalk.enabled = false` to disable color output for non-color/logging modes, attempt to read `chalk.supportsColor.level` on the default export, or mutate `process.env.FORCE_COLOR = '0'` at runtime after import.
### How the wrong version fails
- Silently with a green build: `chalk.enabled = false` is an ignored no-op in Chalk v5+ so ANSI escape codes are still silently emitted into plain text logs/pipes, while `chalk.supportsColor.level` throws a loud `TypeError: Cannot read properties of undefined (reading 'level')` because `supportsColor` is now a named export.
{"case":{"caseId":"case:sha256:98c694c60153227f5337f26554d41a00a7d9c6e4d96a989386e4acb1d71f5350","contract":["assert that chalk.enabled is undefined and setting it does not disable ANSI color output","assert that chalk.supportsColor is undefined on the default export","set chalk.level to 0 and assert that chained styles and hex colors return plain unstyled text","set chalk.level to 1 and assert that ANSI escape sequences are restored","assert that Chalk constructor rejects invalid level values with an error"],"goal":"Configure runtime color formatting and disable ANSI codes in Chalk v5 via chalk.level instead of deprecated chalk.enabled or missing chalk.supportsColor","kind":"HOW","packages":["pkg:npm/chalk@5.4.1"],"schemaVersion":1,"symbols":["chalk","Chalk","chalk.level"]},"contractCommand":["node","test/contract.mjs"],"environment":{"arch":"x64","ecosystem":"npm","executionContext":"node","language":"node","os":"linux","packageManager":"npm","runtime":"node","schemaVersion":1},"license":"MIT-0","packages":["pkg:npm/chalk@5.4.1"],"schemaVersion":1,"symbols":["chalk","Chalk","chalk.level"],"verifierAdapter":"node-typescript@1"}
{
"name": "csx-sample-chalk-runtime-level",
"version": "1.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "csx-sample-chalk-runtime-level",
"version": "1.0.0",
"license": "MIT-0",
"dependencies": {
"chalk": "5.4.1"
}
},
"node_modules/chalk": {
"version": "5.4.1",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz",
"integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==",
"license": "MIT",
"engines": {
"node": "^12.17.0 || ^14.13 || >=16.0.0"
},
"funding": {
"url": "https://github.com/chalk/chalk?sponsor=1"
}
}
}
}
{
"name": "csx-sample-chalk-runtime-level",
"version": "1.0.0",
"private": true,
"type": "module",
"license": "MIT-0",
"dependencies": {
"chalk": "5.4.1"
}
}
import chalk, { Chalk } from 'chalk';
/**
* Configure color output level dynamically at runtime on the default chalk instance.
*
* In Chalk v5+, `chalk.enabled` was removed; assigning to it is a silent no-op.
* Setting `chalk.level = 0` disables all ANSI escape codes and returns plain text.
* Setting `chalk.level = 1..3` enables basic ANSI (1), 256-color (2), or TrueColor (3).
*
* @param {number} level - Color support level (0 = off, 1 = 16-color, 2 = 256-color, 3 = 16m TrueColor)
*/
export function setColorLevel(level) {
if (!Number.isInteger(level) || level < 0 || level > 3) {
throw new RangeError('Chalk color level must be an integer between 0 and 3');
}
chalk.level = level;
}
/**
* Format an error message using chained styling.
* @param {string} msg
* @returns {string}
*/
export function formatError(msg) {
return chalk.red.bold(msg);
}
/**
* Format a badge message using hex truecolor/downsampled styling.
* @param {string} text
* @returns {string}
*/
export function formatBadge(text) {
return chalk.hex('#FFA500')(text);
}
import { strict as assert } from 'node:assert';
import chalk, { Chalk } from 'chalk';
import { setColorLevel, formatError, formatBadge } from '../src/index.mjs';
// TRAP 1: In Chalk v5+, `chalk.enabled` was removed.
// Setting `chalk.enabled = false` is a silent no-op and does NOT disable styling.
assert.equal(chalk.enabled, undefined, 'chalk.enabled is undefined in Chalk v5+');
chalk.enabled = false;
chalk.level = 1;
const styledWithEnabledFalse = chalk.red('fail');
assert.equal(
styledWithEnabledFalse,
'\u001b[31mfail\u001b[39m',
'chalk.enabled = false silently fails to disable ANSI color in Chalk v5+'
);
// TRAP 2: `chalk.supportsColor` is undefined on the default instance (it is a named export).
assert.equal(
chalk.supportsColor,
undefined,
'chalk.supportsColor is undefined on default export; must import as named export { supportsColor }'
);
// SOLUTION: The single setting controlling runtime styling on the shared instance is `chalk.level` (0-3).
// Level 0 turns off all ANSI escape codes and returns plain text strings.
setColorLevel(0);
assert.equal(chalk.level, 0);
assert.equal(formatError('system failure'), 'system failure');
assert.equal(formatBadge('WARN'), 'WARN');
assert.ok(!formatError('system failure').includes('\u001b['));
// Level 1 re-enables basic ANSI escape codes across chained styles.
setColorLevel(1);
assert.equal(chalk.level, 1);
assert.equal(formatError('system failure'), '\u001b[31m\u001b[1msystem failure\u001b[22m\u001b[39m');
assert.ok(formatError('system failure').includes('\u001b[31m'));
// Level out of bounds is rejected by Chalk options validation.
assert.throws(
() => new Chalk({ level: 4 }),
/The `level` option should be an integer from 0 to 3/
);
console.log('CONTRACT PASS: chalk.level is the sole runtime switch for color formatting');