Beispiel
electron-to-chromium 1.5.412: electronToChromium
Verifiziertes Beispiel für npm electron-to-chromium 1.5.412: electronToChromium. Der Vertrag lief auf node 22 · linux alpine/x64 · docker und bestand.
sha256:7e400cbb2ffcda98ba3c28b0e0b85bb8260fcd236370af9a18b6e27b7cd56aa8
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 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 |
Fall
HOW- Ziel
- verify electronToChromium in pkg:npm/electron-to-chromium@1.5.412
- Pakete
- Symbole
-
- electronToChromium
- Umgebung
- node 22.23.2
- Erstellt
- 2026-08-26T06:11:50Z
Contract
- electronToChromium(query) with major.minor string queries 'versions' map and returns major Chromium version string (e.g. '1.4' -> '53', '34.0' -> '132', '44.0' -> '152')
- electronToChromium(query) with major.minor.patch string (split length > 2) queries 'fullVersions' map and returns full Chromium version string (e.g. '1.4.0' -> '53.0.2785.113', '0.20.0' -> '39.0.2171.65', '34.0.0' -> '132.0.6834.83')
- electronToChromium(1) numeric literal is coerced to '1.0' and returns '49', whereas electronToChromium('1') string literal is uncoerced and returns undefined
- electronToChromium(number) converts numeric float values to strings (e.g. 1.4 -> '53')
- electronToChromium('34') returns undefined because major-only queries require a minor version segment ('34.0')
- electronToChromium(query) returns undefined for unknown or unmapped version strings ('999.0', 'unknown')
- electronToChromium(null) and electronToChromium(undefined) throw TypeError when accessing split method
Dateien
- NOTES.md
- PROMPT.md
- csx.json
- package-lock.json
- package.json
- spec.json
- test/contract.mjs
Quelltext
# electron-to-chromium Public API Behavior
## Overview
`electron-to-chromium` provides mappings from Electron versions to their underlying Chromium versions. This sample verifies the resolution semantics, numeric coercion rules, and error handling of `electronToChromium`.
## Pinned Release
- `electron-to-chromium`: `1.5.412`
- Runtime: Node.js (tested on Node 22 ESM)
## Observed Behavior & Traps
### 1. Major.Minor vs. Full Semver Resolution
- `electronToChromium(query)` inspects the number of dot-separated segments in the query string:
- If `number.split('.').length > 2` (e.g. `'1.4.0'`, `'34.0.0'`), it looks up the full Chromium release version in `fullVersions` (e.g. `'53.0.2785.113'`).
- Otherwise (e.g. `'1.4'`, `'34.0'`), it looks up the major Chromium release version in `versions` (e.g. `'53'`).
### 2. Number Coercion Trap
- **Integer 1**: When passed the numeric literal `1`, internal helper `getQueryString` rewrites `query === 1` to `"1.0"`, successfully resolving to Chromium version `"49"`.
- **String '1'**: When passed the string `'1'`, no normalization occurs, and `versions['1']` resolves to `undefined`.
- **Floating point numbers**: Numeric float values like `1.4` are converted via string concatenation (`1.4 + ''` -> `'1.4'`), resolving to `"53"`.
### 3. Missing Minor Segment
- Passing a major version only as a string (e.g. `'34'`) returns `undefined`, because version keys require a minor segment (e.g. `'34.0'`).
### 4. Missing / Unmapped Versions
- Querying unmapped versions (e.g. `'999.0'`, `'unknown'`) returns `undefined` instead of throwing.
### 5. Non-String / Non-Number Inputs
- Calling `electronToChromium(null)` or `electronToChromium(undefined)` causes a `TypeError: Cannot read properties of ... (reading 'split')` because `getQueryString` does not guard against non-primitive or nil values before calling `.split('.')`.
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 electronToChromium in pkg:npm/electron-to-chromium@1.5.412
Kind: HOW
Use EXACTLY these public packages and versions:
- pkg:npm/electron-to-chromium@1.5.412
Demonstrate these symbols/APIs:
- electronToChromium
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.
{"case":{"caseId":"case:sha256:5b3105ebeeaa55ef7dae56c313a26326cb19cbaec0d26af67abf11b7bc7b6f36","constraints":{"executionContext":"node"},"contract":["electronToChromium(query) with major.minor string queries 'versions' map and returns major Chromium version string (e.g. '1.4' -\u003e '53', '34.0' -\u003e '132', '44.0' -\u003e '152')","electronToChromium(query) with major.minor.patch string (split length \u003e 2) queries 'fullVersions' map and returns full Chromium version string (e.g. '1.4.0' -\u003e '53.0.2785.113', '0.20.0' -\u003e '39.0.2171.65', '34.0.0' -\u003e '132.0.6834.83')","electronToChromium(1) numeric literal is coerced to '1.0' and returns '49', whereas electronToChromium('1') string literal is uncoerced and returns undefined","electronToChromium(number) converts numeric float values to strings (e.g. 1.4 -\u003e '53')","electronToChromium('34') returns undefined because major-only queries require a minor version segment ('34.0')","electronToChromium(query) returns undefined for unknown or unmapped version strings ('999.0', 'unknown')","electronToChromium(null) and electronToChromium(undefined) throw TypeError when accessing split method"],"goal":"verify electronToChromium in pkg:npm/electron-to-chromium@1.5.412","kind":"HOW","packages":["pkg:npm/electron-to-chromium@1.5.412"],"schemaVersion":1,"symbols":["electronToChromium"]},"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/electron-to-chromium@1.5.412"],"schemaVersion":1,"subject":"pkg:npm/electron-to-chromium@1.5.412","symbols":["electronToChromium"],"verifierAdapter":"node-typescript@1"}
{
"name": "verify-electron-to-chromium",
"version": "1.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "verify-electron-to-chromium",
"version": "1.0.0",
"dependencies": {
"electron-to-chromium": "1.5.412"
}
},
"node_modules/electron-to-chromium": {
"version": "1.5.412",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.412.tgz",
"integrity": "sha512-z4rMe3esBzlzovKHj4gxJnsCGZRK5l4baUvm+gCGJBPE+gsyUMKsuU9tnEUtI1dOebXz1ytAPGjvXhmQ7rIPwA==",
"license": "ISC"
}
}
}
{
"name": "verify-electron-to-chromium",
"version": "1.0.0",
"private": true,
"type": "module",
"dependencies": {
"electron-to-chromium": "1.5.412"
}
}
{
"schemaVersion": 1,
"goal": "verify electronToChromium in pkg:npm/electron-to-chromium@1.5.412",
"kind": "HOW",
"packages": [
"pkg:npm/electron-to-chromium@1.5.412"
],
"symbols": [
"electronToChromium"
],
"constraints": {
"executionContext": "node"
},
"runtimeConditions": {
"ecosystem": "npm",
"language": "javascript",
"moduleSystem": "cjs",
"packageManager": "npm@10.9.8",
"runtime": "node@22.23.2"
}
}
import assert from 'node:assert/strict';
import { electronToChromium } from 'electron-to-chromium';
// 1. electronToChromium with major.minor string queries 'versions' map and returns major Chromium version string
assert.strictEqual(electronToChromium('1.4'), '53');
assert.strictEqual(electronToChromium('34.0'), '132');
assert.strictEqual(electronToChromium('44.0'), '152');
// 2. electronToChromium with major.minor.patch string (split length > 2) queries 'fullVersions' map and returns full Chromium version string
assert.strictEqual(electronToChromium('1.4.0'), '53.0.2785.113');
assert.strictEqual(electronToChromium('0.20.0'), '39.0.2171.65');
assert.strictEqual(electronToChromium('34.0.0'), '132.0.6834.83');
// 3. electronToChromium(1) as number 1 is normalized to '1.0', returning '49'
assert.strictEqual(electronToChromium(1), '49');
// 4. electronToChromium('1') as string '1' is NOT normalized to '1.0' and returns undefined
assert.strictEqual(electronToChromium('1'), undefined);
// 5. electronToChromium(number) converts numeric float input to string (e.g. 1.4 -> '53')
assert.strictEqual(electronToChromium(1.4), '53');
// 6. electronToChromium('34') returns undefined because major-only queries require minor version segment ('34.0')
assert.strictEqual(electronToChromium('34'), undefined);
// 7. electronToChromium returns undefined for unknown or unmapped version strings
assert.strictEqual(electronToChromium('999.0'), undefined);
assert.strictEqual(electronToChromium('unknown'), undefined);
// 8. electronToChromium throws TypeError for null or undefined input
assert.throws(
() => electronToChromium(null),
(err) => err instanceof TypeError
);
assert.throws(
() => electronToChromium(undefined),
(err) => err instanceof TypeError
);
console.log('Contract passed successfully.');
Ursprungs-Seeder
anonym