signalk-aiscast 0.1.2 → 0.1.4
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 +24 -0
- package/dist/identity.js +3 -2
- package/dist/identity.js.map +1 -1
- package/dist/link.js +18 -3
- package/dist/link.js.map +1 -1
- package/package.json +3 -2
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 0.1.4
|
|
4
|
+
|
|
5
|
+
- Personal tokens minted by aiscast no longer expire; the plugin keeps a cached token with no expiry instead of minting a new one every start.
|
|
6
|
+
- The npm package includes this changelog.
|
|
7
|
+
|
|
8
|
+
## 0.1.3
|
|
9
|
+
|
|
10
|
+
- Fixes the plugin never connecting on high-latency links (Starlink in remote regions, satellite, some cellular): Node gave up on the IPv4 connection after 250 ms and fell back to an unroutable IPv6 address; each attempt now gets 3 s.
|
|
11
|
+
- The debug log shows the real reason a socket failed (for example `socket error: ETIMEDOUT (connect ETIMEDOUT 2.29.0.215:443; …)`) instead of an empty `socket error:` line.
|
|
12
|
+
|
|
13
|
+
## 0.1.2
|
|
14
|
+
|
|
15
|
+
- Clears the red "No token" line on the Dashboard once the token is obtained.
|
|
16
|
+
|
|
17
|
+
## 0.1.1
|
|
18
|
+
|
|
19
|
+
- Retries token minting with backoff (1 to 30 min) instead of waiting six hours after a failed start, so a Pi that boots before its network is up starts sharing as soon as it can.
|
|
20
|
+
- Token errors include the underlying cause (DNS, TLS, connection refused).
|
|
21
|
+
|
|
22
|
+
## 0.1.0
|
|
23
|
+
|
|
24
|
+
- First release: shares received AIS (NMEA 0183 and NMEA 2000) with aiscast and injects nearby traffic from aiscast when the boat hears none of its own.
|
package/dist/identity.js
CHANGED
|
@@ -23,7 +23,8 @@ export async function loadToken(dir, server, pubkey, now = Date.now()) {
|
|
|
23
23
|
const file = join(dir, "token.json");
|
|
24
24
|
try {
|
|
25
25
|
const t = JSON.parse(await readFile(file, "utf8"));
|
|
26
|
-
|
|
26
|
+
// exp 0 = the token never expires (personal tokens are revoked, not expired)
|
|
27
|
+
if (t.pubkey === pubkey && t.server === server && (t.exp === 0 || t.exp - now / 1000 > RENEW_BEFORE))
|
|
27
28
|
return t;
|
|
28
29
|
}
|
|
29
30
|
catch {
|
|
@@ -46,6 +47,6 @@ export async function mintToken(server, pubkey) {
|
|
|
46
47
|
if (!res.ok)
|
|
47
48
|
throw new Error(`POST /v1/keys: ${res.status} ${(await res.text()).trim()}`);
|
|
48
49
|
const body = (await res.json());
|
|
49
|
-
return { token: body.token, exp: body.claims.exp, pubkey, server };
|
|
50
|
+
return { token: body.token, exp: body.claims.exp ?? 0, pubkey, server };
|
|
50
51
|
}
|
|
51
52
|
//# sourceMappingURL=identity.js.map
|
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,EAAmB,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAOjC,uGAAuG;AACvG,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,GAAW;IAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAe,CAAC;QACnE,IAAI,GAAG,CAAC,GAAG,KAAK,KAAK,IAAI,GAAG,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;YAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;IAClG,CAAC;IAAC,MAAM,CAAC;QACP,6CAA6C;IAC/C,CAAC;IACD,MAAM,EAAE,UAAU,EAAE,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAe,CAAC;IAC/D,MAAM,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5D,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,CAAE,EAAE,GAAG,EAAE,CAAC;AACjC,CAAC;AASD,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,0DAA0D;AAE9F,wGAAwG;AACxG,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAW,EAAE,MAAc,EAAE,MAAc,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IAC3F,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAU,CAAC;QAC5D,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,YAAY;YAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"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"}
|
package/dist/link.js
CHANGED
|
@@ -63,7 +63,15 @@ export class Link extends EventEmitter {
|
|
|
63
63
|
return;
|
|
64
64
|
const url = this.url();
|
|
65
65
|
this.log(`connecting to ${url}`);
|
|
66
|
-
const
|
|
66
|
+
const options = {
|
|
67
|
+
headers: this.headers(),
|
|
68
|
+
perMessageDeflate: true,
|
|
69
|
+
handshakeTimeout: 30_000,
|
|
70
|
+
// Node's default 250 ms happy-eyeballs attempt timeout aborts IPv4 connects on satellite/cellular RTTs
|
|
71
|
+
// and falls through to a usually-unroutable IPv6; the socket then fails ETIMEDOUT although curl works.
|
|
72
|
+
autoSelectFamilyAttemptTimeout: 3_000, // reaches net.connect via https.request; @types/node omits it here
|
|
73
|
+
};
|
|
74
|
+
const ws = new WebSocket(url, options);
|
|
67
75
|
this.ws = ws;
|
|
68
76
|
this.lastActivity = Date.now();
|
|
69
77
|
ws.on("open", () => {
|
|
@@ -90,7 +98,12 @@ export class Link extends EventEmitter {
|
|
|
90
98
|
ws.on("pong", () => {
|
|
91
99
|
this.lastActivity = Date.now();
|
|
92
100
|
});
|
|
93
|
-
ws.on("error", (err) =>
|
|
101
|
+
ws.on("error", (err) => {
|
|
102
|
+
// Node's happy-eyeballs wraps failed connects in an AggregateError with an empty message.
|
|
103
|
+
const e = err;
|
|
104
|
+
const detail = e.errors?.map((x) => x.message).join("; ") ?? e.code;
|
|
105
|
+
this.log(`socket error: ${e.message || e.code}${detail ? ` (${detail})` : ""}`);
|
|
106
|
+
});
|
|
94
107
|
ws.on("close", (code, reason) => {
|
|
95
108
|
this.stopPing();
|
|
96
109
|
if (this.ws === ws)
|
|
@@ -105,7 +118,9 @@ export class Link extends EventEmitter {
|
|
|
105
118
|
scheduleReconnect(refused) {
|
|
106
119
|
if (this.stopped || this.timer)
|
|
107
120
|
return;
|
|
108
|
-
const base = refused
|
|
121
|
+
const base = refused
|
|
122
|
+
? REFUSED_BACKOFF
|
|
123
|
+
: Math.min(MAX_BACKOFF, MIN_BACKOFF * 2 ** this.attempt++);
|
|
109
124
|
const delay = base * (0.8 + Math.random() * 0.4);
|
|
110
125
|
this.log(`reconnecting in ${Math.round(delay / 1000)} s`);
|
|
111
126
|
this.timer = setTimeout(() => {
|
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;IACA;IACA;IAXX,EAAE,GAAqB,IAAI,CAAC;IAC5B,OAAO,GAAG,CAAC,CAAC;IACZ,KAAK,GAA0B,IAAI,CAAC;IACpC,MAAM,GAA0B,IAAI,CAAC;IACrC,YAAY,GAAG,CAAC,CAAC;IACjB,OAAO,GAAG,IAAI,CAAC;IACvB,WAAW,GAAkB,IAAI,CAAC;IAElC,YACmB,GAAiB,EACjB,UAAwC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAClD,MAA6B,GAAG,EAAE,GAAE,CAAC;QAEtD,KAAK,EAAE,CAAC;QAJS,QAAG,GAAH,GAAG,CAAc;QACjB,YAAO,GAAP,OAAO,CAA2C;QAClD,QAAG,GAAH,GAAG,CAAkC;IAGxD,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,EAAE,EAAE,UAAU,KAAK,SAAS,CAAC,IAAI,CAAC;IAChD,CAAC;IAED,KAAK;QACH,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,IAAI,CAAC,KAAK;YAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QACvC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;IACjB,CAAC;IAED,sGAAsG;IACtG,SAAS;QACP,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,KAAY;QACf,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QAC7B,IAAI,CAAC,EAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,OAAO;QACb,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC,iBAAiB,GAAG,EAAE,CAAC,CAAC;QACjC,MAAM,
|
|
1
|
+
{"version":3,"file":"link.js","sourceRoot":"","sources":["../src/link.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "signalk-aiscast",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.1.4",
|
|
4
|
+
"description": "Show nearby traffic without an AIS receiver and share your AIS data with the world.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Brandon Keepers <brandon@opensoul.org>",
|
|
7
7
|
"repository": {
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
"exports": "./dist/index.js",
|
|
16
16
|
"files": [
|
|
17
17
|
"dist",
|
|
18
|
+
"CHANGELOG.md",
|
|
18
19
|
"README.md"
|
|
19
20
|
],
|
|
20
21
|
"keywords": [
|