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

1
pwa/node_modules/.bin/acorn generated vendored Symbolic link
View file

@ -0,0 +1 @@
../acorn/bin/acorn

1
pwa/node_modules/.bin/baseline-browser-mapping generated vendored Symbolic link
View file

@ -0,0 +1 @@
../baseline-browser-mapping/dist/cli.cjs

1
pwa/node_modules/.bin/browserslist generated vendored Symbolic link
View file

@ -0,0 +1 @@
../browserslist/cli.js

1
pwa/node_modules/.bin/ejs generated vendored Symbolic link
View file

@ -0,0 +1 @@
../ejs/bin/cli.js

1
pwa/node_modules/.bin/esbuild generated vendored Symbolic link
View file

@ -0,0 +1 @@
../@esbuild/linux-x64/bin/esbuild

1
pwa/node_modules/.bin/glob generated vendored Symbolic link
View file

@ -0,0 +1 @@
../glob/dist/esm/bin.mjs

1
pwa/node_modules/.bin/jake generated vendored Symbolic link
View file

@ -0,0 +1 @@
../jake/bin/cli.js

1
pwa/node_modules/.bin/jsesc generated vendored Symbolic link
View file

@ -0,0 +1 @@
../jsesc/bin/jsesc

1
pwa/node_modules/.bin/json5 generated vendored Symbolic link
View file

@ -0,0 +1 @@
../json5/lib/cli.js

1
pwa/node_modules/.bin/nanoid generated vendored Symbolic link
View file

@ -0,0 +1 @@
../nanoid/bin/nanoid.cjs

1
pwa/node_modules/.bin/node-which generated vendored Symbolic link
View file

@ -0,0 +1 @@
../which/bin/node-which

1
pwa/node_modules/.bin/parser generated vendored Symbolic link
View file

@ -0,0 +1 @@
../@babel/parser/bin/babel-parser.js

1
pwa/node_modules/.bin/regjsparser generated vendored Symbolic link
View file

@ -0,0 +1 @@
../regjsparser/bin/parser

1
pwa/node_modules/.bin/resolve generated vendored Symbolic link
View file

@ -0,0 +1 @@
../resolve/bin/resolve

1
pwa/node_modules/.bin/rollup generated vendored Symbolic link
View file

@ -0,0 +1 @@
../rollup/dist/bin/rollup

1
pwa/node_modules/.bin/semver generated vendored Symbolic link
View file

@ -0,0 +1 @@
../semver/bin/semver.js

1
pwa/node_modules/.bin/terser generated vendored Symbolic link
View file

@ -0,0 +1 @@
../terser/bin/terser

1
pwa/node_modules/.bin/tsc generated vendored Symbolic link
View file

@ -0,0 +1 @@
../typescript/bin/tsc

1
pwa/node_modules/.bin/tsserver generated vendored Symbolic link
View file

@ -0,0 +1 @@
../typescript/bin/tsserver

1
pwa/node_modules/.bin/tsx generated vendored Symbolic link
View file

@ -0,0 +1 @@
../tsx/dist/cli.mjs

1
pwa/node_modules/.bin/update-browserslist-db generated vendored Symbolic link
View file

@ -0,0 +1 @@
../update-browserslist-db/cli.js

1
pwa/node_modules/.bin/vite generated vendored Symbolic link
View file

@ -0,0 +1 @@
../vite/bin/vite.js

1
pwa/node_modules/.bin/vite-node generated vendored Symbolic link
View file

@ -0,0 +1 @@
../vite-node/vite-node.mjs

1
pwa/node_modules/.bin/vitest generated vendored Symbolic link
View file

@ -0,0 +1 @@
../vitest/vitest.mjs

1
pwa/node_modules/.bin/why-is-node-running generated vendored Symbolic link
View file

@ -0,0 +1 @@
../why-is-node-running/cli.js