* docs: prepare Vendoo 1.41.2 git-ignore boundary hotfix * fix: track native source modules with root-anchored runtime ignores
51 lines
3.0 KiB
JavaScript
51 lines
3.0 KiB
JavaScript
import { readFileSync } from 'node:fs';
|
|
import { resolve } from 'node:path';
|
|
|
|
const root = resolve(import.meta.dirname, '..');
|
|
const read = file => readFileSync(resolve(root, file), 'utf8');
|
|
const assert = (condition, message) => { if (!condition) throw new Error(message); };
|
|
|
|
const pkg = JSON.parse(read('package.json'));
|
|
const index = read('public/index.html');
|
|
const app = read('public/app.js');
|
|
const style = read('public/style.css');
|
|
const setup = read('setup.ps1');
|
|
|
|
assert(pkg.version === '1.25.1', 'Paketversion ist nicht 1.25.1.');
|
|
assert(index.includes('name="vendoo-build" content="1.25.1"'), 'Build-Metadatum fehlt.');
|
|
assert(index.includes('style.css?v=1.25.1'), 'CSS-Cache-Buster fehlt.');
|
|
assert(index.includes('app.js?v=1.25.1'), 'JS-Cache-Buster fehlt.');
|
|
assert(app.includes("VENDOO_UI_BUILD = '1.25.1'"), 'UI-Buildkennung fehlt.');
|
|
assert(setup.includes('/?build=1.25.1'), 'Windows-Start-Cache-Buster fehlt.');
|
|
|
|
assert(style.includes('grid-template-columns:repeat(auto-fit'), 'Automatisch fließendes Galerie-Raster fehlt.');
|
|
assert(style.includes('container-name:media-card'), 'Galeriekarten sind keine Container.');
|
|
assert(style.includes('@container media-card (max-width: 235px)'), 'Schmale Kartendarstellung fehlt.');
|
|
assert(style.includes('@container media-card (min-width: 340px)'), 'Breite Kartendarstellung fehlt.');
|
|
assert(app.includes('class="media-card-open"'), 'Klickbare Bildfläche fehlt.');
|
|
assert(app.includes("mediaActionIcon('open')"), 'Professioneller Bildöffnen-Indikator fehlt.');
|
|
assert(!app.includes('class="media-card-preview"'), 'Alter großer Öffnen-/Vorschau-Button ist noch vorhanden.');
|
|
assert(app.includes('class="media-action"'), 'Adaptives Aktionsdock fehlt.');
|
|
assert(app.includes("mediaActionIcon('edit')") && app.includes("mediaActionIcon('delete')"), 'Galerieaktionssymbole fehlen.');
|
|
assert(index.match(/data-media-pagination/g)?.length === 2, 'Pagination muss oben und unten vorhanden sein.');
|
|
assert(index.match(/data-media-page-jump/g)?.length === 2, 'Direkte Seitenauswahl muss oben und unten vorhanden sein.');
|
|
assert(app.includes("root.querySelectorAll('[data-media-page-action]')"), 'Paginierungsbuttons sind nicht angebunden.');
|
|
assert(app.includes("root.querySelectorAll('[data-media-page-jump]')"), 'Direkter Seitensprung ist nicht angebunden.');
|
|
assert(style.includes('.media-pagination-top') && style.includes('.media-pagination-bottom'), 'Pagination ist nicht oben und unten gestaltet.');
|
|
assert(style.includes('.media-card.is-selected .media-card-image'), 'Sichtbarer Auswahlzustand fehlt.');
|
|
assert(style.includes('@media (hover:none)'), 'Touch-Geräte werden nicht berücksichtigt.');
|
|
|
|
console.log(JSON.stringify({
|
|
ok: true,
|
|
release: '1.25.1',
|
|
adaptive_grid: true,
|
|
card_container_queries: true,
|
|
full_image_click_target: true,
|
|
oversized_open_button_removed: true,
|
|
adaptive_selection_and_favorite_overlays: true,
|
|
adaptive_action_dock: true,
|
|
pagination_top_and_bottom: true,
|
|
direct_page_jump: true,
|
|
touch_behavior: true,
|
|
}, null, 2));
|