@aexol/spectral 0.9.104 → 0.9.106
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAyBH,OAAO,EAAE,WAAW,EAAmB,MAAM,oBAAoB,CAAC;AAWlE,OAAO,KAAK,EAAE,aAAa,EAAc,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAGnE,OAAO,EAAmB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAsBrE;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAazD;AAED,MAAM,WAAW,eAAe;IAC9B,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,eAAe,CA6B9D;AAED,MAAM,WAAW,eAAe;IAC9B,iEAAiE;IACjE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,uCAAuC;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4CAA4C;IAC5C,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,qBAAqB,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;CAC/E;AAED,MAAM,WAAW,cAAc;IAC7B,qCAAqC;IACrC,KAAK,EAAE,YAAY,CAAC;IACpB,wDAAwD;IACxD,OAAO,EAAE,oBAAoB,CAAC;IAC9B,4CAA4C;IAC5C,KAAK,EAAE,WAAW,CAAC;IACnB,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,wBAAsB,QAAQ,CAAC,IAAI,GAAE,eAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAyBH,OAAO,EAAE,WAAW,EAAmB,MAAM,oBAAoB,CAAC;AAWlE,OAAO,KAAK,EAAE,aAAa,EAAc,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAGnE,OAAO,EAAmB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAsBrE;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAazD;AAED,MAAM,WAAW,eAAe;IAC9B,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,eAAe,CA6B9D;AAED,MAAM,WAAW,eAAe;IAC9B,iEAAiE;IACjE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,uCAAuC;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4CAA4C;IAC5C,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,qBAAqB,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;CAC/E;AAED,MAAM,WAAW,cAAc;IAC7B,qCAAqC;IACrC,KAAK,EAAE,YAAY,CAAC;IACpB,wDAAwD;IACxD,OAAO,EAAE,oBAAoB,CAAC;IAC9B,4CAA4C;IAC5C,KAAK,EAAE,WAAW,CAAC;IACnB,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,wBAAsB,QAAQ,CAAC,IAAI,GAAE,eAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,CAwdlF;AA+DD;;;GAGG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAa5E"}
|
package/dist/commands/serve.js
CHANGED
|
@@ -332,6 +332,7 @@ export async function runServe(opts = {}) {
|
|
|
332
332
|
logger: silent
|
|
333
333
|
? { log: () => { }, warn: () => { }, error: () => { } }
|
|
334
334
|
: console,
|
|
335
|
+
runtimeInfo: { version, pid: process.pid },
|
|
335
336
|
});
|
|
336
337
|
wireRelay(relay);
|
|
337
338
|
relay.connect();
|
|
@@ -402,6 +403,7 @@ export async function runServe(opts = {}) {
|
|
|
402
403
|
logger: silent
|
|
403
404
|
? { log: () => { }, warn: () => { }, error: () => { } }
|
|
404
405
|
: console,
|
|
406
|
+
runtimeInfo: { version, pid: process.pid },
|
|
405
407
|
});
|
|
406
408
|
wireRelay(relay);
|
|
407
409
|
relay.connect();
|
|
@@ -426,6 +428,7 @@ export async function runServe(opts = {}) {
|
|
|
426
428
|
webSocketImpl: opts.webSocketImpl,
|
|
427
429
|
fetchImpl: opts.fetchImpl,
|
|
428
430
|
logger: silent ? { log: () => { }, warn: () => { }, error: () => { } } : console,
|
|
431
|
+
runtimeInfo: { version, pid: process.pid },
|
|
429
432
|
});
|
|
430
433
|
wireRelay(relay);
|
|
431
434
|
relay.connect();
|
package/dist/relay/client.d.ts
CHANGED
|
@@ -66,6 +66,11 @@ export interface RelayClientOptions {
|
|
|
66
66
|
* Optional logger. Defaults to console. Tests pass a noop.
|
|
67
67
|
*/
|
|
68
68
|
logger?: Pick<Console, "log" | "warn" | "error">;
|
|
69
|
+
/** Runtime metadata sent after every welcome/reconnect. */
|
|
70
|
+
runtimeInfo?: {
|
|
71
|
+
version: string;
|
|
72
|
+
pid: number;
|
|
73
|
+
};
|
|
69
74
|
/**
|
|
70
75
|
* Override `process.exit` for tests. Called when the backend evicts us
|
|
71
76
|
* with `replaced-by-newer-registration` to avoid a reconnect ping-pong.
|
|
@@ -87,6 +92,7 @@ export declare class RelayClient extends EventEmitter {
|
|
|
87
92
|
private readonly fetchImpl;
|
|
88
93
|
private readonly logger;
|
|
89
94
|
private readonly exit;
|
|
95
|
+
private readonly runtimeInfo;
|
|
90
96
|
private ws;
|
|
91
97
|
private disposed;
|
|
92
98
|
private reconnectAttempt;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/relay/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/relay/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,SAAS,MAAM,IAAI,CAAC;AAuB3B,MAAM,WAAW,kBAAkB;IACjC,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,SAAS,CAAC;IACjC;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB;;OAEG;IACH,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IACjD,2DAA2D;IAC3D,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C;;;;OAIG;IACH,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC;CAChC;AAED,6EAA6E;AAC7E,MAAM,WAAW,UAAU;IACzB,uDAAuD;IACvD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAChD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAmB;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0C;IACjE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA0B;IAC/C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA+C;IAE3E,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,SAAS,CAAgB;IACjC,iFAAiF;IACjF,OAAO,CAAC,UAAU,CAAS;IAE3B,qEAAqE;IACrE,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,aAAa,CAA+B;gBAExC,IAAI,EAAE,kBAAkB;IAYpC,kEAAkE;IAClE,OAAO,IAAI,IAAI;IAMf;;;;;;;OAOG;IACH,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO;IAqBzC;;;OAGG;IACH,OAAO,IAAI,IAAI;IA2Bf,OAAO,CAAC,UAAU;IAsJlB,OAAO,CAAC,aAAa;IAsBrB,OAAO,CAAC,YAAY;IAOpB;;;;;OAKG;YACW,WAAW;YA8BX,iBAAiB;CAmDhC"}
|
package/dist/relay/client.js
CHANGED
|
@@ -40,7 +40,9 @@
|
|
|
40
40
|
* the same event loop turn. Listeners must be cheap.
|
|
41
41
|
*/
|
|
42
42
|
import { EventEmitter } from "node:events";
|
|
43
|
+
import { unlink } from "node:fs/promises";
|
|
43
44
|
import WebSocket from "ws";
|
|
45
|
+
import { getMachineFile } from "./machine-store.js";
|
|
44
46
|
/** Maximum outbound queue size while disconnected. */
|
|
45
47
|
const SEND_QUEUE_CAP = 100;
|
|
46
48
|
/** Backoff schedule (ms). The last value is the cap and is reused indefinitely. */
|
|
@@ -67,6 +69,7 @@ export class RelayClient extends EventEmitter {
|
|
|
67
69
|
fetchImpl;
|
|
68
70
|
logger;
|
|
69
71
|
exit;
|
|
72
|
+
runtimeInfo;
|
|
70
73
|
ws = null;
|
|
71
74
|
disposed = false;
|
|
72
75
|
reconnectAttempt = 0;
|
|
@@ -86,6 +89,7 @@ export class RelayClient extends EventEmitter {
|
|
|
86
89
|
this.fetchImpl = opts.fetchImpl ?? fetch;
|
|
87
90
|
this.logger = opts.logger ?? console;
|
|
88
91
|
this.exit = opts.exit ?? ((code) => process.exit(code));
|
|
92
|
+
this.runtimeInfo = opts.runtimeInfo;
|
|
89
93
|
}
|
|
90
94
|
/** Open the connection. Idempotent — calling twice is a no-op. */
|
|
91
95
|
connect() {
|
|
@@ -208,6 +212,9 @@ export class RelayClient extends EventEmitter {
|
|
|
208
212
|
}
|
|
209
213
|
if (parsed && parsed.kind === "welcome") {
|
|
210
214
|
this.emit("welcome", parsed);
|
|
215
|
+
if (this.runtimeInfo) {
|
|
216
|
+
this.send({ kind: "runtime_info", ...this.runtimeInfo });
|
|
217
|
+
}
|
|
211
218
|
return;
|
|
212
219
|
}
|
|
213
220
|
this.emit("frame", parsed);
|
|
@@ -253,7 +260,10 @@ export class RelayClient extends EventEmitter {
|
|
|
253
260
|
// invalid and re-registration requires a fresh `spectral serve`.
|
|
254
261
|
if (code === 4001 && reasonStr === "machine-revoked") {
|
|
255
262
|
this.logger.error("\n✗ This machine has been disconnected from the Aexol Studio panel.");
|
|
256
|
-
|
|
263
|
+
// Delete the machine identity file so the next `spectral serve`
|
|
264
|
+
// forces a fresh registration rather than reusing the revoked JWT.
|
|
265
|
+
unlink(getMachineFile()).catch(() => { });
|
|
266
|
+
this.logger.error(" Run `spectral login` then `spectral serve` to re-register.\n");
|
|
257
267
|
this.dispose();
|
|
258
268
|
this.exit(1);
|
|
259
269
|
return;
|