Beispiel
supports-color 7.2.0: supportsColor
Verifiziertes Beispiel für npm supports-color 7.2.0: supportsColor. Der Vertrag lief auf node 22 · linux debian/x64 · docker und bestand.
sha256:4a5302a8c971621951ee821ab212aa808a9f92aa03096f491aec619a494a2091
Dieses Netzwerk bietet eine Sache: ein Sample, das baut. Es hat es in einer Sandbox ausgeführt und die signierte Quittung behalten. Es bewertet nichts und garantiert nichts — ob derselbe Code bei Ihnen baut, hat es nicht gemessen.
Wie viele verschiedene Signaturschlüssel eine bestandene Vertragsquittung eingereicht haben. Einer ist der Autor allein; mehr als einer heißt, jemand anderes hat es auch gebaut. Ein Schlüssel wird selbst erzeugt und hat keine registrierte Identität dahinter — gezählt werden Schlüssel, nicht Personen.
MIT-0
Ausführungsbelege
Die deklarierte Umgebung und die signierten Läufe stehen getrennt, damit Sie genau sehen, was dieses Sample ausgeführt hat und wo.
- Beleggrundlage
- Signierter Vertrag bestanden
- Verifizierungsbelege
- 1
- Signaturschlüssel, die es gebaut haben
- 1
Deklarierte Umgebung
node 22.23 linux 24 · ubuntu · glibc 2.39 x64 node 22.23 javascript npm 10
Umgebungen der Verifizierungsläufe
| Umgebung | Contract | Stufen | Lauf |
|---|---|---|---|
| node 22 · linux debian/x64 · docker ed25519:c1973797be207ac4 | PASS | compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS CONTAINER_RUN · node-typescript@1node:22@sha256:8a34c4ab3ea2… |
2026-09-05 |
Fall
HOW- Ziel
- verify supports-color.supportsColor in pkg:npm/supports-color@7.2.0
- Pakete
- Symbole
-
- supports-color.supportsColor
- Umgebung
- node 22.23.2
- Erstellt
- 2026-09-05T19:28:21Z
Contract
- supportsColor returns color support details object for custom stream
- supportsColor returns false for non-TTY stream when FORCE_COLOR is unset
- supportsColor respects FORCE_COLOR levels 0, 1, 2, 3
- supportsColor recognizes COLORTERM=truecolor for level 3 color support
- supportsColor recognizes TERM=xterm-256color for level 2 color support
Dateien
- PROMPT.md
- csx.json
- package-lock.json
- package.json
- spec.json
- src/index.js
- test/contract.js
Quelltext
Clean-room public code sample — generation instructions
Write a brand-new, minimal, self-contained code sample in this clean-room directory.
Do not copy, paraphrase, or reference any existing project source. Work only from this spec.
A csx.json manifest scaffold already exists. Do not recreate it from memory. Preserve its case.goal, packages and symbols; fill its empty case.contract with exact assertions and correct its environment, commands and verifierAdapter for the files you generate.
Goal: verify supports-color.supportsColor in pkg:npm/supports-color@7.2.0
Kind: HOW
Use EXACTLY these public packages and versions:
- pkg:npm/supports-color@7.2.0
Demonstrate these symbols/APIs:
- supports-color.supportsColor
Rules:
- One focused purpose; the smallest project that proves the goal.
- Include a contract test (test/contract.*) that runs OFFLINE and exits 0 exactly when the goal behavior works.
- Pin every dependency with a lockfile so resolution is reproducible.
- No secrets, credentials, or tokens. No real URLs (only example.com or localhost). No absolute paths.
- No personal names, emails, company names, or project identifiers of any kind.
- No binaries and no generated output (node_modules, dist, target, venv, .git, .env).
- Keep it under 200 files and 256KB packed.
{"case":{"caseId":"case:sha256:2b499721aeb6206e74d11547f913dd80509cd2af944f455f1ba97c049b81df5f","contract":["supportsColor returns color support details object for custom stream","supportsColor returns false for non-TTY stream when FORCE_COLOR is unset","supportsColor respects FORCE_COLOR levels 0, 1, 2, 3","supportsColor recognizes COLORTERM=truecolor for level 3 color support","supportsColor recognizes TERM=xterm-256color for level 2 color support"],"goal":"verify supports-color.supportsColor in pkg:npm/supports-color@7.2.0","kind":"HOW","packages":["pkg:npm/supports-color@7.2.0"],"schemaVersion":1,"symbols":["supports-color.supportsColor"]},"contractCommand":["node","test/contract.js"],"environment":{"arch":"x64","distro":"ubuntu","ecosystem":"npm","executionContext":"node","language":"javascript","libc":"glibc","libcVersion":"2.39","moduleSystem":"cjs","os":"linux","osVersionBucket":"24","packageManager":"npm","packageManagerVersion":"10.9.8","runtime":"node","runtimeVersion":"22.23.2","schemaVersion":1},"license":"MIT-0","packages":["pkg:npm/supports-color@7.2.0"],"schemaVersion":1,"subject":"pkg:npm/supports-color@7.2.0","symbols":["supports-color.supportsColor"],"verifierAdapter":"node-typescript@1"}
{
"name": "sample-supports-color",
"version": "1.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "sample-supports-color",
"version": "1.0.0",
"license": "MIT-0",
"dependencies": {
"supports-color": "7.2.0"
}
},
"node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
"engines": {
"node": ">=8"
}
}
}
}
{
"name": "sample-supports-color",
"version": "1.0.0",
"description": "verify supports-color.supportsColor in pkg:npm/supports-color@7.2.0",
"main": "src/index.js",
"scripts": {
"test": "node test/contract.js"
},
"dependencies": {
"supports-color": "7.2.0"
},
"license": "MIT-0"
}
{
"schemaVersion": 1,
"goal": "verify supports-color.supportsColor in pkg:npm/supports-color@7.2.0",
"kind": "HOW",
"packages": [
"pkg:npm/supports-color@7.2.0"
],
"symbols": [
"supports-color.supportsColor"
]
}
'use strict';
const supportsColor = require('supports-color');
/**
* Determine the color support level for a given stream descriptor.
*
* @param {object} stream - Stream object with isTTY property (e.g., { isTTY: true })
* @returns {object|false} Object with level and boolean flags or false if unsupported
*/
function checkStreamColorSupport(stream) {
return supportsColor.supportsColor(stream);
}
module.exports = {
supportsColor,
checkStreamColorSupport
};
'use strict';
const assert = require('assert');
const { supportsColor, checkStreamColorSupport } = require('../src/index');
const ENV_KEYS = [
'FORCE_COLOR',
'TERM',
'COLORTERM',
'CI',
'CI_NAME',
'TEAMCITY_VERSION',
'TERM_PROGRAM',
'TERM_PROGRAM_VERSION'
];
/**
* Helper to run an assertion block with specific environment variables and a fresh module instance.
*
* @param {Record<string, string|undefined>} envVars
* @param {(sc: typeof supportsColor) => void} fn
*/
function withEnv(envVars, fn) {
const saved = {};
for (const k of ENV_KEYS) {
saved[k] = process.env[k];
}
for (const [k, v] of Object.entries(envVars)) {
if (v === undefined) {
delete process.env[k];
} else {
process.env[k] = v;
}
}
delete require.cache[require.resolve('supports-color')];
delete require.cache[require.resolve('../src/index')];
const reloaded = require('../src/index');
try {
fn(reloaded.supportsColor);
} finally {
for (const [k, v] of Object.entries(saved)) {
if (v === undefined) {
delete process.env[k];
} else {
process.env[k] = v;
}
}
delete require.cache[require.resolve('supports-color')];
delete require.cache[require.resolve('../src/index')];
}
}
// 1. Symbol verification & supportsColor returns color support details object for custom stream
{
assert.strictEqual(typeof supportsColor, 'object');
assert.strictEqual(typeof supportsColor.supportsColor, 'function');
assert.strictEqual(typeof checkStreamColorSupport, 'function');
withEnv({
FORCE_COLOR: undefined,
CI: undefined,
COLORTERM: 'truecolor',
TEAMCITY_VERSION: undefined,
TERM_PROGRAM: undefined,
TERM: 'xterm-256color'
}, sc => {
const customStream = { isTTY: true };
const res = sc.supportsColor(customStream);
assert.strictEqual(typeof res, 'object');
assert.strictEqual(res.level, 3);
assert.strictEqual(res.hasBasic, true);
assert.strictEqual(res.has256, true);
assert.strictEqual(res.has16m, true);
const wrapperRes = checkStreamColorSupport(customStream);
assert.deepStrictEqual(wrapperRes, res);
});
}
// 2. supportsColor returns false for non-TTY stream when FORCE_COLOR is unset
{
withEnv({
FORCE_COLOR: undefined,
CI: undefined,
COLORTERM: undefined,
TEAMCITY_VERSION: undefined,
TERM_PROGRAM: undefined,
TERM: 'xterm-256color'
}, sc => {
const nonTtyStream = { isTTY: false };
const res = sc.supportsColor(nonTtyStream);
assert.strictEqual(res, false);
});
}
// 3. supportsColor respects FORCE_COLOR levels 0, 1, 2, 3
{
withEnv({ FORCE_COLOR: '0' }, sc => {
assert.strictEqual(sc.supportsColor({ isTTY: false }), false);
assert.strictEqual(sc.supportsColor({ isTTY: true }), false);
});
withEnv({ FORCE_COLOR: '1' }, sc => {
assert.deepStrictEqual(sc.supportsColor({ isTTY: false }), {
level: 1,
hasBasic: true,
has256: false,
has16m: false
});
});
withEnv({ FORCE_COLOR: '2' }, sc => {
assert.deepStrictEqual(sc.supportsColor({ isTTY: false }), {
level: 2,
hasBasic: true,
has256: true,
has16m: false
});
});
withEnv({ FORCE_COLOR: '3' }, sc => {
assert.deepStrictEqual(sc.supportsColor({ isTTY: false }), {
level: 3,
hasBasic: true,
has256: true,
has16m: true
});
});
}
// 4. supportsColor recognizes COLORTERM=truecolor for level 3 color support
{
withEnv({
FORCE_COLOR: undefined,
CI: undefined,
COLORTERM: 'truecolor',
TEAMCITY_VERSION: undefined,
TERM_PROGRAM: undefined,
TERM: 'xterm'
}, sc => {
assert.deepStrictEqual(sc.supportsColor({ isTTY: true }), {
level: 3,
hasBasic: true,
has256: true,
has16m: true
});
});
}
// 5. supportsColor recognizes TERM=xterm-256color for level 2 color support
{
withEnv({
FORCE_COLOR: undefined,
CI: undefined,
COLORTERM: undefined,
TEAMCITY_VERSION: undefined,
TERM_PROGRAM: undefined,
TERM: 'xterm-256color'
}, sc => {
assert.deepStrictEqual(sc.supportsColor({ isTTY: true }), {
level: 2,
hasBasic: true,
has256: true,
has16m: false
});
});
}
console.log('Contract assertions verified successfully.');
Ursprungs-Seeder
anonym