@phala/cloud 0.0.11 → 0.1.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 (49) hide show
  1. package/dist/actions/add_compose_hash.d.ts +5 -5
  2. package/dist/actions/add_compose_hash.d.ts.map +1 -1
  3. package/dist/actions/commit_cvm_compose_file_update.d.ts +19 -6
  4. package/dist/actions/commit_cvm_compose_file_update.d.ts.map +1 -1
  5. package/dist/actions/commit_cvm_provision.d.ts +133 -6
  6. package/dist/actions/commit_cvm_provision.d.ts.map +1 -1
  7. package/dist/actions/deploy_app_auth.d.ts +5 -5
  8. package/dist/actions/deploy_app_auth.d.ts.map +1 -1
  9. package/dist/actions/get_app_env_encrypt_pubkey.d.ts +43 -6
  10. package/dist/actions/get_app_env_encrypt_pubkey.d.ts.map +1 -1
  11. package/dist/actions/get_available_nodes.d.ts +319 -6
  12. package/dist/actions/get_available_nodes.d.ts.map +1 -1
  13. package/dist/actions/get_current_user.d.ts +11 -2
  14. package/dist/actions/get_current_user.d.ts.map +1 -1
  15. package/dist/actions/get_cvm_compose_file.d.ts +41 -6
  16. package/dist/actions/get_cvm_compose_file.d.ts.map +1 -1
  17. package/dist/actions/get_cvm_info.d.ts +105 -9
  18. package/dist/actions/get_cvm_info.d.ts.map +1 -1
  19. package/dist/actions/get_cvm_list.d.ts +159 -10
  20. package/dist/actions/get_cvm_list.d.ts.map +1 -1
  21. package/dist/actions/get_kms_info.d.ts +47 -10
  22. package/dist/actions/get_kms_info.d.ts.map +1 -1
  23. package/dist/actions/get_kms_list.d.ts +72 -7
  24. package/dist/actions/get_kms_list.d.ts.map +1 -1
  25. package/dist/actions/index.d.ts +14 -14
  26. package/dist/actions/index.d.ts.map +1 -1
  27. package/dist/actions/list-instance-types.d.ts +69 -9
  28. package/dist/actions/list-instance-types.d.ts.map +1 -1
  29. package/dist/actions/provision_cvm.d.ts +63 -7
  30. package/dist/actions/provision_cvm.d.ts.map +1 -1
  31. package/dist/actions/provision_cvm_compose_file_update.d.ts +229 -9
  32. package/dist/actions/provision_cvm_compose_file_update.d.ts.map +1 -1
  33. package/dist/actions/workspaces/get_workspace.d.ts +33 -7
  34. package/dist/actions/workspaces/get_workspace.d.ts.map +1 -1
  35. package/dist/actions/workspaces/list_workspaces.d.ts +92 -6
  36. package/dist/actions/workspaces/list_workspaces.d.ts.map +1 -1
  37. package/dist/client.d.ts +16 -0
  38. package/dist/client.d.ts.map +1 -1
  39. package/dist/index.d.ts +1 -0
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +218 -418
  42. package/dist/index.mjs +209 -418
  43. package/dist/types/common.d.ts +17 -3
  44. package/dist/types/common.d.ts.map +1 -1
  45. package/dist/utils/define-action.d.ts +62 -0
  46. package/dist/utils/define-action.d.ts.map +1 -0
  47. package/dist/utils/validate-parameters.d.ts +5 -4
  48. package/dist/utils/validate-parameters.d.ts.map +1 -1
  49. package/package.json +66 -56
package/dist/index.js CHANGED
@@ -44,11 +44,18 @@ __export(index_exports, {
44
44
  CvmNodeSchema: () => CvmNodeSchema,
45
45
  DeployAppAuthRequestSchema: () => DeployAppAuthRequestSchema,
46
46
  DeployAppAuthSchema: () => DeployAppAuthSchema,
47
+ GetAppEnvEncryptPubKeyRequestSchema: () => GetAppEnvEncryptPubKeyRequestSchema,
47
48
  GetAppEnvEncryptPubKeySchema: () => GetAppEnvEncryptPubKeySchema,
49
+ GetCvmComposeFileRequestSchema: () => GetCvmComposeFileRequestSchema,
50
+ GetCvmInfoRequestSchema: () => GetCvmInfoRequestSchema,
51
+ GetCvmListRequestSchema: () => GetCvmListRequestSchema,
48
52
  GetCvmListSchema: () => GetCvmListSchema,
53
+ GetKmsInfoRequestSchema: () => GetKmsInfoRequestSchema,
54
+ GetKmsListRequestSchema: () => GetKmsListRequestSchema,
49
55
  GetKmsListSchema: () => GetKmsListSchema,
50
56
  InstanceTypeSchema: () => InstanceTypeSchema,
51
57
  KmsInfoSchema: () => KmsInfoSchema,
58
+ ListInstanceTypesRequestSchema: () => ListInstanceTypesRequestSchema,
52
59
  ListWorkspacesSchema: () => ListWorkspacesSchema,
53
60
  ManagedUserSchema: () => ManagedUserSchema,
54
61
  NetworkError: () => NetworkError,
@@ -77,6 +84,8 @@ __export(index_exports, {
77
84
  createClientsFromPrivateKey: () => createClientsFromPrivateKey,
78
85
  createNetworkClients: () => createNetworkClients,
79
86
  createTransactionTracker: () => createTransactionTracker,
87
+ defineAction: () => defineAction,
88
+ defineSimpleAction: () => defineSimpleAction,
80
89
  deployAppAuth: () => deployAppAuth,
81
90
  encryptEnvVars: () => import_encrypt_env_vars2.encryptEnvVars,
82
91
  estimateTransactionGas: () => estimateTransactionGas,
@@ -423,6 +432,28 @@ var Client = class {
423
432
  async safeDelete(request, options) {
424
433
  return this.safeRequest(() => this.delete(request, options));
425
434
  }
435
+ /**
436
+ * Extend client with additional actions
437
+ *
438
+ * @example
439
+ * ```typescript
440
+ * const client = createClient({ apiKey: 'xxx' })
441
+ * .extend(publicActions)
442
+ * .extend(cvmActions)
443
+ *
444
+ * await client.getCurrentUser() // Method call instead of function call
445
+ * ```
446
+ */
447
+ extend(actions) {
448
+ const actionsObj = typeof actions === "function" ? actions(this) : actions;
449
+ const extended = Object.create(this);
450
+ for (const [key, action] of Object.entries(actionsObj)) {
451
+ if (typeof action === "function") {
452
+ extended[key] = (...args) => action(this, ...args);
453
+ }
454
+ }
455
+ return extended;
456
+ }
426
457
  };
427
458
  function createClient(config = {}) {
428
459
  return new Client(config);
@@ -1246,6 +1277,122 @@ async function safeGetCurrentUser(client, parameters) {
1246
1277
 
1247
1278
  // src/actions/get_available_nodes.ts
1248
1279
  var import_zod5 = require("zod");
1280
+
1281
+ // src/utils/define-action.ts
1282
+ function defineSimpleAction(schema, fn) {
1283
+ function action(client, parameters) {
1284
+ return _actionImpl(client, parameters);
1285
+ }
1286
+ async function _actionImpl(client, parameters) {
1287
+ validateActionParameters(parameters);
1288
+ const response = await fn(client);
1289
+ if (parameters?.schema === false) {
1290
+ return response;
1291
+ }
1292
+ const actualSchema = parameters?.schema || schema;
1293
+ return actualSchema.parse(response);
1294
+ }
1295
+ function safeAction(client, parameters) {
1296
+ return _safeActionImpl(client, parameters);
1297
+ }
1298
+ async function _safeActionImpl(client, parameters) {
1299
+ const parameterValidationError = safeValidateActionParameters(parameters);
1300
+ if (parameterValidationError) {
1301
+ return parameterValidationError;
1302
+ }
1303
+ const httpResult = await (async () => {
1304
+ try {
1305
+ const data = await fn(client);
1306
+ return { success: true, data };
1307
+ } catch (error) {
1308
+ if (error && typeof error === "object" && "isRequestError" in error) {
1309
+ return { success: false, error };
1310
+ }
1311
+ if (error && typeof error === "object" && "issues" in error) {
1312
+ return { success: false, error };
1313
+ }
1314
+ return {
1315
+ success: false,
1316
+ error: {
1317
+ name: "Error",
1318
+ message: error instanceof Error ? error.message : String(error)
1319
+ }
1320
+ };
1321
+ }
1322
+ })();
1323
+ if (!httpResult.success) {
1324
+ return httpResult;
1325
+ }
1326
+ if (parameters?.schema === false) {
1327
+ return { success: true, data: httpResult.data };
1328
+ }
1329
+ const actualSchema = parameters?.schema || schema;
1330
+ return actualSchema.safeParse(httpResult.data);
1331
+ }
1332
+ return {
1333
+ action,
1334
+ safeAction
1335
+ };
1336
+ }
1337
+ function defineAction(schema, fn) {
1338
+ function action(client, ...args) {
1339
+ const [params, parameters] = args;
1340
+ return _actionImpl(client, params, parameters);
1341
+ }
1342
+ async function _actionImpl(client, params, parameters) {
1343
+ validateActionParameters(parameters);
1344
+ const response = await fn(client, params);
1345
+ if (parameters?.schema === false) {
1346
+ return response;
1347
+ }
1348
+ const actualSchema = parameters?.schema || schema;
1349
+ return actualSchema.parse(response);
1350
+ }
1351
+ function safeAction(client, ...args) {
1352
+ const [params, parameters] = args;
1353
+ return _safeActionImpl(client, params, parameters);
1354
+ }
1355
+ async function _safeActionImpl(client, params, parameters) {
1356
+ const parameterValidationError = safeValidateActionParameters(parameters);
1357
+ if (parameterValidationError) {
1358
+ return parameterValidationError;
1359
+ }
1360
+ const httpResult = await (async () => {
1361
+ try {
1362
+ const data = await fn(client, params);
1363
+ return { success: true, data };
1364
+ } catch (error) {
1365
+ if (error && typeof error === "object" && "isRequestError" in error) {
1366
+ return { success: false, error };
1367
+ }
1368
+ if (error && typeof error === "object" && "issues" in error) {
1369
+ return { success: false, error };
1370
+ }
1371
+ return {
1372
+ success: false,
1373
+ error: {
1374
+ name: "Error",
1375
+ message: error instanceof Error ? error.message : String(error)
1376
+ }
1377
+ };
1378
+ }
1379
+ })();
1380
+ if (!httpResult.success) {
1381
+ return httpResult;
1382
+ }
1383
+ if (parameters?.schema === false) {
1384
+ return { success: true, data: httpResult.data };
1385
+ }
1386
+ const actualSchema = parameters?.schema || schema;
1387
+ return actualSchema.safeParse(httpResult.data);
1388
+ }
1389
+ return {
1390
+ action,
1391
+ safeAction
1392
+ };
1393
+ }
1394
+
1395
+ // src/actions/get_available_nodes.ts
1249
1396
  var AvailableOSImageSchema = import_zod5.z.object({
1250
1397
  name: import_zod5.z.string(),
1251
1398
  is_dev: import_zod5.z.boolean(),
@@ -1284,25 +1431,12 @@ var AvailableNodesSchema = import_zod5.z.object({
1284
1431
  nodes: import_zod5.z.array(TeepodCapacitySchema),
1285
1432
  kms_list: import_zod5.z.array(KmsInfoSchema)
1286
1433
  }).passthrough();
1287
- async function getAvailableNodes(client, parameters) {
1288
- const response = await client.get("/teepods/available");
1289
- if (parameters?.schema === false) {
1290
- return response;
1291
- }
1292
- const schema = parameters?.schema || AvailableNodesSchema;
1293
- return schema.parse(response);
1294
- }
1295
- async function safeGetAvailableNodes(client, parameters) {
1296
- const httpResult = await client.safeGet("/teepods/available");
1297
- if (!httpResult.success) {
1298
- return httpResult;
1299
- }
1300
- if (parameters?.schema === false) {
1301
- return { success: true, data: httpResult.data };
1434
+ var { action: getAvailableNodes, safeAction: safeGetAvailableNodes } = defineSimpleAction(
1435
+ AvailableNodesSchema,
1436
+ async (client) => {
1437
+ return await client.get("/teepods/available");
1302
1438
  }
1303
- const schema = parameters?.schema || AvailableNodesSchema;
1304
- return schema.safeParse(httpResult.data);
1305
- }
1439
+ );
1306
1440
 
1307
1441
  // src/actions/provision_cvm.ts
1308
1442
  var import_zod6 = require("zod");
@@ -1313,10 +1447,17 @@ var ProvisionCvmSchema = import_zod6.z.object({
1313
1447
  fmspc: import_zod6.z.string().nullable().optional(),
1314
1448
  device_id: import_zod6.z.string().nullable().optional(),
1315
1449
  os_image_hash: import_zod6.z.string().nullable().optional(),
1450
+ teepod_id: import_zod6.z.number().nullable().optional(),
1451
+ // Will be transformed to node_id
1316
1452
  node_id: import_zod6.z.number().nullable().optional(),
1317
- // Transformed from teepod_id in response
1318
1453
  kms_id: import_zod6.z.string().nullable().optional()
1319
- }).passthrough();
1454
+ }).passthrough().transform((data) => {
1455
+ if ("teepod_id" in data && data.teepod_id !== void 0) {
1456
+ const { teepod_id, ...rest } = data;
1457
+ return { ...rest, node_id: teepod_id };
1458
+ }
1459
+ return data;
1460
+ });
1320
1461
  var ProvisionCvmRequestSchema = import_zod6.z.object({
1321
1462
  node_id: import_zod6.z.number().optional(),
1322
1463
  // recommended
@@ -1378,18 +1519,7 @@ function handleGatewayCompatibility(appCompose) {
1378
1519
  compose_file: composeFile
1379
1520
  };
1380
1521
  }
1381
- function transformResponse(data, isDefaultSchema) {
1382
- if (!isDefaultSchema || !data || typeof data !== "object") {
1383
- return data;
1384
- }
1385
- if (data && typeof data === "object" && "teepod_id" in data) {
1386
- const { teepod_id, ...rest } = data;
1387
- return { ...rest, node_id: teepod_id };
1388
- }
1389
- return data;
1390
- }
1391
- async function provisionCvm(client, appCompose, parameters) {
1392
- validateActionParameters(parameters);
1522
+ var { action: provisionCvm, safeAction: safeProvisionCvm } = defineAction(ProvisionCvmSchema, async (client, appCompose) => {
1393
1523
  const body = handleGatewayCompatibility(autofillComposeFileName(appCompose));
1394
1524
  let requestBody = { ...body };
1395
1525
  if (typeof body.node_id === "number") {
@@ -1398,41 +1528,8 @@ async function provisionCvm(client, appCompose, parameters) {
1398
1528
  } else if (typeof body.teepod_id === "number") {
1399
1529
  console.warn("[phala/cloud] teepod_id is deprecated, please use node_id instead.");
1400
1530
  }
1401
- const response = await client.post("/cvms/provision", requestBody);
1402
- const isDefaultSchema = parameters?.schema === void 0;
1403
- const transformedData = transformResponse(response, isDefaultSchema);
1404
- if (parameters?.schema === false) {
1405
- return transformedData;
1406
- }
1407
- const usedSchema = parameters?.schema || ProvisionCvmSchema;
1408
- return usedSchema.parse(transformedData);
1409
- }
1410
- async function safeProvisionCvm(client, appCompose, parameters) {
1411
- const parameterValidationError = safeValidateActionParameters(parameters);
1412
- if (parameterValidationError) {
1413
- return parameterValidationError;
1414
- }
1415
- const schema = parameters?.schema;
1416
- const body = handleGatewayCompatibility(autofillComposeFileName(appCompose));
1417
- let requestBody = { ...body };
1418
- if (typeof body.node_id === "number") {
1419
- requestBody = { ...body, teepod_id: body.node_id };
1420
- delete requestBody.node_id;
1421
- } else if (typeof body.teepod_id === "number") {
1422
- console.warn("[phala/cloud] teepod_id is deprecated, please use node_id instead.");
1423
- }
1424
- const httpResult = await client.safePost("/cvms/provision", requestBody);
1425
- if (!httpResult.success) {
1426
- return httpResult;
1427
- }
1428
- if (schema === false) {
1429
- return { success: true, data: httpResult.data };
1430
- }
1431
- const isDefaultSchema = !schema;
1432
- const usedSchema = schema || ProvisionCvmSchema;
1433
- const transformResult = usedSchema.safeParse(transformResponse(httpResult.data, isDefaultSchema));
1434
- return transformResult;
1435
- }
1531
+ return await client.post("/cvms/provision", requestBody);
1532
+ });
1436
1533
 
1437
1534
  // src/actions/commit_cvm_provision.ts
1438
1535
  var import_zod7 = require("zod");
@@ -1473,31 +1570,9 @@ var CommitCvmProvisionRequestSchema = import_zod7.z.object({
1473
1570
  deployer_address: import_zod7.z.string().optional(),
1474
1571
  env_keys: import_zod7.z.array(import_zod7.z.string()).optional().nullable()
1475
1572
  }).passthrough();
1476
- async function commitCvmProvision(client, payload, parameters) {
1477
- validateActionParameters(parameters);
1478
- const response = await client.post("/cvms", payload);
1479
- if (parameters?.schema === false) {
1480
- return response;
1481
- }
1482
- const schema = parameters?.schema || CommitCvmProvisionSchema;
1483
- return schema.parse(response);
1484
- }
1485
- async function safeCommitCvmProvision(client, payload, parameters) {
1486
- const parameterValidationError = safeValidateActionParameters(parameters);
1487
- if (parameterValidationError) {
1488
- return parameterValidationError;
1489
- }
1490
- const httpResult = await client.safePost("/cvms", payload);
1491
- if (!httpResult.success) {
1492
- return httpResult;
1493
- }
1494
- if (parameters?.schema === false) {
1495
- return { success: true, data: httpResult.data };
1496
- }
1497
- const schema = parameters?.schema || CommitCvmProvisionSchema;
1498
- const validationResult = schema.safeParse(httpResult.data);
1499
- return validationResult;
1500
- }
1573
+ var { action: commitCvmProvision, safeAction: safeCommitCvmProvision } = defineAction(CommitCvmProvisionSchema, async (client, payload) => {
1574
+ return await client.post("/cvms", payload);
1575
+ });
1501
1576
 
1502
1577
  // src/actions/deploy_app_auth.ts
1503
1578
  var import_zod8 = require("zod");
@@ -2128,30 +2203,10 @@ var GetCvmComposeFileRequestSchema = import_zod11.z.object({
2128
2203
  cvmId: data.id || data.uuid || data.app_id || data.instance_id,
2129
2204
  _raw: data
2130
2205
  }));
2131
- async function getCvmComposeFile(client, request, parameters) {
2206
+ var { action: getCvmComposeFile, safeAction: safeGetCvmComposeFile } = defineAction(LooseAppComposeSchema, async (client, request) => {
2132
2207
  const validatedRequest = GetCvmComposeFileRequestSchema.parse(request);
2133
- const response = await client.get(`/cvms/${validatedRequest.cvmId}/compose_file`);
2134
- if (parameters?.schema === false) {
2135
- return response;
2136
- }
2137
- const schema = parameters?.schema || LooseAppComposeSchema;
2138
- return schema.parse(response);
2139
- }
2140
- async function safeGetCvmComposeFile(client, request, parameters) {
2141
- const requestValidation = GetCvmComposeFileRequestSchema.safeParse(request);
2142
- if (!requestValidation.success) {
2143
- return requestValidation;
2144
- }
2145
- const httpResult = await client.safeGet(`/cvms/${requestValidation.data.cvmId}/compose_file`);
2146
- if (!httpResult.success) {
2147
- return httpResult;
2148
- }
2149
- if (parameters?.schema === false) {
2150
- return { success: true, data: httpResult.data };
2151
- }
2152
- const schema = parameters?.schema || LooseAppComposeSchema;
2153
- return schema.safeParse(httpResult.data);
2154
- }
2208
+ return await client.get(`/cvms/${validatedRequest.cvmId}/compose_file`);
2209
+ });
2155
2210
 
2156
2211
  // src/actions/provision_cvm_compose_file_update.ts
2157
2212
  var import_zod12 = require("zod");
@@ -2183,36 +2238,13 @@ var ProvisionCvmComposeFileUpdateResultSchema = import_zod12.z.object({
2183
2238
  compose_hash: import_zod12.z.string(),
2184
2239
  kms_info: KmsInfoSchema.nullable().optional()
2185
2240
  }).passthrough();
2186
- async function provisionCvmComposeFileUpdate(client, request, parameters) {
2241
+ var { action: provisionCvmComposeFileUpdate, safeAction: safeProvisionCvmComposeFileUpdate } = defineAction(ProvisionCvmComposeFileUpdateResultSchema, async (client, request) => {
2187
2242
  const validatedRequest = ProvisionCvmComposeFileUpdateRequestSchema.parse(request);
2188
- const response = await client.post(
2243
+ return await client.post(
2189
2244
  `/cvms/${validatedRequest.cvmId}/compose_file/provision`,
2190
2245
  validatedRequest.request
2191
2246
  );
2192
- if (parameters?.schema === false) {
2193
- return response;
2194
- }
2195
- const schema = parameters?.schema || ProvisionCvmComposeFileUpdateResultSchema;
2196
- return schema.parse(response);
2197
- }
2198
- async function safeProvisionCvmComposeFileUpdate(client, request, parameters) {
2199
- const requestValidation = ProvisionCvmComposeFileUpdateRequestSchema.safeParse(request);
2200
- if (!requestValidation.success) {
2201
- return requestValidation;
2202
- }
2203
- const httpResult = await client.safePost(
2204
- `/cvms/${requestValidation.data.cvmId}/compose_file/provision`,
2205
- requestValidation.data.request
2206
- );
2207
- if (!httpResult.success) {
2208
- return httpResult;
2209
- }
2210
- if (parameters?.schema === false) {
2211
- return { success: true, data: httpResult.data };
2212
- }
2213
- const schema = parameters?.schema || ProvisionCvmComposeFileUpdateResultSchema;
2214
- return schema.safeParse(httpResult.data);
2215
- }
2247
+ });
2216
2248
 
2217
2249
  // src/actions/commit_cvm_compose_file_update.ts
2218
2250
  var import_zod13 = require("zod");
@@ -2243,38 +2275,17 @@ var CommitCvmComposeFileUpdateRequestSchema = import_zod13.z.object({
2243
2275
  _raw: data
2244
2276
  }));
2245
2277
  var CommitCvmComposeFileUpdateSchema = import_zod13.z.any().transform(() => void 0);
2246
- async function commitCvmComposeFileUpdate(client, request, parameters) {
2247
- const validatedRequest = CommitCvmComposeFileUpdateRequestSchema.parse(request);
2248
- const response = await client.patch(`/cvms/${validatedRequest.cvmId}/compose_file`, {
2249
- compose_hash: validatedRequest.compose_hash,
2250
- encrypted_env: validatedRequest.encrypted_env,
2251
- env_keys: validatedRequest.env_keys
2252
- });
2253
- if (parameters?.schema === false) {
2254
- return response;
2255
- }
2256
- const schema = parameters?.schema || CommitCvmComposeFileUpdateSchema;
2257
- return schema.parse(response);
2258
- }
2259
- async function safeCommitCvmComposeFileUpdate(client, request, parameters) {
2260
- const requestValidation = CommitCvmComposeFileUpdateRequestSchema.safeParse(request);
2261
- if (!requestValidation.success) {
2262
- return requestValidation;
2263
- }
2264
- const httpResult = await client.safePatch(`/cvms/${requestValidation.data.cvmId}/compose_file`, {
2265
- compose_hash: requestValidation.data.compose_hash,
2266
- encrypted_env: requestValidation.data.encrypted_env,
2267
- env_keys: requestValidation.data.env_keys
2268
- });
2269
- if (!httpResult.success) {
2270
- return httpResult;
2271
- }
2272
- if (parameters?.schema === false) {
2273
- return { success: true, data: httpResult.data };
2278
+ var { action: commitCvmComposeFileUpdate, safeAction: safeCommitCvmComposeFileUpdate } = defineAction(
2279
+ CommitCvmComposeFileUpdateSchema,
2280
+ async (client, request) => {
2281
+ const validatedRequest = CommitCvmComposeFileUpdateRequestSchema.parse(request);
2282
+ return await client.patch(`/cvms/${validatedRequest.cvmId}/compose_file`, {
2283
+ compose_hash: validatedRequest.compose_hash,
2284
+ encrypted_env: validatedRequest.encrypted_env,
2285
+ env_keys: validatedRequest.env_keys
2286
+ });
2274
2287
  }
2275
- const schema = parameters?.schema || CommitCvmComposeFileUpdateSchema;
2276
- return schema.safeParse(httpResult.data);
2277
- }
2288
+ );
2278
2289
 
2279
2290
  // src/actions/get_app_env_encrypt_pubkey.ts
2280
2291
  var import_zod14 = require("zod");
@@ -2289,39 +2300,10 @@ var GetAppEnvEncryptPubKeySchema = import_zod14.z.object({
2289
2300
  public_key: import_zod14.z.string(),
2290
2301
  signature: import_zod14.z.string()
2291
2302
  }).strict();
2292
- var getAppEnvEncryptPubKey = async (client, payload, parameters) => {
2303
+ var { action: getAppEnvEncryptPubKey, safeAction: safeGetAppEnvEncryptPubKey } = defineAction(GetAppEnvEncryptPubKeySchema, async (client, payload) => {
2293
2304
  const validatedRequest = GetAppEnvEncryptPubKeyRequestSchema.parse(payload);
2294
- validateActionParameters(parameters);
2295
- const response = await client.get(
2296
- `/kms/${validatedRequest.kms}/pubkey/${validatedRequest.app_id}`
2297
- );
2298
- if (parameters?.schema === false) {
2299
- return response;
2300
- }
2301
- const schema = parameters?.schema || GetAppEnvEncryptPubKeySchema;
2302
- return schema.parse(response);
2303
- };
2304
- var safeGetAppEnvEncryptPubKey = async (client, payload, parameters) => {
2305
- const requestValidation = GetAppEnvEncryptPubKeyRequestSchema.safeParse(payload);
2306
- if (!requestValidation.success) {
2307
- return requestValidation;
2308
- }
2309
- const parameterValidationError = safeValidateActionParameters(parameters);
2310
- if (parameterValidationError) {
2311
- return parameterValidationError;
2312
- }
2313
- const httpResult = await client.safeGet(
2314
- `/kms/${requestValidation.data.kms}/pubkey/${requestValidation.data.app_id}`
2315
- );
2316
- if (!httpResult.success) {
2317
- return httpResult;
2318
- }
2319
- if (parameters?.schema === false) {
2320
- return { success: true, data: httpResult.data };
2321
- }
2322
- const schema = parameters?.schema || GetAppEnvEncryptPubKeySchema;
2323
- return schema.safeParse(httpResult.data);
2324
- };
2305
+ return await client.get(`/kms/${validatedRequest.kms}/pubkey/${validatedRequest.app_id}`);
2306
+ });
2325
2307
 
2326
2308
  // src/actions/get_cvm_info.ts
2327
2309
  var import_zod15 = require("zod");
@@ -2343,39 +2325,10 @@ var GetCvmInfoRequestSchema = import_zod15.z.object({
2343
2325
  cvmId: data.id || data.uuid || data.app_id || data.instance_id,
2344
2326
  _raw: data
2345
2327
  }));
2346
- async function getCvmInfo(client, request, parameters) {
2328
+ var { action: getCvmInfo, safeAction: safeGetCvmInfo } = defineAction(CvmLegacyDetailSchema, async (client, request) => {
2347
2329
  const validatedRequest = GetCvmInfoRequestSchema.parse(request);
2348
- validateActionParameters(parameters);
2349
- const response = await client.get(`/cvms/${validatedRequest.cvmId}`);
2350
- if (parameters?.schema === false) {
2351
- return response;
2352
- }
2353
- const schema = parameters?.schema || CvmLegacyDetailSchema;
2354
- return schema.parse(response);
2355
- }
2356
- async function safeGetCvmInfo(client, request, parameters) {
2357
- const requestValidation = GetCvmInfoRequestSchema.safeParse(request);
2358
- if (!requestValidation.success) {
2359
- return requestValidation;
2360
- }
2361
- const parameterValidationError = safeValidateActionParameters(parameters);
2362
- if (parameterValidationError) {
2363
- return parameterValidationError;
2364
- }
2365
- const httpResult = await client.safeGet(`/cvms/${requestValidation.data.cvmId}`);
2366
- if (!httpResult.success) {
2367
- return httpResult;
2368
- }
2369
- if (parameters?.schema === false) {
2370
- return {
2371
- success: true,
2372
- data: httpResult.data
2373
- };
2374
- }
2375
- const schema = parameters?.schema || CvmLegacyDetailSchema;
2376
- const validationResult = schema.safeParse(httpResult.data);
2377
- return validationResult;
2378
- }
2330
+ return await client.get(`/cvms/${validatedRequest.cvmId}`);
2331
+ });
2379
2332
 
2380
2333
  // src/actions/get_cvm_list.ts
2381
2334
  var import_zod16 = require("zod");
@@ -2391,75 +2344,20 @@ var GetCvmListSchema = import_zod16.z.object({
2391
2344
  page_size: import_zod16.z.number(),
2392
2345
  pages: import_zod16.z.number()
2393
2346
  }).strict();
2394
- async function getCvmList(client, request, parameters) {
2347
+ var { action: getCvmList, safeAction: safeGetCvmList } = defineAction(GetCvmListSchema, async (client, request) => {
2395
2348
  const validatedRequest = GetCvmListRequestSchema.parse(request ?? {});
2396
- validateActionParameters(parameters);
2397
- const response = await client.get("/cvms/paginated", { params: validatedRequest });
2398
- if (parameters?.schema === false) {
2399
- return response;
2400
- }
2401
- const schema = parameters?.schema || GetCvmListSchema;
2402
- return schema.parse(response);
2403
- }
2404
- async function safeGetCvmList(client, request, parameters) {
2405
- const requestValidation = GetCvmListRequestSchema.safeParse(request ?? {});
2406
- if (!requestValidation.success) {
2407
- return requestValidation;
2408
- }
2409
- const parameterValidationError = safeValidateActionParameters(parameters);
2410
- if (parameterValidationError) {
2411
- return parameterValidationError;
2412
- }
2413
- const httpResult = await client.safeGet("/cvms/paginated", { params: requestValidation.data });
2414
- if (!httpResult.success) {
2415
- return httpResult;
2416
- }
2417
- if (parameters?.schema === false) {
2418
- return {
2419
- success: true,
2420
- data: httpResult.data
2421
- };
2422
- }
2423
- const schema = parameters?.schema || GetCvmListSchema;
2424
- const validationResult = schema.safeParse(httpResult.data);
2425
- return validationResult;
2426
- }
2349
+ return await client.get("/cvms/paginated", { params: validatedRequest });
2350
+ });
2427
2351
 
2428
2352
  // src/actions/get_kms_info.ts
2429
2353
  var import_zod17 = require("zod");
2430
2354
  var GetKmsInfoRequestSchema = import_zod17.z.object({
2431
2355
  kms_id: import_zod17.z.string().min(1, "KMS ID is required")
2432
2356
  });
2433
- async function getKmsInfo(client, request, parameters) {
2357
+ var { action: getKmsInfo, safeAction: safeGetKmsInfo } = defineAction(KmsInfoSchema, async (client, request) => {
2434
2358
  const validatedRequest = GetKmsInfoRequestSchema.parse(request);
2435
- validateActionParameters(parameters);
2436
- const response = await client.get(`/kms/${validatedRequest.kms_id}`);
2437
- if (parameters?.schema === false) {
2438
- return response;
2439
- }
2440
- const schema = parameters?.schema || KmsInfoSchema;
2441
- return schema.parse(response);
2442
- }
2443
- async function safeGetKmsInfo(client, request, parameters) {
2444
- const requestValidation = GetKmsInfoRequestSchema.safeParse(request);
2445
- if (!requestValidation.success) {
2446
- return requestValidation;
2447
- }
2448
- const parameterValidationError = safeValidateActionParameters(parameters);
2449
- if (parameterValidationError) {
2450
- return parameterValidationError;
2451
- }
2452
- const httpResult = await client.safeGet(`/kms/${requestValidation.data.kms_id}`);
2453
- if (!httpResult.success) {
2454
- return httpResult;
2455
- }
2456
- if (parameters?.schema === false) {
2457
- return { success: true, data: httpResult.data };
2458
- }
2459
- const schema = parameters?.schema || KmsInfoSchema;
2460
- const validationResult = schema.safeParse(httpResult.data);
2461
- return validationResult;
2462
- }
2359
+ return await client.get(`/kms/${validatedRequest.kms_id}`);
2360
+ });
2463
2361
 
2464
2362
  // src/actions/get_kms_list.ts
2465
2363
  var import_zod18 = require("zod");
@@ -2475,39 +2373,10 @@ var GetKmsListSchema = import_zod18.z.object({
2475
2373
  page_size: import_zod18.z.number(),
2476
2374
  pages: import_zod18.z.number()
2477
2375
  }).strict();
2478
- async function getKmsList(client, request, parameters) {
2376
+ var { action: getKmsList, safeAction: safeGetKmsList } = defineAction(GetKmsListSchema, async (client, request) => {
2479
2377
  const validatedRequest = GetKmsListRequestSchema.parse(request ?? {});
2480
- validateActionParameters(parameters);
2481
- const response = await client.get("/kms", { params: validatedRequest });
2482
- if (parameters?.schema === false) {
2483
- return response;
2484
- }
2485
- const schema = parameters?.schema || GetKmsListSchema;
2486
- return schema.parse(response);
2487
- }
2488
- async function safeGetKmsList(client, request, parameters) {
2489
- const requestValidation = GetKmsListRequestSchema.safeParse(request ?? {});
2490
- if (!requestValidation.success) {
2491
- return requestValidation;
2492
- }
2493
- const parameterValidationError = safeValidateActionParameters(parameters);
2494
- if (parameterValidationError) {
2495
- return parameterValidationError;
2496
- }
2497
- const httpResult = await client.safeGet("/kms", { params: requestValidation.data });
2498
- if (!httpResult.success) {
2499
- return httpResult;
2500
- }
2501
- if (parameters?.schema === false) {
2502
- return {
2503
- success: true,
2504
- data: httpResult.data
2505
- };
2506
- }
2507
- const schema = parameters?.schema || GetKmsListSchema;
2508
- const validationResult = schema.safeParse(httpResult.data);
2509
- return validationResult;
2510
- }
2378
+ return await client.get("/kms", { params: validatedRequest });
2379
+ });
2511
2380
 
2512
2381
  // src/actions/workspaces/list_workspaces.ts
2513
2382
  var import_zod19 = require("zod");
@@ -2528,64 +2397,18 @@ var ListWorkspacesSchema = import_zod19.z.object({
2528
2397
  data: import_zod19.z.array(WorkspaceResponseSchema),
2529
2398
  pagination: PaginationMetadataSchema
2530
2399
  }).passthrough();
2531
- async function listWorkspaces(client, parameters) {
2532
- validateActionParameters(parameters);
2533
- const queryParams = new URLSearchParams();
2534
- if (parameters?.cursor) queryParams.append("cursor", parameters.cursor);
2535
- if (parameters?.limit) queryParams.append("limit", parameters.limit.toString());
2536
- const url = queryParams.toString() ? `/workspaces?${queryParams.toString()}` : "/workspaces";
2537
- const response = await client.get(url);
2538
- if (parameters?.schema === false) {
2539
- return response;
2540
- }
2541
- const schema = parameters?.schema || ListWorkspacesSchema;
2542
- return schema.parse(response);
2543
- }
2544
- async function safeListWorkspaces(client, parameters) {
2545
- const parameterValidationError = safeValidateActionParameters(parameters);
2546
- if (parameterValidationError) {
2547
- return parameterValidationError;
2548
- }
2400
+ var { action: listWorkspaces, safeAction: safeListWorkspaces } = defineAction(ListWorkspacesSchema, async (client, request) => {
2549
2401
  const queryParams = new URLSearchParams();
2550
- if (parameters?.cursor) queryParams.append("cursor", parameters.cursor);
2551
- if (parameters?.limit) queryParams.append("limit", parameters.limit.toString());
2402
+ if (request?.cursor) queryParams.append("cursor", request.cursor);
2403
+ if (request?.limit) queryParams.append("limit", request.limit.toString());
2552
2404
  const url = queryParams.toString() ? `/workspaces?${queryParams.toString()}` : "/workspaces";
2553
- const httpResult = await client.safeGet(url);
2554
- if (!httpResult.success) {
2555
- return httpResult;
2556
- }
2557
- if (parameters?.schema === false) {
2558
- return { success: true, data: httpResult.data };
2559
- }
2560
- const schema = parameters?.schema || ListWorkspacesSchema;
2561
- return schema.safeParse(httpResult.data);
2562
- }
2405
+ return await client.get(url);
2406
+ });
2563
2407
 
2564
2408
  // src/actions/workspaces/get_workspace.ts
2565
- async function getWorkspace(client, teamSlug, parameters) {
2566
- validateActionParameters(parameters);
2567
- const response = await client.get(`/workspaces/${teamSlug}`);
2568
- if (parameters?.schema === false) {
2569
- return response;
2570
- }
2571
- const schema = parameters?.schema || WorkspaceResponseSchema;
2572
- return schema.parse(response);
2573
- }
2574
- async function safeGetWorkspace(client, teamSlug, parameters) {
2575
- const parameterValidationError = safeValidateActionParameters(parameters);
2576
- if (parameterValidationError) {
2577
- return parameterValidationError;
2578
- }
2579
- const httpResult = await client.safeGet(`/workspaces/${teamSlug}`);
2580
- if (!httpResult.success) {
2581
- return httpResult;
2582
- }
2583
- if (parameters?.schema === false) {
2584
- return { success: true, data: httpResult.data };
2585
- }
2586
- const schema = parameters?.schema || WorkspaceResponseSchema;
2587
- return schema.safeParse(httpResult.data);
2588
- }
2409
+ var { action: getWorkspace, safeAction: safeGetWorkspace } = defineAction(WorkspaceResponseSchema, async (client, teamSlug) => {
2410
+ return await client.get(`/workspaces/${teamSlug}`);
2411
+ });
2589
2412
 
2590
2413
  // src/actions/list-instance-types.ts
2591
2414
  var import_zod20 = require("zod");
@@ -2611,45 +2434,13 @@ var PaginatedInstanceTypesSchema = import_zod20.z.object({
2611
2434
  page_size: import_zod20.z.number(),
2612
2435
  pages: import_zod20.z.number()
2613
2436
  }).strict();
2614
- async function listInstanceTypes(client, request, parameters) {
2437
+ var { action: listInstanceTypes, safeAction: safeListInstanceTypes } = defineAction(PaginatedInstanceTypesSchema, async (client, request) => {
2615
2438
  const validatedRequest = ListInstanceTypesRequestSchema.parse(request ?? {});
2616
- validateActionParameters(parameters);
2617
2439
  const queryParams = new URLSearchParams();
2618
2440
  queryParams.append("page", validatedRequest.page.toString());
2619
2441
  queryParams.append("page_size", validatedRequest.page_size.toString());
2620
- const response = await client.get(`/api/instance-types?${queryParams.toString()}`);
2621
- if (parameters?.schema === false) {
2622
- return response;
2623
- }
2624
- const schema = parameters?.schema || PaginatedInstanceTypesSchema;
2625
- return schema.parse(response);
2626
- }
2627
- async function safeListInstanceTypes(client, request, parameters) {
2628
- const requestValidation = ListInstanceTypesRequestSchema.safeParse(request ?? {});
2629
- if (!requestValidation.success) {
2630
- return requestValidation;
2631
- }
2632
- const parameterValidationError = safeValidateActionParameters(parameters);
2633
- if (parameterValidationError) {
2634
- return parameterValidationError;
2635
- }
2636
- const queryParams = new URLSearchParams();
2637
- queryParams.append("page", requestValidation.data.page.toString());
2638
- queryParams.append("page_size", requestValidation.data.page_size.toString());
2639
- const httpResult = await client.safeGet(`/api/instance-types?${queryParams.toString()}`);
2640
- if (!httpResult.success) {
2641
- return httpResult;
2642
- }
2643
- if (parameters?.schema === false) {
2644
- return {
2645
- success: true,
2646
- data: httpResult.data
2647
- };
2648
- }
2649
- const schema = parameters?.schema || PaginatedInstanceTypesSchema;
2650
- const validationResult = schema.safeParse(httpResult.data);
2651
- return validationResult;
2652
- }
2442
+ return await client.get(`/api/instance-types?${queryParams.toString()}`);
2443
+ });
2653
2444
 
2654
2445
  // src/parse_dotenv.ts
2655
2446
  var LINE = /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/gm;
@@ -2702,11 +2493,18 @@ var import_verify_env_encrypt_public_key = require("@phala/dstack-sdk/verify-env
2702
2493
  CvmNodeSchema,
2703
2494
  DeployAppAuthRequestSchema,
2704
2495
  DeployAppAuthSchema,
2496
+ GetAppEnvEncryptPubKeyRequestSchema,
2705
2497
  GetAppEnvEncryptPubKeySchema,
2498
+ GetCvmComposeFileRequestSchema,
2499
+ GetCvmInfoRequestSchema,
2500
+ GetCvmListRequestSchema,
2706
2501
  GetCvmListSchema,
2502
+ GetKmsInfoRequestSchema,
2503
+ GetKmsListRequestSchema,
2707
2504
  GetKmsListSchema,
2708
2505
  InstanceTypeSchema,
2709
2506
  KmsInfoSchema,
2507
+ ListInstanceTypesRequestSchema,
2710
2508
  ListWorkspacesSchema,
2711
2509
  ManagedUserSchema,
2712
2510
  NetworkError,
@@ -2735,6 +2533,8 @@ var import_verify_env_encrypt_public_key = require("@phala/dstack-sdk/verify-env
2735
2533
  createClientsFromPrivateKey,
2736
2534
  createNetworkClients,
2737
2535
  createTransactionTracker,
2536
+ defineAction,
2537
+ defineSimpleAction,
2738
2538
  deployAppAuth,
2739
2539
  encryptEnvVars,
2740
2540
  estimateTransactionGas,