signalk-questdb 2.3.0 → 2.3.2

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,3 +1,3 @@
1
1
  {
2
- ".": "2.3.0"
2
+ ".": "2.3.2"
3
3
  }
package/CLAUDE.md CHANGED
@@ -33,9 +33,9 @@ Both build outputs are shipped in the npm package; `prepublishOnly` rebuilds the
33
33
  - Subscribes to the Signal K **streambundle** for all paths and writes filtered/throttled deltas to QuestDB via **ILP over raw TCP** (`src/ilp-writer.ts`) — no QuestDB client library.
34
34
  - Three tables (`signalk`, `signalk_str`, `signalk_position`) defined and queried in `src/query-client.ts`. All use WAL mode + daily partitioning + dedup. The archives `signalk_archive` and `signalk_position_archive` are defined there too, with their base tables' columns and dedup keys and monthly partitions.
35
35
  - Reads come from two registered providers:
36
- - **v2** (`src/history-v2.ts`) — `app.registerHistoryApiProvider()`, REST under `/signalk/v2/api/history/`. Aggregates map directly to QuestDB SQL except `sma`/`ema` (computed client-side).
36
+ - **v2** (`src/history-v2.ts`) — `app.registerHistoryApiProvider()`, REST under `/signalk/v2/api/history/`. Aggregates map directly to QuestDB SQL except `sma`/`ema` (computed client-side). Where the archive covers the range, each table is sampled on its own and the buckets merged in the plugin.
37
37
  - **v1** (`src/history-v1.ts`) — `app.registerHistoryProvider()`, WebSocket playback with chunked reads.
38
- - Retention (`src/retention.ts`) drops old daily partitions on a timer. Before a partition of `signalk_position` or `signalk` goes, the own vessel's rows the config keeps are copied, thinned, into `signalk_position_archive` / `signalk_archive` (`src/archive.ts`), and the drop waits for that copy to be applied. Reads add an archive table only for a range it covers (`ArchiveSpans`), so a recent window stays on the base table alone; v1 snapshots read it as one more per-table `LATEST ON` branch, never by wrapping the union.
38
+ - Retention (`src/retention.ts`) drops old daily partitions on a timer. Before a partition of `signalk_position` or `signalk` goes, the own vessel's rows the config keeps are copied, thinned, into `signalk_position_archive` / `signalk_archive` (`src/archive.ts`), and the drop waits for that copy to be applied. Reads add an archive table only for a range it covers (`ArchiveSpans`), so a recent window stays on the base table alone. v1 snapshots read it as one more per-table `LATEST ON` branch, and v2's sampled and raw reads of the own vessel read each table on its own and merge the buckets or rows in the plugin. Their union (`readFrom` in `src/archive.ts`) sorts every row in range, so only reads that need one order across both tables, such as `middle_index`, or that a short window bounds still use it.
39
39
  - GPX import (`src/gpx-import.ts`, `src/gpx-import-session.ts`) streams a sliced upload through saxes into `signalk_position_archive` under source `import.gpx`, thinned by stamping points on interval starts and letting dedup keep one per interval. The caller names the tracks to import: an export mixes the own track with AIS targets and other boats' passages, and nothing in GPX tells them apart.
40
40
  - Startup restore (`src/restore.ts`) optionally replays each vessel's last recorded position back into the live model after a server restart.
41
41
  - Console proxy (`src/console-proxy.ts`) reverse-proxies QuestDB's own web console so the embeddable webapp (`public/index.html`) can host it in the admin UI.
@@ -64,6 +64,8 @@ Their wire shapes live in `src/api-contract.ts` and are shared by both surfaces:
64
64
 
65
65
  `src/test/` contains `node:test` suites for ILP encoding, time range parsing, query building, and v2 history. They run against the **compiled** JS in `dist/test/`, so always build before testing.
66
66
 
67
+ `src/test/history-live.test.ts` runs the v2 provider against a real QuestDB. It drops the plugin's tables, so run it only against a throwaway instance; its header says how.
68
+
67
69
  ## Conventions
68
70
 
69
71
  - TypeScript strict mode everywhere, panel included; do not loosen either `tsconfig.json`. In particular never add `jsx` or a DOM `lib` to the root one — server code referencing `document` would then typecheck clean.
package/README.md CHANGED
@@ -310,8 +310,14 @@ arithmetic.
310
310
 
311
311
  `navigation.position` answers `first`, `last` and `middle_index` — each a point
312
312
  the vessel was at. Any other method runs `first`, and the column's `method` says
313
- so. A text path (rows in `signalk_str`) answers `first` and `last`;
314
- `middle_index` and the moving averages read the numeric table only.
313
+ so. A text path (rows in `signalk_str`) answers `first`, `last` and
314
+ `middle_index`. With a resolution, `average`, `min`, `max` and `mid` run `last`,
315
+ the state in force at the bucket's end, and the column's `method` says so.
316
+ `sma` and `ema` read the numeric table only, so a text path has no values for
317
+ them.
318
+
319
+ A method name outside the table above fails the request with an error naming
320
+ the path and the method.
315
321
 
316
322
  Query example:
317
323
 
package/dist/archive.d.ts CHANGED
@@ -18,7 +18,13 @@ export declare const NO_ARCHIVE: ArchiveReader;
18
18
  * The merge has to declare `ts` its designated timestamp again, or SAMPLE BY
19
19
  * and LATEST ON reject it, and that declaration is only true because of the
20
20
  * ORDER BY. A time filter on the outer query still reaches both tables as an
21
- * interval scan (verified with EXPLAIN on QuestDB 9.4 and 10.0).
21
+ * interval scan (verified with EXPLAIN on QuestDB 9.4 and 10.0), but the
22
+ * ORDER BY then sorts every row in range, so its memory grows with the
23
+ * range. And SAMPLE BY … FROM … TO … FILL(NULL) over it adds a bucket past
24
+ * TO that repeats the last one (QuestDB 9.4). The v2 provider's sampled and
25
+ * raw reads therefore read each table on its own and merge the rows
26
+ * themselves; this union is for reads that need one order across both
27
+ * tables, or that a short window bounds.
22
28
  */
23
29
  export declare function readFrom(table: ArchivedTable, withArchive: boolean): string;
24
30
  /**
package/dist/archive.js CHANGED
@@ -30,7 +30,13 @@ export const NO_ARCHIVE = { covers: () => false };
30
30
  * The merge has to declare `ts` its designated timestamp again, or SAMPLE BY
31
31
  * and LATEST ON reject it, and that declaration is only true because of the
32
32
  * ORDER BY. A time filter on the outer query still reaches both tables as an
33
- * interval scan (verified with EXPLAIN on QuestDB 9.4 and 10.0).
33
+ * interval scan (verified with EXPLAIN on QuestDB 9.4 and 10.0), but the
34
+ * ORDER BY then sorts every row in range, so its memory grows with the
35
+ * range. And SAMPLE BY … FROM … TO … FILL(NULL) over it adds a bucket past
36
+ * TO that repeats the last one (QuestDB 9.4). The v2 provider's sampled and
37
+ * raw reads therefore read each table on its own and merge the rows
38
+ * themselves; this union is for reads that need one order across both
39
+ * tables, or that a short window bounds.
34
40
  */
35
41
  export function readFrom(table, withArchive) {
36
42
  if (!withArchive)
@@ -1 +1 @@
1
- {"version":3,"file":"archive.js","sourceRoot":"","sources":["../src/archive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"archive.js","sourceRoot":"","sources":["../src/archive.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,26 @@ import { isSafeIdentifier, validateIdentifier, validateTimestamp, } from "./quer
2
2
  import { resolveTimeRange } from "./time-range.js";
3
3
  import { isMissingKindColumn, isMissingSourceColumn, isMissingTable, } from "./schema-errors.js";
4
4
  import { ARCHIVE_TABLES, NO_ARCHIVE, readFrom, } from "./archive.js";
5
+ // The server passes the method after `path:` through without checking it, so
6
+ // an unknown name reaches the provider verbatim.
7
+ const AGGREGATE_METHODS = [
8
+ "average",
9
+ "min",
10
+ "max",
11
+ "first",
12
+ "last",
13
+ "mid",
14
+ "middle_index",
15
+ "sma",
16
+ "ema",
17
+ ];
18
+ const KNOWN_AGGREGATES = new Set(AGGREGATE_METHODS);
19
+ function checkAggregate(spec) {
20
+ if (KNOWN_AGGREGATES.has(spec.aggregate))
21
+ return;
22
+ throw new Error(`${spec.path}:${spec.aggregate} — unknown aggregation method; ` +
23
+ `use one of ${AGGREGATE_METHODS.join(", ")}`);
24
+ }
5
25
  function aggregateToSql(method) {
6
26
  switch (method) {
7
27
  case "average":
@@ -275,6 +295,8 @@ function normalizeContext(context, selfContext) {
275
295
  // well-behaved clients budget ~2000 points per request; a million covers any
276
296
  // sane chart while keeping the worst case bounded.
277
297
  const MAX_SAMPLE_BUCKETS = 1_000_000;
298
+ // The rows a read without a resolution returns at most.
299
+ const RAW_LIMIT = 10_000;
278
300
  // Upper bound on columns ONE path may expand into under sourcePolicy=all.
279
301
  // The bucket cap above only applies to requests that named a resolution, so
280
302
  // these are the only things bounding an unresolved expansion.
@@ -308,6 +330,128 @@ function sampleBy(range, resolution) {
308
330
  const to = validateTimestamp(range.to);
309
331
  return `SAMPLE BY ${effectiveResolution(resolution)}s FROM '${from}' TO '${to}' FILL(NULL)`;
310
332
  }
333
+ const numbers = (values) => values.filter((v) => typeof v === "number");
334
+ const total = (values) => numbers(values).reduce((a, b) => a + b, 0);
335
+ /** The least or greatest number, or null where there is none, as in SQL. */
336
+ function extreme(values, pick) {
337
+ const found = numbers(values);
338
+ return found.length === 0 ? null : Math[pick](...found);
339
+ }
340
+ /**
341
+ * The row whose time (part `at`) is earliest, or latest. QuestDB writes
342
+ * every timestamp in one fixed-width ISO form, so the strings compare in
343
+ * time order.
344
+ */
345
+ function byTime(rows, at, latest) {
346
+ return rows.reduce((best, row) => {
347
+ const [a, b] = [String(row[at]), String(best[at])];
348
+ return (latest ? a > b : a < b) ? row : best;
349
+ });
350
+ }
351
+ /** A numeric bucket's `method` value, as aggregateToSql() computes it. */
352
+ function valueColumns(method) {
353
+ const sql = `${aggregateToSql(method)} as agg_value`;
354
+ switch (method) {
355
+ case "min":
356
+ case "max":
357
+ return {
358
+ sql,
359
+ parts: [`${method}(value)`],
360
+ width: 1,
361
+ merge: (rows) => [
362
+ extreme(rows.map((r) => r[0]), method),
363
+ ],
364
+ };
365
+ case "first":
366
+ case "last":
367
+ return {
368
+ sql,
369
+ parts: [`${method}(value)`, method === "first" ? "min(ts)" : "max(ts)"],
370
+ width: 1,
371
+ merge: (rows) => [byTime(rows, 1, method === "last")[0]],
372
+ };
373
+ case "mid":
374
+ return {
375
+ sql,
376
+ parts: ["min(value)", "max(value)"],
377
+ width: 1,
378
+ merge: (rows) => {
379
+ const low = extreme(rows.map((r) => r[0]), "min");
380
+ const high = extreme(rows.map((r) => r[1]), "max");
381
+ return [low === null || high === null ? null : (low + high) / 2];
382
+ },
383
+ };
384
+ default: {
385
+ // A mean of the two means would weigh a bucket's few archived rows
386
+ // as much as its many recorded ones.
387
+ return {
388
+ sql,
389
+ parts: ["sum(value)", "count(value)"],
390
+ width: 1,
391
+ merge: (rows) => {
392
+ const count = total(rows.map((r) => r[1]));
393
+ return [count === 0 ? null : total(rows.map((r) => r[0])) / count];
394
+ },
395
+ };
396
+ }
397
+ }
398
+ }
399
+ /** ANGULAR_BUCKET_SQL's mean angle and floor, summed across the tables. */
400
+ const ANGULAR_COLUMNS = {
401
+ sql: ANGULAR_BUCKET_SQL,
402
+ parts: ["sum(sin(value))", "sum(cos(value))", "count(value)", "min(value)"],
403
+ width: 2,
404
+ merge: (rows) => {
405
+ const column = (i) => rows.map((r) => r[i]);
406
+ const count = total(column(2));
407
+ if (count === 0)
408
+ return [null, null];
409
+ const [sin, cos] = [total(column(0)) / count, total(column(1)) / count];
410
+ return [
411
+ Math.hypot(sin, cos) < NO_DIRECTION ? null : Math.atan2(sin, cos),
412
+ extreme(column(3), "min"),
413
+ ];
414
+ },
415
+ };
416
+ /** HELD_SQL's last sample and its time, from the table that took it last. */
417
+ const HELD_COLUMNS = {
418
+ sql: HELD_SQL,
419
+ parts: ["last(value)", "last(ts)"],
420
+ width: 2,
421
+ merge: (rows) => byTime(rows, 1, true),
422
+ };
423
+ /** A position bucket's `pick` fix, as one lat/lon pair from one table. */
424
+ function positionColumns(pick) {
425
+ return {
426
+ sql: `${pick}(lat) as lat, ${pick}(lon) as lon`,
427
+ parts: [
428
+ `${pick}(lat)`,
429
+ `${pick}(lon)`,
430
+ pick === "first" ? "min(ts)" : "max(ts)",
431
+ ],
432
+ width: 2,
433
+ merge: (rows) => byTime(rows, 2, pick === "last").slice(0, 2),
434
+ };
435
+ }
436
+ /**
437
+ * The rows of two reads ordered by time (column 0), paired where both have
438
+ * the same time and in time order throughout. Yielded rather than collected,
439
+ * so a merge holds the two reads and its result, not a third copy.
440
+ */
441
+ function* pairByTime(own, kept) {
442
+ let i = 0;
443
+ let j = 0;
444
+ while (i < own.length || j < kept.length) {
445
+ const a = i < own.length ? String(own[i][0]) : null;
446
+ const b = j < kept.length ? String(kept[j][0]) : null;
447
+ if (a !== null && (b === null || a < b))
448
+ yield [own[i++], null];
449
+ else if (a === null || b < a)
450
+ yield [null, kept[j++]];
451
+ else
452
+ yield [own[i++], kept[j++]];
453
+ }
454
+ }
311
455
  export function createHistoryProviderV2(queryClient, selfContext,
312
456
  // Opt-in, default off. Expansion multiplies one requested path into one
313
457
  // query and one column PER recording source, so a request that was cheap
@@ -337,11 +481,71 @@ archive = NO_ARCHIVE) {
337
481
  const since = new Date(Date.parse(from) - holdMs).toISOString();
338
482
  return `ts >= '${since}' AND ts < '${from}' AND context = '${safeContext}'`;
339
483
  }
340
- /** What the numeric seed is read from: the window `seedRangeWhere` names. */
341
- function seedSource(range) {
484
+ /**
485
+ * `base` sampled over the range in `groups`' columns, one row a bucket.
486
+ *
487
+ * With the archive, each table is sampled on its own and the two grids
488
+ * merged here. QuestDB samples their union only after sorting every row in
489
+ * range by time: the tracks plugin's history import asks once for
490
+ * everything since 1970, and that sort of 5.5 M own positions went past
491
+ * QuestDB's memory limit. Each table alone is sampled in the order it is
492
+ * stored, and the merge holds the two grids and the merged one.
493
+ */
494
+ async function readSampled(base, withArchive, where, range, resolution, groups) {
495
+ const grid = sampleBy(range, resolution);
496
+ if (!withArchive) {
497
+ const columns = groups.map((group) => group.sql).join(", ");
498
+ const result = await queryClient.exec(`SELECT ts, ${columns} FROM ${base} WHERE ${where} ${grid} ORDER BY ts`);
499
+ return result.dataset;
500
+ }
501
+ // Aliased, since two groups may select the same aggregate, and led by
502
+ // the bucket's row count, which FILL(NULL) leaves null where it is 0.
503
+ const parts = ["count()", ...groups.flatMap((group) => group.parts)]
504
+ .map((part, i) => `${part} p${i}`)
505
+ .join(", ");
506
+ const read = async (table) => (await queryClient.exec(`SELECT ts, ${parts} FROM ${table} WHERE ${where} ${grid} ORDER BY ts`)).dataset;
507
+ const own = await read(base);
508
+ const kept = await read(ARCHIVE_TABLES[base]);
509
+ return Array.from(pairByTime(own, kept), (pair) => {
510
+ const filled = pair.filter((row) => row !== null && Number(row[1]) > 0);
511
+ const row = [(pair[0] ?? pair[1])[0]];
512
+ let at = 2;
513
+ for (const group of groups) {
514
+ row.push(...(filled.length === 0
515
+ ? Array(group.width).fill(null)
516
+ : group.merge(filled.map((r) => r.slice(at, at + group.parts.length)))));
517
+ at += group.parts.length;
518
+ }
519
+ return row;
520
+ });
521
+ }
522
+ /**
523
+ * The first rows of `base` in the range, in time order, under the LIMIT
524
+ * every raw read has: with the archive, from each table on its own and
525
+ * merged here, for the reason readSampled() gives.
526
+ */
527
+ async function readRaw(base, withArchive, columns, where) {
528
+ const read = async (table) => (await queryClient.exec(`SELECT ts, ${columns} FROM ${table} WHERE ${where} ORDER BY ts LIMIT ${RAW_LIMIT}`)).dataset;
529
+ const own = await read(base);
530
+ if (!withArchive)
531
+ return own;
532
+ const kept = await read(ARCHIVE_TABLES[base]);
533
+ const rows = [];
534
+ for (const pair of pairByTime(own, kept)) {
535
+ rows.push(...pair.filter((row) => row !== null));
536
+ if (rows.length >= RAW_LIMIT)
537
+ break;
538
+ }
539
+ return rows.slice(0, RAW_LIMIT);
540
+ }
541
+ /**
542
+ * What the numeric seed is read from: the window `seedRangeWhere` names,
543
+ * with the archive only for the own vessel, the only one it holds.
544
+ */
545
+ function seedSource(range, own) {
342
546
  const from = validateTimestamp(range.from);
343
547
  const since = new Date(Date.parse(from) - holdMs).toISOString();
344
- return readFrom("signalk", archive.covers("signalk", since, from));
548
+ return readFrom("signalk", own && archive.covers("signalk", since, from));
345
549
  }
346
550
  /** The numeric table's last `[value, ts]` before the range, or null. */
347
551
  async function numericSeed(seedWhere, source) {
@@ -393,7 +597,7 @@ archive = NO_ARCHIVE) {
393
597
  * leaves the path as a single unexpanded column rather than failing the
394
598
  * whole request.
395
599
  */
396
- async function distinctSources(path, range, safeContext) {
600
+ async function distinctSources(path, range, safeContext, withArchive) {
397
601
  const safePath = validateIdentifier(path);
398
602
  const rangeWhere = buildRangeWhere(range, safeContext);
399
603
  const position = path === "navigation.position";
@@ -402,7 +606,7 @@ archive = NO_ARCHIVE) {
402
606
  const tables = [
403
607
  `SELECT DISTINCT source FROM ${table} WHERE ${rangeWhere}${pathWhere}`,
404
608
  ];
405
- if (archive.covers(table, range.from, range.to)) {
609
+ if (withArchive) {
406
610
  tables.push(`SELECT DISTINCT source FROM ${ARCHIVE_TABLES[table]} WHERE ${rangeWhere}${pathWhere}`);
407
611
  }
408
612
  if (!position) {
@@ -468,8 +672,9 @@ archive = NO_ARCHIVE) {
468
672
  * Read a path's rows from `signalk_str`.
469
673
  *
470
674
  * Numeric aggregates do not apply to text, so a downsampled request takes
471
- * one representative value per bucket (`last` = the state in force at the
472
- * bucket's end, which is what a state channel means) instead of averaging.
675
+ * one recorded value per bucket instead of averaging: `first` or
676
+ * `middle_index` when the caller picked one, otherwise `last` (the state
677
+ * in force at the bucket's end, which is what a state channel means).
473
678
  * Values are returned verbatim: booleans were stored as "true"/"false", so
474
679
  * a consumer can tell them apart from real numbers, and Grafana value
475
680
  * mappings work directly.
@@ -485,7 +690,7 @@ archive = NO_ARCHIVE) {
485
690
  * rows that were never filtered by source must not be labelled as one
486
691
  * source's.
487
692
  */
488
- async function readStringRows(where, range, resolution, seedWhere) {
693
+ async function readStringRows(where, range, pick, resolution, seedWhere) {
489
694
  // `value_kind` marks rows that were recorded as booleans, so v2 replays
490
695
  // them as real booleans exactly like v1 — otherwise the same path would
491
696
  // read `true` through one API and `"true"` through the other. Untagged
@@ -496,12 +701,21 @@ archive = NO_ARCHIVE) {
496
701
  // buildSourceWhere appended, so removing it leaves the range, context
497
702
  // and path filters intact.
498
703
  const withoutSource = (clause) => clause.replace(/ AND source (?:= '[^']*'|IS NULL)/g, "");
704
+ const sampled = !!resolution && resolution > 0;
499
705
  const sql = (withKind, withSource) => {
500
706
  const kind = withKind ? "value_kind" : "NULL";
707
+ // QuestDB has no first()/last() over a bare NULL, so the degraded read
708
+ // leaves the literal outside the aggregate.
709
+ const kindOf = (fn) => withKind ? `${fn}(value_kind)` : "NULL";
501
710
  const clause = withSource ? where : withoutSource(where);
502
- return resolution && resolution > 0
503
- ? `SELECT ts, last(value_str) as value_str, last(${kind}) as value_kind, last(ts) as held_ts FROM signalk_str WHERE ${clause} ${sampleBy(range, resolution)} ORDER BY ts`
504
- : `SELECT ts, value_str, ${kind} as value_kind FROM signalk_str WHERE ${clause} ORDER BY ts LIMIT 10000`;
711
+ if (pick === "middle_index") {
712
+ return middleRowSql("signalk_str", `value_str, ${kind} as value_kind`, clause, range, resolution);
713
+ }
714
+ // The bucket's last sample rides along whatever the pick is: it is
715
+ // what an empty bucket after it holds (see holdThroughEmptyBuckets).
716
+ return sampled
717
+ ? `SELECT ts, ${pick}(value_str) as value_str, ${kindOf(pick)} as value_kind, last(value_str) as held_str, ${kindOf("last")} as held_kind, last(ts) as held_ts FROM signalk_str WHERE ${clause} ${sampleBy(range, resolution)} ORDER BY ts`
718
+ : `SELECT ts, value_str, ${kind} as value_kind FROM signalk_str WHERE ${clause} ORDER BY ts LIMIT ${RAW_LIMIT}`;
505
719
  };
506
720
  // A read racing ensureTables()'s migration — or an external QuestDB the
507
721
  // plugin does not own — must degrade, not fail the request. Two columns
@@ -531,20 +745,23 @@ archive = NO_ARCHIVE) {
531
745
  };
532
746
  const result = await run(true, true);
533
747
  let dataset = result.dataset;
534
- // A text bucket's value is already its last sample, so an empty bucket
535
- // takes the held row's text and kind as they are.
536
- if (resolution && resolution > 0 && seedWhere && holdMs > 0) {
748
+ // An empty bucket takes the held row's last text and kind as they are.
749
+ // middle_index yields no row for an empty bucket, so it holds nothing,
750
+ // as it does for a number.
751
+ if (sampled && pick !== "middle_index" && seedWhere && holdMs > 0) {
537
752
  let seed = null;
538
- if (dataset.length > 0 && dataset[0][3] === null) {
753
+ if (dataset.length > 0 && dataset[0][5] === null) {
539
754
  const kind = ranWithKind ? "value_kind" : "NULL";
540
755
  const clause = sourceDropped ? withoutSource(seedWhere) : seedWhere;
541
- const seedResult = await queryClient.exec(`SELECT ts, value_str, ${kind} as value_kind, ts as held_ts FROM signalk_str WHERE ${clause} LIMIT -1`);
756
+ const seedResult = await queryClient.exec(`SELECT ts, value_str, ${kind} as value_kind, value_str as held_str, ${kind} as held_kind, ts as held_ts FROM signalk_str WHERE ${clause} LIMIT -1`);
542
757
  seed = seedResult.dataset[0] ?? null;
543
758
  }
544
759
  dataset = holdThroughEmptyBuckets(dataset, seed, holdMs, (row, held) => [
545
760
  row[0],
546
- held[1],
547
- held[2],
761
+ held[3],
762
+ held[4],
763
+ held[3],
764
+ held[4],
548
765
  null,
549
766
  ]);
550
767
  }
@@ -563,15 +780,27 @@ archive = NO_ARCHIVE) {
563
780
  // absent — the server validates the value before a provider ever sees it,
564
781
  // so guessing at anything else here would only invent behaviour.
565
782
  const expandBySource = sourcePolicyAllEnabled && query.sourcePolicy === "all";
566
- // Checked before any query runs, so a bad window fails the request whole
567
- // instead of after the columns ahead of it were already read.
783
+ // Checked before any query runs, so a bad method or window fails the
784
+ // request whole instead of after the columns ahead of it were already
785
+ // read. An unknown method used to run as average under its own name.
568
786
  for (const spec of query.pathSpecs) {
787
+ checkAggregate(spec);
569
788
  if (isMovingAverage(spec.aggregate))
570
789
  movingAverageWindow(spec);
571
790
  }
572
791
  const requestedContext = query.context ?? "vessels.self";
573
792
  const storedContext = normalizeContext(requestedContext, selfContext);
574
793
  const safeContext = validateIdentifier(storedContext);
794
+ // Whether each table's reads include its archive. The archive holds only
795
+ // the own vessel (archive.ts), so another vessel's reads leave it out.
796
+ // Decided once, so the bucket budget counts the reads that then run even
797
+ // when a refresh of the archive's spans lands in between.
798
+ const archived = {
799
+ signalk: storedContext === "self" &&
800
+ archive.covers("signalk", range.from, range.to),
801
+ signalk_position: storedContext === "self" &&
802
+ archive.covers("signalk_position", range.from, range.to),
803
+ };
575
804
  // Expand each spec into the COLUMNS it will produce. Under
576
805
  // sourcePolicy=all a path with no explicit sourceRef becomes one column
577
806
  // per distinct source that actually recorded it in range; everything else
@@ -596,7 +825,7 @@ archive = NO_ARCHIVE) {
596
825
  `${MAX_EXPANDED_COLUMNS} columns — request fewer paths, or name ` +
597
826
  `the sources explicitly with paths=<path>|<sourceRef>`);
598
827
  }
599
- const sources = await distinctSources(spec.path, range, safeContext);
828
+ const sources = await distinctSources(spec.path, range, safeContext, archived[spec.path === "navigation.position" ? "signalk_position" : "signalk"]);
600
829
  if (sources.length === 0) {
601
830
  // Nothing recorded in range, or a database with no `source` column:
602
831
  // keep the unexpanded column so the caller still gets the series
@@ -654,14 +883,17 @@ archive = NO_ARCHIVE) {
654
883
  // run at twice the ceiling.
655
884
  const sampledSpecs = columns.length;
656
885
  // navigation.position is served by its own table and never falls back;
657
- // a moving average and middle_index have no text to fall back to.
658
- const fallbackCapableSpecs = columns.filter((spec) => spec.path !== "navigation.position" &&
659
- !isMovingAverage(spec.aggregate) &&
660
- spec.aggregate !== "middle_index").length;
886
+ // a moving average has no text to fall back to.
887
+ const fallbackCapableSpecs = columns.filter((spec) => spec.path !== "navigation.position" && !isMovingAverage(spec.aggregate)).length;
888
+ // A column the archive covers costs one more: readSampled() samples the
889
+ // base table and the archive each on the whole grid. middle_index reads
890
+ // their union in one query.
891
+ const archivedSpecs = columns.filter((spec) => spec.aggregate !== "middle_index" &&
892
+ archived[spec.path === "navigation.position" ? "signalk_position" : "signalk"]).length;
661
893
  if (sampledSpecs > 0 && query.resolution && query.resolution > 0) {
662
894
  const rangeSec = (Date.parse(range.to) - Date.parse(range.from)) / 1000;
663
895
  const bucketsPerSeries = Math.ceil(rangeSec / effectiveResolution(query.resolution));
664
- const worstCaseQueries = sampledSpecs + fallbackCapableSpecs;
896
+ const worstCaseQueries = sampledSpecs + fallbackCapableSpecs + archivedSpecs;
665
897
  const buckets = bucketsPerSeries * worstCaseQueries;
666
898
  if (buckets > MAX_SAMPLE_BUCKETS) {
667
899
  throw new Error(`resolution ${query.resolution}s over this range produces up to ` +
@@ -690,7 +922,11 @@ archive = NO_ARCHIVE) {
690
922
  const sourceWhere = buildSourceWhere(spec);
691
923
  const isPosition = spec.path === "navigation.position";
692
924
  const base = isPosition ? "signalk_position" : "signalk";
693
- const table = readFrom(base, archive.covers(base, range.from, range.to));
925
+ // A middle row needs both tables' rows in one order, so middle_index
926
+ // reads their union, as the numeric seed does over its short window.
927
+ // Over a long range the archive covers that still sorts every row in
928
+ // it. Every other read goes through readSampled() or readRaw().
929
+ const union = () => readFrom(base, archived[base]);
694
930
  if (isPosition) {
695
931
  const where = buildRangeWhere(range, safeContext) + sourceWhere;
696
932
  // Position is a co-recorded lat/lon pair. first, last and
@@ -703,21 +939,20 @@ archive = NO_ARCHIVE) {
703
939
  : "first";
704
940
  if (posAgg !== spec.aggregate)
705
941
  valuesList[specIndex].method = "first";
706
- let sql;
942
+ let dataset;
707
943
  if (posAgg === "middle_index") {
708
- sql = middleRowSql(table, "lat, lon", where, range, query.resolution);
944
+ dataset = (await queryClient.exec(middleRowSql(union(), "lat, lon", where, range, query.resolution))).dataset;
709
945
  }
710
946
  else if (query.resolution && query.resolution > 0) {
711
- sql = `SELECT ts, ${posAgg}(lat) as lat, ${posAgg}(lon) as lon FROM ${table} WHERE ${where} ${sampleBy(range, query.resolution)} ORDER BY ts`;
947
+ dataset = await readSampled(base, archived[base], where, range, query.resolution, [positionColumns(posAgg)]);
712
948
  }
713
949
  else {
714
- sql = `SELECT ts, lat, lon FROM ${table} WHERE ${where} ORDER BY ts LIMIT 10000`;
950
+ dataset = await readRaw(base, archived[base], "lat, lon", where);
715
951
  }
716
- const result = await queryClient.exec(sql);
717
952
  // A position goes out as a `[longitude, latitude]` pair — GeoJSON
718
953
  // order, as the History API's OpenAPI schema defines and the other
719
954
  // providers emit — not as the data model's `{latitude, longitude}`.
720
- const rows = result.dataset.map((row) => [
955
+ const rows = dataset.map((row) => [
721
956
  row[0],
722
957
  row[1] !== null && row[2] !== null ? [row[2], row[1]] : null,
723
958
  ]);
@@ -726,7 +961,7 @@ archive = NO_ARCHIVE) {
726
961
  }
727
962
  const where = `${buildRangeWhere(range, safeContext)} AND path = '${safePath}'${sourceWhere}`;
728
963
  const seedWhere = `${seedRangeWhere(range, safeContext)} AND path = '${safePath}'${sourceWhere}`;
729
- const seedFrom = seedSource(range);
964
+ const seedFrom = seedSource(range, storedContext === "self");
730
965
  if (isMovingAverage(spec.aggregate)) {
731
966
  // The window runs over the series at the requested resolution — one
732
967
  // averaged bucket per sample, the grid every other column is on — so
@@ -738,17 +973,13 @@ archive = NO_ARCHIVE) {
738
973
  // gap ages values out instead of stretching the window across it.
739
974
  const window = movingAverageWindow(spec);
740
975
  const angular = isAngular(unitsOf(spec.path, requestedContext));
741
- const bucket = angular ? ANGULAR_BUCKET_SQL : "avg(value) as agg_value";
976
+ const bucket = angular ? ANGULAR_COLUMNS : valueColumns("average");
742
977
  const sampled = !!query.resolution && query.resolution > 0;
743
- const sql = sampled
744
- ? `SELECT ts, ${bucket}, ${HELD_SQL} FROM ${table} WHERE ${where} ${sampleBy(range, query.resolution)} ORDER BY ts`
745
- : `SELECT ts, value FROM ${table} WHERE ${where} ORDER BY ts LIMIT 10000`;
746
- const result = await queryClient.exec(sql);
747
978
  // Held before averaging: an unchanged value is still a sample of
748
979
  // the window, not a hole in it.
749
980
  const dataset = sampled
750
- ? await holdNumericBuckets(result.dataset, seedWhere, seedFrom)
751
- : result.dataset;
981
+ ? await holdNumericBuckets(await readSampled(base, archived[base], where, range, query.resolution, [bucket, HELD_COLUMNS]), seedWhere, seedFrom)
982
+ : await readRaw(base, archived[base], "value", where);
752
983
  // An angular series keeps one convention throughout: [0, 2π) unless
753
984
  // a sample (or a bucket's lowest sample) was negative.
754
985
  const floors = dataset.map((r) => angular && sampled
@@ -775,64 +1006,65 @@ archive = NO_ARCHIVE) {
775
1006
  columnData.set(specIndex, rows);
776
1007
  continue;
777
1008
  }
1009
+ // Non-numeric paths (strings, and booleans stored as "true"/"false")
1010
+ // live in signalk_str, which the numeric queries never touch, so a
1011
+ // column the numeric table held nothing for is read from there.
1012
+ const readText = async (pick) => {
1013
+ const strResult = await readStringRows(where, range, pick, query.resolution, seedWhere);
1014
+ if (strResult.sourceDropped) {
1015
+ // The rows came back unfiltered because signalk_str has no `source`
1016
+ // column. They are every source's rows, so the column must stop
1017
+ // claiming to be one source's — labelling unfiltered data with a
1018
+ // $source would be a lie the caller cannot detect.
1019
+ delete valuesList[specIndex].$source;
1020
+ }
1021
+ columnData.set(specIndex, strResult.rows);
1022
+ };
778
1023
  if (spec.aggregate === "middle_index") {
779
- // A text path has rows in signalk_str only; this reads the numeric
780
- // table and leaves the column empty for one, like a moving average.
781
- const result = await queryClient.exec(middleRowSql(table, "value", where, range, query.resolution));
1024
+ const result = await queryClient.exec(middleRowSql(union(), "value", where, range, query.resolution));
782
1025
  const rows = result.dataset.map((r) => [
783
1026
  r[0],
784
1027
  r[1],
785
1028
  ]);
786
- columnData.set(specIndex, rows);
1029
+ if (rows.some(([, value]) => value !== null)) {
1030
+ columnData.set(specIndex, rows);
1031
+ }
1032
+ else {
1033
+ await readText("middle_index");
1034
+ }
787
1035
  continue;
788
1036
  }
789
1037
  // Only average has a circular form; min, max and mid on an angle are
790
1038
  // the caller's choice, and first, last and middle_index are samples.
791
1039
  const angularMean = spec.aggregate === "average" &&
792
1040
  isAngular(unitsOf(spec.path, requestedContext));
793
- const aggExpr = angularMean
794
- ? ANGULAR_BUCKET_SQL
795
- : `${aggregateToSql(spec.aggregate)} as agg_value`;
1041
+ const value = angularMean
1042
+ ? ANGULAR_COLUMNS
1043
+ : valueColumns(spec.aggregate);
796
1044
  const sampled = !!query.resolution && query.resolution > 0;
797
- const sql = sampled
798
- ? `SELECT ts, ${aggExpr}, ${HELD_SQL} FROM ${table} WHERE ${where} ${sampleBy(range, query.resolution)} ORDER BY ts`
799
- : `SELECT ts, value FROM ${table} WHERE ${where} ORDER BY ts LIMIT 10000`;
800
- const result = await queryClient.exec(sql);
801
1045
  const dataset = sampled
802
- ? await holdNumericBuckets(result.dataset, seedWhere, seedFrom)
803
- : result.dataset;
1046
+ ? await holdNumericBuckets(await readSampled(base, archived[base], where, range, query.resolution, [value, HELD_COLUMNS]), seedWhere, seedFrom)
1047
+ : await readRaw(base, archived[base], "value", where);
804
1048
  const rows = dataset.map((row) => [
805
1049
  row[0],
806
1050
  angularMean && row.length > 2 && row[1] !== null
807
1051
  ? normaliseAngle(row[1], row[2] >= 0)
808
1052
  : row[1],
809
1053
  ]);
810
- // Non-numeric paths (strings, and booleans stored as "true"/"false")
811
- // live in signalk_str, which this query never touches — they used to
812
- // come back empty even though getPaths lists them. Fall back to the
813
- // string table when the numeric one held nothing for this path.
814
1054
  // Emptiness is judged on VALUES, not row count: a SAMPLE BY with
815
1055
  // FILL(NULL) fabricates a row per bucket, so an all-null result is
816
1056
  // still "no numeric data here". Not for an angular mean, though: its
817
1057
  // null is a bucket whose samples cancelled, and the string table
818
1058
  // holds no angles to fall back to.
819
1059
  if (!angularMean && !rows.some(([, value]) => value !== null)) {
820
- // Report the aggregate that was actually applied. Downsampled string
821
- // rows always use last() — averaging text is meaningless — so leaving
822
- // the caller's requested method in the response would label the
823
- // series with an aggregation that never ran.
1060
+ // first keeps its meaning on text; every aggregate that would compute
1061
+ // a value takes last. Report the one actually applied, so the column
1062
+ // never names an aggregation that did not run.
1063
+ const pick = spec.aggregate === "first" ? "first" : "last";
824
1064
  if (query.resolution && query.resolution > 0) {
825
- valuesList[specIndex].method = "last";
1065
+ valuesList[specIndex].method = pick;
826
1066
  }
827
- const strResult = await readStringRows(where, range, query.resolution, seedWhere);
828
- if (strResult.sourceDropped) {
829
- // The rows came back unfiltered because signalk_str has no `source`
830
- // column. They are every source's rows, so the column must stop
831
- // claiming to be one source's — labelling unfiltered data with a
832
- // $source would be a lie the caller cannot detect.
833
- delete valuesList[specIndex].$source;
834
- }
835
- columnData.set(specIndex, strResult.rows);
1067
+ await readText(pick);
836
1068
  continue;
837
1069
  }
838
1070
  columnData.set(specIndex, rows);
@@ -1 +1 @@
1
- {"version":3,"file":"history-v2.js","sourceRoot":"","sources":["../src/history-v2.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"history-v2.js","sourceRoot":"","sources":["../src/history-v2.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "signalk-questdb",
3
- "version": "2.3.0",
3
+ "version": "2.3.2",
4
4
  "type": "module",
5
5
  "description": "QuestDB history provider for Signal K — replaces signalk-to-influxdb",
6
6
  "keywords": [
@@ -49,7 +49,7 @@
49
49
  "@js-temporal/polyfill": "^0.5.0",
50
50
  "minimatch": "^10.2.3",
51
51
  "saxes": "^6.0.0",
52
- "signalk-container-helper": "^0.11.0",
52
+ "signalk-container-helper": "^0.12.0",
53
53
  "typebox": "^1.3.11"
54
54
  },
55
55
  "devDependencies": {
@@ -1 +1 @@
1
- import{t as e}from"./vite-preload-helper-CRzLMJPS.js";import{t}from"./helpers-oIxDNnZJ.js";var n=`__mf_module_cache__`;globalThis[n]||={share:{},remote:{}},globalThis[n].share||={},globalThis[n].remote||={};var r=globalThis[n];for(let e of Object.keys(r.share))if(e.startsWith(`default:`)){let t=e.slice(8);r.share[t]===void 0&&(r.share[t]=r.share[e])}else if(!e.includes(`:`)){let t=`default:`+e;r.share[t]===void 0&&(r.share[t]=r.share[e])}var i;async function a(){return i||=(async()=>{let n=(e,t,n,r)=>{let i=(Array.isArray(r)?r[0]:r)||`default`,a=t||!n?e:e+`@`+n,o={canonical:i+`:`+a};return i==="default"&&(o.aliases=[a]),o},i=(e,t)=>{let n=e[t.canonical];if(n!==void 0)return n;let r=t.aliases||[];for(let n of r){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let r=e[n];if(r!==void 0)return e[t.canonical]=r,r}},a=Symbol.for(`module-federation.shared-cache-listeners`),o=Symbol.for(`module-federation.shared-cache-owners`),s=e=>{let t=e[o];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,o,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},c=(e,t)=>e[o]?.[t.canonical],l=e=>{let t=[e,e?.default];for(let e of t)if(e&&typeof e==`object`){for(let t of[`__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE`,`__TEST_INTERNALS`,`__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED`]){let n=e[t];if(n&&typeof n==`object`)return{internals:n}}if(typeof e.useState==`function`)return{hook:e.useState}}},u=(e,t)=>{if(e===t)return!0;let n=l(e),r=l(t);if(!n||!r)return!1;let i=n.internals,a=r.internals;return i!==void 0||a!==void 0?i!==void 0&&i===a:typeof n.hook==`function`&&n.hook===r.hook},d=(e,t,n,r)=>{let c=i(e,t);if(c!==void 0&&u(c,n))return n;e[t.canonical]=n;let l=t.aliases||[];for(let t of l)Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0});let d=e[o];r===void 0?d&&delete d[t.canonical]:s(e)[t.canonical]=r;let f=e[a]?.[t.canonical];if(f)for(let e of f)e(n);return n},f=await(await e(()=>import(`../remoteEntry.js`),[],import.meta.url)).init(),{usedShared:p}=await e(async()=>{let{usedShared:e}=await import(`./_virtual_mf-localSharedImportMap___mfe_internal__signalk_questdb__mf_owner__1-BUtmcsA-.js`);return{usedShared:e}},[],import.meta.url),m=e=>{let t=e;for(let e=0;e<5;e++){let e=t?.default;if(!e||typeof e!=`object`||Object.keys(e).length===0)break;let n=Object.getPrototypeOf(e);if(n!==null&&n!==Object.prototype)break;let r=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(r.length>0&&r.some(e=>e!==void 0))break;t=e}return t},h=(e,t)=>y(t).some(n=>Object.keys(f.shareScopeMap?.[n]?.[e]||{}).some(e=>e!==t.version)),g=[[`react`]],_=Symbol(`mf.originalSharedProvider`),v={emit:e=>e},y=e=>Array.isArray(e.scope)?e.scope:[e.scope||`default`],b=(e,t)=>{if(t!==`version-first`)return e;let n={};for(let[t,r]of Object.entries(e))n[t]=Object.assign({},r,{[_]:r});return n},x=(e,n,r,i)=>{if(!e||!r)return;let a=Object.fromEntries(Object.entries(e).filter(([,e])=>e?.shareConfig?.import!==!1));if(Object.keys(a).length===0)return;let o=y(r),s=b(a,i),c={};for(let e of o)c[e||`default`]={[n]:s};let l=t.getRegisteredShare(c,n,{...r,scope:o,strategy:i},v)?.shared;return l?.[_]||l},S=(e,t,n,r)=>n.shareConfig?.singleton?Object.values(e||{}).some(e=>e?.shareConfig?.import!==!1):!!x(e,t,{...n,scope:[r]},`version-first`);for(let e of g)await Promise.all(e.map(async e=>{let t=p[e];if(!t||t.materialize===!1&&!t.lazy||t.treeShaking)return;let a=n(e,t.shareConfig?.singleton,t.version,t.scope);if(!(i(r.share,a)!==void 0&&(!t.shareConfig?.singleton&&c(r.share,a)===`signalk_questdb`||t.shareConfig?.singleton&&!h(e,t)))){if(t.shareConfig?.import===!1){let n=y(t),r=n=>!S(f.shareScopeMap?.[n]?.[e],e,t,n);if(n.some(r)){f.__mfKeepAdoptedProviders||(f.__mfKeepAdoptedProviders=!0,f.sharedHandler?.hooks?.lifecycle?.afterRegisterShare?.on?.(e=>{let{shared:t,previousShared:n,registeredShared:r}=e||{},i=f.shareScopeMap?.[e.scope]?.[e.pkgName];t&&i&&(t.shareConfig?.import===!1?r===t&&n&&n.shareConfig?.import!==!1&&i[t.version]===t&&(i[t.version]=n):r!==t&&r?.shareConfig?.import===!1&&!r.loaded&&i[t.version]===r&&(i[t.version]=t))}));for(let i of globalThis.__FEDERATION__?.__INSTANCES__||[])for(let a of n){let n=i?.shareScopeMap?.[a]?.[e];if(!S(n,e,t,a)||!r(a))continue;let o=(f.shareScopeMap[a]||={})[e]||={};for(let[e,t]of Object.entries(n))t?.shareConfig?.import!==!1&&(o[e]&&o[e].shareConfig?.import!==!1||(o[e]=t))}}if(n.every(r))return}await f.loadShare(e,{customShareInfo:{shareConfig:t.shareConfig}}).then(async e=>{if(e===!1)return;let t=typeof e==`function`?e():e,n=m(await Promise.resolve(t));d(r.share,a,n,`signalk_questdb`)})}}));for(let[e,t]of Object.entries(p)){if(!t.lib||t.treeShaking||t.shareConfig?.import===!1)continue;let i=n(e,t.shareConfig?.singleton,t.version,t.scope);if(c(r.share,i)===`signalk_questdb`)for(let n of Array.isArray(t.scope)?t.scope:[t.scope||`default`]){let r=f.shareScopeMap?.[n]?.[e],i=r?.[t.version];i&&i.get===t.get&&!i.lib&&(Object.values(r).some(e=>e!==i&&(e?.lib||e?.loaded))||(i.lib=t.lib,i.loaded=!0))}}return f})(),i}i=a();export{i as hostInitPromise,a as initHost};
1
+ import{t as e}from"./vite-preload-helper-CRzLMJPS.js";import{t}from"./helpers-oIxDNnZJ.js";var n=`__mf_module_cache__`;globalThis[n]||={share:{},remote:{}},globalThis[n].share||={},globalThis[n].remote||={};var r=globalThis[n];for(let e of Object.keys(r.share))if(e.startsWith(`default:`)){let t=e.slice(8);r.share[t]===void 0&&(r.share[t]=r.share[e])}else if(!e.includes(`:`)){let t=`default:`+e;r.share[t]===void 0&&(r.share[t]=r.share[e])}var i;async function a(){return i||=(async()=>{let n=(e,t,n,r)=>{let i=(Array.isArray(r)?r[0]:r)||`default`,a=t||!n?e:e+`@`+n,o={canonical:i+`:`+a};return i==="default"&&(o.aliases=[a]),o},i=(e,t)=>{let n=e[t.canonical];if(n!==void 0)return n;let r=t.aliases||[];for(let n of r){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let r=e[n];if(r!==void 0)return e[t.canonical]=r,r}},a=Symbol.for(`module-federation.shared-cache-listeners`),o=Symbol.for(`module-federation.shared-cache-owners`),s=e=>{let t=e[o];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,o,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},c=(e,t)=>e[o]?.[t.canonical],l=e=>{let t=[e,e?.default];for(let e of t)if(e&&typeof e==`object`){for(let t of[`__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE`,`__TEST_INTERNALS`,`__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED`]){let n=e[t];if(n&&typeof n==`object`)return{internals:n}}if(typeof e.useState==`function`)return{hook:e.useState}}},u=(e,t)=>{if(e===t)return!0;let n=l(e),r=l(t);if(!n||!r)return!1;let i=n.internals,a=r.internals;return i!==void 0||a!==void 0?i!==void 0&&i===a:typeof n.hook==`function`&&n.hook===r.hook},d=(e,t,n,r)=>{let c=i(e,t);if(c!==void 0&&u(c,n))return n;e[t.canonical]=n;let l=t.aliases||[];for(let t of l)Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0});let d=e[o];r===void 0?d&&delete d[t.canonical]:s(e)[t.canonical]=r;let f=e[a]?.[t.canonical];if(f)for(let e of f)e(n);return n},f=await(await e(()=>import(`../remoteEntry.js`),[],import.meta.url)).init(),{usedShared:p}=await e(async()=>{let{usedShared:e}=await import(`./_virtual_mf-localSharedImportMap___mfe_internal__signalk_questdb__mf_owner__1-BUtmcsA-.js`);return{usedShared:e}},[],import.meta.url),m=e=>{let t=e;for(let e=0;e<5;e++){let e=t?.default;if(!e||typeof e!=`object`||Object.keys(e).length===0)break;let n=Object.getPrototypeOf(e);if(n!==null&&n!==Object.prototype)break;let r=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(r.length>0&&r.some(e=>e!==void 0))break;t=e}return t},h=(e,t)=>y(t).some(n=>Object.keys(f.shareScopeMap?.[n]?.[e]||{}).some(e=>e!==t.version)),g=[[`react`]];{let e=new Set(g.flat()),t=Object.keys(p).filter(t=>!e.has(t));t.length&&g.push(t)}let _=Symbol(`mf.originalSharedProvider`),v={emit:e=>e},y=e=>Array.isArray(e.scope)?e.scope:[e.scope||`default`],b=(e,t)=>{if(t!==`version-first`)return e;let n={};for(let[t,r]of Object.entries(e))n[t]=Object.assign({},r,{[_]:r});return n},x=(e,n,r,i)=>{if(!e||!r)return;let a=Object.fromEntries(Object.entries(e).filter(([,e])=>e?.shareConfig?.import!==!1));if(Object.keys(a).length===0)return;let o=y(r),s=b(a,i),c={};for(let e of o)c[e||`default`]={[n]:s};let l=t.getRegisteredShare(c,n,{...r,scope:o,strategy:i},v)?.shared;return l?.[_]||l},S=(e,t,n,r)=>n.shareConfig?.singleton?Object.values(e||{}).some(e=>e?.shareConfig?.import!==!1):!!x(e,t,{...n,scope:[r]},`version-first`);for(let e of g)await Promise.all(e.map(async e=>{let t=p[e];if(!t||t.materialize===!1&&!t.lazy||t.treeShaking)return;let a=n(e,t.shareConfig?.singleton,t.version,t.scope);if(i(r.share,a)===void 0||h(e,t)||!t.shareConfig?.singleton&&c(r.share,a)!==`signalk_questdb`){if(t.shareConfig?.import===!1){let n=y(t),r=n=>!S(f.shareScopeMap?.[n]?.[e],e,t,n);if(n.some(r)){f.__mfKeepAdoptedProviders||(f.__mfKeepAdoptedProviders=!0,f.sharedHandler?.hooks?.lifecycle?.afterRegisterShare?.on?.(e=>{let{shared:t,previousShared:n,registeredShared:r}=e||{},i=f.shareScopeMap?.[e.scope]?.[e.pkgName];t&&i&&(t.shareConfig?.import===!1?r===t&&n&&n.shareConfig?.import!==!1&&i[t.version]===t&&(i[t.version]=n):r!==t&&r?.shareConfig?.import===!1&&!r.loaded&&i[t.version]===r&&(i[t.version]=t))}));for(let i of globalThis.__FEDERATION__?.__INSTANCES__||[])for(let a of n){let n=i?.shareScopeMap?.[a]?.[e];if(!S(n,e,t,a)||!r(a))continue;let o=(f.shareScopeMap[a]||={})[e]||={};for(let[e,t]of Object.entries(n))t?.shareConfig?.import!==!1&&(o[e]&&o[e].shareConfig?.import!==!1||(o[e]=t))}}if(n.every(r))return}await f.loadShare(e,{customShareInfo:{shareConfig:t.shareConfig}}).then(async e=>{if(e===!1)return;let t=typeof e==`function`?e():e,n=m(await Promise.resolve(t));d(r.share,a,n,`signalk_questdb`)})}}));for(let[e,t]of Object.entries(p)){if(!t.lib||t.treeShaking||t.shareConfig?.import===!1)continue;let i=n(e,t.shareConfig?.singleton,t.version,t.scope);if(c(r.share,i)===`signalk_questdb`)for(let n of Array.isArray(t.scope)?t.scope:[t.scope||`default`]){let r=f.shareScopeMap?.[n]?.[e],i=r?.[t.version];i&&i.get===t.get&&!i.lib&&(Object.values(r).some(e=>e!==i&&(e?.lib||e?.loaded))||(i.lib=t.lib,i.loaded=!0))}}return f})(),i}i=a();export{i as hostInitPromise,a as initHost};
@@ -1,2 +1,2 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./helpers-oIxDNnZJ.js","./utils-v9GZlbdk.js","./pendingShares-PvyVL1Z8.js","./vite-preload-helper-CRzLMJPS.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./vite-preload-helper-CRzLMJPS.js";var t=`__mf_module_cache__`;globalThis[t]||={share:{},remote:{}},globalThis[t].share||={},globalThis[t].remote||={};var n=globalThis[t];for(let e of Object.keys(n.share))if(e.startsWith(`default:`)){let t=e.slice(8);n.share[t]===void 0&&(n.share[t]=n.share[e])}else if(!e.includes(`:`)){let t=`default:`+e;n.share[t]===void 0&&(n.share[t]=n.share[e])}(async()=>{let t=await e(()=>import(`./hostInit-B3lIJd9C.js`),__vite__mapDeps([0,1]),import.meta.url);await t.__tla;let{initHost:r}=t;await r();let i=await e(()=>import(`./pendingShares-PvyVL1Z8.js`),__vite__mapDeps([2,3]),import.meta.url).catch(()=>void 0);i&&typeof i.preloadPendingShares==`function`&&await i.preloadPendingShares(),n.pendingShareLoads&&await Promise.all(n.pendingShareLoads);let a=globalThis.__mf_module_cache_react_server__;a?.pendingShareLoads&&await Promise.all(a.pendingShareLoads)})().then(()=>e(()=>import(`./configpanel-BvRk9kiK.js`),[],import.meta.url));
2
+ import{t as e}from"./vite-preload-helper-CRzLMJPS.js";var t=`__mf_module_cache__`;globalThis[t]||={share:{},remote:{}},globalThis[t].share||={},globalThis[t].remote||={};var n=globalThis[t];for(let e of Object.keys(n.share))if(e.startsWith(`default:`)){let t=e.slice(8);n.share[t]===void 0&&(n.share[t]=n.share[e])}else if(!e.includes(`:`)){let t=`default:`+e;n.share[t]===void 0&&(n.share[t]=n.share[e])}(async()=>{let t=await e(()=>import(`./hostInit-3qWTwrQQ.js`),__vite__mapDeps([0,1]),import.meta.url);await t.__tla;let{initHost:r}=t;await r();let i=await e(()=>import(`./pendingShares-PvyVL1Z8.js`),__vite__mapDeps([2,3]),import.meta.url).catch(()=>void 0);i&&typeof i.preloadPendingShares==`function`&&await i.preloadPendingShares(),n.pendingShareLoads&&await Promise.all(n.pendingShareLoads);let a=globalThis.__mf_module_cache_react_server__;a?.pendingShareLoads&&await Promise.all(a.pendingShareLoads)})().then(()=>e(()=>import(`./configpanel-BvRk9kiK.js`),[],import.meta.url));
@@ -1,4 +1,4 @@
1
- import{t as e}from"./assets/vite-preload-helper-CRzLMJPS.js";import{t}from"./assets/dist-C5M3fhBw.js";import{t as n}from"./assets/helpers-oIxDNnZJ.js";var r={},i=new Set,a=new Map;function o(e,t){let n=a.get(e);return n||(n=Promise.resolve().then(t).catch(t=>{throw a.delete(e),t}),a.set(e,n)),n}async function s(e){if(typeof document>`u`)return;let t=r[e]||[];await Promise.all(t.map(e=>{let t=new URL(e,import.meta.url).href;return i.has(t)||(i.add(t),document.querySelector(`link[rel="stylesheet"][href="${t}"]`))?Promise.resolve():new Promise((e,n)=>{let r=document.createElement(`link`);r.rel=`stylesheet`,r.href=t,r.onload=()=>e(),r.onerror=()=>n(Error(`[Module Federation] Failed to load CSS asset: ${t}`)),document.head.appendChild(r)})}))}var c={"./PluginConfigurationPanel":async()=>{await s(`./PluginConfigurationPanel`),await Promise.all([]);let t=await o(`./PluginConfigurationPanel`,()=>e(()=>import(`./assets/PluginConfigurationPanel-DR-y5e3d.js`),[],import.meta.url)),n=t&&t.__mf_remote_dependency_pending;n&&typeof n.then==`function`&&await n;let r={};return Object.assign(r,t),Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),r},"./AppPanel":async()=>{await s(`./AppPanel`),await Promise.all([]);let t=await o(`./AppPanel`,()=>e(()=>import(`./assets/AppPanel-Fvhb8xTK.js`),[],import.meta.url)),n=t&&t.__mf_remote_dependency_pending;n&&typeof n.then==`function`&&await n;let r={};return Object.assign(r,t),Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),r}};typeof __VUE_HMR_RUNTIME__>`u`&&(globalThis.__VUE_HMR_RUNTIME__={createRecord(){},rerender(){},reload(){}});var l=`__mf_init__virtual:mf:__mfe_internal__signalk_questdb__mf_owner__196689844091135__mf_v__runtimeInit__mf_v__.js__`,u=globalThis[l];if(!u){let e,t,n=new Promise((n,r)=>{e=n,t=r});u=globalThis[l]={initPromise:n,initResolve:e,initReject:t}}var d=u.initResolve,{initReject:f}=u,p=e=>{throw f(e),e},m=`__mf_module_cache__`;globalThis[m]||={share:{},remote:{}},globalThis[m].share||={},globalThis[m].remote||={};var h=globalThis[m];for(let e of Object.keys(h.share))if(e.startsWith(`default:`)){let t=e.slice(8);h.share[t]===void 0&&(h.share[t]=h.share[e])}else if(!e.includes(`:`)){let t=`default:`+e;h.share[t]===void 0&&(h.share[t]=h.share[e])}var g={},_=Array.isArray(`default`)?`default`:[`default`],v=`default`,y=`signalk_questdb`,b=[[`react`]],x,S;async function C(e){for(let t=0;;t++)try{return await e()}catch(e){throw e}}var w=Symbol(`mf.originalSharedProvider`),T={emit:e=>e},E=e=>Array.isArray(e.scope)?e.scope:[e.scope||`default`],D=(e,t)=>{if(t!==`version-first`)return e;let n={};for(let[t,r]of Object.entries(e))n[t]=Object.assign({},r,{[w]:r});return n},O=(e,t)=>{if(!t)return;let n=Object.entries(e||{}),r=n.find(([,e])=>e===t);if(r)return{version:r[0],provider:t,registered:!0};if(typeof t.version==`string`&&t.version)return{version:t.version,provider:t,registered:!1};let i=n.filter(([,e])=>e===t||!!(t.from&&e?.from===t.from));if(i.length===1)return{version:i[0][0],provider:t,registered:!1}},k=(e,t,r,i)=>{if(!e||!r)return;let a=Object.fromEntries(Object.entries(e).filter(([,e])=>e?.shareConfig?.import!==!1));if(Object.keys(a).length===0)return;let o=E(r),s=D(a,i),c={};for(let e of o)c[e||`default`]={[t]:s};let l=n.getRegisteredShare(c,t,{...r,scope:o,strategy:i},T)?.shared;return l?.[w]||l},A=(e,t,n,r)=>{let i=e=>j(e,n),a=Object.fromEntries(Object.entries(e||{}).filter(([,e])=>!i(e)&&e?.shareConfig?.import!==!1));n?.version&&n.shareConfig?.import!==!1&&(a[n.version]||(a[n.version]=n));let o=k(a,t,n,r);return i(o)?void 0:o},j=(e,t)=>e===t||!!(t?.from&&e?.from===t.from),M=(e,t,n,r,i,a,o,s,c)=>{if(c!==`version-first`||!s)return;let l=t?.options?.shared?.[i],u=Array.isArray(l)?l.find(e=>e?.version===a):void 0,d=(s?.from===t?.options?.name?s:void 0)||(j(u,s)?u:t?void 0:s);if(d)return e.some(e=>e!==t&&e?.options?.name===o?.from&&e?.shareScopeMap?.[r]===n)?d:void 0},ee=(e,t,n,r,i,a,o,s,c)=>{let l=a.registered?M(e,t,n,r,i,a.version,a.provider,s,c):void 0,u=l||o;if(u&&(!a.registered||j(u,s)))return{provider:u,scopeRootProvider:l}};async function N(){return x||=C(()=>e(()=>import(`./assets/_virtual_mf-localSharedImportMap___mfe_internal__signalk_questdb__mf_owner__1-BUtmcsA-.js`),[],import.meta.url)).catch(e=>{throw x=void 0,e}),x}async function P(){return c}async function F(e={},n=[],r={}){let i=(e,t,n,r)=>{let i=(Array.isArray(r)?r[0]:r)||`default`,a=t||!n?e:e+`@`+n,o={canonical:i+`:`+a};return i==="default"&&(o.aliases=[a]),o},a=(e,t)=>{let n=e[t.canonical];if(n!==void 0)return n;let r=t.aliases||[];for(let n of r){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let r=e[n];if(r!==void 0)return e[t.canonical]=r,r}},o=Symbol.for(`module-federation.shared-cache-listeners`),s=Symbol.for(`module-federation.shared-cache-owners`),c=e=>{let t=e[s];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,s,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},l=(e,t)=>e[s]?.[t.canonical],f=e=>{let t=[e,e?.default];for(let e of t)if(e&&typeof e==`object`){for(let t of[`__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE`,`__TEST_INTERNALS`,`__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED`]){let n=e[t];if(n&&typeof n==`object`)return{internals:n}}if(typeof e.useState==`function`)return{hook:e.useState}}},m=(e,t)=>{if(e===t)return!0;let n=f(e),r=f(t);if(!n||!r)return!1;let i=n.internals,a=r.internals;return i!==void 0||a!==void 0?i!==void 0&&i===a:typeof n.hook==`function`&&n.hook===r.hook},x=(e,t,n,r)=>{let i=a(e,t);if(i!==void 0&&m(i,n))return n;e[t.canonical]=n;let l=t.aliases||[];for(let t of l)Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0});let u=e[s];r===void 0?u&&delete u[t.canonical]:c(e)[t.canonical]=r;let d=e[o]?.[t.canonical];if(d)for(let e of d)e(n);return n},w=Symbol.for(`module-federation.tree-shaking-shared-cache`),T=e=>{let t=e[w];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,w,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},E=(e,t,n,r)=>{if(!Array.isArray(n))return r;let i=[...new Set(n)].sort(),a=T(e),o=a[t.canonical]||=[],s=o.find(e=>e.providedExports.length===i.length&&e.providedExports.every((e,t)=>e===i[t]));return s?s.value=r:o.push({providedExports:i,value:r}),r},D=Symbol.for(`module-federation.tree-shaking-shared-selection-cache`),M=e=>{let t=e[D];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,D,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},P=(e,t,n)=>{let r=a(e,t);return r===void 0?e[D]?.[t.canonical]?.[n]:r},F=(e,t,n,r)=>{let i=M(e),a=i[t.canonical]||=Object.create(null);return a[n]=r,r},I=globalThis.__FEDERATION__?.__INSTANCES__||[],te=n.find(e=>e?.from)?.from,ne=I.find(t=>t?.options?.name===te&&t?.shareScopeMap?.default===e)||I.find(t=>t?.options?.name!==y&&t?.shareScopeMap?.default===e),re=Object.create(null),ie=e=>{let t=Object.create(null);for(let[n,r]of Object.entries(e||{}))t[n]=Object.assign(Object.create(null),r);return t},ae=(e,t)=>{for(let[n,r]of Object.entries(G.shareScopeMap?.[e]||{}))for(let[e,i]of Object.entries(r||{})){if(!i||i.get===R[n]?.get)continue;let r=t[n]||={};r[e]===void 0&&(r[e]=i)}},oe=(e,t)=>{ae(e,t);let n=!ne&&Object.values(t||{}).some(e=>Object.values(e||{}).some(z)),r=n?ie(t):t;return re[e]={host:t,runtime:r,isWebpackScope:n},r},se=()=>{let e=Object.values(re).filter(({isWebpackScope:e})=>e);if(e.length!==0)for(let{host:t,runtime:n}of e)for(let[e,r]of Object.entries(t||{})){let t=n[e]||=Object.create(null);for(let[e,n]of Object.entries(r||{}))t[e]=n}},L=Object.create(null);for(let[t,n]of Object.entries(e)){let e=L[t]=Object.create(null);for(let[t,r]of Object.entries(n))e[t]=Object.assign({},r)}let{usedShared:R,usedRemotes:ce}=await N();function z(e){if(typeof e?.get!=`function`)return!1;let t=Function.prototype.toString.call(e.get);return t.includes(`__webpack_require__`)||/\.\s*e\s*\([^)]*\)\s*\.then\s*\(/.test(t)}let le=Object.values(L).some(e=>Object.values(e||{}).some(z)),ue=e=>{let t=e.split(`/`);return e.startsWith(`@`)?t.slice(0,2).join(`/`):t[0]},B=(t,n,r,i)=>{if(typeof A!=`function`)return;let a=ue(t),o=!i||a===t?[[t,n]]:[[t,n],[a,R[a]]];for(let[n,i]of o){if(!i)continue;let a=A(r?n===t?r:L[n]:L[n]??e[n],n,i,`version-first`);if(a)return a}},de=(e,t,n)=>{let r=B(e,t,n,!0);return r&&z(r)&&!r.lib&&!r.loaded?r:void 0};var V=g[v];if(V||=g[v]={from:y},n.indexOf(V)>=0)return;n.push(V);let fe=e=>{let t=e;for(let e=0;e<5;e++){let e=t?.default;if(!e||typeof e!=`object`||Object.keys(e).length===0)break;let n=Object.getPrototypeOf(e);if(n!==null&&n!==Object.prototype)break;let r=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(r.length>0&&r.some(e=>e!==void 0))break;t=e}return t},pe=[],me=globalThis.window===void 0?await Promise.all([]):[],H=`__mf_vite_runtime_share_load_id__`,he=0,U=new Map,W=new Map,G=t({name:y,remotes:ce,shared:R,plugins:[ge(),_e(),...pe,...me],shareStrategy:`version-first`});G.initShareScopeMap(`default`,oe(`default`,e));function ge(){return{name:`vite-share-pin-lifecycle-plugin`,resolveShare(e){let t=e.shareInfo?.[H],n=t===void 0?void 0:W.get(t);if(!n)return e;let r=e.resolver;return e.resolver=(...e)=>(n.pinned.reapply(),r(...e)),n.pinned.reveal(),e}}}function _e(){return{name:`vite-real-name-snapshot-plugin`,afterLoadSnapshot(e){let t=e&&e.remoteSnapshot,n=t&&t.globalName,r=t&&t.version;if(!n||!r||!t.remoteEntry)return e;let i=globalThis.__FEDERATION__&&globalThis.__FEDERATION__.moduleInfo,a=n+`:`+r;return i&&!i[a]&&(i[a]=t),e}}}let ve=G.sharedHandler.hooks.lifecycle.resolveShare;G.__mfKeepAdoptedProviders||(G.__mfKeepAdoptedProviders=!0,G.sharedHandler?.hooks?.lifecycle?.afterRegisterShare?.on?.(e=>{let{shared:t,previousShared:n,registeredShared:r}=e||{},i=G.shareScopeMap?.[e.scope]?.[e.pkgName];t&&i&&(t.shareConfig?.import===!1?r===t&&n&&n.shareConfig?.import!==!1&&i[t.version]===t&&(i[t.version]=n):r!==t&&r?.shareConfig?.import===!1&&!r.loaded&&i[t.version]===r&&(i[t.version]=t))}));let K=new WeakMap;ve.on(e=>{let t=e.shareInfo?.[H],n=e.resolver;return typeof n==`function`&&(e.resolver=(...r)=>{let i=n(...r);if(i?.shared?.shareConfig?.import===!1&&typeof k==`function`&&R[e.pkgName]){let t=k(e.shareScopeMap?.[e.scope]?.[e.pkgName],e.pkgName,R[e.pkgName],`version-first`);t&&t.shareConfig?.import!==!1&&(i={shared:t,useTreesShaking:i.useTreesShaking})}let a=i?.shared;return a&&(typeof a==`object`||typeof a==`function`)&&!K.has(a)&&K.set(a,{from:a.from}),t!==void 0&&a&&U.set(t,a),i}),e});let ye=(e,t,n,r)=>{if(!e||e[t]!==n)return;let i=Object.assign({},r,{version:r.version??t,scope:r.scope??n?.scope??[`default`],strategy:`loaded-first`}),a=r.from;e[t]=i;let o=()=>n===void 0?e[t]===void 0:e[t]===n;return{provider:i,reveal(){return e[t]===i&&(n===void 0?delete e[t]:e[t]=n,!0)},reapply(){return o()?(e[t]=i,!0):!1},release(s,c=!0){return r.from=a,e[t]===i?c?s?(i.from=a,s&&i.lib&&(i.loaded=!0),r.strategy===void 0?delete i.strategy:i.strategy=r.strategy,!0):(n===void 0?delete e[t]:e[t]=n,!1):(n===void 0?delete e[t]:e[t]=n,!0):!c&&o()}}},be=e=>Object.entries(e||{}).map(([e,t])=>({provider:t,version:e,from:t.from,registered:!0})),xe=(e,t)=>{if(t===void 0)return;let n;for(let r of e){let e=r.provider,i=e.treeShaking||e;if(r.loadedFactory===t||e.lib===t||i.lib===t){if(n)return;n=r}}return n},Se=async(e,t,n)=>{let r=++he;W.set(r,{pinned:n});try{let n=await G.loadShare(e,{customShareInfo:{shareConfig:t,[H]:r}});return{factory:n===!1?void 0:n,selectedProvider:U.get(r)}}finally{U.delete(r),W.delete(r)}},Ce=async(e,t,n,r,i,a,o=!0)=>{let s=a.from,c=ye(n,r,i,a);if(!c)return;let l;try{l=await Se(e,t,c)}catch(e){throw c.release(!1),e}let u=l?.factory;if(u===void 0){c.release(!1);return}let d=be(n),f=c.provider.treeShaking||c.provider,p=c.provider.lib===u||f.lib===u;if(!o&&p){let e=d.findIndex(e=>e.provider===c.provider);e!==-1&&d.splice(e,1)}!o&&!d.some(e=>e.provider===a)&&d.push({provider:a,version:r,from:s,registered:!1,loadedFactory:p?u:void 0});let m=!o&&l.selectedProvider===c.provider&&p?a:l.selectedProvider;if(m&&!d.some(e=>e.provider===m)){let e=K.get(m),t=typeof m.version==`string`&&m.version?m.version:r;d.push({provider:m,version:t,from:e?e.from:m.from,registered:n?.[t]===m,loadedFactory:u})}let h=d.find(e=>e.provider===m)??xe(d,u);if(!c.release(!0,h?.provider===c.provider)||!h)return;let g=K.get(h.provider);h.from=h.provider===a?s:g?g.from:h.provider.from,g&&(h.provider.from=g.from);let _=typeof u==`function`?u():u,v=await Promise.resolve(_);if(!(h.registered&&n?.[h.version]!==h.provider))return{provider:h.provider,selection:h,resolved:v}},q=new Set,J=new Map,we=async(t,n,r)=>{let o=!!n.shareConfig?.singleton;if(!o&&n.canLiveRebind!==!1)try{let s=A(r,t,n,`version-first`),c=O(r,s);if(!c||n.shareConfig?.import===!1&&j(s,n)||s?.shareConfig?.import===!1)return;let{version:l}=c;if(!o&&l!==n.version||!s.lib&&!s.loading&&!(s.loaded&&typeof s.get==`function`))return;let u=i(t,o,n.version,n.scope);if(a(h.share,u)!==void 0)return;let d=e[t],f=d?.[l];if(c.registered&&!j(f,s))return;let p,m=s.lib;if(!m&&z(s)||(!m&&s.loading&&(m=await s.loading),!m&&s.loaded&&typeof s.get==`function`&&(m=await s.get()),!m))return;let g=typeof m==`function`?m():m,_=await Promise.resolve(g),v=c.registered?f:s;p={provider:v,selection:{provider:v,version:l,from:s.from,registered:c.registered},resolved:_};let y=p?.provider,b=p?.selection;if(!b)return;let S=p?.resolved;if(S===void 0||a(h.share,u)!==void 0||b.registered&&d?.[b.version]!==y)return;x(h.share,u,fe(S),b.from),q.add(y)}catch(e){console.error(`[Module Federation] Failed to bridge materialized shared module "`+t+`"`,e)}},Y=async(t,n,r,o,s)=>{try{let c=i(t,n.shareConfig?.singleton,n.version,n.scope),u=a(h.share,c),d=l(h.share,c),f=A(r,t,n,`version-first`),p=f||k(r,t,n,`version-first`)||n,m=O(r,p);if(!m)return;let g=j(p,n),{version:_}=m;if(!n.shareConfig?.singleton&&_!==n.version)return;let v=o?.[_],b=ee(I,ne,e,`default`,t,m,f,v,`version-first`);if(!b&&!g)return;let{provider:S,scopeRootProvider:C}=b||{provider:p,scopeRootProvider:void 0};if(n.canLiveRebind===!1||n.shareConfig?.import===!1&&j(S,n)||S?.shareConfig?.import===!1||u!==void 0&&d!==y)return;let w=e[t],T=w?.[_];if(m.registered&&!C&&!j(T,S))return;let E=await Ce(t,n.shareConfig,w,_,T,S,m.registered&&!g),D=E?.provider,M=E?.selection;if(!M||j(D,n)||s&&(s.version!==M.version||!j({from:M.from},s.provider))||q.has(D))return;let N=E?.resolved;if(N===void 0)return;let P=a(h.share,c),F=l(h.share,c);if(P!==void 0&&F!==y||M.registered&&w?.[M.version]!==D)return;s||J.set(t,{version:M.version,provider:{from:M.from}}),q.add(D);let te=fe(N);x(h.share,c,te,M.from)}catch(e){console.error(`[Module Federation] Failed to bridge external shared module "`+t+`"`,e)}};for(let e of b)await Promise.all(e.map(async e=>{let t=R[e];t&&t.materialize!==!1&&!t.treeShaking&&await we(e,t,L[e])}));for(let[e,t]of Object.entries(R)){if(t.treeShaking)continue;let n=i(e,t.shareConfig?.singleton,t.version,t.scope);if(a(h.share,n)!==void 0)continue;let r=i(e,!0,t.version,t.scope),o=a(h.share,r);o!==void 0&&x(h.share,n,o,l(h.share,r))}let Te=[`react`],Ee=[[`react`]],X=new Map(Te.map((e,t)=>[e,t])),De={},Z=Te.filter(e=>R[e]&&(R[e].materialize!==!1||R[e].shareConfig?.import===!1&&!R[e].lazy));h.providerInit||=new Map;let Oe=(e,t)=>{let n=h.providerInit.get(e);if(n)return n;let r=Promise.resolve().then(t);return h.providerInit.set(e,r),r.catch(()=>h.providerInit.delete(e)),r};var ke=async e=>{let t=new Set(e);for(let e of Ee)await Promise.all(e.filter(e=>t.has(e)).map(async e=>{let t=R[e],n=i(e,t.shareConfig?.singleton,t.version,t.scope);if(t.shareConfig?.import===!1||t.treeShaking||a(h.share,n)!==void 0)return;let r=i(e,!0,t.version,t.scope),o=a(h.share,r);if(o!==void 0){x(h.share,n,o,l(h.share,r));return}let s=typeof B==`function`?B(e,t):void 0;if(s){let r=s.lib;if(!r&&s.loading&&(r=await s.loading),!r&&s.loaded&&typeof s.get==`function`&&(r=await s.get()),r){let e=typeof r==`function`?r():r,t=await Promise.resolve(e);x(h.share,n,(e=>{let t=e;for(let e=0;e<5;e++){let e=t?.default;if(!e||typeof e!=`object`||Object.keys(e).length===0)break;let n=Object.getPrototypeOf(e);if(n!==null&&n!==Object.prototype)break;let r=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(r.length>0&&r.some(e=>e!==void 0))break;t=e}return t})(t),s.from);return}if(typeof z==`function`&&z(s)&&(t.shareConfig?.singleton||O(L[e],s)?.version===t.version))return}let c=n.canonical,u=await Oe(c,async()=>{let e=await t.get(),n=typeof e==`function`?e():e;return Promise.resolve(n)});for(let n of G.options.shared?.[e]||[])n.get===t.get&&(n.eager=!0);let d=(e=>{let t=e;for(let e=0;e<5;e++){let e=t?.default;if(!e||typeof e!=`object`||Object.keys(e).length===0)break;let n=Object.getPrototypeOf(e);if(n!==null&&n!==Object.prototype)break;let r=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(r.length>0&&r.some(e=>e!==void 0))break;t=e}return t})(u),f=d===u?{...u}:d;f.__esModule!==!0&&Object.defineProperty(f,"__esModule",{value:!0,enumerable:!1}),x(h.share,n,f,y)}))};let Q=e=>{let t=R[e];if(!t.treeShaking&&t.shareConfig?.import!==!1)return!1;let n=i(e,t.shareConfig?.singleton,t.version,t.scope);return t.treeShaking?P(h.share,n,y)===void 0&&a(h.share,n)===void 0:a(h.share,n)===void 0},Ae=e=>{let t=R[e],n=i(e,t.shareConfig?.singleton,t.version,t.scope);return(t.treeShaking?P(h.share,n,y)??a(h.share,n):a(h.share,n))===void 0?t.treeShaking||t.shareConfig?.import===!1?!0:typeof A==`function`&&!!A(L[e],e,t,`version-first`):!1},je=e=>{let t=!0;for(;t;){t=!1;for(let n of Z){let r=X.get(n);e.has(r)||(De[r]||[]).some(t=>e.has(t))&&(e.add(r),t=!0)}}return e},Me=je(new Set(Z.filter(Ae).map(e=>X.get(e)))),Ne=Z.filter(e=>!Me.has(X.get(e)));var Pe=Z.filter(e=>Me.has(X.get(e)));await ke(Ne).catch(p);try{await C(async()=>{await Promise.all(await G.initializeSharing(`default`,{strategy:`version-first`,from:`build`,initScope:n}))})}catch(e){console.error(`[Module Federation]`,e)}se();let Fe=async()=>{for(let t of b)await Promise.all(t.map(async t=>{let n=R[t];n&&n.materialize!==!1&&!n.treeShaking&&await Y(t,n,e[t],L[t],void 0)}))};le?S=Fe:await Fe();try{let e=globalThis.__FEDERATION__?.__SHARE__,t=Object.create(null);if(e)for(let[,n]of Object.entries(e))for(let e of _){let r=n?.[e];if(r)for(let[e,n]of Object.entries(r)){let r=R?.[e],i=L[e],a=J.get(e);if(!r||!i||!a||r.treeShaking)continue;let o=t[e]||(t[e]=Object.create(null));for(let[e,t]of Object.entries(n)){if(!t.lib||a.version!==e||!j(t,a.provider))continue;let n=i[e];(t===n||n?.from&&t.from===n.from)&&(t===r||r.from&&t.from===r.from||o[e]===void 0&&(o[e]=t))}}}for(let e of b)await Promise.all(e.map(async e=>{let n=t[e];n&&await Y(e,R[e],n,L[e],J.get(e))}))}catch(e){console.error(`[Module Federation] Failed to bridge external shared modules`,e)}let Ie=async()=>{},Le=async(t,n)=>{let r=i(t,n.shareConfig?.singleton,n.version,n.scope),o=n.treeShaking?P(h.share,r,y):a(h.share,r);if(n.shareConfig?.import!==!1||o!==void 0||de(t,n,L[t]))return;let s=e=>{let t=e;for(let e=0;e<5;e++){let e=t?.default;if(!e||typeof e!=`object`||Object.keys(e).length===0)break;let n=Object.getPrototypeOf(e);if(n!==null&&n!==Object.prototype)break;let r=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(r.length>0&&r.some(e=>e!==void 0))break;t=e}return t},c=e?.[t],l=k(c,t,n,`version-first`)||n,u=O(c,l);if(!u)return;let d=e=>e===n||e?.shareConfig?.import===!1;if(d(l))return;let{version:f}=u,p=c?.[f],m=await Ce(t,n.shareConfig,c,f,p,l,u.registered),g=m?.selection,_=m?.provider,v=m?.resolved;if(!g||d(_)||v===void 0||(n.treeShaking?P(h.share,r,y):a(h.share,r))!==void 0||g.registered&&c?.[g.version]!==_)return;let b=s(v);if(n.treeShaking){let e=n.treeShaking.providedExports??n.treeShaking.usedExports??[];E(h.share,r,e,b),F(h.share,r,y,b)}else x(h.share,r,b,g.from)},Re=[],ze=new Set;for(let e of Pe){let t=R[e],n=X.get(e);if(Q(e))try{t.treeShaking?await Ie(e,t):t.shareConfig?.import===!1&&await Le(e,t)}catch(t){console.error(`[Module Federation] Failed to resolve runtime-only shared module "${e}"`,t)}Q(e)&&ze.add(n)}je(ze),Re.push(...Pe.filter(e=>!ze.has(X.get(e)))),await ke(Re).catch(p);let $=new Map;return u.loadLazyShares=async t=>{let n=new Set(t);for(let t of b)await Promise.all(t.filter(e=>n.has(e)).map(t=>{let n=R[t];if(!n||!n.lazy||!Q(t))return;let r=$.get(t);return r||(r=Y(t,n,e[t],L[t],void 0).then(()=>Q(t)?Le(t,n):void 0),r.catch(()=>$.delete(t)),$.set(t,r)),r}))},d(G),G}async function I(e){let t=await P();if(!(e in t))throw Error(`[Module Federation] Module ${e} does not exist in container.`);return S&&await S(),h.pendingShareLoads&&await Promise.all(h.pendingShareLoads),t[e]().then(e=>()=>e)}export{I as get,F as init};
1
+ import{t as e}from"./assets/vite-preload-helper-CRzLMJPS.js";import{t}from"./assets/dist-C5M3fhBw.js";import{t as n}from"./assets/helpers-oIxDNnZJ.js";var r={},i=new Set,a=new Map;function o(e,t){let n=a.get(e);return n||(n=Promise.resolve().then(t).catch(t=>{throw a.delete(e),t}),a.set(e,n)),n}async function s(e){if(typeof document>`u`)return;let t=r[e]||[];await Promise.all(t.map(e=>{let t=new URL(e,import.meta.url).href;return i.has(t)||(i.add(t),document.querySelector(`link[rel="stylesheet"][href="${t}"]`))?Promise.resolve():new Promise((e,n)=>{let r=document.createElement(`link`);r.rel=`stylesheet`,r.href=t,r.onload=()=>e(),r.onerror=()=>{i.delete(t),n(Error(`[Module Federation] Failed to load CSS asset: ${t}`))},document.head.appendChild(r)})}))}var c={"./PluginConfigurationPanel":async()=>{await s(`./PluginConfigurationPanel`),await Promise.all([]);let t=await o(`./PluginConfigurationPanel`,()=>e(()=>import(`./assets/PluginConfigurationPanel-DR-y5e3d.js`),[],import.meta.url)),n=t&&t.__mf_remote_dependency_pending;n&&typeof n.then==`function`&&await n;let r={};return Object.assign(r,t),Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),r},"./AppPanel":async()=>{await s(`./AppPanel`),await Promise.all([]);let t=await o(`./AppPanel`,()=>e(()=>import(`./assets/AppPanel-Fvhb8xTK.js`),[],import.meta.url)),n=t&&t.__mf_remote_dependency_pending;n&&typeof n.then==`function`&&await n;let r={};return Object.assign(r,t),Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),r}};typeof __VUE_HMR_RUNTIME__>`u`&&(globalThis.__VUE_HMR_RUNTIME__={createRecord(){},rerender(){},reload(){}});var l=`__mf_init__virtual:mf:__mfe_internal__signalk_questdb__mf_owner__196689844091135__mf_v__runtimeInit__mf_v__.js__`,u=globalThis[l];if(!u){let e,t,n=new Promise((n,r)=>{e=n,t=r});u=globalThis[l]={initPromise:n,initResolve:e,initReject:t}}var d=u.initResolve,{initReject:f}=u,p=e=>{throw f(e),e},m=`__mf_module_cache__`;globalThis[m]||={share:{},remote:{}},globalThis[m].share||={},globalThis[m].remote||={};var h=globalThis[m];for(let e of Object.keys(h.share))if(e.startsWith(`default:`)){let t=e.slice(8);h.share[t]===void 0&&(h.share[t]=h.share[e])}else if(!e.includes(`:`)){let t=`default:`+e;h.share[t]===void 0&&(h.share[t]=h.share[e])}var g={},_=Array.isArray(`default`)?`default`:[`default`],v=`default`,y=`signalk_questdb`,b=[[`react`]],x,S;async function C(e){for(let t=0;;t++)try{return await e()}catch(e){throw e}}var w=Symbol(`mf.originalSharedProvider`),T={emit:e=>e},E=e=>Array.isArray(e.scope)?e.scope:[e.scope||`default`],D=(e,t)=>{if(t!==`version-first`)return e;let n={};for(let[t,r]of Object.entries(e))n[t]=Object.assign({},r,{[w]:r});return n},O=(e,t)=>{if(!t)return;let n=Object.entries(e||{}),r=n.find(([,e])=>e===t);if(r)return{version:r[0],provider:t,registered:!0};if(typeof t.version==`string`&&t.version)return{version:t.version,provider:t,registered:!1};let i=n.filter(([,e])=>e===t||!!(t.from&&e?.from===t.from));if(i.length===1)return{version:i[0][0],provider:t,registered:!1}},k=(e,t,r,i)=>{if(!e||!r)return;let a=Object.fromEntries(Object.entries(e).filter(([,e])=>e?.shareConfig?.import!==!1));if(Object.keys(a).length===0)return;let o=E(r),s=D(a,i),c={};for(let e of o)c[e||`default`]={[t]:s};let l=n.getRegisteredShare(c,t,{...r,scope:o,strategy:i},T)?.shared;return l?.[w]||l},A=(e,t,n,r)=>{let i=e=>j(e,n),a=Object.fromEntries(Object.entries(e||{}).filter(([,e])=>!i(e)&&e?.shareConfig?.import!==!1));n?.version&&n.shareConfig?.import!==!1&&(a[n.version]||(a[n.version]=n));let o=k(a,t,n,r);return i(o)?void 0:o},j=(e,t)=>e===t||!!(t?.from&&e?.from===t.from),M=(e,t,n,r,i,a,o,s,c)=>{if(c!==`version-first`||!s)return;let l=t?.options?.shared?.[i],u=Array.isArray(l)?l.find(e=>e?.version===a):void 0,d=(s?.from===t?.options?.name?s:void 0)||(j(u,s)?u:t?void 0:s);if(d)return e.some(e=>e!==t&&e?.options?.name===o?.from&&e?.shareScopeMap?.[r]===n)?d:void 0},ee=(e,t,n,r,i,a,o,s,c)=>{let l=a.registered?M(e,t,n,r,i,a.version,a.provider,s,c):void 0,u=l||o;if(u&&(!a.registered||j(u,s)))return{provider:u,scopeRootProvider:l}};async function N(){return x||=C(()=>e(()=>import(`./assets/_virtual_mf-localSharedImportMap___mfe_internal__signalk_questdb__mf_owner__1-BUtmcsA-.js`),[],import.meta.url)).catch(e=>{throw x=void 0,e}),x}async function P(){return c}async function F(e={},n=[],r={}){let i=(e,t,n,r)=>{let i=(Array.isArray(r)?r[0]:r)||`default`,a=t||!n?e:e+`@`+n,o={canonical:i+`:`+a};return i==="default"&&(o.aliases=[a]),o},a=(e,t)=>{let n=e[t.canonical];if(n!==void 0)return n;let r=t.aliases||[];for(let n of r){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let r=e[n];if(r!==void 0)return e[t.canonical]=r,r}},o=Symbol.for(`module-federation.shared-cache-listeners`),s=Symbol.for(`module-federation.shared-cache-owners`),c=e=>{let t=e[s];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,s,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},l=(e,t)=>e[s]?.[t.canonical],f=e=>{let t=[e,e?.default];for(let e of t)if(e&&typeof e==`object`){for(let t of[`__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE`,`__TEST_INTERNALS`,`__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED`]){let n=e[t];if(n&&typeof n==`object`)return{internals:n}}if(typeof e.useState==`function`)return{hook:e.useState}}},m=(e,t)=>{if(e===t)return!0;let n=f(e),r=f(t);if(!n||!r)return!1;let i=n.internals,a=r.internals;return i!==void 0||a!==void 0?i!==void 0&&i===a:typeof n.hook==`function`&&n.hook===r.hook},x=(e,t,n,r)=>{let i=a(e,t);if(i!==void 0&&m(i,n))return n;e[t.canonical]=n;let l=t.aliases||[];for(let t of l)Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0});let u=e[s];r===void 0?u&&delete u[t.canonical]:c(e)[t.canonical]=r;let d=e[o]?.[t.canonical];if(d)for(let e of d)e(n);return n},w=Symbol.for(`module-federation.tree-shaking-shared-cache`),T=e=>{let t=e[w];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,w,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},E=(e,t,n,r)=>{if(!Array.isArray(n))return r;let i=[...new Set(n)].sort(),a=T(e),o=a[t.canonical]||=[],s=o.find(e=>e.providedExports.length===i.length&&e.providedExports.every((e,t)=>e===i[t]));return s?s.value=r:o.push({providedExports:i,value:r}),r},D=Symbol.for(`module-federation.tree-shaking-shared-selection-cache`),M=e=>{let t=e[D];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,D,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},P=(e,t,n)=>{let r=a(e,t);return r===void 0?e[D]?.[t.canonical]?.[n]:r},F=(e,t,n,r)=>{let i=M(e),a=i[t.canonical]||=Object.create(null);return a[n]=r,r},I=globalThis.__FEDERATION__?.__INSTANCES__||[],te=n.find(e=>e?.from)?.from,ne=I.find(t=>t?.options?.name===te&&t?.shareScopeMap?.default===e)||I.find(t=>t?.options?.name!==y&&t?.shareScopeMap?.default===e),re=Object.create(null),ie=e=>{let t=Object.create(null);for(let[n,r]of Object.entries(e||{}))t[n]=Object.assign(Object.create(null),r);return t},ae=(e,t)=>{for(let[n,r]of Object.entries(G.shareScopeMap?.[e]||{}))for(let[e,i]of Object.entries(r||{})){if(!i||i.get===R[n]?.get)continue;let r=t[n]||={};r[e]===void 0&&(r[e]=i)}},oe=(e,t)=>{ae(e,t);let n=!ne&&Object.values(t||{}).some(e=>Object.values(e||{}).some(z)),r=n?ie(t):t;return re[e]={host:t,runtime:r,isWebpackScope:n},r},se=()=>{let e=Object.values(re).filter(({isWebpackScope:e})=>e);if(e.length!==0)for(let{host:t,runtime:n}of e)for(let[e,r]of Object.entries(t||{})){let t=n[e]||=Object.create(null);for(let[e,n]of Object.entries(r||{}))t[e]=n}},L=Object.create(null);for(let[t,n]of Object.entries(e)){let e=L[t]=Object.create(null);for(let[t,r]of Object.entries(n))e[t]=Object.assign({},r)}let{usedShared:R,usedRemotes:ce}=await N();function z(e){if(typeof e?.get!=`function`)return!1;let t=Function.prototype.toString.call(e.get);return t.includes(`__webpack_require__`)||/\.\s*e\s*\([^)]*\)\s*\.then\s*\(/.test(t)}let le=Object.values(L).some(e=>Object.values(e||{}).some(z)),ue=e=>{let t=e.split(`/`);return e.startsWith(`@`)?t.slice(0,2).join(`/`):t[0]},B=(t,n,r,i)=>{if(typeof A!=`function`)return;let a=ue(t),o=!i||a===t?[[t,n]]:[[t,n],[a,R[a]]];for(let[n,i]of o){if(!i)continue;let a=A(r?n===t?r:L[n]:L[n]??e[n],n,i,`version-first`);if(a)return a}},de=(e,t,n)=>{let r=B(e,t,n,!0);return r&&z(r)&&!r.lib&&!r.loaded?r:void 0};var V=g[v];if(V||=g[v]={from:y},n.indexOf(V)>=0)return;n.push(V);let fe=e=>{let t=e;for(let e=0;e<5;e++){let e=t?.default;if(!e||typeof e!=`object`||Object.keys(e).length===0)break;let n=Object.getPrototypeOf(e);if(n!==null&&n!==Object.prototype)break;let r=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(r.length>0&&r.some(e=>e!==void 0))break;t=e}return t},pe=[],me=globalThis.window===void 0?await Promise.all([]):[],H=`__mf_vite_runtime_share_load_id__`,he=0,U=new Map,W=new Map,G=t({name:y,remotes:ce,shared:R,plugins:[ge(),_e(),...pe,...me],shareStrategy:`version-first`});G.initShareScopeMap(`default`,oe(`default`,e));function ge(){return{name:`vite-share-pin-lifecycle-plugin`,resolveShare(e){let t=e.shareInfo?.[H],n=t===void 0?void 0:W.get(t);if(!n)return e;let r=e.resolver;return e.resolver=(...e)=>(n.pinned.reapply(),r(...e)),n.pinned.reveal(),e}}}function _e(){return{name:`vite-real-name-snapshot-plugin`,afterLoadSnapshot(e){let t=e&&e.remoteSnapshot,n=t&&t.globalName,r=t&&t.version;if(!n||!r||!t.remoteEntry)return e;let i=globalThis.__FEDERATION__&&globalThis.__FEDERATION__.moduleInfo,a=n+`:`+r;return i&&!i[a]&&(i[a]=t),e}}}let ve=G.sharedHandler.hooks.lifecycle.resolveShare;G.__mfKeepAdoptedProviders||(G.__mfKeepAdoptedProviders=!0,G.sharedHandler?.hooks?.lifecycle?.afterRegisterShare?.on?.(e=>{let{shared:t,previousShared:n,registeredShared:r}=e||{},i=G.shareScopeMap?.[e.scope]?.[e.pkgName];t&&i&&(t.shareConfig?.import===!1?r===t&&n&&n.shareConfig?.import!==!1&&i[t.version]===t&&(i[t.version]=n):r!==t&&r?.shareConfig?.import===!1&&!r.loaded&&i[t.version]===r&&(i[t.version]=t))}));let K=new WeakMap;ve.on(e=>{let t=e.shareInfo?.[H],n=e.resolver;return typeof n==`function`&&(e.resolver=(...r)=>{let i=n(...r);if(i?.shared?.shareConfig?.import===!1&&typeof k==`function`&&R[e.pkgName]){let t=k(e.shareScopeMap?.[e.scope]?.[e.pkgName],e.pkgName,R[e.pkgName],`version-first`);t&&t.shareConfig?.import!==!1&&(i={shared:t,useTreesShaking:i.useTreesShaking})}let a=i?.shared;return a&&(typeof a==`object`||typeof a==`function`)&&!K.has(a)&&K.set(a,{from:a.from}),t!==void 0&&a&&U.set(t,a),i}),e});let ye=(e,t,n,r)=>{if(!e||e[t]!==n)return;let i=Object.assign({},r,{version:r.version??t,scope:r.scope??n?.scope??[`default`],strategy:`loaded-first`}),a=r.from;e[t]=i;let o=()=>n===void 0?e[t]===void 0:e[t]===n;return{provider:i,reveal(){return e[t]===i&&(n===void 0?delete e[t]:e[t]=n,!0)},reapply(){return o()?(e[t]=i,!0):!1},release(s,c=!0){return r.from=a,e[t]===i?c?s?(i.from=a,s&&i.lib&&(i.loaded=!0),r.strategy===void 0?delete i.strategy:i.strategy=r.strategy,!0):(n===void 0?delete e[t]:e[t]=n,!1):(n===void 0?delete e[t]:e[t]=n,!0):!c&&o()}}},be=e=>Object.entries(e||{}).map(([e,t])=>({provider:t,version:e,from:t.from,registered:!0})),xe=(e,t)=>{if(t===void 0)return;let n;for(let r of e){let e=r.provider,i=e.treeShaking||e;if(r.loadedFactory===t||e.lib===t||i.lib===t){if(n)return;n=r}}return n},Se=async(e,t,n)=>{let r=++he;W.set(r,{pinned:n});try{let n=await G.loadShare(e,{customShareInfo:{shareConfig:t,[H]:r}});return{factory:n===!1?void 0:n,selectedProvider:U.get(r)}}finally{U.delete(r),W.delete(r)}},Ce=async(e,t,n,r,i,a,o=!0)=>{let s=a.from,c=ye(n,r,i,a);if(!c)return;let l;try{l=await Se(e,t,c)}catch(e){throw c.release(!1),e}let u=l?.factory;if(u===void 0){c.release(!1);return}let d=be(n),f=c.provider.treeShaking||c.provider,p=c.provider.lib===u||f.lib===u;if(!o&&p){let e=d.findIndex(e=>e.provider===c.provider);e!==-1&&d.splice(e,1)}!o&&!d.some(e=>e.provider===a)&&d.push({provider:a,version:r,from:s,registered:!1,loadedFactory:p?u:void 0});let m=!o&&l.selectedProvider===c.provider&&p?a:l.selectedProvider;if(m&&!d.some(e=>e.provider===m)){let e=K.get(m),t=typeof m.version==`string`&&m.version?m.version:r;d.push({provider:m,version:t,from:e?e.from:m.from,registered:n?.[t]===m,loadedFactory:u})}let h=d.find(e=>e.provider===m)??xe(d,u);if(!c.release(!0,h?.provider===c.provider)||!h)return;let g=K.get(h.provider);h.from=h.provider===a?s:g?g.from:h.provider.from,g&&(h.provider.from=g.from);let _=typeof u==`function`?u():u,v=await Promise.resolve(_);if(!(h.registered&&n?.[h.version]!==h.provider))return{provider:h.provider,selection:h,resolved:v}},q=new Set,J=new Map,we=async(t,n,r)=>{let o=!!n.shareConfig?.singleton;if(!o&&n.canLiveRebind!==!1)try{let s=A(r,t,n,`version-first`),c=O(r,s);if(!c||n.shareConfig?.import===!1&&j(s,n)||s?.shareConfig?.import===!1)return;let{version:l}=c;if(!o&&l!==n.version||!s.lib&&!s.loading&&!(s.loaded&&typeof s.get==`function`))return;let u=i(t,o,n.version,n.scope);if(a(h.share,u)!==void 0)return;let d=e[t],f=d?.[l];if(c.registered&&!j(f,s))return;let p,m=s.lib;if(!m&&z(s)||(!m&&s.loading&&(m=await s.loading),!m&&s.loaded&&typeof s.get==`function`&&(m=await s.get()),!m))return;let g=typeof m==`function`?m():m,_=await Promise.resolve(g),v=c.registered?f:s;p={provider:v,selection:{provider:v,version:l,from:s.from,registered:c.registered},resolved:_};let y=p?.provider,b=p?.selection;if(!b)return;let S=p?.resolved;if(S===void 0||a(h.share,u)!==void 0||b.registered&&d?.[b.version]!==y)return;x(h.share,u,fe(S),b.from),q.add(y)}catch(e){console.error(`[Module Federation] Failed to bridge materialized shared module "`+t+`"`,e)}},Y=async(t,n,r,o,s)=>{try{let c=i(t,n.shareConfig?.singleton,n.version,n.scope),u=a(h.share,c),d=l(h.share,c),f=A(r,t,n,`version-first`),p=f||k(r,t,n,`version-first`)||n,m=O(r,p);if(!m)return;let g=j(p,n),{version:_}=m;if(!n.shareConfig?.singleton&&_!==n.version)return;let v=o?.[_],b=ee(I,ne,e,`default`,t,m,f,v,`version-first`);if(!b&&!g)return;let{provider:S,scopeRootProvider:C}=b||{provider:p,scopeRootProvider:void 0};if(n.canLiveRebind===!1||n.shareConfig?.import===!1&&j(S,n)||S?.shareConfig?.import===!1||u!==void 0&&d!==y)return;let w=e[t],T=w?.[_];if(m.registered&&!C&&!j(T,S))return;let E=await Ce(t,n.shareConfig,w,_,T,S,m.registered&&!g),D=E?.provider,M=E?.selection;if(!M||j(D,n)||s&&(s.version!==M.version||!j({from:M.from},s.provider))||q.has(D))return;let N=E?.resolved;if(N===void 0)return;let P=a(h.share,c),F=l(h.share,c);if(P!==void 0&&F!==y||M.registered&&w?.[M.version]!==D)return;s||J.set(t,{version:M.version,provider:{from:M.from}}),q.add(D);let te=fe(N);x(h.share,c,te,M.from)}catch(e){console.error(`[Module Federation] Failed to bridge external shared module "`+t+`"`,e)}};for(let e of b)await Promise.all(e.map(async e=>{let t=R[e];t&&t.materialize!==!1&&!t.treeShaking&&await we(e,t,L[e])}));for(let[e,t]of Object.entries(R)){if(t.treeShaking)continue;let n=i(e,t.shareConfig?.singleton,t.version,t.scope);if(a(h.share,n)!==void 0)continue;let r=i(e,!0,t.version,t.scope),o=a(h.share,r);o!==void 0&&x(h.share,n,o,l(h.share,r))}let Te=[`react`],Ee=[[`react`]],X=new Map(Te.map((e,t)=>[e,t])),De={},Z=Te.filter(e=>R[e]&&(R[e].materialize!==!1||R[e].shareConfig?.import===!1&&!R[e].lazy));h.providerInit||=new Map;let Oe=(e,t)=>{let n=h.providerInit.get(e);if(n)return n;let r=Promise.resolve().then(t);return h.providerInit.set(e,r),r.catch(()=>h.providerInit.delete(e)),r};var ke=async e=>{let t=new Set(e);for(let e of Ee)await Promise.all(e.filter(e=>t.has(e)).map(async e=>{let t=R[e],n=i(e,t.shareConfig?.singleton,t.version,t.scope);if(t.shareConfig?.import===!1||t.treeShaking||a(h.share,n)!==void 0)return;let r=i(e,!0,t.version,t.scope),o=a(h.share,r);if(o!==void 0){x(h.share,n,o,l(h.share,r));return}let s=typeof B==`function`?B(e,t):void 0;if(s){let r=s.lib;if(!r&&s.loading&&(r=await s.loading),!r&&s.loaded&&typeof s.get==`function`&&(r=await s.get()),r){let e=typeof r==`function`?r():r,t=await Promise.resolve(e);x(h.share,n,(e=>{let t=e;for(let e=0;e<5;e++){let e=t?.default;if(!e||typeof e!=`object`||Object.keys(e).length===0)break;let n=Object.getPrototypeOf(e);if(n!==null&&n!==Object.prototype)break;let r=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(r.length>0&&r.some(e=>e!==void 0))break;t=e}return t})(t),s.from);return}if(!t.shareConfig?.singleton&&typeof s.version==`string`){let r=a(h.share,i(e,!1,s.version,t.scope));if(r!==void 0){x(h.share,n,r,s.from);return}}if(typeof z==`function`&&z(s)&&(t.shareConfig?.singleton||O(L[e],s)?.version===t.version))return}let c=n.canonical,u=await Oe(c,async()=>{let e=await t.get(),n=typeof e==`function`?e():e;return Promise.resolve(n)});for(let n of G.options.shared?.[e]||[])n.get===t.get&&(n.eager=!0);let d=(e=>{let t=e;for(let e=0;e<5;e++){let e=t?.default;if(!e||typeof e!=`object`||Object.keys(e).length===0)break;let n=Object.getPrototypeOf(e);if(n!==null&&n!==Object.prototype)break;let r=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(r.length>0&&r.some(e=>e!==void 0))break;t=e}return t})(u),f=d===u?{...u}:d;f.__esModule!==!0&&Object.defineProperty(f,"__esModule",{value:!0,enumerable:!1}),x(h.share,n,f,y)}))};let Q=e=>{let t=R[e];if(!t.treeShaking&&t.shareConfig?.import!==!1)return!1;let n=i(e,t.shareConfig?.singleton,t.version,t.scope);return t.treeShaking?P(h.share,n,y)===void 0&&a(h.share,n)===void 0:a(h.share,n)===void 0},Ae=e=>{let t=R[e],n=i(e,t.shareConfig?.singleton,t.version,t.scope);return(t.treeShaking?P(h.share,n,y)??a(h.share,n):a(h.share,n))===void 0?t.treeShaking||t.shareConfig?.import===!1?!0:typeof A==`function`&&!!A(L[e],e,t,`version-first`):!1},je=e=>{let t=!0;for(;t;){t=!1;for(let n of Z){let r=X.get(n);e.has(r)||(De[r]||[]).some(t=>e.has(t))&&(e.add(r),t=!0)}}return e},Me=je(new Set(Z.filter(Ae).map(e=>X.get(e)))),Ne=Z.filter(e=>!Me.has(X.get(e)));var Pe=Z.filter(e=>Me.has(X.get(e)));await ke(Ne).catch(p);try{await C(async()=>{await Promise.all(await G.initializeSharing(`default`,{strategy:`version-first`,from:`build`,initScope:n}))})}catch(e){console.error(`[Module Federation]`,e)}se();let Fe=async()=>{for(let t of b)await Promise.all(t.map(async t=>{let n=R[t];n&&n.materialize!==!1&&!n.treeShaking&&await Y(t,n,e[t],L[t],void 0)}))};le?S=Fe:await Fe();try{let e=globalThis.__FEDERATION__?.__SHARE__,t=Object.create(null);if(e)for(let[,n]of Object.entries(e))for(let e of _){let r=n?.[e];if(r)for(let[e,n]of Object.entries(r)){let r=R?.[e],i=L[e],a=J.get(e);if(!r||!i||!a||r.treeShaking)continue;let o=t[e]||(t[e]=Object.create(null));for(let[e,t]of Object.entries(n)){if(!t.lib||a.version!==e||!j(t,a.provider))continue;let n=i[e];(t===n||n?.from&&t.from===n.from)&&(t===r||r.from&&t.from===r.from||o[e]===void 0&&(o[e]=t))}}}for(let e of b)await Promise.all(e.map(async e=>{let n=t[e];n&&await Y(e,R[e],n,L[e],J.get(e))}))}catch(e){console.error(`[Module Federation] Failed to bridge external shared modules`,e)}let Ie=async()=>{},Le=async(t,n)=>{let r=i(t,n.shareConfig?.singleton,n.version,n.scope),o=n.treeShaking?P(h.share,r,y):a(h.share,r);if(n.shareConfig?.import!==!1||o!==void 0||de(t,n,L[t]))return;let s=e=>{let t=e;for(let e=0;e<5;e++){let e=t?.default;if(!e||typeof e!=`object`||Object.keys(e).length===0)break;let n=Object.getPrototypeOf(e);if(n!==null&&n!==Object.prototype)break;let r=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(r.length>0&&r.some(e=>e!==void 0))break;t=e}return t},c=e?.[t],l=k(c,t,n,`version-first`)||n,u=O(c,l);if(!u)return;let d=e=>e===n||e?.shareConfig?.import===!1;if(d(l))return;let{version:f}=u,p=c?.[f],m=await Ce(t,n.shareConfig,c,f,p,l,u.registered),g=m?.selection,_=m?.provider,v=m?.resolved;if(!g||d(_)||v===void 0||(n.treeShaking?P(h.share,r,y):a(h.share,r))!==void 0||g.registered&&c?.[g.version]!==_)return;let b=s(v);if(n.treeShaking){let e=n.treeShaking.providedExports??n.treeShaking.usedExports??[];E(h.share,r,e,b),F(h.share,r,y,b)}else x(h.share,r,b,g.from)},Re=[],ze=new Set;for(let e of Pe){let t=R[e],n=X.get(e);if(Q(e))try{t.treeShaking?await Ie(e,t):t.shareConfig?.import===!1&&await Le(e,t)}catch(t){console.error(`[Module Federation] Failed to resolve runtime-only shared module "${e}"`,t)}Q(e)&&ze.add(n)}je(ze),Re.push(...Pe.filter(e=>!ze.has(X.get(e)))),await ke(Re).catch(p);let $=new Map;return u.loadLazyShares=async t=>{let n=new Set(t);for(let t of b)await Promise.all(t.filter(e=>n.has(e)).map(t=>{let n=R[t];if(!n||!n.lazy||!Q(t))return;let r=$.get(t);return r||(r=Y(t,n,e[t],L[t],void 0).then(()=>Q(t)?Le(t,n):void 0),r.catch(()=>$.delete(t)),$.set(t,r)),r}))},d(G),G}async function I(e){let t=await P();if(!(e in t))throw Error(`[Module Federation] Module ${e} does not exist in container.`);return S&&await S(),h.pendingShareLoads&&await Promise.all(h.pendingShareLoads),t[e]().then(e=>()=>e)}export{I as get,F as init};
2
2
  if (typeof document !== 'undefined' && document.head) {
3
3
  try {
4
4
  for (const __mfWarmupPath of ["assets/_virtual_mf-localSharedImportMap___mfe_internal__signalk_questdb__mf_owner__1-BUtmcsA-.js","assets/vite-preload-helper-CRzLMJPS.js","assets/dist-C5M3fhBw.js","assets/utils-v9GZlbdk.js"]) {