CodeSampleX

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

  1. supportsColor returns color support details object for custom stream
  2. supportsColor returns false for non-TTY stream when FORCE_COLOR is unset
  3. supportsColor respects FORCE_COLOR levels 0, 1, 2, 3
  4. supportsColor recognizes COLORTERM=truecolor for level 3 color support
  5. 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

Quellartefakt herunterladen (tar.gz)

Quelltext

PROMPT.md
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.
csx.json
{"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"}
package-lock.json
{
  "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"
      }
    }
  }
}
package.json
{
  "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"
}
spec.json
{
  "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"
  ]
}
src/index.js
'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
};
test/contract.js
'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