94c8212078
OpenTopoMap's hypsometric tint reads "red mountains / green flats" and looks nothing like the Swisstopo Pixelkarte the proxy hands out in-region — produced a jarring visual seam right at the CH/LI border. Thunderforest Outdoors has a muted topo palette + subtle hillshade that matches the swisstopo tile aesthetic much more closely, so use it as the abroad `karte` upstream when an API key is available. - `tile-proxy/build.rs`: reads `tile-proxy/.env` (gitignored) at build time and forwards each `KEY=VAL` line to rustc as `--env`, so the key is baked into the binary via `option_env!` and never touched at runtime. A shell env var of the same name wins over the .env entry (dotenv precedence). `cargo:rerun-if-changed=.env` + `cargo:rerun-if-env-changed` force a recompile whenever the value changes — no stale key cached in the binary. - `main.rs`: `THUNDERFOREST_API_KEY` read via `option_env!`; foreign `karte` is Thunderforest Outdoors when set, OpenTopoMap fallback when absent. Behaviour unchanged for keyless builds. - `mapTiles.ts`: page-footer attribution credits Thunderforest + OSM alongside the existing swisstopo / OpenTopoMap / Esri lines so the attribution stays correct regardless of which build is deployed. - `.gitignore`: tile-proxy build artefacts (binary, `target/`, `.env`) moved to the root gitignore with fully-qualified paths so the source tree isn't hidden by a nested gitignore quirk; the per-dir `tile-proxy/.gitignore` is removed. - README + systemd service: documentation refreshed for the new build-time key flow.
82 lines
3.1 KiB
JSON
82 lines
3.1 KiB
JSON
{
|
|
"name": "homepage",
|
|
"version": "1.94.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"prepare": "git config core.hooksPath .githooks || true",
|
|
"dev": "vite dev",
|
|
"prebuild": "bash scripts/subset-emoji-font.sh && pnpm exec vite-node scripts/generate-mystery-verses.ts && pnpm exec vite-node scripts/download-models.ts && pnpm exec vite-node scripts/generate-loyalty-cards.ts && pnpm exec vite-node scripts/generate-error-quotes.ts && pnpm exec vite-node scripts/build-hikes.ts && pnpm exec vite-node scripts/build-private-images.ts",
|
|
"build": "vite build",
|
|
"postbuild": "pnpm exec vite-node scripts/build-error-page.ts",
|
|
"preview": "vite preview",
|
|
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
|
|
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest",
|
|
"test:ui": "vitest --ui",
|
|
"test:coverage": "vitest run --coverage",
|
|
"test:e2e": "playwright test",
|
|
"test:e2e:ui": "playwright test --ui",
|
|
"test:e2e:docker:up": "docker compose -f docker-compose.test.yml up -d",
|
|
"test:e2e:docker:down": "docker compose -f docker-compose.test.yml down -v",
|
|
"test:e2e:docker": "docker compose -f docker-compose.test.yml up -d && playwright test; docker compose -f docker-compose.test.yml down -v",
|
|
"test:e2e:docker:run": "docker run --rm --network host -v $(pwd):/app -w /app -e CI=true mcr.microsoft.com/playwright:v1.56.1-noble /bin/bash -c 'npm install -g pnpm@9.0.0 && pnpm install --frozen-lockfile && pnpm run build && pnpm exec playwright test --project=chromium'",
|
|
"deploy": "bash scripts/deploy.sh",
|
|
"deploy:dry": "bash scripts/deploy.sh --dry-run",
|
|
"photos:push": "bash scripts/hike-photos.sh push",
|
|
"photos:pull": "bash scripts/hike-photos.sh pull",
|
|
"tauri": "tauri"
|
|
},
|
|
"packageManager": "pnpm@9.0.0",
|
|
"devDependencies": {
|
|
"@playwright/test": "1.56.1",
|
|
"@sveltejs/adapter-auto": "^7.0.1",
|
|
"@sveltejs/enhanced-img": "^0.10.4",
|
|
"@sveltejs/kit": "^2.56.1",
|
|
"@sveltejs/vite-plugin-svelte": "^7.0.0",
|
|
"@tauri-apps/cli": "^2.10.1",
|
|
"@testing-library/jest-dom": "^6.9.1",
|
|
"@testing-library/svelte": "^5.3.1",
|
|
"@types/leaflet": "^1.9.21",
|
|
"@types/node": "^22.12.0",
|
|
"@types/node-cron": "^3.0.11",
|
|
"@vitest/ui": "^4.1.2",
|
|
"bwip-js": "^4.10.1",
|
|
"jsdom": "^27.2.0",
|
|
"mdsvex": "^0.12.7",
|
|
"svelte": "^5.55.1",
|
|
"svelte-check": "^4.4.6",
|
|
"tslib": "^2.8.1",
|
|
"typescript": "^6.0.2",
|
|
"vite": "^8.0.4",
|
|
"vite-node": "^6.0.0",
|
|
"vitest": "^4.1.2"
|
|
},
|
|
"dependencies": {
|
|
"@auth/sveltekit": "^1.11.1",
|
|
"@huggingface/transformers": "^4.0.1",
|
|
"@lucide/svelte": "^1.7.0",
|
|
"@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3",
|
|
"@sveltejs/adapter-node": "^5.5.4",
|
|
"@tauri-apps/plugin-geolocation": "^2.3.2",
|
|
"barcode-detector": "^3.1.2",
|
|
"chart.js": "^4.5.1",
|
|
"chartjs-adapter-date-fns": "^3.0.0",
|
|
"date-fns": "^4.1.0",
|
|
"exifr": "^7.1.3",
|
|
"file-type": "^19.0.0",
|
|
"leaflet": "^1.9.4",
|
|
"mongoose": "^9.4.1",
|
|
"node-cron": "^4.2.1",
|
|
"romcal": "github:AlexBocken/romcal#dev",
|
|
"sharp": "^0.34.5",
|
|
"web-haptics": "^0.0.6"
|
|
},
|
|
"pnpm": {
|
|
"onlyBuiltDependencies": [
|
|
"esbuild"
|
|
]
|
|
}
|
|
}
|