@phala/cloud 0.0.12 → 0.1.1-beta.1
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/{add_compose_hash.d.ts → blockchains/add_compose_hash.d.ts} +6 -7
- package/dist/actions/{deploy_app_auth.d.ts → blockchains/deploy_app_auth.d.ts} +6 -7
- package/dist/actions/{commit_cvm_compose_file_update.d.ts → cvms/commit_cvm_compose_file_update.d.ts} +25 -13
- package/dist/actions/{commit_cvm_provision.d.ts → cvms/commit_cvm_provision.d.ts} +139 -13
- package/dist/actions/cvms/get_cvm_compose_file.d.ts +225 -0
- package/dist/actions/{get_cvm_info.d.ts → cvms/get_cvm_info.d.ts} +21 -12
- package/dist/actions/{get_cvm_list.d.ts → cvms/get_cvm_list.d.ts} +187 -39
- package/dist/actions/{provision_cvm.d.ts → cvms/provision_cvm.d.ts} +75 -20
- package/dist/actions/cvms/provision_cvm_compose_file_update.d.ts +768 -0
- package/dist/actions/get_available_nodes.d.ts +319 -7
- package/dist/actions/get_current_user.d.ts +35 -7
- package/dist/actions/index.d.ts +17 -18
- package/dist/actions/kms/get_app_env_encrypt_pubkey.d.ts +66 -0
- package/dist/actions/kms/get_kms_info.d.ts +55 -0
- package/dist/actions/{get_kms_list.d.ts → kms/get_kms_list.d.ts} +44 -8
- package/dist/actions/list-instance-types.d.ts +69 -10
- package/dist/actions/workspaces/get_workspace.d.ts +33 -8
- package/dist/actions/workspaces/list_workspaces.d.ts +92 -7
- package/dist/chunk-O5QBIXBA.mjs +1128 -0
- package/dist/client.d.ts +16 -1
- package/dist/create-client.d.ts +311 -0
- package/dist/create-client.js +1143 -0
- package/dist/create-client.mjs +74 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +504 -722
- package/dist/index.mjs +135 -1351
- package/dist/parse_dotenv.d.ts +0 -1
- package/dist/types/app_compose.d.ts +0 -1
- package/dist/types/client.d.ts +0 -1
- package/dist/types/common.d.ts +17 -4
- package/dist/types/cvm_info.d.ts +34 -35
- package/dist/types/index.d.ts +0 -1
- package/dist/types/kms_info.d.ts +0 -1
- package/dist/types/supported_chains.d.ts +0 -1
- package/dist/utils/as-hex.d.ts +0 -1
- package/dist/utils/client-factories.d.ts +0 -1
- package/dist/utils/define-action.d.ts +61 -0
- package/dist/utils/get_compose_hash.d.ts +0 -1
- package/dist/utils/get_error_message.d.ts +0 -1
- package/dist/utils/index.d.ts +0 -1
- package/dist/utils/network.d.ts +0 -1
- package/dist/utils/transaction.d.ts +0 -1
- package/dist/utils/validate-parameters.d.ts +5 -5
- package/package.json +70 -66
- package/dist/actions/add_compose_hash.d.ts.map +0 -1
- package/dist/actions/commit_cvm_compose_file_update.d.ts.map +0 -1
- package/dist/actions/commit_cvm_provision.d.ts.map +0 -1
- package/dist/actions/deploy_app_auth.d.ts.map +0 -1
- package/dist/actions/get_app_env_encrypt_pubkey.d.ts +0 -30
- package/dist/actions/get_app_env_encrypt_pubkey.d.ts.map +0 -1
- package/dist/actions/get_available_nodes.d.ts.map +0 -1
- package/dist/actions/get_current_user.d.ts.map +0 -1
- package/dist/actions/get_cvm_compose_file.d.ts +0 -122
- package/dist/actions/get_cvm_compose_file.d.ts.map +0 -1
- package/dist/actions/get_cvm_info.d.ts.map +0 -1
- package/dist/actions/get_cvm_list.d.ts.map +0 -1
- package/dist/actions/get_kms_info.d.ts +0 -34
- package/dist/actions/get_kms_info.d.ts.map +0 -1
- package/dist/actions/get_kms_list.d.ts.map +0 -1
- package/dist/actions/index.d.ts.map +0 -1
- package/dist/actions/list-instance-types.d.ts.map +0 -1
- package/dist/actions/provision_cvm.d.ts.map +0 -1
- package/dist/actions/provision_cvm_compose_file_update.d.ts +0 -413
- package/dist/actions/provision_cvm_compose_file_update.d.ts.map +0 -1
- package/dist/actions/workspaces/get_workspace.d.ts.map +0 -1
- package/dist/actions/workspaces/list_workspaces.d.ts.map +0 -1
- package/dist/client.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/parse_dotenv.d.ts.map +0 -1
- package/dist/types/app_compose.d.ts.map +0 -1
- package/dist/types/client.d.ts.map +0 -1
- package/dist/types/common.d.ts.map +0 -1
- package/dist/types/cvm_info.d.ts.map +0 -1
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/kms_info.d.ts.map +0 -1
- package/dist/types/supported_chains.d.ts.map +0 -1
- package/dist/utils/as-hex.d.ts.map +0 -1
- package/dist/utils/client-factories.d.ts.map +0 -1
- package/dist/utils/get_compose_hash.d.ts.map +0 -1
- package/dist/utils/get_error_message.d.ts.map +0 -1
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/network.d.ts.map +0 -1
- package/dist/utils/transaction.d.ts.map +0 -1
- package/dist/utils/validate-parameters.d.ts.map +0 -1
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);
|
|
@@ -545,6 +576,357 @@ var CvmLegacyDetailSchema = import_zod3.z.object({
|
|
|
545
576
|
// src/actions/get_current_user.ts
|
|
546
577
|
var import_zod4 = require("zod");
|
|
547
578
|
|
|
579
|
+
// src/utils/validate-parameters.ts
|
|
580
|
+
function validateActionParameters(parameters) {
|
|
581
|
+
if (parameters?.schema !== void 0 && parameters?.schema !== false) {
|
|
582
|
+
if (typeof parameters.schema !== "object" || parameters.schema === null || !("parse" in parameters.schema) || typeof parameters.schema.parse !== "function") {
|
|
583
|
+
throw new Error("Invalid schema: must be a Zod schema object, false, or undefined");
|
|
584
|
+
}
|
|
585
|
+
}
|
|
586
|
+
}
|
|
587
|
+
function safeValidateActionParameters(parameters) {
|
|
588
|
+
if (parameters?.schema !== void 0 && parameters?.schema !== false) {
|
|
589
|
+
if (typeof parameters.schema !== "object" || parameters.schema === null || !("parse" in parameters.schema) || typeof parameters.schema.parse !== "function") {
|
|
590
|
+
return {
|
|
591
|
+
success: false,
|
|
592
|
+
error: {
|
|
593
|
+
name: "ZodError",
|
|
594
|
+
message: "Invalid schema: must be a Zod schema object, false, or undefined",
|
|
595
|
+
issues: [
|
|
596
|
+
{
|
|
597
|
+
code: "invalid_type",
|
|
598
|
+
expected: "object",
|
|
599
|
+
received: typeof parameters.schema,
|
|
600
|
+
path: ["schema"],
|
|
601
|
+
message: "Invalid schema: must be a Zod schema object, false, or undefined"
|
|
602
|
+
}
|
|
603
|
+
]
|
|
604
|
+
}
|
|
605
|
+
};
|
|
606
|
+
}
|
|
607
|
+
}
|
|
608
|
+
return void 0;
|
|
609
|
+
}
|
|
610
|
+
|
|
611
|
+
// src/utils/define-action.ts
|
|
612
|
+
function defineSimpleAction(schema, fn) {
|
|
613
|
+
function action(client, parameters) {
|
|
614
|
+
return _actionImpl(client, parameters);
|
|
615
|
+
}
|
|
616
|
+
async function _actionImpl(client, parameters) {
|
|
617
|
+
validateActionParameters(parameters);
|
|
618
|
+
const response = await fn(client);
|
|
619
|
+
if (parameters?.schema === false) {
|
|
620
|
+
return response;
|
|
621
|
+
}
|
|
622
|
+
const actualSchema = parameters?.schema || schema;
|
|
623
|
+
return actualSchema.parse(response);
|
|
624
|
+
}
|
|
625
|
+
function safeAction(client, parameters) {
|
|
626
|
+
return _safeActionImpl(client, parameters);
|
|
627
|
+
}
|
|
628
|
+
async function _safeActionImpl(client, parameters) {
|
|
629
|
+
const parameterValidationError = safeValidateActionParameters(parameters);
|
|
630
|
+
if (parameterValidationError) {
|
|
631
|
+
return parameterValidationError;
|
|
632
|
+
}
|
|
633
|
+
const httpResult = await (async () => {
|
|
634
|
+
try {
|
|
635
|
+
const data = await fn(client);
|
|
636
|
+
return { success: true, data };
|
|
637
|
+
} catch (error) {
|
|
638
|
+
if (error && typeof error === "object" && "isRequestError" in error) {
|
|
639
|
+
return { success: false, error };
|
|
640
|
+
}
|
|
641
|
+
if (error && typeof error === "object" && "issues" in error) {
|
|
642
|
+
return { success: false, error };
|
|
643
|
+
}
|
|
644
|
+
return {
|
|
645
|
+
success: false,
|
|
646
|
+
error: {
|
|
647
|
+
name: "Error",
|
|
648
|
+
message: error instanceof Error ? error.message : String(error)
|
|
649
|
+
}
|
|
650
|
+
};
|
|
651
|
+
}
|
|
652
|
+
})();
|
|
653
|
+
if (!httpResult.success) {
|
|
654
|
+
return httpResult;
|
|
655
|
+
}
|
|
656
|
+
if (parameters?.schema === false) {
|
|
657
|
+
return { success: true, data: httpResult.data };
|
|
658
|
+
}
|
|
659
|
+
const actualSchema = parameters?.schema || schema;
|
|
660
|
+
return actualSchema.safeParse(httpResult.data);
|
|
661
|
+
}
|
|
662
|
+
return {
|
|
663
|
+
action,
|
|
664
|
+
safeAction
|
|
665
|
+
};
|
|
666
|
+
}
|
|
667
|
+
function defineAction(schema, fn) {
|
|
668
|
+
function action(client, ...args) {
|
|
669
|
+
const [params, parameters] = args;
|
|
670
|
+
return _actionImpl(client, params, parameters);
|
|
671
|
+
}
|
|
672
|
+
async function _actionImpl(client, params, parameters) {
|
|
673
|
+
validateActionParameters(parameters);
|
|
674
|
+
const response = await fn(client, params);
|
|
675
|
+
if (parameters?.schema === false) {
|
|
676
|
+
return response;
|
|
677
|
+
}
|
|
678
|
+
const actualSchema = parameters?.schema || schema;
|
|
679
|
+
return actualSchema.parse(response);
|
|
680
|
+
}
|
|
681
|
+
function safeAction(client, ...args) {
|
|
682
|
+
const [params, parameters] = args;
|
|
683
|
+
return _safeActionImpl(client, params, parameters);
|
|
684
|
+
}
|
|
685
|
+
async function _safeActionImpl(client, params, parameters) {
|
|
686
|
+
const parameterValidationError = safeValidateActionParameters(parameters);
|
|
687
|
+
if (parameterValidationError) {
|
|
688
|
+
return parameterValidationError;
|
|
689
|
+
}
|
|
690
|
+
const httpResult = await (async () => {
|
|
691
|
+
try {
|
|
692
|
+
const data = await fn(client, params);
|
|
693
|
+
return { success: true, data };
|
|
694
|
+
} catch (error) {
|
|
695
|
+
if (error && typeof error === "object" && "isRequestError" in error) {
|
|
696
|
+
return { success: false, error };
|
|
697
|
+
}
|
|
698
|
+
if (error && typeof error === "object" && "issues" in error) {
|
|
699
|
+
return { success: false, error };
|
|
700
|
+
}
|
|
701
|
+
return {
|
|
702
|
+
success: false,
|
|
703
|
+
error: {
|
|
704
|
+
name: "Error",
|
|
705
|
+
message: error instanceof Error ? error.message : String(error)
|
|
706
|
+
}
|
|
707
|
+
};
|
|
708
|
+
}
|
|
709
|
+
})();
|
|
710
|
+
if (!httpResult.success) {
|
|
711
|
+
return httpResult;
|
|
712
|
+
}
|
|
713
|
+
if (parameters?.schema === false) {
|
|
714
|
+
return { success: true, data: httpResult.data };
|
|
715
|
+
}
|
|
716
|
+
const actualSchema = parameters?.schema || schema;
|
|
717
|
+
return actualSchema.safeParse(httpResult.data);
|
|
718
|
+
}
|
|
719
|
+
return {
|
|
720
|
+
action,
|
|
721
|
+
safeAction
|
|
722
|
+
};
|
|
723
|
+
}
|
|
724
|
+
|
|
725
|
+
// src/actions/get_current_user.ts
|
|
726
|
+
var CurrentUserSchema = import_zod4.z.object({
|
|
727
|
+
username: import_zod4.z.string(),
|
|
728
|
+
email: import_zod4.z.string(),
|
|
729
|
+
credits: import_zod4.z.number(),
|
|
730
|
+
granted_credits: import_zod4.z.number(),
|
|
731
|
+
avatar: import_zod4.z.string(),
|
|
732
|
+
team_name: import_zod4.z.string(),
|
|
733
|
+
team_tier: import_zod4.z.string()
|
|
734
|
+
}).passthrough();
|
|
735
|
+
var { action: getCurrentUser, safeAction: safeGetCurrentUser } = defineSimpleAction(
|
|
736
|
+
CurrentUserSchema,
|
|
737
|
+
async (client) => {
|
|
738
|
+
return await client.get("/auth/me");
|
|
739
|
+
}
|
|
740
|
+
);
|
|
741
|
+
|
|
742
|
+
// src/actions/get_available_nodes.ts
|
|
743
|
+
var import_zod5 = require("zod");
|
|
744
|
+
var AvailableOSImageSchema = import_zod5.z.object({
|
|
745
|
+
name: import_zod5.z.string(),
|
|
746
|
+
is_dev: import_zod5.z.boolean(),
|
|
747
|
+
version: import_zod5.z.union([
|
|
748
|
+
import_zod5.z.tuple([import_zod5.z.number(), import_zod5.z.number(), import_zod5.z.number()]),
|
|
749
|
+
import_zod5.z.tuple([import_zod5.z.number(), import_zod5.z.number(), import_zod5.z.number(), import_zod5.z.number()])
|
|
750
|
+
]),
|
|
751
|
+
os_image_hash: import_zod5.z.string().nullable().optional()
|
|
752
|
+
}).passthrough();
|
|
753
|
+
var TeepodCapacitySchema = import_zod5.z.object({
|
|
754
|
+
teepod_id: import_zod5.z.number(),
|
|
755
|
+
name: import_zod5.z.string(),
|
|
756
|
+
listed: import_zod5.z.boolean(),
|
|
757
|
+
resource_score: import_zod5.z.number(),
|
|
758
|
+
remaining_vcpu: import_zod5.z.number(),
|
|
759
|
+
remaining_memory: import_zod5.z.number(),
|
|
760
|
+
remaining_cvm_slots: import_zod5.z.number(),
|
|
761
|
+
images: import_zod5.z.array(AvailableOSImageSchema),
|
|
762
|
+
support_onchain_kms: import_zod5.z.boolean().optional(),
|
|
763
|
+
fmspc: import_zod5.z.string().nullable().optional(),
|
|
764
|
+
device_id: import_zod5.z.string().nullable().optional(),
|
|
765
|
+
region_identifier: import_zod5.z.string().nullable().optional(),
|
|
766
|
+
default_kms: import_zod5.z.string().nullable().optional(),
|
|
767
|
+
kms_list: import_zod5.z.array(import_zod5.z.string()).default([])
|
|
768
|
+
}).passthrough();
|
|
769
|
+
var ResourceThresholdSchema = import_zod5.z.object({
|
|
770
|
+
max_instances: import_zod5.z.number().nullable().optional(),
|
|
771
|
+
max_vcpu: import_zod5.z.number().nullable().optional(),
|
|
772
|
+
max_memory: import_zod5.z.number().nullable().optional(),
|
|
773
|
+
max_disk: import_zod5.z.number().nullable().optional()
|
|
774
|
+
}).passthrough();
|
|
775
|
+
var AvailableNodesSchema = import_zod5.z.object({
|
|
776
|
+
tier: import_zod5.z.string(),
|
|
777
|
+
// TeamTier is string enum
|
|
778
|
+
capacity: ResourceThresholdSchema,
|
|
779
|
+
nodes: import_zod5.z.array(TeepodCapacitySchema),
|
|
780
|
+
kms_list: import_zod5.z.array(KmsInfoSchema)
|
|
781
|
+
}).passthrough();
|
|
782
|
+
var { action: getAvailableNodes, safeAction: safeGetAvailableNodes } = defineSimpleAction(
|
|
783
|
+
AvailableNodesSchema,
|
|
784
|
+
async (client) => {
|
|
785
|
+
return await client.get("/teepods/available");
|
|
786
|
+
}
|
|
787
|
+
);
|
|
788
|
+
|
|
789
|
+
// src/actions/cvms/provision_cvm.ts
|
|
790
|
+
var import_zod6 = require("zod");
|
|
791
|
+
var ProvisionCvmSchema = import_zod6.z.object({
|
|
792
|
+
app_id: import_zod6.z.string().nullable().optional(),
|
|
793
|
+
app_env_encrypt_pubkey: import_zod6.z.string().nullable().optional(),
|
|
794
|
+
compose_hash: import_zod6.z.string(),
|
|
795
|
+
fmspc: import_zod6.z.string().nullable().optional(),
|
|
796
|
+
device_id: import_zod6.z.string().nullable().optional(),
|
|
797
|
+
os_image_hash: import_zod6.z.string().nullable().optional(),
|
|
798
|
+
teepod_id: import_zod6.z.number().nullable().optional(),
|
|
799
|
+
// Will be transformed to node_id
|
|
800
|
+
node_id: import_zod6.z.number().nullable().optional(),
|
|
801
|
+
kms_id: import_zod6.z.string().nullable().optional()
|
|
802
|
+
}).passthrough().transform((data) => {
|
|
803
|
+
if ("teepod_id" in data && data.teepod_id !== void 0) {
|
|
804
|
+
const { teepod_id, ...rest } = data;
|
|
805
|
+
return { ...rest, node_id: teepod_id };
|
|
806
|
+
}
|
|
807
|
+
return data;
|
|
808
|
+
});
|
|
809
|
+
var ProvisionCvmRequestSchema = import_zod6.z.object({
|
|
810
|
+
node_id: import_zod6.z.number().optional(),
|
|
811
|
+
// recommended
|
|
812
|
+
teepod_id: import_zod6.z.number().optional(),
|
|
813
|
+
// deprecated, for compatibility
|
|
814
|
+
name: import_zod6.z.string(),
|
|
815
|
+
image: import_zod6.z.string(),
|
|
816
|
+
vcpu: import_zod6.z.number(),
|
|
817
|
+
memory: import_zod6.z.number(),
|
|
818
|
+
disk_size: import_zod6.z.number(),
|
|
819
|
+
compose_file: import_zod6.z.object({
|
|
820
|
+
allowed_envs: import_zod6.z.array(import_zod6.z.string()).optional(),
|
|
821
|
+
pre_launch_script: import_zod6.z.string().optional(),
|
|
822
|
+
docker_compose_file: import_zod6.z.string().optional(),
|
|
823
|
+
name: import_zod6.z.string().optional(),
|
|
824
|
+
kms_enabled: import_zod6.z.boolean().optional(),
|
|
825
|
+
public_logs: import_zod6.z.boolean().optional(),
|
|
826
|
+
public_sysinfo: import_zod6.z.boolean().optional(),
|
|
827
|
+
gateway_enabled: import_zod6.z.boolean().optional(),
|
|
828
|
+
// recommended
|
|
829
|
+
tproxy_enabled: import_zod6.z.boolean().optional()
|
|
830
|
+
// deprecated, for compatibility
|
|
831
|
+
}),
|
|
832
|
+
listed: import_zod6.z.boolean().optional(),
|
|
833
|
+
instance_type: import_zod6.z.string().nullable().optional(),
|
|
834
|
+
kms_id: import_zod6.z.string().optional(),
|
|
835
|
+
env_keys: import_zod6.z.array(import_zod6.z.string()).optional()
|
|
836
|
+
}).passthrough();
|
|
837
|
+
function autofillComposeFileName(appCompose) {
|
|
838
|
+
if (appCompose.compose_file && !appCompose.compose_file.name) {
|
|
839
|
+
return {
|
|
840
|
+
...appCompose,
|
|
841
|
+
compose_file: {
|
|
842
|
+
...appCompose.compose_file,
|
|
843
|
+
name: appCompose.name
|
|
844
|
+
}
|
|
845
|
+
};
|
|
846
|
+
}
|
|
847
|
+
return appCompose;
|
|
848
|
+
}
|
|
849
|
+
function handleGatewayCompatibility(appCompose) {
|
|
850
|
+
if (!appCompose.compose_file) {
|
|
851
|
+
return appCompose;
|
|
852
|
+
}
|
|
853
|
+
const composeFile = { ...appCompose.compose_file };
|
|
854
|
+
if (typeof composeFile.gateway_enabled === "boolean" && typeof composeFile.tproxy_enabled === "boolean") {
|
|
855
|
+
delete composeFile.tproxy_enabled;
|
|
856
|
+
} else if (typeof composeFile.tproxy_enabled === "boolean" && typeof composeFile.gateway_enabled === "undefined") {
|
|
857
|
+
composeFile.gateway_enabled = composeFile.tproxy_enabled;
|
|
858
|
+
delete composeFile.tproxy_enabled;
|
|
859
|
+
if (typeof window !== "undefined" ? window.console : globalThis.console) {
|
|
860
|
+
console.warn(
|
|
861
|
+
"[phala/cloud] tproxy_enabled is deprecated, please use gateway_enabled instead. See docs for migration."
|
|
862
|
+
);
|
|
863
|
+
}
|
|
864
|
+
}
|
|
865
|
+
return {
|
|
866
|
+
...appCompose,
|
|
867
|
+
compose_file: composeFile
|
|
868
|
+
};
|
|
869
|
+
}
|
|
870
|
+
var { action: provisionCvm, safeAction: safeProvisionCvm } = defineAction(ProvisionCvmSchema, async (client, appCompose) => {
|
|
871
|
+
const body = handleGatewayCompatibility(autofillComposeFileName(appCompose));
|
|
872
|
+
let requestBody = { ...body };
|
|
873
|
+
if (typeof body.node_id === "number") {
|
|
874
|
+
requestBody = { ...body, teepod_id: body.node_id };
|
|
875
|
+
delete requestBody.node_id;
|
|
876
|
+
} else if (typeof body.teepod_id === "number") {
|
|
877
|
+
console.warn("[phala/cloud] teepod_id is deprecated, please use node_id instead.");
|
|
878
|
+
}
|
|
879
|
+
return await client.post("/cvms/provision", requestBody);
|
|
880
|
+
});
|
|
881
|
+
|
|
882
|
+
// src/actions/cvms/commit_cvm_provision.ts
|
|
883
|
+
var import_zod7 = require("zod");
|
|
884
|
+
var CommitCvmProvisionSchema = import_zod7.z.object({
|
|
885
|
+
id: import_zod7.z.number(),
|
|
886
|
+
name: import_zod7.z.string(),
|
|
887
|
+
status: import_zod7.z.string(),
|
|
888
|
+
teepod_id: import_zod7.z.number(),
|
|
889
|
+
teepod: import_zod7.z.object({
|
|
890
|
+
id: import_zod7.z.number(),
|
|
891
|
+
name: import_zod7.z.string()
|
|
892
|
+
}).nullable(),
|
|
893
|
+
user_id: import_zod7.z.number().nullable(),
|
|
894
|
+
app_id: import_zod7.z.string().nullable(),
|
|
895
|
+
vm_uuid: import_zod7.z.string().nullable(),
|
|
896
|
+
instance_id: import_zod7.z.string().nullable(),
|
|
897
|
+
app_url: import_zod7.z.string().nullable(),
|
|
898
|
+
base_image: import_zod7.z.string().nullable(),
|
|
899
|
+
vcpu: import_zod7.z.number(),
|
|
900
|
+
memory: import_zod7.z.number(),
|
|
901
|
+
disk_size: import_zod7.z.number(),
|
|
902
|
+
manifest_version: import_zod7.z.number().nullable(),
|
|
903
|
+
version: import_zod7.z.string().nullable(),
|
|
904
|
+
runner: import_zod7.z.string().nullable(),
|
|
905
|
+
docker_compose_file: import_zod7.z.string().nullable(),
|
|
906
|
+
features: import_zod7.z.array(import_zod7.z.string()).nullable(),
|
|
907
|
+
created_at: import_zod7.z.string(),
|
|
908
|
+
encrypted_env_pubkey: import_zod7.z.string().nullable().optional(),
|
|
909
|
+
app_auth_contract_address: import_zod7.z.string().nullable().optional(),
|
|
910
|
+
deployer_address: import_zod7.z.string().nullable().optional()
|
|
911
|
+
}).passthrough();
|
|
912
|
+
var CommitCvmProvisionRequestSchema = import_zod7.z.object({
|
|
913
|
+
encrypted_env: import_zod7.z.string().optional().nullable(),
|
|
914
|
+
app_id: import_zod7.z.string(),
|
|
915
|
+
compose_hash: import_zod7.z.string().optional(),
|
|
916
|
+
kms_id: import_zod7.z.string().optional(),
|
|
917
|
+
contract_address: import_zod7.z.string().optional(),
|
|
918
|
+
deployer_address: import_zod7.z.string().optional(),
|
|
919
|
+
env_keys: import_zod7.z.array(import_zod7.z.string()).optional().nullable()
|
|
920
|
+
}).passthrough();
|
|
921
|
+
var { action: commitCvmProvision, safeAction: safeCommitCvmProvision } = defineAction(CommitCvmProvisionSchema, async (client, payload) => {
|
|
922
|
+
return await client.post("/cvms", payload);
|
|
923
|
+
});
|
|
924
|
+
|
|
925
|
+
// src/actions/blockchains/deploy_app_auth.ts
|
|
926
|
+
var import_zod8 = require("zod");
|
|
927
|
+
var import_viem3 = require("viem");
|
|
928
|
+
var import_accounts2 = require("viem/accounts");
|
|
929
|
+
|
|
548
930
|
// src/utils/index.ts
|
|
549
931
|
var import_encrypt_env_vars = require("@phala/dstack-sdk/encrypt-env-vars");
|
|
550
932
|
|
|
@@ -578,38 +960,6 @@ function asHex(value) {
|
|
|
578
960
|
throw new Error(`Invalid hex value: ${value}`);
|
|
579
961
|
}
|
|
580
962
|
|
|
581
|
-
// src/utils/validate-parameters.ts
|
|
582
|
-
function validateActionParameters(parameters) {
|
|
583
|
-
if (parameters?.schema !== void 0 && parameters?.schema !== false) {
|
|
584
|
-
if (typeof parameters.schema !== "object" || parameters.schema === null || !("parse" in parameters.schema) || typeof parameters.schema.parse !== "function") {
|
|
585
|
-
throw new Error("Invalid schema: must be a Zod schema object, false, or undefined");
|
|
586
|
-
}
|
|
587
|
-
}
|
|
588
|
-
}
|
|
589
|
-
function safeValidateActionParameters(parameters) {
|
|
590
|
-
if (parameters?.schema !== void 0 && parameters?.schema !== false) {
|
|
591
|
-
if (typeof parameters.schema !== "object" || parameters.schema === null || !("parse" in parameters.schema) || typeof parameters.schema.parse !== "function") {
|
|
592
|
-
return {
|
|
593
|
-
success: false,
|
|
594
|
-
error: {
|
|
595
|
-
name: "ZodError",
|
|
596
|
-
message: "Invalid schema: must be a Zod schema object, false, or undefined",
|
|
597
|
-
issues: [
|
|
598
|
-
{
|
|
599
|
-
code: "invalid_type",
|
|
600
|
-
expected: "object",
|
|
601
|
-
received: typeof parameters.schema,
|
|
602
|
-
path: ["schema"],
|
|
603
|
-
message: "Invalid schema: must be a Zod schema object, false, or undefined"
|
|
604
|
-
}
|
|
605
|
-
]
|
|
606
|
-
}
|
|
607
|
-
};
|
|
608
|
-
}
|
|
609
|
-
}
|
|
610
|
-
return void 0;
|
|
611
|
-
}
|
|
612
|
-
|
|
613
963
|
// src/utils/network.ts
|
|
614
964
|
var NetworkError = class extends Error {
|
|
615
965
|
constructor(message, code, details) {
|
|
@@ -1139,370 +1489,77 @@ async function createClientsFromBrowser(chain, rpcUrl) {
|
|
|
1139
1489
|
if (error instanceof WalletError || error instanceof NetworkError) {
|
|
1140
1490
|
throw error;
|
|
1141
1491
|
}
|
|
1142
|
-
throw new WalletError(
|
|
1143
|
-
`Failed to connect browser wallet: ${error instanceof Error ? error.message : "Unknown error"}`,
|
|
1144
|
-
"BROWSER_CONNECTION_FAILED",
|
|
1145
|
-
error
|
|
1146
|
-
);
|
|
1147
|
-
}
|
|
1148
|
-
}
|
|
1149
|
-
async function switchToNetwork(provider, chainId) {
|
|
1150
|
-
try {
|
|
1151
|
-
await provider.request({
|
|
1152
|
-
method: "wallet_switchEthereumChain",
|
|
1153
|
-
params: [{ chainId: `0x${chainId.toString(16)}` }]
|
|
1154
|
-
});
|
|
1155
|
-
} catch (error) {
|
|
1156
|
-
const errorObj = error;
|
|
1157
|
-
if (errorObj.code === 4902) {
|
|
1158
|
-
throw new NetworkError(
|
|
1159
|
-
`Network ${chainId} not found in wallet. Please add it manually.`,
|
|
1160
|
-
"NETWORK_NOT_FOUND",
|
|
1161
|
-
error
|
|
1162
|
-
);
|
|
1163
|
-
}
|
|
1164
|
-
throw new NetworkError(
|
|
1165
|
-
`Failed to switch network: ${errorObj.message || "Unknown error"}`,
|
|
1166
|
-
"NETWORK_SWITCH_FAILED",
|
|
1167
|
-
error
|
|
1168
|
-
);
|
|
1169
|
-
}
|
|
1170
|
-
}
|
|
1171
|
-
async function addNetwork(provider, config) {
|
|
1172
|
-
try {
|
|
1173
|
-
await provider.request({
|
|
1174
|
-
method: "wallet_addEthereumChain",
|
|
1175
|
-
params: [
|
|
1176
|
-
{
|
|
1177
|
-
chainId: `0x${config.chainId.toString(16)}`,
|
|
1178
|
-
chainName: config.name,
|
|
1179
|
-
rpcUrls: [config.rpcUrl],
|
|
1180
|
-
blockExplorerUrls: config.blockExplorer ? [config.blockExplorer] : void 0,
|
|
1181
|
-
nativeCurrency: {
|
|
1182
|
-
name: "ETH",
|
|
1183
|
-
symbol: "ETH",
|
|
1184
|
-
decimals: 18
|
|
1185
|
-
}
|
|
1186
|
-
}
|
|
1187
|
-
]
|
|
1188
|
-
});
|
|
1189
|
-
} catch (error) {
|
|
1190
|
-
const errorObj = error;
|
|
1191
|
-
throw new NetworkError(
|
|
1192
|
-
`Failed to add network: ${errorObj.message || "Unknown error"}`,
|
|
1193
|
-
"NETWORK_ADD_FAILED",
|
|
1194
|
-
error
|
|
1195
|
-
);
|
|
1196
|
-
}
|
|
1197
|
-
}
|
|
1198
|
-
async function autoCreateClients(chain, options = {}) {
|
|
1199
|
-
const { privateKey, rpcUrl, preferBrowser = false } = options;
|
|
1200
|
-
if (privateKey) {
|
|
1201
|
-
return createClientsFromPrivateKey(chain, privateKey, rpcUrl);
|
|
1202
|
-
}
|
|
1203
|
-
if (isBrowser() && (preferBrowser || !privateKey)) {
|
|
1204
|
-
return createClientsFromBrowser(chain, rpcUrl);
|
|
1205
|
-
}
|
|
1206
|
-
throw new WalletError(
|
|
1207
|
-
"No wallet connection method available. Provide a private key for server-side usage or use in browser environment.",
|
|
1208
|
-
"NO_CONNECTION_METHOD"
|
|
1209
|
-
);
|
|
1210
|
-
}
|
|
1211
|
-
|
|
1212
|
-
// src/actions/get_current_user.ts
|
|
1213
|
-
var CurrentUserSchema = import_zod4.z.object({
|
|
1214
|
-
username: import_zod4.z.string(),
|
|
1215
|
-
email: import_zod4.z.string(),
|
|
1216
|
-
credits: import_zod4.z.number(),
|
|
1217
|
-
granted_credits: import_zod4.z.number(),
|
|
1218
|
-
avatar: import_zod4.z.string(),
|
|
1219
|
-
team_name: import_zod4.z.string(),
|
|
1220
|
-
team_tier: import_zod4.z.string()
|
|
1221
|
-
}).passthrough();
|
|
1222
|
-
async function getCurrentUser(client, parameters) {
|
|
1223
|
-
validateActionParameters(parameters);
|
|
1224
|
-
const response = await client.get("/auth/me");
|
|
1225
|
-
if (parameters?.schema === false) {
|
|
1226
|
-
return response;
|
|
1227
|
-
}
|
|
1228
|
-
const schema = parameters?.schema || CurrentUserSchema;
|
|
1229
|
-
return schema.parse(response);
|
|
1230
|
-
}
|
|
1231
|
-
async function safeGetCurrentUser(client, parameters) {
|
|
1232
|
-
const parameterValidationError = safeValidateActionParameters(parameters);
|
|
1233
|
-
if (parameterValidationError) {
|
|
1234
|
-
return parameterValidationError;
|
|
1235
|
-
}
|
|
1236
|
-
const httpResult = await client.safeGet("/auth/me");
|
|
1237
|
-
if (!httpResult.success) {
|
|
1238
|
-
return httpResult;
|
|
1239
|
-
}
|
|
1240
|
-
if (parameters?.schema === false) {
|
|
1241
|
-
return { success: true, data: httpResult.data };
|
|
1242
|
-
}
|
|
1243
|
-
const schema = parameters?.schema || CurrentUserSchema;
|
|
1244
|
-
return schema.safeParse(httpResult.data);
|
|
1245
|
-
}
|
|
1246
|
-
|
|
1247
|
-
// src/actions/get_available_nodes.ts
|
|
1248
|
-
var import_zod5 = require("zod");
|
|
1249
|
-
var AvailableOSImageSchema = import_zod5.z.object({
|
|
1250
|
-
name: import_zod5.z.string(),
|
|
1251
|
-
is_dev: import_zod5.z.boolean(),
|
|
1252
|
-
version: import_zod5.z.union([
|
|
1253
|
-
import_zod5.z.tuple([import_zod5.z.number(), import_zod5.z.number(), import_zod5.z.number()]),
|
|
1254
|
-
import_zod5.z.tuple([import_zod5.z.number(), import_zod5.z.number(), import_zod5.z.number(), import_zod5.z.number()])
|
|
1255
|
-
]),
|
|
1256
|
-
os_image_hash: import_zod5.z.string().nullable().optional()
|
|
1257
|
-
}).passthrough();
|
|
1258
|
-
var TeepodCapacitySchema = import_zod5.z.object({
|
|
1259
|
-
teepod_id: import_zod5.z.number(),
|
|
1260
|
-
name: import_zod5.z.string(),
|
|
1261
|
-
listed: import_zod5.z.boolean(),
|
|
1262
|
-
resource_score: import_zod5.z.number(),
|
|
1263
|
-
remaining_vcpu: import_zod5.z.number(),
|
|
1264
|
-
remaining_memory: import_zod5.z.number(),
|
|
1265
|
-
remaining_cvm_slots: import_zod5.z.number(),
|
|
1266
|
-
images: import_zod5.z.array(AvailableOSImageSchema),
|
|
1267
|
-
support_onchain_kms: import_zod5.z.boolean().optional(),
|
|
1268
|
-
fmspc: import_zod5.z.string().nullable().optional(),
|
|
1269
|
-
device_id: import_zod5.z.string().nullable().optional(),
|
|
1270
|
-
region_identifier: import_zod5.z.string().nullable().optional(),
|
|
1271
|
-
default_kms: import_zod5.z.string().nullable().optional(),
|
|
1272
|
-
kms_list: import_zod5.z.array(import_zod5.z.string()).default([])
|
|
1273
|
-
}).passthrough();
|
|
1274
|
-
var ResourceThresholdSchema = import_zod5.z.object({
|
|
1275
|
-
max_instances: import_zod5.z.number().nullable().optional(),
|
|
1276
|
-
max_vcpu: import_zod5.z.number().nullable().optional(),
|
|
1277
|
-
max_memory: import_zod5.z.number().nullable().optional(),
|
|
1278
|
-
max_disk: import_zod5.z.number().nullable().optional()
|
|
1279
|
-
}).passthrough();
|
|
1280
|
-
var AvailableNodesSchema = import_zod5.z.object({
|
|
1281
|
-
tier: import_zod5.z.string(),
|
|
1282
|
-
// TeamTier is string enum
|
|
1283
|
-
capacity: ResourceThresholdSchema,
|
|
1284
|
-
nodes: import_zod5.z.array(TeepodCapacitySchema),
|
|
1285
|
-
kms_list: import_zod5.z.array(KmsInfoSchema)
|
|
1286
|
-
}).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 };
|
|
1302
|
-
}
|
|
1303
|
-
const schema = parameters?.schema || AvailableNodesSchema;
|
|
1304
|
-
return schema.safeParse(httpResult.data);
|
|
1305
|
-
}
|
|
1306
|
-
|
|
1307
|
-
// src/actions/provision_cvm.ts
|
|
1308
|
-
var import_zod6 = require("zod");
|
|
1309
|
-
var ProvisionCvmSchema = import_zod6.z.object({
|
|
1310
|
-
app_id: import_zod6.z.string().nullable().optional(),
|
|
1311
|
-
app_env_encrypt_pubkey: import_zod6.z.string().nullable().optional(),
|
|
1312
|
-
compose_hash: import_zod6.z.string(),
|
|
1313
|
-
fmspc: import_zod6.z.string().nullable().optional(),
|
|
1314
|
-
device_id: import_zod6.z.string().nullable().optional(),
|
|
1315
|
-
os_image_hash: import_zod6.z.string().nullable().optional(),
|
|
1316
|
-
node_id: import_zod6.z.number().nullable().optional(),
|
|
1317
|
-
// Transformed from teepod_id in response
|
|
1318
|
-
kms_id: import_zod6.z.string().nullable().optional()
|
|
1319
|
-
}).passthrough();
|
|
1320
|
-
var ProvisionCvmRequestSchema = import_zod6.z.object({
|
|
1321
|
-
node_id: import_zod6.z.number().optional(),
|
|
1322
|
-
// recommended
|
|
1323
|
-
teepod_id: import_zod6.z.number().optional(),
|
|
1324
|
-
// deprecated, for compatibility
|
|
1325
|
-
name: import_zod6.z.string(),
|
|
1326
|
-
image: import_zod6.z.string(),
|
|
1327
|
-
vcpu: import_zod6.z.number(),
|
|
1328
|
-
memory: import_zod6.z.number(),
|
|
1329
|
-
disk_size: import_zod6.z.number(),
|
|
1330
|
-
compose_file: import_zod6.z.object({
|
|
1331
|
-
allowed_envs: import_zod6.z.array(import_zod6.z.string()).optional(),
|
|
1332
|
-
pre_launch_script: import_zod6.z.string().optional(),
|
|
1333
|
-
docker_compose_file: import_zod6.z.string().optional(),
|
|
1334
|
-
name: import_zod6.z.string().optional(),
|
|
1335
|
-
kms_enabled: import_zod6.z.boolean().optional(),
|
|
1336
|
-
public_logs: import_zod6.z.boolean().optional(),
|
|
1337
|
-
public_sysinfo: import_zod6.z.boolean().optional(),
|
|
1338
|
-
gateway_enabled: import_zod6.z.boolean().optional(),
|
|
1339
|
-
// recommended
|
|
1340
|
-
tproxy_enabled: import_zod6.z.boolean().optional()
|
|
1341
|
-
// deprecated, for compatibility
|
|
1342
|
-
}),
|
|
1343
|
-
listed: import_zod6.z.boolean().optional(),
|
|
1344
|
-
instance_type: import_zod6.z.string().nullable().optional(),
|
|
1345
|
-
kms_id: import_zod6.z.string().optional(),
|
|
1346
|
-
env_keys: import_zod6.z.array(import_zod6.z.string()).optional()
|
|
1347
|
-
}).passthrough();
|
|
1348
|
-
function autofillComposeFileName(appCompose) {
|
|
1349
|
-
if (appCompose.compose_file && !appCompose.compose_file.name) {
|
|
1350
|
-
return {
|
|
1351
|
-
...appCompose,
|
|
1352
|
-
compose_file: {
|
|
1353
|
-
...appCompose.compose_file,
|
|
1354
|
-
name: appCompose.name
|
|
1355
|
-
}
|
|
1356
|
-
};
|
|
1357
|
-
}
|
|
1358
|
-
return appCompose;
|
|
1359
|
-
}
|
|
1360
|
-
function handleGatewayCompatibility(appCompose) {
|
|
1361
|
-
if (!appCompose.compose_file) {
|
|
1362
|
-
return appCompose;
|
|
1363
|
-
}
|
|
1364
|
-
const composeFile = { ...appCompose.compose_file };
|
|
1365
|
-
if (typeof composeFile.gateway_enabled === "boolean" && typeof composeFile.tproxy_enabled === "boolean") {
|
|
1366
|
-
delete composeFile.tproxy_enabled;
|
|
1367
|
-
} else if (typeof composeFile.tproxy_enabled === "boolean" && typeof composeFile.gateway_enabled === "undefined") {
|
|
1368
|
-
composeFile.gateway_enabled = composeFile.tproxy_enabled;
|
|
1369
|
-
delete composeFile.tproxy_enabled;
|
|
1370
|
-
if (typeof window !== "undefined" ? window.console : globalThis.console) {
|
|
1371
|
-
console.warn(
|
|
1372
|
-
"[phala/cloud] tproxy_enabled is deprecated, please use gateway_enabled instead. See docs for migration."
|
|
1373
|
-
);
|
|
1374
|
-
}
|
|
1375
|
-
}
|
|
1376
|
-
return {
|
|
1377
|
-
...appCompose,
|
|
1378
|
-
compose_file: composeFile
|
|
1379
|
-
};
|
|
1380
|
-
}
|
|
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);
|
|
1393
|
-
const body = handleGatewayCompatibility(autofillComposeFileName(appCompose));
|
|
1394
|
-
let requestBody = { ...body };
|
|
1395
|
-
if (typeof body.node_id === "number") {
|
|
1396
|
-
requestBody = { ...body, teepod_id: body.node_id };
|
|
1397
|
-
delete requestBody.node_id;
|
|
1398
|
-
} else if (typeof body.teepod_id === "number") {
|
|
1399
|
-
console.warn("[phala/cloud] teepod_id is deprecated, please use node_id instead.");
|
|
1400
|
-
}
|
|
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;
|
|
1492
|
+
throw new WalletError(
|
|
1493
|
+
`Failed to connect browser wallet: ${error instanceof Error ? error.message : "Unknown error"}`,
|
|
1494
|
+
"BROWSER_CONNECTION_FAILED",
|
|
1495
|
+
error
|
|
1496
|
+
);
|
|
1406
1497
|
}
|
|
1407
|
-
const usedSchema = parameters?.schema || ProvisionCvmSchema;
|
|
1408
|
-
return usedSchema.parse(transformedData);
|
|
1409
1498
|
}
|
|
1410
|
-
async function
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1499
|
+
async function switchToNetwork(provider, chainId) {
|
|
1500
|
+
try {
|
|
1501
|
+
await provider.request({
|
|
1502
|
+
method: "wallet_switchEthereumChain",
|
|
1503
|
+
params: [{ chainId: `0x${chainId.toString(16)}` }]
|
|
1504
|
+
});
|
|
1505
|
+
} catch (error) {
|
|
1506
|
+
const errorObj = error;
|
|
1507
|
+
if (errorObj.code === 4902) {
|
|
1508
|
+
throw new NetworkError(
|
|
1509
|
+
`Network ${chainId} not found in wallet. Please add it manually.`,
|
|
1510
|
+
"NETWORK_NOT_FOUND",
|
|
1511
|
+
error
|
|
1512
|
+
);
|
|
1513
|
+
}
|
|
1514
|
+
throw new NetworkError(
|
|
1515
|
+
`Failed to switch network: ${errorObj.message || "Unknown error"}`,
|
|
1516
|
+
"NETWORK_SWITCH_FAILED",
|
|
1517
|
+
error
|
|
1518
|
+
);
|
|
1430
1519
|
}
|
|
1431
|
-
const isDefaultSchema = !schema;
|
|
1432
|
-
const usedSchema = schema || ProvisionCvmSchema;
|
|
1433
|
-
const transformResult = usedSchema.safeParse(transformResponse(httpResult.data, isDefaultSchema));
|
|
1434
|
-
return transformResult;
|
|
1435
1520
|
}
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
features: import_zod7.z.array(import_zod7.z.string()).nullable(),
|
|
1462
|
-
created_at: import_zod7.z.string(),
|
|
1463
|
-
encrypted_env_pubkey: import_zod7.z.string().nullable().optional(),
|
|
1464
|
-
app_auth_contract_address: import_zod7.z.string().nullable().optional(),
|
|
1465
|
-
deployer_address: import_zod7.z.string().nullable().optional()
|
|
1466
|
-
}).passthrough();
|
|
1467
|
-
var CommitCvmProvisionRequestSchema = import_zod7.z.object({
|
|
1468
|
-
encrypted_env: import_zod7.z.string().optional().nullable(),
|
|
1469
|
-
app_id: import_zod7.z.string(),
|
|
1470
|
-
compose_hash: import_zod7.z.string().optional(),
|
|
1471
|
-
kms_id: import_zod7.z.string().optional(),
|
|
1472
|
-
contract_address: import_zod7.z.string().optional(),
|
|
1473
|
-
deployer_address: import_zod7.z.string().optional(),
|
|
1474
|
-
env_keys: import_zod7.z.array(import_zod7.z.string()).optional().nullable()
|
|
1475
|
-
}).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;
|
|
1521
|
+
async function addNetwork(provider, config) {
|
|
1522
|
+
try {
|
|
1523
|
+
await provider.request({
|
|
1524
|
+
method: "wallet_addEthereumChain",
|
|
1525
|
+
params: [
|
|
1526
|
+
{
|
|
1527
|
+
chainId: `0x${config.chainId.toString(16)}`,
|
|
1528
|
+
chainName: config.name,
|
|
1529
|
+
rpcUrls: [config.rpcUrl],
|
|
1530
|
+
blockExplorerUrls: config.blockExplorer ? [config.blockExplorer] : void 0,
|
|
1531
|
+
nativeCurrency: {
|
|
1532
|
+
name: "ETH",
|
|
1533
|
+
symbol: "ETH",
|
|
1534
|
+
decimals: 18
|
|
1535
|
+
}
|
|
1536
|
+
}
|
|
1537
|
+
]
|
|
1538
|
+
});
|
|
1539
|
+
} catch (error) {
|
|
1540
|
+
const errorObj = error;
|
|
1541
|
+
throw new NetworkError(
|
|
1542
|
+
`Failed to add network: ${errorObj.message || "Unknown error"}`,
|
|
1543
|
+
"NETWORK_ADD_FAILED",
|
|
1544
|
+
error
|
|
1545
|
+
);
|
|
1481
1546
|
}
|
|
1482
|
-
const schema = parameters?.schema || CommitCvmProvisionSchema;
|
|
1483
|
-
return schema.parse(response);
|
|
1484
1547
|
}
|
|
1485
|
-
async function
|
|
1486
|
-
const
|
|
1487
|
-
if (
|
|
1488
|
-
return
|
|
1489
|
-
}
|
|
1490
|
-
const httpResult = await client.safePost("/cvms", payload);
|
|
1491
|
-
if (!httpResult.success) {
|
|
1492
|
-
return httpResult;
|
|
1548
|
+
async function autoCreateClients(chain, options = {}) {
|
|
1549
|
+
const { privateKey, rpcUrl, preferBrowser = false } = options;
|
|
1550
|
+
if (privateKey) {
|
|
1551
|
+
return createClientsFromPrivateKey(chain, privateKey, rpcUrl);
|
|
1493
1552
|
}
|
|
1494
|
-
if (
|
|
1495
|
-
return
|
|
1553
|
+
if (isBrowser() && (preferBrowser || !privateKey)) {
|
|
1554
|
+
return createClientsFromBrowser(chain, rpcUrl);
|
|
1496
1555
|
}
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1556
|
+
throw new WalletError(
|
|
1557
|
+
"No wallet connection method available. Provide a private key for server-side usage or use in browser environment.",
|
|
1558
|
+
"NO_CONNECTION_METHOD"
|
|
1559
|
+
);
|
|
1500
1560
|
}
|
|
1501
1561
|
|
|
1502
|
-
// src/actions/deploy_app_auth.ts
|
|
1503
|
-
var import_zod8 = require("zod");
|
|
1504
|
-
var import_viem3 = require("viem");
|
|
1505
|
-
var import_accounts2 = require("viem/accounts");
|
|
1562
|
+
// src/actions/blockchains/deploy_app_auth.ts
|
|
1506
1563
|
var kmsAuthAbi = [
|
|
1507
1564
|
{
|
|
1508
1565
|
inputs: [
|
|
@@ -1830,7 +1887,7 @@ async function safeDeployAppAuth(request, parameters) {
|
|
|
1830
1887
|
}
|
|
1831
1888
|
}
|
|
1832
1889
|
|
|
1833
|
-
// src/actions/add_compose_hash.ts
|
|
1890
|
+
// src/actions/blockchains/add_compose_hash.ts
|
|
1834
1891
|
var import_zod9 = require("zod");
|
|
1835
1892
|
var import_viem4 = require("viem");
|
|
1836
1893
|
var import_accounts3 = require("viem/accounts");
|
|
@@ -2091,7 +2148,7 @@ async function safeAddComposeHash(request, parameters) {
|
|
|
2091
2148
|
}
|
|
2092
2149
|
}
|
|
2093
2150
|
|
|
2094
|
-
// src/actions/get_cvm_compose_file.ts
|
|
2151
|
+
// src/actions/cvms/get_cvm_compose_file.ts
|
|
2095
2152
|
var import_zod11 = require("zod");
|
|
2096
2153
|
|
|
2097
2154
|
// src/types/app_compose.ts
|
|
@@ -2109,7 +2166,7 @@ var LooseAppComposeSchema = import_zod10.z.object({
|
|
|
2109
2166
|
pre_launch_script: import_zod10.z.string().optional()
|
|
2110
2167
|
}).passthrough();
|
|
2111
2168
|
|
|
2112
|
-
// src/actions/get_cvm_compose_file.ts
|
|
2169
|
+
// src/actions/cvms/get_cvm_compose_file.ts
|
|
2113
2170
|
var GetCvmComposeFileRequestSchema = import_zod11.z.object({
|
|
2114
2171
|
id: import_zod11.z.string().optional(),
|
|
2115
2172
|
uuid: import_zod11.z.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(),
|
|
@@ -2128,32 +2185,12 @@ var GetCvmComposeFileRequestSchema = import_zod11.z.object({
|
|
|
2128
2185
|
cvmId: data.id || data.uuid || data.app_id || data.instance_id,
|
|
2129
2186
|
_raw: data
|
|
2130
2187
|
}));
|
|
2131
|
-
|
|
2188
|
+
var { action: getCvmComposeFile, safeAction: safeGetCvmComposeFile } = defineAction(LooseAppComposeSchema, async (client, request) => {
|
|
2132
2189
|
const validatedRequest = GetCvmComposeFileRequestSchema.parse(request);
|
|
2133
|
-
|
|
2134
|
-
|
|
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
|
-
}
|
|
2190
|
+
return await client.get(`/cvms/${validatedRequest.cvmId}/compose_file`);
|
|
2191
|
+
});
|
|
2155
2192
|
|
|
2156
|
-
// src/actions/provision_cvm_compose_file_update.ts
|
|
2193
|
+
// src/actions/cvms/provision_cvm_compose_file_update.ts
|
|
2157
2194
|
var import_zod12 = require("zod");
|
|
2158
2195
|
var ProvisionCvmComposeFileUpdateRequestSchema = import_zod12.z.object({
|
|
2159
2196
|
id: import_zod12.z.string().optional(),
|
|
@@ -2183,38 +2220,15 @@ var ProvisionCvmComposeFileUpdateResultSchema = import_zod12.z.object({
|
|
|
2183
2220
|
compose_hash: import_zod12.z.string(),
|
|
2184
2221
|
kms_info: KmsInfoSchema.nullable().optional()
|
|
2185
2222
|
}).passthrough();
|
|
2186
|
-
|
|
2223
|
+
var { action: provisionCvmComposeFileUpdate, safeAction: safeProvisionCvmComposeFileUpdate } = defineAction(ProvisionCvmComposeFileUpdateResultSchema, async (client, request) => {
|
|
2187
2224
|
const validatedRequest = ProvisionCvmComposeFileUpdateRequestSchema.parse(request);
|
|
2188
|
-
|
|
2225
|
+
return await client.post(
|
|
2189
2226
|
`/cvms/${validatedRequest.cvmId}/compose_file/provision`,
|
|
2190
2227
|
validatedRequest.request
|
|
2191
2228
|
);
|
|
2192
|
-
|
|
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
|
-
}
|
|
2229
|
+
});
|
|
2216
2230
|
|
|
2217
|
-
// src/actions/commit_cvm_compose_file_update.ts
|
|
2231
|
+
// src/actions/cvms/commit_cvm_compose_file_update.ts
|
|
2218
2232
|
var import_zod13 = require("zod");
|
|
2219
2233
|
var CommitCvmComposeFileUpdateRequestSchema = import_zod13.z.object({
|
|
2220
2234
|
id: import_zod13.z.string().optional(),
|
|
@@ -2243,40 +2257,19 @@ var CommitCvmComposeFileUpdateRequestSchema = import_zod13.z.object({
|
|
|
2243
2257
|
_raw: data
|
|
2244
2258
|
}));
|
|
2245
2259
|
var CommitCvmComposeFileUpdateSchema = import_zod13.z.any().transform(() => void 0);
|
|
2246
|
-
|
|
2247
|
-
|
|
2248
|
-
|
|
2249
|
-
|
|
2250
|
-
|
|
2251
|
-
|
|
2252
|
-
|
|
2253
|
-
|
|
2254
|
-
|
|
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 };
|
|
2260
|
+
var { action: commitCvmComposeFileUpdate, safeAction: safeCommitCvmComposeFileUpdate } = defineAction(
|
|
2261
|
+
CommitCvmComposeFileUpdateSchema,
|
|
2262
|
+
async (client, request) => {
|
|
2263
|
+
const validatedRequest = CommitCvmComposeFileUpdateRequestSchema.parse(request);
|
|
2264
|
+
return await client.patch(`/cvms/${validatedRequest.cvmId}/compose_file`, {
|
|
2265
|
+
compose_hash: validatedRequest.compose_hash,
|
|
2266
|
+
encrypted_env: validatedRequest.encrypted_env,
|
|
2267
|
+
env_keys: validatedRequest.env_keys
|
|
2268
|
+
});
|
|
2274
2269
|
}
|
|
2275
|
-
|
|
2276
|
-
return schema.safeParse(httpResult.data);
|
|
2277
|
-
}
|
|
2270
|
+
);
|
|
2278
2271
|
|
|
2279
|
-
// src/actions/get_app_env_encrypt_pubkey.ts
|
|
2272
|
+
// src/actions/kms/get_app_env_encrypt_pubkey.ts
|
|
2280
2273
|
var import_zod14 = require("zod");
|
|
2281
2274
|
var GetAppEnvEncryptPubKeyRequestSchema = import_zod14.z.object({
|
|
2282
2275
|
kms: import_zod14.z.string().min(1, "KMS ID or slug is required"),
|
|
@@ -2289,41 +2282,12 @@ var GetAppEnvEncryptPubKeySchema = import_zod14.z.object({
|
|
|
2289
2282
|
public_key: import_zod14.z.string(),
|
|
2290
2283
|
signature: import_zod14.z.string()
|
|
2291
2284
|
}).strict();
|
|
2292
|
-
var getAppEnvEncryptPubKey = async (client, payload
|
|
2285
|
+
var { action: getAppEnvEncryptPubKey, safeAction: safeGetAppEnvEncryptPubKey } = defineAction(GetAppEnvEncryptPubKeySchema, async (client, payload) => {
|
|
2293
2286
|
const validatedRequest = GetAppEnvEncryptPubKeyRequestSchema.parse(payload);
|
|
2294
|
-
|
|
2295
|
-
|
|
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
|
-
};
|
|
2287
|
+
return await client.get(`/kms/${validatedRequest.kms}/pubkey/${validatedRequest.app_id}`);
|
|
2288
|
+
});
|
|
2325
2289
|
|
|
2326
|
-
// src/actions/get_cvm_info.ts
|
|
2290
|
+
// src/actions/cvms/get_cvm_info.ts
|
|
2327
2291
|
var import_zod15 = require("zod");
|
|
2328
2292
|
var GetCvmInfoRequestSchema = import_zod15.z.object({
|
|
2329
2293
|
id: import_zod15.z.string().optional(),
|
|
@@ -2343,41 +2307,12 @@ var GetCvmInfoRequestSchema = import_zod15.z.object({
|
|
|
2343
2307
|
cvmId: data.id || data.uuid || data.app_id || data.instance_id,
|
|
2344
2308
|
_raw: data
|
|
2345
2309
|
}));
|
|
2346
|
-
|
|
2310
|
+
var { action: getCvmInfo, safeAction: safeGetCvmInfo } = defineAction(CvmLegacyDetailSchema, async (client, request) => {
|
|
2347
2311
|
const validatedRequest = GetCvmInfoRequestSchema.parse(request);
|
|
2348
|
-
|
|
2349
|
-
|
|
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
|
-
}
|
|
2312
|
+
return await client.get(`/cvms/${validatedRequest.cvmId}`);
|
|
2313
|
+
});
|
|
2379
2314
|
|
|
2380
|
-
// src/actions/get_cvm_list.ts
|
|
2315
|
+
// src/actions/cvms/get_cvm_list.ts
|
|
2381
2316
|
var import_zod16 = require("zod");
|
|
2382
2317
|
var GetCvmListRequestSchema = import_zod16.z.object({
|
|
2383
2318
|
page: import_zod16.z.number().int().min(1).optional(),
|
|
@@ -2391,77 +2326,22 @@ var GetCvmListSchema = import_zod16.z.object({
|
|
|
2391
2326
|
page_size: import_zod16.z.number(),
|
|
2392
2327
|
pages: import_zod16.z.number()
|
|
2393
2328
|
}).strict();
|
|
2394
|
-
|
|
2329
|
+
var { action: getCvmList, safeAction: safeGetCvmList } = defineAction(GetCvmListSchema, async (client, request) => {
|
|
2395
2330
|
const validatedRequest = GetCvmListRequestSchema.parse(request ?? {});
|
|
2396
|
-
|
|
2397
|
-
|
|
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
|
-
}
|
|
2331
|
+
return await client.get("/cvms/paginated", { params: validatedRequest });
|
|
2332
|
+
});
|
|
2427
2333
|
|
|
2428
|
-
// src/actions/get_kms_info.ts
|
|
2334
|
+
// src/actions/kms/get_kms_info.ts
|
|
2429
2335
|
var import_zod17 = require("zod");
|
|
2430
2336
|
var GetKmsInfoRequestSchema = import_zod17.z.object({
|
|
2431
2337
|
kms_id: import_zod17.z.string().min(1, "KMS ID is required")
|
|
2432
2338
|
});
|
|
2433
|
-
|
|
2339
|
+
var { action: getKmsInfo, safeAction: safeGetKmsInfo } = defineAction(KmsInfoSchema, async (client, request) => {
|
|
2434
2340
|
const validatedRequest = GetKmsInfoRequestSchema.parse(request);
|
|
2435
|
-
|
|
2436
|
-
|
|
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
|
-
}
|
|
2341
|
+
return await client.get(`/kms/${validatedRequest.kms_id}`);
|
|
2342
|
+
});
|
|
2463
2343
|
|
|
2464
|
-
// src/actions/get_kms_list.ts
|
|
2344
|
+
// src/actions/kms/get_kms_list.ts
|
|
2465
2345
|
var import_zod18 = require("zod");
|
|
2466
2346
|
var GetKmsListRequestSchema = import_zod18.z.object({
|
|
2467
2347
|
page: import_zod18.z.number().int().min(1).optional(),
|
|
@@ -2475,39 +2355,10 @@ var GetKmsListSchema = import_zod18.z.object({
|
|
|
2475
2355
|
page_size: import_zod18.z.number(),
|
|
2476
2356
|
pages: import_zod18.z.number()
|
|
2477
2357
|
}).strict();
|
|
2478
|
-
|
|
2358
|
+
var { action: getKmsList, safeAction: safeGetKmsList } = defineAction(GetKmsListSchema, async (client, request) => {
|
|
2479
2359
|
const validatedRequest = GetKmsListRequestSchema.parse(request ?? {});
|
|
2480
|
-
|
|
2481
|
-
|
|
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
|
-
}
|
|
2360
|
+
return await client.get("/kms", { params: validatedRequest });
|
|
2361
|
+
});
|
|
2511
2362
|
|
|
2512
2363
|
// src/actions/workspaces/list_workspaces.ts
|
|
2513
2364
|
var import_zod19 = require("zod");
|
|
@@ -2528,64 +2379,18 @@ var ListWorkspacesSchema = import_zod19.z.object({
|
|
|
2528
2379
|
data: import_zod19.z.array(WorkspaceResponseSchema),
|
|
2529
2380
|
pagination: PaginationMetadataSchema
|
|
2530
2381
|
}).passthrough();
|
|
2531
|
-
|
|
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
|
-
}
|
|
2382
|
+
var { action: listWorkspaces, safeAction: safeListWorkspaces } = defineAction(ListWorkspacesSchema, async (client, request) => {
|
|
2549
2383
|
const queryParams = new URLSearchParams();
|
|
2550
|
-
if (
|
|
2551
|
-
if (
|
|
2384
|
+
if (request?.cursor) queryParams.append("cursor", request.cursor);
|
|
2385
|
+
if (request?.limit) queryParams.append("limit", request.limit.toString());
|
|
2552
2386
|
const url = queryParams.toString() ? `/workspaces?${queryParams.toString()}` : "/workspaces";
|
|
2553
|
-
|
|
2554
|
-
|
|
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
|
-
}
|
|
2387
|
+
return await client.get(url);
|
|
2388
|
+
});
|
|
2563
2389
|
|
|
2564
2390
|
// src/actions/workspaces/get_workspace.ts
|
|
2565
|
-
|
|
2566
|
-
|
|
2567
|
-
|
|
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
|
-
}
|
|
2391
|
+
var { action: getWorkspace, safeAction: safeGetWorkspace } = defineAction(WorkspaceResponseSchema, async (client, teamSlug) => {
|
|
2392
|
+
return await client.get(`/workspaces/${teamSlug}`);
|
|
2393
|
+
});
|
|
2589
2394
|
|
|
2590
2395
|
// src/actions/list-instance-types.ts
|
|
2591
2396
|
var import_zod20 = require("zod");
|
|
@@ -2611,45 +2416,13 @@ var PaginatedInstanceTypesSchema = import_zod20.z.object({
|
|
|
2611
2416
|
page_size: import_zod20.z.number(),
|
|
2612
2417
|
pages: import_zod20.z.number()
|
|
2613
2418
|
}).strict();
|
|
2614
|
-
|
|
2419
|
+
var { action: listInstanceTypes, safeAction: safeListInstanceTypes } = defineAction(PaginatedInstanceTypesSchema, async (client, request) => {
|
|
2615
2420
|
const validatedRequest = ListInstanceTypesRequestSchema.parse(request ?? {});
|
|
2616
|
-
validateActionParameters(parameters);
|
|
2617
2421
|
const queryParams = new URLSearchParams();
|
|
2618
2422
|
queryParams.append("page", validatedRequest.page.toString());
|
|
2619
2423
|
queryParams.append("page_size", validatedRequest.page_size.toString());
|
|
2620
|
-
|
|
2621
|
-
|
|
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
|
-
}
|
|
2424
|
+
return await client.get(`/api/instance-types?${queryParams.toString()}`);
|
|
2425
|
+
});
|
|
2653
2426
|
|
|
2654
2427
|
// src/parse_dotenv.ts
|
|
2655
2428
|
var LINE = /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/gm;
|
|
@@ -2702,11 +2475,18 @@ var import_verify_env_encrypt_public_key = require("@phala/dstack-sdk/verify-env
|
|
|
2702
2475
|
CvmNodeSchema,
|
|
2703
2476
|
DeployAppAuthRequestSchema,
|
|
2704
2477
|
DeployAppAuthSchema,
|
|
2478
|
+
GetAppEnvEncryptPubKeyRequestSchema,
|
|
2705
2479
|
GetAppEnvEncryptPubKeySchema,
|
|
2480
|
+
GetCvmComposeFileRequestSchema,
|
|
2481
|
+
GetCvmInfoRequestSchema,
|
|
2482
|
+
GetCvmListRequestSchema,
|
|
2706
2483
|
GetCvmListSchema,
|
|
2484
|
+
GetKmsInfoRequestSchema,
|
|
2485
|
+
GetKmsListRequestSchema,
|
|
2707
2486
|
GetKmsListSchema,
|
|
2708
2487
|
InstanceTypeSchema,
|
|
2709
2488
|
KmsInfoSchema,
|
|
2489
|
+
ListInstanceTypesRequestSchema,
|
|
2710
2490
|
ListWorkspacesSchema,
|
|
2711
2491
|
ManagedUserSchema,
|
|
2712
2492
|
NetworkError,
|
|
@@ -2735,6 +2515,8 @@ var import_verify_env_encrypt_public_key = require("@phala/dstack-sdk/verify-env
|
|
|
2735
2515
|
createClientsFromPrivateKey,
|
|
2736
2516
|
createNetworkClients,
|
|
2737
2517
|
createTransactionTracker,
|
|
2518
|
+
defineAction,
|
|
2519
|
+
defineSimpleAction,
|
|
2738
2520
|
deployAppAuth,
|
|
2739
2521
|
encryptEnvVars,
|
|
2740
2522
|
estimateTransactionGas,
|