CodeSampleX

Exemple

temp 0.9.4: mkdir

Échantillon vérifié pour npm temp 0.9.4: mkdir. Le contrat s'est exécuté sur node 22 · linux debian/x64 · docker et a réussi.

sha256:58a1f84211809dc9f07c8bcf77e65be8869fe887687e18f2e5093fd4b27edad8

Ce réseau offre une seule chose : un échantillon qui compile. Il l'a exécuté dans un bac à sable et conservé le reçu signé. Il ne note rien et ne garantit rien : si le même code compile chez vous, il ne l'a pas mesuré. Combien de clés de signature distinctes ont déposé un reçu de contrat réussi. Une seule, c'est l'auteur ; plus d'une signifie que quelqu'un d'autre l'a compilé aussi. Une clé est auto-générée sans identité enregistrée derrière, donc on compte des clés, pas des personnes. MIT-0

Preuves d'exécution

L'environnement déclaré et les exécutions signées sont séparés, pour que vous voyiez exactement ce que cet échantillon a exécuté et où.

Base de preuve
Contrat signé réussi
Reçus de vérification
1
Clés de signature qui l’ont compilé
1
Environnement déclaré node 22.23 linux 24 · ubuntu · glibc 2.39 x64 node 22.23 javascript npm 10

Environnements des exécutions de vérification

Environnement Contrat Étapes Exécution
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-04

Cas

HOW
Objectif
verify temp.mkdir in pkg:npm/temp@0.9.4
Paquets
Symboles
  • temp.mkdir
Environnement
node 22.23.2
Créé
2026-09-04T09:44:23Z

Contrat

  1. temp.mkdir creates a temporary directory and returns a promise resolving to its path
  2. temp.mkdir accepts a string prefix
  3. temp.mkdir accepts an options object with prefix and suffix
  4. temp.mkdir accepts a callback function
  5. temp.mkdir creates directories with mode 0700 on the filesystem

Fichiers

  • .npmrc
  • PROMPT.md
  • csx.json
  • package-lock.json
  • package.json
  • spec.json
  • src/index.js
  • test/contract.mjs

Télécharger l’artefact source (tar.gz)

Code source

.npmrc
audit=false
fund=false
update-notifier=false
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 temp.mkdir in pkg:npm/temp@0.9.4
Kind: HOW

Use EXACTLY these public packages and versions:
  - pkg:npm/temp@0.9.4
Demonstrate these symbols/APIs:
  - temp.mkdir

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:0d0effbbb01f673a1f726cb9753b6707a011a4cfc37da752c611c522b7a9b615","contract":["temp.mkdir creates a temporary directory and returns a promise resolving to its path","temp.mkdir accepts a string prefix","temp.mkdir accepts an options object with prefix and suffix","temp.mkdir accepts a callback function","temp.mkdir creates directories with mode 0700 on the filesystem"],"goal":"verify temp.mkdir in pkg:npm/temp@0.9.4","kind":"HOW","packages":["pkg:npm/temp@0.9.4"],"schemaVersion":1,"symbols":["temp.mkdir"]},"contractCommand":["node","test/contract.mjs"],"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/temp@0.9.4"],"schemaVersion":1,"subject":"pkg:npm/temp@0.9.4","symbols":["temp.mkdir"],"verifierAdapter":"node-typescript@1"}
package-lock.json
{
  "name": "sample-temp-mkdir",
  "version": "1.0.0",
  "lockfileVersion": 3,
  "requires": true,
  "packages": {
    "": {
      "name": "sample-temp-mkdir",
      "version": "1.0.0",
      "license": "MIT-0",
      "dependencies": {
        "temp": "0.9.4"
      }
    },
    "node_modules/balanced-match": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
      "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
      "license": "MIT"
    },
    "node_modules/brace-expansion": {
      "version": "1.1.18",
      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz",
      "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==",
      "license": "MIT",
      "dependencies": {
        "balanced-match": "^1.0.0",
        "concat-map": "0.0.1"
      }
    },
    "node_modules/concat-map": {
      "version": "0.0.1",
      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
      "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
      "license": "MIT"
    },
    "node_modules/fs.realpath": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
      "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
      "license": "ISC"
    },
    "node_modules/glob": {
      "version": "7.2.3",
      "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
      "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
      "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me",
      "license": "ISC",
      "dependencies": {
        "fs.realpath": "^1.0.0",
        "inflight": "^1.0.4",
        "inherits": "2",
        "minimatch": "^3.1.1",
        "once": "^1.3.0",
        "path-is-absolute": "^1.0.0"
      },
      "engines": {
        "node": "*"
      },
      "funding": {
        "url": "https://github.com/sponsors/isaacs"
      }
    },
    "node_modules/inflight": {
      "version": "1.0.6",
      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
      "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
      "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
      "license": "ISC",
      "dependencies": {
        "once": "^1.3.0",
        "wrappy": "1"
      }
    },
    "node_modules/inherits": {
      "version": "2.0.4",
      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
      "license": "ISC"
    },
    "node_modules/minimatch": {
      "version": "3.1.5",
      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
      "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
      "license": "ISC",
      "dependencies": {
        "brace-expansion": "^1.1.7"
      },
      "engines": {
        "node": "*"
      }
    },
    "node_modules/minimist": {
      "version": "1.2.8",
      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
      "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
      "license": "MIT",
      "funding": {
        "url": "https://github.com/sponsors/ljharb"
      }
    },
    "node_modules/mkdirp": {
      "version": "0.5.6",
      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
      "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
      "license": "MIT",
      "dependencies": {
        "minimist": "^1.2.6"
      },
      "bin": {
        "mkdirp": "bin/cmd.js"
      }
    },
    "node_modules/once": {
      "version": "1.4.0",
      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
      "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
      "license": "ISC",
      "dependencies": {
        "wrappy": "1"
      }
    },
    "node_modules/path-is-absolute": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
      "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
      "license": "MIT",
      "engines": {
        "node": ">=0.10.0"
      }
    },
    "node_modules/rimraf": {
      "version": "2.6.3",
      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
      "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
      "deprecated": "Rimraf versions prior to v4 are no longer supported",
      "license": "ISC",
      "dependencies": {
        "glob": "^7.1.3"
      },
      "bin": {
        "rimraf": "bin.js"
      }
    },
    "node_modules/temp": {
      "version": "0.9.4",
      "resolved": "https://registry.npmjs.org/temp/-/temp-0.9.4.tgz",
      "integrity": "sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==",
      "license": "MIT",
      "dependencies": {
        "mkdirp": "^0.5.1",
        "rimraf": "~2.6.2"
      },
      "engines": {
        "node": ">=6.0.0"
      }
    },
    "node_modules/wrappy": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
      "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
      "license": "ISC"
    }
  }
}
package.json
{
  "name": "sample-temp-mkdir",
  "version": "1.0.0",
  "private": true,
  "description": "Clean-room code sample for temp.mkdir in temp@0.9.4",
  "main": "src/index.js",
  "license": "MIT-0",
  "dependencies": {
    "temp": "0.9.4"
  }
}
spec.json
{
  "schemaVersion": 1,
  "goal": "verify temp.mkdir in pkg:npm/temp@0.9.4",
  "kind": "HOW",
  "packages": [
    "pkg:npm/temp@0.9.4"
  ],
  "symbols": [
    "temp.mkdir"
  ]
}
src/index.js
const temp = require('temp');

/**
 * Creates a temporary directory asynchronously with optional affixes.
 *
 * @param {string|Object} [affixes] - Prefix string or options object { prefix, suffix, dir }.
 * @param {Function} [callback] - Optional callback function (err, dirPath).
 * @returns {Promise<string>|undefined} Returns a promise if callback is omitted.
 */
function createTempDir(affixes, callback) {
  return temp.mkdir(affixes, callback);
}

module.exports = {
  temp,
  createTempDir
};
test/contract.mjs
import assert from 'node:assert/strict';
import fs from 'node:fs';
import { createRequire } from 'node:module';

const require = createRequire(import.meta.url);
const { temp, createTempDir } = require('../src/index.js');

async function runContract() {
  const createdDirs = [];

  try {
    // 1. temp.mkdir creates a temporary directory and returns a promise resolving to its path
    const defaultDir = await createTempDir();
    createdDirs.push(defaultDir);
    assert.ok(typeof defaultDir === 'string' && defaultDir.length > 0, 'defaultDir must be a non-empty string');
    assert.ok(fs.existsSync(defaultDir), 'defaultDir must exist on disk');
    assert.ok(fs.statSync(defaultDir).isDirectory(), 'defaultDir must be a directory');

    // 2. temp.mkdir accepts a string prefix
    const prefix = 'csx-test-prefix-';
    const prefixedDir = await createTempDir(prefix);
    createdDirs.push(prefixedDir);
    assert.ok(prefixedDir.includes(prefix), 'prefixedDir must contain the specified prefix');
    assert.ok(fs.existsSync(prefixedDir), 'prefixedDir must exist on disk');
    assert.ok(fs.statSync(prefixedDir).isDirectory(), 'prefixedDir must be a directory');

    // 3. temp.mkdir accepts an options object with prefix and suffix
    const optionsDir = await createTempDir({ prefix: 'opt-pref-', suffix: '-opt-suf' });
    createdDirs.push(optionsDir);
    assert.ok(optionsDir.includes('opt-pref-'), 'optionsDir must contain the prefix');
    assert.ok(optionsDir.endsWith('-opt-suf'), 'optionsDir must end with the suffix');
    assert.ok(fs.existsSync(optionsDir), 'optionsDir must exist on disk');
    assert.ok(fs.statSync(optionsDir).isDirectory(), 'optionsDir must be a directory');

    // 4. temp.mkdir accepts a callback function
    const cbPrefix = 'cb-test-';
    const callbackDir = await new Promise((resolve, reject) => {
      const ret = createTempDir(cbPrefix, (err, dirPath) => {
        if (err) return reject(err);
        resolve(dirPath);
      });
      assert.equal(ret, undefined, 'when callback is provided, temp.mkdir should return undefined');
    });
    createdDirs.push(callbackDir);
    assert.ok(callbackDir.includes(cbPrefix), 'callbackDir must contain callback prefix');
    assert.ok(fs.existsSync(callbackDir), 'callbackDir must exist on disk');
    assert.ok(fs.statSync(callbackDir).isDirectory(), 'callbackDir must be a directory');

    // 5. temp.mkdir creates directories with mode 0700 on the filesystem
    const stat = fs.statSync(defaultDir);
    const mode = stat.mode & 0o777;
    assert.equal(mode, 0o700, 'temporary directory permissions must be 0700');

    console.log('Contract assertions passed successfully.');
  } finally {
    for (const d of createdDirs) {
      try {
        if (fs.existsSync(d)) {
          fs.rmSync(d, { recursive: true, force: true });
        }
      } catch {
        // ignore cleanup errors
      }
    }
  }
}

runContract().catch((err) => {
  console.error('Contract test failure:', err);
  process.exit(1);
});

Seeder d'origine

anonyme