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>
28 lines
899 B
TypeScript
28 lines
899 B
TypeScript
import type Ajv from "../../core"
|
|
import type {AnySchemaObject} from "../../types"
|
|
import * as metaSchema from "./schema.json"
|
|
import * as applicator from "./meta/applicator.json"
|
|
import * as content from "./meta/content.json"
|
|
import * as core from "./meta/core.json"
|
|
import * as format from "./meta/format.json"
|
|
import * as metadata from "./meta/meta-data.json"
|
|
import * as validation from "./meta/validation.json"
|
|
|
|
const META_SUPPORT_DATA = ["/properties"]
|
|
|
|
export default function addMetaSchema2019(this: Ajv, $data?: boolean): Ajv {
|
|
;[
|
|
metaSchema,
|
|
applicator,
|
|
content,
|
|
core,
|
|
with$data(this, format),
|
|
metadata,
|
|
with$data(this, validation),
|
|
].forEach((sch) => this.addMetaSchema(sch, undefined, false))
|
|
return this
|
|
|
|
function with$data(ajv: Ajv, sch: AnySchemaObject): AnySchemaObject {
|
|
return $data ? ajv.$dataMetaSchema(sch, META_SUPPORT_DATA) : sch
|
|
}
|
|
}
|