@marineyachtradar/signalk-plugin 1.1.2 → 1.2.0-beta.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.
- package/README.md +5 -1
- package/package.json +5 -4
- package/plugin/index.js +185 -5
- package/plugin/index.js.map +1 -1
- package/plugin/mayara-client.d.ts +6 -0
- package/plugin/mayara-client.d.ts.map +1 -1
- package/plugin/mayara-client.js +9 -0
- package/plugin/mayara-client.js.map +1 -1
- package/plugin/notification-forwarder.d.ts +91 -0
- package/plugin/notification-forwarder.d.ts.map +1 -0
- package/plugin/notification-forwarder.js +200 -0
- package/plugin/notification-forwarder.js.map +1 -0
- package/public/index.html +2 -14
package/README.md
CHANGED
|
@@ -132,7 +132,11 @@ Set **Managed container** to off to connect to a mayara-server instance running
|
|
|
132
132
|
|
|
133
133
|
### Radar Display
|
|
134
134
|
|
|
135
|
-
The webapp
|
|
135
|
+
The webapp opens mayara-server's built-in GUI proxied through the Signal K
|
|
136
|
+
server at `/plugins/mayara-server-signalk-plugin/gui/`, so only the Signal K
|
|
137
|
+
port needs to be reachable — mayara-server's own port (6502) does not have to
|
|
138
|
+
be exposed. The proxy forwards the GUI's REST calls and its radar/state/spoke
|
|
139
|
+
WebSocket streams to mayara-server, over both HTTP and HTTPS.
|
|
136
140
|
|
|
137
141
|
## Features
|
|
138
142
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@marineyachtradar/signalk-plugin",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0-beta.2",
|
|
4
4
|
"description": "MaYaRa Radar - Connect SignalK to mayara-server",
|
|
5
5
|
"main": "plugin/index.js",
|
|
6
6
|
"signalk-plugin-enabled-by-default": true,
|
|
@@ -48,6 +48,7 @@
|
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
50
|
"@sinclair/typebox": "^0.34.0",
|
|
51
|
+
"http-proxy-middleware": "^3.0.5",
|
|
51
52
|
"ws": "^8.14.0"
|
|
52
53
|
},
|
|
53
54
|
"peerDependencies": {
|
|
@@ -66,15 +67,15 @@
|
|
|
66
67
|
"@types/express": "^5.0.0",
|
|
67
68
|
"@types/node": "^22.0.0",
|
|
68
69
|
"@types/ws": "^8.5.0",
|
|
70
|
+
"babel-loader": "^10.1.1",
|
|
69
71
|
"eslint": "^10.3.0",
|
|
70
72
|
"eslint-config-prettier": "^10.0.0",
|
|
71
73
|
"eslint-plugin-prettier": "^5.0.0",
|
|
72
74
|
"prettier": "^3.0.0",
|
|
73
|
-
"typescript": "^6.0.3",
|
|
74
|
-
"typescript-eslint": "^8.0.0",
|
|
75
|
-
"babel-loader": "^10.1.1",
|
|
76
75
|
"react": "^19.2.4",
|
|
77
76
|
"react-dom": "^19.2.4",
|
|
77
|
+
"typescript": "^6.0.3",
|
|
78
|
+
"typescript-eslint": "^8.0.0",
|
|
78
79
|
"vitest": "^4.1.5",
|
|
79
80
|
"webpack": "^5.105.4",
|
|
80
81
|
"webpack-cli": "^7.0.2"
|
package/plugin/index.js
CHANGED
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const net_1 = require("net");
|
|
4
|
+
const http_proxy_middleware_1 = require("http-proxy-middleware");
|
|
3
5
|
const mayara_client_1 = require("./mayara-client");
|
|
4
6
|
const radar_provider_1 = require("./radar-provider");
|
|
5
7
|
const spoke_forwarder_1 = require("./spoke-forwarder");
|
|
8
|
+
const notification_forwarder_1 = require("./notification-forwarder");
|
|
6
9
|
const schema_1 = require("./config/schema");
|
|
7
10
|
const signalk_token_1 = require("./signalk-token");
|
|
8
11
|
const MAYARA_IMAGE = 'ghcr.io/marineyachtradar/mayara-server';
|
|
9
12
|
const CONTAINER_NAME = 'mayara-server';
|
|
10
13
|
const PLUGIN_ID = 'mayara-server-signalk-plugin';
|
|
11
14
|
const SAFE_TAG = /^[a-zA-Z0-9._-]+$/;
|
|
15
|
+
// Same-origin path the SK server forwards to mayara-server's :6502.
|
|
16
|
+
// Keeps the browser on the SK port (3000 / 443), so HTTPS works and
|
|
17
|
+
// only one firewall port needs to be open.
|
|
18
|
+
const GUI_PROXY_PATH = `/plugins/${PLUGIN_ID}/gui`;
|
|
12
19
|
/**
|
|
13
20
|
* Sensible default resource limits for the mayara-server container.
|
|
14
21
|
* Tested on a Pi 5 8GB with a Garmin xHD2 radar at 24 NM range.
|
|
@@ -38,12 +45,22 @@ module.exports = function (app) {
|
|
|
38
45
|
let client = null;
|
|
39
46
|
let currentSettings = null;
|
|
40
47
|
const spokeForwarders = new Map();
|
|
48
|
+
// Single instance: mayara emits notifications on the server-wide v1
|
|
49
|
+
// stream, not per-radar, so we only need one connection regardless of
|
|
50
|
+
// how many radars are discovered.
|
|
51
|
+
let notificationForwarder = null;
|
|
41
52
|
let discoveryInterval = null;
|
|
42
53
|
// Set true on stop() so the in-flight token poller exits its loop.
|
|
43
54
|
let tokenPollerCancelled = false;
|
|
44
55
|
let reconnectInterval = null;
|
|
45
56
|
let isConnected = false;
|
|
46
57
|
const knownRadars = new Set();
|
|
58
|
+
// Track the WebSocket upgrade listener so stop() can detach it.
|
|
59
|
+
// The HTTP server outlives plugin restarts (disable/enable, config
|
|
60
|
+
// saves), so leaving the listener registered would accumulate one
|
|
61
|
+
// per restart cycle and cause duplicate proxy.upgrade() calls.
|
|
62
|
+
let upgradeListener = null;
|
|
63
|
+
let upgradeListenerServer = null;
|
|
47
64
|
const plugin = {
|
|
48
65
|
id: PLUGIN_ID,
|
|
49
66
|
name: 'MaYaRa Radar (Server)',
|
|
@@ -89,6 +106,10 @@ module.exports = function (app) {
|
|
|
89
106
|
}
|
|
90
107
|
spokeForwarders.clear();
|
|
91
108
|
knownRadars.clear();
|
|
109
|
+
if (notificationForwarder) {
|
|
110
|
+
notificationForwarder.stop();
|
|
111
|
+
notificationForwarder = null;
|
|
112
|
+
}
|
|
92
113
|
if (client) {
|
|
93
114
|
client.close();
|
|
94
115
|
client = null;
|
|
@@ -111,10 +132,156 @@ module.exports = function (app) {
|
|
|
111
132
|
app.debug(`Error stopping mayara-server container: ${errMsg(err)}`);
|
|
112
133
|
}
|
|
113
134
|
}
|
|
135
|
+
if (upgradeListener && upgradeListenerServer) {
|
|
136
|
+
upgradeListenerServer.removeListener('upgrade', upgradeListener);
|
|
137
|
+
upgradeListener = null;
|
|
138
|
+
upgradeListenerServer = null;
|
|
139
|
+
}
|
|
114
140
|
isConnected = false;
|
|
115
141
|
app.setPluginStatus('Stopped');
|
|
116
142
|
},
|
|
117
143
|
registerWithRouter(router) {
|
|
144
|
+
// Same-origin reverse proxy to mayara-server's :6502. The icon
|
|
145
|
+
// click in the SK admin lands on the splash page (public/
|
|
146
|
+
// index.html), which redirects to `${GUI_PROXY_PATH}/`. From
|
|
147
|
+
// there the browser only ever talks to the SK server, so HTTPS
|
|
148
|
+
// works without mixed content and only the SK port needs to be
|
|
149
|
+
// open externally.
|
|
150
|
+
//
|
|
151
|
+
// `router` flag rewriter resolves the target on every request,
|
|
152
|
+
// so changes to host/port in the plugin config take effect
|
|
153
|
+
// without restarting the plugin (matches the live read in
|
|
154
|
+
// /api/gui-url).
|
|
155
|
+
// Rewrite the absolute `ws://host:port/...` URLs mayara puts in
|
|
156
|
+
// its radar-list JSON to same-origin paths the browser can reach
|
|
157
|
+
// via this proxy. control.js opens `new WebSocket(streamUrl)` on
|
|
158
|
+
// the value verbatim, so without this the GUI would try to talk
|
|
159
|
+
// directly to mayara's port (defeating the whole point).
|
|
160
|
+
const rewriteStreamUrl = (raw) => {
|
|
161
|
+
try {
|
|
162
|
+
const u = new URL(raw);
|
|
163
|
+
// Map mayara's /signalk/... paths to /plugins/<id>/gui/signalk/...
|
|
164
|
+
// (the `/gui` mount is where ws-upgrade dispatch hooks in).
|
|
165
|
+
return `${GUI_PROXY_PATH}${u.pathname}${u.search}`;
|
|
166
|
+
}
|
|
167
|
+
catch {
|
|
168
|
+
return raw;
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
const guiProxy = (0, http_proxy_middleware_1.createProxyMiddleware)({
|
|
172
|
+
router: () => {
|
|
173
|
+
const host = currentSettings?.host ?? 'localhost';
|
|
174
|
+
const port = currentSettings?.port ?? 6502;
|
|
175
|
+
const proto = currentSettings?.secure ? 'https' : 'http';
|
|
176
|
+
return `${proto}://${host}:${port}`;
|
|
177
|
+
},
|
|
178
|
+
// `router.use('/gui', guiProxy)` strips the `/gui` prefix
|
|
179
|
+
// before the middleware sees the request, so the proxy
|
|
180
|
+
// receives paths like `/` (for the GUI root) and
|
|
181
|
+
// `/signalk/v2/api/...` (for the WebSocket-emitting REST API).
|
|
182
|
+
// mayara-server serves its UI at `/gui/...` but its API +
|
|
183
|
+
// WebSockets at `/signalk/...` (and the bare `/signalk`
|
|
184
|
+
// discovery endpoint the GUI probes for mode detection). We
|
|
185
|
+
// need both classes of request to reach mayara, so prepend
|
|
186
|
+
// `/gui` ONLY for paths that aren't already under `/signalk`.
|
|
187
|
+
target: 'http://localhost:6502', // overridden by `router`
|
|
188
|
+
changeOrigin: true,
|
|
189
|
+
// Do NOT let the middleware auto-subscribe to the server's `upgrade`
|
|
190
|
+
// event. It would see the raw `/plugins/<id>/gui/signalk/...` URL,
|
|
191
|
+
// which `pathRewrite` can't strip the mount prefix from (it only
|
|
192
|
+
// knows `/signalk/` vs not), so the upgrade reaches mayara at a bogus
|
|
193
|
+
// `/gui/...` path and 404s. The manual `upgradeListener` below strips
|
|
194
|
+
// the prefix first, then calls `guiProxy.upgrade()`. With `ws: true`
|
|
195
|
+
// that manual call is a no-op (it guards on `wsInternalSubscribed`),
|
|
196
|
+
// so the two handlers fight and the wrong one wins. Keep this false.
|
|
197
|
+
ws: false,
|
|
198
|
+
xfwd: true,
|
|
199
|
+
followRedirects: false,
|
|
200
|
+
pathRewrite: (path) => path === '/signalk' || path.startsWith('/signalk/') ? path : `/gui${path}`,
|
|
201
|
+
selfHandleResponse: true,
|
|
202
|
+
on: {
|
|
203
|
+
// eslint-disable-next-line @typescript-eslint/no-misused-promises -- responseInterceptor returns a function whose Promise return value is awaited by node-http-proxy internally.
|
|
204
|
+
proxyRes: (0, http_proxy_middleware_1.responseInterceptor)((buffer, proxyRes, req) => {
|
|
205
|
+
const ct = proxyRes.headers['content-type'] ?? '';
|
|
206
|
+
// Only the radar-list JSON contains stream URLs we need
|
|
207
|
+
// to rewrite. Everything else (HTML, JS, CSS, binary
|
|
208
|
+
// images, other JSON) passes through untouched.
|
|
209
|
+
if (ct.includes('application/json') &&
|
|
210
|
+
req.url?.includes('/signalk/v2/api/vessels/self/radars')) {
|
|
211
|
+
try {
|
|
212
|
+
const json = JSON.parse(buffer.toString('utf8'));
|
|
213
|
+
for (const radar of Object.values(json)) {
|
|
214
|
+
if (radar.streamUrl)
|
|
215
|
+
radar.streamUrl = rewriteStreamUrl(radar.streamUrl);
|
|
216
|
+
if (radar.spokeDataUrl)
|
|
217
|
+
radar.spokeDataUrl = rewriteStreamUrl(radar.spokeDataUrl);
|
|
218
|
+
}
|
|
219
|
+
return Promise.resolve(JSON.stringify(json));
|
|
220
|
+
}
|
|
221
|
+
catch {
|
|
222
|
+
return Promise.resolve(buffer);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
return Promise.resolve(buffer);
|
|
226
|
+
})
|
|
227
|
+
}
|
|
228
|
+
});
|
|
229
|
+
// WebSocket upgrades fire at the Node HTTP-server level, not
|
|
230
|
+
// through Express, so we need an `upgrade` listener on the
|
|
231
|
+
// server itself. The server isn't exposed through the documented
|
|
232
|
+
// Plugin API — but every incoming Express request reaches it via
|
|
233
|
+
// `req.socket.server`, which is Node's public HTTP API. Wrap the
|
|
234
|
+
// proxy with a one-shot middleware that captures the server on
|
|
235
|
+
// the first request and installs a path-filtered upgrade handler.
|
|
236
|
+
// Other plugins / SK itself add their own upgrade listeners for
|
|
237
|
+
// their own paths; they coexist because each returns early on
|
|
238
|
+
// non-matching URLs.
|
|
239
|
+
// Install the WS upgrade listener as soon as any HTTP request
|
|
240
|
+
// hits the plugin router. WebSocket upgrades fire at the Node
|
|
241
|
+
// HTTP-server level (not through Express), and the documented
|
|
242
|
+
// Plugin API doesn't expose the server. Every incoming Express
|
|
243
|
+
// request reaches it via `req.socket.server` (Node's public
|
|
244
|
+
// HTTP API), so we grab it on first hit and register a
|
|
245
|
+
// path-filtered upgrade handler. The handler reference is
|
|
246
|
+
// stored in module scope so stop() can detach it on plugin
|
|
247
|
+
// restart.
|
|
248
|
+
router.use((req, _res, next) => {
|
|
249
|
+
if (!upgradeListener) {
|
|
250
|
+
// Express types `req.socket` as net.Socket, but at runtime it has
|
|
251
|
+
// a `.server` back-reference to the Node server. Match on
|
|
252
|
+
// `net.Server` (the common base) rather than `http.Server`: with
|
|
253
|
+
// SSL enabled, Signal K's listener is an `https.Server`, which
|
|
254
|
+
// extends `tls.Server`/`net.Server` — NOT `http.Server` — so an
|
|
255
|
+
// `instanceof http.Server` check fails and the WS upgrade listener
|
|
256
|
+
// is never installed (streams hang under https). `app.server` is
|
|
257
|
+
// SK-internal and flagged by the upstream plugin-CI lint, so this
|
|
258
|
+
// back-reference is the only documented public path to the server.
|
|
259
|
+
const wsServer = req.socket.server;
|
|
260
|
+
if (wsServer instanceof net_1.Server) {
|
|
261
|
+
const prefix = `${GUI_PROXY_PATH}/`;
|
|
262
|
+
upgradeListener = (upReq, socket, head) => {
|
|
263
|
+
if (upReq.url && upReq.url.startsWith(prefix)) {
|
|
264
|
+
// Strip the `/plugins/<id>/gui` prefix so the proxy
|
|
265
|
+
// sees the same path shape as for HTTP requests
|
|
266
|
+
// (where Express' router.use('/gui', ...) does the
|
|
267
|
+
// stripping). pathRewrite then handles the
|
|
268
|
+
// `/signalk/` vs `/gui/...` split uniformly.
|
|
269
|
+
const stripped = upReq.url.slice(GUI_PROXY_PATH.length) || '/';
|
|
270
|
+
upReq.url = stripped;
|
|
271
|
+
guiProxy.upgrade(upReq, socket, head);
|
|
272
|
+
}
|
|
273
|
+
};
|
|
274
|
+
wsServer.on('upgrade', upgradeListener);
|
|
275
|
+
upgradeListenerServer = wsServer;
|
|
276
|
+
app.debug(`Mounted mayara GUI proxy at ${GUI_PROXY_PATH} (with WS upgrade)`);
|
|
277
|
+
}
|
|
278
|
+
else {
|
|
279
|
+
app.debug('HTTP server unavailable on req.socket; WS streams to mayara GUI will not be proxied');
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
next();
|
|
283
|
+
});
|
|
284
|
+
router.use('/gui', guiProxy);
|
|
118
285
|
router.get('/status', async (_req, res) => {
|
|
119
286
|
const containers = getContainerManager();
|
|
120
287
|
let containerState = 'unknown';
|
|
@@ -148,6 +315,9 @@ module.exports = function (app) {
|
|
|
148
315
|
radarId: id,
|
|
149
316
|
connected: spokeForwarders.get(id)?.isConnected() ?? false
|
|
150
317
|
})),
|
|
318
|
+
notificationForwarder: {
|
|
319
|
+
connected: notificationForwarder?.isConnected() ?? false
|
|
320
|
+
},
|
|
151
321
|
container: {
|
|
152
322
|
state: containerState,
|
|
153
323
|
image: containerImage,
|
|
@@ -243,10 +413,7 @@ module.exports = function (app) {
|
|
|
243
413
|
}
|
|
244
414
|
});
|
|
245
415
|
router.get('/api/gui-url', (_req, res) => {
|
|
246
|
-
|
|
247
|
-
const port = currentSettings?.port ?? 6502;
|
|
248
|
-
const proto = currentSettings?.secure ? 'https' : 'http';
|
|
249
|
-
res.json({ url: `${proto}://${host}:${port}/gui/` });
|
|
416
|
+
res.json({ url: `${GUI_PROXY_PATH}/` });
|
|
250
417
|
});
|
|
251
418
|
// Lists available release tags for the version dropdown in the
|
|
252
419
|
// config panel. signalk-container's update service exposes "what
|
|
@@ -338,7 +505,7 @@ module.exports = function (app) {
|
|
|
338
505
|
// `--user 1000:1000` on docker / rootful podman). Without this
|
|
339
506
|
// hint signalk-container assumes inImageUid=0, the in-image
|
|
340
507
|
// mayara user runs under the subuid range, and the in-container
|
|
341
|
-
// mayara process cannot write to
|
|
508
|
+
// mayara process cannot write to the in-image XDG data dir.
|
|
342
509
|
user: { inImageUid: 1000, inImageGid: 1000 }
|
|
343
510
|
};
|
|
344
511
|
if (Object.keys(env).length > 0) {
|
|
@@ -552,6 +719,19 @@ module.exports = function (app) {
|
|
|
552
719
|
}
|
|
553
720
|
}
|
|
554
721
|
}
|
|
722
|
+
// Bring up the notification forwarder before discovery so the very
|
|
723
|
+
// first guard-zone alarm a radar fires reaches the upstream Signal
|
|
724
|
+
// K server. The forwarder owns its own reconnect loop, so failing
|
|
725
|
+
// here just means it'll reach mayara on a later attempt.
|
|
726
|
+
if (!notificationForwarder) {
|
|
727
|
+
notificationForwarder = new notification_forwarder_1.NotificationForwarder(app, {
|
|
728
|
+
pluginId: PLUGIN_ID,
|
|
729
|
+
url: client.getStateStreamUrl(),
|
|
730
|
+
debug: app.debug.bind(app),
|
|
731
|
+
reconnectInterval: (settings.reconnectInterval || 5) * 1000
|
|
732
|
+
});
|
|
733
|
+
notificationForwarder.start();
|
|
734
|
+
}
|
|
555
735
|
await connectAndDiscover(settings);
|
|
556
736
|
}
|
|
557
737
|
async function connectAndDiscover(settings) {
|
package/plugin/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,12 @@ export declare class MayaraClient {
|
|
|
23
23
|
cancelTarget(radarId: string, targetId: number): Promise<unknown>;
|
|
24
24
|
getSpokeStreamUrl(radarId: string): string;
|
|
25
25
|
getTargetStreamUrl(radarId: string): string;
|
|
26
|
+
/**
|
|
27
|
+
* Signal K v1 stream — the same WebSocket the built-in GUI subscribes
|
|
28
|
+
* to. Used by NotificationForwarder to listen for `notifications.*`
|
|
29
|
+
* deltas (e.g. guard-zone alarms) and republish them upstream.
|
|
30
|
+
*/
|
|
31
|
+
getStateStreamUrl(): string;
|
|
26
32
|
close(): void;
|
|
27
33
|
}
|
|
28
34
|
//# sourceMappingURL=mayara-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mayara-client.d.ts","sourceRoot":"","sources":["../src/mayara-client.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CAC9B;AAID,qBAAa,YAAY;IACvB,OAAO,CAAC,IAAI,CAAQ;IACpB,OAAO,CAAC,IAAI,CAAQ;IACpB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,KAAK,CAAuB;gBAExB,OAAO,EAAE,mBAAmB;IAQlC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,OAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IA6C7E,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAI7C,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlD,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAI9D,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAIhF,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAIjF,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI7C,aAAa,CACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAO7B,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIvE,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAK1C,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAK3C,KAAK,IAAI,IAAI;CAGd"}
|
|
1
|
+
{"version":3,"file":"mayara-client.d.ts","sourceRoot":"","sources":["../src/mayara-client.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CAC9B;AAID,qBAAa,YAAY;IACvB,OAAO,CAAC,IAAI,CAAQ;IACpB,OAAO,CAAC,IAAI,CAAQ;IACpB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,KAAK,CAAuB;gBAExB,OAAO,EAAE,mBAAmB;IAQlC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,OAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IA6C7E,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAI7C,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlD,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAI9D,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAIhF,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAIjF,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI7C,aAAa,CACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAO7B,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIvE,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAK1C,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAK3C;;;;OAIG;IACH,iBAAiB,IAAI,MAAM;IAK3B,KAAK,IAAI,IAAI;CAGd"}
|
package/plugin/mayara-client.js
CHANGED
|
@@ -97,6 +97,15 @@ class MayaraClient {
|
|
|
97
97
|
const wsProtocol = this.secure ? 'wss' : 'ws';
|
|
98
98
|
return `${wsProtocol}://${this.host}:${this.port}${API_BASE}/${radarId}/targets/stream`;
|
|
99
99
|
}
|
|
100
|
+
/**
|
|
101
|
+
* Signal K v1 stream — the same WebSocket the built-in GUI subscribes
|
|
102
|
+
* to. Used by NotificationForwarder to listen for `notifications.*`
|
|
103
|
+
* deltas (e.g. guard-zone alarms) and republish them upstream.
|
|
104
|
+
*/
|
|
105
|
+
getStateStreamUrl() {
|
|
106
|
+
const wsProtocol = this.secure ? 'wss' : 'ws';
|
|
107
|
+
return `${wsProtocol}://${this.host}:${this.port}/signalk/v1/stream`;
|
|
108
|
+
}
|
|
100
109
|
close() {
|
|
101
110
|
// No persistent connections to close for HTTP client
|
|
102
111
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mayara-client.js","sourceRoot":"","sources":["../src/mayara-client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"mayara-client.js","sourceRoot":"","sources":["../src/mayara-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import WebSocket from 'ws';
|
|
2
|
+
import type { Delta } from '@signalk/server-api';
|
|
3
|
+
/**
|
|
4
|
+
* Subset of the Signal K app surface this forwarder needs. We pin to the
|
|
5
|
+
* minimum so the unit tests can pass a stub without dragging in the full
|
|
6
|
+
* server-api types.
|
|
7
|
+
*/
|
|
8
|
+
export interface NotificationForwarderApp {
|
|
9
|
+
handleMessage(id: string, msg: Partial<Delta>): void;
|
|
10
|
+
debug?(msg: string): void;
|
|
11
|
+
}
|
|
12
|
+
export interface NotificationForwarderOptions {
|
|
13
|
+
/**
|
|
14
|
+
* Plugin id used when calling `app.handleMessage`. Signal K stamps
|
|
15
|
+
* the republished delta's `$source` from this; passing the same id
|
|
16
|
+
* the plugin registers with keeps all forwarded data attributed to
|
|
17
|
+
* one provider in the SK admin UI.
|
|
18
|
+
*/
|
|
19
|
+
pluginId: string;
|
|
20
|
+
/** ws:// URL of mayara-server's `/signalk/v1/stream` endpoint. */
|
|
21
|
+
url: string;
|
|
22
|
+
/** Optional logger; defaults to a no-op. */
|
|
23
|
+
debug?: (msg: string) => void;
|
|
24
|
+
reconnectInterval?: number;
|
|
25
|
+
/**
|
|
26
|
+
* Constructor override used by tests; in production this is just the
|
|
27
|
+
* `ws` package's `WebSocket` class. Typed minimally to avoid pulling
|
|
28
|
+
* the full ws.d.ts surface into the public API.
|
|
29
|
+
*/
|
|
30
|
+
webSocketFactory?: (url: string) => WebSocketLike;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Bridges `notifications.*` deltas from mayara-server's Signal K v1
|
|
34
|
+
* stream into the host Signal K server via `app.handleMessage`. Mayara
|
|
35
|
+
* emits e.g. `notifications.radar.<key>.guardZone.<n>` on its own
|
|
36
|
+
* stream; without this forwarder, those alarms reach mayara's built-in
|
|
37
|
+
* GUI but not the SK admin notifications panel, the chart plotter, or
|
|
38
|
+
* any other SK consumer.
|
|
39
|
+
*
|
|
40
|
+
* On connect we send a `notifications.*` subscription so mayara filters
|
|
41
|
+
* appropriately. Each incoming delta is forwarded as-is — mayara has
|
|
42
|
+
* already shaped it to the SK spec (state / method / message), and the
|
|
43
|
+
* SK server stamps `$source` from `pluginId` on republish.
|
|
44
|
+
*/
|
|
45
|
+
export declare class NotificationForwarder {
|
|
46
|
+
private readonly pluginId;
|
|
47
|
+
private readonly url;
|
|
48
|
+
private readonly debug;
|
|
49
|
+
private readonly reconnectMs;
|
|
50
|
+
private readonly webSocketFactory;
|
|
51
|
+
private ws;
|
|
52
|
+
private reconnectTimer;
|
|
53
|
+
private closed;
|
|
54
|
+
private connected;
|
|
55
|
+
private readonly app;
|
|
56
|
+
constructor(app: NotificationForwarderApp, options: NotificationForwarderOptions);
|
|
57
|
+
start(): void;
|
|
58
|
+
private connect;
|
|
59
|
+
/**
|
|
60
|
+
* Parse one inbound text frame and forward every notification-pathed
|
|
61
|
+
* value entry to the host SK server. Non-text frames, non-JSON
|
|
62
|
+
* payloads, deltas with no notification entries, and the upstream
|
|
63
|
+
* "hello" handshake are all silently dropped.
|
|
64
|
+
*
|
|
65
|
+
* Exposed `protected` so the tests can inject frames without going
|
|
66
|
+
* through the real WebSocket.
|
|
67
|
+
*/
|
|
68
|
+
protected handleMessage(data: WebSocket.RawData): void;
|
|
69
|
+
/**
|
|
70
|
+
* Returns a copy of `parsed` containing only the notification values.
|
|
71
|
+
* Returns null if `parsed` isn't a Signal K delta, has no `updates`,
|
|
72
|
+
* or carries no `notifications.*` paths after filtering.
|
|
73
|
+
*/
|
|
74
|
+
private extractNotificationDelta;
|
|
75
|
+
private scheduleReconnect;
|
|
76
|
+
isConnected(): boolean;
|
|
77
|
+
stop(): void;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Minimum WebSocket surface this module touches. Lets tests inject a
|
|
81
|
+
* stub without importing the full `ws` type tree.
|
|
82
|
+
*/
|
|
83
|
+
export interface WebSocketLike {
|
|
84
|
+
on(event: 'open', listener: () => void): void;
|
|
85
|
+
on(event: 'message', listener: (data: WebSocket.RawData) => void): void;
|
|
86
|
+
on(event: 'error', listener: (err: Error) => void): void;
|
|
87
|
+
on(event: 'close', listener: (code: number) => void): void;
|
|
88
|
+
send(data: string): void;
|
|
89
|
+
close(): void;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=notification-forwarder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notification-forwarder.d.ts","sourceRoot":"","sources":["../src/notification-forwarder.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAA;AAC1B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAEhD;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;IACpD,KAAK,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B;AAED,MAAM,WAAW,4BAA4B;IAC3C;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAA;IAChB,kEAAkE;IAClE,GAAG,EAAE,MAAM,CAAA;IACX,4CAA4C;IAC5C,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,aAAa,CAAA;CAClD;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuB;IAC7C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;IACpC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgC;IAEjE,OAAO,CAAC,EAAE,CAA6B;IACvC,OAAO,CAAC,cAAc,CAA6C;IACnE,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA0B;gBAElC,GAAG,EAAE,wBAAwB,EAAE,OAAO,EAAE,4BAA4B;IAUhF,KAAK,IAAI,IAAI;IAKb,OAAO,CAAC,OAAO;IAqDf;;;;;;;;OAQG;IACH,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,OAAO,GAAG,IAAI;IA6BtD;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IAiChC,OAAO,CAAC,iBAAiB;IAazB,WAAW,IAAI,OAAO;IAItB,IAAI,IAAI,IAAI;CAoBb;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAA;IAC7C,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,OAAO,KAAK,IAAI,GAAG,IAAI,CAAA;IACvE,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAA;IACxD,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAA;IAC1D,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,KAAK,IAAI,IAAI,CAAA;CACd"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.NotificationForwarder = void 0;
|
|
7
|
+
const ws_1 = __importDefault(require("ws"));
|
|
8
|
+
/**
|
|
9
|
+
* Bridges `notifications.*` deltas from mayara-server's Signal K v1
|
|
10
|
+
* stream into the host Signal K server via `app.handleMessage`. Mayara
|
|
11
|
+
* emits e.g. `notifications.radar.<key>.guardZone.<n>` on its own
|
|
12
|
+
* stream; without this forwarder, those alarms reach mayara's built-in
|
|
13
|
+
* GUI but not the SK admin notifications panel, the chart plotter, or
|
|
14
|
+
* any other SK consumer.
|
|
15
|
+
*
|
|
16
|
+
* On connect we send a `notifications.*` subscription so mayara filters
|
|
17
|
+
* appropriately. Each incoming delta is forwarded as-is — mayara has
|
|
18
|
+
* already shaped it to the SK spec (state / method / message), and the
|
|
19
|
+
* SK server stamps `$source` from `pluginId` on republish.
|
|
20
|
+
*/
|
|
21
|
+
class NotificationForwarder {
|
|
22
|
+
pluginId;
|
|
23
|
+
url;
|
|
24
|
+
debug;
|
|
25
|
+
reconnectMs;
|
|
26
|
+
webSocketFactory;
|
|
27
|
+
ws = null;
|
|
28
|
+
reconnectTimer = null;
|
|
29
|
+
closed = false;
|
|
30
|
+
connected = false;
|
|
31
|
+
app;
|
|
32
|
+
constructor(app, options) {
|
|
33
|
+
this.app = app;
|
|
34
|
+
this.pluginId = options.pluginId;
|
|
35
|
+
this.url = options.url;
|
|
36
|
+
this.debug = options.debug ?? (() => { });
|
|
37
|
+
this.reconnectMs = options.reconnectInterval ?? 5000;
|
|
38
|
+
this.webSocketFactory =
|
|
39
|
+
options.webSocketFactory ?? ((url) => new ws_1.default(url));
|
|
40
|
+
}
|
|
41
|
+
start() {
|
|
42
|
+
if (this.closed)
|
|
43
|
+
return;
|
|
44
|
+
this.connect();
|
|
45
|
+
}
|
|
46
|
+
connect() {
|
|
47
|
+
if (this.closed)
|
|
48
|
+
return;
|
|
49
|
+
this.debug(`Connecting to notification stream: ${this.url}`);
|
|
50
|
+
try {
|
|
51
|
+
const ws = this.webSocketFactory(this.url);
|
|
52
|
+
this.ws = ws;
|
|
53
|
+
ws.on('open', () => {
|
|
54
|
+
this.connected = true;
|
|
55
|
+
this.debug('Connected to mayara notification stream');
|
|
56
|
+
// Tell mayara we only care about notification deltas. Using a
|
|
57
|
+
// wildcard means we pick up every radar's guard-zone alarms (and
|
|
58
|
+
// any future per-radar notification types mayara adds) without
|
|
59
|
+
// having to know radar ids up front.
|
|
60
|
+
const subscription = JSON.stringify({
|
|
61
|
+
subscribe: [{ path: 'notifications.*', policy: 'instant' }]
|
|
62
|
+
});
|
|
63
|
+
try {
|
|
64
|
+
ws.send(subscription);
|
|
65
|
+
}
|
|
66
|
+
catch (err) {
|
|
67
|
+
this.debug(`Failed to send notification subscription: ${err instanceof Error ? err.message : String(err)}`);
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
ws.on('message', (data) => {
|
|
71
|
+
this.handleMessage(data);
|
|
72
|
+
});
|
|
73
|
+
ws.on('error', (err) => {
|
|
74
|
+
this.connected = false;
|
|
75
|
+
this.debug(`Notification stream error: ${err.message}`);
|
|
76
|
+
});
|
|
77
|
+
ws.on('close', (code) => {
|
|
78
|
+
this.connected = false;
|
|
79
|
+
this.debug(`Notification stream closed: ${code}`);
|
|
80
|
+
if (!this.closed) {
|
|
81
|
+
this.scheduleReconnect();
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
catch (err) {
|
|
86
|
+
this.debug(`Failed to connect to notification stream: ${err instanceof Error ? err.message : String(err)}`);
|
|
87
|
+
this.scheduleReconnect();
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Parse one inbound text frame and forward every notification-pathed
|
|
92
|
+
* value entry to the host SK server. Non-text frames, non-JSON
|
|
93
|
+
* payloads, deltas with no notification entries, and the upstream
|
|
94
|
+
* "hello" handshake are all silently dropped.
|
|
95
|
+
*
|
|
96
|
+
* Exposed `protected` so the tests can inject frames without going
|
|
97
|
+
* through the real WebSocket.
|
|
98
|
+
*/
|
|
99
|
+
handleMessage(data) {
|
|
100
|
+
let text;
|
|
101
|
+
if (typeof data === 'string') {
|
|
102
|
+
text = data;
|
|
103
|
+
}
|
|
104
|
+
else if (Buffer.isBuffer(data)) {
|
|
105
|
+
text = data.toString('utf8');
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
let parsed;
|
|
111
|
+
try {
|
|
112
|
+
parsed = JSON.parse(text);
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
const delta = this.extractNotificationDelta(parsed);
|
|
118
|
+
if (!delta)
|
|
119
|
+
return;
|
|
120
|
+
try {
|
|
121
|
+
this.app.handleMessage(this.pluginId, delta);
|
|
122
|
+
}
|
|
123
|
+
catch (err) {
|
|
124
|
+
this.debug(`Failed to forward notification delta: ${err instanceof Error ? err.message : String(err)}`);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Returns a copy of `parsed` containing only the notification values.
|
|
129
|
+
* Returns null if `parsed` isn't a Signal K delta, has no `updates`,
|
|
130
|
+
* or carries no `notifications.*` paths after filtering.
|
|
131
|
+
*/
|
|
132
|
+
extractNotificationDelta(parsed) {
|
|
133
|
+
if (!parsed || typeof parsed !== 'object')
|
|
134
|
+
return null;
|
|
135
|
+
const root = parsed;
|
|
136
|
+
if (!Array.isArray(root.updates))
|
|
137
|
+
return null;
|
|
138
|
+
const filteredUpdates = [];
|
|
139
|
+
for (const update of root.updates) {
|
|
140
|
+
if (!update || typeof update !== 'object')
|
|
141
|
+
continue;
|
|
142
|
+
const values = update.values;
|
|
143
|
+
if (!Array.isArray(values))
|
|
144
|
+
continue;
|
|
145
|
+
const notificationValues = values.filter((v) => {
|
|
146
|
+
if (!v || typeof v !== 'object')
|
|
147
|
+
return false;
|
|
148
|
+
const path = v.path;
|
|
149
|
+
return typeof path === 'string' && path.startsWith('notifications.');
|
|
150
|
+
});
|
|
151
|
+
if (notificationValues.length > 0) {
|
|
152
|
+
// Preserve $source / timestamp from upstream; the SK server
|
|
153
|
+
// will overlay `$source = <pluginId>` on its own, but the
|
|
154
|
+
// upstream timestamp is the moment the alarm fired and is
|
|
155
|
+
// worth keeping.
|
|
156
|
+
filteredUpdates.push({
|
|
157
|
+
...update,
|
|
158
|
+
values: notificationValues
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
if (filteredUpdates.length === 0)
|
|
163
|
+
return null;
|
|
164
|
+
return { updates: filteredUpdates };
|
|
165
|
+
}
|
|
166
|
+
scheduleReconnect() {
|
|
167
|
+
if (this.closed || this.reconnectTimer)
|
|
168
|
+
return;
|
|
169
|
+
this.debug(`Scheduling notification stream reconnect in ${this.reconnectMs}ms`);
|
|
170
|
+
this.reconnectTimer = setTimeout(() => {
|
|
171
|
+
this.reconnectTimer = null;
|
|
172
|
+
if (!this.closed) {
|
|
173
|
+
this.connect();
|
|
174
|
+
}
|
|
175
|
+
}, this.reconnectMs);
|
|
176
|
+
}
|
|
177
|
+
isConnected() {
|
|
178
|
+
return this.connected;
|
|
179
|
+
}
|
|
180
|
+
stop() {
|
|
181
|
+
this.closed = true;
|
|
182
|
+
if (this.reconnectTimer) {
|
|
183
|
+
clearTimeout(this.reconnectTimer);
|
|
184
|
+
this.reconnectTimer = null;
|
|
185
|
+
}
|
|
186
|
+
if (this.ws) {
|
|
187
|
+
try {
|
|
188
|
+
this.ws.close();
|
|
189
|
+
}
|
|
190
|
+
catch {
|
|
191
|
+
// Ignore close errors
|
|
192
|
+
}
|
|
193
|
+
this.ws = null;
|
|
194
|
+
}
|
|
195
|
+
this.connected = false;
|
|
196
|
+
this.debug('Stopped notification forwarder');
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
exports.NotificationForwarder = NotificationForwarder;
|
|
200
|
+
//# sourceMappingURL=notification-forwarder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notification-forwarder.js","sourceRoot":"","sources":["../src/notification-forwarder.ts"],"names":[],"mappings":"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"}
|
package/public/index.html
CHANGED
|
@@ -4,19 +4,7 @@
|
|
|
4
4
|
<meta charset="utf-8">
|
|
5
5
|
<title>MaYaRa Radar</title>
|
|
6
6
|
<script>
|
|
7
|
-
|
|
8
|
-
.then(r => r.json())
|
|
9
|
-
.then(data => {
|
|
10
|
-
// Replace localhost/127.0.0.1 with browser's hostname (for managed containers)
|
|
11
|
-
const url = new URL(data.url);
|
|
12
|
-
if (url.hostname === 'localhost' || url.hostname === '127.0.0.1') {
|
|
13
|
-
url.hostname = window.location.hostname;
|
|
14
|
-
}
|
|
15
|
-
window.location.href = url.href;
|
|
16
|
-
})
|
|
17
|
-
.catch(() => {
|
|
18
|
-
document.getElementById('msg').textContent = 'mayara-server not reachable. Check plugin configuration.';
|
|
19
|
-
});
|
|
7
|
+
window.location.replace('/plugins/mayara-server-signalk-plugin/gui/');
|
|
20
8
|
</script>
|
|
21
9
|
<style>
|
|
22
10
|
body { font-family: sans-serif; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background: #111; color: #ccc; }
|
|
@@ -27,7 +15,7 @@
|
|
|
27
15
|
<body>
|
|
28
16
|
<div class="box">
|
|
29
17
|
<img src="assets/mayara_logo.png" alt="MaYaRa">
|
|
30
|
-
<p id="msg">
|
|
18
|
+
<p id="msg">Opening radar UI...</p>
|
|
31
19
|
</div>
|
|
32
20
|
</body>
|
|
33
21
|
</html>
|