@vercel/sandbox 2.0.0-beta.1 → 2.0.0-beta.11

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/sandbox.js CHANGED
@@ -16,6 +16,11 @@ function isSandboxStoppingError(err) {
16
16
  err.response.status === 422 &&
17
17
  err.json?.error?.code === "sandbox_stopping");
18
18
  }
19
+ function isSandboxSnapshottingError(err) {
20
+ return (err instanceof api_error_1.APIError &&
21
+ err.response.status === 422 &&
22
+ err.json?.error?.code === "sandbox_snapshotting");
23
+ }
19
24
  /**
20
25
  * A Sandbox is a persistent, isolated Linux MicroVMs to run commands in.
21
26
  * Use {@link Sandbox.create} or {@link Sandbox.get} to construct.
@@ -26,7 +31,7 @@ class Sandbox {
26
31
  * The name of this sandbox.
27
32
  */
28
33
  get name() {
29
- return this.namedSandbox.name;
34
+ return this.sandbox.name;
30
35
  }
31
36
  /**
32
37
  * Routes from ports to subdomains.
@@ -39,65 +44,73 @@ class Sandbox {
39
44
  * Whether the sandbox persists the state.
40
45
  */
41
46
  get persistent() {
42
- return this.namedSandbox.persistent;
47
+ return this.sandbox.persistent;
43
48
  }
44
49
  /**
45
50
  * The region this sandbox runs in.
46
51
  */
47
52
  get region() {
48
- return this.namedSandbox.region;
53
+ return this.sandbox.region;
49
54
  }
50
55
  /**
51
56
  * Number of virtual CPUs allocated.
52
57
  */
53
58
  get vcpus() {
54
- return this.namedSandbox.vcpus;
59
+ return this.sandbox.vcpus;
55
60
  }
56
61
  /**
57
62
  * Memory allocated in MB.
58
63
  */
59
64
  get memory() {
60
- return this.namedSandbox.memory;
65
+ return this.sandbox.memory;
61
66
  }
62
67
  /** Runtime identifier (e.g. "node24", "python3.13"). */
63
68
  get runtime() {
64
- return this.namedSandbox.runtime;
69
+ return this.sandbox.runtime;
65
70
  }
66
71
  /**
67
72
  * Cumulative egress bytes across all sessions.
68
73
  */
69
74
  get totalEgressBytes() {
70
- return this.namedSandbox.totalEgressBytes;
75
+ return this.sandbox.totalEgressBytes;
71
76
  }
72
77
  /**
73
78
  * Cumulative ingress bytes across all sessions.
74
79
  */
75
80
  get totalIngressBytes() {
76
- return this.namedSandbox.totalIngressBytes;
81
+ return this.sandbox.totalIngressBytes;
77
82
  }
78
83
  /**
79
84
  * Cumulative active CPU duration in milliseconds across all sessions.
80
85
  */
81
86
  get totalActiveCpuDurationMs() {
82
- return this.namedSandbox.totalActiveCpuDurationMs;
87
+ return this.sandbox.totalActiveCpuDurationMs;
83
88
  }
84
89
  /**
85
90
  * Cumulative wall-clock duration in milliseconds across all sessions.
86
91
  */
87
92
  get totalDurationMs() {
88
- return this.namedSandbox.totalDurationMs;
93
+ return this.sandbox.totalDurationMs;
89
94
  }
90
95
  /**
91
96
  * When this sandbox was last updated.
92
97
  */
93
98
  get updatedAt() {
94
- return new Date(this.namedSandbox.updatedAt);
99
+ return new Date(this.sandbox.updatedAt);
100
+ }
101
+ /**
102
+ * When the sandbox status was last updated.
103
+ */
104
+ get statusUpdatedAt() {
105
+ return this.sandbox.statusUpdatedAt
106
+ ? new Date(this.sandbox.statusUpdatedAt)
107
+ : undefined;
95
108
  }
96
109
  /**
97
110
  * When this sandbox was created.
98
111
  */
99
112
  get createdAt() {
100
- return new Date(this.namedSandbox.createdAt);
113
+ return new Date(this.sandbox.createdAt);
101
114
  }
102
115
  /**
103
116
  * Interactive port.
@@ -115,14 +128,20 @@ class Sandbox {
115
128
  * The default timeout of this sandbox in milliseconds.
116
129
  */
117
130
  get timeout() {
118
- return this.namedSandbox.timeout;
131
+ return this.sandbox.timeout;
132
+ }
133
+ /**
134
+ * Key-value tags attached to the sandbox.
135
+ */
136
+ get tags() {
137
+ return this.sandbox.tags;
119
138
  }
120
139
  /**
121
140
  * The default network policy of this sandbox.
122
141
  */
123
142
  get networkPolicy() {
124
- return this.namedSandbox.networkPolicy
125
- ? (0, network_policy_1.fromAPINetworkPolicy)(this.namedSandbox.networkPolicy)
143
+ return this.sandbox.networkPolicy
144
+ ? (0, network_policy_1.fromAPINetworkPolicy)(this.sandbox.networkPolicy)
126
145
  : undefined;
127
146
  }
128
147
  /**
@@ -135,7 +154,13 @@ class Sandbox {
135
154
  * The current snapshot ID of this sandbox, if any.
136
155
  */
137
156
  get currentSnapshotId() {
138
- return this.namedSandbox.currentSnapshotId;
157
+ return this.sandbox.currentSnapshotId;
158
+ }
159
+ /**
160
+ * The default snapshot expiration in milliseconds, if set.
161
+ */
162
+ get snapshotExpiration() {
163
+ return this.sandbox.snapshotExpiration;
139
164
  }
140
165
  /**
141
166
  * The amount of CPU used by the session. Only reported once the VM is stopped.
@@ -161,10 +186,11 @@ class Sandbox {
161
186
  token: credentials.token,
162
187
  fetch: params?.fetch,
163
188
  });
164
- return client.listNamedSandboxes({
189
+ const response = await client.listSandboxes({
165
190
  ...credentials,
166
191
  ...params,
167
192
  });
193
+ return response.json;
168
194
  }
169
195
  /**
170
196
  * Create a new sandbox.
@@ -195,6 +221,8 @@ class Sandbox {
195
221
  runtime: params && "runtime" in params ? params?.runtime : undefined,
196
222
  networkPolicy: params?.networkPolicy,
197
223
  env: params?.env,
224
+ tags: params?.tags,
225
+ snapshotExpiration: params?.snapshotExpiration,
198
226
  signal: params?.signal,
199
227
  name: params?.name,
200
228
  persistent: params?.persistent,
@@ -202,8 +230,8 @@ class Sandbox {
202
230
  });
203
231
  return new DisposableSandbox({
204
232
  client,
205
- session: response.json.sandbox,
206
- namedSandbox: response.json.namedSandbox,
233
+ session: response.json.session,
234
+ sandbox: response.json.sandbox,
207
235
  routes: response.json.routes,
208
236
  projectId: credentials.projectId,
209
237
  });
@@ -221,24 +249,30 @@ class Sandbox {
221
249
  token: credentials.token,
222
250
  fetch: params.fetch,
223
251
  });
224
- const response = await client.getNamedSandbox({
252
+ const privateParams = (0, types_1.getPrivateParams)(params);
253
+ const response = await client.getSandbox({
225
254
  name: params.name,
226
255
  projectId: credentials.projectId,
227
256
  resume: params.resume,
228
257
  signal: params.signal,
258
+ ...privateParams,
229
259
  });
230
260
  return new Sandbox({
231
261
  client,
232
- session: response.json.sandbox,
233
- namedSandbox: response.json.namedSandbox,
262
+ session: response.json.session,
263
+ sandbox: response.json.sandbox,
234
264
  routes: response.json.routes,
235
265
  projectId: credentials.projectId,
236
266
  });
237
267
  }
238
- constructor({ client, routes, session, namedSandbox, projectId, }) {
268
+ constructor({ client, routes, session, sandbox, projectId, }) {
269
+ /**
270
+ * In-flight resume promise, used to deduplicate concurrent resume calls.
271
+ */
272
+ this.resumePromise = null;
239
273
  this.client = client;
240
274
  this.session = new session_1.Session({ client, routes, session });
241
- this.namedSandbox = namedSandbox;
275
+ this.sandbox = sandbox;
242
276
  this.projectId = projectId;
243
277
  }
244
278
  /**
@@ -250,11 +284,19 @@ class Sandbox {
250
284
  return this.session;
251
285
  }
252
286
  /**
253
- * Resume this sandbox by creating a new session via `getNamedSandbox`.
287
+ * Resume this sandbox by creating a new session via `getSandbox`.
254
288
  */
255
289
  async resume(signal) {
256
- const response = await this.client.getNamedSandbox({
257
- name: this.namedSandbox.name,
290
+ if (!this.resumePromise) {
291
+ this.resumePromise = this.doResume(signal).finally(() => {
292
+ this.resumePromise = null;
293
+ });
294
+ }
295
+ return this.resumePromise;
296
+ }
297
+ async doResume(signal) {
298
+ const response = await this.client.getSandbox({
299
+ name: this.sandbox.name,
258
300
  projectId: this.projectId,
259
301
  resume: true,
260
302
  signal,
@@ -262,7 +304,7 @@ class Sandbox {
262
304
  this.session = new session_1.Session({
263
305
  client: this.client,
264
306
  routes: response.json.routes,
265
- session: response.json.sandbox,
307
+ session: response.json.session,
266
308
  });
267
309
  }
268
310
  /**
@@ -273,21 +315,21 @@ class Sandbox {
273
315
  let status = this.session.status;
274
316
  while (status === "stopping" || status === "snapshotting") {
275
317
  await (0, promises_1.setTimeout)(pollingInterval, undefined, { signal });
276
- const poll = await this.client.getSandbox({
277
- sandboxId: this.session.sessionId,
318
+ const poll = await this.client.getSession({
319
+ sessionId: this.session.sessionId,
278
320
  signal,
279
321
  });
280
322
  this.session = new session_1.Session({
281
323
  client: this.client,
282
324
  routes: poll.json.routes,
283
- session: poll.json.sandbox,
325
+ session: poll.json.session,
284
326
  });
285
- status = poll.json.sandbox.status;
327
+ status = poll.json.session.status;
286
328
  }
287
329
  await this.resume(signal);
288
330
  }
289
331
  /**
290
- * Execute `fn`, and if the session is stopped/stopping, resume and retry.
332
+ * Execute `fn`, and if the session is stopped/stopping/snapshotting, resume and retry.
291
333
  */
292
334
  async withResume(fn, signal) {
293
335
  try {
@@ -298,7 +340,7 @@ class Sandbox {
298
340
  await this.resume(signal);
299
341
  return fn();
300
342
  }
301
- if (isSandboxStoppingError(err)) {
343
+ if (isSandboxStoppingError(err) || isSandboxSnapshottingError(err)) {
302
344
  await this.waitForStopAndResume(signal);
303
345
  return fn();
304
346
  }
@@ -306,7 +348,9 @@ class Sandbox {
306
348
  }
307
349
  }
308
350
  async runCommand(commandOrParams, args, opts) {
309
- const signal = typeof commandOrParams === "string" ? opts?.signal : commandOrParams.signal;
351
+ const signal = typeof commandOrParams === "string"
352
+ ? opts?.signal
353
+ : commandOrParams.signal;
310
354
  return this.withResume(() => this.session.runCommand(commandOrParams, args, opts), signal);
311
355
  }
312
356
  /**
@@ -369,10 +413,16 @@ class Sandbox {
369
413
  * Defaults to writing to /vercel/sandbox unless an absolute path is specified.
370
414
  * Writes files using the `vercel-sandbox` user.
371
415
  *
372
- * @param files - Array of files with path and stream/buffer contents
416
+ * @param files - Array of files with path, content, and optional mode (permissions)
373
417
  * @param opts - Optional parameters.
374
418
  * @param opts.signal - An AbortSignal to cancel the operation.
375
419
  * @returns A promise that resolves when the files are written
420
+ *
421
+ * @example
422
+ * // Write an executable script
423
+ * await sandbox.writeFiles([
424
+ * { path: "/usr/local/bin/myscript", content: Buffer.from("#!/bin/bash\necho hello"), mode: 0o755 }
425
+ * ]);
376
426
  */
377
427
  async writeFiles(files, opts) {
378
428
  return this.withResume(() => this.session.writeFiles(files, opts), opts?.signal);
@@ -393,7 +443,7 @@ class Sandbox {
393
443
  * @param opts - Optional parameters.
394
444
  * @param opts.signal - An AbortSignal to cancel the operation.
395
445
  * @param opts.blocking - If true, poll until the sandbox has fully stopped and return the final state.
396
- * @returns The sandbox metadata at the time the stop was acknowledged, or after fully stopped if `blocking` is true.
446
+ * @returns The sandbox at the time the stop was acknowledged, or after fully stopped if `blocking` is true.
397
447
  */
398
448
  async stop(opts) {
399
449
  return this.session.stop(opts);
@@ -401,6 +451,8 @@ class Sandbox {
401
451
  /**
402
452
  * Update the network policy for this sandbox.
403
453
  *
454
+ * @deprecated Use {@link Sandbox.update} instead.
455
+ *
404
456
  * @param networkPolicy - The new network policy to apply.
405
457
  * @param opts - Optional parameters.
406
458
  * @param opts.signal - An AbortSignal to cancel the operation.
@@ -430,7 +482,8 @@ class Sandbox {
430
482
  * await sandbox.updateNetworkPolicy("deny-all");
431
483
  */
432
484
  async updateNetworkPolicy(networkPolicy, opts) {
433
- return this.withResume(() => this.session.updateNetworkPolicy(networkPolicy, opts), opts?.signal);
485
+ await this.withResume(() => this.session.update({ networkPolicy: networkPolicy }, opts), opts?.signal);
486
+ return this.session.networkPolicy;
434
487
  }
435
488
  /**
436
489
  * Extend the timeout of the sandbox by the specified duration.
@@ -466,68 +519,91 @@ class Sandbox {
466
519
  return this.withResume(() => this.session.snapshot(opts), opts?.signal);
467
520
  }
468
521
  /**
469
- * Update the named sandbox configuration. Only provided fields are modified.
522
+ * Update the sandbox configuration.
470
523
  *
471
524
  * @param params - Fields to update.
472
525
  * @param opts - Optional abort signal.
473
526
  */
474
527
  async update(params, opts) {
475
- const response = await this.client.updateNamedSandbox({
476
- name: this.namedSandbox.name,
528
+ let resources;
529
+ if (params.resources?.vcpus) {
530
+ resources = {
531
+ vcpus: params.resources.vcpus,
532
+ memory: params.resources.vcpus * 2048,
533
+ };
534
+ }
535
+ // Update the sandbox config. This config will be used on the next session.
536
+ const response = await this.client.updateSandbox({
537
+ name: this.sandbox.name,
477
538
  projectId: this.projectId,
478
- resources: params.resources,
479
- runtime: params.runtime,
539
+ persistent: params.persistent,
540
+ resources,
480
541
  timeout: params.timeout,
481
542
  networkPolicy: params.networkPolicy,
543
+ tags: params.tags,
544
+ snapshotExpiration: params.snapshotExpiration,
482
545
  signal: opts?.signal,
483
546
  });
484
- this.namedSandbox = response.json.namedSandbox;
547
+ this.sandbox = response.json.sandbox;
548
+ // Update the current session config. This only applies to network policy.
549
+ if (params.networkPolicy) {
550
+ try {
551
+ return await this.session.update({ networkPolicy: params.networkPolicy }, opts);
552
+ }
553
+ catch (err) {
554
+ if (isSandboxStoppedError(err) || isSandboxStoppingError(err)) {
555
+ return;
556
+ }
557
+ throw err;
558
+ }
559
+ }
485
560
  }
486
561
  /**
487
- * Delete this named sandbox.
562
+ * Delete this sandbox.
488
563
  *
489
564
  * After deletion the instance becomes inert — all further API calls will
490
565
  * throw immediately.
491
566
  */
492
567
  async delete(opts) {
493
- await this.client.deleteNamedSandbox({
494
- name: this.namedSandbox.name,
568
+ await this.client.deleteSandbox({
569
+ name: this.sandbox.name,
495
570
  projectId: this.projectId,
496
- preserveSnapshots: opts?.preserveSnapshots,
497
571
  signal: opts?.signal,
498
572
  });
499
573
  }
500
574
  /**
501
- * List sessions (VMs) that have been created for this named sandbox.
575
+ * List sessions (VMs) that have been created for this sandbox.
502
576
  *
503
577
  * @param params - Optional pagination parameters.
504
578
  * @returns The list of sessions and pagination metadata.
505
579
  */
506
580
  async listSessions(params) {
507
- return this.client.listSandboxes({
581
+ const response = await this.client.listSessions({
508
582
  projectId: this.projectId,
509
- name: this.namedSandbox.name,
583
+ name: this.sandbox.name,
510
584
  limit: params?.limit,
511
- since: params?.since,
512
- until: params?.until,
585
+ cursor: params?.cursor,
586
+ sortOrder: params?.sortOrder,
513
587
  signal: params?.signal,
514
588
  });
589
+ return response.json;
515
590
  }
516
591
  /**
517
- * List snapshots that belong to this named sandbox.
592
+ * List snapshots that belong to this sandbox.
518
593
  *
519
594
  * @param params - Optional pagination parameters.
520
595
  * @returns The list of snapshots and pagination metadata.
521
596
  */
522
597
  async listSnapshots(params) {
523
- return this.client.listSnapshots({
598
+ const response = await this.client.listSnapshots({
524
599
  projectId: this.projectId,
525
- name: this.namedSandbox.name,
600
+ name: this.sandbox.name,
526
601
  limit: params?.limit,
527
- since: params?.since,
528
- until: params?.until,
602
+ cursor: params?.cursor,
603
+ sortOrder: params?.sortOrder,
529
604
  signal: params?.signal,
530
605
  });
606
+ return response.json;
531
607
  }
532
608
  }
533
609
  exports.Sandbox = Sandbox;
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":"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"}
package/dist/session.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- import type { SandboxMetaData, SandboxRouteData } from "./api-client";
1
+ import type { SessionMetaData, SandboxRouteData } from "./api-client";
2
2
  import type { Writable } from "stream";
3
3
  import type { APIClient } from "./api-client";
4
4
  import { Command, CommandFinished } from "./command";
5
5
  import { Snapshot } from "./snapshot";
6
6
  import type { NetworkPolicy, NetworkPolicyRule, NetworkTransformer } from "./network-policy";
7
- import { type ConvertedSandbox } from "./utils/convert-sandbox";
7
+ import { type ConvertedSession } from "./utils/convert-sandbox";
8
8
  export type { NetworkPolicy, NetworkPolicyRule, NetworkTransformer };
9
9
  /** @inline */
10
10
  export interface RunCommandParams {
@@ -46,7 +46,7 @@ export interface RunCommandParams {
46
46
  signal?: AbortSignal;
47
47
  }
48
48
  /**
49
- * A Session represents a running VM instance within a named {@link Sandbox}.
49
+ * A Session represents a running VM instance within a {@link Sandbox}.
50
50
  *
51
51
  * Obtain a session via {@link Sandbox.currentSession}.
52
52
  */
@@ -69,7 +69,7 @@ export declare class Session {
69
69
  /**
70
70
  * The status of this session.
71
71
  */
72
- get status(): SandboxMetaData["status"];
72
+ get status(): SessionMetaData["status"];
73
73
  /**
74
74
  * The creation date of this session.
75
75
  */
@@ -154,7 +154,7 @@ export declare class Session {
154
154
  constructor({ client, routes, session, }: {
155
155
  client: APIClient;
156
156
  routes: SandboxRouteData[];
157
- session: SandboxMetaData;
157
+ session: SessionMetaData;
158
158
  });
159
159
  /**
160
160
  * Get a previously run command by its ID.
@@ -291,46 +291,52 @@ export declare class Session {
291
291
  * @param opts - Optional parameters.
292
292
  * @param opts.signal - An AbortSignal to cancel the operation.
293
293
  * @param opts.blocking - If true, poll until the session has fully stopped and return the final state.
294
- * @returns The session metadata at the time the stop was acknowledged, or after fully stopped if `blocking` is true.
294
+ * @returns The session at the time the stop was acknowledged, or after fully stopped if `blocking` is true.
295
295
  */
296
296
  stop(opts?: {
297
297
  signal?: AbortSignal;
298
298
  blocking?: boolean;
299
- }): Promise<ConvertedSandbox>;
299
+ }): Promise<ConvertedSession>;
300
300
  /**
301
- * Update the network policy for this session.
301
+ * Update the current session's settings.
302
302
  *
303
- * @param networkPolicy - The new network policy to apply.
303
+ * @param params - Fields to update.
304
+ * @param params.networkPolicy - The new network policy to apply.
304
305
  * @param opts - Optional parameters.
305
306
  * @param opts.signal - An AbortSignal to cancel the operation.
306
- * @returns A promise that resolves when the network policy is updated.
307
307
  *
308
308
  * @example
309
309
  * // Restrict to specific domains
310
- * await session.updateNetworkPolicy({
311
- * allow: ["*.npmjs.org", "github.com"],
310
+ * await session.update({
311
+ * networkPolicy: {
312
+ * allow: ["*.npmjs.org", "github.com"],
313
+ * }
312
314
  * });
313
315
  *
314
316
  * @example
315
317
  * // Inject credentials with per-domain transformers
316
- * await session.updateNetworkPolicy({
317
- * allow: {
318
- * "ai-gateway.vercel.sh": [{
319
- * transform: [{
320
- * headers: { authorization: "Bearer ..." }
321
- * }]
322
- * }],
323
- * "*": []
318
+ * await session.update({
319
+ * networkPolicy: {
320
+ * allow: {
321
+ * "ai-gateway.vercel.sh": [{
322
+ * transform: [{
323
+ * headers: { authorization: "Bearer ..." }
324
+ * }]
325
+ * }],
326
+ * "*": []
327
+ * }
324
328
  * }
325
329
  * });
326
330
  *
327
331
  * @example
328
332
  * // Deny all network access
329
- * await session.updateNetworkPolicy("deny-all");
333
+ * await session.update({ networkPolicy: "deny-all" });
330
334
  */
331
- updateNetworkPolicy(networkPolicy: NetworkPolicy, opts?: {
335
+ update(params: {
336
+ networkPolicy?: NetworkPolicy;
337
+ }, opts?: {
332
338
  signal?: AbortSignal;
333
- }): Promise<NetworkPolicy>;
339
+ }): Promise<void>;
334
340
  /**
335
341
  * Extend the timeout of the session by the specified duration.
336
342
  *