@cortexkit/subc-client 0.21.1 → 0.22.0
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/client.d.ts +16 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +22 -11
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/launch-nonce.d.ts +45 -6
- package/dist/launch-nonce.d.ts.map +1 -1
- package/dist/launch-nonce.js +159 -3
- package/dist/launch-nonce.js.map +1 -1
- package/dist/provider.d.ts +6 -0
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +9 -6
- package/dist/provider.js.map +1 -1
- package/dist/socket.d.ts +29 -2
- package/dist/socket.d.ts.map +1 -1
- package/dist/socket.js +105 -14
- package/dist/socket.js.map +1 -1
- package/package.json +1 -1
- package/src/client.ts +38 -11
- package/src/index.ts +5 -0
- package/src/launch-nonce.ts +167 -5
- package/src/provider.ts +17 -6
- package/src/socket.ts +111 -15
package/dist/launch-nonce.d.ts
CHANGED
|
@@ -9,13 +9,14 @@
|
|
|
9
9
|
* {@link launchNonce} reads that descriptor once, closes it, and caches the
|
|
10
10
|
* value for the life of the process. While modules move over, the daemon also
|
|
11
11
|
* keeps setting the environment copy (`SUBC_LAUNCH_NONCE`), which
|
|
12
|
-
* {@link launchNonce} reads when no descriptor is named. Windows
|
|
13
|
-
*
|
|
12
|
+
* {@link launchNonce} reads when no descriptor is named. Windows uses a
|
|
13
|
+
* PID-authenticated named pipe; call {@link launchNonceAsync} to initialize it.
|
|
14
14
|
*
|
|
15
15
|
* This mirrors the Rust accessor in `subc-os` (`subc_os::launch_nonce`): the
|
|
16
16
|
* same checks in the same order, the same error names and messages.
|
|
17
17
|
*/
|
|
18
18
|
import { type BigIntStats } from "node:fs";
|
|
19
|
+
import { type Socket } from "node:net";
|
|
19
20
|
/** The environment copy of the nonce, kept only while modules move to the descriptor. */
|
|
20
21
|
export declare const SUBC_LAUNCH_NONCE_ENV = "SUBC_LAUNCH_NONCE";
|
|
21
22
|
/**
|
|
@@ -26,10 +27,17 @@ export declare const SUBC_LAUNCH_NONCE_ENV = "SUBC_LAUNCH_NONCE";
|
|
|
26
27
|
* whatever that process has at the number.
|
|
27
28
|
*/
|
|
28
29
|
export declare const SUBC_LAUNCH_NONCE_FD_ENV = "SUBC_LAUNCH_NONCE_FD";
|
|
30
|
+
/** The one-time Windows pipe name. Its name is not a secret. */
|
|
31
|
+
export declare const SUBC_LAUNCH_NONCE_PIPE_ENV = "SUBC_LAUNCH_NONCE_PIPE";
|
|
32
|
+
/** When the daemon sets this variable to `env`, a failed pipe read may use
|
|
33
|
+
* `SUBC_LAUNCH_NONCE` instead. The daemon keeps that copy until every module
|
|
34
|
+
* reads its secret from the pipe, so older modules can still register.
|
|
35
|
+
*/
|
|
36
|
+
export declare const SUBC_LAUNCH_NONCE_PIPE_FALLBACK_ENV = "SUBC_LAUNCH_NONCE_PIPE_FALLBACK";
|
|
29
37
|
/** The descriptor number the daemon gives the pipe's read end in the module. */
|
|
30
38
|
export declare const LAUNCH_NONCE_FD = 3;
|
|
31
39
|
/** Where a process got its launch nonce from, as modules report it in provenance. */
|
|
32
|
-
export type LaunchNonceSource = "fd" | "env";
|
|
40
|
+
export type LaunchNonceSource = "fd" | "pipe" | "env";
|
|
33
41
|
/** The nonce this process was launched with, and where it came from. */
|
|
34
42
|
export interface LaunchNonce {
|
|
35
43
|
readonly value: string;
|
|
@@ -39,7 +47,9 @@ export interface LaunchNonce {
|
|
|
39
47
|
* Why the descriptor named by `SUBC_LAUNCH_NONCE_FD` gave no nonce. The names
|
|
40
48
|
* are the Rust `LaunchNonceError` variants.
|
|
41
49
|
*
|
|
42
|
-
*
|
|
50
|
+
* These errors never fall back unless the Windows daemon explicitly sets
|
|
51
|
+
* `SUBC_LAUNCH_NONCE_PIPE_FALLBACK=env` while offering a nonempty environment copy.
|
|
52
|
+
* A named descriptor that
|
|
43
53
|
* cannot be read means the handoff went wrong, or that this process inherited
|
|
44
54
|
* the variable from a module without inheriting the pipe; reading the
|
|
45
55
|
* environment instead would hide the first and defeat the second.
|
|
@@ -58,7 +68,7 @@ export type LaunchNonceErrorKind =
|
|
|
58
68
|
/** Reading the named pipe failed. */
|
|
59
69
|
| "Unreadable"
|
|
60
70
|
/** The named pipe held bytes that are not UTF-8. */
|
|
61
|
-
| "NotUtf8";
|
|
71
|
+
| "NotUtf8" | "PipeNeedsAsync" | "PipeNotOpen" | "PipeEmpty" | "PipeUnreadable" | "PipeNotUtf8";
|
|
62
72
|
export interface LaunchNonceErrorDetails {
|
|
63
73
|
/** The descriptor number, for every kind except `Malformed`. */
|
|
64
74
|
fd?: number;
|
|
@@ -105,6 +115,10 @@ export declare function isLaunchNonceError(error: unknown): error is LaunchNonce
|
|
|
105
115
|
* names is taken only if it is a pipe with the named inode and holds bytes;
|
|
106
116
|
* it is then read to end of file and closed. Anything else throws and leaves
|
|
107
117
|
* the descriptor as it was, and never falls back to the environment.
|
|
118
|
+
* - Windows pipe reads use the async accessor. An uninitialized sync pipe
|
|
119
|
+
* reader throws `PipeNeedsAsync`, except when the daemon explicitly permits
|
|
120
|
+
* fallback with `SUBC_LAUNCH_NONCE_PIPE_FALLBACK=env`; then a sync reader
|
|
121
|
+
* caches the environment copy.
|
|
108
122
|
* - Otherwise the value of `SUBC_LAUNCH_NONCE` is used.
|
|
109
123
|
*
|
|
110
124
|
* It never changes `process.env`. Removing either variable would break any
|
|
@@ -128,6 +142,21 @@ export declare function launchNonce(): LaunchNonce | undefined;
|
|
|
128
142
|
* identity", such as the consumer's route open.
|
|
129
143
|
*/
|
|
130
144
|
export declare function launchNonceOrUndefined(): LaunchNonce | undefined;
|
|
145
|
+
/** Initialize the Windows pipe, or use the synchronous Unix/environment reader.
|
|
146
|
+
* Concurrent callers share one in-flight read and its cached result. After this
|
|
147
|
+
* completes, synchronous accessors return that same result. With the daemon's
|
|
148
|
+
* explicit `SUBC_LAUNCH_NONCE_PIPE_FALLBACK=env` permission, failed or incomplete
|
|
149
|
+
* pipe reads cache `SUBC_LAUNCH_NONCE` and its `env` source. Without that variable
|
|
150
|
+
* set to `env`, a failed pipe read remains an error even if the copy exists.
|
|
151
|
+
* Node's public pipe API cannot ask Windows to let the server inspect the
|
|
152
|
+
* client's identity without also allowing it to impersonate the client's token.
|
|
153
|
+
*/
|
|
154
|
+
export declare function launchNonceAsync(): Promise<LaunchNonce | undefined>;
|
|
155
|
+
/** Return the cached nonce asynchronously, or `undefined` if its read failed.
|
|
156
|
+
* The SDK uses this when building `route.open`: without a nonce it omits
|
|
157
|
+
* `consumer_identity` instead of presenting an unread or invalid credential.
|
|
158
|
+
*/
|
|
159
|
+
export declare function launchNonceOrUndefinedAsync(): Promise<LaunchNonce | undefined>;
|
|
131
160
|
type CachedResult = {
|
|
132
161
|
readonly ok: true;
|
|
133
162
|
readonly nonce: LaunchNonce | null;
|
|
@@ -141,6 +170,7 @@ type CachedResult = {
|
|
|
141
170
|
*/
|
|
142
171
|
interface SharedLaunchNonceCell {
|
|
143
172
|
result(): CachedResult;
|
|
173
|
+
resultAsync?(): Promise<CachedResult>;
|
|
144
174
|
}
|
|
145
175
|
/**
|
|
146
176
|
* Forgets the process-wide answer, so the next {@link launchNonce} reads again.
|
|
@@ -157,17 +187,26 @@ export type LaunchNonceStat = (fd: number) => Pick<BigIntStats, "isFIFO" | "ino"
|
|
|
157
187
|
*/
|
|
158
188
|
export declare class LaunchNonceCell implements SharedLaunchNonceCell {
|
|
159
189
|
private cached;
|
|
190
|
+
private pending;
|
|
160
191
|
/** How many times this cell has taken a descriptor. At most one. */
|
|
161
192
|
descriptorReads: number;
|
|
162
193
|
private readonly lookup;
|
|
163
194
|
private readonly platform;
|
|
164
195
|
private readonly stat;
|
|
165
|
-
|
|
196
|
+
private readonly pipeReader;
|
|
197
|
+
constructor(lookup: (key: string) => string | undefined, platform?: NodeJS.Platform, stat?: LaunchNonceStat, pipeReader?: (name: string) => Promise<LaunchNonce>);
|
|
166
198
|
result(): CachedResult;
|
|
199
|
+
resultAsync(): Promise<CachedResult>;
|
|
200
|
+
private permittedPipeFallback;
|
|
201
|
+
getAsync(): Promise<LaunchNonce | undefined>;
|
|
167
202
|
/** The cached value, reading it first if no caller has yet; throws a refusal. */
|
|
168
203
|
get(): LaunchNonce | undefined;
|
|
169
204
|
private read;
|
|
170
205
|
private readDescriptor;
|
|
171
206
|
}
|
|
207
|
+
/** Read a one-time pipe to EOF. The injected connector and budgets let unit
|
|
208
|
+
* tests exercise busy retry and timeouts without requiring a Windows host.
|
|
209
|
+
*/
|
|
210
|
+
export declare function readLaunchNoncePipe(name: string, connector?: (name: string) => Socket, openWindowMs?: number, readWindowMs?: number): Promise<LaunchNonce>;
|
|
172
211
|
export {};
|
|
173
212
|
//# sourceMappingURL=launch-nonce.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launch-nonce.d.ts","sourceRoot":"","sources":["../src/launch-nonce.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAkC,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"launch-nonce.d.ts","sourceRoot":"","sources":["../src/launch-nonce.ts"],"names":[],"mappings":"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"}
|
package/dist/launch-nonce.js
CHANGED
|
@@ -9,13 +9,14 @@
|
|
|
9
9
|
* {@link launchNonce} reads that descriptor once, closes it, and caches the
|
|
10
10
|
* value for the life of the process. While modules move over, the daemon also
|
|
11
11
|
* keeps setting the environment copy (`SUBC_LAUNCH_NONCE`), which
|
|
12
|
-
* {@link launchNonce} reads when no descriptor is named. Windows
|
|
13
|
-
*
|
|
12
|
+
* {@link launchNonce} reads when no descriptor is named. Windows uses a
|
|
13
|
+
* PID-authenticated named pipe; call {@link launchNonceAsync} to initialize it.
|
|
14
14
|
*
|
|
15
15
|
* This mirrors the Rust accessor in `subc-os` (`subc_os::launch_nonce`): the
|
|
16
16
|
* same checks in the same order, the same error names and messages.
|
|
17
17
|
*/
|
|
18
18
|
import { closeSync, fstatSync, readSync } from "node:fs";
|
|
19
|
+
import { connect } from "node:net";
|
|
19
20
|
/** The environment copy of the nonce, kept only while modules move to the descriptor. */
|
|
20
21
|
export const SUBC_LAUNCH_NONCE_ENV = "SUBC_LAUNCH_NONCE";
|
|
21
22
|
/**
|
|
@@ -26,6 +27,13 @@ export const SUBC_LAUNCH_NONCE_ENV = "SUBC_LAUNCH_NONCE";
|
|
|
26
27
|
* whatever that process has at the number.
|
|
27
28
|
*/
|
|
28
29
|
export const SUBC_LAUNCH_NONCE_FD_ENV = "SUBC_LAUNCH_NONCE_FD";
|
|
30
|
+
/** The one-time Windows pipe name. Its name is not a secret. */
|
|
31
|
+
export const SUBC_LAUNCH_NONCE_PIPE_ENV = "SUBC_LAUNCH_NONCE_PIPE";
|
|
32
|
+
/** When the daemon sets this variable to `env`, a failed pipe read may use
|
|
33
|
+
* `SUBC_LAUNCH_NONCE` instead. The daemon keeps that copy until every module
|
|
34
|
+
* reads its secret from the pipe, so older modules can still register.
|
|
35
|
+
*/
|
|
36
|
+
export const SUBC_LAUNCH_NONCE_PIPE_FALLBACK_ENV = "SUBC_LAUNCH_NONCE_PIPE_FALLBACK";
|
|
29
37
|
/** The descriptor number the daemon gives the pipe's read end in the module. */
|
|
30
38
|
export const LAUNCH_NONCE_FD = 3;
|
|
31
39
|
// This file sticks to syntax Node can strip without transforming (no
|
|
@@ -78,6 +86,10 @@ export function isLaunchNonceError(error) {
|
|
|
78
86
|
* names is taken only if it is a pipe with the named inode and holds bytes;
|
|
79
87
|
* it is then read to end of file and closed. Anything else throws and leaves
|
|
80
88
|
* the descriptor as it was, and never falls back to the environment.
|
|
89
|
+
* - Windows pipe reads use the async accessor. An uninitialized sync pipe
|
|
90
|
+
* reader throws `PipeNeedsAsync`, except when the daemon explicitly permits
|
|
91
|
+
* fallback with `SUBC_LAUNCH_NONCE_PIPE_FALLBACK=env`; then a sync reader
|
|
92
|
+
* caches the environment copy.
|
|
81
93
|
* - Otherwise the value of `SUBC_LAUNCH_NONCE` is used.
|
|
82
94
|
*
|
|
83
95
|
* It never changes `process.env`. Removing either variable would break any
|
|
@@ -106,6 +118,33 @@ export function launchNonceOrUndefined() {
|
|
|
106
118
|
const result = processCell().result();
|
|
107
119
|
return result.ok ? result.nonce ?? undefined : undefined;
|
|
108
120
|
}
|
|
121
|
+
/** Initialize the Windows pipe, or use the synchronous Unix/environment reader.
|
|
122
|
+
* Concurrent callers share one in-flight read and its cached result. After this
|
|
123
|
+
* completes, synchronous accessors return that same result. With the daemon's
|
|
124
|
+
* explicit `SUBC_LAUNCH_NONCE_PIPE_FALLBACK=env` permission, failed or incomplete
|
|
125
|
+
* pipe reads cache `SUBC_LAUNCH_NONCE` and its `env` source. Without that variable
|
|
126
|
+
* set to `env`, a failed pipe read remains an error even if the copy exists.
|
|
127
|
+
* Node's public pipe API cannot ask Windows to let the server inspect the
|
|
128
|
+
* client's identity without also allowing it to impersonate the client's token.
|
|
129
|
+
*/
|
|
130
|
+
export async function launchNonceAsync() {
|
|
131
|
+
const cell = processCell();
|
|
132
|
+
return unwrap(await (cell.resultAsync?.() ?? cell.result()));
|
|
133
|
+
}
|
|
134
|
+
/** Return the cached nonce asynchronously, or `undefined` if its read failed.
|
|
135
|
+
* The SDK uses this when building `route.open`: without a nonce it omits
|
|
136
|
+
* `consumer_identity` instead of presenting an unread or invalid credential.
|
|
137
|
+
*/
|
|
138
|
+
export async function launchNonceOrUndefinedAsync() {
|
|
139
|
+
try {
|
|
140
|
+
return await launchNonceAsync();
|
|
141
|
+
}
|
|
142
|
+
catch (error) {
|
|
143
|
+
if (isLaunchNonceError(error))
|
|
144
|
+
return undefined;
|
|
145
|
+
throw error;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
109
148
|
/**
|
|
110
149
|
* Where the process-wide cell lives. A registry symbol rather than a module
|
|
111
150
|
* variable, because a module's dependencies often install two copies of this
|
|
@@ -143,21 +182,61 @@ function unwrap(result) {
|
|
|
143
182
|
*/
|
|
144
183
|
export class LaunchNonceCell {
|
|
145
184
|
cached;
|
|
185
|
+
pending;
|
|
146
186
|
/** How many times this cell has taken a descriptor. At most one. */
|
|
147
187
|
descriptorReads = 0;
|
|
148
188
|
lookup;
|
|
149
189
|
platform;
|
|
150
190
|
stat;
|
|
151
|
-
|
|
191
|
+
pipeReader;
|
|
192
|
+
constructor(lookup, platform = process.platform, stat = (fd) => fstatSync(fd, { bigint: true }), pipeReader = readLaunchNoncePipe) {
|
|
152
193
|
this.lookup = lookup;
|
|
153
194
|
this.platform = platform;
|
|
154
195
|
this.stat = stat;
|
|
196
|
+
this.pipeReader = pipeReader;
|
|
155
197
|
}
|
|
156
198
|
result() {
|
|
199
|
+
if (this.cached === undefined && this.platform === "win32" && this.lookup(SUBC_LAUNCH_NONCE_PIPE_ENV) !== undefined) {
|
|
200
|
+
const fallback = this.permittedPipeFallback();
|
|
201
|
+
if (fallback === undefined) {
|
|
202
|
+
throw new LaunchNonceError("PipeNeedsAsync", "call launchNonceAsync() before the synchronous reader when SUBC_LAUNCH_NONCE_PIPE is set");
|
|
203
|
+
}
|
|
204
|
+
// Legacy synchronous readers cannot use net.connect. Only the daemon's
|
|
205
|
+
// explicit fallback permission lets them retain environment startup while
|
|
206
|
+
// environment-only modules migrate to async pipe reads.
|
|
207
|
+
this.cached = { ok: true, nonce: fallback };
|
|
208
|
+
}
|
|
157
209
|
if (this.cached === undefined)
|
|
158
210
|
this.cached = this.read();
|
|
159
211
|
return this.cached;
|
|
160
212
|
}
|
|
213
|
+
async resultAsync() {
|
|
214
|
+
if (this.cached !== undefined)
|
|
215
|
+
return this.cached;
|
|
216
|
+
if (this.pending !== undefined)
|
|
217
|
+
return this.pending;
|
|
218
|
+
const named = this.platform === "win32" ? this.lookup(SUBC_LAUNCH_NONCE_PIPE_ENV) : undefined;
|
|
219
|
+
if (named === undefined)
|
|
220
|
+
return this.result();
|
|
221
|
+
const fallback = this.permittedPipeFallback();
|
|
222
|
+
this.pending = this.pipeReader(named).then((nonce) => ({ ok: true, nonce: fallback !== undefined && nonce.value !== fallback.value ? fallback : nonce }), (error) => {
|
|
223
|
+
if (fallback !== undefined)
|
|
224
|
+
return { ok: true, nonce: fallback };
|
|
225
|
+
if (!isLaunchNonceError(error))
|
|
226
|
+
throw error;
|
|
227
|
+
return { ok: false, error };
|
|
228
|
+
}).then((result) => { this.cached ??= result; return this.cached; });
|
|
229
|
+
return this.pending;
|
|
230
|
+
}
|
|
231
|
+
permittedPipeFallback() {
|
|
232
|
+
if (this.lookup(SUBC_LAUNCH_NONCE_PIPE_FALLBACK_ENV) !== "env")
|
|
233
|
+
return undefined;
|
|
234
|
+
const value = this.lookup(SUBC_LAUNCH_NONCE_ENV);
|
|
235
|
+
return value ? makeLaunchNonce(value, "env") : undefined;
|
|
236
|
+
}
|
|
237
|
+
async getAsync() {
|
|
238
|
+
return unwrap(await this.resultAsync());
|
|
239
|
+
}
|
|
161
240
|
/** The cached value, reading it first if no caller has yet; throws a refusal. */
|
|
162
241
|
get() {
|
|
163
242
|
return unwrap(this.result());
|
|
@@ -331,4 +410,81 @@ function closeQuietly(fd) {
|
|
|
331
410
|
// Nothing useful can be done if closing the consumed pipe fails.
|
|
332
411
|
}
|
|
333
412
|
}
|
|
413
|
+
/** Read a one-time pipe to EOF. The injected connector and budgets let unit
|
|
414
|
+
* tests exercise busy retry and timeouts without requiring a Windows host.
|
|
415
|
+
*/
|
|
416
|
+
export async function readLaunchNoncePipe(name, connector = (path) => connect(path), openWindowMs = 500, readWindowMs = 2000) {
|
|
417
|
+
const deadline = Date.now() + openWindowMs;
|
|
418
|
+
for (;;) {
|
|
419
|
+
try {
|
|
420
|
+
const bytes = await pipeAttempt(name, connector, Math.max(1, deadline - Date.now()), readWindowMs);
|
|
421
|
+
if (bytes.length === 0)
|
|
422
|
+
throw new LaunchNonceError("PipeEmpty", "the launch nonce named pipe is empty");
|
|
423
|
+
let value;
|
|
424
|
+
try {
|
|
425
|
+
value = new TextDecoder("utf-8", { fatal: true }).decode(bytes);
|
|
426
|
+
}
|
|
427
|
+
catch {
|
|
428
|
+
throw new LaunchNonceError("PipeNotUtf8", "the launch nonce named pipe held bytes that are not UTF-8");
|
|
429
|
+
}
|
|
430
|
+
return makeLaunchNonce(value, "pipe");
|
|
431
|
+
}
|
|
432
|
+
catch (error) {
|
|
433
|
+
if (isLaunchNonceError(error))
|
|
434
|
+
throw error;
|
|
435
|
+
const busy = error?.code === "EBUSY" || errnoOf(error) === 231;
|
|
436
|
+
if (!busy || Date.now() >= deadline) {
|
|
437
|
+
throw new LaunchNonceError("PipeNotOpen", "SUBC_LAUNCH_NONCE_PIPE names a pipe that could not be opened", { errno: errnoOf(error) });
|
|
438
|
+
}
|
|
439
|
+
await new Promise((resolve) => setTimeout(resolve, Math.min(10, Math.max(1, deadline - Date.now()))));
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
function pipeAttempt(name, connector, openWindowMs, readWindowMs) {
|
|
444
|
+
return new Promise((resolve, reject) => {
|
|
445
|
+
let socket;
|
|
446
|
+
try {
|
|
447
|
+
socket = connector(name);
|
|
448
|
+
}
|
|
449
|
+
catch (error) {
|
|
450
|
+
reject(error);
|
|
451
|
+
return;
|
|
452
|
+
}
|
|
453
|
+
let connected = false;
|
|
454
|
+
let settled = false;
|
|
455
|
+
let size = 0;
|
|
456
|
+
const chunks = [];
|
|
457
|
+
let timer = setTimeout(() => finish(new LaunchNonceError("PipeNotOpen", "launch nonce pipe open timed out")), openWindowMs);
|
|
458
|
+
function finish(error) {
|
|
459
|
+
if (settled)
|
|
460
|
+
return;
|
|
461
|
+
settled = true;
|
|
462
|
+
clearTimeout(timer);
|
|
463
|
+
socket.destroy();
|
|
464
|
+
if (error !== undefined)
|
|
465
|
+
reject(error);
|
|
466
|
+
else
|
|
467
|
+
resolve(Buffer.concat(chunks));
|
|
468
|
+
}
|
|
469
|
+
socket.once("connect", () => {
|
|
470
|
+
connected = true;
|
|
471
|
+
clearTimeout(timer);
|
|
472
|
+
timer = setTimeout(() => finish(new LaunchNonceError("PipeUnreadable", "launch nonce pipe read timed out")), readWindowMs);
|
|
473
|
+
});
|
|
474
|
+
socket.on("data", (chunk) => {
|
|
475
|
+
size += chunk.length;
|
|
476
|
+
if (size > 4096) {
|
|
477
|
+
finish(new LaunchNonceError("PipeUnreadable", "launch nonce pipe exceeded its byte limit"));
|
|
478
|
+
return;
|
|
479
|
+
}
|
|
480
|
+
chunks.push(Buffer.from(chunk));
|
|
481
|
+
});
|
|
482
|
+
socket.once("end", () => finish());
|
|
483
|
+
socket.once("error", (error) => finish(connected ? new LaunchNonceError("PipeUnreadable", "could not read the launch nonce from the named pipe", { errno: errnoOf(error) }) : error));
|
|
484
|
+
socket.once("close", () => {
|
|
485
|
+
if (!settled)
|
|
486
|
+
finish(new LaunchNonceError("PipeUnreadable", "launch nonce pipe closed before EOF"));
|
|
487
|
+
});
|
|
488
|
+
});
|
|
489
|
+
}
|
|
334
490
|
//# sourceMappingURL=launch-nonce.js.map
|
package/dist/launch-nonce.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launch-nonce.js","sourceRoot":"","sources":["../src/launch-nonce.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"launch-nonce.js","sourceRoot":"","sources":["../src/launch-nonce.ts"],"names":[],"mappings":"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"}
|
package/dist/provider.d.ts
CHANGED
|
@@ -244,6 +244,12 @@ export interface SubcProviderConnectOptions {
|
|
|
244
244
|
sleep?: (ms: number) => Promise<void>;
|
|
245
245
|
/** Milliseconds to wait before emitting restored after the provider re-registers following a reconnect. */
|
|
246
246
|
restoredDebounceMs?: number;
|
|
247
|
+
/**
|
|
248
|
+
* Deadline budget (ms) without progress for reading a frame body after its
|
|
249
|
+
* header arrives. Each incoming chunk pushes the deadline out again.
|
|
250
|
+
* Defaults to 30,000 ms.
|
|
251
|
+
*/
|
|
252
|
+
bodyReadTimeoutMs?: number;
|
|
247
253
|
/** Callback that receives ProviderConnectionState events one at a time and in order. */
|
|
248
254
|
onConnectionState?: (event: ProviderConnectionState) => void | Promise<void>;
|
|
249
255
|
/**
|
package/dist/provider.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,gBAAgB,EAErB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAA2C,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACpG,OAAO,EACL,cAAc,EAMd,QAAQ,EAGT,MAAM,eAAe,CAAC;AACvB,OAAO,
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
|
package/dist/provider.js
CHANGED
|
@@ -3,7 +3,7 @@ import { AuthError, authenticateClient } from "./auth.js";
|
|
|
3
3
|
import { DEFAULT_RECONNECT_BACKOFF, isEstablishedRouteDead, parseRouteCloseReason, SUBC_MODULE_ID_ENV, } from "./client.js";
|
|
4
4
|
import { ConnectionFileError, readConnectionFile } from "./connection-file.js";
|
|
5
5
|
import { AdmissionClass, buildFlags, buildFrame, buildFrameWithVersion, encodeFrame, FrameType, Priority, PROTOCOL_VERSION, } from "./envelope.js";
|
|
6
|
-
import { isLaunchNonceError,
|
|
6
|
+
import { isLaunchNonceError, launchNonceAsync as processLaunchNonce, launchNonceOrUndefinedAsync, launchNonceOrUndefined, } from "./launch-nonce.js";
|
|
7
7
|
import { belongsToConnection, createRouteHandle, newConnectionToken, StaleRouteHandleError, } from "./route-handle.js";
|
|
8
8
|
import { SocketClosedError, SocketTimeoutError, SocketWriteNotQueuedError, SocketWriteQueuedError, SubcSocket, writeBorrowed, } from "./socket.js";
|
|
9
9
|
const DEFAULT_HANDSHAKE_TIMEOUT_MS = 10_000;
|
|
@@ -233,7 +233,7 @@ export class SubcProvider {
|
|
|
233
233
|
if (opts.manifest.protocol_ver !== PROTOCOL_VERSION) {
|
|
234
234
|
throw new SubcProviderError(`manifest protocol_ver ${opts.manifest.protocol_ver} does not match client protocol ${PROTOCOL_VERSION}`, "invalid_manifest");
|
|
235
235
|
}
|
|
236
|
-
const normalized = normalizeProviderConnectOptions(opts);
|
|
236
|
+
const normalized = await normalizeProviderConnectOptions(opts);
|
|
237
237
|
const opened = await SubcProvider.openConnection(normalized);
|
|
238
238
|
return new SubcProvider(opened.sock, opened.conn, normalized, opened.ack);
|
|
239
239
|
}
|
|
@@ -275,7 +275,9 @@ export class SubcProvider {
|
|
|
275
275
|
const control = { undecodablePushLogged: false, drainingHooks: new Set() };
|
|
276
276
|
try {
|
|
277
277
|
for (;;) {
|
|
278
|
-
const frame = await sock.readFrame(Number.POSITIVE_INFINITY, {
|
|
278
|
+
const frame = await sock.readFrame(Number.POSITIVE_INFINITY, {
|
|
279
|
+
afterHeaderMs: this.opts.bodyReadTimeoutMs ?? BODY_READ_TIMEOUT_MS,
|
|
280
|
+
});
|
|
279
281
|
const keepGoing = await this.dispatch(frame, sock, generation, control);
|
|
280
282
|
if (!keepGoing) {
|
|
281
283
|
if (this.sock === sock && this.generation === generation) {
|
|
@@ -882,7 +884,7 @@ function providerErrorFromFrame(frame) {
|
|
|
882
884
|
function nonEmpty(value) {
|
|
883
885
|
return value && value.length > 0 ? value : undefined;
|
|
884
886
|
}
|
|
885
|
-
function normalizeProviderConnectOptions(opts) {
|
|
887
|
+
async function normalizeProviderConnectOptions(opts) {
|
|
886
888
|
// The environment is read once here. The daemon injects both variables when it
|
|
887
889
|
// spawns a module; together they mark the process as supervised, and the nonce
|
|
888
890
|
// is also what HELLO echoes for a reserved module_id.
|
|
@@ -894,7 +896,7 @@ function normalizeProviderConnectOptions(opts) {
|
|
|
894
896
|
let processNonce;
|
|
895
897
|
if (opts.launchNonce === undefined) {
|
|
896
898
|
try {
|
|
897
|
-
processNonce = processLaunchNonce()?.value;
|
|
899
|
+
processNonce = (await processLaunchNonce())?.value;
|
|
898
900
|
}
|
|
899
901
|
catch (error) {
|
|
900
902
|
if (isLaunchNonceError(error))
|
|
@@ -903,7 +905,7 @@ function normalizeProviderConnectOptions(opts) {
|
|
|
903
905
|
}
|
|
904
906
|
}
|
|
905
907
|
else {
|
|
906
|
-
processNonce =
|
|
908
|
+
processNonce = (await launchNonceOrUndefinedAsync())?.value;
|
|
907
909
|
}
|
|
908
910
|
const envLaunchNonce = nonEmpty(processNonce);
|
|
909
911
|
const supervised = envModuleId !== undefined && envLaunchNonce !== undefined;
|
|
@@ -921,6 +923,7 @@ function normalizeProviderConnectOptions(opts) {
|
|
|
921
923
|
reconnectBackoff: opts.reconnectBackoff ?? DEFAULT_RECONNECT_BACKOFF,
|
|
922
924
|
sleep: opts.sleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms))),
|
|
923
925
|
restoredDebounceMs: opts.restoredDebounceMs ?? DEFAULT_RESTORED_DEBOUNCE_MS,
|
|
926
|
+
bodyReadTimeoutMs: opts.bodyReadTimeoutMs,
|
|
924
927
|
onConnectionState: opts.onConnectionState,
|
|
925
928
|
launchNonce: nonEmpty(opts.launchNonce ?? envLaunchNonce),
|
|
926
929
|
reconnectOnDrop: opts.reconnectOnDrop ?? !supervised,
|