Exemple
lightningcss 1.33.0
Échantillon vérifié pour npm lightningcss 1.33.0. Le contrat s'est exécuté sur node 22 · linux alpine/x64 · docker et a réussi.
sha256:28935bd061c60462605f3baeb6118fb8e20d22723a2183f82702a0a83925093e
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 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-27 |
Cas
HOW- Objectif
- verify pkg:npm/lightningcss@1.33.0
- Paquets
- Environnement
- node 22.23.2
- Créé
- 2026-08-27T22:07:03Z
Contrat
- bundleAsync resolves and inlines relative imports while preserving external import rules with custom in-memory resolver
- composeVisitors chains AST transformations for length units and color tokens during minification
- bundle bundles multi-file stylesheets from the filesystem with inlined imports and minification
Fichiers
- PROMPT.md
- csx.json
- fixtures/main.css
- fixtures/theme.css
- package-lock.json
- package.json
- spec.json
- src/index.mjs
- test/contract.mjs
Code source
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/lightningcss@1.33.0
Kind: HOW
Use EXACTLY these public packages and versions:
- pkg:npm/lightningcss@1.33.0
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:595adbb13de3565a6db3d7f34e13605438e4b5ddec596e45f31ad3952893a08e","constraints":{"executionContext":"node"},"contract":["bundleAsync resolves and inlines relative imports while preserving external import rules with custom in-memory resolver","composeVisitors chains AST transformations for length units and color tokens during minification","bundle bundles multi-file stylesheets from the filesystem with inlined imports and minification"],"goal":"verify pkg:npm/lightningcss@1.33.0","kind":"HOW","packages":["pkg:npm/lightningcss@1.33.0"],"schemaVersion":1},"contractCommand":["node","test/contract.mjs"],"environment":{"arch":"x64","distro":"ubuntu","ecosystem":"npm","executionContext":"node","language":"javascript","libc":"glibc","libcVersion":"2.39","moduleSystem":"esm","os":"linux","osVersionBucket":"24","packageManager":"npm","packageManagerVersion":"10.9.8","runtime":"node","runtimeVersion":"22.23.2","schemaVersion":1},"license":"MIT-0","packages":["pkg:npm/lightningcss@1.33.0"],"schemaVersion":1,"subject":"pkg:npm/lightningcss@1.33.0","verifierAdapter":"node-typescript@1"}
@import "./theme.css";
.container {
max-width: 1200px;
}
:root {
--primary-color: #0070f3;
}
.btn {
background: var(--primary-color);
border-radius: 4px;
}
{
"name": "lightningcss-sample",
"version": "1.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "lightningcss-sample",
"version": "1.0.0",
"dependencies": {
"lightningcss": "1.33.0"
}
},
"node_modules/detect-libc": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
"integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
"license": "Apache-2.0",
"engines": {
"node": ">=8"
}
},
"node_modules/lightningcss": {
"version": "1.33.0",
"resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.33.0.tgz",
"integrity": "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==",
"license": "MPL-2.0",
"dependencies": {
"detect-libc": "^2.0.3"
},
"engines": {
"node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
},
"optionalDependencies": {
"lightningcss-android-arm64": "1.33.0",
"lightningcss-darwin-arm64": "1.33.0",
"lightningcss-darwin-x64": "1.33.0",
"lightningcss-freebsd-x64": "1.33.0",
"lightningcss-linux-arm-gnueabihf": "1.33.0",
"lightningcss-linux-arm64-gnu": "1.33.0",
"lightningcss-linux-arm64-musl": "1.33.0",
"lightningcss-linux-x64-gnu": "1.33.0",
"lightningcss-linux-x64-musl": "1.33.0",
"lightningcss-win32-arm64-msvc": "1.33.0",
"lightningcss-win32-x64-msvc": "1.33.0"
}
},
"node_modules/lightningcss-android-arm64": {
"version": "1.33.0",
"resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.33.0.tgz",
"integrity": "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==",
"cpu": [
"arm64"
],
"license": "MPL-2.0",
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/lightningcss-darwin-arm64": {
"version": "1.33.0",
"resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.33.0.tgz",
"integrity": "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==",
"cpu": [
"arm64"
],
"license": "MPL-2.0",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/lightningcss-darwin-x64": {
"version": "1.33.0",
"resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.33.0.tgz",
"integrity": "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==",
"cpu": [
"x64"
],
"license": "MPL-2.0",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/lightningcss-freebsd-x64": {
"version": "1.33.0",
"resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.33.0.tgz",
"integrity": "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==",
"cpu": [
"x64"
],
"license": "MPL-2.0",
"optional": true,
"os": [
"freebsd"
],
"engines": {
"node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/lightningcss-linux-arm-gnueabihf": {
"version": "1.33.0",
"resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.33.0.tgz",
"integrity": "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==",
"cpu": [
"arm"
],
"license": "MPL-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/lightningcss-linux-arm64-gnu": {
"version": "1.33.0",
"resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.33.0.tgz",
"integrity": "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==",
"cpu": [
"arm64"
],
"license": "MPL-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/lightningcss-linux-arm64-musl": {
"version": "1.33.0",
"resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.33.0.tgz",
"integrity": "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==",
"cpu": [
"arm64"
],
"license": "MPL-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/lightningcss-linux-x64-gnu": {
"version": "1.33.0",
"resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.33.0.tgz",
"integrity": "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==",
"cpu": [
"x64"
],
"license": "MPL-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/lightningcss-linux-x64-musl": {
"version": "1.33.0",
"resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.33.0.tgz",
"integrity": "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==",
"cpu": [
"x64"
],
"license": "MPL-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/lightningcss-win32-arm64-msvc": {
"version": "1.33.0",
"resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.33.0.tgz",
"integrity": "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==",
"cpu": [
"arm64"
],
"license": "MPL-2.0",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
},
"node_modules/lightningcss-win32-x64-msvc": {
"version": "1.33.0",
"resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.33.0.tgz",
"integrity": "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==",
"cpu": [
"x64"
],
"license": "MPL-2.0",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/parcel"
}
}
}
}
{
"name": "lightningcss-sample",
"version": "1.0.0",
"type": "module",
"dependencies": {
"lightningcss": "1.33.0"
}
}
{
"schemaVersion": 1,
"goal": "verify pkg:npm/lightningcss@1.33.0",
"kind": "HOW",
"packages": [
"pkg:npm/lightningcss@1.33.0"
],
"constraints": {
"executionContext": "node"
},
"runtimeConditions": {
"ecosystem": "npm",
"language": "javascript",
"moduleSystem": "cjs",
"packageManager": "npm@10.9.8",
"runtime": "node@22.23.2"
}
}
import { bundle, bundleAsync, composeVisitors, transform } from 'lightningcss';
/**
* Bundles virtual in-memory CSS files using bundleAsync and a custom resolver.
*
* @param {string} entryFilename - Root entry filename.
* @param {Record<string, string>} files - In-memory map of file paths to CSS content.
* @param {Record<string, string>} [externalMap] - Map of specifiers to external URLs.
* @returns {Promise<string>} The bundled and minified CSS code.
*/
export async function bundleVirtualStylesheets(entryFilename, files, externalMap = {}) {
const result = await bundleAsync({
filename: entryFilename,
resolver: {
resolve(specifier) {
if (externalMap[specifier]) {
return { external: externalMap[specifier] };
}
if (files[specifier]) {
return specifier;
}
throw new Error(`Cannot resolve specifier: ${specifier}`);
},
read(file) {
if (files[file] !== undefined) {
return files[file];
}
throw new Error(`File not found in virtual store: ${file}`);
}
},
minify: true
});
return result.code.toString();
}
/**
* Transforms CSS by composing multiple AST visitors into a single pipeline.
*
* @param {string} cssText - Raw CSS source string.
* @param {Array<import('lightningcss').Visitor<any>>} visitors - Array of AST visitor objects.
* @returns {string} The transformed CSS code.
*/
export function transformWithComposedVisitors(cssText, visitors) {
const composed = composeVisitors(visitors);
const result = transform({
filename: 'input.css',
code: Buffer.from(cssText),
visitor: composed,
minify: true
});
return result.code.toString();
}
/**
* Bundles CSS files from the filesystem synchronously using bundle.
*
* @param {string} entryPath - Path to the root CSS file on disk.
* @returns {string} The bundled and minified CSS code.
*/
export function bundleFilesystemStylesheet(entryPath) {
const result = bundle({
filename: entryPath,
minify: true
});
return result.code.toString();
}
import assert from 'node:assert/strict';
import { fileURLToPath } from 'node:url';
import {
bundleVirtualStylesheets,
transformWithComposedVisitors,
bundleFilesystemStylesheet
} from '../src/index.mjs';
// Contract 1: bundleAsync resolves and inlines relative imports while preserving external import rules with custom in-memory resolver
{
const virtualFiles = {
'/virtual/app.css': '@import "external-fonts.css"; @import "/virtual/base.css"; .app { padding: 10px; }',
'/virtual/base.css': ':root { --main-bg: #f5f5f5; }'
};
const externalMap = {
'external-fonts.css': 'https://fonts.example.com/css2?family=Roboto'
};
const output = await bundleVirtualStylesheets('/virtual/app.css', virtualFiles, externalMap);
assert.ok(
output.startsWith('@import "https://fonts.example.com/css2?family=Roboto";'),
'Should preserve external import rule at the beginning'
);
assert.ok(
output.includes(':root{--main-bg:#f5f5f5}'),
'Should inline base.css variables without @import statement'
);
assert.ok(
output.includes('.app{padding:10px}'),
'Should include app.css rules'
);
}
// Contract 2: composeVisitors chains AST transformations for length units and color tokens during minification
{
const visitorA = {
Length(len) {
if (len.unit === 'px' && len.value === 32) {
return { unit: 'rem', value: 2 };
}
}
};
const visitorB = {
Color(color) {
if (color.type === 'rgb' && color.r === 255 && color.g === 0 && color.b === 0) {
return { type: 'rgb', r: 0, g: 128, b: 0, alpha: 1 };
}
}
};
const css = '.hero { font-size: 32px; color: rgb(255, 0, 0); margin: 0; }';
const transformed = transformWithComposedVisitors(css, [visitorA, visitorB]);
assert.strictEqual(
transformed,
'.hero{color:green;margin:0;font-size:2rem}',
'Should apply composed visitors for length units and color tokens'
);
}
// Contract 3: bundle bundles multi-file stylesheets from the filesystem with inlined imports and minification
{
const fixturePath = fileURLToPath(new URL('../fixtures/main.css', import.meta.url));
const result = bundleFilesystemStylesheet(fixturePath);
assert.strictEqual(
result,
':root{--primary-color:#0070f3}.btn{background:var(--primary-color);border-radius:4px}.container{max-width:1200px}',
'Should bundle and minify imported filesystem stylesheets'
);
}
console.log('All lightningcss 1.33.0 contracts passed successfully.');
Seeder d'origine
anonyme