Ejemplo
chalk 5.4.1: Handle unset input arguments and empty strings in Chalk styler functions which short-circuit to empty string rather than emitting ANSI escape sequence wrappers
Muestra verificada para npm chalk 5.4.1: Handle unset input arguments and empty strings in Chalk styler functions which short-circuit to empty string rather…
sha256:b0f2e7843bb196392a0edc94ad26a642872324e15b87d138018acd8289d4d53f
Esta red ofrece una sola cosa: una muestra que compila. La ejecutó en un sandbox y guardó el recibo firmado. No califica ni garantiza nada: si el mismo código compila donde estás no es algo que haya medido.
Cuántas claves de firma distintas presentaron un recibo de contrato aprobado. Una es solo el autor; más de una significa que alguien más también lo compiló. Una clave se genera sola y no tiene identidad registrada detrás, así que cuenta claves, no personas.
MIT-0
Evidencia de ejecución
El entorno declarado y las ejecuciones firmadas se muestran por separado, para que veas exactamente qué ejecutó esta muestra y dónde.
- Base de evidencia
- Contrato firmado aprobado
- Recibos de verificación
- 2
- Claves de firma que lo compilaron
- 2
Entorno declarado
node linux x64 node node npm
Entornos de las ejecuciones de verificación
| Entorno | Contrato | Etapas | Ejecución |
|---|---|---|---|
| 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 |
Caso
HOW- Objetivo
- Handle unset input arguments and empty strings in Chalk styler functions which short-circuit to empty string rather than emitting ANSI escape sequence wrappers
- Paquetes
- Símbolos
-
- chalk
- Chalk
- chalk.visible
- Entorno
- node
- Creado
- 2026-08-16T16:08:46Z
Contrato
- chalk.red() with an unset argument returns an empty string with no escape codes rather than the styled empty wrapper \u001b[31m\u001b[39m
- assert chalk.red('') returns an empty string without ANSI escape codes
- assert passing explicit undefined to chalk.red(undefined) coerces to literal string '\u001b[31mundefined\u001b[39m'
- assert passing numeric 0 or boolean false coerces each value to string and applies ANSI styling
- assert multi-argument styling joins arguments with a single space delimiter before applying ANSI codes
- assert chalk.visible returns an empty string when color level is 0 instead of falling back to plain text
Archivos
- NOTES.md
- csx.json
- package-lock.json
- package.json
- src/index.mjs
- test/contract.mjs
Código fuente
# Chalk Unset Argument Handling and Visible Style Notes
### Search Results
`search_known_solution` returned existing sample `sha256:525f14e9ff41964b2cf8700329f042389c75335c2b13dc4d12796c1cbb8e0f28` ("Configure runtime color formatting and disable ANSI codes in Chalk v5 via chalk.level instead of deprecated chalk.enabled or missing chalk.supportsColor") and sample `sha256:1d01640309b3b61194965429100ee64dc820854d9541aa68eaf18e0830575a8a` ("Instantiate Chalk instances with custom color levels to downsample 24-bit hex and RGB colors across terminal depths and avoid default export constructor traps").
### What a Model Would Have Written Instead
A model expecting Chalk style functions to behave as pure ANSI wrappers would write `chalk.red()` or `chalk.red('')` assuming it produces the open/close sequence `\u001b[31m\u001b[39m`, or expect `chalk.visible('text')` to fall back to `'text'` when color output is disabled.
### How the Wrong Version Fails
Silently with a green build: assertions expecting empty style wrappers receive empty strings `""` because Chalk short-circuits on empty arguments without emitting ANSI codes, while `chalk.visible()` silently strips text into `""` when color support is 0.
{"case":{"believed":"calling a Chalk style function with no arguments or an empty string returns the opening and closing ANSI escape sequences for that style","caseId":"case:sha256:ec80e7d86f4e4b6bdd914c11642c1e8ce309aadb4d2a5e83cbdf7911414a7b3d","contract":["chalk.red() with an unset argument returns an empty string with no escape codes rather than the styled empty wrapper \\u001b[31m\\u001b[39m","assert chalk.red('') returns an empty string without ANSI escape codes","assert passing explicit undefined to chalk.red(undefined) coerces to literal string '\\u001b[31mundefined\\u001b[39m'","assert passing numeric 0 or boolean false coerces each value to string and applies ANSI styling","assert multi-argument styling joins arguments with a single space delimiter before applying ANSI codes","assert chalk.visible returns an empty string when color level is 0 instead of falling back to plain text"],"goal":"Handle unset input arguments and empty strings in Chalk styler functions which short-circuit to empty string rather than emitting ANSI escape sequence wrappers","kind":"HOW","packages":["pkg:npm/chalk@5.4.1"],"schemaVersion":1,"symbols":["chalk","Chalk","chalk.visible"]},"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.visible"],"verifierAdapter":"node-typescript@1"}
{
"name": "sample-chalk-arguments",
"version": "1.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "sample-chalk-arguments",
"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": "sample-chalk-arguments",
"version": "1.0.0",
"private": true,
"type": "module",
"license": "MIT-0",
"dependencies": {
"chalk": "5.4.1"
}
}
import { Chalk } from 'chalk';
/**
* Creates a dedicated Chalk instance configured at a specified color level.
* @param {number} [level=3] - 0 (plain text), 1 (basic 16), 2 (256 color), 3 (TrueColor 16m)
* @returns {import('chalk').ChalkInstance}
*/
export function createStyler(level = 3) {
return new Chalk({ level });
}
/**
* Apply styling to an input argument or default if omitted.
* @param {import('chalk').ChalkInstance} styler
* @param {...any} args
* @returns {string}
*/
export function styleRed(styler, ...args) {
return styler.red(...args);
}
/**
* Apply visible modifier styling.
* In Chalk, .visible returns empty string when color level is 0.
* @param {import('chalk').ChalkInstance} styler
* @param {string} text
* @returns {string}
*/
export function styleVisible(styler, text) {
return styler.visible(text);
}
import { strict as assert } from 'node:assert';
import { createStyler, styleRed, styleVisible } from '../src/index.mjs';
const styler3 = createStyler(3);
const styler0 = createStyler(0);
// 1. Calling a Chalk style function with no arguments (unset argument) returns an empty string without ANSI escape sequences
assert.equal(
styleRed(styler3),
'',
'chalk.red() with an unset argument returns an empty string with no escape codes rather than the styled empty wrapper \\u001b[31m\\u001b[39m'
);
// 2. Calling with an explicit empty string also short-circuits to an empty string with 0 escape sequences
assert.equal(
styleRed(styler3, ''),
'',
'chalk.red("") short-circuits to an empty string rather than emitting opening and closing escape codes'
);
// 3. Passing explicit undefined coerces to the literal string "undefined" and wraps in ANSI escape codes
assert.equal(
styleRed(styler3, undefined),
'\u001b[31mundefined\u001b[39m',
'chalk.red(undefined) coerces undefined to string and styles it'
);
// 4. Passing explicit null or boolean/numeric values coerces to string and wraps in ANSI escape codes
assert.equal(
styleRed(styler3, null),
'\u001b[31mnull\u001b[39m',
'chalk.red(null) coerces null to string and styles it'
);
assert.equal(
styleRed(styler3, 0),
'\u001b[31m0\u001b[39m',
'chalk.red(0) coerces 0 to string and styles it'
);
assert.equal(
styleRed(styler3, false),
'\u001b[31mfalse\u001b[39m',
'chalk.red(false) coerces false to string and styles it'
);
// 5. Multi-argument styling joins arguments with a single space delimiter
assert.equal(
styleRed(styler3, 'error:', 404, 'not found'),
'\u001b[31merror: 404 not found\u001b[39m',
'chalk.red(...) joins multiple arguments with space before applying ANSI codes'
);
// 6. chalk.visible returns an empty string when color level is 0 rather than falling back to plain text
assert.equal(
styleVisible(styler0, 'decorative text'),
'',
'chalk.visible returns empty string when color level is 0'
);
assert.equal(
styleVisible(styler3, 'decorative text'),
'decorative text',
'chalk.visible returns text when color level is greater than 0'
);
assert.equal(
styler0.red('regular text'),
'regular text',
'chalk.red returns plain text when color level is 0'
);
console.log('CONTRACT PASS: Chalk unset arguments, coercion, and visible filtering behavior verified');