CodeSampleX

Exemplo

fast-csv 5.0.5: format

Amostra verificada para npm fast-csv 5.0.5: format. O contrato rodou em node 22 · linux alpine/x64 · docker e passou: format returns a CsvFormatterStream…

sha256:df7a4246fe82c19bcc6e3374a69e91a37a82470b431639cccb69ec7eae642c0b

Esta rede oferece uma coisa: uma amostra que compila. Ela a executou em um sandbox e guardou o recibo assinado. Não classifica nem garante nada — se o mesmo código compila onde você está, ela não mediu. Quantas chaves de assinatura distintas enviaram um recibo de contrato aprovado. Uma é só o autor; mais de uma significa que outra pessoa também o compilou. Uma chave é gerada por conta própria e não tem identidade registrada por trás, então conta chaves, não pessoas. MIT-0

Evidência de execução

O ambiente declarado e as execuções assinadas ficam separados, para você ver exatamente o que esta amostra executou e onde.

Base da evidência
Contrato assinado aprovado
Recibos de verificação
1
Chaves de assinatura que o compilaram
1
Ambiente declarado node 22.23 linux 24 · ubuntu · glibc 2.39 x64 node 22.23 javascript npm 10

Ambientes das execuções de verificação

Ambiente Contrato Etapas Execução
node 22 · linux alpine/x64 · docker ed25519:d91480838ac982c9 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · node-typescript@1node:22-alpine@sha256:c610fcdfb1d5…
2026-08-27

Caso

HOW
Objetivo
verify format in pkg:npm/fast-csv@5.0.5
Pacotes
Símbolos
  • format
Ambiente
node 22.23.2
Criado
2026-08-27T02:16:34Z

Contrato

  1. format returns a CsvFormatterStream transform stream instance
  2. format serializes rows from array data without headers
  3. format serializes row objects and auto-discovers headers from first object
  4. format serializes objects with explicit custom headers order
  5. format applies custom delimiter, quote, and quoteColumns options
  6. format transforms rows using a synchronous transform function
  7. format supports custom rowDelimiter and includeEndRowDelimiter
  8. format handles writeBOM option to prepend UTF-8 byte order mark

Arquivos

  • PROMPT.md
  • csx.json
  • index.js
  • package-lock.json
  • package.json
  • spec.json
  • test/contract.cjs

Baixar o artefato de código-fonte (tar.gz)

Código-fonte

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 format in pkg:npm/fast-csv@5.0.5
Kind: HOW

Use EXACTLY these public packages and versions:
  - pkg:npm/fast-csv@5.0.5
Demonstrate these symbols/APIs:
  - format

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:84708170ec6cc598fd510f45ec3532bec547355ac5ee660132e95f6459e27315","contract":["format returns a CsvFormatterStream transform stream instance","format serializes rows from array data without headers","format serializes row objects and auto-discovers headers from first object","format serializes objects with explicit custom headers order","format applies custom delimiter, quote, and quoteColumns options","format transforms rows using a synchronous transform function","format supports custom rowDelimiter and includeEndRowDelimiter","format handles writeBOM option to prepend UTF-8 byte order mark"],"goal":"verify format in pkg:npm/fast-csv@5.0.5","kind":"HOW","packages":["pkg:npm/fast-csv@5.0.5"],"schemaVersion":1,"symbols":["format"]},"contractCommand":["node","test/contract.cjs"],"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/fast-csv@5.0.5"],"schemaVersion":1,"subject":"pkg:npm/fast-csv@5.0.5","symbols":["format"],"verifierAdapter":"node-typescript@1"}
index.js
const { format, CsvFormatterStream } = require('fast-csv');

function createFormatter(options) {
  return format(options);
}

async function formatRows(rows, options = {}) {
  return new Promise((resolve, reject) => {
    const stream = format(options);
    const chunks = [];
    stream.on('data', (chunk) => chunks.push(chunk));
    stream.on('end', () => resolve(Buffer.concat(chunks).toString('utf8')));
    stream.on('error', reject);
    for (const row of rows) {
      stream.write(row);
    }
    stream.end();
  });
}

module.exports = {
  format,
  CsvFormatterStream,
  createFormatter,
  formatRows,
};
package-lock.json
{
  "name": "sample-fast-csv-format",
  "version": "1.0.0",
  "lockfileVersion": 3,
  "requires": true,
  "packages": {
    "": {
      "name": "sample-fast-csv-format",
      "version": "1.0.0",
      "license": "MIT-0",
      "dependencies": {
        "fast-csv": "5.0.5"
      }
    },
    "node_modules/@fast-csv/format": {
      "version": "5.0.5",
      "resolved": "https://registry.npmjs.org/@fast-csv/format/-/format-5.0.5.tgz",
      "integrity": "sha512-0P9SJXXnqKdmuWlLaTelqbrfdgN37Mvrb369J6eNmqL41IEIZQmV4sNM4GgAK2Dz3aH04J0HKGDMJFkYObThTw==",
      "license": "MIT",
      "dependencies": {
        "lodash.escaperegexp": "^4.1.2",
        "lodash.isboolean": "^3.0.3",
        "lodash.isfunction": "^3.0.9",
        "lodash.isnil": "^4.0.0"
      }
    },
    "node_modules/@fast-csv/parse": {
      "version": "5.0.5",
      "resolved": "https://registry.npmjs.org/@fast-csv/parse/-/parse-5.0.5.tgz",
      "integrity": "sha512-M0IbaXZDbxfOnpVE5Kps/a6FGlILLhtLsvWd9qNH3d2TxNnpbNkFf3KD26OmJX6MHq7PdQAl5htStDwnuwHx6w==",
      "license": "MIT",
      "dependencies": {
        "lodash.escaperegexp": "^4.1.2",
        "lodash.groupby": "^4.6.0",
        "lodash.isfunction": "^3.0.9",
        "lodash.isnil": "^4.0.0",
        "lodash.isundefined": "^3.0.1",
        "lodash.uniq": "^4.5.0"
      }
    },
    "node_modules/fast-csv": {
      "version": "5.0.5",
      "resolved": "https://registry.npmjs.org/fast-csv/-/fast-csv-5.0.5.tgz",
      "integrity": "sha512-9//QpogDIPln5Dc8e3Q3vbSSLXlTeU7z1JqsUOXZYOln8EIn/OOO8+NS2c3ukR6oYngDd3+P1HXSkby3kNV9KA==",
      "license": "MIT",
      "dependencies": {
        "@fast-csv/format": "5.0.5",
        "@fast-csv/parse": "5.0.5"
      },
      "engines": {
        "node": ">=10.0.0"
      }
    },
    "node_modules/lodash.escaperegexp": {
      "version": "4.1.2",
      "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz",
      "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==",
      "license": "MIT"
    },
    "node_modules/lodash.groupby": {
      "version": "4.6.0",
      "resolved": "https://registry.npmjs.org/lodash.groupby/-/lodash.groupby-4.6.0.tgz",
      "integrity": "sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw==",
      "license": "MIT"
    },
    "node_modules/lodash.isboolean": {
      "version": "3.0.3",
      "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
      "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==",
      "license": "MIT"
    },
    "node_modules/lodash.isfunction": {
      "version": "3.0.9",
      "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz",
      "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==",
      "license": "MIT"
    },
    "node_modules/lodash.isnil": {
      "version": "4.0.0",
      "resolved": "https://registry.npmjs.org/lodash.isnil/-/lodash.isnil-4.0.0.tgz",
      "integrity": "sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng==",
      "license": "MIT"
    },
    "node_modules/lodash.isundefined": {
      "version": "3.0.1",
      "resolved": "https://registry.npmjs.org/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz",
      "integrity": "sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA==",
      "license": "MIT"
    },
    "node_modules/lodash.uniq": {
      "version": "4.5.0",
      "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
      "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==",
      "license": "MIT"
    }
  }
}
package.json
{
  "name": "sample-fast-csv-format",
  "version": "1.0.0",
  "description": "Minimal clean-room sample verifying format in fast-csv",
  "main": "index.js",
  "license": "MIT-0",
  "dependencies": {
    "fast-csv": "5.0.5"
  }
}
spec.json
{
  "schemaVersion": 1,
  "goal": "verify format in pkg:npm/fast-csv@5.0.5",
  "kind": "HOW",
  "packages": [
    "pkg:npm/fast-csv@5.0.5"
  ],
  "symbols": [
    "format"
  ]
}
test/contract.cjs
const assert = require('node:assert/strict');
const { format, CsvFormatterStream, createFormatter, formatRows } = require('../index.js');

async function main() {
  // 1. format returns a CsvFormatterStream transform stream instance
  {
    const stream = format();
    assert.ok(stream instanceof CsvFormatterStream);
    const created = createFormatter();
    assert.ok(created instanceof CsvFormatterStream);
  }

  // 2. format serializes rows from array data without headers
  {
    const rows = [
      ['a', 'b', 'c'],
      ['1', '2', '3'],
    ];
    const result = await formatRows(rows, { headers: false });
    assert.equal(result, 'a,b,c\n1,2,3');
  }

  // 3. format serializes row objects and auto-discovers headers from first object
  {
    const rows = [
      { id: 1, name: 'alpha' },
      { id: 2, name: 'beta' },
    ];
    const result = await formatRows(rows, { headers: true });
    assert.equal(result, 'id,name\n1,alpha\n2,beta');
  }

  // 4. format serializes objects with explicit custom headers order
  {
    const rows = [{ id: 1, name: 'alpha' }];
    const result = await formatRows(rows, { headers: ['name', 'id'] });
    assert.equal(result, 'name,id\nalpha,1');
  }

  // 5. format applies custom delimiter, quote, and quoteColumns options
  {
    const rows = [{ key: 'k1', value: 'v1' }];
    const result = await formatRows(rows, {
      delimiter: ';',
      quote: '"',
      quoteColumns: { value: true },
      quoteHeaders: false,
      headers: ['key', 'value'],
    });
    assert.equal(result, 'key;value\nk1;"v1"');
  }

  // 6. format transforms rows using a synchronous transform function
  {
    const rows = [['test', 5]];
    const result = await formatRows(rows, {
      headers: false,
      transform: (row) => [row[0].toUpperCase(), row[1] * 2],
    });
    assert.equal(result, 'TEST,10');
  }

  // 7. format supports custom rowDelimiter and includeEndRowDelimiter
  {
    const rows = [
      ['r1', 'c1'],
      ['r2', 'c2'],
    ];
    const result = await formatRows(rows, {
      headers: false,
      rowDelimiter: '\r\n',
      includeEndRowDelimiter: true,
    });
    assert.equal(result, 'r1,c1\r\nr2,c2\r\n');
  }

  // 8. format handles writeBOM option to prepend UTF-8 byte order mark
  {
    const rows = [['col1', 'col2']];
    const result = await formatRows(rows, {
      headers: false,
      writeBOM: true,
    });
    assert.equal(result, '\ufeffcol1,col2');
  }

  console.log('All contract assertions passed.');
}

main().catch((err) => {
  console.error(err);
  process.exit(1);
});

Seeder de origem

anônimo