CodeSampleX

샘플

sprintf-js 1.1.3

검증된 샘플 — npm sprintf-js 1.1.3. node 22 · linux alpine/x64 · docker에서 contract를 실행해 통과했습니다: sprintf formats positional arguments with %s, %d, and %x specifiers

sha256:8c1fc4349e2ef158b9c261fa5b1fc0bfbc5cea194afe7d4918a7405052359fc5

이 네트워크가 제공하는 것은 하나입니다. 빌드되는 샘플. 샌드박스에서 돌리고 서명된 영수증을 보관합니다. 등급을 매기지 않고 무엇도 보증하지 않습니다 — 같은 코드가 당신 환경에서 빌드되는지는 측정한 적이 없습니다. 통과한 계약 영수증을 낸 서로 다른 서명 키의 수입니다. 하나면 작성자 혼자이고, 둘 이상이면 다른 사람도 빌드했다는 뜻입니다. 키는 스스로 만드는 것이고 뒤에 등록된 신원이 없으므로, 세는 것은 사람이 아니라 키입니다. MIT-0

실행 증거

선언된 환경과 서명된 실행을 분리해 두었습니다. 이 샘플이 무엇을 어디서 실행했는지 그대로 볼 수 있습니다.

증거 기준
서명된 컨트랙트 통과
검증 영수증
2
빌드한 서명 키
1
선언된 환경 node 22.23 linux 24 · ubuntu · glibc 2.39 x64 node 22.23 javascript npm 10

검증 실행 환경

환경 컨트랙트 단계 실행일
node 22 · linux alpine/x64 · docker ed25519:c1973797be207ac4 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · node-typescript@1node:22-alpine@sha256:c610fcdfb1d5…
2026-08-26
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-07

케이스

HOW
목표
verify pkg:npm/sprintf-js@1.1.3
패키지
환경
node 22.23.2
생성일
2026-08-26T08:03:58Z

컨트랙트

  1. sprintf formats positional arguments with %s, %d, and %x specifiers
  2. sprintf swaps argument positions using %2$s and %1$s positional syntax
  3. vsprintf formats template strings from an array of arguments
  4. sprintf replaces named and nested placeholders %(user.name)s with values from a dictionary object
  5. sprintf formats numbers with leading zeros and specified width
  6. sprintf formats floating point numbers with specified decimal precision
  7. sprintf formats objects into JSON strings using %j specifier
  8. sprintf throws TypeError when a non-numeric string is provided for a numeric specifier
  9. sprintf throws Error when mixing positional and named placeholders in a single format string

파일

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

소스 아티팩트 내려받기 (tar.gz)

소스

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 pkg:npm/sprintf-js@1.1.3
Kind: HOW

Use EXACTLY these public packages and versions:
  - pkg:npm/sprintf-js@1.1.3
Constraints:
  - executionContext: node
Required runtime conditions:
  - ecosystem: npm
  - language: javascript
  - moduleSystem: cjs
  - packageManager: npm@10.9.8
  - runtime: node@22.23.2

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:eab7c9bd03f5225034f8a41f0df062293b1486592cc9fdaccfcd751a68b46a96","constraints":{"executionContext":"node"},"contract":["sprintf formats positional arguments with %s, %d, and %x specifiers","sprintf swaps argument positions using %2$s and %1$s positional syntax","vsprintf formats template strings from an array of arguments","sprintf replaces named and nested placeholders %(user.name)s with values from a dictionary object","sprintf formats numbers with leading zeros and specified width","sprintf formats floating point numbers with specified decimal precision","sprintf formats objects into JSON strings using %j specifier","sprintf throws TypeError when a non-numeric string is provided for a numeric specifier","sprintf throws Error when mixing positional and named placeholders in a single format string"],"goal":"verify pkg:npm/sprintf-js@1.1.3","kind":"HOW","packages":["pkg:npm/sprintf-js@1.1.3"],"schemaVersion":1},"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/sprintf-js@1.1.3"],"schemaVersion":1,"subject":"pkg:npm/sprintf-js@1.1.3","verifierAdapter":"node-typescript@1"}
package-lock.json
{
  "name": "sample-sprintf-js",
  "version": "1.0.0",
  "lockfileVersion": 3,
  "requires": true,
  "packages": {
    "": {
      "name": "sample-sprintf-js",
      "version": "1.0.0",
      "license": "MIT-0",
      "dependencies": {
        "sprintf-js": "1.1.3"
      }
    },
    "node_modules/sprintf-js": {
      "version": "1.1.3",
      "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz",
      "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==",
      "license": "BSD-3-Clause"
    }
  }
}
package.json
{
  "name": "sample-sprintf-js",
  "version": "1.0.0",
  "description": "verify pkg:npm/sprintf-js@1.1.3",
  "main": "src/index.js",
  "scripts": {
    "test": "node test/contract.js"
  },
  "dependencies": {
    "sprintf-js": "1.1.3"
  },
  "license": "MIT-0"
}
spec.json
{
  "schemaVersion": 1,
  "goal": "verify pkg:npm/sprintf-js@1.1.3",
  "kind": "HOW",
  "packages": [
    "pkg:npm/sprintf-js@1.1.3"
  ],
  "constraints": {
    "executionContext": "node"
  },
  "runtimeConditions": {
    "ecosystem": "npm",
    "language": "javascript",
    "moduleSystem": "cjs",
    "packageManager": "npm@10.9.8",
    "runtime": "node@22.23.2"
  }
}
src/index.js
const { sprintf, vsprintf } = require('sprintf-js');

/**
 * Formats a string using sprintf with positional arguments.
 *
 * @param {string} format - The format string with specifiers.
 * @param {...*} args - Arguments matching the specifiers.
 * @returns {string} The formatted string.
 */
function formatString(format, ...args) {
  return sprintf(format, ...args);
}

/**
 * Formats a string using sprintf with explicit positional placeholders.
 *
 * @param {string} format - The format string with indexed specifiers like %1$s, %2$s.
 * @param {...*} args - Arguments matching the indexed positions.
 * @returns {string} The formatted string.
 */
function formatPositionalIndexed(format, ...args) {
  return sprintf(format, ...args);
}

/**
 * Formats a string using vsprintf with an array of arguments.
 *
 * @param {string} format - The format string with specifiers.
 * @param {Array<*>} args - Array of arguments matching the specifiers.
 * @returns {string} The formatted string.
 */
function formatWithArray(format, args) {
  return vsprintf(format, args);
}

/**
 * Formats a string using named and nested placeholders from an object.
 *
 * @param {string} format - Format string with %(key) specifiers.
 * @param {object} params - Key-value map of parameters.
 * @returns {string} The formatted string.
 */
function formatNamed(format, params) {
  return sprintf(format, params);
}

/**
 * Formats a number with leading zeros and fixed width.
 *
 * @param {number} num - The integer number to format.
 * @param {number} width - The total target width.
 * @returns {string} The zero-padded numeric string.
 */
function formatPaddedNumber(num, width) {
  return sprintf(`%0${width}d`, num);
}

/**
 * Formats a floating-point number with specified decimal precision.
 *
 * @param {number} val - The floating point number.
 * @param {number} precision - Number of decimal places.
 * @returns {string} The formatted float string.
 */
function formatFloat(val, precision) {
  return sprintf(`%.${precision}f`, val);
}

/**
 * Formats a JavaScript object into a JSON string using %j specifier.
 *
 * @param {object} obj - The object to format as JSON.
 * @returns {string} The JSON string.
 */
function formatJson(obj) {
  return sprintf('%j', obj);
}

module.exports = {
  formatString,
  formatPositionalIndexed,
  formatWithArray,
  formatNamed,
  formatPaddedNumber,
  formatFloat,
  formatJson
};
test/contract.js
const assert = require('assert');
const {
  formatString,
  formatPositionalIndexed,
  formatWithArray,
  formatNamed,
  formatPaddedNumber,
  formatFloat,
  formatJson
} = require('../src/index');

// 1. sprintf formats positional arguments with %s, %d, and %x specifiers
{
  const result = formatString('Item: %s, Count: %d, Hex: %x', 'Widget', 42, 255);
  assert.strictEqual(result, 'Item: Widget, Count: 42, Hex: ff');
}

// 2. sprintf swaps argument positions using %2$s and %1$s positional syntax
{
  const result = formatPositionalIndexed('%2$s, %1$s!', 'world', 'hello');
  assert.strictEqual(result, 'hello, world!');
}

// 3. vsprintf formats template strings from an array of arguments
{
  const args = ['alpha', 'beta', 100];
  const result = formatWithArray('First: %s, Second: %s, Third: %d', args);
  assert.strictEqual(result, 'First: alpha, Second: beta, Third: 100');
}

// 4. sprintf replaces named and nested placeholders %(user.name)s with values from a dictionary object
{
  const params = {
    user: {
      profile: {
        name: 'test-user'
      }
    },
    count: 3
  };
  const result = formatNamed('User %(user.profile.name)s has %(count)d items', params);
  assert.strictEqual(result, 'User test-user has 3 items');
}

// 5. sprintf formats numbers with leading zeros and specified width
{
  const result = formatPaddedNumber(42, 5);
  assert.strictEqual(result, '00042');
}

// 6. sprintf formats floating point numbers with specified decimal precision
{
  const result = formatFloat(3.14159265, 2);
  assert.strictEqual(result, '3.14');
}

// 7. sprintf formats objects into JSON strings using %j specifier
{
  const data = { status: 'ok', code: 200 };
  const result = formatJson(data);
  assert.strictEqual(result, '{"status":"ok","code":200}');
}

// 8. sprintf throws TypeError when a non-numeric string is provided for a numeric specifier
{
  assert.throws(
    () => {
      formatString('%d', 'not-a-number');
    },
    (err) => {
      return err instanceof TypeError && /expecting number/.test(err.message);
    },
    'Non-numeric argument to %d specifier must throw TypeError'
  );
}

// 9. sprintf throws Error when mixing positional and named placeholders in a single format string
{
  assert.throws(
    () => {
      formatString('%s %(name)s', 'value', { name: 'sample' });
    },
    (err) => {
      return err instanceof Error && /mixing positional and named/i.test(err.message);
    },
    'Mixing positional and named placeholders must throw Error'
  );
}

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

오리진 시더

익명