mirror of
https://github.com/Donkie/Spoolman.git
synced 2026-10-22 01:52:17 -05:00
Dependabot #982 opened the door: an esbuild advisory that can only be closed by going forward, since the fix is upstream of us in vite-plugin-svelte and vitest. It could not merge on its own, though -- Vitest 4 no longer augments Vite's defineConfig, so the `test` block in vite.config.ts became a type error and the style job went red on a file Dependabot is not allowed to touch. The config now takes defineConfig from vitest/config, which is where that overload lives. With the chain forced open anyway, everything else that had drifted goes with it: SvelteKit, Svelte, paraglide, Playwright, prettier-plugin-svelte 4, globals 17 and ESLint 10. TypeScript stays on 5.9 -- 7.0.2 is out, but typescript-eslint pins <6.1.0 and svelte-check ^5 || ^6, so it is peer-blocked on both sides rather than merely untested. Vite 8 replaces Rollup and esbuild with Rolldown, so the toolchain is now one Rust binary plus lightningcss. Measured against a clean checkout of the old tree: the production build drops from 7.7s to 4.6s, shipped JavaScript from 383 KB gzipped across 42 chunks to 360 KB across 36. Dev cold start is unchanged at ~2s, as expected -- dev serves unbundled ESM either way. The armv7 image is not exposed to Rolldown's native binaries: build-client runs on amd64 and the arch jobs only download its artifact. ESLint 10 turns on no-useless-assignment, which caught three initialisers that every branch overwrites; they become bare declarations. The allowScripts block pinning esbuild@0.21.5 goes too, as esbuild is no longer in the tree at all and nothing in the repo reads that field. The lockfile is regenerated rather than patched: the old one pinned vite-plugin-svelte 4 firmly enough that npm could not resolve a path to 7 without it. Verified on Node 24: lefthook ci green, 50 unit tests, a11y audit, and the full tests_frontend_v2 Playwright suite (21/21) against a real backend serving the new build.
56 lines
1.8 KiB
JSON
56 lines
1.8 KiB
JSON
{
|
|
"name": "spoolman-client-v2",
|
|
"private": true,
|
|
"version": "0.25.0",
|
|
"type": "module",
|
|
"scripts": {
|
|
"strip-empty-locales": "node scripts/strip-empty-locales.mjs",
|
|
"predev": "node scripts/strip-empty-locales.mjs",
|
|
"dev": "vite dev",
|
|
"prebuild": "node scripts/strip-empty-locales.mjs",
|
|
"build": "vite build",
|
|
"preview": "vite preview",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest",
|
|
"paraglide": "paraglide-js compile --project ./project.inlang --outdir ./src/lib/paraglide --strategy localStorage preferredLanguage baseLocale",
|
|
"check": "npm run paraglide && svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
|
|
"check:watch": "npm run paraglide && svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
|
|
"format": "prettier --write .",
|
|
"lint": "prettier --check . && eslint .",
|
|
"lint:eslint": "eslint .",
|
|
"audit:a11y": "playwright test",
|
|
"audit:a11y:report": "playwright show-report"
|
|
},
|
|
"devDependencies": {
|
|
"@axe-core/playwright": "^4.12.1",
|
|
"@eslint/js": "^10.0.1",
|
|
"@inlang/paraglide-js": "^2.23.0",
|
|
"@playwright/test": "^1.62.1",
|
|
"@sveltejs/adapter-static": "^3.0.10",
|
|
"@sveltejs/kit": "^2.70.2",
|
|
"@sveltejs/vite-plugin-svelte": "^7.2.0",
|
|
"@types/qrcode": "^1.5.6",
|
|
"eslint": "^10.8.0",
|
|
"eslint-config-prettier": "^10.1.8",
|
|
"eslint-plugin-svelte": "^3.22.0",
|
|
"globals": "^17.8.0",
|
|
"prettier": "^3.9.6",
|
|
"prettier-plugin-svelte": "^4.1.1",
|
|
"svelte": "^5.56.8",
|
|
"svelte-check": "^4.7.4",
|
|
"typescript": "^5.9.3",
|
|
"typescript-eslint": "^8.65.0",
|
|
"vite": "^8.2.0",
|
|
"vitest": "^4.1.10"
|
|
},
|
|
"dependencies": {
|
|
"@lucide/svelte": "^1.28.0",
|
|
"fflate": "^0.8.3",
|
|
"konva": "^10.3.0",
|
|
"qr-scanner": "^1.4.2",
|
|
"qrcode": "^1.5.4",
|
|
"svelte-dnd-action": "^0.9.76",
|
|
"svelte-konva": "^1.0.1"
|
|
}
|
|
}
|