@blaxel/core 0.2.86-dev.162 → 0.2.86-preview.163

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 (66) hide show
  1. package/README.md +2 -37
  2. package/dist/cjs/.tsbuildinfo +1 -1
  3. package/dist/cjs/client/sdk.gen.js +12 -63
  4. package/dist/cjs/common/settings.js +3 -3
  5. package/dist/cjs/common/settings.test.js +3 -3
  6. package/dist/cjs/drive/index.js +3 -39
  7. package/dist/cjs/index.js +0 -1
  8. package/dist/cjs/jobs/jobs.js +9 -42
  9. package/dist/cjs/sandbox/sandbox.js +15 -41
  10. package/dist/cjs/types/client/sdk.gen.d.ts +19 -34
  11. package/dist/cjs/types/client/types.gen.d.ts +21 -614
  12. package/dist/cjs/types/drive/index.d.ts +4 -34
  13. package/dist/cjs/types/index.d.ts +0 -1
  14. package/dist/cjs/types/jobs/jobs.d.ts +3 -33
  15. package/dist/cjs/types/sandbox/sandbox.d.ts +4 -36
  16. package/dist/cjs/types/sandbox/types.d.ts +3 -0
  17. package/dist/cjs/types/volume/index.d.ts +4 -36
  18. package/dist/cjs/volume/index.js +3 -41
  19. package/dist/cjs-browser/.tsbuildinfo +1 -1
  20. package/dist/cjs-browser/client/sdk.gen.js +12 -63
  21. package/dist/cjs-browser/common/settings.js +3 -3
  22. package/dist/cjs-browser/common/settings.test.js +3 -3
  23. package/dist/cjs-browser/drive/index.js +3 -39
  24. package/dist/cjs-browser/index.js +0 -1
  25. package/dist/cjs-browser/jobs/jobs.js +9 -42
  26. package/dist/cjs-browser/sandbox/sandbox.js +15 -41
  27. package/dist/cjs-browser/types/client/sdk.gen.d.ts +19 -34
  28. package/dist/cjs-browser/types/client/types.gen.d.ts +21 -614
  29. package/dist/cjs-browser/types/drive/index.d.ts +4 -34
  30. package/dist/cjs-browser/types/index.d.ts +0 -1
  31. package/dist/cjs-browser/types/jobs/jobs.d.ts +3 -33
  32. package/dist/cjs-browser/types/sandbox/sandbox.d.ts +4 -36
  33. package/dist/cjs-browser/types/sandbox/types.d.ts +3 -0
  34. package/dist/cjs-browser/types/volume/index.d.ts +4 -36
  35. package/dist/cjs-browser/volume/index.js +3 -41
  36. package/dist/esm/.tsbuildinfo +1 -1
  37. package/dist/esm/client/sdk.gen.js +9 -57
  38. package/dist/esm/common/settings.js +3 -3
  39. package/dist/esm/common/settings.test.js +3 -3
  40. package/dist/esm/drive/index.js +3 -39
  41. package/dist/esm/index.js +0 -1
  42. package/dist/esm/jobs/jobs.js +9 -42
  43. package/dist/esm/sandbox/sandbox.js +15 -41
  44. package/dist/esm/volume/index.js +3 -41
  45. package/dist/esm-browser/.tsbuildinfo +1 -1
  46. package/dist/esm-browser/client/sdk.gen.js +9 -57
  47. package/dist/esm-browser/common/settings.js +3 -3
  48. package/dist/esm-browser/common/settings.test.js +3 -3
  49. package/dist/esm-browser/drive/index.js +3 -39
  50. package/dist/esm-browser/index.js +0 -1
  51. package/dist/esm-browser/jobs/jobs.js +9 -42
  52. package/dist/esm-browser/sandbox/sandbox.js +15 -41
  53. package/dist/esm-browser/volume/index.js +3 -41
  54. package/package.json +1 -1
  55. package/dist/cjs/common/pagination.js +0 -87
  56. package/dist/cjs/common/pagination.test.js +0 -62
  57. package/dist/cjs/types/common/pagination.d.ts +0 -35
  58. package/dist/cjs/types/common/pagination.test.d.ts +0 -1
  59. package/dist/cjs-browser/common/pagination.js +0 -87
  60. package/dist/cjs-browser/common/pagination.test.js +0 -62
  61. package/dist/cjs-browser/types/common/pagination.d.ts +0 -35
  62. package/dist/cjs-browser/types/common/pagination.test.d.ts +0 -1
  63. package/dist/esm/common/pagination.js +0 -83
  64. package/dist/esm/common/pagination.test.js +0 -60
  65. package/dist/esm-browser/common/pagination.js +0 -83
  66. package/dist/esm-browser/common/pagination.test.js +0 -60
@@ -2,7 +2,7 @@
2
2
  import { client as _heyApiClient } from "./client.gen.js";
3
3
  /**
4
4
  * List all agents
5
- * Returns AI agents deployed in the workspace. Each agent includes its deployment status, runtime configuration, and global inference endpoint URL. Starting with API version 2026-04-28 the response is wrapped in `{data, meta}` and supports cursor pagination via the `cursor` and `limit` query parameters; older versions keep returning a bare array with all agents.
5
+ * Returns all AI agents deployed in the workspace. Each agent includes its deployment status, runtime configuration, and global inference endpoint URL.
6
6
  */
7
7
  export const listAgents = (options) => {
8
8
  return (options?.client ?? _heyApiClient).get({
@@ -221,7 +221,7 @@ export const verifyCustomDomain = (options) => {
221
221
  };
222
222
  /**
223
223
  * List drives
224
- * Returns all drives in the workspace. Drives provide persistent storage that can be attached to agents, functions, and sandboxes. Starting with API version 2026-04-28, the response wraps items in `{data, meta}` and supports cursor pagination via the `cursor` and `limit` query parameters; older versions keep returning a bare array with all drives.
224
+ * Returns all drives in the workspace. Drives provide persistent storage that can be attached to agents, functions, and sandboxes.
225
225
  */
226
226
  export const listDrives = (options) => {
227
227
  return (options?.client ?? _heyApiClient).get({
@@ -348,22 +348,6 @@ export const listAllEgressGateways = (options) => {
348
348
  ...options
349
349
  });
350
350
  };
351
- /**
352
- * Egress gateway sandbox attachments
353
- * Returns the inverse map (gateway → sandbox names) for the workspace. Used by the egress-IPs UI to render attachment counts without fetching the sandboxes listing full client-side.
354
- */
355
- export const getEgressGatewayUsage = (options) => {
356
- return (options?.client ?? _heyApiClient).get({
357
- security: [
358
- {
359
- scheme: 'bearer',
360
- type: 'http'
361
- }
362
- ],
363
- url: '/egressgateways/usage',
364
- ...options
365
- });
366
- };
367
351
  /**
368
352
  * List all egress IPs across all VPCs and gateways in the workspace
369
353
  */
@@ -413,7 +397,7 @@ export const testFeatureFlag = (options) => {
413
397
  };
414
398
  /**
415
399
  * List all MCP servers
416
- * Returns MCP server functions deployed in the workspace. Each function includes its deployment status, transport protocol (websocket or http-stream), and endpoint URL. Starting with API version 2026-04-28 the response is wrapped in `{data, meta}` and supports cursor pagination via the `cursor` and `limit` query parameters; older versions keep returning a bare array with all functions.
400
+ * Returns all MCP server functions deployed in the workspace. Each function includes its deployment status, transport protocol (websocket or http-stream), and endpoint URL.
417
401
  */
418
402
  export const listFunctions = (options) => {
419
403
  return (options?.client ?? _heyApiClient).get({
@@ -821,7 +805,7 @@ export const getIntegrationConnectionModel = (options) => {
821
805
  };
822
806
  /**
823
807
  * List batch jobs
824
- * Returns batch job definitions in the workspace. Each job can be triggered to run multiple parallel tasks with configurable concurrency and retry settings. Starting with API version 2026-04-28 the response is wrapped in `{data, meta}` and supports cursor pagination via the `cursor` and `limit` query parameters; older versions keep returning a bare array with all jobs.
808
+ * Returns all batch job definitions in the workspace. Each job can be triggered to run multiple parallel tasks with configurable concurrency and retry settings.
825
809
  */
826
810
  export const listJobs = (options) => {
827
811
  return (options?.client ?? _heyApiClient).get({
@@ -909,7 +893,7 @@ export const updateJob = (options) => {
909
893
  };
910
894
  /**
911
895
  * List job executions
912
- * Returns executions for a batch job. Starting with API version 2026-04-28 the response is wrapped in `{data, meta}` and supports cursor pagination via the `cursor` and `limit` query parameters; older versions keep the legacy offset/limit contract and return a bare array.
896
+ * Returns paginated list of executions for a batch job, sorted by creation time. Each execution contains status, task counts, and timing information.
913
897
  */
914
898
  export const listJobExecutions = (options) => {
915
899
  return (options.client ?? _heyApiClient).get({
@@ -975,22 +959,6 @@ export const getJobExecution = (options) => {
975
959
  ...options
976
960
  });
977
961
  };
978
- /**
979
- * List execution tasks
980
- * Returns one cursor-paginated page of an execution's tasks. Tasks are derived from event history each request; only the in-memory slicing is paginated, the events scan still fetches the whole event log behind the scenes. Available starting with API version 2026-04-28.
981
- */
982
- export const listJobExecutionTasks = (options) => {
983
- return (options.client ?? _heyApiClient).get({
984
- security: [
985
- {
986
- scheme: 'bearer',
987
- type: 'http'
988
- }
989
- ],
990
- url: '/jobs/{jobId}/executions/{executionId}/tasks',
991
- ...options
992
- });
993
- };
994
962
  /**
995
963
  * List job revisions
996
964
  * Returns revisions for a job by name.
@@ -1041,7 +1009,7 @@ export const listMcpHubDefinitions = (options) => {
1041
1009
  };
1042
1010
  /**
1043
1011
  * List model endpoints
1044
- * Returns model gateway endpoints configured in the workspace. Each model represents a proxy to an external LLM provider (OpenAI, Anthropic, etc.) with unified access control. Starting with API version 2026-04-28 the response is wrapped in `{data, meta}` and supports cursor pagination via the `cursor` and `limit` query parameters; older versions keep returning a bare array with all models.
1012
+ * Returns all model gateway endpoints configured in the workspace. Each model represents a proxy to an external LLM provider (OpenAI, Anthropic, etc.) with unified access control.
1045
1013
  */
1046
1014
  export const listModels = (options) => {
1047
1015
  return (options?.client ?? _heyApiClient).get({
@@ -1193,7 +1161,7 @@ export const declineImageShare = (options) => {
1193
1161
  };
1194
1162
  /**
1195
1163
  * List governance policies
1196
- * Returns governance policies in the workspace. Policies control deployment locations, hardware flavors, and token limits for agents, functions, and models. Starting with API version 2026-04-28 the response is wrapped in `{data, meta}` and supports cursor pagination via the `cursor` and `limit` query parameters; older versions keep returning a bare array with all policies.
1164
+ * Returns all governance policies in the workspace. Policies control deployment locations, hardware flavors, and token limits for agents, functions, and models.
1197
1165
  */
1198
1166
  export const listPolicies = (options) => {
1199
1167
  return (options?.client ?? _heyApiClient).get({
@@ -1279,22 +1247,6 @@ export const updatePolicy = (options) => {
1279
1247
  }
1280
1248
  });
1281
1249
  };
1282
- /**
1283
- * List resources using a policy
1284
- * Returns the names of every resource (agent, function, model, sandbox, job) currently referencing the given policy. Replaces the client-side fan-out the policies UI used to do over the listings.
1285
- */
1286
- export const getPolicyUsages = (options) => {
1287
- return (options.client ?? _heyApiClient).get({
1288
- security: [
1289
- {
1290
- scheme: 'bearer',
1291
- type: 'http'
1292
- }
1293
- ],
1294
- url: '/policies/{policyName}/usages',
1295
- ...options
1296
- });
1297
- };
1298
1250
  /**
1299
1251
  * List public ips
1300
1252
  * Returns a list of all public ips used in Blaxel..
@@ -1329,7 +1281,7 @@ export const listSandboxHubDefinitions = (options) => {
1329
1281
  };
1330
1282
  /**
1331
1283
  * List sandboxes
1332
- * Returns sandboxes in the workspace. Each sandbox includes its configuration, status, and endpoint URL. Terminated sandboxes are hidden by default; pass `showTerminated=true` to include them. Starting with API version 2026-04-28 the response is wrapped in `{data, meta}` and supports cursor pagination via the `cursor` and `limit` query parameters; older versions keep returning a bare array of all sandboxes.
1284
+ * Returns all sandboxes in the workspace. Each sandbox includes its configuration, status, and endpoint URL.
1333
1285
  */
1334
1286
  export const listSandboxes = (options) => {
1335
1287
  return (options?.client ?? _heyApiClient).get({
@@ -1889,7 +1841,7 @@ export const deleteVolumeTemplateVersion = (options) => {
1889
1841
  };
1890
1842
  /**
1891
1843
  * List persistent volumes
1892
- * Returns persistent storage volumes in the workspace. Volumes can be attached to sandboxes for durable file storage that persists across sessions and sandbox deletions. Starting with API version 2026-04-28 the response is wrapped in `{data, meta}` and supports cursor pagination via the `cursor` and `limit` query parameters; older versions keep returning a bare array of volumes.
1844
+ * Returns all persistent storage volumes in the workspace. Volumes can be attached to sandboxes for durable file storage that persists across sessions and sandbox deletions.
1893
1845
  */
1894
1846
  export const listVolumes = (options) => {
1895
1847
  return (options?.client ?? _heyApiClient).get({
@@ -5,10 +5,10 @@ import { authentication } from "../authentication/index.js";
5
5
  import { env } from "../common/env.js";
6
6
  import { fs, os, path } from "../common/node.js";
7
7
  // Build info - these placeholders are replaced at build time by build:replace-imports
8
- const BUILD_VERSION = "0.2.86-dev.162";
9
- const BUILD_COMMIT = "67e269718e3381ddd43832b1def2532c2b218e61";
8
+ const BUILD_VERSION = "0.2.86-preview.163";
9
+ const BUILD_COMMIT = "e78918cc0a9d6da05b5a83895f6d4d2c08e51b5b";
10
10
  const BUILD_SENTRY_DSN = "https://fd5e60e1c9820e1eef5ccebb84a07127@o4508714045276160.ingest.us.sentry.io/4510465864564736";
11
- const BLAXEL_API_VERSION = "2026-04-28";
11
+ const BLAXEL_API_VERSION = "2026-04-16";
12
12
  // Cache for config.yaml tracking value
13
13
  let configTrackingValue = null;
14
14
  let configTrackingLoaded = false;
@@ -7,14 +7,14 @@ describe('Settings.apiVersion', () => {
7
7
  afterEach(() => {
8
8
  delete env.BL_API_VERSION;
9
9
  });
10
- it('defaults to 2026-04-28 when BL_API_VERSION is not set', async () => {
10
+ it('defaults to 2026-04-16 when BL_API_VERSION is not set', async () => {
11
11
  delete env.BL_API_VERSION;
12
12
  const { settings } = await import('./settings.js');
13
- expect(settings.apiVersion).toBe('2026-04-28');
13
+ expect(settings.apiVersion).toBe('2026-04-16');
14
14
  });
15
15
  it('headers include Blaxel-Version set to the default', async () => {
16
16
  delete env.BL_API_VERSION;
17
17
  const { settings } = await import('./settings.js');
18
- expect(settings.headers['Blaxel-Version']).toBe('2026-04-28');
18
+ expect(settings.headers['Blaxel-Version']).toBe('2026-04-16');
19
19
  });
20
20
  });
@@ -1,6 +1,5 @@
1
1
  import { v4 as uuidv4 } from "uuid";
2
2
  import { createDrive, deleteDrive, getDrive, listDrives, updateDrive } from "../client/index.js";
3
- import { createPaginatedList } from "../common/pagination.js";
4
3
  import { settings } from "../common/settings.js";
5
4
  export class DriveInstance {
6
5
  drive;
@@ -84,44 +83,9 @@ export class DriveInstance {
84
83
  });
85
84
  return new DriveInstance(data);
86
85
  }
87
- /**
88
- * List one page of drives.
89
- *
90
- * The returned page exposes `data` for the current page, `meta` for cursor
91
- * metadata, and helpers to fetch more pages only when you need them.
92
- *
93
- * @example
94
- * ```ts
95
- * const page = await DriveInstance.list({ limit: 50 });
96
- *
97
- * for (const drive of page.data) {
98
- * console.log(drive.name);
99
- * }
100
- *
101
- * const nextPage = await page.nextPage();
102
- * ```
103
- *
104
- * @example
105
- * ```ts
106
- * const allDrives = await (await DriveInstance.list()).autoPagingToArray({
107
- * limit: 1000,
108
- * });
109
- * ```
110
- */
111
- static async list(query) {
112
- const fetchPage = async (pageQuery) => {
113
- const { data } = await listDrives({
114
- query: pageQuery,
115
- throwOnError: true,
116
- });
117
- return data;
118
- };
119
- return createPaginatedList({
120
- response: await fetchPage(query),
121
- fetchPage,
122
- mapItem: (drive) => new DriveInstance(drive),
123
- query,
124
- });
86
+ static async list() {
87
+ const { data } = await listDrives({ throwOnError: true });
88
+ return data.map((drive) => new DriveInstance(drive));
125
89
  }
126
90
  static async delete(driveName) {
127
91
  const { data } = await deleteDrive({
package/dist/esm/index.js CHANGED
@@ -7,7 +7,6 @@ export * from "./common/node.js";
7
7
  export * from "./common/errors.js";
8
8
  export * from "./common/internal.js";
9
9
  export * from "./common/logger.js";
10
- export * from "./common/pagination.js";
11
10
  export * from "./common/settings.js";
12
11
  export * from "./common/webhook.js";
13
12
  export * from "./drive/index.js";
@@ -1,6 +1,5 @@
1
1
  import { createJobExecution, deleteJobExecution, getJobExecution, listJobExecutions, } from "../client/index.js";
2
2
  import { logger } from "../common/logger.js";
3
- import { createPaginatedList } from "../common/pagination.js";
4
3
  import { settings } from "../common/settings.js";
5
4
  import { startSpan } from "../telemetry/telemetry.js";
6
5
  class BlJob {
@@ -76,50 +75,18 @@ class BlJob {
76
75
  return data;
77
76
  }
78
77
  /**
79
- * List one page of executions for this job.
80
- *
81
- * The returned page exposes `data` for the current page, `meta` for cursor
82
- * metadata, and helpers to fetch more pages only when you need them.
83
- *
84
- * @example
85
- * ```ts
86
- * const job = blJob("daily-import");
87
- * const page = await job.listExecutions({ limit: 50 });
88
- *
89
- * for (const execution of page.data) {
90
- * console.log(execution.status);
91
- * }
92
- *
93
- * const nextPage = await page.nextPage();
94
- * ```
95
- *
96
- * @example
97
- * ```ts
98
- * const job = blJob("daily-import");
99
- * const executions = await (await job.listExecutions()).autoPagingToArray({
100
- * limit: 1000,
101
- * });
102
- * ```
78
+ * List all executions for this job
103
79
  */
104
- async listExecutions(query) {
80
+ async listExecutions() {
105
81
  logger.debug(`Listing executions for job: ${this.jobName}`);
106
- const fetchPage = async (pageQuery) => {
107
- const { data } = await listJobExecutions({
108
- path: {
109
- jobId: this.jobName,
110
- },
111
- query: pageQuery,
112
- headers: settings.headers,
113
- throwOnError: true,
114
- });
115
- return data;
116
- };
117
- return createPaginatedList({
118
- response: await fetchPage(query),
119
- fetchPage,
120
- mapItem: (execution) => execution,
121
- query,
82
+ const { data } = await listJobExecutions({
83
+ path: {
84
+ jobId: this.jobName,
85
+ },
86
+ headers: settings.headers,
87
+ throwOnError: true,
122
88
  });
89
+ return data ?? [];
123
90
  }
124
91
  /**
125
92
  * Get the status of a specific execution
@@ -1,7 +1,6 @@
1
1
  import { v4 as uuidv4 } from "uuid";
2
2
  import { createSandbox, deleteSandbox, getSandbox, listSandboxes, updateSandbox } from "../client/index.js";
3
3
  import { logger } from "../common/logger.js";
4
- import { createPaginatedList } from "../common/pagination.js";
5
4
  import { settings } from "../common/settings.js";
6
5
  import { SandboxCodegen } from "./codegen/index.js";
7
6
  import { SandboxDrive } from "./drive/index.js";
@@ -220,46 +219,10 @@ export class SandboxInstance {
220
219
  const instance = new SandboxInstance(data);
221
220
  return SandboxInstance.attachH2Session(instance);
222
221
  }
223
- /**
224
- * List one page of sandboxes.
225
- *
226
- * The returned page exposes `data` for the current page, `meta` for cursor
227
- * metadata, and helpers to fetch more pages only when you need them.
228
- *
229
- * @example
230
- * ```ts
231
- * const page = await SandboxInstance.list({ limit: 50 });
232
- *
233
- * for (const sandbox of page.data) {
234
- * console.log(sandbox.metadata.name);
235
- * }
236
- *
237
- * const nextPage = await page.nextPage();
238
- * ```
239
- *
240
- * @example
241
- * ```ts
242
- * const page = await SandboxInstance.list({ limit: 100 });
243
- *
244
- * for await (const sandbox of page) {
245
- * console.log(sandbox.metadata.name);
246
- * }
247
- * ```
248
- */
249
- static async list(query) {
250
- const fetchPage = async (pageQuery) => {
251
- const { data } = await listSandboxes({
252
- query: pageQuery,
253
- throwOnError: true,
254
- });
255
- return data;
256
- };
257
- return createPaginatedList({
258
- response: await fetchPage(query),
259
- fetchPage,
260
- mapItem: (sandbox) => SandboxInstance.attachH2Session(new SandboxInstance(sandbox)),
261
- query,
262
- });
222
+ static async list() {
223
+ const { data } = await listSandboxes({ throwOnError: true });
224
+ const instances = data.map((sandbox) => new SandboxInstance(sandbox));
225
+ return Promise.all(instances.map((instance) => SandboxInstance.attachH2Session(instance)));
263
226
  }
264
227
  static async delete(sandboxName) {
265
228
  const { data } = await deleteSandbox({
@@ -310,6 +273,17 @@ export class SandboxInstance {
310
273
  const instance = new SandboxInstance(data);
311
274
  return SandboxInstance.attachH2Session(instance);
312
275
  }
276
+ static async updateNetwork(sandboxName, network) {
277
+ const sandbox = await SandboxInstance.get(sandboxName);
278
+ const body = { ...sandbox.sandbox, spec: { ...sandbox.spec, network: network.network } };
279
+ const { data } = await updateSandbox({
280
+ path: { sandboxName },
281
+ body,
282
+ throwOnError: true,
283
+ });
284
+ const instance = new SandboxInstance(data);
285
+ return SandboxInstance.attachH2Session(instance);
286
+ }
313
287
  static async createIfNotExists(sandbox) {
314
288
  const ATTEMPTS = 3;
315
289
  for (let i = 0; i < ATTEMPTS; ++i) {
@@ -1,6 +1,5 @@
1
1
  import { v4 as uuidv4 } from "uuid";
2
2
  import { createVolume, deleteVolume, getVolume, listVolumes, updateVolume } from "../client/index.js";
3
- import { createPaginatedList } from "../common/pagination.js";
4
3
  import { settings } from "../common/settings.js";
5
4
  export class VolumeInstance {
6
5
  volume;
@@ -86,46 +85,9 @@ export class VolumeInstance {
86
85
  });
87
86
  return new VolumeInstance(data);
88
87
  }
89
- /**
90
- * List one page of volumes.
91
- *
92
- * The returned page exposes `data` for the current page, `meta` for cursor
93
- * metadata, and helpers to fetch more pages only when you need them.
94
- *
95
- * @example
96
- * ```ts
97
- * const page = await VolumeInstance.list({ limit: 50 });
98
- *
99
- * for (const volume of page.data) {
100
- * console.log(volume.name);
101
- * }
102
- *
103
- * const nextPage = await page.nextPage();
104
- * ```
105
- *
106
- * @example
107
- * ```ts
108
- * const page = await VolumeInstance.list({ limit: 100 });
109
- *
110
- * for await (const volume of page) {
111
- * console.log(volume.name);
112
- * }
113
- * ```
114
- */
115
- static async list(query) {
116
- const fetchPage = async (pageQuery) => {
117
- const { data } = await listVolumes({
118
- query: pageQuery,
119
- throwOnError: true,
120
- });
121
- return data;
122
- };
123
- return createPaginatedList({
124
- response: await fetchPage(query),
125
- fetchPage,
126
- mapItem: (volume) => new VolumeInstance(volume),
127
- query,
128
- });
88
+ static async list() {
89
+ const { data } = await listVolumes({ throwOnError: true });
90
+ return data.map((volume) => new VolumeInstance(volume));
129
91
  }
130
92
  static async delete(volumeName) {
131
93
  const { data } = await deleteVolume({