615d9cdbd1
Toolchain hygiene:
- svelte-check is now a pinned devDep (was npx-fetched per CI run)
- vitest + coverage as devDeps; vitest.config.ts is separate from
vite.config.ts so vite build does not pull vitest
- $env stub for vitest (alias resolves $env/dynamic/{public,private}
to a process.env proxy) — keeps server modules testable without
booting SvelteKit
- npm scripts: check / check:watch / typecheck / test / test:watch
- drop yarn.lock + packageManager field; CI uses npm ci, single source
of truth is package-lock.json
- CI runs generate:icons + svelte-check + tsc --noEmit before deploy
Switch from raw process.env.X to $env/dynamic/{public,private} in
file-cache, image-cache, transform-cache and rusty-image.server. The
typed imports get tree-shaken correctly per server/client and fail
loudly at build time on accidental client-side use of private vars.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
52 lines
1.6 KiB
JSON
52 lines
1.6 KiB
JSON
{
|
|
"name": "windwiderstand",
|
|
"version": "0.0.1",
|
|
"private": true,
|
|
"scripts": {
|
|
"dev": "vite dev",
|
|
"predev": "node scripts/generate-icons.mjs",
|
|
"build": "vite build",
|
|
"prebuild": "node scripts/generate-icons.mjs",
|
|
"preview": "vite preview",
|
|
"start": "node build",
|
|
"generate:api-types": "node scripts/generate-api-types.mjs",
|
|
"generate:icons": "node scripts/generate-icons.mjs",
|
|
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
|
|
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
|
|
"typecheck": "svelte-kit sync && tsc --noEmit",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest",
|
|
"test:coverage": "vitest run --coverage",
|
|
"prepare": "svelte-kit sync || true"
|
|
},
|
|
"devDependencies": {
|
|
"@iconify-json/mdi": "^1.2.3",
|
|
"@sveltejs/adapter-node": "^5.2.12",
|
|
"@sveltejs/kit": "^2.21.4",
|
|
"@sveltejs/vite-plugin-svelte": "^5.0.3",
|
|
"@tailwindcss/vite": "^4.1.18",
|
|
"@types/node": "^22.10.0",
|
|
"@types/sanitize-html": "^2.13.0",
|
|
"@vitest/coverage-v8": "^2.1.9",
|
|
"openapi-typescript": "^7.4.0",
|
|
"svelte": "^5.28.2",
|
|
"svelte-check": "^4.1.4",
|
|
"tailwindcss": "^4.1.18",
|
|
"typescript": "^5.9.3",
|
|
"vite": "^6.3.5",
|
|
"vitest": "^2.1.9"
|
|
},
|
|
"dependencies": {
|
|
"@fontsource-variable/lora": "^5.2.8",
|
|
"@fontsource-variable/rubik": "^5.2.8",
|
|
"@fontsource/inter": "^5.2.8",
|
|
"@iconify/svelte": "^5.2.1",
|
|
"blurhash": "^2.0.5",
|
|
"class-variance-authority": "^0.7.1",
|
|
"marked": "^17.0.2",
|
|
"sanitize-html": "^2.13.1",
|
|
"sharp": "^0.34.5"
|
|
},
|
|
"type": "module"
|
|
}
|