@signalk/charts-plugin 3.5.0 → 3.6.1

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.
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.serveTileFromCacheOrRemote = exports.isMbtilesTileMissing = exports.serveTileFromMbtiles = exports.serveTileFromFilesystem = exports.validateBBox = exports.validateMaxZoom = exports.validateTileCoords = exports.isAllowedTileFormat = exports.responseHttpOptions = exports.MIN_TILE_Z = exports.MAX_ZOOM = exports.MIN_ZOOM = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const chartDownloader_1 = require("./chartDownloader");
9
+ /**
10
+ * Tile-serving HTTP helpers for the charts plugin. Each helper terminates
11
+ * the Express response itself; callers only pick the branch based on the
12
+ * provider's storage format.
13
+ */
14
+ // Provider-config zoom range: what we allow users to configure in the plugin
15
+ // settings for a chart's minzoom/maxzoom.
16
+ exports.MIN_ZOOM = 1;
17
+ exports.MAX_ZOOM = 24;
18
+ // Tile-coordinate range accepted on the HTTP tile route. Starts at zero
19
+ // because Leaflet's default minZoom is 0 — clients legitimately ask for
20
+ // the world tile when framing the initial view, even if no configured
21
+ // provider covers that level (they just get a 404 per-tile).
22
+ exports.MIN_TILE_Z = 0;
23
+ exports.responseHttpOptions = {
24
+ headers: {
25
+ 'Cache-Control': 'public, max-age=7776000' // 90 days
26
+ }
27
+ };
28
+ // Tile file extensions recognised on the filesystem path. Add new entries
29
+ // here when a new raster or vector format is supported.
30
+ const ALLOWED_TILE_FORMATS = new Set(['png', 'jpg', 'jpeg', 'pbf']);
31
+ const isAllowedTileFormat = (format) => {
32
+ if (!format)
33
+ return false;
34
+ return ALLOWED_TILE_FORMATS.has(format.toLowerCase());
35
+ };
36
+ exports.isAllowedTileFormat = isAllowedTileFormat;
37
+ // Validates tile coordinates submitted by callers. Zoom is constrained to
38
+ // the range the plugin advertises; x/y must fit the zoom grid.
39
+ // Returns an error message if invalid, or undefined if OK.
40
+ const validateTileCoords = (z, x, y) => {
41
+ if (!Number.isInteger(z) || z < exports.MIN_TILE_Z || z > exports.MAX_ZOOM) {
42
+ return `Invalid zoom ${z} (must be an integer in [${exports.MIN_TILE_Z}, ${exports.MAX_ZOOM}])`;
43
+ }
44
+ const n = 2 ** z;
45
+ if (!Number.isInteger(x) || x < 0 || x >= n) {
46
+ return `Invalid x ${x} at zoom ${z} (must be an integer in [0, ${n}))`;
47
+ }
48
+ if (!Number.isInteger(y) || y < 0 || y >= n) {
49
+ return `Invalid y ${y} at zoom ${z} (must be an integer in [0, ${n}))`;
50
+ }
51
+ return undefined;
52
+ };
53
+ exports.validateTileCoords = validateTileCoords;
54
+ const validateMaxZoom = (maxZoom) => {
55
+ if (!Number.isFinite(maxZoom) || maxZoom < exports.MIN_ZOOM || maxZoom > exports.MAX_ZOOM) {
56
+ return `Invalid maxZoom ${maxZoom} (must be in [${exports.MIN_ZOOM}, ${exports.MAX_ZOOM}])`;
57
+ }
58
+ return undefined;
59
+ };
60
+ exports.validateMaxZoom = validateMaxZoom;
61
+ // Validates a caller-supplied bounding box. Lat/Lon must be finite numbers in
62
+ // the real-world range; minLat must be below maxLat so downstream tile math
63
+ // doesn't silently iterate an empty or inverted span. minLon > maxLon is
64
+ // allowed — that's how antimeridian-crossing boxes are expressed.
65
+ const validateBBox = (bbox) => {
66
+ const { minLon, minLat, maxLon, maxLat } = bbox;
67
+ const finite = (v) => typeof v === 'number' && Number.isFinite(v);
68
+ if (!finite(minLon) ||
69
+ !finite(minLat) ||
70
+ !finite(maxLon) ||
71
+ !finite(maxLat)) {
72
+ return 'bbox must contain finite numbers for minLon, minLat, maxLon, maxLat';
73
+ }
74
+ if (minLon < -180 || minLon > 180 || maxLon < -180 || maxLon > 180) {
75
+ return 'bbox longitude must be in [-180, 180]';
76
+ }
77
+ if (minLat < -90 || minLat > 90 || maxLat < -90 || maxLat > 90) {
78
+ return 'bbox latitude must be in [-90, 90]';
79
+ }
80
+ if (minLat >= maxLat) {
81
+ return 'bbox minLat must be less than maxLat';
82
+ }
83
+ return undefined;
84
+ };
85
+ exports.validateBBox = validateBBox;
86
+ const serveTileFromFilesystem = (res, provider, z, x, y) => {
87
+ const { format, _flipY, _filePath } = provider;
88
+ const normalizedFormat = format?.toLowerCase() ?? '';
89
+ if (!_filePath || !ALLOWED_TILE_FORMATS.has(normalizedFormat)) {
90
+ res.sendStatus(404);
91
+ return;
92
+ }
93
+ const flippedY = Math.pow(2, z) - 1 - y;
94
+ const file = path_1.default.resolve(_filePath, `${z}/${x}/${_flipY ? flippedY : y}.${normalizedFormat}`);
95
+ // sendFile already performs the stat and handles the error; the previous
96
+ // stat+access probe duplicated that work on every tile request. Its
97
+ // callback fires once per request with an err only when something went
98
+ // wrong (missing file, permission denied, header-already-sent aborts).
99
+ res.sendFile(file, exports.responseHttpOptions, (err) => {
100
+ if (!err)
101
+ return;
102
+ const code = err.code;
103
+ if (code === 'ENOENT' || code === 'EACCES' || code === 'EISDIR') {
104
+ if (!res.headersSent)
105
+ res.sendStatus(404);
106
+ }
107
+ else if (!res.headersSent) {
108
+ res.sendStatus(500);
109
+ }
110
+ });
111
+ };
112
+ exports.serveTileFromFilesystem = serveTileFromFilesystem;
113
+ const serveTileFromMbtiles = (res, provider, z, x, y) => {
114
+ if (!(0, exports.isAllowedTileFormat)(provider.format)) {
115
+ res.sendStatus(404);
116
+ return;
117
+ }
118
+ // Guard against a provider whose MBTiles handle is missing: openMbtilesFile
119
+ // may have failed post-reconcile, or the handle was closed while a request
120
+ // was in flight. Without this check, .getTile throws synchronously and
121
+ // Express never answers the client.
122
+ if (!provider._mbtilesHandle) {
123
+ res.sendStatus(500);
124
+ return;
125
+ }
126
+ provider._mbtilesHandle.getTile(z, x, y, (err, tile, headers) => {
127
+ if (err && (0, exports.isMbtilesTileMissing)(err)) {
128
+ res.sendStatus(404);
129
+ }
130
+ else if (err) {
131
+ console.error(`Error fetching tile ${provider.identifier}/${z}/${x}/${y}:`, err);
132
+ res.sendStatus(500);
133
+ }
134
+ else {
135
+ headers['Cache-Control'] = exports.responseHttpOptions.headers['Cache-Control'];
136
+ res.writeHead(200, headers);
137
+ res.end(tile);
138
+ }
139
+ });
140
+ };
141
+ exports.serveTileFromMbtiles = serveTileFromMbtiles;
142
+ // @signalk/mbtiles currently throws `Error('Tile does not exist')` for a
143
+ // missing tile; some forks expose an ENOENT-style code instead. Centralise
144
+ // the check so a future library change only requires an edit here.
145
+ const isMbtilesTileMissing = (err) => {
146
+ if (err.message === 'Tile does not exist')
147
+ return true;
148
+ const code = err.code;
149
+ return code === 'ENOENT';
150
+ };
151
+ exports.isMbtilesTileMissing = isMbtilesTileMissing;
152
+ const serveTileFromCacheOrRemote = async (res, cachePath, provider, z, x, y) => {
153
+ const buffer = await chartDownloader_1.ChartDownloader.getTileFromCacheOrRemote(cachePath, provider, { x, y, z });
154
+ if (!buffer) {
155
+ res.sendStatus(502);
156
+ return;
157
+ }
158
+ res.set('Content-Type', `image/${provider.format}`);
159
+ res.send(buffer);
160
+ };
161
+ exports.serveTileFromCacheOrRemote = serveTileFromCacheOrRemote;
162
+ //# sourceMappingURL=tileServer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tileServer.js","sourceRoot":"","sources":["../src/tileServer.ts"],"names":[],"mappings":"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"}
package/plugin/types.d.ts CHANGED
@@ -1,8 +1,28 @@
1
+ import type { OutgoingHttpHeaders } from 'http';
1
2
  type MapSourceType = 'tilelayer' | 'S-57' | 'WMS' | 'WMTS' | 'mapstyleJSON' | 'tileJSON';
3
+ export interface MBTilesHandle {
4
+ getTile: (z: number, x: number, y: number, callback: (err: Error | null, tile: Buffer, headers: OutgoingHttpHeaders) => void) => void;
5
+ getInfo: (callback: (err: Error | null, metadata: MBTilesMetadata) => void) => void;
6
+ close: (callback: (err: Error | null) => void) => void;
7
+ on: (event: 'error', listener: (err: Error) => void) => MBTilesHandle;
8
+ }
9
+ export interface MBTilesMetadata {
10
+ name?: string;
11
+ id?: string;
12
+ description?: string;
13
+ bounds?: number[] | string;
14
+ minzoom?: number;
15
+ maxzoom?: number;
16
+ format?: string;
17
+ scale?: string;
18
+ vector_layers?: Array<{
19
+ id: string;
20
+ }>;
21
+ }
2
22
  export interface ChartProvider {
3
23
  _fileFormat?: 'mbtiles' | 'directory';
4
24
  _filePath: string;
5
- _mbtilesHandle?: any;
25
+ _mbtilesHandle?: MBTilesHandle;
6
26
  _flipY?: boolean;
7
27
  identifier: string;
8
28
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,KAAK,aAAa,GACd,WAAW,GACX,MAAM,GACN,KAAK,GACL,MAAM,GACN,cAAc,GACd,UAAU,CAAA;AAEd,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,EAAE,SAAS,GAAG,WAAW,CAAA;IACrC,SAAS,EAAE,MAAM,CAAA;IAEjB,cAAc,CAAC,EAAE,GAAG,CAAA;IACpB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,aAAa,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,EAAE,CAAC,EAAE;QACH,UAAU,EAAE,MAAM,CAAA;QAClB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;KACvB,CAAA;IACD,EAAE,CAAC,EAAE;QACH,GAAG,EAAE,MAAM,CAAA;QACX,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;KAClB,CAAA;IACD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;CACpC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,aAAa,CAAA;IACzB,MAAM,EAAE,KAAK,GAAG,KAAK,CAAA;IACrB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,OAAO,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}