signalk-livedepth-plugin 0.2.1 → 0.3.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.
Files changed (83) hide show
  1. package/CHANGELOG.md +67 -0
  2. package/README.md +67 -41
  3. package/dist/collector.d.ts +1 -1
  4. package/dist/collector.d.ts.map +1 -1
  5. package/dist/config.d.ts +3 -3
  6. package/dist/config.d.ts.map +1 -1
  7. package/dist/config.js +8 -3
  8. package/dist/config.js.map +1 -1
  9. package/dist/plotterext/manifest.d.ts +24 -0
  10. package/dist/plotterext/manifest.d.ts.map +1 -0
  11. package/dist/plotterext/manifest.js +78 -0
  12. package/dist/plotterext/manifest.js.map +1 -0
  13. package/dist/plotterext/provider.d.ts +7 -0
  14. package/dist/plotterext/provider.d.ts.map +1 -0
  15. package/dist/plotterext/provider.js +61 -0
  16. package/dist/plotterext/provider.js.map +1 -0
  17. package/dist/plugin.d.ts.map +1 -1
  18. package/dist/plugin.js +19 -5
  19. package/dist/plugin.js.map +1 -1
  20. package/dist/streams/live.d.ts +1 -1
  21. package/dist/streams/live.d.ts.map +1 -1
  22. package/dist/streams/live.js +1 -1
  23. package/dist/streams/live.js.map +1 -1
  24. package/dist/tiles/api.d.ts +21 -11
  25. package/dist/tiles/api.d.ts.map +1 -1
  26. package/dist/tiles/api.js +36 -27
  27. package/dist/tiles/api.js.map +1 -1
  28. package/dist/tiles/core/accumulator.d.ts +37 -0
  29. package/dist/tiles/core/accumulator.d.ts.map +1 -0
  30. package/dist/tiles/core/accumulator.js +75 -0
  31. package/dist/tiles/core/accumulator.js.map +1 -0
  32. package/dist/tiles/core/correction.d.ts +32 -0
  33. package/dist/tiles/core/correction.d.ts.map +1 -0
  34. package/dist/tiles/core/correction.js +43 -0
  35. package/dist/tiles/core/correction.js.map +1 -0
  36. package/dist/tiles/core/grid.d.ts +64 -0
  37. package/dist/tiles/core/grid.d.ts.map +1 -0
  38. package/dist/tiles/core/grid.js +127 -0
  39. package/dist/tiles/core/grid.js.map +1 -0
  40. package/dist/tiles/core/index.d.ts +7 -0
  41. package/dist/tiles/core/index.d.ts.map +1 -0
  42. package/dist/tiles/core/index.js +7 -0
  43. package/dist/tiles/core/index.js.map +1 -0
  44. package/dist/tiles/core/store.d.ts +37 -0
  45. package/dist/tiles/core/store.d.ts.map +1 -0
  46. package/dist/tiles/core/store.js +86 -0
  47. package/dist/tiles/core/store.js.map +1 -0
  48. package/dist/tiles/core/tile-source.d.ts +41 -0
  49. package/dist/tiles/core/tile-source.d.ts.map +1 -0
  50. package/dist/tiles/core/tile-source.js +86 -0
  51. package/dist/tiles/core/tile-source.js.map +1 -0
  52. package/dist/tiles/core/types.d.ts +11 -0
  53. package/dist/tiles/core/types.d.ts.map +1 -0
  54. package/dist/tiles/core/types.js +2 -0
  55. package/dist/tiles/core/types.js.map +1 -0
  56. package/dist/tiles/index.d.ts +1 -1
  57. package/dist/tiles/index.d.ts.map +1 -1
  58. package/dist/tiles/index.js +1 -1
  59. package/dist/tiles/index.js.map +1 -1
  60. package/dist/tiles/seed.d.ts +1 -1
  61. package/dist/tiles/seed.d.ts.map +1 -1
  62. package/dist/tiles/seed.js +1 -1
  63. package/dist/tiles/seed.js.map +1 -1
  64. package/dist/tiles/store.d.ts +1 -1
  65. package/dist/tiles/store.d.ts.map +1 -1
  66. package/dist/tiles/store.js +1 -1
  67. package/dist/tiles/store.js.map +1 -1
  68. package/dist/tiles/writer.d.ts +1 -1
  69. package/dist/tiles/writer.d.ts.map +1 -1
  70. package/dist/tiles/writer.js +1 -1
  71. package/dist/tiles/writer.js.map +1 -1
  72. package/dist/tsconfig.tsbuildinfo +1 -1
  73. package/package.json +27 -6
  74. package/public/config.html +14 -0
  75. package/public/index.html +15 -0
  76. package/public/js/config.js +901 -0
  77. package/public/js/config.js.map +7 -0
  78. package/public/js/render-worker.js +706 -0
  79. package/public/js/render-worker.js.map +7 -0
  80. package/public/js/renderer.js +1273 -0
  81. package/public/js/renderer.js.map +7 -0
  82. package/public/renderer.html +14 -0
  83. package/public/styles.css +110 -0
@@ -0,0 +1,37 @@
1
+ /**
2
+ * The tile-store interface shared by both sides, plus an in-memory
3
+ * implementation.
4
+ *
5
+ * The LiveDepth plugin backs it with SQLite; the chart client keeps the tiles
6
+ * in a `Map` (bounded by the viewport it fetches, not the whole record). The
7
+ * shared {@link createTileAccumulator} and {@link minPoolTile} logic works
8
+ * against this interface so both build identical tiles.
9
+ */
10
+ import { TileCells } from "./grid.js";
11
+ export interface TileStore {
12
+ /** A tile's cells, or undefined when it holds no soundings. */
13
+ read(z: number, x: number, y: number): TileCells | undefined;
14
+ /** Replace a tile (deletes it when empty). */
15
+ write(z: number, x: number, y: number, cells: TileCells): void;
16
+ /** Merge cells into a tile, keeping the shallowest depth and summing counts. */
17
+ merge(z: number, x: number, y: number, incoming: TileCells): void;
18
+ /** Rebuild every ancestor of a changed base tile, up to {@link MIN_ZOOM}. */
19
+ updateAncestors(z: number, x: number, y: number): void;
20
+ /** Every occupied tile at a level (for a bulk pyramid rebuild). */
21
+ listTiles(z: number): {
22
+ x: number;
23
+ y: number;
24
+ }[];
25
+ /** Read a store-level key. */
26
+ getMeta(key: string): string | undefined;
27
+ /** Write a store-level key. */
28
+ setMeta(key: string, value: string): void;
29
+ /** Run `fn` inside a single transaction (a no-op batch on the client). */
30
+ transaction<T>(fn: () => T): T;
31
+ /** Drop every tile. */
32
+ clear(): void;
33
+ /** Release any resources (a no-op for the in-memory store). */
34
+ close(): void;
35
+ }
36
+ export declare function createMemoryTileStore(): TileStore;
37
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/tiles/core/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAY,SAAS,EAAe,MAAM,WAAW,CAAC;AAE7D,MAAM,WAAW,SAAS;IACxB,+DAA+D;IAC/D,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;IAC7D,8CAA8C;IAC9C,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IAC/D,gFAAgF;IAChF,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,GAAG,IAAI,CAAC;IAClE,6EAA6E;IAC7E,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvD,mEAAmE;IACnE,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACjD,8BAA8B;IAC9B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACzC,+BAA+B;IAC/B,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,0EAA0E;IAC1E,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IAC/B,uBAAuB;IACvB,KAAK,IAAI,IAAI,CAAC;IACd,+DAA+D;IAC/D,KAAK,IAAI,IAAI,CAAC;CACf;AAED,wBAAgB,qBAAqB,IAAI,SAAS,CAkFjD"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * The tile-store interface shared by both sides, plus an in-memory
3
+ * implementation.
4
+ *
5
+ * The LiveDepth plugin backs it with SQLite; the chart client keeps the tiles
6
+ * in a `Map` (bounded by the viewport it fetches, not the whole record). The
7
+ * shared {@link createTileAccumulator} and {@link minPoolTile} logic works
8
+ * against this interface so both build identical tiles.
9
+ */
10
+ import { MIN_ZOOM, minPoolTile } from "./grid.js";
11
+ export function createMemoryTileStore() {
12
+ const tiles = new Map();
13
+ const meta = new Map();
14
+ const key = (z, x, y) => `${z}/${x}/${y}`;
15
+ const read = (z, x, y) => tiles.get(key(z, x, y));
16
+ const write = (z, x, y, cells) => {
17
+ if (cells.size === 0) {
18
+ tiles.delete(key(z, x, y));
19
+ return;
20
+ }
21
+ tiles.set(key(z, x, y), cells);
22
+ };
23
+ const merge = (z, x, y, incoming) => {
24
+ const cells = read(z, x, y) ?? new Map();
25
+ for (const [k, cell] of incoming) {
26
+ const existing = cells.get(k);
27
+ if (!existing) {
28
+ cells.set(k, { depth: cell.depth, count: cell.count });
29
+ }
30
+ else {
31
+ if (cell.depth < existing.depth)
32
+ existing.depth = cell.depth;
33
+ existing.count = Math.min(255, existing.count + cell.count);
34
+ }
35
+ }
36
+ write(z, x, y, cells);
37
+ };
38
+ const updateAncestors = (z, x, y) => {
39
+ let lz = z;
40
+ let lx = x;
41
+ let ly = y;
42
+ while (lz > MIN_ZOOM) {
43
+ const pz = lz - 1;
44
+ const px = lx >> 1;
45
+ const py = ly >> 1;
46
+ const children = [
47
+ read(lz, px * 2, py * 2),
48
+ read(lz, px * 2 + 1, py * 2),
49
+ read(lz, px * 2, py * 2 + 1),
50
+ read(lz, px * 2 + 1, py * 2 + 1),
51
+ ];
52
+ write(pz, px, py, minPoolTile(children));
53
+ lz = pz;
54
+ lx = px;
55
+ ly = py;
56
+ }
57
+ };
58
+ return {
59
+ read,
60
+ write,
61
+ merge,
62
+ updateAncestors,
63
+ listTiles: (z) => {
64
+ const out = [];
65
+ for (const key of tiles.keys()) {
66
+ const [tz, tx, ty] = key.split("/");
67
+ if (Number(tz) === z) {
68
+ out.push({ x: Number(tx), y: Number(ty) });
69
+ }
70
+ }
71
+ return out;
72
+ },
73
+ getMeta: (k) => meta.get(k),
74
+ setMeta: (k, v) => {
75
+ meta.set(k, v);
76
+ },
77
+ transaction: (fn) => fn(),
78
+ clear: () => {
79
+ tiles.clear();
80
+ },
81
+ close: () => {
82
+ tiles.clear();
83
+ },
84
+ };
85
+ }
86
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/tiles/core/store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /** Helpers for reading the LiveDepth bathymetry tiles.
2
+ *
3
+ * Glue around the grid: pick the tile level for a target ground resolution,
4
+ * work out which tiles cover a viewport, and turn a decoded tile's cells back
5
+ * into lon/lat depth soundings. Pure functions (no HTTP, no framework) so they
6
+ * can be unit tested directly.
7
+ */
8
+ import { Sounding } from "./types.js";
9
+ import { TransducerOffset } from "./correction.js";
10
+ import { TileCells, cellSize } from "./grid.js";
11
+ /** Grid spec served by `/plugins/<id>/bathymetry/meta`. */
12
+ export interface TileMeta {
13
+ format: string;
14
+ baseZoom: number;
15
+ minZoom: number;
16
+ tileSize: number;
17
+ recordBytes: number;
18
+ depthPath?: string;
19
+ /** Offset from the position the server reports to the depth transducer, when
20
+ * the plugin corrects for it; absent or null otherwise. A client applies the
21
+ * same shift to its own soundings so they match the served tiles. */
22
+ transducer?: TransducerOffset | null;
23
+ }
24
+ /** The finest tile level whose cells are no coarser than `cellMetres`, clamped
25
+ * to the served range. Finer than needed wastes requests; coarser loses detail
26
+ * the field could have shown. */
27
+ export declare function zoomForCellSize(cellMetres: number, minZoom?: number, baseZoom?: number): number;
28
+ /** The tiles (wrapped x) covering a `[west, south, east, north]` box at level
29
+ * z. `west > east` is read the short way round the antimeridian. */
30
+ export declare function tileRangeForBbox(bbox: readonly number[], z: number): {
31
+ xs: number[];
32
+ ys: number[];
33
+ };
34
+ /** Lon/lat of the centre of a cell within a tile. */
35
+ export declare function tileCellCentre(z: number, x: number, y: number, key: number): [number, number];
36
+ /** Turn a tile's cells into lon/lat depth samples. */
37
+ export declare function cellsToSamples(z: number, x: number, y: number, cells: TileCells): Sounding[];
38
+ /** Decode a served tile blob into lon/lat depth samples. */
39
+ export declare function decodeTileSamples(z: number, x: number, y: number, bytes: Uint8Array): Sounding[];
40
+ export { cellSize };
41
+ //# sourceMappingURL=tile-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tile-source.d.ts","sourceRoot":"","sources":["../../../src/tiles/core/tile-source.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAIL,SAAS,EACT,QAAQ,EAGT,MAAM,WAAW,CAAC;AAEnB,2DAA2D;AAC3D,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;yEAEqE;IACrE,UAAU,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACtC;AAID;;iCAEiC;AACjC,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,OAAO,SAAW,EAClB,QAAQ,SAAY,GACnB,MAAM,CAOR;AAkBD;oEACoE;AACpE,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,CAAC,EAAE,MAAM,GACR;IAAE,EAAE,EAAE,MAAM,EAAE,CAAC;IAAC,EAAE,EAAE,MAAM,EAAE,CAAA;CAAE,CA0BhC;AAED,qDAAqD;AACrD,wBAAgB,cAAc,CAC5B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,GAAG,EAAE,MAAM,GACV,CAAC,MAAM,EAAE,MAAM,CAAC,CASlB;AAED,sDAAsD;AACtD,wBAAgB,cAAc,CAC5B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,SAAS,GACf,QAAQ,EAAE,CASZ;AAED,4DAA4D;AAC5D,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,UAAU,GAChB,QAAQ,EAAE,CAEZ;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,86 @@
1
+ /** Helpers for reading the LiveDepth bathymetry tiles.
2
+ *
3
+ * Glue around the grid: pick the tile level for a target ground resolution,
4
+ * work out which tiles cover a viewport, and turn a decoded tile's cells back
5
+ * into lon/lat depth soundings. Pure functions (no HTTP, no framework) so they
6
+ * can be unit tested directly.
7
+ */
8
+ import { BASE_ZOOM, MIN_ZOOM, TILE_SIZE, cellSize, decodeDepth, decodeTile, } from "./grid.js";
9
+ const RAD = Math.PI / 180;
10
+ /** The finest tile level whose cells are no coarser than `cellMetres`, clamped
11
+ * to the served range. Finer than needed wastes requests; coarser loses detail
12
+ * the field could have shown. */
13
+ export function zoomForCellSize(cellMetres, minZoom = MIN_ZOOM, baseZoom = BASE_ZOOM) {
14
+ if (!(cellMetres > 0))
15
+ return baseZoom;
16
+ // Round up, so the chosen level's cells are no coarser than requested.
17
+ const ideal = Math.ceil(Math.log2((2 * Math.PI * 6378137) / (TILE_SIZE * cellMetres)));
18
+ return Math.max(minZoom, Math.min(baseZoom, ideal));
19
+ }
20
+ /** Tile x for a longitude at level z; may fall outside `[0, 2^z)` for a view
21
+ * panned a world away, and is wrapped by the caller. */
22
+ function lonToTileX(lon, z) {
23
+ return ((lon + 180) / 360) * Math.pow(2, z);
24
+ }
25
+ /** Tile y for a latitude at level z (south = larger y). */
26
+ function latToTileY(lat, z) {
27
+ const clamped = Math.max(-85.05112878, Math.min(85.05112878, lat));
28
+ const latRad = clamped * RAD;
29
+ return (((1 - Math.log(Math.tan(latRad) + 1 / Math.cos(latRad)) / Math.PI) / 2) *
30
+ Math.pow(2, z));
31
+ }
32
+ /** The tiles (wrapped x) covering a `[west, south, east, north]` box at level
33
+ * z. `west > east` is read the short way round the antimeridian. */
34
+ export function tileRangeForBbox(bbox, z) {
35
+ const n = Math.pow(2, z);
36
+ if (bbox.length !== 4) {
37
+ return { xs: [], ys: [] };
38
+ }
39
+ const [west, south, east, north] = bbox;
40
+ const xStart = Math.floor(lonToTileX(west, z));
41
+ let xEnd = Math.floor(lonToTileX(east, z));
42
+ if (xEnd < xStart) {
43
+ xEnd += n; // wrapped past the antimeridian
44
+ }
45
+ const xCount = Math.min(n, xEnd - xStart + 1);
46
+ const xs = [];
47
+ for (let i = 0; i < xCount; i++) {
48
+ xs.push((((xStart + i) % n) + n) % n);
49
+ }
50
+ const yStart = Math.max(0, Math.floor(latToTileY(north, z)));
51
+ const yEnd = Math.min(n - 1, Math.floor(latToTileY(south, z)));
52
+ const ys = [];
53
+ for (let y = yStart; y <= yEnd; y++) {
54
+ ys.push(y);
55
+ }
56
+ return { xs, ys };
57
+ }
58
+ /** Lon/lat of the centre of a cell within a tile. */
59
+ export function tileCellCentre(z, x, y, key) {
60
+ const n = Math.pow(2, z);
61
+ const cx = key % TILE_SIZE;
62
+ const cy = Math.floor(key / TILE_SIZE);
63
+ const fx = (x + (cx + 0.5) / TILE_SIZE) / n;
64
+ const fy = (y + (cy + 0.5) / TILE_SIZE) / n;
65
+ const lon = fx * 360 - 180;
66
+ const lat = Math.atan(Math.sinh(Math.PI * (1 - 2 * fy))) / RAD;
67
+ return [lon, lat];
68
+ }
69
+ /** Turn a tile's cells into lon/lat depth samples. */
70
+ export function cellsToSamples(z, x, y, cells) {
71
+ const samples = [];
72
+ for (const [key, cell] of cells) {
73
+ const depth = decodeDepth(cell.depth);
74
+ if (!Number.isFinite(depth))
75
+ continue;
76
+ const [lon, lat] = tileCellCentre(z, x, y, key);
77
+ samples.push({ lon, lat, depth });
78
+ }
79
+ return samples;
80
+ }
81
+ /** Decode a served tile blob into lon/lat depth samples. */
82
+ export function decodeTileSamples(z, x, y, bytes) {
83
+ return cellsToSamples(z, x, y, decodeTile(bytes));
84
+ }
85
+ export { cellSize };
86
+ //# sourceMappingURL=tile-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tile-source.js","sourceRoot":"","sources":["../../../src/tiles/core/tile-source.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * A depth sounding at a position, depth in metres (canonical Signal K). The
3
+ * shared input to {@link createTileAccumulator} on both the server plugin and
4
+ * the chart client.
5
+ */
6
+ export interface Sounding {
7
+ lon: number;
8
+ lat: number;
9
+ depth: number;
10
+ }
11
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tiles/core/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/tiles/core/types.ts"],"names":[],"mappings":""}
@@ -1,4 +1,4 @@
1
- export * from "signalk-livedepth-tiles";
1
+ export * from "./core/index.js";
2
2
  export * from "./store.js";
3
3
  export * from "./writer.js";
4
4
  export * from "./seed.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tiles/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tiles/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC"}
@@ -1,4 +1,4 @@
1
- export * from "signalk-livedepth-tiles";
1
+ export * from "./core/index.js";
2
2
  export * from "./store.js";
3
3
  export * from "./writer.js";
4
4
  export * from "./seed.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tiles/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tiles/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC"}
@@ -2,7 +2,7 @@ import { ServerAPI } from "@signalk/server-api";
2
2
  import type { HistoryApi } from "@signalk/server-api/history";
3
3
  import { Temporal } from "@js-temporal/polyfill";
4
4
  import { Config } from "../config.js";
5
- import { TileStore, TransducerOffset } from "signalk-livedepth-tiles";
5
+ import { TileStore, TransducerOffset } from "./core/index.js";
6
6
  /** Highest granularity we ask the History API for, in seconds. */
7
7
  export declare const DEFAULT_SEED_RESOLUTION = 0.1;
8
8
  /** Hours of history fetched per request, to bound each response. */
@@ -1 +1 @@
1
- {"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../../src/tiles/seed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EACV,UAAU,EAGX,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtC,OAAO,EACL,SAAS,EACT,gBAAgB,EAIjB,MAAM,yBAAyB,CAAC;AAEjC,kEAAkE;AAClE,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,oEAAoE;AACpE,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,sEAAsE;AACtE,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAE7C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,SAAS,CAAC;IACf,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC;IACxB,kDAAkD;IAClD,EAAE,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC;IACtB,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,wEAAwE;IACxE,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;CAC/C;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,EACpC,GAAG,EACH,KAAK,EACL,MAAM,EACN,IAAI,EACJ,EAA2B,EAC3B,UAAoC,EACpC,UAAqC,EACrC,OAAO,EACP,MAAM,EACN,MAAM,EACN,UAAU,GACX,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAwFrC"}
1
+ {"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../../src/tiles/seed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EACV,UAAU,EAGX,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtC,OAAO,EACL,SAAS,EACT,gBAAgB,EAIjB,MAAM,iBAAiB,CAAC;AAEzB,kEAAkE;AAClE,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,oEAAoE;AACpE,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,sEAAsE;AACtE,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAE7C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,SAAS,CAAC;IACf,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC;IACxB,kDAAkD;IAClD,EAAE,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC;IACtB,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,wEAAwE;IACxE,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;CAC/C;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,EACpC,GAAG,EACH,KAAK,EACL,MAAM,EACN,IAAI,EACJ,EAA2B,EAC3B,UAAoC,EACpC,UAAqC,EACrC,OAAO,EACP,MAAM,EACN,MAAM,EACN,UAAU,GACX,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAwFrC"}
@@ -1,7 +1,7 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
2
  import { BATHY_EPOCH } from "../constants.js";
3
3
  import { getHistoryAPI, columnsByPath } from "../history.js";
4
- import { correctToTransducer, createTileAccumulator, rebuildAncestors, } from "signalk-livedepth-tiles";
4
+ import { correctToTransducer, createTileAccumulator, rebuildAncestors, } from "./core/index.js";
5
5
  /** Highest granularity we ask the History API for, in seconds. */
6
6
  export const DEFAULT_SEED_RESOLUTION = 0.1;
7
7
  /** Hours of history fetched per request, to bound each response. */
@@ -1 +1 @@
1
- {"version":3,"file":"seed.js","sourceRoot":"","sources":["../../src/tiles/seed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seed.js","sourceRoot":"","sources":["../../src/tiles/seed.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { DatabaseSync } from "node:sqlite";
2
- import { TileStore } from "signalk-livedepth-tiles";
2
+ import { TileStore } from "./core/index.js";
3
3
  /**
4
4
  * The derived, gridded store the chart reads from. It sits beside the raw
5
5
  * `bathymetry` sounding log: the log stays the provenance/upload source of
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/tiles/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAGL,SAAS,EAKV,MAAM,yBAAyB,CAAC;AAEjC;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,CAuB3D;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,YAAY,GAAG,SAAS,CAkG3D"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/tiles/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAGL,SAAS,EAKV,MAAM,iBAAiB,CAAC;AAEzB;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,CAuB3D;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,YAAY,GAAG,SAAS,CAkG3D"}
@@ -1,5 +1,5 @@
1
1
  import { DatabaseSync } from "node:sqlite";
2
- import { MIN_ZOOM, decodeTile, encodeTile, mergeCell, minPoolTile, } from "signalk-livedepth-tiles";
2
+ import { MIN_ZOOM, decodeTile, encodeTile, mergeCell, minPoolTile, } from "./core/index.js";
3
3
  /**
4
4
  * The derived, gridded store the chart reads from. It sits beside the raw
5
5
  * `bathymetry` sounding log: the log stays the provenance/upload source of
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/tiles/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/tiles/store.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Writable } from "stream";
2
- import { TileStore } from "signalk-livedepth-tiles";
2
+ import { TileStore } from "./core/index.js";
3
3
  /** How long soundings are batched before being written to the store. */
4
4
  export declare const DEFAULT_FLUSH_MS = 1000;
5
5
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/tiles/writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,EAEL,SAAS,EAEV,MAAM,yBAAyB,CAAC;AAEjC,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAErC;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,EAChB,EACE,QAAoB,EACpB,eAAkC,GACnC,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAO,GACtD,QAAQ,CAqCV"}
1
+ {"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/tiles/writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,EAAa,SAAS,EAAyB,MAAM,iBAAiB,CAAC;AAE9E,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAErC;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,EAChB,EACE,QAAoB,EACpB,eAAkC,GACnC,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAO,GACtD,QAAQ,CAqCV"}
@@ -1,5 +1,5 @@
1
1
  import { Writable } from "stream";
2
- import { BASE_ZOOM, createTileAccumulator, } from "signalk-livedepth-tiles";
2
+ import { BASE_ZOOM, createTileAccumulator } from "./core/index.js";
3
3
  /** How long soundings are batched before being written to the store. */
4
4
  export const DEFAULT_FLUSH_MS = 1000;
5
5
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"writer.js","sourceRoot":"","sources":["../../src/tiles/writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,EACL,SAAS,EAET,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AAEjC,wEAAwE;AACxE,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAErC;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAgB,EAChB,EACE,QAAQ,GAAG,SAAS,EACpB,eAAe,GAAG,gBAAgB,GACnC,GAAoD,EAAE;IAEvD,MAAM,WAAW,GAAG,qBAAqB,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE/D,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,eAAe,CAAC,CAAC;IACtE,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;IAEhB,OAAO,IAAI,QAAQ,CAAC;QAClB,UAAU,EAAE,IAAI;QAChB,KAAK,CAAC,IAAoB,EAAE,SAAS,EAAE,QAAQ;YAC7C,IAAI,CAAC;gBACH,WAAW,CAAC,GAAG,CAAC;oBACd,GAAG,EAAE,IAAI,CAAC,SAAS;oBACnB,GAAG,EAAE,IAAI,CAAC,QAAQ;oBAClB,KAAK,EAAE,IAAI,CAAC,KAAK;iBAClB,CAAC,CAAC;gBACH,QAAQ,EAAE,CAAC;YACb,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,QAAQ,CAAC,GAAY,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QACD,KAAK,CAAC,QAAQ;YACZ,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,IAAI,CAAC;gBACH,WAAW,CAAC,KAAK,EAAE,CAAC;gBACpB,QAAQ,EAAE,CAAC;YACb,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,QAAQ,CAAC,GAAY,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QACD,uEAAuE;QACvE,wEAAwE;QACxE,sEAAsE;QACtE,OAAO,CAAC,KAAK,EAAE,QAAQ;YACrB,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"writer.js","sourceRoot":"","sources":["../../src/tiles/writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,EAAE,SAAS,EAAa,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE9E,wEAAwE;AACxE,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAErC;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAgB,EAChB,EACE,QAAQ,GAAG,SAAS,EACpB,eAAe,GAAG,gBAAgB,GACnC,GAAoD,EAAE;IAEvD,MAAM,WAAW,GAAG,qBAAqB,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE/D,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,eAAe,CAAC,CAAC;IACtE,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;IAEhB,OAAO,IAAI,QAAQ,CAAC;QAClB,UAAU,EAAE,IAAI;QAChB,KAAK,CAAC,IAAoB,EAAE,SAAS,EAAE,QAAQ;YAC7C,IAAI,CAAC;gBACH,WAAW,CAAC,GAAG,CAAC;oBACd,GAAG,EAAE,IAAI,CAAC,SAAS;oBACnB,GAAG,EAAE,IAAI,CAAC,QAAQ;oBAClB,KAAK,EAAE,IAAI,CAAC,KAAK;iBAClB,CAAC,CAAC;gBACH,QAAQ,EAAE,CAAC;YACb,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,QAAQ,CAAC,GAAY,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QACD,KAAK,CAAC,QAAQ;YACZ,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,IAAI,CAAC;gBACH,WAAW,CAAC,KAAK,EAAE,CAAC;gBACpB,QAAQ,EAAE,CAAC;YACb,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,QAAQ,CAAC,GAAY,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QACD,uEAAuE;QACvE,wEAAwE;QACxE,sEAAsE;QACtE,OAAO,CAAC,KAAK,EAAE,QAAQ;YACrB,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}