@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.mjs CHANGED
@@ -294,6 +294,28 @@ var Client = class {
294
294
  async safeDelete(request, options) {
295
295
  return this.safeRequest(() => this.delete(request, options));
296
296
  }
297
+ /**
298
+ * Extend client with additional actions
299
+ *
300
+ * @example
301
+ * ```typescript
302
+ * const client = createClient({ apiKey: 'xxx' })
303
+ * .extend(publicActions)
304
+ * .extend(cvmActions)
305
+ *
306
+ * await client.getCurrentUser() // Method call instead of function call
307
+ * ```
308
+ */
309
+ extend(actions) {
310
+ const actionsObj = typeof actions === "function" ? actions(this) : actions;
311
+ const extended = Object.create(this);
312
+ for (const [key, action] of Object.entries(actionsObj)) {
313
+ if (typeof action === "function") {
314
+ extended[key] = (...args) => action(this, ...args);
315
+ }
316
+ }
317
+ return extended;
318
+ }
297
319
  };
298
320
  function createClient(config = {}) {
299
321
  return new Client(config);
@@ -1122,6 +1144,122 @@ async function safeGetCurrentUser(client, parameters) {
1122
1144
 
1123
1145
  // src/actions/get_available_nodes.ts
1124
1146
  import { z as z5 } from "zod";
1147
+
1148
+ // src/utils/define-action.ts
1149
+ function defineSimpleAction(schema, fn) {
1150
+ function action(client, parameters) {
1151
+ return _actionImpl(client, parameters);
1152
+ }
1153
+ async function _actionImpl(client, parameters) {
1154
+ validateActionParameters(parameters);
1155
+ const response = await fn(client);
1156
+ if (parameters?.schema === false) {
1157
+ return response;
1158
+ }
1159
+ const actualSchema = parameters?.schema || schema;
1160
+ return actualSchema.parse(response);
1161
+ }
1162
+ function safeAction(client, parameters) {
1163
+ return _safeActionImpl(client, parameters);
1164
+ }
1165
+ async function _safeActionImpl(client, parameters) {
1166
+ const parameterValidationError = safeValidateActionParameters(parameters);
1167
+ if (parameterValidationError) {
1168
+ return parameterValidationError;
1169
+ }
1170
+ const httpResult = await (async () => {
1171
+ try {
1172
+ const data = await fn(client);
1173
+ return { success: true, data };
1174
+ } catch (error) {
1175
+ if (error && typeof error === "object" && "isRequestError" in error) {
1176
+ return { success: false, error };
1177
+ }
1178
+ if (error && typeof error === "object" && "issues" in error) {
1179
+ return { success: false, error };
1180
+ }
1181
+ return {
1182
+ success: false,
1183
+ error: {
1184
+ name: "Error",
1185
+ message: error instanceof Error ? error.message : String(error)
1186
+ }
1187
+ };
1188
+ }
1189
+ })();
1190
+ if (!httpResult.success) {
1191
+ return httpResult;
1192
+ }
1193
+ if (parameters?.schema === false) {
1194
+ return { success: true, data: httpResult.data };
1195
+ }
1196
+ const actualSchema = parameters?.schema || schema;
1197
+ return actualSchema.safeParse(httpResult.data);
1198
+ }
1199
+ return {
1200
+ action,
1201
+ safeAction
1202
+ };
1203
+ }
1204
+ function defineAction(schema, fn) {
1205
+ function action(client, ...args) {
1206
+ const [params, parameters] = args;
1207
+ return _actionImpl(client, params, parameters);
1208
+ }
1209
+ async function _actionImpl(client, params, parameters) {
1210
+ validateActionParameters(parameters);
1211
+ const response = await fn(client, params);
1212
+ if (parameters?.schema === false) {
1213
+ return response;
1214
+ }
1215
+ const actualSchema = parameters?.schema || schema;
1216
+ return actualSchema.parse(response);
1217
+ }
1218
+ function safeAction(client, ...args) {
1219
+ const [params, parameters] = args;
1220
+ return _safeActionImpl(client, params, parameters);
1221
+ }
1222
+ async function _safeActionImpl(client, params, parameters) {
1223
+ const parameterValidationError = safeValidateActionParameters(parameters);
1224
+ if (parameterValidationError) {
1225
+ return parameterValidationError;
1226
+ }
1227
+ const httpResult = await (async () => {
1228
+ try {
1229
+ const data = await fn(client, params);
1230
+ return { success: true, data };
1231
+ } catch (error) {
1232
+ if (error && typeof error === "object" && "isRequestError" in error) {
1233
+ return { success: false, error };
1234
+ }
1235
+ if (error && typeof error === "object" && "issues" in error) {
1236
+ return { success: false, error };
1237
+ }
1238
+ return {
1239
+ success: false,
1240
+ error: {
1241
+ name: "Error",
1242
+ message: error instanceof Error ? error.message : String(error)
1243
+ }
1244
+ };
1245
+ }
1246
+ })();
1247
+ if (!httpResult.success) {
1248
+ return httpResult;
1249
+ }
1250
+ if (parameters?.schema === false) {
1251
+ return { success: true, data: httpResult.data };
1252
+ }
1253
+ const actualSchema = parameters?.schema || schema;
1254
+ return actualSchema.safeParse(httpResult.data);
1255
+ }
1256
+ return {
1257
+ action,
1258
+ safeAction
1259
+ };
1260
+ }
1261
+
1262
+ // src/actions/get_available_nodes.ts
1125
1263
  var AvailableOSImageSchema = z5.object({
1126
1264
  name: z5.string(),
1127
1265
  is_dev: z5.boolean(),
@@ -1160,25 +1298,12 @@ var AvailableNodesSchema = z5.object({
1160
1298
  nodes: z5.array(TeepodCapacitySchema),
1161
1299
  kms_list: z5.array(KmsInfoSchema)
1162
1300
  }).passthrough();
1163
- async function getAvailableNodes(client, parameters) {
1164
- const response = await client.get("/teepods/available");
1165
- if (parameters?.schema === false) {
1166
- return response;
1167
- }
1168
- const schema = parameters?.schema || AvailableNodesSchema;
1169
- return schema.parse(response);
1170
- }
1171
- async function safeGetAvailableNodes(client, parameters) {
1172
- const httpResult = await client.safeGet("/teepods/available");
1173
- if (!httpResult.success) {
1174
- return httpResult;
1175
- }
1176
- if (parameters?.schema === false) {
1177
- return { success: true, data: httpResult.data };
1301
+ var { action: getAvailableNodes, safeAction: safeGetAvailableNodes } = defineSimpleAction(
1302
+ AvailableNodesSchema,
1303
+ async (client) => {
1304
+ return await client.get("/teepods/available");
1178
1305
  }
1179
- const schema = parameters?.schema || AvailableNodesSchema;
1180
- return schema.safeParse(httpResult.data);
1181
- }
1306
+ );
1182
1307
 
1183
1308
  // src/actions/provision_cvm.ts
1184
1309
  import { z as z6 } from "zod";
@@ -1189,10 +1314,17 @@ var ProvisionCvmSchema = z6.object({
1189
1314
  fmspc: z6.string().nullable().optional(),
1190
1315
  device_id: z6.string().nullable().optional(),
1191
1316
  os_image_hash: z6.string().nullable().optional(),
1317
+ teepod_id: z6.number().nullable().optional(),
1318
+ // Will be transformed to node_id
1192
1319
  node_id: z6.number().nullable().optional(),
1193
- // Transformed from teepod_id in response
1194
1320
  kms_id: z6.string().nullable().optional()
1195
- }).passthrough();
1321
+ }).passthrough().transform((data) => {
1322
+ if ("teepod_id" in data && data.teepod_id !== void 0) {
1323
+ const { teepod_id, ...rest } = data;
1324
+ return { ...rest, node_id: teepod_id };
1325
+ }
1326
+ return data;
1327
+ });
1196
1328
  var ProvisionCvmRequestSchema = z6.object({
1197
1329
  node_id: z6.number().optional(),
1198
1330
  // recommended
@@ -1254,18 +1386,7 @@ function handleGatewayCompatibility(appCompose) {
1254
1386
  compose_file: composeFile
1255
1387
  };
1256
1388
  }
1257
- function transformResponse(data, isDefaultSchema) {
1258
- if (!isDefaultSchema || !data || typeof data !== "object") {
1259
- return data;
1260
- }
1261
- if (data && typeof data === "object" && "teepod_id" in data) {
1262
- const { teepod_id, ...rest } = data;
1263
- return { ...rest, node_id: teepod_id };
1264
- }
1265
- return data;
1266
- }
1267
- async function provisionCvm(client, appCompose, parameters) {
1268
- validateActionParameters(parameters);
1389
+ var { action: provisionCvm, safeAction: safeProvisionCvm } = defineAction(ProvisionCvmSchema, async (client, appCompose) => {
1269
1390
  const body = handleGatewayCompatibility(autofillComposeFileName(appCompose));
1270
1391
  let requestBody = { ...body };
1271
1392
  if (typeof body.node_id === "number") {
@@ -1274,41 +1395,8 @@ async function provisionCvm(client, appCompose, parameters) {
1274
1395
  } else if (typeof body.teepod_id === "number") {
1275
1396
  console.warn("[phala/cloud] teepod_id is deprecated, please use node_id instead.");
1276
1397
  }
1277
- const response = await client.post("/cvms/provision", requestBody);
1278
- const isDefaultSchema = parameters?.schema === void 0;
1279
- const transformedData = transformResponse(response, isDefaultSchema);
1280
- if (parameters?.schema === false) {
1281
- return transformedData;
1282
- }
1283
- const usedSchema = parameters?.schema || ProvisionCvmSchema;
1284
- return usedSchema.parse(transformedData);
1285
- }
1286
- async function safeProvisionCvm(client, appCompose, parameters) {
1287
- const parameterValidationError = safeValidateActionParameters(parameters);
1288
- if (parameterValidationError) {
1289
- return parameterValidationError;
1290
- }
1291
- const schema = parameters?.schema;
1292
- const body = handleGatewayCompatibility(autofillComposeFileName(appCompose));
1293
- let requestBody = { ...body };
1294
- if (typeof body.node_id === "number") {
1295
- requestBody = { ...body, teepod_id: body.node_id };
1296
- delete requestBody.node_id;
1297
- } else if (typeof body.teepod_id === "number") {
1298
- console.warn("[phala/cloud] teepod_id is deprecated, please use node_id instead.");
1299
- }
1300
- const httpResult = await client.safePost("/cvms/provision", requestBody);
1301
- if (!httpResult.success) {
1302
- return httpResult;
1303
- }
1304
- if (schema === false) {
1305
- return { success: true, data: httpResult.data };
1306
- }
1307
- const isDefaultSchema = !schema;
1308
- const usedSchema = schema || ProvisionCvmSchema;
1309
- const transformResult = usedSchema.safeParse(transformResponse(httpResult.data, isDefaultSchema));
1310
- return transformResult;
1311
- }
1398
+ return await client.post("/cvms/provision", requestBody);
1399
+ });
1312
1400
 
1313
1401
  // src/actions/commit_cvm_provision.ts
1314
1402
  import { z as z7 } from "zod";
@@ -1349,31 +1437,9 @@ var CommitCvmProvisionRequestSchema = z7.object({
1349
1437
  deployer_address: z7.string().optional(),
1350
1438
  env_keys: z7.array(z7.string()).optional().nullable()
1351
1439
  }).passthrough();
1352
- async function commitCvmProvision(client, payload, parameters) {
1353
- validateActionParameters(parameters);
1354
- const response = await client.post("/cvms", payload);
1355
- if (parameters?.schema === false) {
1356
- return response;
1357
- }
1358
- const schema = parameters?.schema || CommitCvmProvisionSchema;
1359
- return schema.parse(response);
1360
- }
1361
- async function safeCommitCvmProvision(client, payload, parameters) {
1362
- const parameterValidationError = safeValidateActionParameters(parameters);
1363
- if (parameterValidationError) {
1364
- return parameterValidationError;
1365
- }
1366
- const httpResult = await client.safePost("/cvms", payload);
1367
- if (!httpResult.success) {
1368
- return httpResult;
1369
- }
1370
- if (parameters?.schema === false) {
1371
- return { success: true, data: httpResult.data };
1372
- }
1373
- const schema = parameters?.schema || CommitCvmProvisionSchema;
1374
- const validationResult = schema.safeParse(httpResult.data);
1375
- return validationResult;
1376
- }
1440
+ var { action: commitCvmProvision, safeAction: safeCommitCvmProvision } = defineAction(CommitCvmProvisionSchema, async (client, payload) => {
1441
+ return await client.post("/cvms", payload);
1442
+ });
1377
1443
 
1378
1444
  // src/actions/deploy_app_auth.ts
1379
1445
  import { z as z8 } from "zod";
@@ -2016,30 +2082,10 @@ var GetCvmComposeFileRequestSchema = z11.object({
2016
2082
  cvmId: data.id || data.uuid || data.app_id || data.instance_id,
2017
2083
  _raw: data
2018
2084
  }));
2019
- async function getCvmComposeFile(client, request, parameters) {
2085
+ var { action: getCvmComposeFile, safeAction: safeGetCvmComposeFile } = defineAction(LooseAppComposeSchema, async (client, request) => {
2020
2086
  const validatedRequest = GetCvmComposeFileRequestSchema.parse(request);
2021
- const response = await client.get(`/cvms/${validatedRequest.cvmId}/compose_file`);
2022
- if (parameters?.schema === false) {
2023
- return response;
2024
- }
2025
- const schema = parameters?.schema || LooseAppComposeSchema;
2026
- return schema.parse(response);
2027
- }
2028
- async function safeGetCvmComposeFile(client, request, parameters) {
2029
- const requestValidation = GetCvmComposeFileRequestSchema.safeParse(request);
2030
- if (!requestValidation.success) {
2031
- return requestValidation;
2032
- }
2033
- const httpResult = await client.safeGet(`/cvms/${requestValidation.data.cvmId}/compose_file`);
2034
- if (!httpResult.success) {
2035
- return httpResult;
2036
- }
2037
- if (parameters?.schema === false) {
2038
- return { success: true, data: httpResult.data };
2039
- }
2040
- const schema = parameters?.schema || LooseAppComposeSchema;
2041
- return schema.safeParse(httpResult.data);
2042
- }
2087
+ return await client.get(`/cvms/${validatedRequest.cvmId}/compose_file`);
2088
+ });
2043
2089
 
2044
2090
  // src/actions/provision_cvm_compose_file_update.ts
2045
2091
  import { z as z12 } from "zod";
@@ -2071,36 +2117,13 @@ var ProvisionCvmComposeFileUpdateResultSchema = z12.object({
2071
2117
  compose_hash: z12.string(),
2072
2118
  kms_info: KmsInfoSchema.nullable().optional()
2073
2119
  }).passthrough();
2074
- async function provisionCvmComposeFileUpdate(client, request, parameters) {
2120
+ var { action: provisionCvmComposeFileUpdate, safeAction: safeProvisionCvmComposeFileUpdate } = defineAction(ProvisionCvmComposeFileUpdateResultSchema, async (client, request) => {
2075
2121
  const validatedRequest = ProvisionCvmComposeFileUpdateRequestSchema.parse(request);
2076
- const response = await client.post(
2122
+ return await client.post(
2077
2123
  `/cvms/${validatedRequest.cvmId}/compose_file/provision`,
2078
2124
  validatedRequest.request
2079
2125
  );
2080
- if (parameters?.schema === false) {
2081
- return response;
2082
- }
2083
- const schema = parameters?.schema || ProvisionCvmComposeFileUpdateResultSchema;
2084
- return schema.parse(response);
2085
- }
2086
- async function safeProvisionCvmComposeFileUpdate(client, request, parameters) {
2087
- const requestValidation = ProvisionCvmComposeFileUpdateRequestSchema.safeParse(request);
2088
- if (!requestValidation.success) {
2089
- return requestValidation;
2090
- }
2091
- const httpResult = await client.safePost(
2092
- `/cvms/${requestValidation.data.cvmId}/compose_file/provision`,
2093
- requestValidation.data.request
2094
- );
2095
- if (!httpResult.success) {
2096
- return httpResult;
2097
- }
2098
- if (parameters?.schema === false) {
2099
- return { success: true, data: httpResult.data };
2100
- }
2101
- const schema = parameters?.schema || ProvisionCvmComposeFileUpdateResultSchema;
2102
- return schema.safeParse(httpResult.data);
2103
- }
2126
+ });
2104
2127
 
2105
2128
  // src/actions/commit_cvm_compose_file_update.ts
2106
2129
  import { z as z13 } from "zod";
@@ -2131,38 +2154,17 @@ var CommitCvmComposeFileUpdateRequestSchema = z13.object({
2131
2154
  _raw: data
2132
2155
  }));
2133
2156
  var CommitCvmComposeFileUpdateSchema = z13.any().transform(() => void 0);
2134
- async function commitCvmComposeFileUpdate(client, request, parameters) {
2135
- const validatedRequest = CommitCvmComposeFileUpdateRequestSchema.parse(request);
2136
- const response = await client.patch(`/cvms/${validatedRequest.cvmId}/compose_file`, {
2137
- compose_hash: validatedRequest.compose_hash,
2138
- encrypted_env: validatedRequest.encrypted_env,
2139
- env_keys: validatedRequest.env_keys
2140
- });
2141
- if (parameters?.schema === false) {
2142
- return response;
2143
- }
2144
- const schema = parameters?.schema || CommitCvmComposeFileUpdateSchema;
2145
- return schema.parse(response);
2146
- }
2147
- async function safeCommitCvmComposeFileUpdate(client, request, parameters) {
2148
- const requestValidation = CommitCvmComposeFileUpdateRequestSchema.safeParse(request);
2149
- if (!requestValidation.success) {
2150
- return requestValidation;
2151
- }
2152
- const httpResult = await client.safePatch(`/cvms/${requestValidation.data.cvmId}/compose_file`, {
2153
- compose_hash: requestValidation.data.compose_hash,
2154
- encrypted_env: requestValidation.data.encrypted_env,
2155
- env_keys: requestValidation.data.env_keys
2156
- });
2157
- if (!httpResult.success) {
2158
- return httpResult;
2159
- }
2160
- if (parameters?.schema === false) {
2161
- return { success: true, data: httpResult.data };
2157
+ var { action: commitCvmComposeFileUpdate, safeAction: safeCommitCvmComposeFileUpdate } = defineAction(
2158
+ CommitCvmComposeFileUpdateSchema,
2159
+ async (client, request) => {
2160
+ const validatedRequest = CommitCvmComposeFileUpdateRequestSchema.parse(request);
2161
+ return await client.patch(`/cvms/${validatedRequest.cvmId}/compose_file`, {
2162
+ compose_hash: validatedRequest.compose_hash,
2163
+ encrypted_env: validatedRequest.encrypted_env,
2164
+ env_keys: validatedRequest.env_keys
2165
+ });
2162
2166
  }
2163
- const schema = parameters?.schema || CommitCvmComposeFileUpdateSchema;
2164
- return schema.safeParse(httpResult.data);
2165
- }
2167
+ );
2166
2168
 
2167
2169
  // src/actions/get_app_env_encrypt_pubkey.ts
2168
2170
  import { z as z14 } from "zod";
@@ -2177,39 +2179,10 @@ var GetAppEnvEncryptPubKeySchema = z14.object({
2177
2179
  public_key: z14.string(),
2178
2180
  signature: z14.string()
2179
2181
  }).strict();
2180
- var getAppEnvEncryptPubKey = async (client, payload, parameters) => {
2182
+ var { action: getAppEnvEncryptPubKey, safeAction: safeGetAppEnvEncryptPubKey } = defineAction(GetAppEnvEncryptPubKeySchema, async (client, payload) => {
2181
2183
  const validatedRequest = GetAppEnvEncryptPubKeyRequestSchema.parse(payload);
2182
- validateActionParameters(parameters);
2183
- const response = await client.get(
2184
- `/kms/${validatedRequest.kms}/pubkey/${validatedRequest.app_id}`
2185
- );
2186
- if (parameters?.schema === false) {
2187
- return response;
2188
- }
2189
- const schema = parameters?.schema || GetAppEnvEncryptPubKeySchema;
2190
- return schema.parse(response);
2191
- };
2192
- var safeGetAppEnvEncryptPubKey = async (client, payload, parameters) => {
2193
- const requestValidation = GetAppEnvEncryptPubKeyRequestSchema.safeParse(payload);
2194
- if (!requestValidation.success) {
2195
- return requestValidation;
2196
- }
2197
- const parameterValidationError = safeValidateActionParameters(parameters);
2198
- if (parameterValidationError) {
2199
- return parameterValidationError;
2200
- }
2201
- const httpResult = await client.safeGet(
2202
- `/kms/${requestValidation.data.kms}/pubkey/${requestValidation.data.app_id}`
2203
- );
2204
- if (!httpResult.success) {
2205
- return httpResult;
2206
- }
2207
- if (parameters?.schema === false) {
2208
- return { success: true, data: httpResult.data };
2209
- }
2210
- const schema = parameters?.schema || GetAppEnvEncryptPubKeySchema;
2211
- return schema.safeParse(httpResult.data);
2212
- };
2184
+ return await client.get(`/kms/${validatedRequest.kms}/pubkey/${validatedRequest.app_id}`);
2185
+ });
2213
2186
 
2214
2187
  // src/actions/get_cvm_info.ts
2215
2188
  import { z as z15 } from "zod";
@@ -2231,39 +2204,10 @@ var GetCvmInfoRequestSchema = z15.object({
2231
2204
  cvmId: data.id || data.uuid || data.app_id || data.instance_id,
2232
2205
  _raw: data
2233
2206
  }));
2234
- async function getCvmInfo(client, request, parameters) {
2207
+ var { action: getCvmInfo, safeAction: safeGetCvmInfo } = defineAction(CvmLegacyDetailSchema, async (client, request) => {
2235
2208
  const validatedRequest = GetCvmInfoRequestSchema.parse(request);
2236
- validateActionParameters(parameters);
2237
- const response = await client.get(`/cvms/${validatedRequest.cvmId}`);
2238
- if (parameters?.schema === false) {
2239
- return response;
2240
- }
2241
- const schema = parameters?.schema || CvmLegacyDetailSchema;
2242
- return schema.parse(response);
2243
- }
2244
- async function safeGetCvmInfo(client, request, parameters) {
2245
- const requestValidation = GetCvmInfoRequestSchema.safeParse(request);
2246
- if (!requestValidation.success) {
2247
- return requestValidation;
2248
- }
2249
- const parameterValidationError = safeValidateActionParameters(parameters);
2250
- if (parameterValidationError) {
2251
- return parameterValidationError;
2252
- }
2253
- const httpResult = await client.safeGet(`/cvms/${requestValidation.data.cvmId}`);
2254
- if (!httpResult.success) {
2255
- return httpResult;
2256
- }
2257
- if (parameters?.schema === false) {
2258
- return {
2259
- success: true,
2260
- data: httpResult.data
2261
- };
2262
- }
2263
- const schema = parameters?.schema || CvmLegacyDetailSchema;
2264
- const validationResult = schema.safeParse(httpResult.data);
2265
- return validationResult;
2266
- }
2209
+ return await client.get(`/cvms/${validatedRequest.cvmId}`);
2210
+ });
2267
2211
 
2268
2212
  // src/actions/get_cvm_list.ts
2269
2213
  import { z as z16 } from "zod";
@@ -2279,75 +2223,20 @@ var GetCvmListSchema = z16.object({
2279
2223
  page_size: z16.number(),
2280
2224
  pages: z16.number()
2281
2225
  }).strict();
2282
- async function getCvmList(client, request, parameters) {
2226
+ var { action: getCvmList, safeAction: safeGetCvmList } = defineAction(GetCvmListSchema, async (client, request) => {
2283
2227
  const validatedRequest = GetCvmListRequestSchema.parse(request ?? {});
2284
- validateActionParameters(parameters);
2285
- const response = await client.get("/cvms/paginated", { params: validatedRequest });
2286
- if (parameters?.schema === false) {
2287
- return response;
2288
- }
2289
- const schema = parameters?.schema || GetCvmListSchema;
2290
- return schema.parse(response);
2291
- }
2292
- async function safeGetCvmList(client, request, parameters) {
2293
- const requestValidation = GetCvmListRequestSchema.safeParse(request ?? {});
2294
- if (!requestValidation.success) {
2295
- return requestValidation;
2296
- }
2297
- const parameterValidationError = safeValidateActionParameters(parameters);
2298
- if (parameterValidationError) {
2299
- return parameterValidationError;
2300
- }
2301
- const httpResult = await client.safeGet("/cvms/paginated", { params: requestValidation.data });
2302
- if (!httpResult.success) {
2303
- return httpResult;
2304
- }
2305
- if (parameters?.schema === false) {
2306
- return {
2307
- success: true,
2308
- data: httpResult.data
2309
- };
2310
- }
2311
- const schema = parameters?.schema || GetCvmListSchema;
2312
- const validationResult = schema.safeParse(httpResult.data);
2313
- return validationResult;
2314
- }
2228
+ return await client.get("/cvms/paginated", { params: validatedRequest });
2229
+ });
2315
2230
 
2316
2231
  // src/actions/get_kms_info.ts
2317
2232
  import { z as z17 } from "zod";
2318
2233
  var GetKmsInfoRequestSchema = z17.object({
2319
2234
  kms_id: z17.string().min(1, "KMS ID is required")
2320
2235
  });
2321
- async function getKmsInfo(client, request, parameters) {
2236
+ var { action: getKmsInfo, safeAction: safeGetKmsInfo } = defineAction(KmsInfoSchema, async (client, request) => {
2322
2237
  const validatedRequest = GetKmsInfoRequestSchema.parse(request);
2323
- validateActionParameters(parameters);
2324
- const response = await client.get(`/kms/${validatedRequest.kms_id}`);
2325
- if (parameters?.schema === false) {
2326
- return response;
2327
- }
2328
- const schema = parameters?.schema || KmsInfoSchema;
2329
- return schema.parse(response);
2330
- }
2331
- async function safeGetKmsInfo(client, request, parameters) {
2332
- const requestValidation = GetKmsInfoRequestSchema.safeParse(request);
2333
- if (!requestValidation.success) {
2334
- return requestValidation;
2335
- }
2336
- const parameterValidationError = safeValidateActionParameters(parameters);
2337
- if (parameterValidationError) {
2338
- return parameterValidationError;
2339
- }
2340
- const httpResult = await client.safeGet(`/kms/${requestValidation.data.kms_id}`);
2341
- if (!httpResult.success) {
2342
- return httpResult;
2343
- }
2344
- if (parameters?.schema === false) {
2345
- return { success: true, data: httpResult.data };
2346
- }
2347
- const schema = parameters?.schema || KmsInfoSchema;
2348
- const validationResult = schema.safeParse(httpResult.data);
2349
- return validationResult;
2350
- }
2238
+ return await client.get(`/kms/${validatedRequest.kms_id}`);
2239
+ });
2351
2240
 
2352
2241
  // src/actions/get_kms_list.ts
2353
2242
  import { z as z18 } from "zod";
@@ -2363,39 +2252,10 @@ var GetKmsListSchema = z18.object({
2363
2252
  page_size: z18.number(),
2364
2253
  pages: z18.number()
2365
2254
  }).strict();
2366
- async function getKmsList(client, request, parameters) {
2255
+ var { action: getKmsList, safeAction: safeGetKmsList } = defineAction(GetKmsListSchema, async (client, request) => {
2367
2256
  const validatedRequest = GetKmsListRequestSchema.parse(request ?? {});
2368
- validateActionParameters(parameters);
2369
- const response = await client.get("/kms", { params: validatedRequest });
2370
- if (parameters?.schema === false) {
2371
- return response;
2372
- }
2373
- const schema = parameters?.schema || GetKmsListSchema;
2374
- return schema.parse(response);
2375
- }
2376
- async function safeGetKmsList(client, request, parameters) {
2377
- const requestValidation = GetKmsListRequestSchema.safeParse(request ?? {});
2378
- if (!requestValidation.success) {
2379
- return requestValidation;
2380
- }
2381
- const parameterValidationError = safeValidateActionParameters(parameters);
2382
- if (parameterValidationError) {
2383
- return parameterValidationError;
2384
- }
2385
- const httpResult = await client.safeGet("/kms", { params: requestValidation.data });
2386
- if (!httpResult.success) {
2387
- return httpResult;
2388
- }
2389
- if (parameters?.schema === false) {
2390
- return {
2391
- success: true,
2392
- data: httpResult.data
2393
- };
2394
- }
2395
- const schema = parameters?.schema || GetKmsListSchema;
2396
- const validationResult = schema.safeParse(httpResult.data);
2397
- return validationResult;
2398
- }
2257
+ return await client.get("/kms", { params: validatedRequest });
2258
+ });
2399
2259
 
2400
2260
  // src/actions/workspaces/list_workspaces.ts
2401
2261
  import { z as z19 } from "zod";
@@ -2416,64 +2276,18 @@ var ListWorkspacesSchema = z19.object({
2416
2276
  data: z19.array(WorkspaceResponseSchema),
2417
2277
  pagination: PaginationMetadataSchema
2418
2278
  }).passthrough();
2419
- async function listWorkspaces(client, parameters) {
2420
- validateActionParameters(parameters);
2421
- const queryParams = new URLSearchParams();
2422
- if (parameters?.cursor) queryParams.append("cursor", parameters.cursor);
2423
- if (parameters?.limit) queryParams.append("limit", parameters.limit.toString());
2424
- const url = queryParams.toString() ? `/workspaces?${queryParams.toString()}` : "/workspaces";
2425
- const response = await client.get(url);
2426
- if (parameters?.schema === false) {
2427
- return response;
2428
- }
2429
- const schema = parameters?.schema || ListWorkspacesSchema;
2430
- return schema.parse(response);
2431
- }
2432
- async function safeListWorkspaces(client, parameters) {
2433
- const parameterValidationError = safeValidateActionParameters(parameters);
2434
- if (parameterValidationError) {
2435
- return parameterValidationError;
2436
- }
2279
+ var { action: listWorkspaces, safeAction: safeListWorkspaces } = defineAction(ListWorkspacesSchema, async (client, request) => {
2437
2280
  const queryParams = new URLSearchParams();
2438
- if (parameters?.cursor) queryParams.append("cursor", parameters.cursor);
2439
- if (parameters?.limit) queryParams.append("limit", parameters.limit.toString());
2281
+ if (request?.cursor) queryParams.append("cursor", request.cursor);
2282
+ if (request?.limit) queryParams.append("limit", request.limit.toString());
2440
2283
  const url = queryParams.toString() ? `/workspaces?${queryParams.toString()}` : "/workspaces";
2441
- const httpResult = await client.safeGet(url);
2442
- if (!httpResult.success) {
2443
- return httpResult;
2444
- }
2445
- if (parameters?.schema === false) {
2446
- return { success: true, data: httpResult.data };
2447
- }
2448
- const schema = parameters?.schema || ListWorkspacesSchema;
2449
- return schema.safeParse(httpResult.data);
2450
- }
2284
+ return await client.get(url);
2285
+ });
2451
2286
 
2452
2287
  // src/actions/workspaces/get_workspace.ts
2453
- async function getWorkspace(client, teamSlug, parameters) {
2454
- validateActionParameters(parameters);
2455
- const response = await client.get(`/workspaces/${teamSlug}`);
2456
- if (parameters?.schema === false) {
2457
- return response;
2458
- }
2459
- const schema = parameters?.schema || WorkspaceResponseSchema;
2460
- return schema.parse(response);
2461
- }
2462
- async function safeGetWorkspace(client, teamSlug, parameters) {
2463
- const parameterValidationError = safeValidateActionParameters(parameters);
2464
- if (parameterValidationError) {
2465
- return parameterValidationError;
2466
- }
2467
- const httpResult = await client.safeGet(`/workspaces/${teamSlug}`);
2468
- if (!httpResult.success) {
2469
- return httpResult;
2470
- }
2471
- if (parameters?.schema === false) {
2472
- return { success: true, data: httpResult.data };
2473
- }
2474
- const schema = parameters?.schema || WorkspaceResponseSchema;
2475
- return schema.safeParse(httpResult.data);
2476
- }
2288
+ var { action: getWorkspace, safeAction: safeGetWorkspace } = defineAction(WorkspaceResponseSchema, async (client, teamSlug) => {
2289
+ return await client.get(`/workspaces/${teamSlug}`);
2290
+ });
2477
2291
 
2478
2292
  // src/actions/list-instance-types.ts
2479
2293
  import { z as z20 } from "zod";
@@ -2499,45 +2313,13 @@ var PaginatedInstanceTypesSchema = z20.object({
2499
2313
  page_size: z20.number(),
2500
2314
  pages: z20.number()
2501
2315
  }).strict();
2502
- async function listInstanceTypes(client, request, parameters) {
2316
+ var { action: listInstanceTypes, safeAction: safeListInstanceTypes } = defineAction(PaginatedInstanceTypesSchema, async (client, request) => {
2503
2317
  const validatedRequest = ListInstanceTypesRequestSchema.parse(request ?? {});
2504
- validateActionParameters(parameters);
2505
2318
  const queryParams = new URLSearchParams();
2506
2319
  queryParams.append("page", validatedRequest.page.toString());
2507
2320
  queryParams.append("page_size", validatedRequest.page_size.toString());
2508
- const response = await client.get(`/api/instance-types?${queryParams.toString()}`);
2509
- if (parameters?.schema === false) {
2510
- return response;
2511
- }
2512
- const schema = parameters?.schema || PaginatedInstanceTypesSchema;
2513
- return schema.parse(response);
2514
- }
2515
- async function safeListInstanceTypes(client, request, parameters) {
2516
- const requestValidation = ListInstanceTypesRequestSchema.safeParse(request ?? {});
2517
- if (!requestValidation.success) {
2518
- return requestValidation;
2519
- }
2520
- const parameterValidationError = safeValidateActionParameters(parameters);
2521
- if (parameterValidationError) {
2522
- return parameterValidationError;
2523
- }
2524
- const queryParams = new URLSearchParams();
2525
- queryParams.append("page", requestValidation.data.page.toString());
2526
- queryParams.append("page_size", requestValidation.data.page_size.toString());
2527
- const httpResult = await client.safeGet(`/api/instance-types?${queryParams.toString()}`);
2528
- if (!httpResult.success) {
2529
- return httpResult;
2530
- }
2531
- if (parameters?.schema === false) {
2532
- return {
2533
- success: true,
2534
- data: httpResult.data
2535
- };
2536
- }
2537
- const schema = parameters?.schema || PaginatedInstanceTypesSchema;
2538
- const validationResult = schema.safeParse(httpResult.data);
2539
- return validationResult;
2540
- }
2321
+ return await client.get(`/api/instance-types?${queryParams.toString()}`);
2322
+ });
2541
2323
 
2542
2324
  // src/parse_dotenv.ts
2543
2325
  var LINE = /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/gm;
@@ -2591,11 +2373,18 @@ export {
2591
2373
  CvmNodeSchema,
2592
2374
  DeployAppAuthRequestSchema,
2593
2375
  DeployAppAuthSchema,
2376
+ GetAppEnvEncryptPubKeyRequestSchema,
2594
2377
  GetAppEnvEncryptPubKeySchema,
2378
+ GetCvmComposeFileRequestSchema,
2379
+ GetCvmInfoRequestSchema,
2380
+ GetCvmListRequestSchema,
2595
2381
  GetCvmListSchema,
2382
+ GetKmsInfoRequestSchema,
2383
+ GetKmsListRequestSchema,
2596
2384
  GetKmsListSchema,
2597
2385
  InstanceTypeSchema,
2598
2386
  KmsInfoSchema,
2387
+ ListInstanceTypesRequestSchema,
2599
2388
  ListWorkspacesSchema,
2600
2389
  ManagedUserSchema,
2601
2390
  NetworkError,
@@ -2624,6 +2413,8 @@ export {
2624
2413
  createClientsFromPrivateKey,
2625
2414
  createNetworkClients,
2626
2415
  createTransactionTracker,
2416
+ defineAction,
2417
+ defineSimpleAction,
2627
2418
  deployAppAuth,
2628
2419
  encryptEnvVars2 as encryptEnvVars,
2629
2420
  estimateTransactionGas,