mirror of
https://github.com/koala73/worldmonitor.git
synced 2026-04-26 01:24:59 +02:00
Egress optimization: - Add s-maxage + stale-while-revalidate to all API endpoints for Vercel CDN caching - Add vercel.json with immutable caching for hashed assets - Add gzip compression to sidecar responses >1KB - Add gzip to Railway RSS responses (4 paths previously uncompressed) - Increase polling intervals: markets/crypto 60s→120s, ETF/macro/stablecoins 60s→180s - Remove hardcoded Railway URL from theater-posture.js (now env-var only) PWA / Service Worker: - Add vite-plugin-pwa with autoUpdate strategy - Cache map tiles (CacheFirst), fonts (StaleWhileRevalidate), static assets - NetworkOnly for all /api/* routes (real-time data must be fresh) - Manual SW registration (web only, skip Tauri) - Add offline fallback page - Replace manual manifest with plugin-generated manifest Polymarket fix: - Route dev proxy through production Vercel (bypasses JA3 blocking) - Add 4th fallback tier: production URL as absolute fallback Desktop/Sidecar: - Dual-backend cache (_upstash-cache.js): Redis cloud + in-memory+file desktop - Settings window OK/Cancel redesign - Runtime config and secret injection improvements
67 lines
3.5 KiB
JSON
67 lines
3.5 KiB
JSON
{
|
|
"name": "world-monitor",
|
|
"private": true,
|
|
"version": "2.2.0",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"dev:tech": "VITE_VARIANT=tech vite",
|
|
"build": "tsc && vite build",
|
|
"build:full": "VITE_VARIANT=full tsc && VITE_VARIANT=full vite build",
|
|
"build:tech": "VITE_VARIANT=tech tsc && VITE_VARIANT=tech vite build",
|
|
"typecheck": "tsc --noEmit",
|
|
"preview": "vite preview",
|
|
"test:e2e:full": "VITE_VARIANT=full playwright test",
|
|
"test:e2e:tech": "VITE_VARIANT=tech playwright test",
|
|
"test:e2e:runtime": "VITE_VARIANT=full playwright test e2e/runtime-fetch.spec.ts",
|
|
"test:e2e": "npm run test:e2e:runtime && npm run test:e2e:full && npm run test:e2e:tech",
|
|
"test:data": "node --test tests/countries-geojson.test.mjs",
|
|
"test:sidecar": "node --test src-tauri/sidecar/local-api-server.test.mjs api/_cors.test.mjs api/youtube/embed.test.mjs",
|
|
"test:e2e:visual:full": "VITE_VARIANT=full playwright test -g \"matches golden screenshots per layer and zoom\"",
|
|
"test:e2e:visual:tech": "VITE_VARIANT=tech playwright test -g \"matches golden screenshots per layer and zoom\"",
|
|
"test:e2e:visual": "npm run test:e2e:visual:full && npm run test:e2e:visual:tech",
|
|
"test:e2e:visual:update:full": "VITE_VARIANT=full playwright test -g \"matches golden screenshots per layer and zoom\" --update-snapshots",
|
|
"test:e2e:visual:update:tech": "VITE_VARIANT=tech playwright test -g \"matches golden screenshots per layer and zoom\" --update-snapshots",
|
|
"test:e2e:visual:update": "npm run test:e2e:visual:update:full && npm run test:e2e:visual:update:tech",
|
|
"desktop:dev": "VITE_DESKTOP_RUNTIME=1 tauri dev",
|
|
"desktop:build:full": "VITE_VARIANT=full VITE_DESKTOP_RUNTIME=1 tauri build",
|
|
"desktop:build:tech": "VITE_VARIANT=tech VITE_DESKTOP_RUNTIME=1 tauri build --config src-tauri/tauri.tech.conf.json",
|
|
"desktop:package:macos:full": "node scripts/desktop-package.mjs --os macos --variant full",
|
|
"desktop:package:macos:tech": "node scripts/desktop-package.mjs --os macos --variant tech",
|
|
"desktop:package:windows:full": "node scripts/desktop-package.mjs --os windows --variant full",
|
|
"desktop:package:windows:tech": "node scripts/desktop-package.mjs --os windows --variant tech",
|
|
"desktop:package:macos:full:sign": "node scripts/desktop-package.mjs --os macos --variant full --sign",
|
|
"desktop:package:macos:tech:sign": "node scripts/desktop-package.mjs --os macos --variant tech --sign",
|
|
"desktop:package:windows:full:sign": "node scripts/desktop-package.mjs --os windows --variant full --sign",
|
|
"desktop:package:windows:tech:sign": "node scripts/desktop-package.mjs --os windows --variant tech --sign",
|
|
"desktop:package": "node scripts/desktop-package.mjs"
|
|
},
|
|
"devDependencies": {
|
|
"@playwright/test": "^1.52.0",
|
|
"@types/d3": "^7.4.3",
|
|
"@types/maplibre-gl": "^1.13.2",
|
|
"@types/topojson-client": "^3.1.5",
|
|
"@types/topojson-specification": "^1.0.5",
|
|
"typescript": "^5.7.2",
|
|
"vite": "^6.0.7",
|
|
"vite-plugin-pwa": "^1.2.0",
|
|
"ws": "^8.19.0"
|
|
},
|
|
"dependencies": {
|
|
"@deck.gl/aggregation-layers": "^9.2.6",
|
|
"@deck.gl/core": "^9.2.6",
|
|
"@deck.gl/geo-layers": "^9.2.6",
|
|
"@deck.gl/layers": "^9.2.6",
|
|
"@deck.gl/mapbox": "^9.2.6",
|
|
"@upstash/redis": "^1.36.1",
|
|
"@vercel/analytics": "^1.6.1",
|
|
"@xenova/transformers": "^2.17.2",
|
|
"d3": "^7.9.0",
|
|
"deck.gl": "^9.2.6",
|
|
"maplibre-gl": "^5.16.0",
|
|
"onnxruntime-web": "^1.23.2",
|
|
"topojson-client": "^3.1.0",
|
|
"youtubei.js": "^16.0.1"
|
|
}
|
|
}
|