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:
parent
46365b713b
commit
e8428de775
12051 changed files with 1799735 additions and 0 deletions
92
pwa/node_modules/leaflet.offline/karma.conf.ts
generated
vendored
Normal file
92
pwa/node_modules/leaflet.offline/karma.conf.ts
generated
vendored
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
const typescript = require('@rollup/plugin-typescript');
|
||||
const { nodeResolve } = require('@rollup/plugin-node-resolve');
|
||||
const commonjs = require('@rollup/plugin-commonjs');
|
||||
const istanbul = require('rollup-plugin-istanbul');
|
||||
|
||||
const extensions = ['.js', '.ts'];
|
||||
|
||||
process.env.CHROME_BIN = require('puppeteer').executablePath()
|
||||
|
||||
module.exports = (config) => {
|
||||
config.set({
|
||||
// base path that will be used to resolve all patterns (eg. files, exclude)
|
||||
basePath: '',
|
||||
|
||||
// frameworks to use
|
||||
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
|
||||
frameworks: ['mocha'],
|
||||
|
||||
// list of files / patterns to load in the browser
|
||||
files: ['test/*.ts'],
|
||||
|
||||
// list of files to exclude
|
||||
exclude: [],
|
||||
|
||||
// preprocess matching files before serving them to the browser
|
||||
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
|
||||
preprocessors: {
|
||||
'test/*.ts': ['rollup'],
|
||||
},
|
||||
rollupPreprocessor: {
|
||||
output: {
|
||||
format: 'iife',
|
||||
name: 'LeafletOffline',
|
||||
sourcemap: 'inline',
|
||||
},
|
||||
plugins: [
|
||||
commonjs(),
|
||||
nodeResolve({ extensions }),
|
||||
typescript({ declaration: false, declarationDir: undefined }),
|
||||
istanbul({ exclude: ['test/*.ts', 'node_modules/**/*'] }),
|
||||
],
|
||||
},
|
||||
|
||||
// test results reporter to use
|
||||
// possible values: 'dots', 'progress'
|
||||
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
|
||||
reporters: ['mocha', 'progress', 'coverage'],
|
||||
|
||||
// web server port
|
||||
port: 9876,
|
||||
|
||||
// enable / disable colors in the output (reporters and logs)
|
||||
colors: true,
|
||||
|
||||
// level of logging
|
||||
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
|
||||
logLevel: config.LOG_INFO,
|
||||
|
||||
// enable / disable watching file and executing tests whenever any file changes
|
||||
autoWatch: true,
|
||||
|
||||
// start these browsers
|
||||
// available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
|
||||
browsers: ['ChromeHeadless','ChromeHeadlessWithoutSandbox'],
|
||||
|
||||
// Continuous Integration mode
|
||||
// if true, Karma captures browsers, runs the tests and exits
|
||||
singleRun: true,
|
||||
|
||||
// Concurrency level
|
||||
// how many browser should be started simultaneous
|
||||
concurrency: Infinity,
|
||||
|
||||
// damn ubuntu snap https://github.com/karma-runner/karma-firefox-launcher/issues/183#issuecomment-1283875784
|
||||
customLaunchers: {
|
||||
ChromeHeadlessWithoutSandbox: {
|
||||
base: 'Chrome',
|
||||
flags: ['--no-sandbox','--headless'],
|
||||
displayName: 'Chrome w/o sandbox'
|
||||
}
|
||||
},
|
||||
coverageReporter: {
|
||||
reporters: [
|
||||
{
|
||||
type: 'html',
|
||||
dir: 'coverage/',
|
||||
},
|
||||
{ type: 'lcov' },
|
||||
],
|
||||
},
|
||||
});
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue