veryfront 0.1.603 → 0.1.604
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/esm/deno.js
CHANGED
|
@@ -78,6 +78,7 @@ export declare class LazySandbox {
|
|
|
78
78
|
private attachExistingSession;
|
|
79
79
|
private getSession;
|
|
80
80
|
private waitForReadySession;
|
|
81
|
+
private waitForRuntimeDataPlaneReady;
|
|
81
82
|
private touchSession;
|
|
82
83
|
private startHeartbeatLoop;
|
|
83
84
|
private stopHeartbeatLoop;
|
|
@@ -94,6 +95,7 @@ export declare class LazySandbox {
|
|
|
94
95
|
private waitForExecStartRetry;
|
|
95
96
|
private reprovisionAfterExecStartFailure;
|
|
96
97
|
private resolveRuntimeEndpoint;
|
|
98
|
+
private resolveRuntimeEndpointFor;
|
|
97
99
|
private requireSessionId;
|
|
98
100
|
private authHeaders;
|
|
99
101
|
private jsonHeaders;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lazy-sandbox.d.ts","sourceRoot":"","sources":["../../../src/src/sandbox/lazy-sandbox.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAE5B,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,YAAY,CAAC;AAEpB,wCAAwC;AACxC,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sFAAsF;IACtF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sGAAsG;IACtG,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC/C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,sBAAsB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAC;CACrF;
|
|
1
|
+
{"version":3,"file":"lazy-sandbox.d.ts","sourceRoot":"","sources":["../../../src/src/sandbox/lazy-sandbox.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ const DEFAULT_CONTROL_REQUEST_TIMEOUT_MS = 15_000;
|
|
|
10
10
|
const DEFAULT_EXEC_START_TIMEOUT_MS = 30_000;
|
|
11
11
|
const DEFAULT_EXEC_START_MAX_ATTEMPTS = 3;
|
|
12
12
|
const DEFAULT_EXEC_START_RETRY_DELAY_MS = 1_000;
|
|
13
|
+
const RETRYABLE_DATA_PLANE_READINESS_STATUS_CODES = new Set([404, 502, 503, 504]);
|
|
13
14
|
const REPROVISIONABLE_EXEC_START_ERROR_CODES = new Set([
|
|
14
15
|
"ECONNREFUSED",
|
|
15
16
|
"ECONNRESET",
|
|
@@ -379,10 +380,11 @@ export class LazySandbox {
|
|
|
379
380
|
}
|
|
380
381
|
}
|
|
381
382
|
async resolveReadyEndpoint(session) {
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
383
|
+
const readySession = session.status === "running"
|
|
384
|
+
? session
|
|
385
|
+
: await this.waitForReadySession(session.id);
|
|
386
|
+
await this.waitForRuntimeDataPlaneReady(readySession);
|
|
387
|
+
return readySession.endpoint;
|
|
386
388
|
}
|
|
387
389
|
async attachExistingSession(sessionId) {
|
|
388
390
|
const projectId = this.resolveProjectId();
|
|
@@ -434,6 +436,33 @@ export class LazySandbox {
|
|
|
434
436
|
}
|
|
435
437
|
throw REQUEST_ERROR.create({ detail: "Sandbox did not become ready within timeout" });
|
|
436
438
|
}
|
|
439
|
+
async waitForRuntimeDataPlaneReady(session) {
|
|
440
|
+
if (resolveDefaultSandboxRuntimeEndpoint({ endpoint: session.endpoint }) === session.endpoint) {
|
|
441
|
+
return;
|
|
442
|
+
}
|
|
443
|
+
const runtimeEndpoint = this.resolveRuntimeEndpointFor(session.endpoint, session.id);
|
|
444
|
+
const start = Date.now();
|
|
445
|
+
let lastFailure = `sandbox status is ${session.status}`;
|
|
446
|
+
while (Date.now() - start < this.startupTimeoutMs) {
|
|
447
|
+
try {
|
|
448
|
+
const res = await this.fetchControl(`${runtimeEndpoint}/readyz`);
|
|
449
|
+
if (res.ok) {
|
|
450
|
+
return;
|
|
451
|
+
}
|
|
452
|
+
lastFailure = `${res.status} ${await res.text()}`;
|
|
453
|
+
if (!RETRYABLE_DATA_PLANE_READINESS_STATUS_CODES.has(res.status)) {
|
|
454
|
+
break;
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
catch (error) {
|
|
458
|
+
lastFailure = error instanceof Error ? error.message : String(error);
|
|
459
|
+
}
|
|
460
|
+
await new Promise((resolve) => dntShim.setTimeout(resolve, this.pollIntervalMs));
|
|
461
|
+
}
|
|
462
|
+
throw REQUEST_ERROR.create({
|
|
463
|
+
detail: `Sandbox data plane did not become ready: ${lastFailure}`,
|
|
464
|
+
});
|
|
465
|
+
}
|
|
437
466
|
async touchSession() {
|
|
438
467
|
const projectId = this.resolveProjectId();
|
|
439
468
|
if (!this.sandboxId && this.endpoint && this.sessionProjectId !== projectId) {
|
|
@@ -562,6 +591,9 @@ export class LazySandbox {
|
|
|
562
591
|
resolveRuntimeEndpoint() {
|
|
563
592
|
const endpoint = this.requireEndpoint();
|
|
564
593
|
const sessionId = this.requireSessionId();
|
|
594
|
+
return this.resolveRuntimeEndpointFor(endpoint, sessionId);
|
|
595
|
+
}
|
|
596
|
+
resolveRuntimeEndpointFor(endpoint, sessionId) {
|
|
565
597
|
return this.resolveRuntimeEndpointOption?.({ endpoint, sessionId }) ??
|
|
566
598
|
resolveDefaultSandboxRuntimeEndpoint({ endpoint });
|
|
567
599
|
}
|