signalk-charts-provider-simple 2.8.0 → 2.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/catalog/build-merged-catalog.d.ts +18 -1
- package/dist/catalog/build-merged-catalog.d.ts.map +1 -1
- package/dist/catalog/build-merged-catalog.js +104 -3
- package/dist/catalog/build-merged-catalog.js.map +1 -1
- package/dist/catalog/merged-catalog-schema.d.ts +132 -0
- package/dist/catalog/merged-catalog-schema.d.ts.map +1 -1
- package/dist/catalog/merged-catalog-schema.js +113 -1
- package/dist/catalog/merged-catalog-schema.js.map +1 -1
- package/dist/charts-loader.d.ts.map +1 -1
- package/dist/charts-loader.js +17 -1
- package/dist/charts-loader.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +33 -3
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +13 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/catalog-manager.d.ts +2 -1
- package/dist/utils/catalog-manager.d.ts.map +1 -1
- package/dist/utils/catalog-manager.js +41 -2
- package/dist/utils/catalog-manager.js.map +1 -1
- package/dist/utils/mbtiles-reader.d.ts +32 -0
- package/dist/utils/mbtiles-reader.d.ts.map +1 -1
- package/dist/utils/mbtiles-reader.js +97 -3
- package/dist/utils/mbtiles-reader.js.map +1 -1
- package/dist/utils/online-charts.d.ts.map +1 -1
- package/dist/utils/online-charts.js +1 -9
- package/dist/utils/online-charts.js.map +1 -1
- package/dist/utils/raster-compose.d.ts +34 -0
- package/dist/utils/raster-compose.d.ts.map +1 -0
- package/dist/utils/raster-compose.js +126 -0
- package/dist/utils/raster-compose.js.map +1 -0
- package/dist/utils/raster-overzoom-worker.d.ts +10 -0
- package/dist/utils/raster-overzoom-worker.d.ts.map +1 -0
- package/dist/utils/raster-overzoom-worker.js +15 -0
- package/dist/utils/raster-overzoom-worker.js.map +1 -0
- package/dist/utils/raster-overzoom.d.ts +33 -0
- package/dist/utils/raster-overzoom.d.ts.map +1 -0
- package/dist/utils/raster-overzoom.js +185 -0
- package/dist/utils/raster-overzoom.js.map +1 -0
- package/dist/utils/raster-tile-cache.d.ts +58 -0
- package/dist/utils/raster-tile-cache.d.ts.map +1 -0
- package/dist/utils/raster-tile-cache.js +344 -0
- package/dist/utils/raster-tile-cache.js.map +1 -0
- package/dist/utils/tile-overzoom.d.ts +9 -0
- package/dist/utils/tile-overzoom.d.ts.map +1 -1
- package/dist/utils/tile-overzoom.js +1 -1
- package/dist/utils/tile-overzoom.js.map +1 -1
- package/package.json +5 -2
- package/public/js/chart-catalog.js +31 -3
- package/public/js/chart-catalog.ts +44 -3
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* unit-tested and so an unchanged input always yields the same content hash.
|
|
5
5
|
*/
|
|
6
6
|
import type { ParsedChartcatalogsXml } from './chartcatalogs-xml.js';
|
|
7
|
-
import { type ChartcatalogsIndex, type MergedCatalog, type MergedChartcatalogsCatalog, type OnlineChartsSourceFile } from './merged-catalog-schema.js';
|
|
7
|
+
import { type ChartcatalogsIndex, type MergedCatalog, type MergedChartcatalogsCatalog, type MergedTileset, type OnlineChartsSourceFile, type TilesetFeed } from './merged-catalog-schema.js';
|
|
8
8
|
export declare const CHARTCATALOGS_HOMEPAGE = "https://chartcatalogs.github.io/";
|
|
9
9
|
export declare const CHARTCATALOGS_ISSUES = "https://github.com/chartcatalogs/catalogs/issues";
|
|
10
10
|
export interface ChartcatalogsFile {
|
|
@@ -12,6 +12,14 @@ export interface ChartcatalogsFile {
|
|
|
12
12
|
/** `null` when the file exists upstream but could not be parsed. */
|
|
13
13
|
parsed: ParsedChartcatalogsXml | null;
|
|
14
14
|
}
|
|
15
|
+
/** A tileset feed as listed in the repo, with the document fetched for it. */
|
|
16
|
+
export interface TilesetFeedInput {
|
|
17
|
+
feed: TilesetFeed;
|
|
18
|
+
/** The parsed feed document, or `null` when it could not be fetched or parsed. */
|
|
19
|
+
document: unknown;
|
|
20
|
+
/** File sizes in bytes by URL, where the publisher's server reported them. */
|
|
21
|
+
sizes?: Map<string, number>;
|
|
22
|
+
}
|
|
15
23
|
export interface BuildInputs {
|
|
16
24
|
chartcatalogs: ChartcatalogsFile[];
|
|
17
25
|
chartcatalogsCommit?: string;
|
|
@@ -21,6 +29,9 @@ export interface BuildInputs {
|
|
|
21
29
|
repo: string;
|
|
22
30
|
/** chartcatalogs entries from the catalog currently published, by file. */
|
|
23
31
|
previous?: Map<string, MergedChartcatalogsCatalog>;
|
|
32
|
+
tilesetFeeds?: TilesetFeedInput[];
|
|
33
|
+
/** Tilesets in the catalog currently published, for carrying a failed feed forward. */
|
|
34
|
+
previousTilesets?: MergedTileset[];
|
|
24
35
|
now: Date;
|
|
25
36
|
}
|
|
26
37
|
export interface BuildResult {
|
|
@@ -41,6 +52,10 @@ export interface BuildResult {
|
|
|
41
52
|
* guard tolerates a few, so each one is reported.
|
|
42
53
|
*/
|
|
43
54
|
removedUpstream: string[];
|
|
55
|
+
/** Feeds that could not be read, whose published regions were kept. */
|
|
56
|
+
carriedForwardFeeds: string[];
|
|
57
|
+
/** Feed regions left out, each with the reason. */
|
|
58
|
+
skippedTilesets: string[];
|
|
44
59
|
}
|
|
45
60
|
/**
|
|
46
61
|
* Hash of what a user would actually see. chartcatalogs re-commits every
|
|
@@ -57,6 +72,8 @@ export interface PublishedState {
|
|
|
57
72
|
chartCount: number;
|
|
58
73
|
/** chartcatalogs entries that still validate, for carrying forward. */
|
|
59
74
|
chartcatalogs: Map<string, MergedChartcatalogsCatalog>;
|
|
75
|
+
/** Tilesets that still validate, for carrying a failed feed forward. */
|
|
76
|
+
tilesets: MergedTileset[];
|
|
60
77
|
/** The published `catalog.schema.json` text, or null if absent. */
|
|
61
78
|
schemaText: string | null;
|
|
62
79
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-merged-catalog.d.ts","sourceRoot":"","sources":["../../src/catalog/build-merged-catalog.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,
|
|
1
|
+
{"version":3,"file":"build-merged-catalog.d.ts","sourceRoot":"","sources":["../../src/catalog/build-merged-catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { createHash } from 'node:crypto';
|
|
7
7
|
import { Value } from '@sinclair/typebox/value';
|
|
8
|
-
import { MERGED_CATALOG_SCHEMA_VERSION, MergedCatalogSchema, MergedChartcatalogsCatalogSchema, checkChartcatalogsIndex, checkOnlineChartEntry, formatForChartType, schemaErrors } from './merged-catalog-schema.js';
|
|
8
|
+
import { MERGED_CATALOG_SCHEMA_VERSION, MergedCatalogSchema, MergedChartcatalogsCatalogSchema, MergedTilesetSchema, TilesetFeedDocumentSchema, TilesetFeedFileSchema, checkChartcatalogsIndex, checkOnlineChartEntry, formatForChartType, schemaErrors } from './merged-catalog-schema.js';
|
|
9
9
|
export const CHARTCATALOGS_HOMEPAGE = 'https://chartcatalogs.github.io/';
|
|
10
10
|
export const CHARTCATALOGS_ISSUES = 'https://github.com/chartcatalogs/catalogs/issues';
|
|
11
11
|
function compareStrings(a, b) {
|
|
@@ -50,6 +50,99 @@ function mergeOnlineCharts(online) {
|
|
|
50
50
|
format: formatForChartType(entry.chart.type)
|
|
51
51
|
}));
|
|
52
52
|
}
|
|
53
|
+
function isIsoTime(value) {
|
|
54
|
+
return value !== undefined && /^\d{4}-\d{2}-\d{2}T/.test(value) && !isNaN(Date.parse(value));
|
|
55
|
+
}
|
|
56
|
+
/** Why a feed region can't be published, or null when it can. */
|
|
57
|
+
function regionProblem(raw, updated, seen) {
|
|
58
|
+
if (seen.has(raw.id)) {
|
|
59
|
+
return 'duplicate id';
|
|
60
|
+
}
|
|
61
|
+
if (raw.bounds[1] >= raw.bounds[3]) {
|
|
62
|
+
return 'bounds south must be below north';
|
|
63
|
+
}
|
|
64
|
+
if (raw.minzoom !== undefined && raw.maxzoom !== undefined && raw.minzoom > raw.maxzoom) {
|
|
65
|
+
return 'minzoom is greater than maxzoom';
|
|
66
|
+
}
|
|
67
|
+
if (!isIsoTime(updated)) {
|
|
68
|
+
return 'no date to tell an update by';
|
|
69
|
+
}
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* The regions of every tileset feed. A feed that cannot be read, or that
|
|
74
|
+
* suddenly lists nothing usable, keeps its published regions: one failed
|
|
75
|
+
* fetch must not remove a chart from every boat's catalog, or turn off the
|
|
76
|
+
* update notice for boats that installed it.
|
|
77
|
+
*/
|
|
78
|
+
function mergeTilesets(inputs, previous, repo, carriedForwardFeeds, skippedTilesets) {
|
|
79
|
+
const ids = new Set();
|
|
80
|
+
for (const { feed } of inputs) {
|
|
81
|
+
if (ids.has(feed.id)) {
|
|
82
|
+
throw new Error(`Invalid tileset feeds:\n ${feed.id}: duplicate id`);
|
|
83
|
+
}
|
|
84
|
+
ids.add(feed.id);
|
|
85
|
+
}
|
|
86
|
+
const tilesets = [];
|
|
87
|
+
for (const { feed, document, sizes } of inputs) {
|
|
88
|
+
const regions = [];
|
|
89
|
+
if (Value.Check(TilesetFeedDocumentSchema, document)) {
|
|
90
|
+
const seen = new Set();
|
|
91
|
+
for (const raw of document.files) {
|
|
92
|
+
const rawId = raw?.id;
|
|
93
|
+
const label = `${feed.id} ${typeof rawId === 'string' ? rawId : '<no id>'}`;
|
|
94
|
+
if (!Value.Check(TilesetFeedFileSchema, raw)) {
|
|
95
|
+
skippedTilesets.push(`${label}: ${schemaErrors(TilesetFeedFileSchema, raw)[0] ?? 'invalid'}`);
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
const updated = isIsoTime(raw.newestArrival) ? raw.newestArrival : document.generated;
|
|
99
|
+
const problem = regionProblem(raw, updated, seen);
|
|
100
|
+
if (problem !== null || !isIsoTime(updated)) {
|
|
101
|
+
skippedTilesets.push(`${label}: ${problem ?? 'invalid'}`);
|
|
102
|
+
continue;
|
|
103
|
+
}
|
|
104
|
+
seen.add(raw.id);
|
|
105
|
+
const size = sizes?.get(raw.url);
|
|
106
|
+
regions.push({
|
|
107
|
+
id: `${feed.id}-${raw.id}`,
|
|
108
|
+
feed: feed.id,
|
|
109
|
+
name: raw.name,
|
|
110
|
+
description: feed.description,
|
|
111
|
+
use: 'download',
|
|
112
|
+
category: feed.category,
|
|
113
|
+
format: 'mbtiles',
|
|
114
|
+
bbox: raw.bounds,
|
|
115
|
+
provider: feed.provider,
|
|
116
|
+
attribution: feed.attribution,
|
|
117
|
+
license: feed.license,
|
|
118
|
+
licenseUrl: feed.licenseUrl,
|
|
119
|
+
homepage: feed.homepage,
|
|
120
|
+
issues: feed.issues ?? `https://github.com/${repo}/issues/new?template=catalog-problem.yml`,
|
|
121
|
+
...(feed.notForNavigation !== undefined
|
|
122
|
+
? { notForNavigation: feed.notForNavigation }
|
|
123
|
+
: {}),
|
|
124
|
+
folder: feed.folder,
|
|
125
|
+
file: {
|
|
126
|
+
url: raw.url,
|
|
127
|
+
updated,
|
|
128
|
+
...(size !== undefined ? { size } : {}),
|
|
129
|
+
...(raw.minzoom !== undefined ? { minzoom: raw.minzoom } : {}),
|
|
130
|
+
...(raw.maxzoom !== undefined ? { maxzoom: raw.maxzoom } : {})
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
if (regions.length === 0) {
|
|
136
|
+
const kept = previous.filter((t) => t.feed === feed.id);
|
|
137
|
+
if (kept.length > 0) {
|
|
138
|
+
carriedForwardFeeds.push(feed.id);
|
|
139
|
+
}
|
|
140
|
+
regions.push(...kept);
|
|
141
|
+
}
|
|
142
|
+
tilesets.push(...regions);
|
|
143
|
+
}
|
|
144
|
+
return tilesets.sort((a, b) => compareStrings(a.id, b.id));
|
|
145
|
+
}
|
|
53
146
|
/** JSON with object keys sorted, so key order never changes the hash. */
|
|
54
147
|
function canonicalJson(value) {
|
|
55
148
|
if (Array.isArray(value)) {
|
|
@@ -109,6 +202,9 @@ export function buildMergedCatalog(inputs) {
|
|
|
109
202
|
}
|
|
110
203
|
chartcatalogs.push(mergeChartcatalogsFile(file, parsed, inputs.index, droppedCharts));
|
|
111
204
|
}
|
|
205
|
+
const carriedForwardFeeds = [];
|
|
206
|
+
const skippedTilesets = [];
|
|
207
|
+
const tilesets = mergeTilesets(inputs.tilesetFeeds ?? [], inputs.previousTilesets ?? [], inputs.repo, carriedForwardFeeds, skippedTilesets);
|
|
112
208
|
const fileNames = new Set(files.map((f) => f.file));
|
|
113
209
|
const withoutHash = {
|
|
114
210
|
schemaVersion: MERGED_CATALOG_SCHEMA_VERSION,
|
|
@@ -126,7 +222,8 @@ export function buildMergedCatalog(inputs) {
|
|
|
126
222
|
}
|
|
127
223
|
},
|
|
128
224
|
chartcatalogs,
|
|
129
|
-
online: mergeOnlineCharts(inputs.online)
|
|
225
|
+
online: mergeOnlineCharts(inputs.online),
|
|
226
|
+
tilesets
|
|
130
227
|
};
|
|
131
228
|
const catalog = { ...withoutHash, contentHash: computeContentHash(withoutHash) };
|
|
132
229
|
if (!Value.Check(MergedCatalogSchema, catalog)) {
|
|
@@ -141,7 +238,9 @@ export function buildMergedCatalog(inputs) {
|
|
|
141
238
|
droppedCharts,
|
|
142
239
|
removedUpstream: [...(inputs.previous?.keys() ?? [])]
|
|
143
240
|
.filter((f) => !fileNames.has(f))
|
|
144
|
-
.sort(compareStrings)
|
|
241
|
+
.sort(compareStrings),
|
|
242
|
+
carriedForwardFeeds,
|
|
243
|
+
skippedTilesets
|
|
145
244
|
};
|
|
146
245
|
}
|
|
147
246
|
/**
|
|
@@ -161,11 +260,13 @@ export function readPublishedState(raw, schemaText) {
|
|
|
161
260
|
chartcatalogs.set(entry.file, entry);
|
|
162
261
|
}
|
|
163
262
|
}
|
|
263
|
+
const tilesets = (Array.isArray(obj.tilesets) ? obj.tilesets : []).filter((t) => Value.Check(MergedTilesetSchema, t));
|
|
164
264
|
return {
|
|
165
265
|
contentHash: typeof obj.contentHash === 'string' ? obj.contentHash : null,
|
|
166
266
|
catalogCount: rawCatalogs.length,
|
|
167
267
|
chartCount,
|
|
168
268
|
chartcatalogs,
|
|
269
|
+
tilesets,
|
|
169
270
|
schemaText
|
|
170
271
|
};
|
|
171
272
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-merged-catalog.js","sourceRoot":"","sources":["../../src/catalog/build-merged-catalog.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"build-merged-catalog.js","sourceRoot":"","sources":["../../src/catalog/build-merged-catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -121,6 +121,60 @@ export declare const ChartcatalogsIndexSchema: import("@sinclair/typebox").TReco
|
|
|
121
121
|
regions: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
|
|
122
122
|
bbox: import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNumber]>;
|
|
123
123
|
}>>;
|
|
124
|
+
/**
|
|
125
|
+
* One feed of ready-made regional MBTiles, as maintained in
|
|
126
|
+
* `catalog/tileset-feeds.json`. The feed itself (its `url`) lists the
|
|
127
|
+
* regions and their files; this entry carries what a boater is told about
|
|
128
|
+
* all of them, so a feed cannot reword its own warnings.
|
|
129
|
+
*/
|
|
130
|
+
export declare const TilesetFeedSchema: import("@sinclair/typebox").TObject<{
|
|
131
|
+
id: import("@sinclair/typebox").TString;
|
|
132
|
+
url: import("@sinclair/typebox").TString;
|
|
133
|
+
category: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"navigation">, import("@sinclair/typebox").TLiteral<"weather">, import("@sinclair/typebox").TLiteral<"depth">, import("@sinclair/typebox").TLiteral<"basemap">, import("@sinclair/typebox").TLiteral<"overlay">]>;
|
|
134
|
+
description: import("@sinclair/typebox").TString;
|
|
135
|
+
provider: import("@sinclair/typebox").TString;
|
|
136
|
+
attribution: import("@sinclair/typebox").TString;
|
|
137
|
+
license: import("@sinclair/typebox").TString;
|
|
138
|
+
licenseUrl: import("@sinclair/typebox").TString;
|
|
139
|
+
homepage: import("@sinclair/typebox").TString;
|
|
140
|
+
issues: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
141
|
+
notForNavigation: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
|
|
142
|
+
folder: import("@sinclair/typebox").TString;
|
|
143
|
+
}>;
|
|
144
|
+
export declare const TilesetFeedsSourceFileSchema: import("@sinclair/typebox").TObject<{
|
|
145
|
+
feeds: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
146
|
+
id: import("@sinclair/typebox").TString;
|
|
147
|
+
url: import("@sinclair/typebox").TString;
|
|
148
|
+
category: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"navigation">, import("@sinclair/typebox").TLiteral<"weather">, import("@sinclair/typebox").TLiteral<"depth">, import("@sinclair/typebox").TLiteral<"basemap">, import("@sinclair/typebox").TLiteral<"overlay">]>;
|
|
149
|
+
description: import("@sinclair/typebox").TString;
|
|
150
|
+
provider: import("@sinclair/typebox").TString;
|
|
151
|
+
attribution: import("@sinclair/typebox").TString;
|
|
152
|
+
license: import("@sinclair/typebox").TString;
|
|
153
|
+
licenseUrl: import("@sinclair/typebox").TString;
|
|
154
|
+
homepage: import("@sinclair/typebox").TString;
|
|
155
|
+
issues: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
156
|
+
notForNavigation: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
|
|
157
|
+
folder: import("@sinclair/typebox").TString;
|
|
158
|
+
}>>;
|
|
159
|
+
}>;
|
|
160
|
+
/**
|
|
161
|
+
* One region in a feed document, as the feed's publisher writes it. Read
|
|
162
|
+
* tolerantly: a region this build cannot use is skipped and reported, never
|
|
163
|
+
* the whole feed.
|
|
164
|
+
*/
|
|
165
|
+
export declare const TilesetFeedFileSchema: import("@sinclair/typebox").TObject<{
|
|
166
|
+
id: import("@sinclair/typebox").TString;
|
|
167
|
+
name: import("@sinclair/typebox").TString;
|
|
168
|
+
bounds: import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNumber]>;
|
|
169
|
+
url: import("@sinclair/typebox").TString;
|
|
170
|
+
minzoom: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
|
|
171
|
+
maxzoom: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
|
|
172
|
+
newestArrival: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
173
|
+
}>;
|
|
174
|
+
export declare const TilesetFeedDocumentSchema: import("@sinclair/typebox").TObject<{
|
|
175
|
+
generated: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
176
|
+
files: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnknown>;
|
|
177
|
+
}>;
|
|
124
178
|
export declare const MergedCatalogChartSchema: import("@sinclair/typebox").TObject<{
|
|
125
179
|
number: import("@sinclair/typebox").TString;
|
|
126
180
|
title: import("@sinclair/typebox").TString;
|
|
@@ -184,6 +238,32 @@ export declare const MergedOnlineChartSchema: import("@sinclair/typebox").TObjec
|
|
|
184
238
|
capabilitiesUrl: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
185
239
|
}>>;
|
|
186
240
|
}>;
|
|
241
|
+
/** One region of a tileset feed: a single MBTiles file that installs as-is. */
|
|
242
|
+
export declare const MergedTilesetSchema: import("@sinclair/typebox").TObject<{
|
|
243
|
+
id: import("@sinclair/typebox").TString;
|
|
244
|
+
feed: import("@sinclair/typebox").TString;
|
|
245
|
+
name: import("@sinclair/typebox").TString;
|
|
246
|
+
description: import("@sinclair/typebox").TString;
|
|
247
|
+
use: import("@sinclair/typebox").TLiteral<"download">;
|
|
248
|
+
category: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"navigation">, import("@sinclair/typebox").TLiteral<"weather">, import("@sinclair/typebox").TLiteral<"depth">, import("@sinclair/typebox").TLiteral<"basemap">, import("@sinclair/typebox").TLiteral<"overlay">]>;
|
|
249
|
+
format: import("@sinclair/typebox").TLiteral<"mbtiles">;
|
|
250
|
+
bbox: import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNumber]>;
|
|
251
|
+
provider: import("@sinclair/typebox").TString;
|
|
252
|
+
attribution: import("@sinclair/typebox").TString;
|
|
253
|
+
license: import("@sinclair/typebox").TString;
|
|
254
|
+
licenseUrl: import("@sinclair/typebox").TString;
|
|
255
|
+
homepage: import("@sinclair/typebox").TString;
|
|
256
|
+
issues: import("@sinclair/typebox").TString;
|
|
257
|
+
notForNavigation: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
|
|
258
|
+
folder: import("@sinclair/typebox").TString;
|
|
259
|
+
file: import("@sinclair/typebox").TObject<{
|
|
260
|
+
url: import("@sinclair/typebox").TString;
|
|
261
|
+
updated: import("@sinclair/typebox").TString;
|
|
262
|
+
size: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
|
|
263
|
+
minzoom: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
|
|
264
|
+
maxzoom: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
|
|
265
|
+
}>;
|
|
266
|
+
}>;
|
|
187
267
|
export declare const MergedCatalogSchema: import("@sinclair/typebox").TObject<{
|
|
188
268
|
schemaVersion: import("@sinclair/typebox").TLiteral<1>;
|
|
189
269
|
generatedAt: import("@sinclair/typebox").TString;
|
|
@@ -254,6 +334,31 @@ export declare const MergedCatalogSchema: import("@sinclair/typebox").TObject<{
|
|
|
254
334
|
capabilitiesUrl: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
255
335
|
}>>;
|
|
256
336
|
}>>;
|
|
337
|
+
tilesets: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
338
|
+
id: import("@sinclair/typebox").TString;
|
|
339
|
+
feed: import("@sinclair/typebox").TString;
|
|
340
|
+
name: import("@sinclair/typebox").TString;
|
|
341
|
+
description: import("@sinclair/typebox").TString;
|
|
342
|
+
use: import("@sinclair/typebox").TLiteral<"download">;
|
|
343
|
+
category: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"navigation">, import("@sinclair/typebox").TLiteral<"weather">, import("@sinclair/typebox").TLiteral<"depth">, import("@sinclair/typebox").TLiteral<"basemap">, import("@sinclair/typebox").TLiteral<"overlay">]>;
|
|
344
|
+
format: import("@sinclair/typebox").TLiteral<"mbtiles">;
|
|
345
|
+
bbox: import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNumber]>;
|
|
346
|
+
provider: import("@sinclair/typebox").TString;
|
|
347
|
+
attribution: import("@sinclair/typebox").TString;
|
|
348
|
+
license: import("@sinclair/typebox").TString;
|
|
349
|
+
licenseUrl: import("@sinclair/typebox").TString;
|
|
350
|
+
homepage: import("@sinclair/typebox").TString;
|
|
351
|
+
issues: import("@sinclair/typebox").TString;
|
|
352
|
+
notForNavigation: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
|
|
353
|
+
folder: import("@sinclair/typebox").TString;
|
|
354
|
+
file: import("@sinclair/typebox").TObject<{
|
|
355
|
+
url: import("@sinclair/typebox").TString;
|
|
356
|
+
updated: import("@sinclair/typebox").TString;
|
|
357
|
+
size: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
|
|
358
|
+
minzoom: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
|
|
359
|
+
maxzoom: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
|
|
360
|
+
}>;
|
|
361
|
+
}>>>;
|
|
257
362
|
}>;
|
|
258
363
|
/**
|
|
259
364
|
* What a consumer of the published catalog needs from an online chart entry
|
|
@@ -291,6 +396,28 @@ export declare const OnlineChartReadSchema: import("@sinclair/typebox").TObject<
|
|
|
291
396
|
capabilitiesUrl: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
292
397
|
}>>;
|
|
293
398
|
}>;
|
|
399
|
+
/**
|
|
400
|
+
* What a consumer needs from a tileset entry to list, download and update
|
|
401
|
+
* it. The file URL must name an MBTiles file, because a consumer installs it
|
|
402
|
+
* as-is under the entry's id.
|
|
403
|
+
*/
|
|
404
|
+
export declare const TilesetReadSchema: import("@sinclair/typebox").TObject<{
|
|
405
|
+
id: import("@sinclair/typebox").TString;
|
|
406
|
+
name: import("@sinclair/typebox").TString;
|
|
407
|
+
description: import("@sinclair/typebox").TString;
|
|
408
|
+
category: import("@sinclair/typebox").TString;
|
|
409
|
+
bbox: import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNumber]>;
|
|
410
|
+
provider: import("@sinclair/typebox").TString;
|
|
411
|
+
license: import("@sinclair/typebox").TString;
|
|
412
|
+
licenseUrl: import("@sinclair/typebox").TString;
|
|
413
|
+
notForNavigation: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
|
|
414
|
+
folder: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
415
|
+
file: import("@sinclair/typebox").TObject<{
|
|
416
|
+
url: import("@sinclair/typebox").TString;
|
|
417
|
+
updated: import("@sinclair/typebox").TString;
|
|
418
|
+
size: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
|
|
419
|
+
}>;
|
|
420
|
+
}>;
|
|
294
421
|
export type ChartUse = Static<typeof ChartUseSchema>;
|
|
295
422
|
export type ChartCategory = Static<typeof ChartCategorySchema>;
|
|
296
423
|
export type ChartFormat = Static<typeof ChartFormatSchema>;
|
|
@@ -305,6 +432,11 @@ export type MergedChartcatalogsCatalog = Static<typeof MergedChartcatalogsCatalo
|
|
|
305
432
|
export type MergedOnlineChart = Static<typeof MergedOnlineChartSchema>;
|
|
306
433
|
export type MergedCatalog = Static<typeof MergedCatalogSchema>;
|
|
307
434
|
export type OnlineCatalogChart = Static<typeof OnlineChartReadSchema>;
|
|
435
|
+
export type TilesetFeed = Static<typeof TilesetFeedSchema>;
|
|
436
|
+
export type TilesetFeedsSourceFile = Static<typeof TilesetFeedsSourceFileSchema>;
|
|
437
|
+
export type TilesetFeedFile = Static<typeof TilesetFeedFileSchema>;
|
|
438
|
+
export type MergedTileset = Static<typeof MergedTilesetSchema>;
|
|
439
|
+
export type TilesetCatalogEntry = Static<typeof TilesetReadSchema>;
|
|
308
440
|
/** The published JSON Schema document, with the root identifiers it needs. */
|
|
309
441
|
export declare function publishedJsonSchema(id: string): Record<string, unknown>;
|
|
310
442
|
/** The Type-filter facet for an online chart's resource type. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merged-catalog-schema.d.ts","sourceRoot":"","sources":["../../src/catalog/merged-catalog-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAQ,KAAK,MAAM,EAAE,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAGpE,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAI/C,eAAO,MAAM,cAAc,wIAGzB,CAAC;AAEH,eAAO,MAAM,mBAAmB,4RAY/B,CAAC;AAEF,eAAO,MAAM,iBAAiB,gaAS5B,CAAC;AAiBH,eAAO,MAAM,UAAU,0LAAe,CAAC;AAEvC,eAAO,MAAM,gBAAgB,yEAG3B,CAAC;AAQH,+EAA+E;AAC/E,eAAO,MAAM,qBAAqB,4RAMhC,CAAC;AAyHH,eAAO,MAAM,uBAAuB;;;;;;;;EAA8C,CAAC;AACnF,eAAO,MAAM,yBAAyB;;;;;EAAgD,CAAC;AAEvF,+EAA+E;AAC/E,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGlC,CAAC;AAEF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGxC,CAAC;AAUF;;;;GAIG;AACH,eAAO,MAAM,6BAA6B;;;;;;EAA+C,CAAC;AAE1F,eAAO,MAAM,wBAAwB;;;;;;GAGpC,CAAC;
|
|
1
|
+
{"version":3,"file":"merged-catalog-schema.d.ts","sourceRoot":"","sources":["../../src/catalog/merged-catalog-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -172,6 +172,61 @@ const chartcatalogsFacetProps = {
|
|
|
172
172
|
*/
|
|
173
173
|
export const ChartcatalogsIndexEntrySchema = Type.Object(chartcatalogsFacetProps, STRICT);
|
|
174
174
|
export const ChartcatalogsIndexSchema = Type.Record(Type.String({ pattern: '^[A-Za-z0-9_]+_Catalog\\.xml$' }), ChartcatalogsIndexEntrySchema);
|
|
175
|
+
/**
|
|
176
|
+
* One feed of ready-made regional MBTiles, as maintained in
|
|
177
|
+
* `catalog/tileset-feeds.json`. The feed itself (its `url`) lists the
|
|
178
|
+
* regions and their files; this entry carries what a boater is told about
|
|
179
|
+
* all of them, so a feed cannot reword its own warnings.
|
|
180
|
+
*/
|
|
181
|
+
export const TilesetFeedSchema = Type.Object({
|
|
182
|
+
id: Type.String({
|
|
183
|
+
pattern: '^[a-z0-9]+(-[a-z0-9]+)*$',
|
|
184
|
+
description: 'Permanent feed identifier, prefixed to each region id. Installed charts are tracked by those ids, so never change it.'
|
|
185
|
+
}),
|
|
186
|
+
url: Type.String({
|
|
187
|
+
pattern: '^https://',
|
|
188
|
+
description: 'The feed document listing the regions and their MBTiles files.'
|
|
189
|
+
}),
|
|
190
|
+
category: ChartCategorySchema,
|
|
191
|
+
description: Type.String({
|
|
192
|
+
minLength: 1,
|
|
193
|
+
description: 'One or two plain sentences for a boater, shown with every region of the feed: what the data is and how far to trust it.'
|
|
194
|
+
}),
|
|
195
|
+
provider: Type.String({ minLength: 1 }),
|
|
196
|
+
attribution: Type.String({ minLength: 1 }),
|
|
197
|
+
license: Type.String({ minLength: 1 }),
|
|
198
|
+
licenseUrl: Type.String({ pattern: '^https://' }),
|
|
199
|
+
homepage: Type.String({ pattern: '^https://' }),
|
|
200
|
+
issues: Type.Optional(Type.String({
|
|
201
|
+
pattern: '^https://',
|
|
202
|
+
description: "Where boaters report a problem with the data. Defaults to this repository's catalog problem form."
|
|
203
|
+
})),
|
|
204
|
+
notForNavigation: Type.Optional(Type.Boolean()),
|
|
205
|
+
folder: Type.String({
|
|
206
|
+
minLength: 1,
|
|
207
|
+
pattern: '^[^/\\\\.][^/\\\\]*$',
|
|
208
|
+
description: 'Chart folder the Chart Catalog suggests for every region, so the whole feed can be switched off together.'
|
|
209
|
+
})
|
|
210
|
+
}, STRICT);
|
|
211
|
+
export const TilesetFeedsSourceFileSchema = Type.Object({ feeds: Type.Array(TilesetFeedSchema) }, STRICT);
|
|
212
|
+
/**
|
|
213
|
+
* One region in a feed document, as the feed's publisher writes it. Read
|
|
214
|
+
* tolerantly: a region this build cannot use is skipped and reported, never
|
|
215
|
+
* the whole feed.
|
|
216
|
+
*/
|
|
217
|
+
export const TilesetFeedFileSchema = Type.Object({
|
|
218
|
+
id: Type.String({ pattern: '^[a-z0-9]+(-[a-z0-9]+)*$' }),
|
|
219
|
+
name: Type.String({ minLength: 1 }),
|
|
220
|
+
bounds: BboxSchema,
|
|
221
|
+
url: Type.String({ pattern: '^https://[^?#]+\\.mbtiles$' }),
|
|
222
|
+
minzoom: Type.Optional(Type.Integer({ minimum: 0, maximum: 24 })),
|
|
223
|
+
maxzoom: Type.Optional(Type.Integer({ minimum: 0, maximum: 24 })),
|
|
224
|
+
newestArrival: Type.Optional(Type.String())
|
|
225
|
+
});
|
|
226
|
+
export const TilesetFeedDocumentSchema = Type.Object({
|
|
227
|
+
generated: Type.Optional(Type.String()),
|
|
228
|
+
files: Type.Array(Type.Unknown())
|
|
229
|
+
});
|
|
175
230
|
// ---- Published schemas (tolerant) ----
|
|
176
231
|
export const MergedCatalogChartSchema = Type.Object({
|
|
177
232
|
number: Type.String({ minLength: 1 }),
|
|
@@ -206,6 +261,37 @@ export const MergedOnlineChartSchema = Type.Object({
|
|
|
206
261
|
use: Type.Literal('stream'),
|
|
207
262
|
format: ChartFormatSchema
|
|
208
263
|
});
|
|
264
|
+
/** One region of a tileset feed: a single MBTiles file that installs as-is. */
|
|
265
|
+
export const MergedTilesetSchema = Type.Object({
|
|
266
|
+
id: Type.String({
|
|
267
|
+
pattern: '^[a-z0-9]+(-[a-z0-9]+)*$',
|
|
268
|
+
description: 'Permanent identifier, `<feed>-<region>`. It is also the installed file name, so never change or reuse one.'
|
|
269
|
+
}),
|
|
270
|
+
feed: Type.String({ minLength: 1 }),
|
|
271
|
+
name: Type.String({ minLength: 1 }),
|
|
272
|
+
description: Type.String({ minLength: 1 }),
|
|
273
|
+
use: Type.Literal('download'),
|
|
274
|
+
category: ChartCategorySchema,
|
|
275
|
+
format: Type.Literal('mbtiles'),
|
|
276
|
+
bbox: bboxSchema('The area the file covers.'),
|
|
277
|
+
provider: Type.String({ minLength: 1 }),
|
|
278
|
+
attribution: Type.String({ minLength: 1 }),
|
|
279
|
+
license: Type.String({ minLength: 1 }),
|
|
280
|
+
licenseUrl: HttpsUrl,
|
|
281
|
+
homepage: HttpsUrl,
|
|
282
|
+
issues: HttpsUrl,
|
|
283
|
+
notForNavigation: Type.Optional(Type.Boolean()),
|
|
284
|
+
folder: Type.String({ minLength: 1 }),
|
|
285
|
+
file: Type.Object({
|
|
286
|
+
url: HttpsUrl,
|
|
287
|
+
updated: Type.String({
|
|
288
|
+
description: 'ISO 8601 time of the newest data in the file. A later value than the one installed means an update is available.'
|
|
289
|
+
}),
|
|
290
|
+
size: Type.Optional(Type.Integer({ minimum: 0, description: 'File size in bytes.' })),
|
|
291
|
+
minzoom: Type.Optional(Type.Integer({ minimum: 0, maximum: 24 })),
|
|
292
|
+
maxzoom: Type.Optional(Type.Integer({ minimum: 0, maximum: 24 }))
|
|
293
|
+
})
|
|
294
|
+
});
|
|
209
295
|
export const MergedCatalogSchema = Type.Object({
|
|
210
296
|
schemaVersion: Type.Literal(MERGED_CATALOG_SCHEMA_VERSION, {
|
|
211
297
|
description: 'Bumped only for breaking changes; additive changes keep the same version.'
|
|
@@ -230,7 +316,11 @@ export const MergedCatalogSchema = Type.Object({
|
|
|
230
316
|
})
|
|
231
317
|
}),
|
|
232
318
|
chartcatalogs: Type.Array(MergedChartcatalogsCatalogSchema),
|
|
233
|
-
online: Type.Array(MergedOnlineChartSchema)
|
|
319
|
+
online: Type.Array(MergedOnlineChartSchema),
|
|
320
|
+
// Optional so catalogs published before it existed still validate.
|
|
321
|
+
tilesets: Type.Optional(Type.Array(MergedTilesetSchema, {
|
|
322
|
+
description: 'Ready-made regional MBTiles from the feeds this repository lists, each installed with a single download and used offline.'
|
|
323
|
+
}))
|
|
234
324
|
}, {
|
|
235
325
|
title: 'Signal K merged chart catalog',
|
|
236
326
|
description: 'Downloadable charts from chartcatalogs.github.io merged with curated online charts. Consumers should ignore unknown fields and validate entries individually, skipping entries they cannot interpret.'
|
|
@@ -274,6 +364,28 @@ export const OnlineChartReadSchema = Type.Object({
|
|
|
274
364
|
capabilitiesUrl: Type.Optional(HttpsUrl)
|
|
275
365
|
}))
|
|
276
366
|
});
|
|
367
|
+
/**
|
|
368
|
+
* What a consumer needs from a tileset entry to list, download and update
|
|
369
|
+
* it. The file URL must name an MBTiles file, because a consumer installs it
|
|
370
|
+
* as-is under the entry's id.
|
|
371
|
+
*/
|
|
372
|
+
export const TilesetReadSchema = Type.Object({
|
|
373
|
+
id: Type.String({ pattern: '^[a-z0-9]+(-[a-z0-9]+)*$' }),
|
|
374
|
+
name: Type.String({ minLength: 1 }),
|
|
375
|
+
description: Type.String(),
|
|
376
|
+
category: Type.String(),
|
|
377
|
+
bbox: BboxSchema,
|
|
378
|
+
provider: Type.String(),
|
|
379
|
+
license: Type.String(),
|
|
380
|
+
licenseUrl: Type.String(),
|
|
381
|
+
notForNavigation: Type.Optional(Type.Boolean()),
|
|
382
|
+
folder: Type.Optional(Type.String()),
|
|
383
|
+
file: Type.Object({
|
|
384
|
+
url: Type.String({ pattern: '^https://[^?#]+\\.mbtiles$' }),
|
|
385
|
+
updated: Type.String({ minLength: 1 }),
|
|
386
|
+
size: Type.Optional(Type.Integer({ minimum: 0 }))
|
|
387
|
+
})
|
|
388
|
+
});
|
|
277
389
|
/** The published JSON Schema document, with the root identifiers it needs. */
|
|
278
390
|
export function publishedJsonSchema(id) {
|
|
279
391
|
return {
|