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>
57 lines
1.9 KiB
TypeScript
57 lines
1.9 KiB
TypeScript
type GeneratedColumn = number;
|
|
type SourcesIndex = number;
|
|
type SourceLine = number;
|
|
type SourceColumn = number;
|
|
type NamesIndex = number;
|
|
type SourceMapSegment = [GeneratedColumn] | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn] | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn, NamesIndex];
|
|
|
|
interface SourceMapV3 {
|
|
file?: string | null;
|
|
names: string[];
|
|
sourceRoot?: string;
|
|
sources: (string | null)[];
|
|
sourcesContent?: (string | null)[];
|
|
version: 3;
|
|
ignoreList?: number[];
|
|
}
|
|
interface EncodedSourceMap extends SourceMapV3 {
|
|
mappings: string;
|
|
}
|
|
interface DecodedSourceMap extends SourceMapV3 {
|
|
mappings: SourceMapSegment[][];
|
|
}
|
|
type XInput = {
|
|
x_google_ignoreList?: SourceMapV3['ignoreList'];
|
|
};
|
|
type EncodedSourceMapXInput = EncodedSourceMap & XInput;
|
|
type DecodedSourceMapXInput = DecodedSourceMap & XInput;
|
|
type SourceMapInput = string | EncodedSourceMapXInput | DecodedSourceMapXInput | TraceMap;
|
|
declare abstract class SourceMap {
|
|
version: SourceMapV3['version'];
|
|
file: SourceMapV3['file'];
|
|
names: SourceMapV3['names'];
|
|
sourceRoot: SourceMapV3['sourceRoot'];
|
|
sources: SourceMapV3['sources'];
|
|
sourcesContent: SourceMapV3['sourcesContent'];
|
|
resolvedSources: SourceMapV3['sources'];
|
|
ignoreList: SourceMapV3['ignoreList'];
|
|
}
|
|
|
|
declare class TraceMap implements SourceMap {
|
|
version: SourceMapV3['version'];
|
|
file: SourceMapV3['file'];
|
|
names: SourceMapV3['names'];
|
|
sourceRoot: SourceMapV3['sourceRoot'];
|
|
sources: SourceMapV3['sources'];
|
|
sourcesContent: SourceMapV3['sourcesContent'];
|
|
ignoreList: SourceMapV3['ignoreList'];
|
|
resolvedSources: string[];
|
|
private _encoded;
|
|
private _decoded;
|
|
private _decodedMemo;
|
|
private _bySources;
|
|
private _bySourceMemos;
|
|
constructor(map: SourceMapInput, mapUrl?: string | null);
|
|
}
|
|
|
|
export type { DecodedSourceMap as D, EncodedSourceMap as E, SourceMapInput as S };
|