signalk-livedepth-plugin 0.1.0 → 0.2.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.
@@ -1,6 +1,5 @@
1
- export * from "./grid.js";
1
+ export * from "signalk-livedepth-tiles";
2
2
  export * from "./store.js";
3
- export * from "./accumulator.js";
4
3
  export * from "./writer.js";
5
4
  export * from "./seed.js";
6
5
  export * from "./api.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tiles/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,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,yBAAyB,CAAC;AACxC,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 } from "./store.js";
5
+ import { TileStore, TransducerOffset } from "signalk-livedepth-tiles";
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. */
@@ -31,6 +31,8 @@ export interface SeedOptions {
31
31
  chunkHours?: number;
32
32
  /** Override the History API (used by tests). */
33
33
  history?: HistoryApi;
34
+ /** Shift each sounding from the recorded position to the transducer. */
35
+ offset?: TransducerOffset;
34
36
  signal?: AbortSignal;
35
37
  onProgress?: (progress: SeedProgress) => void;
36
38
  }
@@ -41,5 +43,5 @@ export interface SeedOptions {
41
43
  * tiles (min-pooling as it goes). The live stream keeps the store current from
42
44
  * then on.
43
45
  */
44
- export declare function seedFromHistory({ app, store, config, from, to, resolution, chunkHours, history, signal, onProgress, }: SeedOptions): Promise<SeedProgress>;
46
+ export declare function seedFromHistory({ app, store, config, from, to, resolution, chunkHours, history, offset, signal, onProgress, }: SeedOptions): Promise<SeedProgress>;
45
47
  //# sourceMappingURL=seed.d.ts.map
@@ -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;AAItC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,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,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,UAAU,GACX,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CA8ErC"}
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,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 { createTileAccumulator, rebuildAncestors } from "./accumulator.js";
4
+ import { correctToTransducer, createTileAccumulator, rebuildAncestors, } from "signalk-livedepth-tiles";
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. */
@@ -15,7 +15,7 @@ export const SEED_CURSOR_KEY = "seed.cursor";
15
15
  * tiles (min-pooling as it goes). The live stream keeps the store current from
16
16
  * then on.
17
17
  */
18
- export async function seedFromHistory({ app, store, config, from, to = Temporal.Now.instant(), resolution = DEFAULT_SEED_RESOLUTION, chunkHours = DEFAULT_SEED_CHUNK_HOURS, history, signal, onProgress, }) {
18
+ export async function seedFromHistory({ app, store, config, from, to = Temporal.Now.instant(), resolution = DEFAULT_SEED_RESOLUTION, chunkHours = DEFAULT_SEED_CHUNK_HOURS, history, offset, signal, onProgress, }) {
19
19
  const api = history ?? (await getHistoryAPI({ app }));
20
20
  if (!api) {
21
21
  throw new Error("No History API provider is available to seed from");
@@ -40,6 +40,16 @@ export async function seedFromHistory({ app, store, config, from, to = Temporal.
40
40
  aggregate: "min",
41
41
  parameter: [],
42
42
  },
43
+ // Heading, only when needed to place the sounding at the transducer.
44
+ ...(offset
45
+ ? [
46
+ {
47
+ path: "navigation.headingTrue",
48
+ aggregate: "average",
49
+ parameter: [],
50
+ },
51
+ ]
52
+ : []),
43
53
  ];
44
54
  const accumulator = createTileAccumulator(store, { ancestors: false });
45
55
  const progress = {
@@ -63,7 +73,7 @@ export async function seedFromHistory({ app, store, config, from, to = Temporal.
63
73
  resolution,
64
74
  pathSpecs,
65
75
  });
66
- progress.points += fold(accumulator, res, depthPath, pathSpecs);
76
+ progress.points += fold(accumulator, res, depthPath, pathSpecs, offset);
67
77
  accumulator.flush();
68
78
  // Advance the cursor only after the chunk is safely written, so an
69
79
  // interrupted seed resumes where it stopped rather than from the start.
@@ -101,10 +111,11 @@ function cursorFromStore(store) {
101
111
  }
102
112
  }
103
113
  /** Fold a values response's rows into the accumulator; returns points added. */
104
- function fold(accumulator, res, depthPath, pathSpecs) {
114
+ function fold(accumulator, res, depthPath, pathSpecs, offset) {
105
115
  const columns = columnsByPath(res.values, pathSpecs);
106
116
  const positionColumn = columns.get("navigation.position");
107
117
  const depthColumn = columns.get(depthPath);
118
+ const headingColumn = columns.get("navigation.headingTrue");
108
119
  if (positionColumn === undefined || depthColumn === undefined)
109
120
  return 0;
110
121
  let added = 0;
@@ -118,10 +129,15 @@ function fold(accumulator, res, depthPath, pathSpecs) {
118
129
  Number.isFinite(longitude) &&
119
130
  typeof latitude === "number" &&
120
131
  Number.isFinite(latitude)) {
132
+ const heading = headingColumn === undefined
133
+ ? undefined
134
+ : row[headingColumn];
135
+ const { lon, lat } = offset
136
+ ? correctToTransducer({ lon: longitude, lat: latitude }, typeof heading === "number" ? heading : undefined, offset)
137
+ : { lon: longitude, lat: latitude };
121
138
  accumulator.add({
122
- timestamp: Temporal.Instant.from(String(row[0])),
123
- longitude,
124
- latitude,
139
+ lon,
140
+ lat,
125
141
  depth,
126
142
  });
127
143
  added++;
@@ -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 { TileCells } from "./grid.js";
2
+ import { TileStore } from "signalk-livedepth-tiles";
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
@@ -10,27 +10,5 @@ import { TileCells } from "./grid.js";
10
10
  * of keyed lookups — no scanning, no interpolation at query time.
11
11
  */
12
12
  export declare function createTileDB(filename: string): DatabaseSync;
13
- export interface TileStore {
14
- /** A tile's cells, or undefined when it holds no soundings. */
15
- read(z: number, x: number, y: number): TileCells | undefined;
16
- /** Replace a tile (deletes it when empty). */
17
- write(z: number, x: number, y: number, cells: TileCells): void;
18
- /** Merge cells into a tile, keeping the shallowest depth and summing counts. */
19
- merge(z: number, x: number, y: number, incoming: TileCells): void;
20
- /** Rebuild every ancestor of a changed base tile, up to {@link MIN_ZOOM}. */
21
- updateAncestors(z: number, x: number, y: number): void;
22
- /** Every occupied tile at a level (for a bulk pyramid rebuild). */
23
- listTiles(z: number): {
24
- x: number;
25
- y: number;
26
- }[];
27
- /** Read a store-level key. */
28
- getMeta(key: string): string | undefined;
29
- /** Write a store-level key. */
30
- setMeta(key: string, value: string): void;
31
- /** Run `fn` inside a single transaction. */
32
- transaction<T>(fn: () => T): T;
33
- close(): void;
34
- }
35
13
  export declare function createTileStore(db: DatabaseSync): TileStore;
36
14
  //# sourceMappingURL=store.d.ts.map
@@ -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,EAEL,SAAS,EAKV,MAAM,WAAW,CAAC;AAEnB;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,CAuB3D;AAED,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,4CAA4C;IAC5C,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IAC/B,KAAK,IAAI,IAAI,CAAC;CACf;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,YAAY,GAAG,SAAS,CA+F3D"}
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,5 +1,5 @@
1
1
  import { DatabaseSync } from "node:sqlite";
2
- import { MIN_ZOOM, decodeTile, encodeTile, mergeCell, minPoolTile, } from "./grid.js";
2
+ import { MIN_ZOOM, decodeTile, encodeTile, mergeCell, minPoolTile, } from "signalk-livedepth-tiles";
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
@@ -108,6 +108,9 @@ export function createTileStore(db) {
108
108
  setMetaStmt.run(key, value);
109
109
  },
110
110
  transaction,
111
+ clear: () => {
112
+ db.exec("DELETE FROM tiles");
113
+ },
111
114
  close: () => db.close(),
112
115
  };
113
116
  }
@@ -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 "./store.js";
2
+ import { TileStore } from "signalk-livedepth-tiles";
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;AAIlC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,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,CAiCV"}
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,6 +1,5 @@
1
1
  import { Writable } from "stream";
2
- import { BASE_ZOOM } from "./grid.js";
3
- import { createTileAccumulator } from "./accumulator.js";
2
+ import { BASE_ZOOM, createTileAccumulator, } from "signalk-livedepth-tiles";
4
3
  /** How long soundings are batched before being written to the store. */
5
4
  export const DEFAULT_FLUSH_MS = 1000;
6
5
  /**
@@ -17,7 +16,11 @@ export function createTileWriter(store, { baseZoom = BASE_ZOOM, flushIntervalMs
17
16
  objectMode: true,
18
17
  write(data, _encoding, callback) {
19
18
  try {
20
- accumulator.add(data);
19
+ accumulator.add({
20
+ lon: data.longitude,
21
+ lat: data.latitude,
22
+ depth: data.depth,
23
+ });
21
24
  callback();
22
25
  }
23
26
  catch (err) {
@@ -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,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAGzD,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,IAAI,CAAC,CAAC;gBACtB,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,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"}