@namzu/sandbox 6.1.0 → 7.0.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.
Files changed (33) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/dist/backends/aci-standby-pool/index.d.ts.map +1 -1
  3. package/dist/backends/aci-standby-pool/index.js +70 -31
  4. package/dist/backends/aci-standby-pool/index.js.map +1 -1
  5. package/dist/backends/docker/index.d.ts.map +1 -1
  6. package/dist/backends/docker/index.js +105 -36
  7. package/dist/backends/docker/index.js.map +1 -1
  8. package/dist/backends/firecracker/index.d.ts.map +1 -1
  9. package/dist/backends/firecracker/index.js +43 -25
  10. package/dist/backends/firecracker/index.js.map +1 -1
  11. package/dist/backends/firecracker/transport.d.ts +3 -3
  12. package/dist/backends/firecracker/transport.d.ts.map +1 -1
  13. package/dist/backends/firecracker/transport.js +82 -40
  14. package/dist/backends/firecracker/transport.js.map +1 -1
  15. package/dist/backends/readiness.d.ts +43 -0
  16. package/dist/backends/readiness.d.ts.map +1 -0
  17. package/dist/backends/readiness.js +150 -0
  18. package/dist/backends/readiness.js.map +1 -0
  19. package/dist/egress/proxy.d.ts.map +1 -1
  20. package/dist/egress/proxy.js +20 -3
  21. package/dist/egress/proxy.js.map +1 -1
  22. package/dist/index.d.ts +18 -0
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +9 -0
  25. package/dist/index.js.map +1 -1
  26. package/package.json +2 -2
  27. package/src/backends/aci-standby-pool/index.ts +99 -30
  28. package/src/backends/docker/index.ts +135 -44
  29. package/src/backends/firecracker/index.ts +49 -21
  30. package/src/backends/firecracker/transport.ts +87 -38
  31. package/src/backends/readiness.ts +173 -0
  32. package/src/egress/proxy.ts +18 -3
  33. package/src/index.ts +27 -0
@@ -54,6 +54,7 @@
54
54
  */
55
55
  import net from 'node:net';
56
56
  import tls from 'node:tls';
57
+ import { OperationDeadline, OperationDeadlineExpired } from '../readiness.js';
57
58
  import { ExecResultAccumulator, parseExecLine, } from './protocol.js';
58
59
  const DEFAULT_CONNECT_TIMEOUT_MS = 5_000;
59
60
  const DEFAULT_CONNECT_RETRY_BUDGET_MS = 30_000;
@@ -126,53 +127,58 @@ export class VsockAgentTransport {
126
127
  * failures (ECONNREFUSED while the agent re-listens after a resume,
127
128
  * a dropped CONNECT ack) until the budget is exhausted.
128
129
  */
129
- async dial() {
130
+ async dial(signal) {
130
131
  const deadline = Date.now() + this.connectRetryBudgetMs;
131
132
  let lastErr;
132
133
  for (;;) {
134
+ signal?.throwIfAborted();
133
135
  try {
134
- return await this.connectOnce();
136
+ return await this.connectOnce(signal);
135
137
  }
136
138
  catch (err) {
139
+ if (signal?.aborted)
140
+ throw signal.reason;
137
141
  lastErr = err;
138
142
  if (Date.now() >= deadline)
139
143
  break;
140
- await delay(this.connectRetryIntervalMs);
144
+ await delay(this.connectRetryIntervalMs, signal);
141
145
  }
142
146
  }
143
147
  throw new Error(`vsock transport: could not connect to agent within ${this.connectRetryBudgetMs}ms (handle=${describeHandle(this.handle)}): ${lastErr instanceof Error ? lastErr.message : String(lastErr)}`, { cause: lastErr });
144
148
  }
145
- connectOnce() {
149
+ connectOnce(signal) {
146
150
  const handle = this.handle;
147
151
  if (handle.kind === 'mtls')
148
- return this.connectOnceMtls(handle);
152
+ return this.connectOnceMtls(handle, signal);
149
153
  return new Promise((resolve, reject) => {
150
154
  const path = handle.kind === 'unix' ? handle.path : handle.udsPath;
151
155
  const socket = net.connect({ path });
152
156
  let settled = false;
153
- const timer = setTimeout(() => {
154
- if (settled)
155
- return;
156
- settled = true;
157
- socket.destroy();
158
- reject(new Error(`connect/handshake timed out after ${this.connectTimeoutMs}ms`));
159
- }, this.connectTimeoutMs);
160
- timer.unref();
161
157
  const fail = (err) => {
162
158
  if (settled)
163
159
  return;
164
160
  settled = true;
165
161
  clearTimeout(timer);
162
+ signal?.removeEventListener('abort', abort);
166
163
  socket.destroy();
167
164
  reject(err);
168
165
  };
166
+ const abort = () => fail(signalError(signal));
167
+ const timer = setTimeout(() => fail(new Error(`connect/handshake timed out after ${this.connectTimeoutMs}ms`)), this.connectTimeoutMs);
168
+ timer.unref();
169
169
  socket.once('error', fail);
170
+ if (signal?.aborted) {
171
+ abort();
172
+ return;
173
+ }
174
+ signal?.addEventListener('abort', abort, { once: true });
170
175
  socket.once('connect', () => {
171
176
  if (handle.kind === 'unix') {
172
177
  if (settled)
173
178
  return;
174
179
  settled = true;
175
180
  clearTimeout(timer);
181
+ signal?.removeEventListener('abort', abort);
176
182
  socket.removeListener('error', fail);
177
183
  resolve(socket);
178
184
  return;
@@ -196,6 +202,7 @@ export class VsockAgentTransport {
196
202
  return;
197
203
  settled = true;
198
204
  clearTimeout(timer);
205
+ signal?.removeEventListener('abort', abort);
199
206
  socket.removeListener('error', fail);
200
207
  // Any bytes the ackReader over-read after the ack line are
201
208
  // application framing; replay them into the caller.
@@ -230,7 +237,7 @@ export class VsockAgentTransport {
230
237
  * `OK` ack first, this arm must await that line (mirroring the vsock
231
238
  * CONNECT-ack path) before resolving — today it does not.
232
239
  */
233
- connectOnceMtls(handle) {
240
+ connectOnceMtls(handle, signal) {
234
241
  return new Promise((resolve, reject) => {
235
242
  const socket = tls.connect({
236
243
  host: handle.host,
@@ -243,23 +250,24 @@ export class VsockAgentTransport {
243
250
  minVersion: 'TLSv1.3',
244
251
  });
245
252
  let settled = false;
246
- const timer = setTimeout(() => {
247
- if (settled)
248
- return;
249
- settled = true;
250
- socket.destroy();
251
- reject(new Error(`connect/handshake timed out after ${this.connectTimeoutMs}ms`));
252
- }, this.connectTimeoutMs);
253
- timer.unref();
254
253
  const fail = (err) => {
255
254
  if (settled)
256
255
  return;
257
256
  settled = true;
258
257
  clearTimeout(timer);
258
+ signal?.removeEventListener('abort', abort);
259
259
  socket.destroy();
260
260
  reject(err);
261
261
  };
262
+ const abort = () => fail(signalError(signal));
263
+ const timer = setTimeout(() => fail(new Error(`connect/handshake timed out after ${this.connectTimeoutMs}ms`)), this.connectTimeoutMs);
264
+ timer.unref();
262
265
  socket.once('error', fail);
266
+ if (signal?.aborted) {
267
+ abort();
268
+ return;
269
+ }
270
+ signal?.addEventListener('abort', abort, { once: true });
263
271
  // `secureConnect` fires only after the cert chain is verified
264
272
  // (rejectUnauthorized rejects a bad/missing-CA server via 'error'
265
273
  // before this). Belt-and-suspenders: assert `authorized` too.
@@ -272,6 +280,7 @@ export class VsockAgentTransport {
272
280
  }
273
281
  settled = true;
274
282
  clearTimeout(timer);
283
+ signal?.removeEventListener('abort', abort);
275
284
  socket.removeListener('error', fail);
276
285
  // Routing preamble — the host-relay analogue of the vsock
277
286
  // `CONNECT <port>` line. The relay consumes it, resolves the
@@ -287,29 +296,25 @@ export class VsockAgentTransport {
287
296
  * healthz). Applies the read-idle timeout so a post-resume hung read
288
297
  * is torn down rather than wedging the caller.
289
298
  */
290
- async request(req) {
291
- const socket = await this.dial();
299
+ async request(req, signal) {
300
+ const socket = await this.dial(signal);
292
301
  return await new Promise((resolve, reject) => {
293
302
  const reader = new FrameReader();
294
303
  let settled = false;
295
- const idle = new IdleTimer(this.readIdleTimeoutMs, () => {
296
- if (settled)
297
- return;
298
- settled = true;
299
- socket.destroy();
300
- reject(new Error(`vsock transport: read idle timeout after ${this.readIdleTimeoutMs}ms`));
301
- });
302
304
  const finish = (err, value) => {
303
305
  if (settled)
304
306
  return;
305
307
  settled = true;
306
308
  idle.clear();
309
+ signal?.removeEventListener('abort', abort);
307
310
  socket.destroy();
308
311
  if (err)
309
312
  reject(err);
310
313
  else
311
314
  resolve(value);
312
315
  };
316
+ const abort = () => finish(signalError(signal));
317
+ const idle = new IdleTimer(this.readIdleTimeoutMs, () => finish(new Error(`vsock transport: read idle timeout after ${this.readIdleTimeoutMs}ms`)));
313
318
  socket.on('data', (chunk) => {
314
319
  idle.bump();
315
320
  let frames;
@@ -332,6 +337,11 @@ export class VsockAgentTransport {
332
337
  });
333
338
  socket.once('error', (err) => finish(err));
334
339
  socket.once('close', () => finish(new Error('vsock transport: socket closed before reply')));
340
+ if (signal?.aborted) {
341
+ abort();
342
+ return;
343
+ }
344
+ signal?.addEventListener('abort', abort, { once: true });
335
345
  idle.bump();
336
346
  socket.write(frame(JSON.stringify(req)));
337
347
  });
@@ -410,12 +420,14 @@ export class VsockAgentTransport {
410
420
  });
411
421
  }
412
422
  /** Liveness probe. Returns true on an `{ ok: true }` healthz reply. */
413
- async healthz() {
423
+ async healthz(signal) {
414
424
  try {
415
- const res = await this.request({ op: 'healthz' });
425
+ const res = await this.request({ op: 'healthz' }, signal);
416
426
  return res.ok === true;
417
427
  }
418
428
  catch {
429
+ if (signal?.aborted)
430
+ throw signal.reason;
419
431
  return false;
420
432
  }
421
433
  }
@@ -425,19 +437,28 @@ export class VsockAgentTransport {
425
437
  * (which already carries connect retry) — used by the backend's
426
438
  * post-create readiness fence.
427
439
  */
428
- async waitForReady(timeoutMs, pollIntervalMs) {
429
- const deadline = Date.now() + timeoutMs;
440
+ async waitForReady(timeoutMs, pollIntervalMs, signal) {
441
+ const deadline = new OperationDeadline(timeoutMs, 'firecracker agent readiness', signal);
430
442
  let lastErr;
431
- while (Date.now() < deadline) {
443
+ while (deadline.remainingMs() > 0) {
432
444
  try {
433
- if (await this.healthz())
445
+ if (await deadline.run((signal) => this.healthz(signal)))
434
446
  return;
435
447
  lastErr = new Error('healthz returned not-ok');
436
448
  }
437
449
  catch (err) {
438
450
  lastErr = err;
451
+ if (err instanceof OperationDeadlineExpired)
452
+ break;
453
+ }
454
+ try {
455
+ await deadline.delay(pollIntervalMs);
456
+ }
457
+ catch (err) {
458
+ if (err instanceof OperationDeadlineExpired)
459
+ break;
460
+ throw err;
439
461
  }
440
- await delay(pollIntervalMs);
441
462
  }
442
463
  throw new Error(`vsock transport: agent did not become ready within ${timeoutMs}ms: ${lastErr instanceof Error ? lastErr.message : String(lastErr)}`);
443
464
  }
@@ -505,8 +526,29 @@ class IdleTimer {
505
526
  this.timer = undefined;
506
527
  }
507
528
  }
508
- function delay(ms) {
509
- return new Promise((resolve) => setTimeout(resolve, ms));
529
+ function delay(ms, signal) {
530
+ return new Promise((resolve, reject) => {
531
+ if (signal?.aborted) {
532
+ reject(signalError(signal));
533
+ return;
534
+ }
535
+ const finish = (err) => {
536
+ clearTimeout(timer);
537
+ signal?.removeEventListener('abort', abort);
538
+ if (err === undefined)
539
+ resolve();
540
+ else
541
+ reject(err);
542
+ };
543
+ const abort = () => finish(signalError(signal));
544
+ const timer = setTimeout(() => finish(), ms);
545
+ signal?.addEventListener('abort', abort, { once: true });
546
+ });
547
+ }
548
+ function signalError(signal) {
549
+ if (signal?.reason instanceof Error)
550
+ return signal.reason;
551
+ return new Error(signal?.reason === undefined ? 'operation aborted' : String(signal.reason));
510
552
  }
511
553
  function describeHandle(handle) {
512
554
  switch (handle.kind) {
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/backends/firecracker/transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/backends/firecracker/transport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * One owner for backend readiness clocks.
3
+ *
4
+ * A timestamp checked between retries is not a deadline when the thing inside
5
+ * a retry can remain pending. This owner races every foreign promise against
6
+ * the remaining operation budget and supplies a private signal so cooperative
7
+ * transports can release their sockets too.
8
+ */
9
+ /**
10
+ * Readiness failure teardown is deliberately a second, short budget. The
11
+ * health deadline has already expired, so pretending cleanup fits inside it
12
+ * either skips cleanup entirely or keeps `create()` pending without a bound.
13
+ */
14
+ export declare const FAILURE_CLEANUP_GRACE_MS = 1000;
15
+ export interface ReadinessOptions {
16
+ readonly timeoutMs: number;
17
+ readonly pollIntervalMs: number;
18
+ }
19
+ export declare class OperationDeadlineExpired extends Error {
20
+ readonly label: string;
21
+ constructor(label: string);
22
+ }
23
+ export declare function resolveReadinessOptions(owner: string, timeoutMs: number | undefined, pollIntervalMs: number | undefined, defaults: ReadinessOptions): ReadinessOptions;
24
+ export declare class OperationDeadline {
25
+ readonly label: string;
26
+ private readonly callerSignal?;
27
+ private readonly expiresAt;
28
+ constructor(timeoutMs: number, label: string, callerSignal?: AbortSignal | undefined);
29
+ remainingMs(): number;
30
+ run<T>(operation: (signal: AbortSignal) => Promise<T>): Promise<T>;
31
+ delay(maximumMs: number): Promise<void>;
32
+ }
33
+ export declare function probeHttpHealth(url: string, signal: AbortSignal): Promise<{
34
+ readonly ok: boolean;
35
+ readonly status: number;
36
+ }>;
37
+ /**
38
+ * Failure cleanup must never replace or indefinitely delay the primary
39
+ * readiness error. Cooperative cleanup observes the signal; an implementation
40
+ * that ignores it is still detached from the caller by the independent race.
41
+ */
42
+ export declare function runFailureCleanup(cleanup: (signal: AbortSignal) => Promise<void>, graceMs?: number): Promise<void>;
43
+ //# sourceMappingURL=readiness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readiness.d.ts","sourceRoot":"","sources":["../../src/backends/readiness.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,OAAQ,CAAA;AAE7C,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;CAC/B;AAED,qBAAa,wBAAyB,SAAQ,KAAK;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM;gBAAb,KAAK,EAAE,MAAM;CAIlC;AAUD,wBAAgB,uBAAuB,CACtC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,QAAQ,EAAE,gBAAgB,GACxB,gBAAgB,CAQlB;AAED,qBAAa,iBAAiB;IAK5B,QAAQ,CAAC,KAAK,EAAE,MAAM;IACtB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAL/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;gBAGjC,SAAS,EAAE,MAAM,EACR,KAAK,EAAE,MAAM,EACL,YAAY,CAAC,EAAE,WAAW,YAAA;IAM5C,WAAW,IAAI,MAAM;IAIf,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IA6ClE,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAsB7C;AAED,wBAAsB,eAAe,CACpC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,WAAW,GACjB,OAAO,CAAC;IAAE,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAY5D;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACtC,OAAO,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,EAC/C,OAAO,SAA2B,GAChC,OAAO,CAAC,IAAI,CAAC,CASf"}
@@ -0,0 +1,150 @@
1
+ /**
2
+ * One owner for backend readiness clocks.
3
+ *
4
+ * A timestamp checked between retries is not a deadline when the thing inside
5
+ * a retry can remain pending. This owner races every foreign promise against
6
+ * the remaining operation budget and supplies a private signal so cooperative
7
+ * transports can release their sockets too.
8
+ */
9
+ const MAX_NODE_TIMER_MS = 2_147_483_647;
10
+ /**
11
+ * Readiness failure teardown is deliberately a second, short budget. The
12
+ * health deadline has already expired, so pretending cleanup fits inside it
13
+ * either skips cleanup entirely or keeps `create()` pending without a bound.
14
+ */
15
+ export const FAILURE_CLEANUP_GRACE_MS = 1_000;
16
+ export class OperationDeadlineExpired extends Error {
17
+ label;
18
+ constructor(label) {
19
+ super(`${label} deadline expired`);
20
+ this.label = label;
21
+ this.name = 'OperationDeadlineExpired';
22
+ }
23
+ }
24
+ function assertTimerValue(field, value) {
25
+ if (!Number.isSafeInteger(value) || value <= 0 || value > MAX_NODE_TIMER_MS) {
26
+ throw new RangeError(`${field} must be a positive safe integer no greater than ${MAX_NODE_TIMER_MS}; received ${String(value)}`);
27
+ }
28
+ }
29
+ export function resolveReadinessOptions(owner, timeoutMs, pollIntervalMs, defaults) {
30
+ const resolved = {
31
+ timeoutMs: timeoutMs ?? defaults.timeoutMs,
32
+ pollIntervalMs: pollIntervalMs ?? defaults.pollIntervalMs,
33
+ };
34
+ assertTimerValue(`${owner}.readyTimeoutMs`, resolved.timeoutMs);
35
+ assertTimerValue(`${owner}.readyPollIntervalMs`, resolved.pollIntervalMs);
36
+ return resolved;
37
+ }
38
+ export class OperationDeadline {
39
+ label;
40
+ callerSignal;
41
+ expiresAt;
42
+ constructor(timeoutMs, label, callerSignal) {
43
+ this.label = label;
44
+ this.callerSignal = callerSignal;
45
+ assertTimerValue(`${label} timeout`, timeoutMs);
46
+ this.expiresAt = performance.now() + timeoutMs;
47
+ }
48
+ remainingMs() {
49
+ return Math.max(0, this.expiresAt - performance.now());
50
+ }
51
+ async run(operation) {
52
+ this.callerSignal?.throwIfAborted();
53
+ const remaining = this.remainingMs();
54
+ if (remaining <= 0)
55
+ throw new OperationDeadlineExpired(this.label);
56
+ const controller = new AbortController();
57
+ const expired = new OperationDeadlineExpired(this.label);
58
+ let timer;
59
+ let onCallerAbort;
60
+ const cancelled = this.callerSignal
61
+ ? new Promise((_resolve, reject) => {
62
+ onCallerAbort = () => {
63
+ const reason = this.callerSignal?.reason;
64
+ controller.abort(reason);
65
+ reject(reason);
66
+ };
67
+ this.callerSignal?.addEventListener('abort', onCallerAbort, {
68
+ once: true,
69
+ });
70
+ })
71
+ : undefined;
72
+ const expiry = new Promise((_resolve, reject) => {
73
+ timer = setTimeout(() => {
74
+ controller.abort(expired);
75
+ reject(expired);
76
+ }, remaining);
77
+ });
78
+ const pending = Promise.resolve().then(() => operation(controller.signal));
79
+ try {
80
+ const value = await Promise.race(cancelled ? [pending, expiry, cancelled] : [pending, expiry]);
81
+ // Publication fence: a foreign promise that settles at the boundary
82
+ // does not get to turn an already-expired attempt into readiness.
83
+ if (this.callerSignal?.aborted)
84
+ throw this.callerSignal.reason;
85
+ if (controller.signal.aborted || this.remainingMs() <= 0) {
86
+ controller.abort(expired);
87
+ throw expired;
88
+ }
89
+ return value;
90
+ }
91
+ finally {
92
+ if (timer !== undefined)
93
+ clearTimeout(timer);
94
+ if (onCallerAbort)
95
+ this.callerSignal?.removeEventListener('abort', onCallerAbort);
96
+ }
97
+ }
98
+ async delay(maximumMs) {
99
+ await this.run((signal) => new Promise((resolve, reject) => {
100
+ if (signal.aborted) {
101
+ reject(signal.reason);
102
+ return;
103
+ }
104
+ const finish = (err) => {
105
+ clearTimeout(timer);
106
+ signal.removeEventListener('abort', abort);
107
+ if (err === undefined)
108
+ resolve();
109
+ else
110
+ reject(err);
111
+ };
112
+ const abort = () => {
113
+ finish(signal.reason);
114
+ };
115
+ const timer = setTimeout(() => finish(), maximumMs);
116
+ signal.addEventListener('abort', abort, { once: true });
117
+ }));
118
+ }
119
+ }
120
+ export async function probeHttpHealth(url, signal) {
121
+ signal.throwIfAborted();
122
+ const response = await fetch(url, { signal });
123
+ const result = { ok: response.ok, status: response.status };
124
+ try {
125
+ await response.body?.cancel();
126
+ }
127
+ catch {
128
+ // The status is already known. A body cancellation failure must not
129
+ // hide it; the owning deadline still aborts the transport if needed.
130
+ }
131
+ signal.throwIfAborted();
132
+ return result;
133
+ }
134
+ /**
135
+ * Failure cleanup must never replace or indefinitely delay the primary
136
+ * readiness error. Cooperative cleanup observes the signal; an implementation
137
+ * that ignores it is still detached from the caller by the independent race.
138
+ */
139
+ export async function runFailureCleanup(cleanup, graceMs = FAILURE_CLEANUP_GRACE_MS) {
140
+ const deadline = new OperationDeadline(graceMs, 'sandbox failure cleanup');
141
+ try {
142
+ await deadline.run(cleanup);
143
+ }
144
+ catch {
145
+ // The readiness failure remains primary. Promise.race installed a
146
+ // rejection observer on the losing cleanup promise, so a late failure
147
+ // cannot become an unhandled rejection.
148
+ }
149
+ }
150
+ //# sourceMappingURL=readiness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readiness.js","sourceRoot":"","sources":["../../src/backends/readiness.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/egress/proxy.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAG1D;;;;;;;;;;;;;;;;GAgBG;AAEH,wEAAwE;AACxE,MAAM,WAAW,kBAAkB;IAClC;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,2CAA2C;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,iDAAiD;IACjD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,kBAAkB;IAClC,qEAAqE;IACrE,QAAQ,CAAC,YAAY,EAAE,MAAM,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAA;IACvD,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAA;IACpD;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1D;;;;;;;;OAQG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC3C,4DAA4D;IAC5D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAA;CAC7D;AAED,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,uEAAuE;IACvE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,kEAAkE;IAClE,eAAe,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,GAAG,IAAI,CAAA;IAChE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACtB;AAID,qBAAa,WAAW;IACvB,OAAO,CAAC,cAAc,CAAkC;IACxD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA+B;IAC3D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsD;IAC/E,sCAAsC;IACtC,OAAO,CAAC,QAAQ,CAAoB;IACpC;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0C;IACjE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmB;gBAErC,OAAO,EAAE,kBAAkB;IAejC,MAAM,CAAC,IAAI,SAAI,GAAG,OAAO,CAAC,kBAAkB,CAAC;YAyCrC,OAAO;IAWrB,OAAO,CAAC,IAAI;IAIZ;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAKrB,sEAAsE;YACxD,aAAa;IA4F3B;;;;;;;;;;;;;;;;;;;;;;OAsBG;YACW,aAAa;IA+C3B,yEAAyE;IACzE,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,aAAa;CAGrB"}
1
+ {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/egress/proxy.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAG1D;;;;;;;;;;;;;;;;GAgBG;AAEH,wEAAwE;AACxE,MAAM,WAAW,kBAAkB;IAClC;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,2CAA2C;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,iDAAiD;IACjD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,kBAAkB;IAClC,qEAAqE;IACrE,QAAQ,CAAC,YAAY,EAAE,MAAM,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAA;IACvD,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAA;IACpD;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1D;;;;;;;;OAQG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC3C,4DAA4D;IAC5D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAA;CAC7D;AAED,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,uEAAuE;IACvE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,kEAAkE;IAClE,eAAe,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,GAAG,IAAI,CAAA;IAChE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACtB;AAID,qBAAa,WAAW;IACvB,OAAO,CAAC,cAAc,CAAkC;IACxD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA+B;IAC3D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsD;IAC/E,sCAAsC;IACtC,OAAO,CAAC,QAAQ,CAAoB;IACpC;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0C;IACjE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmB;gBAErC,OAAO,EAAE,kBAAkB;IAejC,MAAM,CAAC,IAAI,SAAI,GAAG,OAAO,CAAC,kBAAkB,CAAC;YAqDrC,OAAO;IAWrB,OAAO,CAAC,IAAI;IAIZ;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAKrB,sEAAsE;YACxD,aAAa;IA4F3B;;;;;;;;;;;;;;;;;;;;;;OAsBG;YACW,aAAa;IAkD3B,yEAAyE;IACzE,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,aAAa;CAGrB"}
@@ -34,6 +34,11 @@ export class EgressProxy {
34
34
  const server = createServer((req, res) => {
35
35
  void this.handleRequest(req, res);
36
36
  });
37
+ const connections = new Set();
38
+ server.on('connection', (socket) => {
39
+ connections.add(socket);
40
+ socket.once('close', () => connections.delete(socket));
41
+ });
37
42
  server.on('connect', (req, socket, head) => {
38
43
  void this.handleConnect(req, socket, head);
39
44
  });
@@ -56,15 +61,24 @@ export class EgressProxy {
56
61
  // process runs out. Found by a test that hung rather than failed,
57
62
  // which is the shape this failure takes in production too.
58
63
  this.selfPort = boundPort;
64
+ let closePromise;
59
65
  return {
60
66
  port: boundPort,
61
67
  url: `http://127.0.0.1:${boundPort}`,
62
68
  setAllowedHosts: (resolve) => {
63
69
  this.resolveAllowed = resolve;
64
70
  },
65
- close: () => new Promise((resolve) => {
66
- server.close(() => resolve());
67
- }),
71
+ close: () => {
72
+ closePromise ??= new Promise((resolve) => {
73
+ // `server.close()` waits for existing connections. A readiness
74
+ // failure has no returned Sandbox handle through which those
75
+ // sockets can later be retired, so teardown owns them here.
76
+ for (const socket of connections)
77
+ socket.destroy();
78
+ server.close(() => resolve());
79
+ });
80
+ return closePromise;
81
+ },
68
82
  };
69
83
  }
70
84
  async allowed(host) {
@@ -232,6 +246,9 @@ export class EgressProxy {
232
246
  socket.on('error', () => {
233
247
  upstream.destroy();
234
248
  });
249
+ socket.once('close', () => {
250
+ upstream.destroy();
251
+ });
235
252
  }
236
253
  /** Whether a target names this proxy. See the loop guard in `listen`. */
237
254
  isSelf(host, port) {
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/egress/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAA;AAEhE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,UAAU,CAAA;AAGhD,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAE/F,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AA8E9D,MAAM,aAAa,GAAG,GAAG,CAAA;AAEzB,MAAM,OAAO,WAAW;IACf,cAAc,CAAkC;IACvC,WAAW,CAA+B;IAC1C,cAAc,CAAS;IACvB,QAAQ,CAAsD;IAC/E,sCAAsC;IAC9B,QAAQ,CAAoB;IACpC;;;;;OAKG;IACc,MAAM,CAA0C;IAChD,aAAa,CAAmB;IAEjD,YAAY,OAA2B;QACtC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,YAAY,CAAA;QAC1C,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAA;QAC5C,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,IAAI,CAAA;QACpD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;QAChC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,cAAc,IAAI,EAAE,CAAA;QACjD,IAAI,CAAC,MAAM,GAAG,qBAAqB,CAClC;YACC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7E,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1E,EACD,aAAa,CACb,CAAA;IACF,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC;QACpB,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACxC,KAAK,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QAClC,CAAC,CAAC,CAAA;QACF,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YAC1C,KAAK,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;QAC3C,CAAC,CAAC,CAAA;QACF,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;YAC5B,+DAA+D;YAC/D,iEAAiE;YACjE,yCAAyC;YACzC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE;gBACrC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;gBAC3B,OAAO,EAAE,CAAA;YACV,CAAC,CAAC,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;QAChC,MAAM,SAAS,GAAG,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;QACvF,oEAAoE;QACpE,kEAAkE;QAClE,kEAAkE;QAClE,gEAAgE;QAChE,kEAAkE;QAClE,2DAA2D;QAC3D,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAA;QAEzB,OAAO;YACN,IAAI,EAAE,SAAS;YACf,GAAG,EAAE,oBAAoB,SAAS,EAAE;YACpC,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE;gBAC5B,IAAI,CAAC,cAAc,GAAG,OAAO,CAAA;YAC9B,CAAC;YACD,KAAK,EAAE,GAAG,EAAE,CACX,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAC7B,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAA;YAC9B,CAAC,CAAC;SACH,CAAA;IACF,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,IAAY;QACjC,IAAI,CAAC;YACJ,OAAO,aAAa,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,CAAA;QACxD,CAAC;QAAC,MAAM,CAAC;YACR,6DAA6D;YAC7D,iEAAiE;YACjE,uBAAuB;YACvB,OAAO,KAAK,CAAA;QACb,CAAC;IACF,CAAC;IAEO,IAAI,CAAC,IAAY,EAAE,MAAc;QACxC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC9B,CAAC;IAED;;;;;;OAMG;IACK,aAAa,CAAC,IAAY;QACjC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC;YAAE,OAAO,IAAI,CAAA;QACzF,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAA;IAClC,CAAC;IAED,sEAAsE;IAC9D,KAAK,CAAC,aAAa,CAAC,GAAoB,EAAE,GAAmB;QACpE,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;QAC/B,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAA;YACpD,GAAG,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAA;YACzE,OAAM;QACP,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3C,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAA;YACpD,GAAG,CAAC,GAAG,CACN,4MAA4M,CAC5M,CAAA;YACD,OAAM;QACP,CAAC;QAED,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,6BAA6B,CAAC,CAAA;YACrD,GAAG,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAA;YAC9D,gEAAgE;YAChE,+DAA+D;YAC/D,0DAA0D;YAC1D,GAAG,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,IAAI,wCAAwC,CAAC,CAAA;YAC9E,OAAM;QACP,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAC/C,IAAI,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,OAAO,UAAU,CAAC,CAAA;YACjD,GAAG,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAA;YAC9D,iEAAiE;YACjE,gEAAgE;YAChE,mEAAmE;YACnE,8DAA8D;YAC9D,GAAG,CAAC,GAAG,CACN,kBAAkB,MAAM,CAAC,IAAI,SAAS,OAAO,oDAAoD,CACjG,CAAA;YACD,OAAM;QACP,CAAC;QAED,MAAM,OAAO,GAAG,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAA;QAClC,mEAAmE;QACnE,6CAA6C;QAC7C,KAAK,MAAM,GAAG,IAAI,CAAC,qBAAqB,EAAE,kBAAkB,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,CAAC;YAC3F,OAAO,OAAO,CAAC,GAAG,CAAC,CAAA;QACpB,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAClD,IAAI,UAAU,EAAE,CAAC;YAChB,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,GAAG,UAAU,CAAC,KAAK,CAAA;QAC5D,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAA;QAClE,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAA;QAChD,MAAM,QAAQ,GAAG,IAAI,CACpB;YACC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO;YACrC,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACxC,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO;YACP,gEAAgE;YAChE,8DAA8D;YAC9D,+DAA+D;YAC/D,8DAA8D;YAC9D,MAAM,EAAE,IAAI,CAAC,MAAM;SACnB,EACD,CAAC,QAAQ,EAAE,EAAE;YACZ,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,IAAI,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;YAC3D,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACnB,CAAC,CACD,CAAA;QAED,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YAC5B,kEAAkE;YAClE,mEAAmE;YACnE,mEAAmE;YACnE,gEAAgE;YAChE,+DAA+D;YAC/D,IAAI,GAAG,YAAY,mBAAmB,EAAE,CAAC;gBACxC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,iBAAiB,GAAG,CAAC,MAAM,UAAU,CAAC,CAAA;gBAC1D,IAAI,CAAC,GAAG,CAAC,WAAW;oBAAE,GAAG,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAA;gBACpF,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,OAAO,IAAI,CAAC,CAAA;gBAC3B,OAAM;YACP,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,WAAW;gBAAE,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAA;YAC1E,GAAG,CAAC,GAAG,CAAC,4BAA4B,GAAG,CAAC,OAAO,IAAI,CAAC,CAAA;QACrD,CAAC,CAAC,CAAA;QACF,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACnB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACK,KAAK,CAAC,aAAa,CAAC,GAAoB,EAAE,MAAc,EAAE,IAAY;QAC7E,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAA;QAEpD,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,6BAA6B,CAAC,CAAA;YAC9C,MAAM,CAAC,KAAK,CACX,YAAY,aAAa,gEAAgE,IAAI,wCAAwC,CACrI,CAAA;YACD,MAAM,CAAC,GAAG,EAAE,CAAA;YACZ,OAAM;QACP,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;QACxC,IAAI,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,OAAO,UAAU,CAAC,CAAA;YAC1C,MAAM,CAAC,KAAK,CACX,YAAY,aAAa,gEAAgE,IAAI,SAAS,OAAO,oDAAoD,CACjK,CAAA;YACD,MAAM,CAAC,GAAG,EAAE,CAAA;YACZ,OAAM;QACP,CAAC;QAED,kEAAkE;QAClE,uEAAuE;QACvE,sEAAsE;QACtE,qEAAqE;QACrE,MAAM,QAAQ,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE;YAClF,MAAM,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAA;YAC3D,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YACzC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACrB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACtB,CAAC,CAAC,CAAA;QAEF,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YAC5B,IAAI,GAAG,YAAY,mBAAmB,EAAE,CAAC;gBACxC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,iBAAiB,GAAG,CAAC,MAAM,UAAU,CAAC,CAAA;gBAC1D,MAAM,CAAC,KAAK,CACX,YAAY,aAAa,iDAAiD,GAAG,CAAC,OAAO,IAAI,CACzF,CAAA;YACF,CAAC;YACD,MAAM,CAAC,GAAG,EAAE,CAAA;QACb,CAAC,CAAC,CAAA;QACF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACvB,QAAQ,CAAC,OAAO,EAAE,CAAA;QACnB,CAAC,CAAC,CAAA;IACH,CAAC;IAED,yEAAyE;IACjE,MAAM,CAAC,IAAY,EAAE,IAAa;QACzC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAA;QAC9D,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,KAAK,CAAA;IACtE,CAAC;IAEO,aAAa,CAAC,IAAY;QACjC,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnE,CAAC;CACD;AASD;;;;;;GAMG;AACH,SAAS,WAAW,CAAC,GAAoB;IACxC,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,CAAA;IAEzB,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;QACxB,OAAO;YACN,IAAI,EAAE,GAAG,CAAC,QAAQ;YAClB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,IAAI,EAAE,GAAG,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE;YACpC,QAAQ,EAAE,GAAG,CAAC,QAAQ;SACtB,CAAA;IACF,CAAC;IAED,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAA;IACnC,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAA;IAC5B,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC,UAAU,CAAC,CAAA;IACjD,OAAO;QACN,IAAI;QACJ,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,IAAI,EAAE,GAAG,IAAI,GAAG;QAChB,QAAQ,EAAE,OAAO;KACjB,CAAA;AACF,CAAC"}
1
+ {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/egress/proxy.ts"],"names":[],"mappings":"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"}