@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/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 MIN_ZOOM = 1;
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
- const CONFIG_SCHEMA = {
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: `Add one or more paths to find charts. Defaults to "${defaultChartsPath}"`,
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: () => CONFIG_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
- for (const r of results) {
302
- if (!r)
303
- continue;
304
- for (const [id, chart] of Object.entries(r)) {
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(`Started - ${Object.keys(chartProviders).length} chart(s) loaded`);
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 iz = parseInt(z);
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
- console.log(`Unknown chart provider fileformat ${provider._fileFormat}`);
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(1, provider.minzoom), 24),
630
- maxzoom: Math.min(Math.max(1, provider.maxzoom), 24),
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
@@ -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,6 @@
1
+ export interface ChartPathCount {
2
+ chartPath: string;
3
+ count: number;
4
+ }
5
+ export declare function composeStatus(perPath: ChartPathCount[], onlineProviderCount: number): string;
6
+ //# sourceMappingURL=pluginStatus.d.ts.map
@@ -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;AAEjD,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAShE;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"}
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"}
@@ -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;
@@ -1 +1 @@
1
- {"version":3,"file":"projection.js","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":";;;AAWA,gCASC;AAED,4CAKC;AAKD,oCAsBC;AApDD,uDAAuD;AACvD,+CAA+C;AAClC,QAAA,0BAA0B,GAAG,WAAW,CAAA;AAErD,yEAAyE;AACzE,2EAA2E;AAC3E,oDAAoD;AACvC,QAAA,oBAAoB,GAAG,aAAa,CAAA;AAEjD,SAAgB,UAAU,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;IACxD,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAChB,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"}
1
+ {"version":3,"file":"projection.js","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"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"}
@@ -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"}