signalk-aiscast 0.3.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/README.md +3 -1
- package/dist/buddies.d.ts +1 -1
- package/dist/buddies.js +8 -6
- package/dist/buddies.js.map +1 -1
- package/dist/downlink.js.map +1 -1
- package/dist/identity.d.ts +3 -1
- package/dist/identity.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/link.js.map +1 -1
- package/dist/ownship.js.map +1 -1
- package/dist/uplink.d.ts +22 -1
- package/dist/uplink.js +301 -64
- package/dist/uplink.js.map +1 -1
- package/package.json +14 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.3.1
|
|
4
|
+
|
|
5
|
+
- Fixes a queue that never emptied. While the plugin was replaying a backlog to aiscast it wrote every sentence its receiver heard to a new queue file, so it traded one file for another and the replay never reached the end. On a boat that had been offline a while, the queue directory stayed at tens of thousands of files no matter how long the connection was up. A replay now carries up to a thousand sentences from as many files in one frame, and sentences heard mid-replay go out from memory.
|
|
6
|
+
- The queue keeps far fewer files. Time offline used to leave one behind every fifteen seconds; the plugin now fills each file to 500 sentences before starting another, so the count follows how much is owed rather than how long the boat was out of range.
|
|
7
|
+
- Sentences past the server's publish limit are no longer lost. aiscast accepts 6000 sentences a minute and quietly drops the rest, so a large replay used to arrive mostly empty while the plugin counted it as delivered. The plugin now paces a replay under the limit and keeps anything the server did not take.
|
|
8
|
+
|
|
3
9
|
## 0.3.0
|
|
4
10
|
|
|
5
11
|
- Buddy boats: vessels on [signalk-buddylist-plugin](https://github.com/sbender9/signalk-buddylist-plugin)'s list are followed on aiscast wherever they are, far beyond VHF range, in every receive mode. The buddylist plugin keeps raising its buddy flag and proximity alerts, so Freeboard-SK's buddy icon and phone notifications work at any distance. The status line shows how many buddies have been heard from.
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# signalk-aiscast
|
|
2
2
|
|
|
3
|
-
Signal K plugin for [aiscast](https://github.com/openwatersio/aiscast), the
|
|
3
|
+
Signal K plugin for [aiscast](https://github.com/openwatersio/aiscast), the [Open Waters](https://openwaters.io) AIS network. It does two things over one connection:
|
|
4
4
|
|
|
5
5
|
- **Share**: the plugin sends every AIS sentence your receiver hears to aiscast as it arrives (`!AIVDM` on NMEA 0183, or NMEA 2000 AIS PGNs re-encoded as sentences), so the places only boats can hear get coverage. The plugin also shares your own transponder's position (`!AIVDO`). When an AIS transponder is not available, the plugin builds class B reports from the Signal K position and marks them self-reported. Each part has its own checkbox.
|
|
6
6
|
- **Receive**: when the boat hears no AIS of its own (no receiver, receiver off, server running ashore), the plugin subscribes to aiscast around your position. It injects the traffic as Signal K targets with `$source` `signalk-aiscast.net`, so Freeboard and friends show them. `Always` mode also adds traffic beyond VHF range, and locally heard targets win.
|
|
@@ -33,6 +33,7 @@ Install [signalk-buddylist-plugin](https://github.com/sbender9/signalk-buddylist
|
|
|
33
33
|
- Buddies are followed in every receive mode, including `Off`: the whole point is traffic beyond local reception. Local reception still wins per target in `Always` mode.
|
|
34
34
|
- The buddylist plugin raises `vessels.<urn>.buddy` and its `notifications.buddy.<urn>` proximity alert the moment positions arrive, so Freeboard's buddy icon, the buddies-only filter, and phone alerts via signalk-push-notifications all work at any distance.
|
|
35
35
|
- The status line shows `buddies 2/3`: how many of the listed buddies aiscast has heard from in the last 10 minutes.
|
|
36
|
+
- aiscast caps how many MMSIs one connection may follow (50 for the plugin's own personal token). A longer list is trimmed to the lowest MMSIs that fit, so the rest are not followed until the list shrinks.
|
|
36
37
|
- A buddy only appears when some station or satellite feed hears them. Coastal coverage is good; mid-ocean gaps are real.
|
|
37
38
|
|
|
38
39
|
Without the buddylist plugin installed, there are no buddies and nothing changes.
|
|
@@ -40,6 +41,7 @@ Without the buddylist plugin installed, there are no buddies and nothing changes
|
|
|
40
41
|
## Behaviour worth knowing
|
|
41
42
|
|
|
42
43
|
- The plugin sends sentences as received, each stamped with a NMEA TAG block that carries the receive time. Anything unacknowledged, or heard while offline, waits in `<data dir>/queue/` (cap 100 MB) and replays oldest-first on reconnect. aiscast archives replayed sentences older than a minute and keeps them off the live map.
|
|
44
|
+
- A replay is paced to stay under the server's publish limit of 6000 sentences a minute, since anything past it is dropped. A long backlog therefore takes a while to clear: roughly a minute for every 5400 sentences owed, with live sending held back until it is done. The status line counts the sentences still queued.
|
|
43
45
|
- The plugin reconnects with jittered backoff (5 s → 5 min, and 30 min after a refusal) and a 60 s silence watchdog. The status line in Plugin Config shows the key prefix, send rate, queue depth, targets, and link state.
|
|
44
46
|
- Injected targets come through the server's own AIS parser, so they are shaped exactly like VHF-received ones. The server's *Maximum age of inactive vessels* setting expires them. The plugin never injects your own vessel or echoes of your own receptions, and it never publishes payloads from aiscast back to aiscast.
|
|
45
47
|
- NMEA 2000 AIS needs nothing extra. The plugin re-encodes PGNs 129038/129039/129041/129794/129809/129810 to `!AIVDM` (own ship to `!AIVDO`) and tags them `s:n2k`, since N2K carries decoded fields rather than the VHF bits. The plugin works without `signalk-n2kais-to-nmea0183` and ignores its output.
|
package/dist/buddies.d.ts
CHANGED
package/dist/buddies.js
CHANGED
|
@@ -9,7 +9,7 @@ export class Buddies {
|
|
|
9
9
|
onChange;
|
|
10
10
|
pollMs;
|
|
11
11
|
timer = null;
|
|
12
|
-
|
|
12
|
+
gen = 0; // bumped by start() and stop(): a poll still in flight from an older run cannot commit
|
|
13
13
|
last = ""; // matches the empty list, so a missing file never reports a change
|
|
14
14
|
mmsis = [];
|
|
15
15
|
constructor(file, // <config>/plugin-config-data/signalk-buddylist-plugin.json
|
|
@@ -20,16 +20,18 @@ export class Buddies {
|
|
|
20
20
|
this.pollMs = pollMs;
|
|
21
21
|
}
|
|
22
22
|
start() {
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
this.stop();
|
|
24
|
+
const gen = ++this.gen;
|
|
25
|
+
void this.poll(gen);
|
|
26
|
+
this.timer = setInterval(() => void this.poll(gen), this.pollMs);
|
|
25
27
|
}
|
|
26
28
|
stop() {
|
|
27
|
-
this.
|
|
29
|
+
this.gen++;
|
|
28
30
|
if (this.timer)
|
|
29
31
|
clearInterval(this.timer);
|
|
30
32
|
this.timer = null;
|
|
31
33
|
}
|
|
32
|
-
async poll() {
|
|
34
|
+
async poll(gen) {
|
|
33
35
|
let mmsis = [];
|
|
34
36
|
try {
|
|
35
37
|
const opts = JSON.parse(await readFile(this.file, "utf8"));
|
|
@@ -49,7 +51,7 @@ export class Buddies {
|
|
|
49
51
|
}
|
|
50
52
|
mmsis = [...new Set(mmsis)].sort((a, b) => a - b);
|
|
51
53
|
const key = mmsis.join();
|
|
52
|
-
if (this.
|
|
54
|
+
if (gen !== this.gen || key === this.last)
|
|
53
55
|
return;
|
|
54
56
|
this.last = key;
|
|
55
57
|
this.mmsis = mmsis;
|
package/dist/buddies.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buddies.js","sourceRoot":"","sources":["../src/buddies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,MAAM,CAAC,MAAM,iBAAiB,GAAG,+BAA+B,CAAC;AAEjE,4GAA4G;AAC5G,2GAA2G;AAC3G,gHAAgH;AAChH,MAAM,OAAO,OAAO;IAOC;
|
|
1
|
+
{"version":3,"file":"buddies.js","sourceRoot":"","sources":["../src/buddies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,MAAM,CAAC,MAAM,iBAAiB,GAAG,+BAA+B,CAAC;AAEjE,4GAA4G;AAC5G,2GAA2G;AAC3G,gHAAgH;AAChH,MAAM,OAAO,OAAO;IAOC,IAAI;IACJ,QAAQ;IACR,QAAQ;IACR,MAAM;IATjB,KAAK,GAA0B,IAAI,CAAC;IACpC,GAAG,GAAG,CAAC,CAAC,CAAC,uFAAuF;IAChG,IAAI,GAAG,EAAE,CAAC,CAAC,mEAAmE;IACtF,KAAK,GAAa,EAAE,CAAC;IAErB,YACmB,IAAY,EAAE,4DAA4D;IAC1E,QAAuB,EACvB,QAAmC,EACnC,MAAM,GAAG,MAAM;oBAHf,IAAI;wBACJ,QAAQ;wBACR,QAAQ;sBACR,MAAM;IACtB,CAAC;IAEJ,KAAK;QACH,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,MAAM,GAAG,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;QACvB,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACnE,CAAC;IAED,IAAI;QACF,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,IAAI,IAAI,CAAC,KAAK;YAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAEO,KAAK,CAAC,IAAI,CAAC,GAAW;QAC5B,IAAI,KAAK,GAAa,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAGxD,CAAC;YACF,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;gBAC3B,KAAK,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,IAAI,EAAE,CAAC;oBACzC,uFAAuF;qBACtF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;qBAC/D,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC;qBAC5D,GAAG,CAAC,MAAM,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,+FAA+F;YAC/F,oGAAoG;YACpG,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO;QAC/D,CAAC;QACD,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAClD,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,IAAI,CAAC,IAAI;YAAE,OAAO;QAClD,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;CACF"}
|
package/dist/downlink.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"downlink.js","sourceRoot":"","sources":["../src/downlink.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AA0B3C,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,+CAA+C;AAC3E,MAAM,oBAAoB,GAAG,IAAI,CAAC,CAAC,2DAA2D;AAC9F,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,4EAA4E;AACrG,MAAM,UAAU,GAAG,EAAE,GAAG,MAAM,CAAC;AAQ/B,2GAA2G;AAC3G,2GAA2G;AAC3G,MAAM,OAAO,QAAQ;IAgBA;
|
|
1
|
+
{"version":3,"file":"downlink.js","sourceRoot":"","sources":["../src/downlink.ts"],"names":[],"mappings":"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"}
|
package/dist/identity.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type webcrypto } from "node:crypto";
|
|
2
|
+
type JsonWebKey = webcrypto.JsonWebKey;
|
|
2
3
|
export interface Identity {
|
|
3
4
|
pubkey: string;
|
|
4
5
|
jwk: JsonWebKey;
|
|
@@ -13,3 +14,4 @@ export interface Token {
|
|
|
13
14
|
export declare function loadToken(dir: string, server: string, pubkey: string, now?: number): Promise<Token>;
|
|
14
15
|
export declare function forgetToken(dir: string): Promise<void>;
|
|
15
16
|
export declare function mintToken(server: string, pubkey: string): Promise<Token>;
|
|
17
|
+
export {};
|
package/dist/identity.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -226,7 +226,7 @@ export default function (app) {
|
|
|
226
226
|
else if (/bbox/.test(message)) {
|
|
227
227
|
reportError(`aiscast refused the subscription: ${message} (reduce the radius)`);
|
|
228
228
|
}
|
|
229
|
-
else if (/mmsi
|
|
229
|
+
else if (/mmsi/i.test(message)) {
|
|
230
230
|
reportError(`aiscast refused the buddy list: ${message} (trim the buddy list)`);
|
|
231
231
|
}
|
|
232
232
|
else {
|
package/dist/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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"}
|
package/dist/link.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link.js","sourceRoot":"","sources":["../src/link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,SAAS,MAAM,IAAI,CAAC;AAc3B,MAAM,WAAW,GAAG,KAAK,CAAC;AAC1B,MAAM,WAAW,GAAG,CAAC,GAAG,MAAM,CAAC;AAC/B,MAAM,eAAe,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,sDAAsD;AAC3F,MAAM,UAAU,GAAG,MAAM,CAAC;AAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,0EAA0E;AAElG,gGAAgG;AAChG,iHAAiH;AACjH,MAAM,OAAO,IAAK,SAAQ,YAAwB;IAU7B;
|
|
1
|
+
{"version":3,"file":"link.js","sourceRoot":"","sources":["../src/link.ts"],"names":[],"mappings":"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"}
|
package/dist/ownship.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ownship.js","sourceRoot":"","sources":["../src/ownship.ts"],"names":[],"mappings":"AAGA,OAAO,SAAS,MAAM,WAAW,CAAC;AAElC,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC,CAAC,wCAAwC;AAEzE,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC;AACjC,MAAM,YAAY,GAAG,MAAM,CAAC;AAC5B,MAAM,YAAY,GAAG,CAAC,GAAG,MAAM,CAAC;AAChC,MAAM,iBAAiB,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,8EAA8E;AACpH,8FAA8F;AAC9F,MAAM,SAAS,GAAG,KAAK,CAAC;AACxB,MAAM,UAAU,GAAG,GAAG,CAAC;AACvB,MAAM,MAAM,GAAG,GAAG,CAAC;AAOnB,MAAM,UAAU,WAAW,CAAC,GAAc;IACxC,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC,qBAAqB,CAAgD,CAAC;IAChG,MAAM,CAAC,GAAG,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAA0B,CAAC;IACpE,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACzF,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI;QAAE,OAAO,IAAI,CAAC,CAAC,cAAc;IAC5F,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,OAAO,OAAO;IAQC;
|
|
1
|
+
{"version":3,"file":"ownship.js","sourceRoot":"","sources":["../src/ownship.ts"],"names":[],"mappings":"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"}
|
package/dist/uplink.d.ts
CHANGED
|
@@ -15,9 +15,20 @@ export declare class Uplink {
|
|
|
15
15
|
private liveScheduled;
|
|
16
16
|
private draining;
|
|
17
17
|
private drainAgain;
|
|
18
|
+
private stopped;
|
|
18
19
|
private flushTimer;
|
|
19
20
|
private ackTimer;
|
|
21
|
+
private capTimer;
|
|
20
22
|
private seen;
|
|
23
|
+
private listing;
|
|
24
|
+
private sizes;
|
|
25
|
+
private bytes;
|
|
26
|
+
private lastName;
|
|
27
|
+
private limits;
|
|
28
|
+
private paceUntil;
|
|
29
|
+
private paceWake;
|
|
30
|
+
private queueOp;
|
|
31
|
+
private drainDone;
|
|
21
32
|
private readonly dir;
|
|
22
33
|
private readonly onOpen;
|
|
23
34
|
private readonly onClose;
|
|
@@ -30,15 +41,25 @@ export declare class Uplink {
|
|
|
30
41
|
hear(sentence: string, now?: number, source?: string): void;
|
|
31
42
|
private sendLive;
|
|
32
43
|
private sendFrame;
|
|
44
|
+
private frame;
|
|
33
45
|
private ack;
|
|
34
46
|
private checkAcks;
|
|
35
47
|
private requeueInFlight;
|
|
48
|
+
private exclusive;
|
|
36
49
|
private flush;
|
|
37
|
-
private
|
|
50
|
+
private flushOnce;
|
|
51
|
+
private write;
|
|
52
|
+
private remove;
|
|
53
|
+
private measure;
|
|
54
|
+
private newName;
|
|
38
55
|
private readQueueFile;
|
|
39
56
|
private countQueued;
|
|
40
57
|
private enforceCap;
|
|
58
|
+
private trim;
|
|
41
59
|
private drain;
|
|
42
60
|
private drainLoop;
|
|
61
|
+
private nextBatch;
|
|
62
|
+
private keep;
|
|
63
|
+
private publish;
|
|
43
64
|
private pruneSeen;
|
|
44
65
|
}
|
package/dist/uplink.js
CHANGED
|
@@ -1,12 +1,19 @@
|
|
|
1
|
-
import { mkdir, readdir, readFile, stat, unlink, writeFile } from "node:fs/promises";
|
|
1
|
+
import { mkdir, readdir, readFile, rename, stat, unlink, writeFile } from "node:fs/promises";
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { payloadKey, tagged } from "./nmea.js";
|
|
4
4
|
const ACK_TIMEOUT = 30_000;
|
|
5
5
|
const FLUSH_EVERY = 15_000; // in-memory backlog to disk; a crash loses at most this much
|
|
6
|
-
const FILE_MAX = 500; // sentences per queue file
|
|
6
|
+
const FILE_MAX = 500; // sentences per queue file
|
|
7
7
|
const QUEUE_MAX_BYTES = 100 * 1024 * 1024;
|
|
8
|
+
const CAP_EVERY = 60_000;
|
|
8
9
|
const SEEN_TTL = 5 * 60_000; // payloads received from aiscast are never published back within this window
|
|
9
10
|
const SEEN_MAX = 20_000;
|
|
11
|
+
const READ_BATCH = 32; // queue files read at once at start; the disk is usually an SD card
|
|
12
|
+
// The server's publish limits, until a welcome frame gives this station's own. A frame is truncated to
|
|
13
|
+
// `frame`, and anything past `perMin` is dropped and still acked, so both have to be respected here.
|
|
14
|
+
const DEFAULT_LIMITS = { frame: 1000, perMin: 6000 };
|
|
15
|
+
const PACE_MARGIN = 0.9; // of the per-minute limit: clock skew and jitter must not push a frame over it
|
|
16
|
+
const LIMIT_WINDOW = 60_000; // the server's publish limit resets on a window this long
|
|
10
17
|
// Sends received sentences to aiscast as they arrive; anything not acked, or heard while offline, waits on disk
|
|
11
18
|
// and is replayed oldest-first on the next connection before live sending resumes.
|
|
12
19
|
export class Uplink {
|
|
@@ -19,13 +26,27 @@ export class Uplink {
|
|
|
19
26
|
liveScheduled = false;
|
|
20
27
|
draining = false;
|
|
21
28
|
drainAgain = false;
|
|
29
|
+
stopped = false;
|
|
22
30
|
flushTimer = null;
|
|
23
31
|
ackTimer = null;
|
|
32
|
+
capTimer = null;
|
|
24
33
|
seen = new Map();
|
|
34
|
+
listing = []; // queue file names, oldest first; the drain works from this, not readdir
|
|
35
|
+
sizes = new Map(); // bytes per queue file, kept up to date as files come and go
|
|
36
|
+
bytes = 0;
|
|
37
|
+
lastName = 0;
|
|
38
|
+
limits = { ...DEFAULT_LIMITS };
|
|
39
|
+
paceUntil = 0;
|
|
40
|
+
paceWake = null;
|
|
41
|
+
queueOp = Promise.resolve();
|
|
42
|
+
drainDone = null;
|
|
25
43
|
dir;
|
|
26
44
|
onOpen = () => this.drain();
|
|
27
|
-
onClose = () =>
|
|
28
|
-
|
|
45
|
+
onClose = () => {
|
|
46
|
+
this.requeueInFlight("socket closed");
|
|
47
|
+
this.paceWake?.(); // the deadline stands; only the sleep ends, so the reconnect drain starts on time
|
|
48
|
+
};
|
|
49
|
+
onFrame = (f) => this.frame(f);
|
|
29
50
|
stats = { sent: 0, queued: 0, dropped: 0, inFlight: 0 };
|
|
30
51
|
constructor(link, dataDir, log = () => { }) {
|
|
31
52
|
this.link = link;
|
|
@@ -33,24 +54,35 @@ export class Uplink {
|
|
|
33
54
|
this.dir = join(dataDir, "queue");
|
|
34
55
|
}
|
|
35
56
|
async start() {
|
|
57
|
+
this.stopped = false;
|
|
36
58
|
await mkdir(this.dir, { recursive: true });
|
|
59
|
+
this.listing = (await readdir(this.dir)).filter((f) => f.endsWith(".json")).sort();
|
|
60
|
+
this.lastName = Number(this.listing.at(-1)?.slice(0, -".json".length)) || 0;
|
|
61
|
+
await this.measure();
|
|
37
62
|
this.stats.queued = await this.countQueued();
|
|
38
63
|
this.link.on("open", this.onOpen);
|
|
39
64
|
this.link.on("close", this.onClose);
|
|
40
65
|
this.link.on("frame", this.onFrame);
|
|
41
66
|
this.flushTimer = setInterval(() => this.flush(), FLUSH_EVERY);
|
|
42
67
|
this.ackTimer = setInterval(() => this.checkAcks(), 5_000);
|
|
68
|
+
this.capTimer = setInterval(() => {
|
|
69
|
+
this.enforceCap().catch((err) => this.log(`queue cap: ${err.message}`));
|
|
70
|
+
}, CAP_EVERY);
|
|
43
71
|
}
|
|
44
72
|
async stop() {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
this.flushTimer = this.ackTimer = null;
|
|
73
|
+
this.stopped = true;
|
|
74
|
+
for (const t of [this.flushTimer, this.ackTimer, this.capTimer])
|
|
75
|
+
if (t)
|
|
76
|
+
clearInterval(t);
|
|
77
|
+
this.flushTimer = this.ackTimer = this.capTimer = null;
|
|
50
78
|
this.link.off("open", this.onOpen);
|
|
51
79
|
this.link.off("close", this.onClose);
|
|
52
80
|
this.link.off("frame", this.onFrame);
|
|
81
|
+
// Settle the drain before flushing: it hands back the frame it was sending, and a drain sitting out the
|
|
82
|
+
// publish limit must not hold up plugin stop for the rest of that minute.
|
|
53
83
|
this.requeueInFlight("stopping");
|
|
84
|
+
this.paceWake?.();
|
|
85
|
+
await this.drainDone;
|
|
54
86
|
this.backlog.unshift(...this.pendingLive);
|
|
55
87
|
this.stats.queued += this.pendingLive.length;
|
|
56
88
|
this.pendingLive = [];
|
|
@@ -93,30 +125,59 @@ export class Uplink {
|
|
|
93
125
|
this.pendingLive = [];
|
|
94
126
|
if (sentences.length === 0)
|
|
95
127
|
return;
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
128
|
+
// Split at the frame limit: over it the server silently keeps the first `frame` sentences and acks
|
|
129
|
+
// short, which would read here as the per-minute limit and stall live sending for a minute.
|
|
130
|
+
for (let i = 0; i < sentences.length; i += this.limits.frame) {
|
|
131
|
+
if (!this.sendFrame(sentences.slice(i, i + this.limits.frame), false)) {
|
|
132
|
+
this.backlog.push(...sentences.slice(i));
|
|
133
|
+
this.stats.queued += sentences.length - i;
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
99
136
|
}
|
|
100
137
|
}
|
|
101
|
-
sendFrame(sentences,
|
|
138
|
+
sendFrame(sentences, replay, settle) {
|
|
102
139
|
const frame = { type: "publish", nmea: sentences };
|
|
103
|
-
if (
|
|
140
|
+
if (replay)
|
|
104
141
|
frame.replay = true; // aiscast archives stale replayed sentences without emitting them live
|
|
105
142
|
if (!this.link.send(frame))
|
|
106
143
|
return false;
|
|
107
|
-
this.inflight.push({ sentences, at: Date.now(),
|
|
144
|
+
this.inflight.push({ sentences, at: Date.now(), replay, settle });
|
|
108
145
|
this.stats.inFlight = this.inflight.length;
|
|
109
146
|
return true;
|
|
110
147
|
}
|
|
111
|
-
|
|
112
|
-
if (f.type
|
|
148
|
+
frame(f) {
|
|
149
|
+
if (f.type === "welcome") {
|
|
150
|
+
const lim = f.limits;
|
|
151
|
+
if (typeof lim?.publish_frame === "number" && lim.publish_frame > 0)
|
|
152
|
+
this.limits.frame = lim.publish_frame;
|
|
153
|
+
if (typeof lim?.publish_per_min === "number" && lim.publish_per_min > 0)
|
|
154
|
+
this.limits.perMin = lim.publish_per_min;
|
|
113
155
|
return;
|
|
156
|
+
}
|
|
157
|
+
if (f.type === "ack")
|
|
158
|
+
this.ack(f);
|
|
159
|
+
}
|
|
160
|
+
// The ack carries the number of sentences the server took. A short count means the rest ran into the
|
|
161
|
+
// per-minute publish limit and were dropped, so they go back on the queue instead of counting as sent.
|
|
162
|
+
ack(f) {
|
|
114
163
|
const head = this.inflight.shift();
|
|
115
164
|
this.stats.inFlight = this.inflight.length;
|
|
116
165
|
if (!head)
|
|
117
166
|
return;
|
|
118
|
-
|
|
119
|
-
|
|
167
|
+
const n = typeof f.n === "number" ? Math.max(0, Math.min(f.n, head.sentences.length)) : head.sentences.length;
|
|
168
|
+
this.stats.sent += n;
|
|
169
|
+
if (head.settle) {
|
|
170
|
+
head.settle(n);
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
const rest = head.sentences.slice(n);
|
|
174
|
+
if (rest.length === 0)
|
|
175
|
+
return;
|
|
176
|
+
this.log(`publish limit: ${rest.length} sentences back to the queue`);
|
|
177
|
+
this.backlog.unshift(...rest);
|
|
178
|
+
this.stats.queued += rest.length;
|
|
179
|
+
this.paceUntil = Date.now() + LIMIT_WINDOW;
|
|
180
|
+
this.drain(); // live sending is blocked until the backlog is empty again; only a drain empties it
|
|
120
181
|
}
|
|
121
182
|
checkAcks() {
|
|
122
183
|
const head = this.inflight[0];
|
|
@@ -131,8 +192,8 @@ export class Uplink {
|
|
|
131
192
|
return;
|
|
132
193
|
const live = [];
|
|
133
194
|
for (const f of this.inflight) {
|
|
134
|
-
if (f.
|
|
135
|
-
f.settle?.(
|
|
195
|
+
if (f.replay)
|
|
196
|
+
f.settle?.(null);
|
|
136
197
|
else
|
|
137
198
|
live.push(...f.sentences);
|
|
138
199
|
}
|
|
@@ -144,25 +205,94 @@ export class Uplink {
|
|
|
144
205
|
this.stats.queued += live.length;
|
|
145
206
|
}
|
|
146
207
|
}
|
|
147
|
-
//
|
|
148
|
-
//
|
|
149
|
-
|
|
208
|
+
// Queue-file work runs one operation at a time, in order. The flush timer, the drain and the cap check all
|
|
209
|
+
// mutate the same directory and the same listing, and every one of them awaits partway through: without
|
|
210
|
+
// this, a flush could top up a file the drain had already read and was about to delete.
|
|
211
|
+
exclusive(work) {
|
|
212
|
+
const run = this.queueOp.then(work);
|
|
213
|
+
this.queueOp = run.then(() => { }, () => { });
|
|
214
|
+
return run;
|
|
215
|
+
}
|
|
216
|
+
flush() {
|
|
217
|
+
return this.exclusive(() => this.flushOnce()).catch(() => { });
|
|
218
|
+
}
|
|
219
|
+
// Backlog → the newest queue file while it has room, then files of FILE_MAX. Topping up is what keeps a
|
|
220
|
+
// long offline stretch from leaving a file behind every fifteen seconds: the count follows the sentences
|
|
221
|
+
// owed, not the time spent offline. Never throws: a full or read-only disk must not take the Signal K
|
|
222
|
+
// process down, so whatever is not on disk yet stays in the backlog and is retried next time.
|
|
223
|
+
async flushOnce() {
|
|
150
224
|
if (this.backlog.length === 0)
|
|
151
225
|
return;
|
|
152
226
|
const sentences = this.backlog;
|
|
153
227
|
this.backlog = [];
|
|
228
|
+
const tail = this.listing.at(-1);
|
|
229
|
+
const room = tail ? await this.readQueueFile(tail) : null;
|
|
230
|
+
const topUp = room !== null && room.length < FILE_MAX;
|
|
231
|
+
const pending = topUp ? room.concat(sentences) : sentences;
|
|
232
|
+
const onDisk = topUp ? room.length : 0; // the tail's own sentences, already safe, at the front of pending
|
|
233
|
+
for (let i = 0; i < pending.length; i += FILE_MAX) {
|
|
234
|
+
const name = i === 0 && topUp ? tail : this.newName();
|
|
235
|
+
if (!(await this.write(name, pending.slice(i, i + FILE_MAX)))) {
|
|
236
|
+
this.backlog.unshift(...pending.slice(Math.max(i, onDisk))); // keep what did not land, oldest first
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
239
|
+
if (name !== tail)
|
|
240
|
+
this.listing.push(name); // newest name sorts last, so appending keeps the order
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
// One queue file, written whole. The temp file keeps a half-written array from ever being picked up: the
|
|
244
|
+
// listing only takes .json, and rename is atomic.
|
|
245
|
+
async write(name, sentences) {
|
|
246
|
+
const path = join(this.dir, name);
|
|
247
|
+
const tmp = `${path}.tmp`;
|
|
248
|
+
const data = JSON.stringify(sentences);
|
|
154
249
|
try {
|
|
155
|
-
await writeFile(
|
|
250
|
+
await writeFile(tmp, data);
|
|
251
|
+
await rename(tmp, path);
|
|
156
252
|
}
|
|
157
253
|
catch (err) {
|
|
158
254
|
this.log(`queue write failed: ${err.message}`);
|
|
159
|
-
|
|
160
|
-
return;
|
|
255
|
+
await unlink(tmp).catch(() => { });
|
|
256
|
+
return false;
|
|
257
|
+
}
|
|
258
|
+
const size = Buffer.byteLength(data);
|
|
259
|
+
this.bytes += size - (this.sizes.get(name) ?? 0);
|
|
260
|
+
this.sizes.set(name, size);
|
|
261
|
+
return true;
|
|
262
|
+
}
|
|
263
|
+
// Deletes a queue file. False when it would not go: the caller leaves it on the listing rather than
|
|
264
|
+
// stranding a file on disk that nothing will look at again until the next start.
|
|
265
|
+
async remove(name) {
|
|
266
|
+
try {
|
|
267
|
+
await unlink(join(this.dir, name));
|
|
268
|
+
}
|
|
269
|
+
catch (err) {
|
|
270
|
+
this.log(`queue delete failed: ${err.message}`);
|
|
271
|
+
return false;
|
|
272
|
+
}
|
|
273
|
+
this.bytes -= this.sizes.get(name) ?? 0;
|
|
274
|
+
this.sizes.delete(name);
|
|
275
|
+
return true;
|
|
276
|
+
}
|
|
277
|
+
// Queue size on disk, measured once at start. Batched: a backlog of many thousands of files must not put
|
|
278
|
+
// that many requests in flight at once.
|
|
279
|
+
async measure() {
|
|
280
|
+
this.sizes.clear();
|
|
281
|
+
this.bytes = 0;
|
|
282
|
+
for (let i = 0; i < this.listing.length; i += READ_BATCH) {
|
|
283
|
+
const batch = this.listing.slice(i, i + READ_BATCH);
|
|
284
|
+
const sizes = await Promise.all(batch.map((f) => stat(join(this.dir, f)).then((x) => x.size, () => 0)));
|
|
285
|
+
sizes.forEach((size, j) => {
|
|
286
|
+
this.sizes.set(batch[j], size);
|
|
287
|
+
this.bytes += size;
|
|
288
|
+
});
|
|
161
289
|
}
|
|
162
|
-
await this.enforceCap().catch((err) => this.log(`queue cap: ${err.message}`));
|
|
163
290
|
}
|
|
164
|
-
|
|
165
|
-
|
|
291
|
+
// Monotonic, so a file written in the same millisecond as the last one cannot take its name.
|
|
292
|
+
newName() {
|
|
293
|
+
const now = Date.now();
|
|
294
|
+
this.lastName = now > this.lastName ? now : this.lastName + 1;
|
|
295
|
+
return `${this.lastName}.json`;
|
|
166
296
|
}
|
|
167
297
|
async readQueueFile(name) {
|
|
168
298
|
try {
|
|
@@ -173,30 +303,49 @@ export class Uplink {
|
|
|
173
303
|
return null;
|
|
174
304
|
}
|
|
175
305
|
}
|
|
306
|
+
// Sentences already on disk, for the status line. Read in batches: a backlog of many thousands of files
|
|
307
|
+
// would otherwise hold up plugin start one open() at a time.
|
|
176
308
|
async countQueued() {
|
|
177
309
|
let n = 0;
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
310
|
+
const bad = new Set();
|
|
311
|
+
for (let i = 0; i < this.listing.length; i += READ_BATCH) {
|
|
312
|
+
const batch = this.listing.slice(i, i + READ_BATCH);
|
|
313
|
+
const read = await Promise.all(batch.map((f) => this.readQueueFile(f)));
|
|
314
|
+
read.forEach((sentences, j) => {
|
|
315
|
+
if (sentences)
|
|
316
|
+
n += sentences.length;
|
|
317
|
+
else
|
|
318
|
+
bad.add(batch[j]);
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
for (const f of bad) {
|
|
322
|
+
if (!(await this.remove(f)))
|
|
323
|
+
bad.delete(f); // still on disk: keep it listed rather than lose track of it
|
|
184
324
|
}
|
|
325
|
+
if (bad.size > 0)
|
|
326
|
+
this.listing = this.listing.filter((f) => !bad.has(f));
|
|
185
327
|
return n;
|
|
186
328
|
}
|
|
329
|
+
// Oldest files go when the queue outgrows its cap. This runs during a drain as well: a replay is paced,
|
|
330
|
+
// so a receiver busy enough to outrun it would otherwise grow the queue past the cap unchecked.
|
|
187
331
|
async enforceCap() {
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
332
|
+
if (this.bytes <= QUEUE_MAX_BYTES)
|
|
333
|
+
return; // the running total, so an idle tick touches no files at all
|
|
334
|
+
await this.exclusive(() => this.trim());
|
|
335
|
+
}
|
|
336
|
+
async trim() {
|
|
337
|
+
let i = 0;
|
|
338
|
+
for (; i < this.listing.length && this.bytes > QUEUE_MAX_BYTES; i++) {
|
|
339
|
+
const name = this.listing[i];
|
|
340
|
+
const n = (await this.readQueueFile(name))?.length ?? 0;
|
|
341
|
+
if (!(await this.remove(name)))
|
|
342
|
+
break; // leave it listed: a file nothing can see is a file nothing frees
|
|
195
343
|
this.stats.dropped += n;
|
|
196
344
|
this.stats.queued -= n;
|
|
197
345
|
}
|
|
346
|
+
this.listing.splice(0, i);
|
|
198
347
|
}
|
|
199
|
-
// Replay
|
|
348
|
+
// Replay the queue oldest-first, one frame in flight, then let live sending resume. A drain that is cut
|
|
200
349
|
// short (socket closed, ack timeout) leaves the unacked remainder on disk for the next open.
|
|
201
350
|
drain() {
|
|
202
351
|
if (this.draining) {
|
|
@@ -205,41 +354,129 @@ export class Uplink {
|
|
|
205
354
|
}
|
|
206
355
|
this.draining = true;
|
|
207
356
|
this.drainAgain = false;
|
|
208
|
-
this.drainLoop()
|
|
357
|
+
this.drainDone = this.drainLoop()
|
|
209
358
|
.catch((err) => this.log(`drain failed: ${err.message}`))
|
|
210
359
|
.finally(() => {
|
|
211
360
|
this.draining = false;
|
|
361
|
+
this.drainDone = null;
|
|
212
362
|
if (this.drainAgain && this.link.open)
|
|
213
363
|
this.drain();
|
|
214
364
|
});
|
|
215
365
|
}
|
|
216
366
|
async drainLoop() {
|
|
217
367
|
for (;;) {
|
|
218
|
-
|
|
219
|
-
const [next] = await this.files();
|
|
220
|
-
if (!next)
|
|
368
|
+
if (this.stopped)
|
|
221
369
|
return;
|
|
222
|
-
const
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
370
|
+
const batch = await this.exclusive(() => this.nextBatch());
|
|
371
|
+
if (!batch) {
|
|
372
|
+
if (this.backlog.length === 0)
|
|
373
|
+
return; // disk and memory both empty: live sending resumes
|
|
374
|
+
// Sentences heard during the drain go out straight from memory. Writing them to a file only to read
|
|
375
|
+
// it back would hand the drain a fresh file on every pass, and it would never reach the end.
|
|
376
|
+
const chunk = this.backlog.splice(0, this.limits.frame);
|
|
377
|
+
const accepted = await this.publish(chunk);
|
|
378
|
+
if (accepted === null) {
|
|
379
|
+
this.backlog.unshift(...chunk);
|
|
380
|
+
return;
|
|
381
|
+
}
|
|
382
|
+
this.stats.queued -= accepted;
|
|
383
|
+
this.backlog.unshift(...chunk.slice(accepted));
|
|
226
384
|
continue;
|
|
227
385
|
}
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
386
|
+
const chunk = batch.sentences.slice(0, this.limits.frame);
|
|
387
|
+
const accepted = await this.publish(chunk);
|
|
388
|
+
// Nothing acked, or the remainder would not write: the files are as they were on disk, so hand them
|
|
389
|
+
// straight back to the next drain.
|
|
390
|
+
const kept = accepted !== null && (await this.exclusive(() => this.keep(batch, accepted)));
|
|
391
|
+
if (accepted === null || !kept) {
|
|
392
|
+
this.listing.unshift(...batch.files.map((f) => f.name));
|
|
393
|
+
return;
|
|
394
|
+
}
|
|
395
|
+
this.stats.queued -= accepted;
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
// The oldest queued sentences, up to one frame's worth, and the files they came from. Spanning several
|
|
399
|
+
// files per frame is what lets a backlog of thousands of small files drain in batches rather than one
|
|
400
|
+
// round trip each.
|
|
401
|
+
async nextBatch() {
|
|
402
|
+
const sentences = [];
|
|
403
|
+
const files = [];
|
|
404
|
+
while (this.listing.length > 0 && sentences.length < this.limits.frame) {
|
|
405
|
+
const names = this.listing.slice(0, READ_BATCH); // read ahead: one open() at a time crawls on an SD card
|
|
406
|
+
const read = await Promise.all(names.map((f) => this.readQueueFile(f)));
|
|
407
|
+
let taken = 0;
|
|
408
|
+
for (const queued of read) {
|
|
409
|
+
if (!queued) {
|
|
410
|
+
const name = names[taken];
|
|
411
|
+
if (!(await this.remove(name)))
|
|
412
|
+
return files.length > 0 ? { sentences, files } : null;
|
|
413
|
+
taken++;
|
|
414
|
+
continue;
|
|
238
415
|
}
|
|
239
|
-
|
|
416
|
+
// One oversized file still goes on its own; `keep` puts back whatever the frame did not cover.
|
|
417
|
+
if (files.length > 0 && sentences.length + queued.length > this.limits.frame)
|
|
418
|
+
break;
|
|
419
|
+
sentences.push(...queued);
|
|
420
|
+
files.push({ name: names[taken++], count: queued.length });
|
|
421
|
+
if (sentences.length >= this.limits.frame)
|
|
422
|
+
break;
|
|
240
423
|
}
|
|
241
|
-
|
|
424
|
+
this.listing.splice(0, taken);
|
|
425
|
+
if (taken < names.length)
|
|
426
|
+
break; // stopped short: the frame is full
|
|
427
|
+
}
|
|
428
|
+
return files.length > 0 ? { sentences, files } : null;
|
|
429
|
+
}
|
|
430
|
+
// Settles the files a frame came from against what the server actually took. Files it took whole are
|
|
431
|
+
// deleted; the one the ack stopped inside is rewritten with its own remaining tail, and the files after it
|
|
432
|
+
// are already right on disk and only go back on the listing. So only ever one file is rewritten, and it
|
|
433
|
+
// can only shrink: a rate-limited replay cannot pile a whole frame into a single file. False when that
|
|
434
|
+
// rewrite failed, in which case nothing was deleted and the caller puts every file back.
|
|
435
|
+
async keep(batch, accepted) {
|
|
436
|
+
let start = 0; // where the file at `i` begins within batch.sentences
|
|
437
|
+
let i = 0;
|
|
438
|
+
while (i < batch.files.length && start + batch.files[i].count <= accepted) {
|
|
439
|
+
start += batch.files[i].count;
|
|
440
|
+
i++;
|
|
441
|
+
}
|
|
442
|
+
if (i < batch.files.length && accepted > start) {
|
|
443
|
+
const tail = batch.sentences.slice(accepted, start + batch.files[i].count);
|
|
444
|
+
if (!(await this.write(batch.files[i].name, tail)))
|
|
445
|
+
return false;
|
|
446
|
+
}
|
|
447
|
+
this.listing.unshift(...batch.files.slice(i).map((f) => f.name));
|
|
448
|
+
for (const f of batch.files.slice(0, i)) {
|
|
449
|
+
// A file the server has taken but that will not delete is left where it is rather than put back on the
|
|
450
|
+
// listing: re-sending it forever is worse than the duplicate the next start makes, which aiscast drops.
|
|
451
|
+
await this.remove(f.name);
|
|
242
452
|
}
|
|
453
|
+
return true;
|
|
454
|
+
}
|
|
455
|
+
// One publish frame, paced to stay under the server's per-minute limit: sentences past it are dropped
|
|
456
|
+
// and acked all the same, so an unpaced replay loses most of the backlog it is trying to deliver.
|
|
457
|
+
// Resolves with the number of sentences the server took, or null if it never acked.
|
|
458
|
+
async publish(chunk) {
|
|
459
|
+
if (this.stopped || !this.link.open)
|
|
460
|
+
return null; // before the wait: a sleep stop() cannot see holds it up
|
|
461
|
+
const wait = this.paceUntil - Date.now();
|
|
462
|
+
if (wait > 0) {
|
|
463
|
+
await new Promise((resolve) => {
|
|
464
|
+
this.paceWake = resolve;
|
|
465
|
+
setTimeout(resolve, wait).unref();
|
|
466
|
+
});
|
|
467
|
+
this.paceWake = null;
|
|
468
|
+
}
|
|
469
|
+
if (this.stopped || !this.link.open)
|
|
470
|
+
return null;
|
|
471
|
+
this.paceUntil = Date.now() + Math.ceil((chunk.length * 60_000) / (this.limits.perMin * PACE_MARGIN));
|
|
472
|
+
const accepted = await new Promise((resolve) => {
|
|
473
|
+
if (!this.sendFrame(chunk, true, resolve))
|
|
474
|
+
resolve(null);
|
|
475
|
+
});
|
|
476
|
+
// Short ack: this minute's allowance is spent, so wait out the window rather than burn the rest there.
|
|
477
|
+
if (accepted !== null && accepted < chunk.length)
|
|
478
|
+
this.paceUntil = Date.now() + LIMIT_WINDOW;
|
|
479
|
+
return accepted;
|
|
243
480
|
}
|
|
244
481
|
pruneSeen(now) {
|
|
245
482
|
for (const [k, exp] of this.seen)
|
package/dist/uplink.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uplink.js","sourceRoot":"","sources":["../src/uplink.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"uplink.js","sourceRoot":"","sources":["../src/uplink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7F,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAE/C,MAAM,WAAW,GAAG,MAAM,CAAC;AAC3B,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,6DAA6D;AACzF,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,2BAA2B;AACjD,MAAM,eAAe,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;AAC1C,MAAM,SAAS,GAAG,MAAM,CAAC;AACzB,MAAM,QAAQ,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,6EAA6E;AAC1G,MAAM,QAAQ,GAAG,MAAM,CAAC;AACxB,MAAM,UAAU,GAAG,EAAE,CAAC,CAAC,oEAAoE;AAC3F,uGAAuG;AACvG,qGAAqG;AACrG,MAAM,cAAc,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACrD,MAAM,WAAW,GAAG,GAAG,CAAC,CAAC,+EAA+E;AACxG,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,0DAA0D;AAsBvF,gHAAgH;AAChH,mFAAmF;AACnF,MAAM,OAAO,MAAM;IAgCE,IAAI;IAEJ,GAAG;IAjCtB,OAAO,GAAG,IAAI,CAAC,CAAC,yEAAyE;IACjF,OAAO,GAAa,EAAE,CAAC;IACvB,QAAQ,GAAe,EAAE,CAAC;IAC1B,WAAW,GAAa,EAAE,CAAC;IAC3B,aAAa,GAAG,KAAK,CAAC;IACtB,QAAQ,GAAG,KAAK,CAAC;IACjB,UAAU,GAAG,KAAK,CAAC;IACnB,OAAO,GAAG,KAAK,CAAC;IAChB,UAAU,GAA0B,IAAI,CAAC;IACzC,QAAQ,GAA0B,IAAI,CAAC;IACvC,QAAQ,GAA0B,IAAI,CAAC;IACvC,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IACjC,OAAO,GAAa,EAAE,CAAC,CAAC,yEAAyE;IACjG,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAC,6DAA6D;IAChG,KAAK,GAAG,CAAC,CAAC;IACV,QAAQ,GAAG,CAAC,CAAC;IACb,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,CAAC;IAC/B,SAAS,GAAG,CAAC,CAAC;IACd,QAAQ,GAAwB,IAAI,CAAC;IACrC,OAAO,GAAqB,OAAO,CAAC,OAAO,EAAE,CAAC;IAC9C,SAAS,GAAyB,IAAI,CAAC;IAC9B,GAAG,CAAS;IACZ,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAC5B,OAAO,GAAG,GAAG,EAAE;QAC9B,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;QACtC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,kFAAkF;IACvG,CAAC,CAAC;IACe,OAAO,GAAG,CAAC,CAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvD,KAAK,GAAgB,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAErE,YACmB,IAAU,EAC3B,OAAe,EACE,GAAG,GAA0B,GAAG,EAAE,GAAE,CAAC;oBAFrC,IAAI;mBAEJ,GAAG;QAEpB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACnF,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5E,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,WAAW,CAAC,CAAC;QAC/D,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,KAAK,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;YAC/B,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,cAAe,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACrF,CAAC,EAAE,SAAS,CAAC,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC;YAAE,IAAI,CAAC;gBAAE,aAAa,CAAC,CAAC,CAAC,CAAC;QACzF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACrC,wGAAwG;QACxG,0EAA0E;QAC1E,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QACjC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;QAClB,MAAM,IAAI,CAAC,SAAS,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;QAC7C,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,iGAAiG;IACjG,YAAY,CAAC,QAAgB,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;QAC7C,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ;YAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,+EAA+E;IAC/E,IAAI,CAAC,QAAgB,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,MAAe;QACtD,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,IAAI,GAAG,GAAG,GAAG;gBAAE,OAAO;YACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAC3C,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACxB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,YAAY,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,QAAQ;gBAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QACpD,CAAC;IACH,CAAC;IAEO,QAAQ;QACd,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACnC,mGAAmG;QACnG,4FAA4F;QAC5F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC7D,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;gBACtE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC1C,OAAO;YACT,CAAC;QACH,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,SAAmB,EAAE,MAAe,EAAE,MAA0C;QAChG,MAAM,KAAK,GAAU,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC1D,IAAI,MAAM;YAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,uEAAuE;QACxG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACzC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,CAAQ;QACpB,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,GAAG,GAAI,CAAuE,CAAC,MAAM,CAAC;YAC5F,IAAI,OAAO,GAAG,EAAE,aAAa,KAAK,QAAQ,IAAI,GAAG,CAAC,aAAa,GAAG,CAAC;gBAAE,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC;YAC3G,IAAI,OAAO,GAAG,EAAE,eAAe,KAAK,QAAQ,IAAI,GAAG,CAAC,eAAe,GAAG,CAAC;gBAAE,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,eAAe,CAAC;YAClH,OAAO;QACT,CAAC;QACD,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK;YAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,qGAAqG;IACrG,uGAAuG;IAC/F,GAAG,CAAC,CAAQ;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC3C,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QAC9G,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;QACrB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACf,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC9B,IAAI,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,MAAM,8BAA8B,CAAC,CAAC;QACtE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC;QAC3C,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,oFAAoF;IACpG,CAAC;IAEO,SAAS;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,WAAW,EAAE,CAAC;YAC/C,IAAI,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACpF,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,GAAW;QACjC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACvC,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC,CAAC,MAAM;gBAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;;gBAC1B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;QACxB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,IAAI,CAAC,MAAM,sCAAsC,CAAC,CAAC;YACvE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;QACnC,CAAC;IACH,CAAC;IAED,2GAA2G;IAC3G,wGAAwG;IACxG,wFAAwF;IAChF,SAAS,CAAI,IAAsB;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,CACrB,GAAG,EAAE,GAAE,CAAC,EACR,GAAG,EAAE,GAAE,CAAC,CACT,CAAC;QACF,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,KAAK;QACX,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,wGAAwG;IACxG,yGAAyG;IACzG,sGAAsG;IACtG,8FAA8F;IACtF,KAAK,CAAC,SAAS;QACrB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1D,MAAM,KAAK,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACtD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3D,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kEAAkE;QAC1G,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC;YAClD,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACvD,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9D,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,uCAAuC;gBACpG,OAAO;YACT,CAAC;YACD,IAAI,IAAI,KAAK,IAAI;gBAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,uDAAuD;QACrG,CAAC;IACH,CAAC;IAED,yGAAyG;IACzG,kDAAkD;IAC1C,KAAK,CAAC,KAAK,CAAC,IAAY,EAAE,SAAmB;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAClC,MAAM,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC3B,MAAM,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,uBAAwB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1D,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAClC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oGAAoG;IACpG,iFAAiF;IACzE,KAAK,CAAC,MAAM,CAAC,IAAY;QAC/B,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,wBAAyB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3D,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,yGAAyG;IACzG,wCAAwC;IAChC,KAAK,CAAC,OAAO;QACnB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC;YACzD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC;YACpD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;gBACxB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;gBAC/B,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC;YACrB,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,6FAA6F;IACrF,OAAO;QACb,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAC9D,OAAO,GAAG,IAAI,CAAC,QAAQ,OAAO,CAAC;IACjC,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,IAAY;QACtC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAY,CAAC;YACnF,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,MAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,wGAAwG;IACxG,6DAA6D;IACrD,KAAK,CAAC,WAAW;QACvB,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC;YACzD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC;YACpD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxE,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;gBAC5B,IAAI,SAAS;oBAAE,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC;;oBAChC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;QACL,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;YACpB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,6DAA6D;QAC3G,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC;YAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,CAAC;IACX,CAAC;IAED,wGAAwG;IACxG,gGAAgG;IACxF,KAAK,CAAC,UAAU;QACtB,IAAI,IAAI,CAAC,KAAK,IAAI,eAAe;YAAE,OAAO,CAAC,6DAA6D;QACxG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;IAEO,KAAK,CAAC,IAAI;QAChB,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC;YACpE,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;YACxD,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAAE,MAAM,CAAC,kEAAkE;YACzG,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;QACzB,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED,wGAAwG;IACxG,6FAA6F;IACrF,KAAK;QACX,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE;aAC9B,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAkB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;aACnE,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI;gBAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QACtD,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,KAAK,CAAC,SAAS;QACrB,SAAS,CAAC;YACR,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAO;YACzB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YAC3D,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,CAAC,mDAAmD;gBAC1F,oGAAoG;gBACpG,6FAA6F;gBAC7F,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC3C,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;oBACtB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;oBAC/B,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,QAAQ,CAAC;gBAC9B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC/C,SAAS;YACX,CAAC;YACD,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC3C,oGAAoG;YACpG,mCAAmC;YACnC,MAAM,IAAI,GAAG,QAAQ,KAAK,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC3F,IAAI,QAAQ,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC/B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBACxD,OAAO;YACT,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,QAAQ,CAAC;QAChC,CAAC;IACH,CAAC;IAED,uGAAuG;IACvG,sGAAsG;IACtG,mBAAmB;IACX,KAAK,CAAC,SAAS;QACrB,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAmB,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACvE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,wDAAwD;YACzG,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxE,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,KAAK,MAAM,MAAM,IAAI,IAAI,EAAE,CAAC;gBAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;oBAC1B,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;wBAAE,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;oBACtF,KAAK,EAAE,CAAC;oBACR,SAAS;gBACX,CAAC;gBACD,+FAA+F;gBAC/F,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK;oBAAE,MAAM;gBACpF,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;gBAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC3D,IAAI,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK;oBAAE,MAAM;YACnD,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YAC9B,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM;gBAAE,MAAM,CAAC,mCAAmC;QACtE,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACxD,CAAC;IAED,qGAAqG;IACrG,2GAA2G;IAC3G,wGAAwG;IACxG,uGAAuG;IACvG,yFAAyF;IACjF,KAAK,CAAC,IAAI,CAAC,KAAY,EAAE,QAAgB;QAC/C,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,sDAAsD;QACrE,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,OAAO,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC1E,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAC9B,CAAC,EAAE,CAAC;QACN,CAAC;QACD,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,QAAQ,GAAG,KAAK,EAAE,CAAC;YAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC3E,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;QACnE,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACjE,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACxC,uGAAuG;YACvG,wGAAwG;YACxG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sGAAsG;IACtG,kGAAkG;IAClG,oFAAoF;IAC5E,KAAK,CAAC,OAAO,CAAC,KAAe;QACnC,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC,CAAC,yDAAyD;QAC3G,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;YACb,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAClC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;gBACxB,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YACpC,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACjD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC;QACtG,MAAM,QAAQ,GAAG,MAAM,IAAI,OAAO,CAAgB,CAAC,OAAO,EAAE,EAAE;YAC5D,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QACH,uGAAuG;QACvG,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,GAAG,KAAK,CAAC,MAAM;YAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC;QAC7F,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,SAAS,CAAC,GAAW;QAC3B,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI;YAAE,IAAI,GAAG,IAAI,GAAG;gBAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACtE,2GAA2G;QAC3G,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,QAAQ,GAAG,CAAC,CAAC;QAC3C,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACjC,IAAI,MAAM,EAAE,IAAI,CAAC;gBAAE,MAAM;YACzB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "signalk-aiscast",
|
|
3
|
-
"version": "0.3.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.3.1",
|
|
4
|
+
"description": "aiscast, the Open Waters AIS network, for Signal K: show nearby traffic without an AIS receiver and share what yours hears.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Brandon Keepers <brandon@opensoul.org>",
|
|
7
7
|
"repository": {
|
|
@@ -9,7 +9,13 @@
|
|
|
9
9
|
"url": "git+https://github.com/openwatersio/aiscast.git",
|
|
10
10
|
"directory": "signalk-plugin"
|
|
11
11
|
},
|
|
12
|
-
"
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/openwatersio/aiscast/issues"
|
|
14
|
+
},
|
|
15
|
+
"homepage": "https://openwaters.io/ais/",
|
|
16
|
+
"publishConfig": {
|
|
17
|
+
"access": "public"
|
|
18
|
+
},
|
|
13
19
|
"type": "module",
|
|
14
20
|
"main": "./dist/index.js",
|
|
15
21
|
"exports": "./dist/index.js",
|
|
@@ -39,14 +45,14 @@
|
|
|
39
45
|
"dependencies": {
|
|
40
46
|
"@canboat/ts-pgns": "^1.11.18",
|
|
41
47
|
"@signalk/nmea0183-signalk": "^3.20.1",
|
|
42
|
-
"ggencoder": "^1.0.
|
|
48
|
+
"ggencoder": "^1.0.11",
|
|
43
49
|
"ws": "^8.18.0"
|
|
44
50
|
},
|
|
45
51
|
"devDependencies": {
|
|
46
|
-
"@signalk/server-api": "^2.
|
|
47
|
-
"@types/node": "^
|
|
52
|
+
"@signalk/server-api": "^2.32.0",
|
|
53
|
+
"@types/node": "^26.5.1",
|
|
48
54
|
"@types/ws": "^8.18.0",
|
|
49
|
-
"typescript": "^
|
|
50
|
-
"vitest": "^
|
|
55
|
+
"typescript": "^7.0.2",
|
|
56
|
+
"vitest": "^5.0.0"
|
|
51
57
|
}
|
|
52
58
|
}
|