Compare commits

...
3 changed files with 5 additions and 9 deletions
-1
View File
@@ -1,3 +1,2 @@
* text=auto eol=lf
*.bat text eol=crlf *.bat text eol=crlf
*.cmd text eol=crlf *.cmd text eol=crlf
+4 -4
View File
@@ -37,8 +37,8 @@
}, },
{ {
"path": ".gitattributes", "path": ".gitattributes",
"sha256": "489fb811f97deb0befb181e8eda6330bd155b6e1a3d7cc4b717391c31cf870f0", "sha256": "d90ccf4947d28fe9d952f38397cbb46c54591957ec375025121d5a7e61dbac44",
"size": 59 "size": 40
}, },
{ {
"path": ".github/CODEOWNERS", "path": ".github/CODEOWNERS",
@@ -3162,8 +3162,8 @@
}, },
{ {
"path": "tools/verify-theme-manager-1.41.2.mjs", "path": "tools/verify-theme-manager-1.41.2.mjs",
"sha256": "c721fda8a7a5b569a1c4beb05255261f51fbb8935d670cc0092fef30ffd1fe4a", "sha256": "1f533ae4896d5130515726c845ce8b954cd22bc545cb7a73e589d63cadae3a04",
"size": 6130 "size": 5880
}, },
{ {
"path": "tools/verify-ui-contracts-1.26.1.mjs", "path": "tools/verify-ui-contracts-1.26.1.mjs",
+1 -4
View File
@@ -8,7 +8,6 @@ import {
const root = resolve(dirname(fileURLToPath(import.meta.url)), '..'); const root = resolve(dirname(fileURLToPath(import.meta.url)), '..');
const read = rel => readFileSync(join(root, rel), 'utf8'); const read = rel => readFileSync(join(root, rel), 'utf8');
const canonicalizeEol = value => String(value).replace(/\r\n?/g, '\n');
const failures = []; const failures = [];
const assert = (condition, message) => { if (!condition) failures.push(message); }; const assert = (condition, message) => { if (!condition) failures.push(message); };
const expectThrow = (fn, code, message) => { const expectThrow = (fn, code, message) => {
@@ -40,9 +39,7 @@ assert(!poorContrast.ok && poorContrast.failures.length >= 2, 'Kontrastfehler wu
const before = read('public/design-system/tokens.css'); const before = read('public/design-system/tokens.css');
const generated = spawnSync(process.execPath, [join(root, 'tools/generate-design-tokens.mjs')], { cwd: root, encoding: 'utf8' }); const generated = spawnSync(process.execPath, [join(root, 'tools/generate-design-tokens.mjs')], { cwd: root, encoding: 'utf8' });
assert(generated.status === 0, `Token-Generator fehlgeschlagen: ${generated.stderr || generated.stdout}`); assert(generated.status === 0, `Token-Generator fehlgeschlagen: ${generated.stderr || generated.stdout}`);
const generatedCss = read('public/design-system/tokens.css'); assert(before === read('public/design-system/tokens.css'), 'Token-Generator ist nicht deterministisch');
assert(canonicalizeEol(before) === canonicalizeEol(generatedCss), 'Token-Generator ist inhaltlich nicht deterministisch');
assert(!generatedCss.includes('\r'), 'Token-Generator muss kanonische LF-Zeilenenden schreiben');
const manifest = JSON.parse(read('app/modules/themes/module.json')); const manifest = JSON.parse(read('app/modules/themes/module.json'));
assert(manifest.status === 'native', 'Theme-Modul ist nicht nativ'); assert(manifest.status === 'native', 'Theme-Modul ist nicht nativ');