@cortexkit/subc-client 0.3.0 → 0.3.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/dist/auth.d.ts +19 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +84 -0
- package/dist/auth.js.map +1 -0
- package/dist/client.d.ts +265 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +909 -0
- package/dist/client.js.map +1 -0
- package/dist/connection-file.d.ts +22 -0
- package/dist/connection-file.d.ts.map +1 -0
- package/dist/connection-file.js +80 -0
- package/dist/connection-file.js.map +1 -0
- package/dist/envelope.d.ts +59 -0
- package/dist/envelope.d.ts.map +1 -0
- package/dist/envelope.js +132 -0
- package/dist/envelope.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/provider.d.ts +278 -0
- package/dist/provider.d.ts.map +1 -0
- package/dist/provider.js +652 -0
- package/dist/provider.js.map +1 -0
- package/dist/socket.d.ts +45 -0
- package/dist/socket.d.ts.map +1 -0
- package/dist/socket.js +208 -0
- package/dist/socket.js.map +1 -0
- package/package.json +6 -3
- package/src/client.ts +23 -1
- package/src/provider.ts +12 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
|
package/dist/socket.d.ts
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export declare class SocketClosedError extends Error {
|
|
2
|
+
}
|
|
3
|
+
export declare class SocketTimeoutError extends Error {
|
|
4
|
+
}
|
|
5
|
+
export declare class SocketWriteNotQueuedError extends Error {
|
|
6
|
+
readonly cause?: Error | undefined;
|
|
7
|
+
constructor(message: string, cause?: Error | undefined);
|
|
8
|
+
}
|
|
9
|
+
export declare class SocketWriteQueuedError extends Error {
|
|
10
|
+
readonly cause?: Error | undefined;
|
|
11
|
+
constructor(message: string, cause?: Error | undefined);
|
|
12
|
+
}
|
|
13
|
+
export interface SocketWriteResult {
|
|
14
|
+
/** True once bytes were handed to Node's net.Socket.write. This is not a delivery guarantee. */
|
|
15
|
+
queued: boolean;
|
|
16
|
+
/** Resolves when Node reports the write complete; rejects with a classified write error. */
|
|
17
|
+
completed: Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
export declare class SubcSocket {
|
|
20
|
+
private readonly sock;
|
|
21
|
+
private chunks;
|
|
22
|
+
private buffered;
|
|
23
|
+
private waiter;
|
|
24
|
+
private closedErr;
|
|
25
|
+
/** Bytes currently buffered but not yet consumed by a reader. A timeout
|
|
26
|
+
* arbitration uses this to tell "a reply already arrived, keep draining" from
|
|
27
|
+
* "nothing is here, settle the timeout". */
|
|
28
|
+
bufferedBytes(): number;
|
|
29
|
+
private constructor();
|
|
30
|
+
/**
|
|
31
|
+
* The OS-assigned local TCP port of this connection, or null if not yet
|
|
32
|
+
* connected/closed. Used to correlate a client-side timeout with a specific
|
|
33
|
+
* socket in a packet capture when diagnosing reply-delivery issues.
|
|
34
|
+
*/
|
|
35
|
+
localPort(): number | null;
|
|
36
|
+
static connect(host: string, port: number, deadlineMs: number): Promise<SubcSocket>;
|
|
37
|
+
/** Read exactly `n` bytes, rejecting if `deadlineMs` (epoch ms) passes first. */
|
|
38
|
+
readExact(n: number, deadlineMs: number): Promise<Uint8Array>;
|
|
39
|
+
write(bytes: Uint8Array, deadlineMs: number): Promise<void>;
|
|
40
|
+
writeTracked(bytes: Uint8Array, deadlineMs: number): SocketWriteResult;
|
|
41
|
+
close(): void;
|
|
42
|
+
private tryServe;
|
|
43
|
+
private take;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=socket.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../src/socket.ts"],"names":[],"mappings":"AAQA,qBAAa,iBAAkB,SAAQ,KAAK;CAAG;AAC/C,qBAAa,kBAAmB,SAAQ,KAAK;CAAG;AAEhD,qBAAa,yBAA0B,SAAQ,KAAK;IAGhD,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK;gBADtB,OAAO,EAAE,MAAM,EACN,KAAK,CAAC,EAAE,KAAK,YAAA;CAIzB;AAED,qBAAa,sBAAuB,SAAQ,KAAK;IAG7C,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK;gBADtB,OAAO,EAAE,MAAM,EACN,KAAK,CAAC,EAAE,KAAK,YAAA;CAIzB;AAED,MAAM,WAAW,iBAAiB;IAChC,gGAAgG;IAChG,MAAM,EAAE,OAAO,CAAC;IAChB,4FAA4F;IAC5F,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AASD,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,SAAS,CAAsB;IAEvC;;gDAE4C;IAC5C,aAAa,IAAI,MAAM;IAIvB,OAAO;IAgBP;;;;OAIG;IACH,SAAS,IAAI,MAAM,GAAG,IAAI;IAI1B,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAmBnF,iFAAiF;IACjF,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAyBvD,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWjE,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,iBAAiB;IA4EtE,KAAK,IAAI,IAAI;IAIb,OAAO,CAAC,QAAQ;IAiBhB,OAAO,CAAC,IAAI;CAmBb"}
|
package/dist/socket.js
ADDED
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
// A pull-based buffered wrapper over a node TCP socket. Node sockets are
|
|
2
|
+
// event-driven; the handshake and frame loop want "give me exactly N bytes, but
|
|
3
|
+
// don't exceed this absolute deadline". readExact provides that, draining an
|
|
4
|
+
// internal buffer and parking a single waiter until enough bytes arrive, the
|
|
5
|
+
// deadline passes, or the socket ends.
|
|
6
|
+
import net from "node:net";
|
|
7
|
+
export class SocketClosedError extends Error {
|
|
8
|
+
}
|
|
9
|
+
export class SocketTimeoutError extends Error {
|
|
10
|
+
}
|
|
11
|
+
export class SocketWriteNotQueuedError extends Error {
|
|
12
|
+
cause;
|
|
13
|
+
constructor(message, cause) {
|
|
14
|
+
super(message);
|
|
15
|
+
this.cause = cause;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export class SocketWriteQueuedError extends Error {
|
|
19
|
+
cause;
|
|
20
|
+
constructor(message, cause) {
|
|
21
|
+
super(message);
|
|
22
|
+
this.cause = cause;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export class SubcSocket {
|
|
26
|
+
sock;
|
|
27
|
+
chunks = [];
|
|
28
|
+
buffered = 0;
|
|
29
|
+
waiter = null;
|
|
30
|
+
closedErr = null;
|
|
31
|
+
/** Bytes currently buffered but not yet consumed by a reader. A timeout
|
|
32
|
+
* arbitration uses this to tell "a reply already arrived, keep draining" from
|
|
33
|
+
* "nothing is here, settle the timeout". */
|
|
34
|
+
bufferedBytes() {
|
|
35
|
+
return this.buffered;
|
|
36
|
+
}
|
|
37
|
+
constructor(sock) {
|
|
38
|
+
this.sock = sock;
|
|
39
|
+
sock.on("data", (chunk) => {
|
|
40
|
+
this.chunks.push(chunk);
|
|
41
|
+
this.buffered += chunk.length;
|
|
42
|
+
this.tryServe();
|
|
43
|
+
});
|
|
44
|
+
const fail = (err) => {
|
|
45
|
+
if (!this.closedErr)
|
|
46
|
+
this.closedErr = err;
|
|
47
|
+
this.tryServe();
|
|
48
|
+
};
|
|
49
|
+
sock.on("error", (err) => fail(err instanceof Error ? err : new Error(String(err))));
|
|
50
|
+
sock.on("end", () => fail(new SocketClosedError("subc closed the connection")));
|
|
51
|
+
sock.on("close", () => fail(new SocketClosedError("subc connection closed")));
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* The OS-assigned local TCP port of this connection, or null if not yet
|
|
55
|
+
* connected/closed. Used to correlate a client-side timeout with a specific
|
|
56
|
+
* socket in a packet capture when diagnosing reply-delivery issues.
|
|
57
|
+
*/
|
|
58
|
+
localPort() {
|
|
59
|
+
return this.sock.localPort ?? null;
|
|
60
|
+
}
|
|
61
|
+
static connect(host, port, deadlineMs) {
|
|
62
|
+
return new Promise((resolve, reject) => {
|
|
63
|
+
const sock = net.connect({ host, port });
|
|
64
|
+
sock.setNoDelay(true);
|
|
65
|
+
const timer = setTimeout(() => {
|
|
66
|
+
sock.destroy();
|
|
67
|
+
reject(new SocketTimeoutError(`timed out connecting to ${host}:${port}`));
|
|
68
|
+
}, Math.max(0, deadlineMs - Date.now()));
|
|
69
|
+
sock.once("connect", () => {
|
|
70
|
+
clearTimeout(timer);
|
|
71
|
+
resolve(new SubcSocket(sock));
|
|
72
|
+
});
|
|
73
|
+
sock.once("error", (err) => {
|
|
74
|
+
clearTimeout(timer);
|
|
75
|
+
reject(err);
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
/** Read exactly `n` bytes, rejecting if `deadlineMs` (epoch ms) passes first. */
|
|
80
|
+
readExact(n, deadlineMs) {
|
|
81
|
+
if (this.waiter) {
|
|
82
|
+
return Promise.reject(new Error("concurrent readExact is not supported"));
|
|
83
|
+
}
|
|
84
|
+
if (n === 0)
|
|
85
|
+
return Promise.resolve(new Uint8Array(0));
|
|
86
|
+
return new Promise((resolve, reject) => {
|
|
87
|
+
// A non-finite deadline means "wait indefinitely" (the background frame
|
|
88
|
+
// loop relies on this; per-request timeouts live on the request waiters).
|
|
89
|
+
let timer = null;
|
|
90
|
+
if (Number.isFinite(deadlineMs)) {
|
|
91
|
+
const remaining = deadlineMs - Date.now();
|
|
92
|
+
if (remaining <= 0) {
|
|
93
|
+
reject(new SocketTimeoutError(`timed out waiting for ${n} bytes`));
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
timer = setTimeout(() => {
|
|
97
|
+
this.waiter = null;
|
|
98
|
+
reject(new SocketTimeoutError(`timed out waiting for ${n} bytes`));
|
|
99
|
+
}, remaining);
|
|
100
|
+
}
|
|
101
|
+
this.waiter = { need: n, resolve, reject, timer };
|
|
102
|
+
this.tryServe();
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
async write(bytes, deadlineMs) {
|
|
106
|
+
try {
|
|
107
|
+
await this.writeTracked(bytes, deadlineMs).completed;
|
|
108
|
+
}
|
|
109
|
+
catch (err) {
|
|
110
|
+
if (err instanceof SocketWriteNotQueuedError || err instanceof SocketWriteQueuedError) {
|
|
111
|
+
throw err.cause ?? err;
|
|
112
|
+
}
|
|
113
|
+
throw err;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
writeTracked(bytes, deadlineMs) {
|
|
117
|
+
if (this.closedErr) {
|
|
118
|
+
return {
|
|
119
|
+
queued: false,
|
|
120
|
+
completed: Promise.reject(new SocketWriteNotQueuedError("subc socket was closed before bytes could be queued", this.closedErr)),
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
let queued = false;
|
|
124
|
+
let settled = false;
|
|
125
|
+
let timer = null;
|
|
126
|
+
const completed = new Promise((resolve, reject) => {
|
|
127
|
+
const settle = (run) => {
|
|
128
|
+
if (settled)
|
|
129
|
+
return;
|
|
130
|
+
settled = true;
|
|
131
|
+
if (timer)
|
|
132
|
+
clearTimeout(timer);
|
|
133
|
+
run();
|
|
134
|
+
};
|
|
135
|
+
const remaining = deadlineMs - Date.now();
|
|
136
|
+
if (remaining <= 0) {
|
|
137
|
+
settle(() => reject(new SocketWriteNotQueuedError("timed out before bytes could be queued to subc", new SocketTimeoutError("timed out writing to subc"))));
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
timer = setTimeout(() => {
|
|
141
|
+
const timeout = new SocketTimeoutError("timed out writing to subc");
|
|
142
|
+
settle(() => reject(queued
|
|
143
|
+
? new SocketWriteQueuedError("timed out after bytes were handed to the subc socket", timeout)
|
|
144
|
+
: new SocketWriteNotQueuedError("timed out before bytes could be queued to subc", timeout)));
|
|
145
|
+
}, remaining);
|
|
146
|
+
try {
|
|
147
|
+
this.sock.write(Buffer.from(bytes), (err) => {
|
|
148
|
+
settle(() => {
|
|
149
|
+
if (err) {
|
|
150
|
+
reject(new SocketWriteQueuedError("subc socket reported a write error after bytes were handed to the socket", err instanceof Error ? err : new Error(String(err))));
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
resolve();
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
});
|
|
157
|
+
queued = true;
|
|
158
|
+
}
|
|
159
|
+
catch (err) {
|
|
160
|
+
settle(() => reject(new SocketWriteNotQueuedError("subc socket write threw before bytes could be queued", err instanceof Error ? err : new Error(String(err)))));
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
return { queued, completed };
|
|
164
|
+
}
|
|
165
|
+
close() {
|
|
166
|
+
this.sock.destroy();
|
|
167
|
+
}
|
|
168
|
+
tryServe() {
|
|
169
|
+
const w = this.waiter;
|
|
170
|
+
if (!w)
|
|
171
|
+
return;
|
|
172
|
+
if (this.buffered >= w.need) {
|
|
173
|
+
const out = this.take(w.need);
|
|
174
|
+
this.waiter = null;
|
|
175
|
+
if (w.timer)
|
|
176
|
+
clearTimeout(w.timer);
|
|
177
|
+
w.resolve(out);
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
if (this.closedErr) {
|
|
181
|
+
this.waiter = null;
|
|
182
|
+
if (w.timer)
|
|
183
|
+
clearTimeout(w.timer);
|
|
184
|
+
w.reject(this.closedErr);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
take(n) {
|
|
188
|
+
const out = Buffer.allocUnsafe(n);
|
|
189
|
+
let off = 0;
|
|
190
|
+
while (off < n) {
|
|
191
|
+
const head = this.chunks[0];
|
|
192
|
+
const want = n - off;
|
|
193
|
+
if (head.length <= want) {
|
|
194
|
+
head.copy(out, off);
|
|
195
|
+
off += head.length;
|
|
196
|
+
this.chunks.shift();
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
head.copy(out, off, 0, want);
|
|
200
|
+
this.chunks[0] = head.subarray(want);
|
|
201
|
+
off += want;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
this.buffered -= n;
|
|
205
|
+
return out;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
//# sourceMappingURL=socket.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"socket.js","sourceRoot":"","sources":["../src/socket.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,19 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cortexkit/subc-client",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "TypeScript client for the subc daemon. Wire-compatible (byte-for-byte) with the Rust subc-transport handshake and subc-protocol envelope.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
7
7
|
".": {
|
|
8
|
-
"types": "./
|
|
9
|
-
"import": "./
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"import": "./dist/index.js"
|
|
10
10
|
}
|
|
11
11
|
},
|
|
12
12
|
"files": [
|
|
13
|
+
"dist",
|
|
13
14
|
"src",
|
|
14
15
|
"README.md"
|
|
15
16
|
],
|
|
16
17
|
"scripts": {
|
|
18
|
+
"build": "rm -rf dist && tsc -p tsconfig.build.json",
|
|
19
|
+
"prepublishOnly": "npm run build",
|
|
17
20
|
"test": "bun test",
|
|
18
21
|
"typecheck": "tsc --noEmit && tsc -p tsconfig.test.json --noEmit"
|
|
19
22
|
},
|
package/src/client.ts
CHANGED
|
@@ -851,6 +851,18 @@ export class SubcClient {
|
|
|
851
851
|
return;
|
|
852
852
|
} catch (err) {
|
|
853
853
|
if (!isConsumerReconnectTransient(err) || attempt >= this.opts.reconnectBackoff.maxAttempts) {
|
|
854
|
+
// An auth failure that survives the whole budget (which re-reads the
|
|
855
|
+
// connection file every attempt) is no longer explainable by key
|
|
856
|
+
// rotation — but the raw "impostor daemon" wording sent a real
|
|
857
|
+
// operator down the wrong path, so name the likelier operational
|
|
858
|
+
// causes and the recovery action.
|
|
859
|
+
if (err instanceof AuthError && attempt > 1) {
|
|
860
|
+
throw new AuthError(
|
|
861
|
+
`reconnect gave up after ${attempt} attempts: ${err.message} — the connection file and the daemon's key disagree persistently ` +
|
|
862
|
+
`(daemon restarting in a loop, split connection-file paths, or a genuinely foreign daemon on this port); ` +
|
|
863
|
+
`check the daemon, then restart this host app`,
|
|
864
|
+
);
|
|
865
|
+
}
|
|
854
866
|
throw err;
|
|
855
867
|
}
|
|
856
868
|
await this.opts.sleep(delay);
|
|
@@ -1072,7 +1084,17 @@ export function isConsumerReconnectTransient(err: unknown): boolean {
|
|
|
1072
1084
|
if (err instanceof SocketClosedError || err instanceof SocketTimeoutError) return true;
|
|
1073
1085
|
if (err instanceof SocketWriteNotQueuedError || err instanceof SocketWriteQueuedError) return true;
|
|
1074
1086
|
if (err instanceof SubcCallError) return err.kind === "not_sent" || err.kind === "outcome_unknown";
|
|
1075
|
-
|
|
1087
|
+
// AuthError is transient DURING RECONNECT (this classifier's only call site):
|
|
1088
|
+
// the daemon rotates its key on every restart, and with a fixed port a client
|
|
1089
|
+
// racing the restart can read the pre-rotation file yet still connect — the
|
|
1090
|
+
// proof mismatch then means "stale key mid-rotation", not "impostor". Every
|
|
1091
|
+
// retry re-reads the connection file (openConnection), so the next attempt
|
|
1092
|
+
// picks up the rotated key; server-proves-first protects each attempt, so
|
|
1093
|
+
// retrying costs nothing security-wise. First-connect auth failures never
|
|
1094
|
+
// reach here — connect() throws them directly, where they stay permanent
|
|
1095
|
+
// (that IS the impostor/misconfig case).
|
|
1096
|
+
if (err instanceof AuthError) return true;
|
|
1097
|
+
if (err instanceof SubcError || err instanceof ConnectionFileError) return false;
|
|
1076
1098
|
|
|
1077
1099
|
const code = errorCode(err);
|
|
1078
1100
|
return code === "ECONNREFUSED" || code === "ECONNRESET" || code === "EPIPE" || code === "ETIMEDOUT" || code === "ENOENT";
|
package/src/provider.ts
CHANGED
|
@@ -685,6 +685,10 @@ export class SubcProvider {
|
|
|
685
685
|
} catch (err) {
|
|
686
686
|
if (this.closeStarted) throw err;
|
|
687
687
|
if (!isProviderReconnectTransient(err)) throw err;
|
|
688
|
+
// Providers retry transient failures indefinitely by design (a module
|
|
689
|
+
// keeps trying until closed; only permanent errors fail-fatal), so an
|
|
690
|
+
// auth mismatch heals as soon as the daemon settles and a retry re-reads
|
|
691
|
+
// the rotated connection file.
|
|
688
692
|
await this.opts.sleep(delay);
|
|
689
693
|
delay = Math.min(delay * 2, this.opts.reconnectBackoff.capMs);
|
|
690
694
|
}
|
|
@@ -827,7 +831,14 @@ function isProviderReconnectTransient(err: unknown): boolean {
|
|
|
827
831
|
if (err instanceof SubcProviderError) return err.code === "duplicate_module_id";
|
|
828
832
|
if (err instanceof SocketClosedError || err instanceof SocketTimeoutError) return true;
|
|
829
833
|
if (err instanceof SocketWriteNotQueuedError || err instanceof SocketWriteQueuedError) return true;
|
|
830
|
-
|
|
834
|
+
// AuthError is transient during reconnect: the daemon rotates its key on every
|
|
835
|
+
// restart, and with a fixed port a client racing the restart can read the
|
|
836
|
+
// pre-rotation file yet still connect — proof mismatch then means "stale key
|
|
837
|
+
// mid-rotation", not "impostor". Each retry re-reads the connection file, and
|
|
838
|
+
// server-proves-first protects every attempt. First-connect auth failures stay
|
|
839
|
+
// permanent in serve()'s initial openConnection (never routed through here).
|
|
840
|
+
if (err instanceof AuthError) return true;
|
|
841
|
+
if (err instanceof ConnectionFileError) return false;
|
|
831
842
|
|
|
832
843
|
const code = errorCode(err);
|
|
833
844
|
return code === "ECONNREFUSED" || code === "ECONNRESET" || code === "EPIPE" || code === "ETIMEDOUT" || code === "ENOENT";
|