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>
35 lines
1.1 KiB
TypeScript
35 lines
1.1 KiB
TypeScript
import { R as RequiredProperty } from '../../types-Cxp8y2TL.js';
|
|
|
|
type RegisterOptions = {
|
|
namespace?: string;
|
|
};
|
|
type Unregister = () => void;
|
|
type ScopedRequire = (id: string, fromFile: string | URL) => any;
|
|
type ScopedResolve = (id: string, fromFile: string | URL, resolveOptions?: {
|
|
paths?: string[] | undefined;
|
|
}) => string;
|
|
type NamespacedUnregister = Unregister & {
|
|
require: ScopedRequire;
|
|
resolve: ScopedResolve;
|
|
unregister: Unregister;
|
|
};
|
|
type Register = {
|
|
(options: RequiredProperty<RegisterOptions, 'namespace'>): NamespacedUnregister;
|
|
(options?: RegisterOptions): Unregister;
|
|
};
|
|
declare const register: Register;
|
|
|
|
declare const tsxRequire: {
|
|
(id: string, fromFile: string | URL): any;
|
|
resolve: {
|
|
(id: string, fromFile: string | URL, options?: {
|
|
paths?: string[] | undefined;
|
|
}): string;
|
|
paths: (request: string) => string[] | null;
|
|
};
|
|
main: NodeJS.Module | undefined;
|
|
extensions: NodeJS.RequireExtensions;
|
|
cache: NodeJS.Dict<NodeJS.Module>;
|
|
};
|
|
|
|
export { register, tsxRequire as require };
|