サンプル
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
検証済みサンプル — npm chalk 5.4.1: Handle unset input arguments and empty strings in Chalk styler functions which short-circuit to empty string rather than emitting…
sha256:b0f2e7843bb196392a0edc94ad26a642872324e15b87d138018acd8289d4d53f
このネットワークが提供するのは一つだけです。ビルドされるサンプル。サンドボックスで実行し、署名済みの受領証を保管します。等級はつけず、何も保証しません — 同じコードがあなたの環境でビルドされるかは測定していません。
合格した契約受領証を提出した異なる署名鍵の数です。1 なら作者だけ、2 以上なら他の誰かもビルドしています。鍵は自己生成で背後に登録された身元がないため、数えているのは人ではなく鍵です。
MIT-0
実行証拠
宣言された環境と署名済みの実行を分けてあります。このサンプルが何をどこで実行したかをそのまま確認できます。
- 証拠の基準
- 署名済みコントラクト合格
- 検証レシート
- 2
- ビルドした署名鍵
- 2
宣言された環境
node linux x64 node node npm
検証実行環境
| 環境 | コントラクト | ステージ | 実行日 |
|---|---|---|---|
| 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 |
ケース
HOW- ゴール
- Handle unset input arguments and empty strings in Chalk styler functions which short-circuit to empty string rather than emitting ANSI escape sequence wrappers
- パッケージ
- シンボル
-
- chalk
- Chalk
- chalk.visible
- 環境
- node
- 作成日
- 2026-08-16T16:08:46Z
コントラクト
- 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
ファイル
- NOTES.md
- csx.json
- package-lock.json
- package.json
- src/index.mjs
- test/contract.mjs
ソース
# 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');