`@unom/ui/button` reaches `sound/defaults.js`, which resolves two game-UI sprite sheets with `new URL(…, import.meta.url)` at module scope — a 4.8 MB .wav and a 2.2 MB .mp3. Vite emitted both into the build, so they rode into the Windows installer and the .deb. The console never mounts UnomProviders, so no player is bundled and not one byte of it could ever be played. A build-time rewrite of those two expressions takes the asset payload from 8.2 MB to 1.5 MB; the login page and the button chunk are unchanged. Deleting the plugin is the whole revert if the console ever wants click sounds. Also: - `bun run dev` forwards the management bearer, so developing against a real host stops 401ing into a /login bounce that dev has no gate to satisfy. - `check-i18n` runs after `build`, not only inside `codegen`. It exists to stop a zero-message console shipping, and the CI job and the installer build both install with `--ignore-scripts`, so it had never once run where it mattered. - Bun's idle timeout goes from its 10 s default to 120 s. The host sends SSE keep-alives every 15 s, so anything long-lived proxied through the console was cut by us first — which the event stream is about to depend on. - The typecheck covers the Storybook config and preview. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
75 lines
2.4 KiB
JSON
75 lines
2.4 KiB
JSON
{
|
|
"name": "punktfunk-web",
|
|
"private": true,
|
|
"type": "module",
|
|
"description": "punktfunk management console \u2014 TanStack Start + React Query (orval) + @unom/ui + Paraglide i18n",
|
|
"scripts": {
|
|
"prepare": "bun run codegen",
|
|
"postinstall": "bun2nix -o bun.nix",
|
|
"codegen": "orval --config orval.config.ts && paraglide-js compile --project ./project.inlang --outdir ./src/paraglide && node tools/check-i18n.mjs",
|
|
"predev": "orval --config orval.config.ts",
|
|
"dev": "vite dev --port 47992",
|
|
"prebuild": "orval --config orval.config.ts",
|
|
"build": "vite build",
|
|
"postbuild": "node tools/check-i18n.mjs",
|
|
"start": "bun run .output/server/index.mjs",
|
|
"api:gen": "orval --config orval.config.ts",
|
|
"lint": "tsc --noEmit",
|
|
"storybook": "storybook dev -p 6006",
|
|
"build-storybook": "storybook build",
|
|
"screenshots": "node tools/screenshots.mjs",
|
|
"screenshots:build": "bun run build-storybook && node tools/screenshots.mjs"
|
|
},
|
|
"dependencies": {
|
|
"@fontsource-variable/geist": "^5.3.0",
|
|
"@tanstack/react-query": "^5.101.4",
|
|
"@tanstack/react-router": "^1.170.18",
|
|
"@tanstack/react-start": "^1.168.32",
|
|
"@unom/style": "^0.4.4",
|
|
"@unom/ui": "^0.8.16",
|
|
"class-variance-authority": "^0.7.1",
|
|
"clsx": "^2.1.1",
|
|
"lucide-react": "^0.469.0",
|
|
"motion": "^12.42.2",
|
|
"radix-ui": "^1.6.4",
|
|
"react": "^19.2.8",
|
|
"react-dom": "^19.2.8",
|
|
"recharts": "^3.10.0",
|
|
"tailwind-merge": "^2.6.1",
|
|
"zod": "^4.4.3"
|
|
},
|
|
"devDependencies": {
|
|
"@biomejs/biome": "^2.5.5",
|
|
"@inlang/paraglide-js": "^2.22.0",
|
|
"@inlang/plugin-message-format": "^4.4.0",
|
|
"@storybook/react-vite": "^10.5.3",
|
|
"@tailwindcss/vite": "^4.3.3",
|
|
"@tanstack/nitro-v2-vite-plugin": "^1.155.0",
|
|
"@types/node": "^22.20.1",
|
|
"@types/react": "^19.2.17",
|
|
"@types/react-dom": "^19.2.3",
|
|
"@vitejs/plugin-react": "^5.2.0",
|
|
"bun2nix": "2.1.2",
|
|
"orval": "^8.22.0",
|
|
"playwright": "^1.61.1",
|
|
"storybook": "^10.5.3",
|
|
"tailwindcss": "^4.3.3",
|
|
"tw-animate-css": "^1.4.0",
|
|
"typescript": "^5.9.3",
|
|
"vite": "^7.3.6",
|
|
"vite-tsconfig-paths": "^5.1.4"
|
|
},
|
|
"overrides": {
|
|
"tar": "^7.5.21",
|
|
"dompurify": "^3.4.12",
|
|
"linkify-it": "^5.0.2",
|
|
"sharp": "^0.35.3",
|
|
"fast-uri": "^3.1.4",
|
|
"immutable": "^4.3.9",
|
|
"undici": "^7.28.0",
|
|
"postcss": "^8.5.10",
|
|
"js-yaml": "^4.3.0",
|
|
"brace-expansion": "^5.0.8"
|
|
}
|
|
}
|