Add progressive web app companion for cross-platform access

Vite + TypeScript PWA that mirrors the Android app's core features:
- Pre-processed shelter data (build-time UTM33N→WGS84 conversion)
- Leaflet map with shelter markers, user location, and offline tiles
- Canvas compass arrow (ported from DirectionArrowView.kt)
- IndexedDB shelter cache with 7-day staleness check
- Service worker with CacheFirst tiles and precached app shell
- i18n for en, nb, nn (ported from Android strings.xml)
- iOS/Android compass handling with low-pass filter
- Respects user map interaction (no auto-snap on pan/zoom)
- Build revision cache-breaker for reliable SW updates

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Ole-Morten Duesund 2026-03-08 17:41:38 +01:00
commit e8428de775
12051 changed files with 1799735 additions and 0 deletions

55
pwa/node_modules/idb/package.json generated vendored Normal file
View file

@ -0,0 +1,55 @@
{
"name": "idb",
"version": "8.0.3",
"description": "A small wrapper that makes IndexedDB usable",
"main": "./build/index.cjs",
"module": "./build/index.js",
"types": "./build/index.d.ts",
"exports": {
".": {
"types": "./build/index.d.ts",
"module": "./build/index.js",
"import": "./build/index.js",
"default": "./build/index.cjs"
},
"./build/*": "./build/*",
"./package.json": "./package.json"
},
"files": [
"build/**",
"with-*",
"CHANGELOG.md"
],
"type": "module",
"repository": {
"type": "git",
"url": "git://github.com/jakearchibald/idb.git"
},
"author": "Jake Archibald",
"license": "ISC",
"devDependencies": {
"@rollup/plugin-commonjs": "^28.0.3",
"@rollup/plugin-node-resolve": "^16.0.1",
"@rollup/plugin-terser": "^0.4.4",
"@rollup/plugin-typescript": "^12.1.2",
"@types/chai": "^5.2.2",
"@types/estree": "^1.0.7",
"@types/mocha": "^10.0.10",
"@types/node": "^22.15.14",
"chai": "^5.2.0",
"conditional-type-checks": "^1.0.6",
"cross-env": "^7.0.3",
"del": "^8.0.0",
"filesize": "^10.1.6",
"glob": "^11.0.2",
"mocha": "^11.2.2",
"prettier": "^3.5.3",
"rollup": "^4.40.2",
"tslib": "^2.8.1",
"typescript": "^5.8.3"
},
"scripts": {
"build": "cross-env PRODUCTION=1 rollup -c && node --experimental-modules lib/size-report.mjs",
"dev": "rollup -c --watch"
}
}