Пример
minipass-fetch 4.0.1: Response
Проверенный пример — npm minipass-fetch 4.0.1: Response. Контракт выполнен на node 22 · linux debian/x64 · docker и пройден: Response constructor initializes…
sha256:437cbba10d7c36d2a486c15270540c6be07fb157b1e5c3b60692ce7527398a24
Эта сеть предлагает одно: образец, который собирается. Она запустила его в песочнице и сохранила подписанную квитанцию. Она ничего не оценивает и ничего не гарантирует — собирается ли тот же код у вас, она не измеряла.
Сколько различных ключей подписи подали пройденную квитанцию контракта. Один — только автор; больше одного — значит, кто-то ещё тоже собрал. Ключ создаётся сам и не имеет зарегистрированной личности, поэтому считаются ключи, а не люди.
MIT-0
Свидетельства выполнения
Заявленное окружение и подписанные запуски разделены, чтобы вы точно видели, что этот образец запускал и где.
- Основа свидетельства
- Подписанный контракт пройден
- Квитанции проверки
- 1
- Ключи подписи, собравшие его
- 1
Заявленная среда
node linux 24 · ubuntu · glibc 2.39 x64 node npm
Среды запусков проверки
| Окружение | Контракт | Этапы | Запуск |
|---|---|---|---|
| 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-10-18 |
Кейс
HOW- Цель
- verify Response in pkg:npm/minipass-fetch@4.0.1
- Пакеты
- Символы
-
- Response
- Окружение
- node
- Создан
- 2026-10-18T00:22:59Z
Контракт
- Response constructor initializes status, ok, statusText, url, and normalized Headers with text() and json() body consumers
- Response.prototype.clone() duplicates the response stream for independent body consumption while reusing an already consumed Response rejects with TypeError
- Response exposes arrayBuffer(), buffer(), and blob() consumers for binary payloads and rejects with FetchError (type 'invalid-json') when json() parses malformed input
Файлы
- PROMPT.md
- csx.json
- package-lock.json
- package.json
- spec.json
- test/contract.mjs
Исходный код
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 Response in pkg:npm/minipass-fetch@4.0.1
Kind: HOW
Use EXACTLY these public packages and versions:
- pkg:npm/minipass-fetch@4.0.1
Demonstrate these symbols/APIs:
- Response
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:d1855dddf0d774c54a79df86f2484754d9c3432bd4efb5634ee6b291120eb1f0","contract":["Response constructor initializes status, ok, statusText, url, and normalized Headers with text() and json() body consumers","Response.prototype.clone() duplicates the response stream for independent body consumption while reusing an already consumed Response rejects with TypeError","Response exposes arrayBuffer(), buffer(), and blob() consumers for binary payloads and rejects with FetchError (type 'invalid-json') when json() parses malformed input"],"goal":"verify Response in pkg:npm/minipass-fetch@4.0.1","kind":"HOW","packages":["pkg:npm/minipass-fetch@4.0.1"],"schemaVersion":1,"symbols":["Response"]},"contractCommand":["node","test/contract.mjs"],"environment":{"arch":"x64","distro":"ubuntu","ecosystem":"npm","executionContext":"node","libc":"glibc","libcVersion":"2.39","moduleSystem":"esm","os":"linux","osVersionBucket":"24","packageManager":"npm","runtime":"node","schemaVersion":1},"license":"MIT-0","packages":["pkg:npm/minipass-fetch@4.0.1"],"schemaVersion":1,"subject":"pkg:npm/minipass-fetch@4.0.1","symbols":["Response"],"verifierAdapter":"node-typescript@1"}
{
"name": "minipass-fetch-response-sample",
"version": "1.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "minipass-fetch-response-sample",
"version": "1.0.0",
"dependencies": {
"minipass-fetch": "4.0.1"
}
},
"node_modules/encoding": {
"version": "0.1.13",
"resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
"integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
"license": "MIT",
"optional": true,
"dependencies": {
"iconv-lite": "^0.6.2"
}
},
"node_modules/iconv-lite": {
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
"integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
"license": "MIT",
"optional": true,
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3.0.0"
},
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/minipass": {
"version": "7.1.3",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz",
"integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==",
"license": "BlueOak-1.0.0",
"engines": {
"node": ">=16 || 14 >=14.17"
}
},
"node_modules/minipass-fetch": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-4.0.1.tgz",
"integrity": "sha512-j7U11C5HXigVuutxebFadoYBbd7VSdZWggSe64NVdvWNBqGAiXPL2QVCehjmw7lY1oF9gOllYbORh+hiNgfPgQ==",
"license": "MIT",
"dependencies": {
"minipass": "^7.0.3",
"minipass-sized": "^1.0.3",
"minizlib": "^3.0.1"
},
"engines": {
"node": "^18.17.0 || >=20.5.0"
},
"optionalDependencies": {
"encoding": "^0.1.13"
}
},
"node_modules/minipass-sized": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz",
"integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==",
"license": "ISC",
"dependencies": {
"minipass": "^3.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/minipass-sized/node_modules/minipass": {
"version": "3.3.6",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
"integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
"license": "ISC",
"dependencies": {
"yallist": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/minizlib": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz",
"integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==",
"license": "MIT",
"dependencies": {
"minipass": "^7.1.2"
},
"engines": {
"node": ">= 18"
}
},
"node_modules/safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
"license": "MIT",
"optional": true
},
"node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
"license": "ISC"
}
}
}
{
"name": "minipass-fetch-response-sample",
"version": "1.0.0",
"private": true,
"type": "module",
"scripts": {
"test": "node test/contract.mjs"
},
"dependencies": {
"minipass-fetch": "4.0.1"
}
}
{
"schemaVersion": 1,
"goal": "verify Response in pkg:npm/minipass-fetch@4.0.1",
"kind": "HOW",
"packages": [
"pkg:npm/minipass-fetch@4.0.1"
],
"symbols": [
"Response"
]
}
import assert from 'node:assert/strict'
import fetch from 'minipass-fetch'
const { Response, Headers, FetchError } = fetch
// 1. Default Response construction, status, ok, statusText, headers
const emptyRes = new Response()
assert.equal(emptyRes.status, 200)
assert.equal(emptyRes.ok, true)
assert.equal(emptyRes.statusText, 'OK')
assert.equal(emptyRes.redirected, false)
assert.equal(await emptyRes.text(), '')
// 2. Response with JSON body, custom status, statusText, url, and headers
const payload = { id: 101, status: 'created', tags: ['alpha', 'beta'] }
const jsonRes = new Response(JSON.stringify(payload), {
status: 201,
statusText: 'Created',
url: 'http://example.com/items/101',
headers: new Headers({ 'Content-Type': 'application/json', 'X-Item-Id': '101' }),
})
assert.equal(jsonRes.status, 201)
assert.equal(jsonRes.ok, true)
assert.equal(jsonRes.statusText, 'Created')
assert.equal(jsonRes.url, 'http://example.com/items/101')
assert.equal(jsonRes.headers.get('content-type'), 'application/json')
assert.equal(jsonRes.headers.get('x-item-id'), '101')
assert.equal(jsonRes.bodyUsed, false)
// 3. Response.prototype.clone() allows independent consumption of the body
const clonedRes = jsonRes.clone()
assert.equal(clonedRes.status, 201)
assert.equal(clonedRes.headers.get('x-item-id'), '101')
assert.deepEqual(await jsonRes.json(), payload)
assert.equal(jsonRes.bodyUsed, true)
assert.equal(clonedRes.bodyUsed, false)
assert.equal(await clonedRes.text(), JSON.stringify(payload))
assert.equal(clonedRes.bodyUsed, true)
// 4. Consuming an already used Response body rejects with TypeError
await assert.rejects(
() => jsonRes.text(),
err => err instanceof TypeError
)
// 5. Binary body consumers: arrayBuffer(), buffer(), and blob()
const rawBytes = Buffer.from([0xde, 0xad, 0xbe, 0xef])
const binRes = new Response(rawBytes, {
status: 200,
headers: { 'Content-Type': 'application/octet-stream' },
})
const binClone1 = binRes.clone()
const binClone2 = binRes.clone()
const ab = await binRes.arrayBuffer()
assert.deepEqual(Buffer.from(ab), rawBytes)
const buf = await binClone1.buffer()
assert.equal(Buffer.isBuffer(buf), true)
assert.deepEqual(buf, rawBytes)
const blob = await binClone2.blob()
assert.equal(blob.size, 4)
assert.equal(blob.type, 'application/octet-stream')
// 6. Non-2xx status sets ok to false and invalid JSON payload rejects with FetchError
const notFoundRes = new Response('not found', { status: 404, statusText: 'Not Found' })
assert.equal(notFoundRes.status, 404)
assert.equal(notFoundRes.ok, false)
assert.equal(await notFoundRes.text(), 'not found')
const badJsonRes = new Response('not-valid-json', { status: 200 })
await assert.rejects(
() => badJsonRes.json(),
err => err instanceof FetchError && err.type === 'invalid-json'
)
Исходный сидер
аноним