signalk-livedepth-plugin 0.3.19 → 0.3.21
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/CHANGELOG.md +21 -0
- package/dist/plugin.d.ts +11 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +161 -32
- package/dist/plugin.js.map +1 -1
- package/dist/tiles/core/accumulator.d.ts +0 -6
- package/dist/tiles/core/accumulator.d.ts.map +1 -1
- package/dist/tiles/core/accumulator.js +27 -10
- package/dist/tiles/core/accumulator.js.map +1 -1
- package/dist/tiles/seed-worker.d.ts +68 -0
- package/dist/tiles/seed-worker.d.ts.map +1 -0
- package/dist/tiles/seed-worker.js +107 -0
- package/dist/tiles/seed-worker.js.map +1 -0
- package/dist/tiles/seed.d.ts.map +1 -1
- package/dist/tiles/seed.js +9 -3
- package/dist/tiles/seed.js.map +1 -1
- package/dist/tiles/store.d.ts.map +1 -1
- package/dist/tiles/store.js +4 -1
- package/dist/tiles/store.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/public/js/renderer.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,27 @@ All notable changes to this project are documented here, newest first. The
|
|
|
4
4
|
format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and
|
|
5
5
|
versions follow [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## [0.3.21] - 2026-11-07
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- **History rebuilds no longer stall the server.** The one-time import now runs
|
|
12
|
+
in a worker thread with its own SQLite connection, so folding historical rows,
|
|
13
|
+
writing tiles and rebuilding the map pyramid no longer block Signal K's event
|
|
14
|
+
loop. The History API provider stays in the main process; the worker requests
|
|
15
|
+
each window over a message port, and the live writer and import share the
|
|
16
|
+
database through WAL with a short busy timeout.
|
|
17
|
+
|
|
18
|
+
## [0.3.20] - 2026-11-07
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
|
|
22
|
+
- **An interrupted history rebuild now resumes.** A server or plugin restart
|
|
23
|
+
aborts the rebuild, but the one-time trigger was cleared anyway, so the next
|
|
24
|
+
start did not resume and the rebuild looked finished. An interrupted run now
|
|
25
|
+
leaves the trigger set and continues from the last completed chunk; it is
|
|
26
|
+
cleared only when the rebuild completes (or fails).
|
|
27
|
+
|
|
7
28
|
## [0.3.19] - 2026-11-07
|
|
8
29
|
|
|
9
30
|
### Added
|
package/dist/plugin.d.ts
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import { ServerAPI, Plugin } from "@signalk/server-api";
|
|
2
|
+
import { Worker } from "node:worker_threads";
|
|
2
3
|
import { TransducerOffset } from "./tiles/core/index.js";
|
|
3
4
|
import { Config } from "./config.js";
|
|
5
|
+
import type { SeedWorkerData } from "./tiles/seed-worker.js";
|
|
6
|
+
/** How a history rebuild ended. Only a completed or failed run consumes the
|
|
7
|
+
* one-time `seed.run` trigger; an interrupted run leaves it set so the next
|
|
8
|
+
* start resumes from the stored cursor. */
|
|
9
|
+
export type SeedOutcome = "completed" | "failed" | "aborted" | "skipped";
|
|
4
10
|
/** The vessel's length overall, for locating the reference point the server
|
|
5
11
|
* reports (the CCRP is midships).
|
|
6
12
|
*
|
|
@@ -23,5 +29,9 @@ export declare function readVesselBeam(app: ServerAPI): number | undefined;
|
|
|
23
29
|
* offset is meaningless. We still apply what the user configured, but flag it.
|
|
24
30
|
*/
|
|
25
31
|
export declare function resolveTransducerOffset(app: ServerAPI, config: Config): TransducerOffset | undefined;
|
|
26
|
-
|
|
32
|
+
/** Overridable only so tests can run the seed without a real worker thread. */
|
|
33
|
+
export interface PluginOptions {
|
|
34
|
+
createSeedWorker?: (data: SeedWorkerData) => Worker;
|
|
35
|
+
}
|
|
36
|
+
export default function createPlugin(app: ServerAPI, options?: PluginOptions): Plugin;
|
|
27
37
|
//# sourceMappingURL=plugin.d.ts.map
|
package/dist/plugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAgB,MAAM,qBAAqB,CAAC;AAEtE,OAAO,EAAE,gBAAgB,EAAa,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAwB,MAAM,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAgB,MAAM,qBAAqB,CAAC;AAEtE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,OAAO,EAAE,gBAAgB,EAAa,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAwB,MAAM,EAAE,MAAM,aAAa,CAAC;AAI3D,OAAO,KAAK,EACV,cAAc,EAGf,MAAM,wBAAwB,CAAC;AAqBhC;;2CAE2C;AAC3C,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;AAEzE;;;;;;;mEAOmE;AACnE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAWpE;AAED;sEACsE;AACtE,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAOjE;AAQD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,MAAM,GACb,gBAAgB,GAAG,SAAS,CA2B9B;AAOD,+EAA+E;AAC/E,MAAM,WAAW,aAAa;IAC5B,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,MAAM,CAAC;CACrD;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,GAAG,EAAE,SAAS,EACd,OAAO,GAAE,aAAkB,GAC1B,MAAM,CA2UR"}
|
package/dist/plugin.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
import { Worker } from "node:worker_threads";
|
|
1
2
|
import { join } from "path";
|
|
3
|
+
import { Temporal } from "@js-temporal/polyfill";
|
|
2
4
|
import { schema, formUiSchema } from "./config.js";
|
|
3
5
|
import { createTileDB, createTileStore } from "./tiles/store.js";
|
|
4
6
|
import { createTileWriter } from "./tiles/writer.js";
|
|
5
|
-
import { SEED_CURSOR_KEY
|
|
7
|
+
import { SEED_CURSOR_KEY } from "./tiles/seed.js";
|
|
8
|
+
import { getHistoryAPI } from "./history.js";
|
|
6
9
|
import { TIDE_MODE_KEY, createSlackwaterTideProvider, createTideCorrection, datumLabel, shouldResetGrid, tideMode, } from "./tide.js";
|
|
7
10
|
import { registerBathymetryRoutes, registerSeedRoutes, } from "./tiles/api.js";
|
|
8
11
|
import { registerPlotterExtension } from "./plotterext/provider.js";
|
|
@@ -76,7 +79,11 @@ export function resolveTransducerOffset(app, config) {
|
|
|
76
79
|
function skipNote(skipped) {
|
|
77
80
|
return skipped > 0 ? ` (${skipped} skipped: no tide prediction)` : "";
|
|
78
81
|
}
|
|
79
|
-
export default function createPlugin(app) {
|
|
82
|
+
export default function createPlugin(app, options = {}) {
|
|
83
|
+
const createSeedWorker = options.createSeedWorker ??
|
|
84
|
+
((data) => new Worker(new URL("./tiles/seed-worker.js", import.meta.url), {
|
|
85
|
+
workerData: data,
|
|
86
|
+
}));
|
|
80
87
|
let abortController = undefined;
|
|
81
88
|
// The gridded store served to chart clients. Built in start(), read by the
|
|
82
89
|
// routes registered in registerWithRouter().
|
|
@@ -87,48 +94,151 @@ export default function createPlugin(app) {
|
|
|
87
94
|
/** The datum the store is in; also reported to chart clients. */
|
|
88
95
|
let tideState = "off";
|
|
89
96
|
let seedStatus = { running: false };
|
|
97
|
+
/** Bumped on every start/stop so a seed still winding down cannot overwrite
|
|
98
|
+
* the status of the run that replaced it. */
|
|
99
|
+
let seedGeneration = 0;
|
|
100
|
+
let seedWorker;
|
|
101
|
+
let seedSettle;
|
|
90
102
|
let running = false;
|
|
91
103
|
let routesRegistered = false;
|
|
92
104
|
const runSeed = async (resolution) => {
|
|
93
105
|
if (seedStatus.running)
|
|
94
|
-
return;
|
|
95
|
-
const store = tileStore;
|
|
106
|
+
return "skipped";
|
|
96
107
|
const cfg = config;
|
|
97
|
-
if (!
|
|
98
|
-
return;
|
|
108
|
+
if (!tileStore || !cfg)
|
|
109
|
+
return "skipped";
|
|
99
110
|
// The store's datum is fixed once it holds cells: fold history with the
|
|
100
111
|
// same correction it was built with, and refuse rather than write raw rows
|
|
101
112
|
// into a datum grid.
|
|
102
113
|
if (tideState !== "off" && !tide) {
|
|
103
114
|
seedStatus = { running: false, error: "tide model unavailable" };
|
|
104
115
|
app.setPluginError("Cannot rebuild from history: the tide model is unavailable, so raw depths would be stored in the wrong datum.");
|
|
105
|
-
return;
|
|
116
|
+
return "failed";
|
|
106
117
|
}
|
|
118
|
+
// If the plugin is stopped and started while this run is still finishing,
|
|
119
|
+
// the run is superseded: its worker is terminated and the new run owns the
|
|
120
|
+
// status.
|
|
121
|
+
const generation = seedGeneration;
|
|
122
|
+
const current = () => generation === seedGeneration;
|
|
107
123
|
seedStatus = { running: true };
|
|
124
|
+
app.setPluginStatus("Waiting for the history provider…");
|
|
125
|
+
const api = await getHistoryAPI({ app });
|
|
126
|
+
if (!current())
|
|
127
|
+
return "aborted";
|
|
128
|
+
if (!api) {
|
|
129
|
+
seedStatus = { running: false, error: "no history provider" };
|
|
130
|
+
app.setPluginError("Cannot rebuild from history: no History API provider is available.");
|
|
131
|
+
return "failed";
|
|
132
|
+
}
|
|
108
133
|
app.setPluginStatus("Rebuilding bathymetry tiles from history…");
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
134
|
+
return new Promise((resolve) => {
|
|
135
|
+
let settled = false;
|
|
136
|
+
const settle = (outcome) => {
|
|
137
|
+
if (settled)
|
|
138
|
+
return;
|
|
139
|
+
settled = true;
|
|
140
|
+
if (seedSettle === settle)
|
|
141
|
+
seedSettle = undefined;
|
|
142
|
+
resolve(outcome);
|
|
143
|
+
};
|
|
144
|
+
seedSettle = settle;
|
|
145
|
+
// The worker owns its own SQLite connection and does the expensive
|
|
146
|
+
// folding, writing and pyramid rebuild. History requests are forwarded
|
|
147
|
+
// here because the provider lives in this process.
|
|
148
|
+
const worker = createSeedWorker({
|
|
149
|
+
dbPath: join(app.getDataDirPath(), "bathymetry-tiles.sqlite"),
|
|
113
150
|
config: cfg,
|
|
114
151
|
resolution,
|
|
115
152
|
offset: transducer,
|
|
116
|
-
tide,
|
|
117
|
-
signal: abortController?.signal,
|
|
118
|
-
onProgress: (p) => {
|
|
119
|
-
seedStatus = { running: !p.done, progress: p };
|
|
120
|
-
app.setPluginStatus(`Rebuilding bathymetry tiles: ${p.points} points over ${p.chunks} windows${skipNote(p.skipped)}`);
|
|
121
|
-
},
|
|
153
|
+
tide: tideState === "off" ? undefined : tideState,
|
|
122
154
|
});
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
155
|
+
seedWorker = worker;
|
|
156
|
+
worker.on("message", (message) => {
|
|
157
|
+
if (!current())
|
|
158
|
+
return;
|
|
159
|
+
if (message.type === "getValues") {
|
|
160
|
+
const req = {
|
|
161
|
+
...message.req,
|
|
162
|
+
from: Temporal.Instant.from(message.req.from),
|
|
163
|
+
to: Temporal.Instant.from(message.req.to),
|
|
164
|
+
};
|
|
165
|
+
api.getValues(req).then((res) => {
|
|
166
|
+
if (!current())
|
|
167
|
+
return;
|
|
168
|
+
worker.postMessage({
|
|
169
|
+
type: "getValuesResult",
|
|
170
|
+
id: message.id,
|
|
171
|
+
res,
|
|
172
|
+
});
|
|
173
|
+
}, (err) => {
|
|
174
|
+
if (!current())
|
|
175
|
+
return;
|
|
176
|
+
worker.postMessage({
|
|
177
|
+
type: "getValuesError",
|
|
178
|
+
id: message.id,
|
|
179
|
+
message: String(err),
|
|
180
|
+
});
|
|
181
|
+
});
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
switch (message.type) {
|
|
185
|
+
case "progress": {
|
|
186
|
+
seedStatus = {
|
|
187
|
+
running: !message.progress.done,
|
|
188
|
+
progress: message.progress,
|
|
189
|
+
};
|
|
190
|
+
app.setPluginStatus(`Rebuilding bathymetry tiles: ${message.progress.points} points over ${message.progress.chunks} windows${skipNote(message.progress.skipped)}`);
|
|
191
|
+
break;
|
|
192
|
+
}
|
|
193
|
+
case "result": {
|
|
194
|
+
seedStatus = { running: false, progress: message.progress };
|
|
195
|
+
if (message.progress.done) {
|
|
196
|
+
app.setPluginStatus(`Bathymetry rebuild complete: ${message.progress.points} points${skipNote(message.progress.skipped)}`);
|
|
197
|
+
settle("completed");
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
app.setPluginStatus(`Bathymetry rebuild interrupted after ${message.progress.chunks} windows; it will resume on the next start.`);
|
|
201
|
+
settle("aborted");
|
|
202
|
+
}
|
|
203
|
+
break;
|
|
204
|
+
}
|
|
205
|
+
case "error": {
|
|
206
|
+
seedStatus = { running: false, error: message.message };
|
|
207
|
+
app.setPluginError(`Bathymetry rebuild failed: ${message.message}`);
|
|
208
|
+
settle("failed");
|
|
209
|
+
break;
|
|
210
|
+
}
|
|
211
|
+
case "debug": {
|
|
212
|
+
app.debug("[seed worker] %s", message.message);
|
|
213
|
+
break;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
});
|
|
217
|
+
worker.on("error", (err) => {
|
|
218
|
+
if (!current())
|
|
219
|
+
return settle("aborted");
|
|
220
|
+
seedStatus = { running: false, error: String(err) };
|
|
221
|
+
app.setPluginError(`Bathymetry rebuild failed: ${err}`);
|
|
222
|
+
settle("failed");
|
|
223
|
+
});
|
|
224
|
+
worker.on("exit", (code) => {
|
|
225
|
+
seedWorker = undefined;
|
|
226
|
+
if (settled)
|
|
227
|
+
return;
|
|
228
|
+
if (!current())
|
|
229
|
+
return settle("aborted");
|
|
230
|
+
seedStatus = { running: false, error: `seed worker exited (${code})` };
|
|
231
|
+
app.setPluginError(`Bathymetry rebuild worker exited with code ${code}.`);
|
|
232
|
+
settle(code === 0 ? "aborted" : "failed");
|
|
233
|
+
});
|
|
234
|
+
});
|
|
235
|
+
};
|
|
236
|
+
const seed = {
|
|
237
|
+
run: async () => {
|
|
238
|
+
await runSeed();
|
|
239
|
+
},
|
|
240
|
+
status: () => seedStatus,
|
|
130
241
|
};
|
|
131
|
-
const seed = { run: runSeed, status: () => seedStatus };
|
|
132
242
|
return {
|
|
133
243
|
id: "signalk-livedepth-plugin",
|
|
134
244
|
name: "LiveDepth",
|
|
@@ -136,6 +246,13 @@ export default function createPlugin(app) {
|
|
|
136
246
|
async start(startConfig, restart) {
|
|
137
247
|
config = startConfig;
|
|
138
248
|
app.debug("Starting signalk-livedepth-plugin");
|
|
249
|
+
// A new start supersedes any seed still winding down from the previous
|
|
250
|
+
// one (its worker is terminated and its store is closed).
|
|
251
|
+
const previous = seedWorker;
|
|
252
|
+
seedWorker = undefined;
|
|
253
|
+
void previous?.terminate();
|
|
254
|
+
seedGeneration++;
|
|
255
|
+
seedStatus = { running: false };
|
|
139
256
|
abortController = new AbortController();
|
|
140
257
|
tileStore = createTileStore(createTileDB(join(app.getDataDirPath(), `bathymetry-tiles.sqlite`)));
|
|
141
258
|
transducer = resolveTransducerOffset(app, config);
|
|
@@ -208,17 +325,29 @@ export default function createPlugin(app) {
|
|
|
208
325
|
routesRegistered = true;
|
|
209
326
|
}
|
|
210
327
|
if (collecting && startConfig.seed?.run) {
|
|
211
|
-
// One-time rebuild.
|
|
212
|
-
//
|
|
213
|
-
//
|
|
214
|
-
void runSeed(startConfig.seed.resolution).then(() =>
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
328
|
+
// One-time rebuild. A completed or failed run consumes the trigger; an
|
|
329
|
+
// interrupted run leaves it set so the next start resumes from the
|
|
330
|
+
// stored cursor instead of repeating.
|
|
331
|
+
void runSeed(startConfig.seed.resolution).then((outcome) => {
|
|
332
|
+
if (outcome === "completed" || outcome === "failed") {
|
|
333
|
+
restart({
|
|
334
|
+
...startConfig,
|
|
335
|
+
seed: { ...startConfig.seed, run: false },
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
});
|
|
218
339
|
}
|
|
219
340
|
},
|
|
220
341
|
stop() {
|
|
221
342
|
running = false;
|
|
343
|
+
seedGeneration++;
|
|
344
|
+
const settle = seedSettle;
|
|
345
|
+
seedSettle = undefined;
|
|
346
|
+
settle?.("aborted");
|
|
347
|
+
const worker = seedWorker;
|
|
348
|
+
seedWorker = undefined;
|
|
349
|
+
void worker?.terminate();
|
|
350
|
+
seedStatus = { running: false };
|
|
222
351
|
abortController?.abort("Stopping signalk-livedepth-plugin");
|
|
223
352
|
tileStore?.close();
|
|
224
353
|
tileStore = undefined;
|
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,12 +24,6 @@ export interface AccumulatorOptions {
|
|
|
24
24
|
ancestors?: boolean;
|
|
25
25
|
}
|
|
26
26
|
export declare function createTileAccumulator(store: TileStore, { baseZoom, ancestors }?: AccumulatorOptions): TileAccumulator;
|
|
27
|
-
/**
|
|
28
|
-
* Build every level of the pyramid from the base tiles in one bottom-up pass:
|
|
29
|
-
* pool each level into the one below, reading each child once. Used after a
|
|
30
|
-
* bulk load that ran with `ancestors: false`, so the whole pyramid is built
|
|
31
|
-
* once rather than re-walked per changed tile per batch.
|
|
32
|
-
*/
|
|
33
27
|
export declare function rebuildAncestors(store: TileStore, { baseZoom, minZoom, }?: {
|
|
34
28
|
baseZoom?: number;
|
|
35
29
|
minZoom?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accumulator.d.ts","sourceRoot":"","sources":["../../../src/tiles/core/accumulator.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAWtC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC5B,KAAK,IAAI,IAAI,CAAC;IACd,0CAA0C;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;0DAGsD;IACtD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,SAAS,EAChB,EAAE,QAAoB,EAAE,SAAgB,EAAE,GAAE,kBAAuB,GAClE,eAAe,CA4CjB;
|
|
1
|
+
{"version":3,"file":"accumulator.d.ts","sourceRoot":"","sources":["../../../src/tiles/core/accumulator.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAWtC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC5B,KAAK,IAAI,IAAI,CAAC;IACd,0CAA0C;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;0DAGsD;IACtD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,SAAS,EAChB,EAAE,QAAoB,EAAE,SAAgB,EAAE,GAAE,kBAAuB,GAClE,eAAe,CA4CjB;AAaD,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,EAChB,EACE,QAAoB,EACpB,OAAkB,GACnB,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GAC9C,IAAI,CAmCN"}
|
|
@@ -52,6 +52,10 @@ export function createTileAccumulator(store, { baseZoom = BASE_ZOOM, ancestors =
|
|
|
52
52
|
* bulk load that ran with `ancestors: false`, so the whole pyramid is built
|
|
53
53
|
* once rather than re-walked per changed tile per batch.
|
|
54
54
|
*/
|
|
55
|
+
/** Parents written per transaction. The seed worker shares the database with
|
|
56
|
+
* the live writer, so a whole pyramid level in one transaction would hold the
|
|
57
|
+
* write lock long enough to stall the live flush. */
|
|
58
|
+
const REBUILD_BATCH = 256;
|
|
55
59
|
export function rebuildAncestors(store, { baseZoom = BASE_ZOOM, minZoom = MIN_ZOOM, } = {}) {
|
|
56
60
|
for (let z = baseZoom; z > minZoom; z--) {
|
|
57
61
|
const parents = new Map();
|
|
@@ -60,16 +64,29 @@ export function rebuildAncestors(store, { baseZoom = BASE_ZOOM, minZoom = MIN_ZO
|
|
|
60
64
|
const py = y >> 1;
|
|
61
65
|
parents.set(`${px},${py}`, { x: px, y: py });
|
|
62
66
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
67
|
+
let batch = [];
|
|
68
|
+
const flush = () => {
|
|
69
|
+
if (batch.length === 0)
|
|
70
|
+
return;
|
|
71
|
+
const writing = batch;
|
|
72
|
+
batch = [];
|
|
73
|
+
store.transaction(() => {
|
|
74
|
+
for (const { x, y } of writing) {
|
|
75
|
+
store.write(z - 1, x, y, minPoolTile([
|
|
76
|
+
store.read(z, x * 2, y * 2),
|
|
77
|
+
store.read(z, x * 2 + 1, y * 2),
|
|
78
|
+
store.read(z, x * 2, y * 2 + 1),
|
|
79
|
+
store.read(z, x * 2 + 1, y * 2 + 1),
|
|
80
|
+
]));
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
};
|
|
84
|
+
for (const parent of parents.values()) {
|
|
85
|
+
batch.push(parent);
|
|
86
|
+
if (batch.length >= REBUILD_BATCH)
|
|
87
|
+
flush();
|
|
88
|
+
}
|
|
89
|
+
flush();
|
|
73
90
|
}
|
|
74
91
|
}
|
|
75
92
|
//# sourceMappingURL=accumulator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accumulator.js","sourceRoot":"","sources":["../../../src/tiles/core/accumulator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"accumulator.js","sourceRoot":"","sources":["../../../src/tiles/core/accumulator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { PathSpec, ValuesResponse } from "@signalk/server-api/history";
|
|
2
|
+
import type { Config } from "../config.js";
|
|
3
|
+
import { TideDatum } from "../tide.js";
|
|
4
|
+
import type { TransducerOffset } from "./core/index.js";
|
|
5
|
+
import { SeedProgress } from "./seed.js";
|
|
6
|
+
/** Everything the seed worker needs to rebuild the store on its own. */
|
|
7
|
+
export interface SeedWorkerData {
|
|
8
|
+
dbPath: string;
|
|
9
|
+
config: Config;
|
|
10
|
+
resolution?: number;
|
|
11
|
+
offset?: TransducerOffset;
|
|
12
|
+
/** The datum to fold history into, or undefined when correction is off. */
|
|
13
|
+
tide?: TideDatum;
|
|
14
|
+
}
|
|
15
|
+
/** A history request with the instants flattened to strings: Temporal objects
|
|
16
|
+
* do not survive `postMessage` structured cloning. */
|
|
17
|
+
export interface SeedWorkerValuesRequest {
|
|
18
|
+
from: string;
|
|
19
|
+
to: string;
|
|
20
|
+
resolution?: number;
|
|
21
|
+
pathSpecs: PathSpec[];
|
|
22
|
+
}
|
|
23
|
+
/** Messages the worker sends to the plugin. */
|
|
24
|
+
export type SeedWorkerOut = {
|
|
25
|
+
type: "progress";
|
|
26
|
+
progress: SeedProgress;
|
|
27
|
+
} | {
|
|
28
|
+
type: "result";
|
|
29
|
+
progress: SeedProgress;
|
|
30
|
+
} | {
|
|
31
|
+
type: "error";
|
|
32
|
+
message: string;
|
|
33
|
+
} | {
|
|
34
|
+
type: "debug";
|
|
35
|
+
message: string;
|
|
36
|
+
} | {
|
|
37
|
+
type: "getValues";
|
|
38
|
+
id: number;
|
|
39
|
+
req: SeedWorkerValuesRequest;
|
|
40
|
+
};
|
|
41
|
+
/** Messages the plugin sends back to the worker. */
|
|
42
|
+
export type SeedWorkerIn = {
|
|
43
|
+
type: "getValuesResult";
|
|
44
|
+
id: number;
|
|
45
|
+
res: ValuesResponse;
|
|
46
|
+
} | {
|
|
47
|
+
type: "getValuesError";
|
|
48
|
+
id: number;
|
|
49
|
+
message: string;
|
|
50
|
+
} | {
|
|
51
|
+
type: "abort";
|
|
52
|
+
};
|
|
53
|
+
/** The slice of a worker's `parentPort` the seed needs, so tests can drive it
|
|
54
|
+
* without a real thread. */
|
|
55
|
+
export interface SeedWorkerPort {
|
|
56
|
+
post(message: SeedWorkerOut): void;
|
|
57
|
+
onMessage(handler: (message: SeedWorkerIn) => void): void;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Rebuild the tile store in a worker thread.
|
|
61
|
+
*
|
|
62
|
+
* The History API provider lives in the main process, so the worker asks the
|
|
63
|
+
* plugin for each chunk over the port instead of reaching for the provider
|
|
64
|
+
* directly. Everything expensive — folding rows, the tide lookup arithmetic,
|
|
65
|
+
* the SQLite writes and the pyramid rebuild — happens here, off the event loop.
|
|
66
|
+
*/
|
|
67
|
+
export declare function runSeedWorker(data: SeedWorkerData, port: SeedWorkerPort): Promise<void>;
|
|
68
|
+
//# sourceMappingURL=seed-worker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seed-worker.d.ts","sourceRoot":"","sources":["../../src/tiles/seed-worker.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,QAAQ,EAER,cAAc,EACf,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EACL,SAAS,EAGV,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAmB,YAAY,EAAE,MAAM,WAAW,CAAC;AAG1D,wEAAwE;AACxE,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,2EAA2E;IAC3E,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED;sDACsD;AACtD,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB;AAED,+CAA+C;AAC/C,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,uBAAuB,CAAA;CAAE,CAAC;AAEpE,oDAAoD;AACpD,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,cAAc,CAAA;CAAE,GAC5D;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAEtB;4BAC4B;AAC5B,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC;IACnC,SAAS,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI,CAAC;CAC3D;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,IAAI,CAAC,CAsFf"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { parentPort, workerData } from "node:worker_threads";
|
|
2
|
+
import { createSlackwaterTideProvider, createTideCorrection, } from "../tide.js";
|
|
3
|
+
import { seedFromHistory } from "./seed.js";
|
|
4
|
+
import { createTileDB, createTileStore } from "./store.js";
|
|
5
|
+
/**
|
|
6
|
+
* Rebuild the tile store in a worker thread.
|
|
7
|
+
*
|
|
8
|
+
* The History API provider lives in the main process, so the worker asks the
|
|
9
|
+
* plugin for each chunk over the port instead of reaching for the provider
|
|
10
|
+
* directly. Everything expensive — folding rows, the tide lookup arithmetic,
|
|
11
|
+
* the SQLite writes and the pyramid rebuild — happens here, off the event loop.
|
|
12
|
+
*/
|
|
13
|
+
export async function runSeedWorker(data, port) {
|
|
14
|
+
const pending = new Map();
|
|
15
|
+
let nextId = 1;
|
|
16
|
+
const controller = new AbortController();
|
|
17
|
+
const abort = () => {
|
|
18
|
+
controller.abort();
|
|
19
|
+
for (const request of pending.values()) {
|
|
20
|
+
request.reject(new Error("aborted"));
|
|
21
|
+
}
|
|
22
|
+
pending.clear();
|
|
23
|
+
};
|
|
24
|
+
port.onMessage((message) => {
|
|
25
|
+
if (message.type === "abort") {
|
|
26
|
+
abort();
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const request = pending.get(message.id);
|
|
30
|
+
if (!request)
|
|
31
|
+
return;
|
|
32
|
+
pending.delete(message.id);
|
|
33
|
+
if (message.type === "getValuesResult") {
|
|
34
|
+
request.resolve(message.res);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
request.reject(new Error(message.message));
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
const history = {
|
|
41
|
+
getValues(req) {
|
|
42
|
+
if (!req.from || !req.to) {
|
|
43
|
+
return Promise.reject(new Error("history request needs from and to"));
|
|
44
|
+
}
|
|
45
|
+
return new Promise((resolve, reject) => {
|
|
46
|
+
const id = nextId++;
|
|
47
|
+
pending.set(id, { resolve, reject });
|
|
48
|
+
port.post({
|
|
49
|
+
type: "getValues",
|
|
50
|
+
id,
|
|
51
|
+
req: {
|
|
52
|
+
from: req.from.toString(),
|
|
53
|
+
to: req.to.toString(),
|
|
54
|
+
resolution: req.resolution,
|
|
55
|
+
pathSpecs: req.pathSpecs,
|
|
56
|
+
},
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
},
|
|
60
|
+
getContexts: async () => [],
|
|
61
|
+
getPaths: async () => [],
|
|
62
|
+
};
|
|
63
|
+
let store;
|
|
64
|
+
try {
|
|
65
|
+
store = createTileStore(createTileDB(data.dbPath));
|
|
66
|
+
const tide = data.tide
|
|
67
|
+
? createTideCorrection(await createSlackwaterTideProvider(), data.tide)
|
|
68
|
+
: undefined;
|
|
69
|
+
const app = {
|
|
70
|
+
debug: (format, ...args) => port.post({
|
|
71
|
+
type: "debug",
|
|
72
|
+
message: `${format} ${args.map(String).join(" ")}`,
|
|
73
|
+
}),
|
|
74
|
+
};
|
|
75
|
+
const progress = await seedFromHistory({
|
|
76
|
+
app,
|
|
77
|
+
store,
|
|
78
|
+
config: data.config,
|
|
79
|
+
resolution: data.resolution,
|
|
80
|
+
offset: data.offset,
|
|
81
|
+
tide,
|
|
82
|
+
history,
|
|
83
|
+
signal: controller.signal,
|
|
84
|
+
onProgress: (p) => port.post({ type: "progress", progress: p }),
|
|
85
|
+
});
|
|
86
|
+
port.post({ type: "result", progress });
|
|
87
|
+
}
|
|
88
|
+
catch (err) {
|
|
89
|
+
port.post({ type: "error", message: String(err) });
|
|
90
|
+
}
|
|
91
|
+
finally {
|
|
92
|
+
store?.close();
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
const mainThread = parentPort;
|
|
96
|
+
if (mainThread) {
|
|
97
|
+
const port = {
|
|
98
|
+
post: (message) => mainThread.postMessage(message),
|
|
99
|
+
onMessage: (handler) => mainThread.on("message", (message) => handler(message)),
|
|
100
|
+
};
|
|
101
|
+
void runSeedWorker(workerData, port).finally(() => {
|
|
102
|
+
// The message listener itself keeps the thread alive. Close the port a
|
|
103
|
+
// turn later so the final `result` message is delivered before it exits.
|
|
104
|
+
setImmediate(() => mainThread.close());
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=seed-worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seed-worker.js","sourceRoot":"","sources":["../../src/tiles/seed-worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAS7D,OAAO,EAEL,4BAA4B,EAC5B,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAgB,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AA0C3D;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAoB,EACpB,IAAoB;IAEpB,MAAM,OAAO,GAAG,IAAI,GAAG,EAGpB,CAAC;IACJ,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IAEzC,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC,CAAC;IAEF,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE;QACzB,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC7B,KAAK,EAAE,CAAC;YACR,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC3B,IAAI,OAAO,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YACvC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAe;QAC1B,SAAS,CAAC,GAAkB;YAC1B,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACzB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC;YACxE,CAAC;YACD,OAAO,IAAI,OAAO,CAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrD,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;gBACrC,IAAI,CAAC,IAAI,CAAC;oBACR,IAAI,EAAE,WAAW;oBACjB,EAAE;oBACF,GAAG,EAAE;wBACH,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE;wBACzB,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE;wBACrB,UAAU,EAAE,GAAG,CAAC,UAAU;wBAC1B,SAAS,EAAE,GAAG,CAAC,SAAS;qBACzB;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QACD,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;QAC3B,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;KACzB,CAAC;IAEF,IAAI,KAAqD,CAAC;IAC1D,IAAI,CAAC;QACH,KAAK,GAAG,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI;YACpB,CAAC,CAAC,oBAAoB,CAAC,MAAM,4BAA4B,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC;YACvE,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,GAAG,GAAG;YACV,KAAK,EAAE,CAAC,MAAc,EAAE,GAAG,IAAe,EAAE,EAAE,CAC5C,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,GAAG,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;aACnD,CAAC;SACmB,CAAC;QAE1B,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC;YACrC,GAAG;YACH,KAAK;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI;YACJ,OAAO;YACP,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;SAChE,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC;YAAS,CAAC;QACT,KAAK,EAAE,KAAK,EAAE,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,GAAG,UAAU,CAAC;AAC9B,IAAI,UAAU,EAAE,CAAC;IACf,MAAM,IAAI,GAAmB;QAC3B,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC;QAClD,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CACrB,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAuB,CAAC,CAAC;KAC1E,CAAC;IACF,KAAK,aAAa,CAAC,UAA4B,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;QAClE,uEAAuE;QACvE,yEAAyE;QACzE,YAAY,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/tiles/seed.d.ts.map
CHANGED
|
@@ -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,EAAE,cAAc,EAAsB,MAAM,YAAY,CAAC;AAChE,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,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAC;IAChB,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,uEAAuE;IACvE,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,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,IAAI,EACJ,MAAM,EACN,UAAU,GACX,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,
|
|
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,EAAE,cAAc,EAAsB,MAAM,YAAY,CAAC;AAChE,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,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAC;IAChB,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,uEAAuE;IACvE,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,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,IAAI,EACJ,MAAM,EACN,UAAU,GACX,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CA0GrC"}
|