@phala/cloud 0.0.9 → 0.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actions/commit_cvm_compose_file_update.d.ts +15 -1
- package/dist/actions/commit_cvm_compose_file_update.d.ts.map +1 -1
- package/dist/actions/get_available_nodes.d.ts +39 -39
- package/dist/actions/get_available_nodes.d.ts.map +1 -1
- package/dist/actions/get_cvm_compose_file.d.ts +2 -70
- package/dist/actions/get_cvm_compose_file.d.ts.map +1 -1
- package/dist/actions/index.d.ts +4 -1
- package/dist/actions/index.d.ts.map +1 -1
- package/dist/actions/list-instance-types.d.ts +146 -0
- package/dist/actions/list-instance-types.d.ts.map +1 -0
- package/dist/actions/provision_cvm_compose_file_update.d.ts +77 -25
- package/dist/actions/provision_cvm_compose_file_update.d.ts.map +1 -1
- package/dist/actions/workspaces/get_workspace.d.ts +72 -0
- package/dist/actions/workspaces/get_workspace.d.ts.map +1 -0
- package/dist/actions/workspaces/list_workspaces.d.ts +219 -0
- package/dist/actions/workspaces/list_workspaces.d.ts.map +1 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/index.js +261 -83
- package/dist/index.mjs +250 -82
- package/dist/types/app_compose.d.ts +37 -0
- package/dist/types/app_compose.d.ts.map +1 -0
- package/dist/types/client.d.ts +15 -0
- package/dist/types/client.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/index.js.map +0 -1
- package/dist/index.mjs.map +0 -1
package/dist/index.mjs
CHANGED
|
@@ -105,22 +105,31 @@ var Client = class {
|
|
|
105
105
|
};
|
|
106
106
|
const version = resolvedConfig.version && SUPPORTED_API_VERSIONS.includes(resolvedConfig.version) ? resolvedConfig.version : SUPPORTED_API_VERSIONS[0];
|
|
107
107
|
this.config = resolvedConfig;
|
|
108
|
-
if (!resolvedConfig.apiKey) {
|
|
108
|
+
if (!resolvedConfig.useCookieAuth && !resolvedConfig.apiKey) {
|
|
109
109
|
throw new Error(
|
|
110
110
|
"API key is required. Provide it via config.apiKey or set PHALA_CLOUD_API_KEY environment variable."
|
|
111
111
|
);
|
|
112
112
|
}
|
|
113
|
-
const { apiKey, baseURL, timeout, headers, ...fetchOptions } = resolvedConfig;
|
|
113
|
+
const { apiKey, baseURL, timeout, headers, useCookieAuth, onResponseError, ...fetchOptions } = resolvedConfig;
|
|
114
114
|
const requestHeaders = {
|
|
115
|
-
"X-API-Key": apiKey,
|
|
116
115
|
"X-Phala-Version": version,
|
|
117
|
-
"Content-Type": "application/json"
|
|
118
|
-
...headers || {}
|
|
116
|
+
"Content-Type": "application/json"
|
|
119
117
|
};
|
|
118
|
+
if (headers && typeof headers === "object") {
|
|
119
|
+
Object.entries(headers).forEach(([key, value]) => {
|
|
120
|
+
if (typeof value === "string") {
|
|
121
|
+
requestHeaders[key] = value;
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
if (!useCookieAuth && apiKey) {
|
|
126
|
+
requestHeaders["X-API-Key"] = apiKey;
|
|
127
|
+
}
|
|
120
128
|
this.fetchInstance = ofetch.create({
|
|
121
129
|
baseURL,
|
|
122
130
|
timeout: timeout || 3e4,
|
|
123
131
|
headers: requestHeaders,
|
|
132
|
+
...useCookieAuth ? { credentials: "include" } : {},
|
|
124
133
|
...fetchOptions,
|
|
125
134
|
// Log request in cURL format
|
|
126
135
|
onRequest({ request, options }) {
|
|
@@ -171,6 +180,9 @@ var Client = class {
|
|
|
171
180
|
formatResponse(response.status, response.statusText, response.headers, response._data)
|
|
172
181
|
);
|
|
173
182
|
}
|
|
183
|
+
if (onResponseError) {
|
|
184
|
+
onResponseError({ request, response, options });
|
|
185
|
+
}
|
|
174
186
|
}
|
|
175
187
|
});
|
|
176
188
|
}
|
|
@@ -1113,7 +1125,10 @@ import { z as z5 } from "zod";
|
|
|
1113
1125
|
var AvailableOSImageSchema = z5.object({
|
|
1114
1126
|
name: z5.string(),
|
|
1115
1127
|
is_dev: z5.boolean(),
|
|
1116
|
-
version: z5.
|
|
1128
|
+
version: z5.union([
|
|
1129
|
+
z5.tuple([z5.number(), z5.number(), z5.number()]),
|
|
1130
|
+
z5.tuple([z5.number(), z5.number(), z5.number(), z5.number()])
|
|
1131
|
+
]),
|
|
1117
1132
|
os_image_hash: z5.string().nullable().optional()
|
|
1118
1133
|
}).passthrough();
|
|
1119
1134
|
var TeepodCapacitySchema = z5.object({
|
|
@@ -1965,8 +1980,11 @@ async function safeAddComposeHash(request, parameters) {
|
|
|
1965
1980
|
}
|
|
1966
1981
|
|
|
1967
1982
|
// src/actions/get_cvm_compose_file.ts
|
|
1983
|
+
import { z as z11 } from "zod";
|
|
1984
|
+
|
|
1985
|
+
// src/types/app_compose.ts
|
|
1968
1986
|
import { z as z10 } from "zod";
|
|
1969
|
-
var
|
|
1987
|
+
var LooseAppComposeSchema = z10.object({
|
|
1970
1988
|
allowed_envs: z10.array(z10.string()).optional(),
|
|
1971
1989
|
docker_compose_file: z10.string(),
|
|
1972
1990
|
features: z10.array(z10.string()).optional(),
|
|
@@ -1978,14 +1996,16 @@ var GetCvmComposeFileResultSchema = z10.object({
|
|
|
1978
1996
|
tproxy_enabled: z10.boolean().optional(),
|
|
1979
1997
|
pre_launch_script: z10.string().optional()
|
|
1980
1998
|
}).passthrough();
|
|
1981
|
-
|
|
1982
|
-
|
|
1983
|
-
|
|
1984
|
-
|
|
1999
|
+
|
|
2000
|
+
// src/actions/get_cvm_compose_file.ts
|
|
2001
|
+
var GetCvmComposeFileRequestSchema = z11.object({
|
|
2002
|
+
id: z11.string().optional(),
|
|
2003
|
+
uuid: z11.string().regex(/^[0-9a-f]{8}[-]?[0-9a-f]{4}[-]?4[0-9a-f]{3}[-]?[89ab][0-9a-f]{3}[-]?[0-9a-f]{12}$/i).optional(),
|
|
2004
|
+
app_id: z11.string().refine(
|
|
1985
2005
|
(val) => !val.startsWith("app_") && val.length === 40,
|
|
1986
2006
|
"app_id should be 40 characters without prefix"
|
|
1987
2007
|
).transform((val) => val.startsWith("app_") ? val : `app_${val}`).optional(),
|
|
1988
|
-
instance_id:
|
|
2008
|
+
instance_id: z11.string().refine(
|
|
1989
2009
|
(val) => !val.startsWith("instance_") && val.length === 40,
|
|
1990
2010
|
"instance_id should be 40 characters without prefix"
|
|
1991
2011
|
).transform((val) => val.startsWith("instance_") ? val : `instance_${val}`).optional()
|
|
@@ -2002,7 +2022,7 @@ async function getCvmComposeFile(client, request, parameters) {
|
|
|
2002
2022
|
if (parameters?.schema === false) {
|
|
2003
2023
|
return response;
|
|
2004
2024
|
}
|
|
2005
|
-
const schema = parameters?.schema ||
|
|
2025
|
+
const schema = parameters?.schema || LooseAppComposeSchema;
|
|
2006
2026
|
return schema.parse(response);
|
|
2007
2027
|
}
|
|
2008
2028
|
async function safeGetCvmComposeFile(client, request, parameters) {
|
|
@@ -2017,44 +2037,38 @@ async function safeGetCvmComposeFile(client, request, parameters) {
|
|
|
2017
2037
|
if (parameters?.schema === false) {
|
|
2018
2038
|
return { success: true, data: httpResult.data };
|
|
2019
2039
|
}
|
|
2020
|
-
const schema = parameters?.schema ||
|
|
2040
|
+
const schema = parameters?.schema || LooseAppComposeSchema;
|
|
2021
2041
|
return schema.safeParse(httpResult.data);
|
|
2022
2042
|
}
|
|
2023
2043
|
|
|
2024
2044
|
// src/actions/provision_cvm_compose_file_update.ts
|
|
2025
|
-
import { z as
|
|
2026
|
-
var ProvisionCvmComposeFileUpdateRequestSchema =
|
|
2027
|
-
id:
|
|
2028
|
-
uuid:
|
|
2029
|
-
app_id:
|
|
2045
|
+
import { z as z12 } from "zod";
|
|
2046
|
+
var ProvisionCvmComposeFileUpdateRequestSchema = z12.object({
|
|
2047
|
+
id: z12.string().optional(),
|
|
2048
|
+
uuid: z12.string().regex(/^[0-9a-f]{8}[-]?[0-9a-f]{4}[-]?4[0-9a-f]{3}[-]?[89ab][0-9a-f]{3}[-]?[0-9a-f]{12}$/i).optional(),
|
|
2049
|
+
app_id: z12.string().refine(
|
|
2030
2050
|
(val) => !val.startsWith("app_") && val.length === 40,
|
|
2031
2051
|
"app_id should be 40 characters without prefix"
|
|
2032
2052
|
).transform((val) => val.startsWith("app_") ? val : `app_${val}`).optional(),
|
|
2033
|
-
instance_id:
|
|
2053
|
+
instance_id: z12.string().refine(
|
|
2034
2054
|
(val) => !val.startsWith("instance_") && val.length === 40,
|
|
2035
2055
|
"instance_id should be 40 characters without prefix"
|
|
2036
2056
|
).transform((val) => val.startsWith("instance_") ? val : `instance_${val}`).optional(),
|
|
2037
|
-
app_compose:
|
|
2038
|
-
|
|
2039
|
-
docker_compose_file: z11.string().min(1, "Docker compose file is required"),
|
|
2040
|
-
name: z11.string(),
|
|
2041
|
-
kms_enabled: z11.boolean().optional(),
|
|
2042
|
-
public_logs: z11.boolean().optional(),
|
|
2043
|
-
public_sysinfo: z11.boolean().optional(),
|
|
2044
|
-
pre_launch_script: z11.string().optional()
|
|
2045
|
-
})
|
|
2057
|
+
app_compose: LooseAppComposeSchema,
|
|
2058
|
+
update_env_vars: z12.boolean().optional().nullable()
|
|
2046
2059
|
}).refine(
|
|
2047
2060
|
(data) => !!(data.id || data.uuid || data.app_id || data.instance_id),
|
|
2048
2061
|
"One of id, uuid, app_id, or instance_id must be provided"
|
|
2049
2062
|
).transform((data) => ({
|
|
2050
2063
|
cvmId: data.id || data.uuid || data.app_id || data.instance_id,
|
|
2051
2064
|
request: data.app_compose,
|
|
2065
|
+
update_env_vars: data.update_env_vars,
|
|
2052
2066
|
_raw: data
|
|
2053
2067
|
}));
|
|
2054
|
-
var ProvisionCvmComposeFileUpdateResultSchema =
|
|
2055
|
-
app_id:
|
|
2056
|
-
device_id:
|
|
2057
|
-
compose_hash:
|
|
2068
|
+
var ProvisionCvmComposeFileUpdateResultSchema = z12.object({
|
|
2069
|
+
app_id: z12.string().nullable(),
|
|
2070
|
+
device_id: z12.string().nullable(),
|
|
2071
|
+
compose_hash: z12.string(),
|
|
2058
2072
|
kms_info: KmsInfoSchema.nullable().optional()
|
|
2059
2073
|
}).passthrough();
|
|
2060
2074
|
async function provisionCvmComposeFileUpdate(client, request, parameters) {
|
|
@@ -2089,21 +2103,22 @@ async function safeProvisionCvmComposeFileUpdate(client, request, parameters) {
|
|
|
2089
2103
|
}
|
|
2090
2104
|
|
|
2091
2105
|
// src/actions/commit_cvm_compose_file_update.ts
|
|
2092
|
-
import { z as
|
|
2093
|
-
var CommitCvmComposeFileUpdateRequestSchema =
|
|
2094
|
-
id:
|
|
2095
|
-
uuid:
|
|
2096
|
-
app_id:
|
|
2106
|
+
import { z as z13 } from "zod";
|
|
2107
|
+
var CommitCvmComposeFileUpdateRequestSchema = z13.object({
|
|
2108
|
+
id: z13.string().optional(),
|
|
2109
|
+
uuid: z13.string().regex(/^[0-9a-f]{8}[-]?[0-9a-f]{4}[-]?4[0-9a-f]{3}[-]?[89ab][0-9a-f]{3}[-]?[0-9a-f]{12}$/i).optional(),
|
|
2110
|
+
app_id: z13.string().refine(
|
|
2097
2111
|
(val) => !val.startsWith("app_") && val.length === 40,
|
|
2098
2112
|
"app_id should be 40 characters without prefix"
|
|
2099
2113
|
).transform((val) => val.startsWith("app_") ? val : `app_${val}`).optional(),
|
|
2100
|
-
instance_id:
|
|
2114
|
+
instance_id: z13.string().refine(
|
|
2101
2115
|
(val) => !val.startsWith("instance_") && val.length === 40,
|
|
2102
2116
|
"instance_id should be 40 characters without prefix"
|
|
2103
2117
|
).transform((val) => val.startsWith("instance_") ? val : `instance_${val}`).optional(),
|
|
2104
|
-
compose_hash:
|
|
2105
|
-
encrypted_env:
|
|
2106
|
-
env_keys:
|
|
2118
|
+
compose_hash: z13.string().min(1, "Compose hash is required"),
|
|
2119
|
+
encrypted_env: z13.string().optional(),
|
|
2120
|
+
env_keys: z13.array(z13.string()).optional(),
|
|
2121
|
+
update_env_vars: z13.boolean().optional().nullable()
|
|
2107
2122
|
}).refine(
|
|
2108
2123
|
(data) => !!(data.id || data.uuid || data.app_id || data.instance_id),
|
|
2109
2124
|
"One of id, uuid, app_id, or instance_id must be provided"
|
|
@@ -2112,9 +2127,10 @@ var CommitCvmComposeFileUpdateRequestSchema = z12.object({
|
|
|
2112
2127
|
compose_hash: data.compose_hash,
|
|
2113
2128
|
encrypted_env: data.encrypted_env,
|
|
2114
2129
|
env_keys: data.env_keys,
|
|
2130
|
+
update_env_vars: !!data.update_env_vars,
|
|
2115
2131
|
_raw: data
|
|
2116
2132
|
}));
|
|
2117
|
-
var CommitCvmComposeFileUpdateSchema =
|
|
2133
|
+
var CommitCvmComposeFileUpdateSchema = z13.any().transform(() => void 0);
|
|
2118
2134
|
async function commitCvmComposeFileUpdate(client, request, parameters) {
|
|
2119
2135
|
const validatedRequest = CommitCvmComposeFileUpdateRequestSchema.parse(request);
|
|
2120
2136
|
const response = await client.patch(`/cvms/${validatedRequest.cvmId}/compose_file`, {
|
|
@@ -2149,17 +2165,17 @@ async function safeCommitCvmComposeFileUpdate(client, request, parameters) {
|
|
|
2149
2165
|
}
|
|
2150
2166
|
|
|
2151
2167
|
// src/actions/get_app_env_encrypt_pubkey.ts
|
|
2152
|
-
import { z as
|
|
2153
|
-
var GetAppEnvEncryptPubKeyRequestSchema =
|
|
2154
|
-
kms:
|
|
2155
|
-
app_id:
|
|
2168
|
+
import { z as z14 } from "zod";
|
|
2169
|
+
var GetAppEnvEncryptPubKeyRequestSchema = z14.object({
|
|
2170
|
+
kms: z14.string().min(1, "KMS ID or slug is required"),
|
|
2171
|
+
app_id: z14.string().refine(
|
|
2156
2172
|
(val) => val.length === 40 || val.startsWith("0x") && val.length === 42,
|
|
2157
2173
|
"App ID must be exactly 40 characters or 42 characters with 0x prefix"
|
|
2158
2174
|
)
|
|
2159
2175
|
}).strict();
|
|
2160
|
-
var GetAppEnvEncryptPubKeySchema =
|
|
2161
|
-
public_key:
|
|
2162
|
-
signature:
|
|
2176
|
+
var GetAppEnvEncryptPubKeySchema = z14.object({
|
|
2177
|
+
public_key: z14.string(),
|
|
2178
|
+
signature: z14.string()
|
|
2163
2179
|
}).strict();
|
|
2164
2180
|
var getAppEnvEncryptPubKey = async (client, payload, parameters) => {
|
|
2165
2181
|
const validatedRequest = GetAppEnvEncryptPubKeyRequestSchema.parse(payload);
|
|
@@ -2196,15 +2212,15 @@ var safeGetAppEnvEncryptPubKey = async (client, payload, parameters) => {
|
|
|
2196
2212
|
};
|
|
2197
2213
|
|
|
2198
2214
|
// src/actions/get_cvm_info.ts
|
|
2199
|
-
import { z as
|
|
2200
|
-
var GetCvmInfoRequestSchema =
|
|
2201
|
-
id:
|
|
2202
|
-
uuid:
|
|
2203
|
-
app_id:
|
|
2215
|
+
import { z as z15 } from "zod";
|
|
2216
|
+
var GetCvmInfoRequestSchema = z15.object({
|
|
2217
|
+
id: z15.string().optional(),
|
|
2218
|
+
uuid: z15.string().regex(/^[0-9a-f]{8}[-]?[0-9a-f]{4}[-]?4[0-9a-f]{3}[-]?[89ab][0-9a-f]{3}[-]?[0-9a-f]{12}$/i).optional(),
|
|
2219
|
+
app_id: z15.string().refine(
|
|
2204
2220
|
(val) => !val.startsWith("app_") && val.length === 40,
|
|
2205
2221
|
"app_id should be 40 characters without prefix"
|
|
2206
2222
|
).transform((val) => val.startsWith("app_") ? val : `app_${val}`).optional(),
|
|
2207
|
-
instance_id:
|
|
2223
|
+
instance_id: z15.string().refine(
|
|
2208
2224
|
(val) => !val.startsWith("instance_") && val.length === 40,
|
|
2209
2225
|
"instance_id should be 40 characters without prefix"
|
|
2210
2226
|
).transform((val) => val.startsWith("instance_") ? val : `instance_${val}`).optional()
|
|
@@ -2250,18 +2266,18 @@ async function safeGetCvmInfo(client, request, parameters) {
|
|
|
2250
2266
|
}
|
|
2251
2267
|
|
|
2252
2268
|
// src/actions/get_cvm_list.ts
|
|
2253
|
-
import { z as
|
|
2254
|
-
var GetCvmListRequestSchema =
|
|
2255
|
-
page:
|
|
2256
|
-
page_size:
|
|
2257
|
-
node_id:
|
|
2269
|
+
import { z as z16 } from "zod";
|
|
2270
|
+
var GetCvmListRequestSchema = z16.object({
|
|
2271
|
+
page: z16.number().int().min(1).optional(),
|
|
2272
|
+
page_size: z16.number().int().min(1).optional(),
|
|
2273
|
+
node_id: z16.number().int().min(1).optional()
|
|
2258
2274
|
}).strict();
|
|
2259
|
-
var GetCvmListSchema =
|
|
2260
|
-
items:
|
|
2261
|
-
total:
|
|
2262
|
-
page:
|
|
2263
|
-
page_size:
|
|
2264
|
-
pages:
|
|
2275
|
+
var GetCvmListSchema = z16.object({
|
|
2276
|
+
items: z16.array(CvmInfoSchema),
|
|
2277
|
+
total: z16.number(),
|
|
2278
|
+
page: z16.number(),
|
|
2279
|
+
page_size: z16.number(),
|
|
2280
|
+
pages: z16.number()
|
|
2265
2281
|
}).strict();
|
|
2266
2282
|
async function getCvmList(client, request, parameters) {
|
|
2267
2283
|
const validatedRequest = GetCvmListRequestSchema.parse(request ?? {});
|
|
@@ -2298,9 +2314,9 @@ async function safeGetCvmList(client, request, parameters) {
|
|
|
2298
2314
|
}
|
|
2299
2315
|
|
|
2300
2316
|
// src/actions/get_kms_info.ts
|
|
2301
|
-
import { z as
|
|
2302
|
-
var GetKmsInfoRequestSchema =
|
|
2303
|
-
kms_id:
|
|
2317
|
+
import { z as z17 } from "zod";
|
|
2318
|
+
var GetKmsInfoRequestSchema = z17.object({
|
|
2319
|
+
kms_id: z17.string().min(1, "KMS ID is required")
|
|
2304
2320
|
});
|
|
2305
2321
|
async function getKmsInfo(client, request, parameters) {
|
|
2306
2322
|
const validatedRequest = GetKmsInfoRequestSchema.parse(request);
|
|
@@ -2334,18 +2350,18 @@ async function safeGetKmsInfo(client, request, parameters) {
|
|
|
2334
2350
|
}
|
|
2335
2351
|
|
|
2336
2352
|
// src/actions/get_kms_list.ts
|
|
2337
|
-
import { z as
|
|
2338
|
-
var GetKmsListRequestSchema =
|
|
2339
|
-
page:
|
|
2340
|
-
page_size:
|
|
2341
|
-
is_onchain:
|
|
2353
|
+
import { z as z18 } from "zod";
|
|
2354
|
+
var GetKmsListRequestSchema = z18.object({
|
|
2355
|
+
page: z18.number().int().min(1).optional(),
|
|
2356
|
+
page_size: z18.number().int().min(1).optional(),
|
|
2357
|
+
is_onchain: z18.boolean().optional()
|
|
2342
2358
|
}).strict();
|
|
2343
|
-
var GetKmsListSchema =
|
|
2344
|
-
items:
|
|
2345
|
-
total:
|
|
2346
|
-
page:
|
|
2347
|
-
page_size:
|
|
2348
|
-
pages:
|
|
2359
|
+
var GetKmsListSchema = z18.object({
|
|
2360
|
+
items: z18.array(KmsInfoSchema),
|
|
2361
|
+
total: z18.number(),
|
|
2362
|
+
page: z18.number(),
|
|
2363
|
+
page_size: z18.number(),
|
|
2364
|
+
pages: z18.number()
|
|
2349
2365
|
}).strict();
|
|
2350
2366
|
async function getKmsList(client, request, parameters) {
|
|
2351
2367
|
const validatedRequest = GetKmsListRequestSchema.parse(request ?? {});
|
|
@@ -2381,6 +2397,148 @@ async function safeGetKmsList(client, request, parameters) {
|
|
|
2381
2397
|
return validationResult;
|
|
2382
2398
|
}
|
|
2383
2399
|
|
|
2400
|
+
// src/actions/workspaces/list_workspaces.ts
|
|
2401
|
+
import { z as z19 } from "zod";
|
|
2402
|
+
var WorkspaceResponseSchema = z19.object({
|
|
2403
|
+
id: z19.string(),
|
|
2404
|
+
name: z19.string(),
|
|
2405
|
+
slug: z19.string().nullable(),
|
|
2406
|
+
tier: z19.string(),
|
|
2407
|
+
role: z19.string(),
|
|
2408
|
+
created_at: z19.string()
|
|
2409
|
+
}).passthrough();
|
|
2410
|
+
var PaginationMetadataSchema = z19.object({
|
|
2411
|
+
has_more: z19.boolean(),
|
|
2412
|
+
next_cursor: z19.string().nullable(),
|
|
2413
|
+
total: z19.number().nullable()
|
|
2414
|
+
}).passthrough();
|
|
2415
|
+
var ListWorkspacesSchema = z19.object({
|
|
2416
|
+
data: z19.array(WorkspaceResponseSchema),
|
|
2417
|
+
pagination: PaginationMetadataSchema
|
|
2418
|
+
}).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
|
+
}
|
|
2437
|
+
const queryParams = new URLSearchParams();
|
|
2438
|
+
if (parameters?.cursor) queryParams.append("cursor", parameters.cursor);
|
|
2439
|
+
if (parameters?.limit) queryParams.append("limit", parameters.limit.toString());
|
|
2440
|
+
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
|
+
}
|
|
2451
|
+
|
|
2452
|
+
// 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
|
+
}
|
|
2477
|
+
|
|
2478
|
+
// src/actions/list-instance-types.ts
|
|
2479
|
+
import { z as z20 } from "zod";
|
|
2480
|
+
var ListInstanceTypesRequestSchema = z20.object({
|
|
2481
|
+
page: z20.number().int().min(1).optional().default(1),
|
|
2482
|
+
page_size: z20.number().int().min(1).max(1e3).optional().default(100)
|
|
2483
|
+
}).strict();
|
|
2484
|
+
var InstanceTypeSchema = z20.object({
|
|
2485
|
+
id: z20.string(),
|
|
2486
|
+
name: z20.string(),
|
|
2487
|
+
description: z20.string(),
|
|
2488
|
+
vcpu: z20.number(),
|
|
2489
|
+
memory_mb: z20.number(),
|
|
2490
|
+
hourly_rate: z20.string(),
|
|
2491
|
+
requires_gpu: z20.boolean(),
|
|
2492
|
+
public: z20.boolean(),
|
|
2493
|
+
enabled: z20.boolean()
|
|
2494
|
+
}).passthrough();
|
|
2495
|
+
var PaginatedInstanceTypesSchema = z20.object({
|
|
2496
|
+
items: z20.array(InstanceTypeSchema),
|
|
2497
|
+
total: z20.number(),
|
|
2498
|
+
page: z20.number(),
|
|
2499
|
+
page_size: z20.number(),
|
|
2500
|
+
pages: z20.number()
|
|
2501
|
+
}).strict();
|
|
2502
|
+
async function listInstanceTypes(client, request, parameters) {
|
|
2503
|
+
const validatedRequest = ListInstanceTypesRequestSchema.parse(request ?? {});
|
|
2504
|
+
validateActionParameters(parameters);
|
|
2505
|
+
const queryParams = new URLSearchParams();
|
|
2506
|
+
queryParams.append("page", validatedRequest.page.toString());
|
|
2507
|
+
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
|
+
}
|
|
2541
|
+
|
|
2384
2542
|
// src/parse_dotenv.ts
|
|
2385
2543
|
var LINE = /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/gm;
|
|
2386
2544
|
function parseEnv(input) {
|
|
@@ -2434,12 +2592,15 @@ export {
|
|
|
2434
2592
|
DeployAppAuthRequestSchema,
|
|
2435
2593
|
DeployAppAuthSchema,
|
|
2436
2594
|
GetAppEnvEncryptPubKeySchema,
|
|
2437
|
-
GetCvmComposeFileResultSchema,
|
|
2438
2595
|
GetCvmListSchema,
|
|
2439
2596
|
GetKmsListSchema,
|
|
2597
|
+
InstanceTypeSchema,
|
|
2440
2598
|
KmsInfoSchema,
|
|
2599
|
+
ListWorkspacesSchema,
|
|
2441
2600
|
ManagedUserSchema,
|
|
2442
2601
|
NetworkError,
|
|
2602
|
+
PaginatedInstanceTypesSchema,
|
|
2603
|
+
PaginationMetadataSchema,
|
|
2443
2604
|
ProvisionCvmComposeFileUpdateRequestSchema,
|
|
2444
2605
|
ProvisionCvmComposeFileUpdateResultSchema,
|
|
2445
2606
|
ProvisionCvmRequestSchema,
|
|
@@ -2449,6 +2610,7 @@ export {
|
|
|
2449
2610
|
TransactionError,
|
|
2450
2611
|
VmInfoSchema,
|
|
2451
2612
|
WalletError,
|
|
2613
|
+
WorkspaceResponseSchema,
|
|
2452
2614
|
addComposeHash,
|
|
2453
2615
|
addNetwork,
|
|
2454
2616
|
asHex,
|
|
@@ -2479,6 +2641,9 @@ export {
|
|
|
2479
2641
|
getErrorMessage,
|
|
2480
2642
|
getKmsInfo,
|
|
2481
2643
|
getKmsList,
|
|
2644
|
+
getWorkspace,
|
|
2645
|
+
listInstanceTypes,
|
|
2646
|
+
listWorkspaces,
|
|
2482
2647
|
parseEnv,
|
|
2483
2648
|
parseEnvVars,
|
|
2484
2649
|
provisionCvm,
|
|
@@ -2495,6 +2660,9 @@ export {
|
|
|
2495
2660
|
safeGetCvmList,
|
|
2496
2661
|
safeGetKmsInfo,
|
|
2497
2662
|
safeGetKmsList,
|
|
2663
|
+
safeGetWorkspace,
|
|
2664
|
+
safeListInstanceTypes,
|
|
2665
|
+
safeListWorkspaces,
|
|
2498
2666
|
safeProvisionCvm,
|
|
2499
2667
|
safeProvisionCvmComposeFileUpdate,
|
|
2500
2668
|
safeValidateActionParameters,
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const LooseAppComposeSchema: z.ZodObject<{
|
|
3
|
+
allowed_envs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
4
|
+
docker_compose_file: z.ZodString;
|
|
5
|
+
features: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
6
|
+
name: z.ZodOptional<z.ZodString>;
|
|
7
|
+
manifest_version: z.ZodOptional<z.ZodNumber>;
|
|
8
|
+
kms_enabled: z.ZodOptional<z.ZodBoolean>;
|
|
9
|
+
public_logs: z.ZodOptional<z.ZodBoolean>;
|
|
10
|
+
public_sysinfo: z.ZodOptional<z.ZodBoolean>;
|
|
11
|
+
tproxy_enabled: z.ZodOptional<z.ZodBoolean>;
|
|
12
|
+
pre_launch_script: z.ZodOptional<z.ZodString>;
|
|
13
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
14
|
+
allowed_envs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
15
|
+
docker_compose_file: z.ZodString;
|
|
16
|
+
features: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
17
|
+
name: z.ZodOptional<z.ZodString>;
|
|
18
|
+
manifest_version: z.ZodOptional<z.ZodNumber>;
|
|
19
|
+
kms_enabled: z.ZodOptional<z.ZodBoolean>;
|
|
20
|
+
public_logs: z.ZodOptional<z.ZodBoolean>;
|
|
21
|
+
public_sysinfo: z.ZodOptional<z.ZodBoolean>;
|
|
22
|
+
tproxy_enabled: z.ZodOptional<z.ZodBoolean>;
|
|
23
|
+
pre_launch_script: z.ZodOptional<z.ZodString>;
|
|
24
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
25
|
+
allowed_envs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
26
|
+
docker_compose_file: z.ZodString;
|
|
27
|
+
features: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
28
|
+
name: z.ZodOptional<z.ZodString>;
|
|
29
|
+
manifest_version: z.ZodOptional<z.ZodNumber>;
|
|
30
|
+
kms_enabled: z.ZodOptional<z.ZodBoolean>;
|
|
31
|
+
public_logs: z.ZodOptional<z.ZodBoolean>;
|
|
32
|
+
public_sysinfo: z.ZodOptional<z.ZodBoolean>;
|
|
33
|
+
tproxy_enabled: z.ZodOptional<z.ZodBoolean>;
|
|
34
|
+
pre_launch_script: z.ZodOptional<z.ZodString>;
|
|
35
|
+
}, z.ZodTypeAny, "passthrough">>;
|
|
36
|
+
export type LooseAppCompose = z.infer<typeof LooseAppComposeSchema>;
|
|
37
|
+
//# sourceMappingURL=app_compose.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app_compose.d.ts","sourceRoot":"","sources":["../../src/types/app_compose.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAalB,CAAC;AAEjB,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
|
package/dist/types/client.d.ts
CHANGED
|
@@ -108,6 +108,7 @@ export interface ClientConfig extends FetchOptions {
|
|
|
108
108
|
/**
|
|
109
109
|
* API key for authentication
|
|
110
110
|
* If not provided, will read from PHALA_CLOUD_API_KEY environment variable
|
|
111
|
+
* Not required when useCookieAuth is true
|
|
111
112
|
*/
|
|
112
113
|
apiKey?: string;
|
|
113
114
|
/**
|
|
@@ -122,5 +123,19 @@ export interface ClientConfig extends FetchOptions {
|
|
|
122
123
|
* API version to use
|
|
123
124
|
*/
|
|
124
125
|
version?: string;
|
|
126
|
+
/**
|
|
127
|
+
* Use cookie-based authentication instead of API key
|
|
128
|
+
* When true, API key is not required and credentials: "include" is set
|
|
129
|
+
*/
|
|
130
|
+
useCookieAuth?: boolean;
|
|
131
|
+
/**
|
|
132
|
+
* Custom response error handler
|
|
133
|
+
* Will be called in addition to the default error logging
|
|
134
|
+
*/
|
|
135
|
+
onResponseError?: (context: {
|
|
136
|
+
request: FetchRequest;
|
|
137
|
+
response: Response;
|
|
138
|
+
options: FetchOptions;
|
|
139
|
+
}) => void | Promise<void>;
|
|
125
140
|
}
|
|
126
141
|
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/types/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAErE;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAczB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,CAAC,CAAC,QAAQ,CAAC;AAElD;;;GAGG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,IACnC;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,GACzC;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,IAAI,CAAC,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC;AAE/C;;;GAGG;AACH,qBAAa,YAAa,SAAQ,KAAM,YAAW,QAAQ;IACzD,SAAgB,IAAI,kBAAkB;IACtC,SAAgB,cAAc,EAAG,IAAI,CAAU;IAC/C,SAAgB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,SAAgB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChD,SAAgB,IAAI,CAAC,EAAE,OAAO,CAAC;IAC/B,SAAgB,OAAO,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IACnD,SAAgB,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAGhD,SAAgB,MAAM,EAClB,MAAM,GACN,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;IACzE,SAAgB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,SAAgB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;gBAGxC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC5B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAChC,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,OAAO,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;QACnC,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;QAChC,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,MAAM,CAAC,EACH,MAAM,GACN,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,KAAK,CAAC;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;SAAE,CAAC,CAAC;QACzE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KAC3B;IAcH;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,YAAY;IAoCtD;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,YAAY;CAMrE;AAED;;;;;;GAMG;AACH,MAAM,WAAW,YAAa,SAAQ,YAAY;IAChD
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/types/client.ts"],"names":[],"mappings":"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"}
|