signalk-masterbus 0.2.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -39,11 +39,29 @@ download. Enable the plugin under **Server → Plugin Config → MasterBus**.
39
39
  ## Two ways to run it
40
40
 
41
41
  **Bundled** (the default): the plugin starts `masterbus-signalk` on this
42
- machine and keeps its configuration, the mapping and the device schema
43
- cache under `~/.signalk/plugin-config-data/signalk-masterbus/masterbus/`.
44
- With _Transport_ on auto-detect it picks a plugged-in USB link, else the
45
- only CAN interface; set it explicitly when the machine has several. Nothing
46
- listens beyond loopback.
42
+ machine and keeps its configuration under
43
+ `~/.signalk/plugin-config-data/signalk-masterbus/masterbus/`. The mapping
44
+ and the device schema cache are the ones the masterbus tools use on this
45
+ computer (on Linux `~/.config/masterbus/mapping.json` and
46
+ `~/.cache/masterbus`), so a change made in `masterbus-tui` shows up in
47
+ Signal K within seconds, and one made in the web editor is what the TUI
48
+ shows. _Mapping and schema cache_ set to _Plugin only_ keeps them in the
49
+ plugin's folder instead.
50
+ With _Transport_ on auto-detect it uses a plugged-in Mastervolt USB link.
51
+ It never picks a CAN interface, because on most Signal K computers the CAN
52
+ interface is the NMEA 2000 network: when the MasterBus is on CAN, set
53
+ _Transport_ to SocketCAN and _Device_ to the interface (for example `can1`).
54
+ Without a USB link and with no transport chosen, the daemon is not started
55
+ and the plugin status says so. Nothing listens beyond loopback.
56
+
57
+ When Signal K runs in a container, its home folder is usually not kept
58
+ when the container is recreated, so the plugin then keeps the mapping in
59
+ its own folder unless _Shared folder_ names one mounted from the host.
60
+
61
+ Upgrading from a version that kept the mapping in the plugin's folder
62
+ moves it to the shared place. If the tools already had a mapping of their
63
+ own, theirs is used and the plugin's is kept beside it as
64
+ `mapping.plugin-backup.json`; the plugin status says which file is in use.
47
65
 
48
66
  **External**: the machine on the bus is not the one running Signal K. Run
49
67
  `masterbus-signalk` there (its systemd unit is in the masterbus release
@@ -77,9 +95,8 @@ mandatory on any address other than loopback; the daemon refuses to start
77
95
  without one. Give the plugin the host, the two ports and the same token.
78
96
 
79
97
  **Going to bundled** needs only the selection, provided the Signal K host
80
- is the one wired to the bus. Transport on auto-detect picks a plugged-in
81
- USB link, else the only CAN interface; set it explicitly when the machine
82
- has several.
98
+ is the one wired to the bus. Transport on auto-detect uses a plugged-in USB
99
+ link; for a MasterBus on CAN, choose SocketCAN and the interface.
83
100
 
84
101
  Two things are not automatic:
85
102
 
@@ -117,9 +134,9 @@ install is not silent; treat it as a starting point. Diagnostics for the
117
134
  saved mapping (a field the device does not have, a firmware that moved
118
135
  on) are listed under the table.
119
136
 
120
- The file being edited is the daemon's `mapping.json`, the same one
121
- `masterbus-tui --mapping` edits, so both tools can be used on the same
122
- install.
137
+ The file being edited is the daemon's `mapping.json`. In bundled mode
138
+ that is the one `masterbus-tui --mapping` edits too (see _Two ways to run
139
+ it_), so both can be used on the same install.
123
140
 
124
141
  ## Writes and the installer code
125
142
 
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "signalk-masterbus",
3
- "version": "0.2.1",
4
- "masterbusDaemon": "0.4.4",
3
+ "version": "0.4.0",
4
+ "masterbusDaemon": "0.5.0",
5
5
  "description": "Mastervolt MasterBus for Signal K: publish battery, charger and inverter values, edit the mapping in the browser, and switch devices from Signal K",
6
6
  "main": "plugin/index.js",
7
7
  "type": "module",
@@ -9,8 +9,9 @@
9
9
  */
10
10
  export type Mode = 'bundled' | 'external';
11
11
  export type Transport = 'auto' | 'can' | 'usb';
12
+ export type Storage = 'shared' | 'plugin';
12
13
  export interface BundledConfig {
13
- /** `auto` lets the daemon detect a USB link or the lone CAN interface. */
14
+ /** `auto` uses a plugged-in USB link; a CAN interface must be chosen. */
14
15
  transport: Transport;
15
16
  /** CAN interface name, or USB-link serial (blank = first). */
16
17
  deviceName: string;
@@ -20,6 +21,10 @@ export interface BundledConfig {
20
21
  streamPort: number;
21
22
  /** A `masterbus-signalk` binary to run instead of the bundled one. */
22
23
  binaryPath: string;
24
+ /** Mapping and schema cache: the masterbus tools' own, or the plugin's. */
25
+ storage: Storage;
26
+ /** The folder shared with the tools; blank = where the tools keep theirs. */
27
+ sharedDir: string;
23
28
  }
24
29
  export interface ExternalConfig {
25
30
  host: string;
@@ -86,6 +91,20 @@ export declare const SCHEMA: {
86
91
  minimum: number;
87
92
  maximum: number;
88
93
  };
94
+ storage: {
95
+ type: string;
96
+ title: string;
97
+ description: string;
98
+ enum: string[];
99
+ enumNames: string[];
100
+ default: string;
101
+ };
102
+ sharedDir: {
103
+ type: string;
104
+ title: string;
105
+ description: string;
106
+ default: string;
107
+ };
89
108
  binaryPath: {
90
109
  type: string;
91
110
  title: string;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,IAAI,GAAG,SAAS,GAAG,UAAU,CAAA;AACzC,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAA;AAE9C,MAAM,WAAW,aAAa;IAC5B,0EAA0E;IAC1E,SAAS,EAAE,SAAS,CAAA;IACpB,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAA;IAClB,yEAAyE;IACzE,eAAe,EAAE,MAAM,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,sEAAsE;IACtE,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE,aAAa,CAAA;IACtB,QAAQ,EAAE,cAAc,CAAA;IACxB,yEAAyE;IACzE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;CAC7B;AAED,eAAO,MAAM,QAAQ,EAAE,MAiBtB,CAAA;AAED,yEAAyE;AACzE,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAWpD;AAED,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuGlB,CAAA;AAKD,eAAO,MAAM,SAAS;;;;;;CAErB,CAAA"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,IAAI,GAAG,SAAS,GAAG,UAAU,CAAA;AACzC,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAA;AAC9C,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAEzC,MAAM,WAAW,aAAa;IAC5B,yEAAyE;IACzE,SAAS,EAAE,SAAS,CAAA;IACpB,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAA;IAClB,yEAAyE;IACzE,eAAe,EAAE,MAAM,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,sEAAsE;IACtE,UAAU,EAAE,MAAM,CAAA;IAClB,2EAA2E;IAC3E,OAAO,EAAE,OAAO,CAAA;IAChB,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE,aAAa,CAAA;IACtB,QAAQ,EAAE,cAAc,CAAA;IACxB,yEAAyE;IACzE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;CAC7B;AAED,eAAO,MAAM,QAAQ,EAAE,MAmBtB,CAAA;AAED,yEAAyE;AACzE,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAWpD;AAED,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4HlB,CAAA;AAKD,eAAO,MAAM,SAAS;;;;;;CAErB,CAAA"}
package/plugin/config.js CHANGED
@@ -15,7 +15,9 @@ export const DEFAULTS = {
15
15
  heartbeatMaster: '',
16
16
  apiPort: 3010,
17
17
  streamPort: 3009,
18
- binaryPath: ''
18
+ binaryPath: '',
19
+ storage: 'shared',
20
+ sharedDir: ''
19
21
  },
20
22
  external: {
21
23
  host: 'localhost',
@@ -57,8 +59,9 @@ export const SCHEMA = {
57
59
  transport: {
58
60
  type: 'string',
59
61
  title: 'Transport',
60
- description: 'Auto picks a plugged-in Mastervolt USB link, else the only CAN interface. Set it ' +
61
- 'explicitly when the machine has several.',
62
+ description: 'Auto-detect uses a plugged-in Mastervolt USB link. It never picks a CAN interface, ' +
63
+ 'because on most boats that is the NMEA 2000 network: for a MasterBus on CAN, choose ' +
64
+ 'SocketCAN and enter the interface as Device.',
62
65
  enum: ['auto', 'can', 'usb'],
63
66
  enumNames: ['Auto-detect', 'SocketCAN (Linux)', 'Mastervolt USB link'],
64
67
  default: 'auto'
@@ -91,6 +94,24 @@ export const SCHEMA = {
91
94
  minimum: 1,
92
95
  maximum: 65535
93
96
  },
97
+ storage: {
98
+ type: 'string',
99
+ title: 'Mapping and schema cache',
100
+ description: 'Shared: use the same mapping.json and schema cache as masterbus-tui and the other ' +
101
+ 'masterbus tools on this computer, so a change made in one shows up in the other. ' +
102
+ "Plugin only: keep them in the plugin's data folder. When Signal K runs in a " +
103
+ 'container, sharing needs the folder below.',
104
+ enum: ['shared', 'plugin'],
105
+ enumNames: ['Shared with the masterbus tools', 'Plugin only'],
106
+ default: 'shared'
107
+ },
108
+ sharedDir: {
109
+ type: 'string',
110
+ title: 'Shared folder (advanced)',
111
+ description: 'Leave blank to use the folder the masterbus tools use (on Linux ' +
112
+ '~/.config/masterbus). In a container, enter a folder mounted from the host.',
113
+ default: ''
114
+ },
94
115
  binaryPath: {
95
116
  type: 'string',
96
117
  title: 'masterbus-signalk binary (advanced)',
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { BundledConfig } from './config.js';
2
+ import { type Env } from './shared.js';
2
3
  /** The directory under `bin/` that carries this platform's daemon. */
3
4
  export declare function platformDir(platform?: string, arch?: string): string;
4
5
  /**
@@ -8,13 +9,33 @@ export declare function platformDir(platform?: string, arch?: string): string;
8
9
  * for the plugin status when neither exists.
9
10
  */
10
11
  export declare function resolveBinary(binaryPath: string, from?: string): string;
12
+ /** Whether a Mastervolt USB link (USB vendor `1a64`) is plugged in, from sysfs. */
13
+ export declare function usbLinkPresent(root?: string): boolean;
14
+ /** What `renderConfigIni` needs to know about the machine. */
15
+ export interface Host {
16
+ platform: string;
17
+ usbLink: () => boolean;
18
+ }
19
+ export declare const NO_USB_LINK: string;
11
20
  /**
12
21
  * The `config.ini` the daemon reads, rendered from the plugin's settings.
13
22
  * With transport `auto` and a file already present, the file is left alone:
14
23
  * the daemon auto-detected it on first run and the user may have edited it.
15
24
  * Ports and the API address are always ours, so those keys are rewritten.
25
+ *
26
+ * With `auto` and no file yet, the daemon's own auto-detect would fall back
27
+ * to the only CAN interface, which on a Signal K computer is usually NMEA
28
+ * 2000. On Linux, the only place it can, the file is written here instead:
29
+ * for a USB link if one is plugged in, and otherwise this throws
30
+ * `NO_USB_LINK` and the daemon is not started.
31
+ *
32
+ * A file written here keeps the daemon's `bus_id`, and an existing
33
+ * `cache_dir`, or points it at
34
+ * `cacheDir`: without the key the daemon runs without its schema cache.
35
+ * With `sharedCache` the cache is the one shared with the masterbus tools,
36
+ * and `cache_dir` is always ours.
16
37
  */
17
- export declare function renderConfigIni(cfg: BundledConfig, existing: string | null): string | null;
38
+ export declare function renderConfigIni(cfg: BundledConfig, existing: string | null, cacheDir: string, host?: Host, sharedCache?: boolean): string | null;
18
39
  export interface DaemonEvents {
19
40
  /** A line of the daemon's stderr. */
20
41
  log(line: string): void;
@@ -25,7 +46,8 @@ export interface DaemonEvents {
25
46
  }
26
47
  export interface DaemonOptions {
27
48
  binary: string;
28
- /** Where config.ini, mapping.json and the schema cache live. */
49
+ /** The plugin's data folder: config.ini, the token, and the mapping and
50
+ * cache unless they are shared with the masterbus tools. */
29
51
  dataDir: string;
30
52
  config: BundledConfig;
31
53
  events: DaemonEvents;
@@ -33,7 +55,23 @@ export interface DaemonOptions {
33
55
  extraArgs?: string[];
34
56
  /** How long to wait for READY before giving up, ms. */
35
57
  readyTimeoutMs?: number;
58
+ /** The machine, for `renderConfigIni`; the real one unless a test says. */
59
+ host?: Host;
60
+ /** Where the masterbus tools keep their files; the real ones unless a test says. */
61
+ env?: Env;
62
+ }
63
+ /** Where the daemon's mapping and schema cache are. */
64
+ export interface Storage {
65
+ mapping: string;
66
+ cache: string;
67
+ shared: boolean;
36
68
  }
69
+ /**
70
+ * The mapping and cache for these settings: the tools' (or the folder
71
+ * named) when shared, the plugin's data folder otherwise. In a container
72
+ * without a folder named, the plugin's: its home folder isn't kept.
73
+ */
74
+ export declare function storageFor(cfg: BundledConfig, dataDir: string, env?: Env): Storage;
37
75
  /**
38
76
  * Runs `masterbus-signalk` as a child process: renders its config and token,
39
77
  * spawns it with `--config-dir`, waits for the `READY` line, and restarts
@@ -48,9 +86,15 @@ export declare class DaemonManager {
48
86
  private backoffMs;
49
87
  private readonly recent;
50
88
  private generation;
89
+ private storage;
90
+ private moved;
51
91
  constructor(opts: DaemonOptions);
52
92
  /** The last lines the daemon wrote to stderr, for an error status. */
53
93
  get recentLog(): string[];
94
+ /** The mapping file the daemon reads and the editor writes. */
95
+ get mappingPath(): string | null;
96
+ /** What became of the plugin's own mapping when sharing began, if anything. */
97
+ get notice(): string | null;
54
98
  get running(): boolean;
55
99
  /** Start the daemon and resolve once it reports READY. */
56
100
  start(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,sEAAsE;AACtE,wBAAgB,WAAW,CACzB,QAAQ,GAAE,MAAyB,EACnC,IAAI,GAAE,MAAqB,GAC1B,MAAM,CAER;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,GAAE,MAAwB,GAAG,MAAM,CAgBxF;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CA6B1F;AAED,MAAM,WAAW,YAAY;IAC3B,qCAAqC;IACrC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,4EAA4E;IAC5E,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAA;IAClF,8CAA8C;IAC9C,KAAK,IAAI,IAAI,CAAA;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,aAAa,CAAA;IACrB,MAAM,EAAE,YAAY,CAAA;IACpB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAID;;;;GAIG;AACH,qBAAa,aAAa;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAe;IACpC,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,YAAY,CAA6C;IACjE,OAAO,CAAC,SAAS,CAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,UAAU,CAAI;gBAEV,IAAI,EAAE,aAAa;IAK/B,sEAAsE;IACtE,IAAI,SAAS,IAAI,MAAM,EAAE,CAExB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,0DAA0D;IACpD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAY5B,OAAO,CAAC,SAAS;IAsFjB,OAAO,CAAC,YAAY;IAIpB,mEAAmE;IAC7D,IAAI,CAAC,OAAO,SAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAqB1C;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAE3C"}
1
+ {"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
package/plugin/daemon.js CHANGED
@@ -4,6 +4,7 @@ import fs from 'node:fs';
4
4
  import path from 'node:path';
5
5
  import readline from 'node:readline';
6
6
  import { fileURLToPath } from 'node:url';
7
+ import { adoptMapping, ENV, inContainer, toolsCacheDir, toolsDir } from './shared.js';
7
8
  /** The directory under `bin/` that carries this platform's daemon. */
8
9
  export function platformDir(platform = process.platform, arch = process.arch) {
9
10
  return `${platform}-${arch}`;
@@ -30,38 +31,115 @@ export function resolveBinary(binaryPath, from = import.meta.url) {
30
31
  }
31
32
  return bin;
32
33
  }
34
+ /** Whether a Mastervolt USB link (USB vendor `1a64`) is plugged in, from sysfs. */
35
+ export function usbLinkPresent(root = '/sys/bus/usb/devices') {
36
+ let entries;
37
+ try {
38
+ entries = fs.readdirSync(root);
39
+ }
40
+ catch {
41
+ return false;
42
+ }
43
+ return entries.some((e) => {
44
+ try {
45
+ return fs.readFileSync(path.join(root, e, 'idVendor'), 'utf8').trim() === '1a64';
46
+ }
47
+ catch {
48
+ return false;
49
+ }
50
+ });
51
+ }
52
+ const HOST = { platform: process.platform, usbLink: () => usbLinkPresent() };
53
+ export const NO_USB_LINK = 'No Mastervolt USB link found. If the MasterBus is connected through a CAN interface, set ' +
54
+ 'Transport to SocketCAN (Linux) in the plugin settings and enter its name (for example can0) ' +
55
+ 'as Device. Auto-detect does not choose a CAN interface by itself, because on most boats that ' +
56
+ 'is the NMEA 2000 network. With a USB link, plug it in and save the plugin settings again.';
33
57
  /**
34
58
  * The `config.ini` the daemon reads, rendered from the plugin's settings.
35
59
  * With transport `auto` and a file already present, the file is left alone:
36
60
  * the daemon auto-detected it on first run and the user may have edited it.
37
61
  * Ports and the API address are always ours, so those keys are rewritten.
62
+ *
63
+ * With `auto` and no file yet, the daemon's own auto-detect would fall back
64
+ * to the only CAN interface, which on a Signal K computer is usually NMEA
65
+ * 2000. On Linux, the only place it can, the file is written here instead:
66
+ * for a USB link if one is plugged in, and otherwise this throws
67
+ * `NO_USB_LINK` and the daemon is not started.
68
+ *
69
+ * A file written here keeps the daemon's `bus_id`, and an existing
70
+ * `cache_dir`, or points it at
71
+ * `cacheDir`: without the key the daemon runs without its schema cache.
72
+ * With `sharedCache` the cache is the one shared with the masterbus tools,
73
+ * and `cache_dir` is always ours.
38
74
  */
39
- export function renderConfigIni(cfg, existing) {
40
- const ownKeys = ['listen', 'api_listen', 'api_token'];
75
+ export function renderConfigIni(cfg, existing, cacheDir, host = HOST, sharedCache = false) {
76
+ const ownKeys = ['listen', 'api_listen', 'api_token', ...(sharedCache ? ['cache_dir'] : [])];
77
+ const marker = '# Managed by the Signal K plugin (signalk-masterbus); edit ports there.';
41
78
  const managed = (body) => body
42
79
  .split('\n')
43
80
  .filter((line) => {
81
+ if (line.trim() === marker)
82
+ return false;
44
83
  const key = line.split('=')[0]?.trim().replace(/^#\s*/, '');
45
84
  return !(key && ownKeys.includes(key));
46
85
  })
47
86
  .join('\n')
48
87
  .replace(/\n{3,}/g, '\n\n')
49
88
  .trimEnd();
50
- const ours = `\n# Managed by the Signal K plugin (signalk-masterbus); edit ports there.\n` +
89
+ const ours = `\n${marker}\n` +
90
+ (sharedCache ? `cache_dir = ${cacheDir}\n` : '') +
51
91
  `listen = 127.0.0.1:${cfg.streamPort}\n` +
52
92
  `api_listen = 127.0.0.1:${cfg.apiPort}\n`;
93
+ const whole = (transport, deviceName) => {
94
+ const hb = cfg.heartbeatMaster.trim();
95
+ const cache = sharedCache
96
+ ? null
97
+ : (existing
98
+ ?.split('\n')
99
+ .find((line) => /^\s*cache_dir\s*=/.test(line))
100
+ ?.trim() ?? `cache_dir = ${cacheDir}`);
101
+ // The daemon makes up its own BusID on first run and adds it here; it
102
+ // must survive the file being written again.
103
+ const busId = existing
104
+ ?.split('\n')
105
+ .find((line) => /^\s*bus_id\s*=/.test(line))
106
+ ?.trim();
107
+ return ('# masterbus configuration, written by the Signal K plugin (signalk-masterbus).\n' +
108
+ '# Transport, device and master role are edited in the plugin settings.\n' +
109
+ (hb ? `heartbeat_master = ${hb}\n` : '# heartbeat_master = 000001\n') +
110
+ `device_type = ${transport}\n` +
111
+ `device_name = ${deviceName}\n` +
112
+ (cache ? `${cache}\n` : '') +
113
+ (busId ? `${busId}\n` : '') +
114
+ ours);
115
+ };
53
116
  if (cfg.transport === 'auto') {
54
- if (existing === null)
55
- return null; // let the daemon auto-detect and write it
56
- return `${managed(existing)}\n${ours}`;
117
+ if (existing !== null)
118
+ return `${managed(existing)}\n${ours}`;
119
+ if (host.platform !== 'linux')
120
+ return null; // no CAN fallback: let the daemon detect
121
+ if (!host.usbLink())
122
+ throw new Error(NO_USB_LINK);
123
+ return whole('usb', '');
57
124
  }
58
- const hb = cfg.heartbeatMaster.trim();
59
- return ('# masterbus configuration, written by the Signal K plugin (signalk-masterbus).\n' +
60
- '# Transport, device and master role are edited in the plugin settings.\n' +
61
- (hb ? `heartbeat_master = ${hb}\n` : '# heartbeat_master = 000001\n') +
62
- `device_type = ${cfg.transport}\n` +
63
- `device_name = ${cfg.deviceName.trim()}\n` +
64
- ours);
125
+ return whole(cfg.transport, cfg.deviceName.trim());
126
+ }
127
+ /**
128
+ * The mapping and cache for these settings: the tools' (or the folder
129
+ * named) when shared, the plugin's data folder otherwise. In a container
130
+ * without a folder named, the plugin's: its home folder isn't kept.
131
+ */
132
+ export function storageFor(cfg, dataDir, env = ENV) {
133
+ const named = cfg.sharedDir.trim();
134
+ if (cfg.storage === 'shared' && (named || !inContainer(env))) {
135
+ const dir = named || toolsDir(env);
136
+ return { mapping: path.join(dir, 'mapping.json'), cache: toolsCacheDir(dir, env), shared: true };
137
+ }
138
+ return {
139
+ mapping: path.join(dataDir, 'mapping.json'),
140
+ cache: path.join(dataDir, 'cache'),
141
+ shared: false
142
+ };
65
143
  }
66
144
  const KEEP_LINES = 40;
67
145
  /**
@@ -78,6 +156,8 @@ export class DaemonManager {
78
156
  backoffMs = 1000;
79
157
  recent = [];
80
158
  generation = 0;
159
+ storage = null;
160
+ moved = null;
81
161
  constructor(opts) {
82
162
  this.opts = opts;
83
163
  this.token = randomBytes(24).toString('hex');
@@ -86,6 +166,14 @@ export class DaemonManager {
86
166
  get recentLog() {
87
167
  return [...this.recent];
88
168
  }
169
+ /** The mapping file the daemon reads and the editor writes. */
170
+ get mappingPath() {
171
+ return this.storage?.mapping ?? null;
172
+ }
173
+ /** What became of the plugin's own mapping when sharing began, if anything. */
174
+ get notice() {
175
+ return this.moved;
176
+ }
89
177
  get running() {
90
178
  return this.child !== null && this.child.exitCode === null && !this.child.killed;
91
179
  }
@@ -95,7 +183,12 @@ export class DaemonManager {
95
183
  fs.mkdirSync(this.opts.dataDir, { recursive: true });
96
184
  const ini = path.join(this.opts.dataDir, 'config.ini');
97
185
  const existing = fs.existsSync(ini) ? fs.readFileSync(ini, 'utf8') : null;
98
- const rendered = renderConfigIni(this.opts.config, existing);
186
+ const storage = storageFor(this.opts.config, this.opts.dataDir, this.opts.env);
187
+ this.storage = storage;
188
+ const rendered = renderConfigIni(this.opts.config, existing, storage.cache, this.opts.host, storage.shared);
189
+ if (storage.shared) {
190
+ this.moved = adoptMapping(path.join(this.opts.dataDir, 'mapping.json'), storage.mapping);
191
+ }
99
192
  if (rendered !== null && rendered !== existing)
100
193
  fs.writeFileSync(ini, rendered);
101
194
  const tokenFile = path.join(this.opts.dataDir, 'api-token');
@@ -120,7 +213,12 @@ export class DaemonManager {
120
213
  let settled = false;
121
214
  const child = spawn(this.opts.binary, args, {
122
215
  stdio: ['ignore', 'pipe', 'pipe'],
123
- env: { ...process.env, RUST_LOG: process.env.RUST_LOG ?? 'warn' }
216
+ env: {
217
+ ...process.env,
218
+ RUST_LOG: process.env.RUST_LOG ?? 'warn',
219
+ // The daemon reads its mapping from here instead of beside config.ini.
220
+ ...(this.storage?.shared ? { MAPPING: this.storage.mapping } : {})
221
+ }
124
222
  });
125
223
  this.child = child;
126
224
  const timeout = setTimeout(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAgB,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAU1E,eAAO,MAAM,SAAS,sBAAsB,CAAA;AAE5C,sEAAsE;AACtE,eAAO,MAAM,QAAQ,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAWnD,CAAA;AAKJ;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CA8LrD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAgB,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAU1E,eAAO,MAAM,SAAS,sBAAsB,CAAA;AAE5C,sEAAsE;AACtE,eAAO,MAAM,QAAQ,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAWnD,CAAA;AAKJ;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CAmMrD"}
package/plugin/index.js CHANGED
@@ -50,7 +50,9 @@ export default function plugin(app) {
50
50
  versions: VERSIONS,
51
51
  mode: config?.mode ?? null,
52
52
  connected: client !== null && lastStatus !== null,
53
- daemon: daemon ? { running: daemon.running, recentLog: daemon.recentLog } : null,
53
+ daemon: daemon
54
+ ? { running: daemon.running, recentLog: daemon.recentLog, mappingPath: daemon.mappingPath }
55
+ : null,
54
56
  status: lastStatus,
55
57
  error: lastError,
56
58
  stream: forwarder ? { connected: forwarder.connected, ...forwarder.counts } : null,
@@ -63,10 +65,13 @@ export default function plugin(app) {
63
65
  const problems = s.diagnostics.errors > 0
64
66
  ? `; ${s.diagnostics.errors} mapping entr${s.diagnostics.errors === 1 ? 'y' : 'ies'} skipped, see the editor`
65
67
  : '';
68
+ // Said until the plugin restarts, so it is seen at least once.
69
+ const notice = daemon?.notice ? ` ${daemon.notice}` : '';
66
70
  return (`${where}: streaming ${s.streaming} field${s.streaming === 1 ? '' : 's'} from ` +
67
71
  `${s.mapped.devices} of ${s.devices} device${s.devices === 1 ? '' : 's'}` +
68
72
  (s.devices === 0 ? ' (discovering)' : '') +
69
- problems);
73
+ problems +
74
+ notice);
70
75
  };
71
76
  const setError = (msg) => {
72
77
  lastError = msg;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAIxC,OAAO,EAAE,YAAY,EAAiB,MAAM,aAAa,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAe,MAAM,aAAa,CAAA;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAGvD,MAAM,CAAC,MAAM,SAAS,GAAG,mBAAmB,CAAA;AAE5C,sEAAsE;AACtE,MAAM,CAAC,MAAM,QAAQ,GAAuC,CAAC,GAAG,EAAE;IAChE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAA;QAC5F,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAGlD,CAAA;QACD,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,eAAe,IAAI,GAAG,EAAE,CAAA;IAC3E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAA;IACrC,CAAC;AACH,CAAC,CAAC,EAAE,CAAA;AAEJ,8EAA8E;AAC9E,MAAM,OAAO,GAAG,MAAM,CAAA;AAEtB;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,GAAc;IAC3C,IAAI,MAAM,GAAkB,IAAI,CAAA;IAChC,IAAI,MAAM,GAAyB,IAAI,CAAA;IACvC,IAAI,MAAM,GAAwB,IAAI,CAAA;IACtC,IAAI,SAAS,GAA2B,IAAI,CAAA;IAC5C,IAAI,MAAM,GAAqB,IAAI,CAAA;IACnC,IAAI,MAAM,GAA0C,IAAI,CAAA;IACxD,IAAI,UAAU,GAAkB,IAAI,CAAA;IACpC,IAAI,SAAS,GAAkB,IAAI,CAAA;IACnC,IAAI,WAAW,GAAG,EAAE,CAAA;IACpB,yEAAyE;IACzE,2CAA2C;IAC3C,IAAI,UAAU,GAAG,CAAC,CAAA;IAElB,MAAM,OAAO,GAAG,GAA4B,EAAE,CAAC,CAAC;QAC9C,QAAQ,EAAE,QAAQ;QAClB,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,IAAI;QAC1B,SAAS,EAAE,MAAM,KAAK,IAAI,IAAI,UAAU,KAAK,IAAI;QACjD,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI;QAChF,MAAM,EAAE,UAAU;QAClB,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,SAAS,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI;QAClF,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE;KAC9B,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,CAAC,CAAS,EAAU,EAAE;QACvC,MAAM,KAAK,GACT,MAAM,EAAE,IAAI,KAAK,SAAS;YACxB,CAAC,CAAC,kBAAkB,CAAC,CAAC,OAAO,EAAE;YAC/B,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,OAAO,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAA;QACvD,MAAM,QAAQ,GACZ,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;YACtB,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,MAAM,gBAAgB,CAAC,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,0BAA0B;YAC7G,CAAC,CAAC,EAAE,CAAA;QACR,OAAO,CACL,GAAG,KAAK,eAAe,CAAC,CAAC,SAAS,SAAS,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,QAAQ;YAC/E,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,CAAC,OAAO,UAAU,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE;YACzE,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,QAAQ,CACT,CAAA;IACH,CAAC,CAAA;IAED,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAQ,EAAE;QACrC,SAAS,GAAG,GAAG,CAAA;QACf,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;IACzB,CAAC,CAAA;IAED,wEAAwE;IACxE,MAAM,IAAI,GAAG,KAAK,IAAmB,EAAE;QACrC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM;YAAE,OAAM;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,EAAE,CAAA;YACpC,UAAU,GAAG,MAAM,CAAA;YACnB,SAAS,GAAG,IAAI,CAAA;YAChB,MAAM,OAAO,GAAY,MAAM,MAAM,CAAC,OAAO,EAAE,CAAA;YAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAC3B,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;gBAC9C,CAAC;gBACD,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;qBACrB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;qBACxB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;aAChC,CAAC,CACH,CAAA;YACD,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;gBAC3B,WAAW,GAAG,MAAM,CAAA;gBACpB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBAC/C,IAAI,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtC,GAAG,CAAC,KAAK,CAAC,iBAAiB,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;gBAC1F,CAAC;YACH,CAAC;YACD,GAAG,CAAC,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAA;QACzC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,UAAU,GAAG,IAAI,CAAA;YACjB,QAAQ,CAAC,WAAW,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACpC,CAAC;IACH,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,KAAK,EAAE,GAAW,EAAE,GAAW,EAAiB,EAAE;QACnE,IAAI,QAAkB,CAAA;QACtB,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;YACpD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,WAAW,CAAC,CAAA;YAC5D,MAAM,CAAC,GAAG,IAAI,aAAa,CAAC;gBAC1B,MAAM;gBACN,OAAO;gBACP,MAAM,EAAE,GAAG,CAAC,OAAO;gBACnB,MAAM,EAAE;oBACN,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;wBACZ,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAA;oBAC9B,CAAC;oBACD,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE;wBAClC,MAAM,GAAG,GAAG,sBAAsB,IAAI,IAAI,MAAM,IAAI,GAAG,GAAG,CAAA;wBAC1D,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;4BACvB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;wBAChB,CAAC;6BAAM,CAAC;4BACN,QAAQ,CACN,GAAG,GAAG,mBAAmB,SAAS,GAAG,IAAI,OAAO,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CACpF,CAAA;wBACH,CAAC;oBACH,CAAC;oBACD,KAAK,EAAE,GAAG,EAAE;wBACV,GAAG,CAAC,eAAe,CAAC,gCAAgC,CAAC,CAAA;wBACrD,KAAK,IAAI,EAAE,CAAA;oBACb,CAAC;iBACF;aACF,CAAC,CAAA;YACF,MAAM,GAAG,CAAC,CAAA;YACV,GAAG,CAAC,eAAe,CAAC,YAAY,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACzD,MAAM,CAAC,CAAC,KAAK,EAAE,CAAA;YACf,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;gBACvB,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;gBACd,OAAM;YACR,CAAC;YACD,QAAQ,GAAG;gBACT,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO;gBAC5B,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,UAAU;gBAClC,KAAK,EAAE,CAAC,CAAC,KAAK;aACf,CAAA;QACH,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,EAAE,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAA;YAC9B,GAAG,CAAC,eAAe,CAAC,iBAAiB,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAA;QAC5E,CAAC;QACD,MAAM,CAAC,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAA;QACpC,0EAA0E;QAC1E,UAAU,GAAG,MAAM,CAAC,CAAC,MAAM,EAAE,CAAA;QAC7B,IAAI,GAAG,KAAK,UAAU;YAAE,OAAM;QAC9B,MAAM,GAAG,CAAC,CAAA;QACV,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;QAC1C,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;QACrC,MAAM,GAAG,CAAC,CAAA;QACV,MAAM,CAAC,GAAG,IAAI,eAAe,CAAC,GAAG,EAAE;YACjC,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,IAAI,EAAE,QAAQ,CAAC,UAAU;YACzB,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE;gBACX,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YACd,CAAC;SACF,CAAC,CAAA;QACF,SAAS,GAAG,CAAC,CAAA;QACb,CAAC,CAAC,KAAK,EAAE,CAAA;QACT,MAAM,IAAI,EAAE,CAAA;QACZ,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE;YACxB,KAAK,IAAI,EAAE,CAAA;QACb,CAAC,EAAE,OAAO,CAAC,CAAA;IACb,CAAC,CAAA;IAED,OAAO;QACL,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,WAAW;QACjB,WAAW,EACT,uFAAuF;YACvF,+EAA+E,QAAQ,CAAC,MAAM,GAAG;QACnG,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,SAAS;QAEnB,KAAK,CAAC,OAAe;YACnB,MAAM,GAAG,GAAG,EAAE,UAAU,CAAA;YACxB,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;YAC9B,SAAS,GAAG,IAAI,CAAA;YAChB,KAAK,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;gBAClD,IAAI,GAAG,KAAK,UAAU;oBAAE,OAAM;gBAC9B,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;YACvB,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,KAAK,CAAC,IAAI;YACR,UAAU,EAAE,CAAA;YACZ,IAAI,MAAM,EAAE,CAAC;gBACX,aAAa,CAAC,MAAM,CAAC,CAAA;gBACrB,MAAM,GAAG,IAAI,CAAA;YACf,CAAC;YACD,SAAS,EAAE,IAAI,EAAE,CAAA;YACjB,SAAS,GAAG,IAAI,CAAA;YAChB,MAAM,EAAE,KAAK,EAAE,CAAA;YACf,MAAM,GAAG,IAAI,CAAA;YACb,MAAM,GAAG,IAAI,CAAA;YACb,UAAU,GAAG,IAAI,CAAA;YACjB,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,GAAG,MAAM,CAAA;gBAChB,MAAM,GAAG,IAAI,CAAA;gBACb,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;YAChB,CAAC;YACD,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;QAChC,CAAC;QAED,kBAAkB,CAAC,MAAoB;YACrC,cAAc,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;QAC3D,CAAC;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}