@signalk/charts-plugin 3.5.0 → 3.6.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/package.json +5 -1
- package/plugin/chartDownloader.d.ts +1 -1
- package/plugin/chartDownloader.d.ts.map +1 -1
- package/plugin/chartDownloader.js +29 -19
- package/plugin/chartDownloader.js.map +1 -1
- package/plugin/charts.d.ts.map +1 -1
- package/plugin/charts.js +45 -30
- package/plugin/charts.js.map +1 -1
- package/plugin/index.d.ts.map +1 -1
- package/plugin/index.js +65 -101
- package/plugin/index.js.map +1 -1
- package/plugin/pluginStatus.d.ts +6 -0
- package/plugin/pluginStatus.d.ts.map +1 -0
- package/plugin/pluginStatus.js +36 -0
- package/plugin/pluginStatus.js.map +1 -0
- package/plugin/projection.d.ts.map +1 -1
- package/plugin/projection.js +14 -0
- package/plugin/projection.js.map +1 -1
- package/plugin/tileServer.d.ts +29 -0
- package/plugin/tileServer.d.ts.map +1 -0
- package/plugin/tileServer.js +162 -0
- package/plugin/tileServer.js.map +1 -0
- package/plugin/types.d.ts +20 -1
- package/plugin/types.d.ts.map +1 -1
- package/public/index.js +279 -240
- package/public/logo.svg +74 -0
package/plugin/index.js
CHANGED
|
@@ -40,9 +40,9 @@ const fs_1 = __importDefault(require("fs"));
|
|
|
40
40
|
const _ = __importStar(require("lodash"));
|
|
41
41
|
const charts_1 = require("./charts");
|
|
42
42
|
const constants_1 = require("./constants");
|
|
43
|
+
const pluginStatus_1 = require("./pluginStatus");
|
|
43
44
|
const chartDownloader_1 = require("./chartDownloader");
|
|
44
|
-
const
|
|
45
|
-
const MAX_ZOOM = 24;
|
|
45
|
+
const tileServer_1 = require("./tileServer");
|
|
46
46
|
const chartTilesPath = '/signalk/chart-tiles';
|
|
47
47
|
// Debounce window used to collapse FSWatcher bursts during rename / atomic-save
|
|
48
48
|
// sequences into one reload. Overridable via env var so tests don't have to
|
|
@@ -76,11 +76,27 @@ const createPlugin = (app) => {
|
|
|
76
76
|
let reloadTimer;
|
|
77
77
|
let activeChartPaths = [];
|
|
78
78
|
let activeOnlineProviders = {};
|
|
79
|
+
// Last scan result, surfaced in the config schema description so the admin
|
|
80
|
+
// UI shows per-path counts when the user reopens the plugin config. Issue #8.
|
|
81
|
+
let lastChartPathCounts = [];
|
|
79
82
|
// Check Node version for schema
|
|
80
83
|
const nodeVersion = process.versions.node;
|
|
81
84
|
const nodeMajorVersion = parseInt(nodeVersion.split('.')[0] ?? '0');
|
|
85
|
+
// Builds the `chartPaths` description, appending the latest per-path chart
|
|
86
|
+
// counts when available. The admin UI re-fetches the schema every time the
|
|
87
|
+
// plugin config page opens, so this text refreshes on reload. Issue #8.
|
|
88
|
+
const chartPathsDescription = () => {
|
|
89
|
+
const base = `Add one or more paths to find charts. Defaults to "${defaultChartsPath}"`;
|
|
90
|
+
if (lastChartPathCounts.length === 0)
|
|
91
|
+
return base;
|
|
92
|
+
const parts = lastChartPathCounts.map((p) => `${p.chartPath} (${p.count} ${p.count === 1 ? 'chart' : 'charts'})`);
|
|
93
|
+
return `${base}. Last scan: ${parts.join(', ')}.`;
|
|
94
|
+
};
|
|
82
95
|
// ******** REQUIRED PLUGIN DEFINITION *******
|
|
83
|
-
|
|
96
|
+
// Schema is built inside schema() rather than a module-level const, because
|
|
97
|
+
// chartPaths.description depends on the last scan result, which only exists
|
|
98
|
+
// after the plugin has run at least once.
|
|
99
|
+
const buildConfigSchema = () => ({
|
|
84
100
|
title: 'Signal K Charts',
|
|
85
101
|
type: 'object',
|
|
86
102
|
properties: {
|
|
@@ -95,7 +111,7 @@ const createPlugin = (app) => {
|
|
|
95
111
|
chartPaths: {
|
|
96
112
|
type: 'array',
|
|
97
113
|
title: 'Chart paths',
|
|
98
|
-
description:
|
|
114
|
+
description: chartPathsDescription(),
|
|
99
115
|
items: {
|
|
100
116
|
type: 'string',
|
|
101
117
|
title: 'Path',
|
|
@@ -125,16 +141,16 @@ const createPlugin = (app) => {
|
|
|
125
141
|
},
|
|
126
142
|
minzoom: {
|
|
127
143
|
type: 'number',
|
|
128
|
-
title: `Minimum zoom level, between [${MIN_ZOOM}, ${MAX_ZOOM}]`,
|
|
129
|
-
maximum: MAX_ZOOM,
|
|
130
|
-
minimum: MIN_ZOOM,
|
|
131
|
-
default: MIN_ZOOM
|
|
144
|
+
title: `Minimum zoom level, between [${tileServer_1.MIN_ZOOM}, ${tileServer_1.MAX_ZOOM}]`,
|
|
145
|
+
maximum: tileServer_1.MAX_ZOOM,
|
|
146
|
+
minimum: tileServer_1.MIN_ZOOM,
|
|
147
|
+
default: tileServer_1.MIN_ZOOM
|
|
132
148
|
},
|
|
133
149
|
maxzoom: {
|
|
134
150
|
type: 'number',
|
|
135
|
-
title: `Maximum zoom level, between [${MIN_ZOOM}, ${MAX_ZOOM}]`,
|
|
136
|
-
maximum: MAX_ZOOM,
|
|
137
|
-
minimum: MIN_ZOOM,
|
|
151
|
+
title: `Maximum zoom level, between [${tileServer_1.MIN_ZOOM}, ${tileServer_1.MAX_ZOOM}]`,
|
|
152
|
+
maximum: tileServer_1.MAX_ZOOM,
|
|
153
|
+
minimum: tileServer_1.MIN_ZOOM,
|
|
138
154
|
default: 15
|
|
139
155
|
},
|
|
140
156
|
serverType: {
|
|
@@ -198,12 +214,12 @@ const createPlugin = (app) => {
|
|
|
198
214
|
}
|
|
199
215
|
}
|
|
200
216
|
}
|
|
201
|
-
};
|
|
217
|
+
});
|
|
202
218
|
const CONFIG_UISCHEMA = {};
|
|
203
219
|
const plugin = {
|
|
204
220
|
id: 'charts',
|
|
205
221
|
name: 'Signal K Charts',
|
|
206
|
-
schema: () =>
|
|
222
|
+
schema: () => buildConfigSchema(),
|
|
207
223
|
uiSchema: () => CONFIG_UISCHEMA,
|
|
208
224
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
209
225
|
start: (settings) => {
|
|
@@ -298,10 +314,13 @@ const createPlugin = (app) => {
|
|
|
298
314
|
// O(N²) property copies for identical keys while adding nothing over a
|
|
299
315
|
// plain shallow assignment.
|
|
300
316
|
const newCharts = {};
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
317
|
+
const perPath = [];
|
|
318
|
+
for (let i = 0; i < results.length; i++) {
|
|
319
|
+
const r = results[i];
|
|
320
|
+
const chartPath = activeChartPaths[i] ?? '';
|
|
321
|
+
const pathEntries = r ? Object.entries(r) : [];
|
|
322
|
+
perPath.push({ chartPath, count: pathEntries.length });
|
|
323
|
+
for (const [id, chart] of pathEntries) {
|
|
305
324
|
if (newCharts[id]) {
|
|
306
325
|
app.debug(`Duplicate chart identifier "${id}" from multiple chart paths; ` +
|
|
307
326
|
`the later one wins.`);
|
|
@@ -309,6 +328,7 @@ const createPlugin = (app) => {
|
|
|
309
328
|
newCharts[id] = chart;
|
|
310
329
|
}
|
|
311
330
|
}
|
|
331
|
+
lastChartPathCounts = perPath;
|
|
312
332
|
app.debug(`Chart plugin: Found ${Object.keys(newCharts).length} charts from ${activeChartPaths.join(', ')}.`);
|
|
313
333
|
reconcileMbtilesHandles(chartProviders);
|
|
314
334
|
// Shallow assign is enough: newCharts and activeOnlineProviders both
|
|
@@ -322,7 +342,7 @@ const createPlugin = (app) => {
|
|
|
322
342
|
chartProviders[id] = provider;
|
|
323
343
|
}
|
|
324
344
|
buildSanitizedCache();
|
|
325
|
-
app.setPluginStatus(
|
|
345
|
+
app.setPluginStatus((0, pluginStatus_1.composeStatus)(perPath, Object.keys(activeOnlineProviders).length));
|
|
326
346
|
};
|
|
327
347
|
// Rebuilds the per-version sanitized views. Called once per reload so the
|
|
328
348
|
// HTTP handlers can hand out pre-built dictionaries instead of deep-cloning
|
|
@@ -351,7 +371,6 @@ const createPlugin = (app) => {
|
|
|
351
371
|
}
|
|
352
372
|
}
|
|
353
373
|
};
|
|
354
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
355
374
|
const closeMbtilesHandle = (handle) => {
|
|
356
375
|
if (typeof handle?.close !== 'function')
|
|
357
376
|
return;
|
|
@@ -424,24 +443,28 @@ const createPlugin = (app) => {
|
|
|
424
443
|
if (!identifier || !z || !x || !y) {
|
|
425
444
|
return res.sendStatus(404);
|
|
426
445
|
}
|
|
446
|
+
const iz = parseInt(z);
|
|
427
447
|
const ix = parseInt(x);
|
|
428
448
|
const iy = parseInt(y);
|
|
429
|
-
const
|
|
449
|
+
const coordError = (0, tileServer_1.validateTileCoords)(iz, ix, iy);
|
|
450
|
+
if (coordError) {
|
|
451
|
+
return res.status(400).send(coordError);
|
|
452
|
+
}
|
|
430
453
|
const provider = chartProviders[identifier];
|
|
431
454
|
if (!provider) {
|
|
432
455
|
return res.sendStatus(404);
|
|
433
456
|
}
|
|
434
457
|
if (provider.proxy === true) {
|
|
435
|
-
return serveTileFromCacheOrRemote(res, provider, iz, ix, iy);
|
|
458
|
+
return (0, tileServer_1.serveTileFromCacheOrRemote)(res, cachePath, provider, iz, ix, iy);
|
|
436
459
|
}
|
|
437
460
|
else {
|
|
438
461
|
switch (provider._fileFormat) {
|
|
439
462
|
case 'directory':
|
|
440
|
-
return serveTileFromFilesystem(res, provider, iz, ix, iy);
|
|
463
|
+
return (0, tileServer_1.serveTileFromFilesystem)(res, provider, iz, ix, iy);
|
|
441
464
|
case 'mbtiles':
|
|
442
|
-
return serveTileFromMbtiles(res, provider, iz, ix, iy);
|
|
465
|
+
return (0, tileServer_1.serveTileFromMbtiles)(res, provider, iz, ix, iy);
|
|
443
466
|
default:
|
|
444
|
-
|
|
467
|
+
app.debug(`Unknown chart provider fileformat ${provider._fileFormat}`);
|
|
445
468
|
res.status(500).send();
|
|
446
469
|
}
|
|
447
470
|
}
|
|
@@ -465,6 +488,22 @@ const createPlugin = (app) => {
|
|
|
465
488
|
.send('Request must include regionGUID, bbox, or tile');
|
|
466
489
|
}
|
|
467
490
|
const maxZoomParsed = parseInt(maxZoom);
|
|
491
|
+
const zoomError = (0, tileServer_1.validateMaxZoom)(maxZoomParsed);
|
|
492
|
+
if (zoomError) {
|
|
493
|
+
return res.status(400).send(zoomError);
|
|
494
|
+
}
|
|
495
|
+
if (bbox) {
|
|
496
|
+
const bboxError = (0, tileServer_1.validateBBox)(bbox);
|
|
497
|
+
if (bboxError) {
|
|
498
|
+
return res.status(400).send(bboxError);
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
if (tile) {
|
|
502
|
+
const tileError = (0, tileServer_1.validateTileCoords)(tile.z, tile.x, tile.y);
|
|
503
|
+
if (tileError) {
|
|
504
|
+
return res.status(400).send(tileError);
|
|
505
|
+
}
|
|
506
|
+
}
|
|
468
507
|
try {
|
|
469
508
|
const job = await chartDownloader_1.ChartSeedingManager.createJob(app.resourcesApi, cachePath, provider, maxZoomParsed, regionGUID, bbox
|
|
470
509
|
? [bbox.minLon, bbox.minLat, bbox.maxLon, bbox.maxLat]
|
|
@@ -492,9 +531,6 @@ const createPlugin = (app) => {
|
|
|
492
531
|
return res.sendStatus(404);
|
|
493
532
|
}
|
|
494
533
|
const { action } = req.body;
|
|
495
|
-
if (!id) {
|
|
496
|
-
return res.status(400).send('Missing job id');
|
|
497
|
-
}
|
|
498
534
|
const parsedId = parseInt(id);
|
|
499
535
|
if (!Number.isFinite(parsedId)) {
|
|
500
536
|
return res.status(400).send(`Invalid job id: ${id}`);
|
|
@@ -576,29 +612,8 @@ const createPlugin = (app) => {
|
|
|
576
612
|
app.setPluginError(`Failed to register as charts resource provider: ${error.message}`);
|
|
577
613
|
}
|
|
578
614
|
};
|
|
579
|
-
const serveTileFromCacheOrRemote = async (res, provider, z, x, y) => {
|
|
580
|
-
const buffer = await chartDownloader_1.ChartDownloader.getTileFromCacheOrRemote(cachePath, provider, { x, y, z });
|
|
581
|
-
if (!buffer) {
|
|
582
|
-
res.sendStatus(502);
|
|
583
|
-
return;
|
|
584
|
-
}
|
|
585
|
-
res.set('Content-Type', `image/${provider.format}`);
|
|
586
|
-
res.send(buffer);
|
|
587
|
-
};
|
|
588
615
|
return plugin;
|
|
589
616
|
};
|
|
590
|
-
const responseHttpOptions = {
|
|
591
|
-
headers: {
|
|
592
|
-
'Cache-Control': 'public, max-age=7776000' // 90 days
|
|
593
|
-
}
|
|
594
|
-
};
|
|
595
|
-
// Allowed tile file formats. Add new formats here when supporting them.
|
|
596
|
-
const ALLOWED_TILE_FORMATS = new Set(['png', 'jpg', 'jpeg', 'pbf']);
|
|
597
|
-
const isAllowedTileFormat = (format) => {
|
|
598
|
-
if (!format)
|
|
599
|
-
return false;
|
|
600
|
-
return ALLOWED_TILE_FORMATS.has(format.toLowerCase());
|
|
601
|
-
};
|
|
602
617
|
const resolveUniqueChartPaths = (chartPaths, configBasePath) => {
|
|
603
618
|
const paths = chartPaths.map((chartPath) => path_1.default.resolve(configBasePath, chartPath));
|
|
604
619
|
return [...new Set(paths)];
|
|
@@ -626,8 +641,8 @@ const convertOnlineProviderConfig = (provider) => {
|
|
|
626
641
|
name: provider.name,
|
|
627
642
|
description: provider.description,
|
|
628
643
|
bounds: [-180, -90, 180, 90],
|
|
629
|
-
minzoom: Math.min(Math.max(
|
|
630
|
-
maxzoom: Math.min(Math.max(
|
|
644
|
+
minzoom: Math.min(Math.max(tileServer_1.MIN_ZOOM, provider.minzoom), tileServer_1.MAX_ZOOM),
|
|
645
|
+
maxzoom: Math.min(Math.max(tileServer_1.MIN_ZOOM, provider.maxzoom), tileServer_1.MAX_ZOOM),
|
|
631
646
|
format: provider.format,
|
|
632
647
|
scale: 250000,
|
|
633
648
|
type: provider.serverType ? provider.serverType : 'tilelayer',
|
|
@@ -682,56 +697,5 @@ const ensureDirectoryExists = async (p) => {
|
|
|
682
697
|
// keeping startup off the sync-fs path.
|
|
683
698
|
await fs_1.default.promises.mkdir(p, { recursive: true });
|
|
684
699
|
};
|
|
685
|
-
const serveTileFromFilesystem = async (res, provider, z, x, y) => {
|
|
686
|
-
const { format, _flipY, _filePath } = provider;
|
|
687
|
-
const normalizedFormat = format?.toLowerCase() ?? '';
|
|
688
|
-
if (!_filePath || !ALLOWED_TILE_FORMATS.has(normalizedFormat)) {
|
|
689
|
-
res.sendStatus(404);
|
|
690
|
-
return;
|
|
691
|
-
}
|
|
692
|
-
const flippedY = Math.pow(2, z) - 1 - y;
|
|
693
|
-
const file = path_1.default.resolve(_filePath, `${z}/${x}/${_flipY ? flippedY : y}.${normalizedFormat}`);
|
|
694
|
-
try {
|
|
695
|
-
const stats = await fs_1.default.promises.stat(file);
|
|
696
|
-
if (!stats.isFile()) {
|
|
697
|
-
res.sendStatus(404);
|
|
698
|
-
return;
|
|
699
|
-
}
|
|
700
|
-
await fs_1.default.promises.access(file, fs_1.default.constants.R_OK);
|
|
701
|
-
}
|
|
702
|
-
catch {
|
|
703
|
-
res.sendStatus(404);
|
|
704
|
-
return;
|
|
705
|
-
}
|
|
706
|
-
res.sendFile(file, responseHttpOptions);
|
|
707
|
-
};
|
|
708
|
-
const serveTileFromMbtiles = (res, provider, z, x, y) => {
|
|
709
|
-
if (!isAllowedTileFormat(provider.format)) {
|
|
710
|
-
res.sendStatus(404);
|
|
711
|
-
return;
|
|
712
|
-
}
|
|
713
|
-
// Guard against a provider whose MBTiles handle is missing: openMbtilesFile
|
|
714
|
-
// may have failed post-reconcile, or the handle was closed while a request
|
|
715
|
-
// was in flight. Without this check, `.getTile` throws synchronously and
|
|
716
|
-
// Express never answers the client.
|
|
717
|
-
if (!provider._mbtilesHandle) {
|
|
718
|
-
res.sendStatus(500);
|
|
719
|
-
return;
|
|
720
|
-
}
|
|
721
|
-
provider._mbtilesHandle.getTile(z, x, y, (err, tile, headers) => {
|
|
722
|
-
if (err && err.message && err.message === 'Tile does not exist') {
|
|
723
|
-
res.sendStatus(404);
|
|
724
|
-
}
|
|
725
|
-
else if (err) {
|
|
726
|
-
console.error(`Error fetching tile ${provider.identifier}/${z}/${x}/${y}:`, err);
|
|
727
|
-
res.sendStatus(500);
|
|
728
|
-
}
|
|
729
|
-
else {
|
|
730
|
-
headers['Cache-Control'] = responseHttpOptions.headers['Cache-Control'];
|
|
731
|
-
res.writeHead(200, headers);
|
|
732
|
-
res.end(tile);
|
|
733
|
-
}
|
|
734
|
-
});
|
|
735
|
-
};
|
|
736
700
|
module.exports = createPlugin;
|
|
737
701
|
//# sourceMappingURL=index.js.map
|
package/plugin/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pluginStatus.d.ts","sourceRoot":"","sources":["../src/pluginStatus.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;CACd;AASD,wBAAgB,aAAa,CAC3B,OAAO,EAAE,cAAc,EAAE,EACzB,mBAAmB,EAAE,MAAM,GAC1B,MAAM,CA0BR"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Builds the human-readable message shown in the admin UI plugin status banner
|
|
3
|
+
// after startup. Motivation: issue #8 - users who add a new chart path want to
|
|
4
|
+
// see per-path feedback ("Found 0 charts from /foo") so they can tell whether
|
|
5
|
+
// their path resolved and picked anything up.
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.composeStatus = composeStatus;
|
|
8
|
+
// Examples:
|
|
9
|
+
// composeStatus([{chartPath: '/a', count: 5}], 0)
|
|
10
|
+
// -> "Started - Found 5 charts from /a"
|
|
11
|
+
// composeStatus([{chartPath: '/a', count: 0}], 2)
|
|
12
|
+
// -> "Started - Found 0 charts from /a + 2 online providers"
|
|
13
|
+
// composeStatus([{chartPath: '/a', count: 2}, {chartPath: '/b', count: 3}], 0)
|
|
14
|
+
// -> "Started - Found 5 charts: /a (2), /b (3)"
|
|
15
|
+
function composeStatus(perPath, onlineProviderCount) {
|
|
16
|
+
const totalCharts = perPath.reduce((sum, p) => sum + p.count, 0);
|
|
17
|
+
let chartsPart;
|
|
18
|
+
if (perPath.length === 0) {
|
|
19
|
+
chartsPart = `Found ${totalCharts} ${plural('chart', totalCharts)}`;
|
|
20
|
+
}
|
|
21
|
+
else if (perPath.length === 1) {
|
|
22
|
+
chartsPart = `Found ${totalCharts} ${plural('chart', totalCharts)} from ${perPath[0].chartPath}`;
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
const breakdown = perPath
|
|
26
|
+
.map((p) => `${p.chartPath} (${p.count})`)
|
|
27
|
+
.join(', ');
|
|
28
|
+
chartsPart = `Found ${totalCharts} ${plural('chart', totalCharts)}: ${breakdown}`;
|
|
29
|
+
}
|
|
30
|
+
const onlinePart = onlineProviderCount > 0
|
|
31
|
+
? ` + ${onlineProviderCount} online ${plural('provider', onlineProviderCount)}`
|
|
32
|
+
: '';
|
|
33
|
+
return `Started - ${chartsPart}${onlinePart}`;
|
|
34
|
+
}
|
|
35
|
+
const plural = (word, n) => (n === 1 ? word : `${word}s`);
|
|
36
|
+
//# sourceMappingURL=pluginStatus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pluginStatus.js","sourceRoot":"","sources":["../src/pluginStatus.ts"],"names":[],"mappings":";AAAA,+EAA+E;AAC/E,+EAA+E;AAC/E,8EAA8E;AAC9E,8CAA8C;;AAc9C,sCA6BC;AApCD,YAAY;AACZ,oDAAoD;AACpD,4CAA4C;AAC5C,oDAAoD;AACpD,iEAAiE;AACjE,iFAAiF;AACjF,oDAAoD;AACpD,SAAgB,aAAa,CAC3B,OAAyB,EACzB,mBAA2B;IAE3B,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IAChE,IAAI,UAAkB,CAAA;IACtB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,UAAU,GAAG,SAAS,WAAW,IAAI,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,CAAA;IACrE,CAAC;SAAM,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,UAAU,GAAG,SAAS,WAAW,IAAI,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,SAC/D,OAAO,CAAC,CAAC,CAAE,CAAC,SACd,EAAE,CAAA;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,SAAS,GAAG,OAAO;aACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC;aACzC,IAAI,CAAC,IAAI,CAAC,CAAA;QACb,UAAU,GAAG,SAAS,WAAW,IAAI,MAAM,CACzC,OAAO,EACP,WAAW,CACZ,KAAK,SAAS,EAAE,CAAA;IACnB,CAAC;IACD,MAAM,UAAU,GACd,mBAAmB,GAAG,CAAC;QACrB,CAAC,CAAC,MAAM,mBAAmB,WAAW,MAAM,CACxC,UAAU,EACV,mBAAmB,CACpB,EAAE;QACL,CAAC,CAAC,EAAE,CAAA;IACR,OAAO,aAAa,UAAU,GAAG,UAAU,EAAE,CAAA;AAC/C,CAAC;AAED,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAInC,eAAO,MAAM,0BAA0B,cAAc,CAAA;AAKrD,eAAO,MAAM,oBAAoB,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAInC,eAAO,MAAM,0BAA0B,cAAc,CAAA;AAKrD,eAAO,MAAM,oBAAoB,gBAAgB,CAAA;AAOjD,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAkBhE;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAK3E;AAKD,wBAAgB,YAAY,CAC1B,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GACX,CAAC,MAAM,EAAE,MAAM,CAAC,CAkBlB"}
|
package/plugin/projection.js
CHANGED
|
@@ -11,8 +11,22 @@ exports.WEB_MERCATOR_HALF_EXTENT_M = 20037508.34;
|
|
|
11
11
|
// where the projection maps to ±WEB_MERCATOR_HALF_EXTENT_M, also the clamp
|
|
12
12
|
// limit used by OSM / Google / MapBox tile schemes.
|
|
13
13
|
exports.WEB_MERCATOR_MAX_LAT = 85.0511287798;
|
|
14
|
+
// Web Mercator tile → WGS84 bounding box.
|
|
15
|
+
// Input (x=1, y=1, z=2): tile (1,1) at zoom 2 — one of sixteen.
|
|
16
|
+
// Output: [minLon, minLat, maxLon, maxLat] for that tile in degrees.
|
|
17
|
+
// x and y must be inside the grid ([0, 2^z)); out-of-range inputs produced
|
|
18
|
+
// nonsense coordinates that silently fed downstream bbox math. Fail fast.
|
|
14
19
|
function tileToBBox(x, y, z) {
|
|
20
|
+
if (!Number.isInteger(z) || z < 0) {
|
|
21
|
+
throw new RangeError(`tileToBBox: invalid zoom ${z}`);
|
|
22
|
+
}
|
|
15
23
|
const n = 2 ** z;
|
|
24
|
+
if (!Number.isInteger(x) || x < 0 || x >= n) {
|
|
25
|
+
throw new RangeError(`tileToBBox: x=${x} out of range at z=${z}`);
|
|
26
|
+
}
|
|
27
|
+
if (!Number.isInteger(y) || y < 0 || y >= n) {
|
|
28
|
+
throw new RangeError(`tileToBBox: y=${y} out of range at z=${z}`);
|
|
29
|
+
}
|
|
16
30
|
const lon1 = (x / n) * 360 - 180;
|
|
17
31
|
const lat1 = (Math.atan(Math.sinh(Math.PI * (1 - (2 * y) / n))) * 180) / Math.PI;
|
|
18
32
|
const lon2 = ((x + 1) / n) * 360 - 180;
|
package/plugin/projection.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":";;;AAgBA,gCAkBC;AAED,4CAKC;AAKD,oCAsBC;AAlED,uDAAuD;AACvD,+CAA+C;AAClC,QAAA,0BAA0B,GAAG,WAAW,CAAA;AAErD,yEAAyE;AACzE,2EAA2E;AAC3E,oDAAoD;AACvC,QAAA,oBAAoB,GAAG,aAAa,CAAA;AAEjD,0CAA0C;AAC1C,iEAAiE;AACjE,qEAAqE;AACrE,2EAA2E;AAC3E,0EAA0E;AAC1E,SAAgB,UAAU,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;IACxD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,UAAU,CAAC,4BAA4B,CAAC,EAAE,CAAC,CAAA;IACvD,CAAC;IACD,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAChB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,UAAU,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAA;IACnE,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,UAAU,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAA;IACnE,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAA;IAChC,MAAM,IAAI,GACR,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAA;IACrE,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAA;IACtC,MAAM,IAAI,GACR,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAA;IAC3E,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AACjC,CAAC;AAED,SAAgB,gBAAgB,CAAC,GAAW,EAAE,GAAW;IACvD,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,kCAA0B,CAAC,GAAG,GAAG,CAAA;IAClD,MAAM,IAAI,GACR,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,CAAA;IACpE,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,kCAA0B,CAAC,GAAG,GAAG,CAAC,CAAA;AACvD,CAAC;AAED,4EAA4E;AAC5E,6EAA6E;AAC7E,8DAA8D;AAC9D,SAAgB,YAAY,CAC1B,GAAW,EACX,GAAW,EACX,IAAY;IAEZ,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAA;IACnB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CACzB,CAAC,4BAAoB,EACrB,IAAI,CAAC,GAAG,CAAC,4BAAoB,EAAE,GAAG,CAAC,CACpC,CAAA;IACD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IAC7C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAClB,CAAC,CAAC,CAAC;QACD,IAAI,CAAC,GAAG,CACN,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;YACpC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAC7C;YACC,IAAI,CAAC,EAAE,CAAC;QACV,CAAC,CAAC;QACF,CAAC,CACJ,CAAA;IACD,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACf,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Response } from 'express';
|
|
2
|
+
import { ChartProvider } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Tile-serving HTTP helpers for the charts plugin. Each helper terminates
|
|
5
|
+
* the Express response itself; callers only pick the branch based on the
|
|
6
|
+
* provider's storage format.
|
|
7
|
+
*/
|
|
8
|
+
export declare const MIN_ZOOM = 1;
|
|
9
|
+
export declare const MAX_ZOOM = 24;
|
|
10
|
+
export declare const MIN_TILE_Z = 0;
|
|
11
|
+
export declare const responseHttpOptions: {
|
|
12
|
+
headers: {
|
|
13
|
+
'Cache-Control': string;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
export declare const isAllowedTileFormat: (format: string | undefined) => boolean;
|
|
17
|
+
export declare const validateTileCoords: (z: number, x: number, y: number) => string | undefined;
|
|
18
|
+
export declare const validateMaxZoom: (maxZoom: number) => string | undefined;
|
|
19
|
+
export declare const validateBBox: (bbox: {
|
|
20
|
+
minLon: unknown;
|
|
21
|
+
minLat: unknown;
|
|
22
|
+
maxLon: unknown;
|
|
23
|
+
maxLat: unknown;
|
|
24
|
+
}) => string | undefined;
|
|
25
|
+
export declare const serveTileFromFilesystem: (res: Response, provider: ChartProvider, z: number, x: number, y: number) => void;
|
|
26
|
+
export declare const serveTileFromMbtiles: (res: Response, provider: ChartProvider, z: number, x: number, y: number) => void;
|
|
27
|
+
export declare const isMbtilesTileMissing: (err: Error) => boolean;
|
|
28
|
+
export declare const serveTileFromCacheOrRemote: (res: Response, cachePath: string, provider: ChartProvider, z: number, x: number, y: number) => Promise<void>;
|
|
29
|
+
//# sourceMappingURL=tileServer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tileServer.d.ts","sourceRoot":"","sources":["../src/tileServer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAGvC;;;;GAIG;AAIH,eAAO,MAAM,QAAQ,IAAI,CAAA;AACzB,eAAO,MAAM,QAAQ,KAAK,CAAA;AAM1B,eAAO,MAAM,UAAU,IAAI,CAAA;AAE3B,eAAO,MAAM,mBAAmB;;;;CAI/B,CAAA;AAMD,eAAO,MAAM,mBAAmB,GAAI,QAAQ,MAAM,GAAG,SAAS,KAAG,OAGhE,CAAA;AAKD,eAAO,MAAM,kBAAkB,GAC7B,GAAG,MAAM,EACT,GAAG,MAAM,EACT,GAAG,MAAM,KACR,MAAM,GAAG,SAYX,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,SAAS,MAAM,KAAG,MAAM,GAAG,SAK1D,CAAA;AAMD,eAAO,MAAM,YAAY,GAAI,MAAM;IACjC,MAAM,EAAE,OAAO,CAAA;IACf,MAAM,EAAE,OAAO,CAAA;IACf,MAAM,EAAE,OAAO,CAAA;IACf,MAAM,EAAE,OAAO,CAAA;CAChB,KAAG,MAAM,GAAG,SAsBZ,CAAA;AAED,eAAO,MAAM,uBAAuB,GAClC,KAAK,QAAQ,EACb,UAAU,aAAa,EACvB,GAAG,MAAM,EACT,GAAG,MAAM,EACT,GAAG,MAAM,SA0BV,CAAA;AAED,eAAO,MAAM,oBAAoB,GAC/B,KAAK,QAAQ,EACb,UAAU,aAAa,EACvB,GAAG,MAAM,EACT,GAAG,MAAM,EACT,GAAG,MAAM,SAkCV,CAAA;AAKD,eAAO,MAAM,oBAAoB,GAAI,KAAK,KAAK,KAAG,OAIjD,CAAA;AAED,eAAO,MAAM,0BAA0B,GACrC,KAAK,QAAQ,EACb,WAAW,MAAM,EACjB,UAAU,aAAa,EACvB,GAAG,MAAM,EACT,GAAG,MAAM,EACT,GAAG,MAAM,kBAaV,CAAA"}
|