liara-mcp 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +22 -0
- package/README.md +353 -0
- package/dist/api/client.d.ts +49 -0
- package/dist/api/client.d.ts.map +1 -0
- package/dist/api/client.js +145 -0
- package/dist/api/client.js.map +1 -0
- package/dist/api/types.d.ts +256 -0
- package/dist/api/types.d.ts.map +1 -0
- package/dist/api/types.js +25 -0
- package/dist/api/types.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3102 -0
- package/dist/index.js.map +1 -0
- package/dist/services/apps.d.ts +39 -0
- package/dist/services/apps.d.ts.map +1 -0
- package/dist/services/apps.js +83 -0
- package/dist/services/apps.js.map +1 -0
- package/dist/services/databases.d.ts +74 -0
- package/dist/services/databases.d.ts.map +1 -0
- package/dist/services/databases.js +120 -0
- package/dist/services/databases.js.map +1 -0
- package/dist/services/deployment.d.ts +57 -0
- package/dist/services/deployment.d.ts.map +1 -0
- package/dist/services/deployment.js +70 -0
- package/dist/services/deployment.js.map +1 -0
- package/dist/services/disks.d.ts +35 -0
- package/dist/services/disks.d.ts.map +1 -0
- package/dist/services/disks.js +88 -0
- package/dist/services/disks.js.map +1 -0
- package/dist/services/dns.d.ts +43 -0
- package/dist/services/dns.d.ts.map +1 -0
- package/dist/services/dns.js +80 -0
- package/dist/services/dns.js.map +1 -0
- package/dist/services/domains.d.ts +23 -0
- package/dist/services/domains.d.ts.map +1 -0
- package/dist/services/domains.js +42 -0
- package/dist/services/domains.js.map +1 -0
- package/dist/services/environment.d.ts +31 -0
- package/dist/services/environment.d.ts.map +1 -0
- package/dist/services/environment.js +59 -0
- package/dist/services/environment.js.map +1 -0
- package/dist/services/iaas.d.ts +80 -0
- package/dist/services/iaas.d.ts.map +1 -0
- package/dist/services/iaas.js +161 -0
- package/dist/services/iaas.js.map +1 -0
- package/dist/services/mail.d.ts +38 -0
- package/dist/services/mail.d.ts.map +1 -0
- package/dist/services/mail.js +65 -0
- package/dist/services/mail.js.map +1 -0
- package/dist/services/network.d.ts +19 -0
- package/dist/services/network.d.ts.map +1 -0
- package/dist/services/network.js +35 -0
- package/dist/services/network.js.map +1 -0
- package/dist/services/observability.d.ts +24 -0
- package/dist/services/observability.d.ts.map +1 -0
- package/dist/services/observability.js +41 -0
- package/dist/services/observability.js.map +1 -0
- package/dist/services/plans.d.ts +12 -0
- package/dist/services/plans.d.ts.map +1 -0
- package/dist/services/plans.js +17 -0
- package/dist/services/plans.js.map +1 -0
- package/dist/services/settings.d.ts +28 -0
- package/dist/services/settings.d.ts.map +1 -0
- package/dist/services/settings.js +37 -0
- package/dist/services/settings.js.map +1 -0
- package/dist/services/storage.d.ts +60 -0
- package/dist/services/storage.d.ts.map +1 -0
- package/dist/services/storage.js +96 -0
- package/dist/services/storage.js.map +1 -0
- package/dist/services/user.d.ts +32 -0
- package/dist/services/user.d.ts.map +1 -0
- package/dist/services/user.js +16 -0
- package/dist/services/user.js.map +1 -0
- package/dist/utils/errors.d.ts +30 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +63 -0
- package/dist/utils/errors.js.map +1 -0
- package/package.json +67 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { LiaraClient } from '../api/client.js';
|
|
2
|
+
import { Disk, CreateDiskRequest, FtpAccess, PaginationOptions } from '../api/types.js';
|
|
3
|
+
/**
|
|
4
|
+
* List disks for a project
|
|
5
|
+
*/
|
|
6
|
+
export declare function listDisks(client: LiaraClient, appName: string, pagination?: PaginationOptions): Promise<Disk[]>;
|
|
7
|
+
/**
|
|
8
|
+
* Get details of a specific disk
|
|
9
|
+
*/
|
|
10
|
+
export declare function getDisk(client: LiaraClient, appName: string, diskName: string): Promise<Disk>;
|
|
11
|
+
/**
|
|
12
|
+
* Create a new disk for a project
|
|
13
|
+
*/
|
|
14
|
+
export declare function createDisk(client: LiaraClient, appName: string, request: CreateDiskRequest): Promise<Disk>;
|
|
15
|
+
/**
|
|
16
|
+
* Delete a disk
|
|
17
|
+
*/
|
|
18
|
+
export declare function deleteDisk(client: LiaraClient, appName: string, diskName: string): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Create FTP access for a disk
|
|
21
|
+
*/
|
|
22
|
+
export declare function createFtpAccess(client: LiaraClient, appName: string, diskName: string): Promise<FtpAccess>;
|
|
23
|
+
/**
|
|
24
|
+
* List FTP accesses for a disk
|
|
25
|
+
*/
|
|
26
|
+
export declare function listFtpAccesses(client: LiaraClient, appName: string, diskName: string, pagination?: PaginationOptions): Promise<FtpAccess[]>;
|
|
27
|
+
/**
|
|
28
|
+
* Delete/revoke FTP access for a disk
|
|
29
|
+
*/
|
|
30
|
+
export declare function deleteFtpAccess(client: LiaraClient, appName: string, diskName: string, ftpId: string): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* Resize a disk
|
|
33
|
+
*/
|
|
34
|
+
export declare function resizeDisk(client: LiaraClient, appName: string, diskName: string, size: number): Promise<Disk>;
|
|
35
|
+
//# sourceMappingURL=disks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disks.d.ts","sourceRoot":"","sources":["../../src/services/disks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACH,IAAI,EACJ,iBAAiB,EACjB,SAAS,EACT,iBAAiB,EAEpB,MAAM,iBAAiB,CAAC;AAGzB;;GAEG;AACH,wBAAsB,SAAS,CAC3B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,iBAAiB,GAC/B,OAAO,CAAC,IAAI,EAAE,CAAC,CAgBjB;AAED;;GAEG;AACH,wBAAsB,OAAO,CACzB,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC5B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,iBAAiB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAcf;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC5B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;GAEG;AACH,wBAAsB,eAAe,CACjC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC,SAAS,CAAC,CAOpB;AAED;;GAEG;AACH,wBAAsB,eAAe,CACjC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,iBAAiB,GAC/B,OAAO,CAAC,SAAS,EAAE,CAAC,CAStB;AAED;;GAEG;AACH,wBAAsB,eAAe,CACjC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC5B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAaf"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { paginationToParams, } from '../api/types.js';
|
|
2
|
+
import { validateAppName, validateRequired } from '../utils/errors.js';
|
|
3
|
+
/**
|
|
4
|
+
* List disks for a project
|
|
5
|
+
*/
|
|
6
|
+
export async function listDisks(client, appName, pagination) {
|
|
7
|
+
validateAppName(appName);
|
|
8
|
+
// Disks are included in project details, but we can still apply pagination client-side if needed
|
|
9
|
+
const project = await client.get(`/v1/projects/${appName}`);
|
|
10
|
+
const disks = project.disks || [];
|
|
11
|
+
// Apply client-side pagination if needed (since disks come from project details)
|
|
12
|
+
if (pagination) {
|
|
13
|
+
const page = pagination.page || 1;
|
|
14
|
+
const perPage = pagination.perPage || pagination.limit || 100;
|
|
15
|
+
const start = (page - 1) * perPage;
|
|
16
|
+
const end = start + perPage;
|
|
17
|
+
return disks.slice(start, end);
|
|
18
|
+
}
|
|
19
|
+
return disks;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Get details of a specific disk
|
|
23
|
+
*/
|
|
24
|
+
export async function getDisk(client, appName, diskName) {
|
|
25
|
+
validateAppName(appName);
|
|
26
|
+
validateRequired(diskName, 'Disk name');
|
|
27
|
+
return await client.get(`/v1/projects/${appName}/disks/${diskName}`);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Create a new disk for a project
|
|
31
|
+
*/
|
|
32
|
+
export async function createDisk(client, appName, request) {
|
|
33
|
+
validateAppName(appName);
|
|
34
|
+
validateRequired(request.name, 'Disk name');
|
|
35
|
+
validateRequired(request.size, 'Disk size');
|
|
36
|
+
validateRequired(request.mountPath, 'Mount path');
|
|
37
|
+
if (request.size <= 0) {
|
|
38
|
+
throw new Error('Disk size must be greater than 0');
|
|
39
|
+
}
|
|
40
|
+
return await client.post(`/v1/projects/${appName}/disks`, request);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Delete a disk
|
|
44
|
+
*/
|
|
45
|
+
export async function deleteDisk(client, appName, diskName) {
|
|
46
|
+
validateAppName(appName);
|
|
47
|
+
validateRequired(diskName, 'Disk name');
|
|
48
|
+
await client.delete(`/v1/projects/${appName}/disks/${diskName}`);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Create FTP access for a disk
|
|
52
|
+
*/
|
|
53
|
+
export async function createFtpAccess(client, appName, diskName) {
|
|
54
|
+
validateAppName(appName);
|
|
55
|
+
validateRequired(diskName, 'Disk name');
|
|
56
|
+
return await client.post(`/v1/projects/${appName}/disks/${diskName}/ftp`);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* List FTP accesses for a disk
|
|
60
|
+
*/
|
|
61
|
+
export async function listFtpAccesses(client, appName, diskName, pagination) {
|
|
62
|
+
validateAppName(appName);
|
|
63
|
+
validateRequired(diskName, 'Disk name');
|
|
64
|
+
const params = paginationToParams(pagination);
|
|
65
|
+
return await client.get(`/v1/projects/${appName}/disks/${diskName}/ftp`, params);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Delete/revoke FTP access for a disk
|
|
69
|
+
*/
|
|
70
|
+
export async function deleteFtpAccess(client, appName, diskName, ftpId) {
|
|
71
|
+
validateAppName(appName);
|
|
72
|
+
validateRequired(diskName, 'Disk name');
|
|
73
|
+
validateRequired(ftpId, 'FTP access ID');
|
|
74
|
+
await client.delete(`/v1/projects/${appName}/disks/${diskName}/ftp/${ftpId}`);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Resize a disk
|
|
78
|
+
*/
|
|
79
|
+
export async function resizeDisk(client, appName, diskName, size) {
|
|
80
|
+
validateAppName(appName);
|
|
81
|
+
validateRequired(diskName, 'Disk name');
|
|
82
|
+
validateRequired(size, 'Disk size');
|
|
83
|
+
if (size <= 0) {
|
|
84
|
+
throw new Error('Disk size must be greater than 0');
|
|
85
|
+
}
|
|
86
|
+
return await client.post(`/v1/projects/${appName}/disks/${diskName}/resize`, { size });
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=disks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disks.js","sourceRoot":"","sources":["../../src/services/disks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { LiaraClient } from '../api/client.js';
|
|
2
|
+
import { Zone, DnsRecord, CreateDnsRecordRequest, DomainCheck, PaginationOptions } from '../api/types.js';
|
|
3
|
+
/**
|
|
4
|
+
* List all DNS zones
|
|
5
|
+
*/
|
|
6
|
+
export declare function listZones(client: LiaraClient, pagination?: PaginationOptions): Promise<Zone[]>;
|
|
7
|
+
/**
|
|
8
|
+
* Get details of a specific DNS zone
|
|
9
|
+
*/
|
|
10
|
+
export declare function getZone(client: LiaraClient, zoneId: string): Promise<Zone>;
|
|
11
|
+
/**
|
|
12
|
+
* Create a new DNS zone
|
|
13
|
+
*/
|
|
14
|
+
export declare function createZone(client: LiaraClient, name: string): Promise<Zone>;
|
|
15
|
+
/**
|
|
16
|
+
* Delete a DNS zone
|
|
17
|
+
*/
|
|
18
|
+
export declare function deleteZone(client: LiaraClient, zoneId: string): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Check DNS zone status
|
|
21
|
+
*/
|
|
22
|
+
export declare function checkZone(client: LiaraClient, zoneId: string): Promise<DomainCheck>;
|
|
23
|
+
/**
|
|
24
|
+
* List DNS records for a zone
|
|
25
|
+
*/
|
|
26
|
+
export declare function listRecords(client: LiaraClient, zoneId: string, pagination?: PaginationOptions): Promise<DnsRecord[]>;
|
|
27
|
+
/**
|
|
28
|
+
* Get a specific DNS record
|
|
29
|
+
*/
|
|
30
|
+
export declare function getRecord(client: LiaraClient, zoneId: string, recordId: string): Promise<DnsRecord>;
|
|
31
|
+
/**
|
|
32
|
+
* Create a DNS record
|
|
33
|
+
*/
|
|
34
|
+
export declare function createRecord(client: LiaraClient, zoneId: string, request: CreateDnsRecordRequest): Promise<DnsRecord>;
|
|
35
|
+
/**
|
|
36
|
+
* Update a DNS record
|
|
37
|
+
*/
|
|
38
|
+
export declare function updateRecord(client: LiaraClient, zoneId: string, recordId: string, request: Partial<CreateDnsRecordRequest>): Promise<DnsRecord>;
|
|
39
|
+
/**
|
|
40
|
+
* Delete a DNS record
|
|
41
|
+
*/
|
|
42
|
+
export declare function deleteRecord(client: LiaraClient, zoneId: string, recordId: string): Promise<void>;
|
|
43
|
+
//# sourceMappingURL=dns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dns.d.ts","sourceRoot":"","sources":["../../src/services/dns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACH,IAAI,EACJ,SAAS,EACT,sBAAsB,EACtB,WAAW,EACX,iBAAiB,EAEpB,MAAM,iBAAiB,CAAC;AAGzB;;GAEG;AACH,wBAAsB,SAAS,CAC3B,MAAM,EAAE,WAAW,EACnB,UAAU,CAAC,EAAE,iBAAiB,GAC/B,OAAO,CAAC,IAAI,EAAE,CAAC,CAGjB;AAED;;GAEG;AACH,wBAAsB,OAAO,CACzB,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAGf;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC5B,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAGf;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC5B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAGf;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC3B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,WAAW,CAAC,CAGtB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC7B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,iBAAiB,GAC/B,OAAO,CAAC,SAAS,EAAE,CAAC,CAItB;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC3B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC,SAAS,CAAC,CAIpB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAC9B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,sBAAsB,GAChC,OAAO,CAAC,SAAS,CAAC,CAUpB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAC9B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,CAAC,sBAAsB,CAAC,GACzC,OAAO,CAAC,SAAS,CAAC,CAQpB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAC9B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAIf"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { paginationToParams, } from '../api/types.js';
|
|
2
|
+
import { validateRequired } from '../utils/errors.js';
|
|
3
|
+
/**
|
|
4
|
+
* List all DNS zones
|
|
5
|
+
*/
|
|
6
|
+
export async function listZones(client, pagination) {
|
|
7
|
+
const params = paginationToParams(pagination);
|
|
8
|
+
return await client.get('/v1/zones', params);
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Get details of a specific DNS zone
|
|
12
|
+
*/
|
|
13
|
+
export async function getZone(client, zoneId) {
|
|
14
|
+
validateRequired(zoneId, 'Zone ID');
|
|
15
|
+
return await client.get(`/v1/zones/${zoneId}`);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Create a new DNS zone
|
|
19
|
+
*/
|
|
20
|
+
export async function createZone(client, name) {
|
|
21
|
+
validateRequired(name, 'Zone name');
|
|
22
|
+
return await client.post('/v1/zones', { name });
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Delete a DNS zone
|
|
26
|
+
*/
|
|
27
|
+
export async function deleteZone(client, zoneId) {
|
|
28
|
+
validateRequired(zoneId, 'Zone ID');
|
|
29
|
+
await client.delete(`/v1/zones/${zoneId}`);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Check DNS zone status
|
|
33
|
+
*/
|
|
34
|
+
export async function checkZone(client, zoneId) {
|
|
35
|
+
validateRequired(zoneId, 'Zone ID');
|
|
36
|
+
return await client.get(`/v1/zones/${zoneId}/check`);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* List DNS records for a zone
|
|
40
|
+
*/
|
|
41
|
+
export async function listRecords(client, zoneId, pagination) {
|
|
42
|
+
validateRequired(zoneId, 'Zone ID');
|
|
43
|
+
const params = paginationToParams(pagination);
|
|
44
|
+
return await client.get(`/v1/zones/${zoneId}/records`, params);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Get a specific DNS record
|
|
48
|
+
*/
|
|
49
|
+
export async function getRecord(client, zoneId, recordId) {
|
|
50
|
+
validateRequired(zoneId, 'Zone ID');
|
|
51
|
+
validateRequired(recordId, 'Record ID');
|
|
52
|
+
return await client.get(`/v1/zones/${zoneId}/records/${recordId}`);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Create a DNS record
|
|
56
|
+
*/
|
|
57
|
+
export async function createRecord(client, zoneId, request) {
|
|
58
|
+
validateRequired(zoneId, 'Zone ID');
|
|
59
|
+
validateRequired(request.type, 'Record type');
|
|
60
|
+
validateRequired(request.name, 'Record name');
|
|
61
|
+
validateRequired(request.value, 'Record value');
|
|
62
|
+
return await client.post(`/v1/zones/${zoneId}/records`, request);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Update a DNS record
|
|
66
|
+
*/
|
|
67
|
+
export async function updateRecord(client, zoneId, recordId, request) {
|
|
68
|
+
validateRequired(zoneId, 'Zone ID');
|
|
69
|
+
validateRequired(recordId, 'Record ID');
|
|
70
|
+
return await client.put(`/v1/zones/${zoneId}/records/${recordId}`, request);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Delete a DNS record
|
|
74
|
+
*/
|
|
75
|
+
export async function deleteRecord(client, zoneId, recordId) {
|
|
76
|
+
validateRequired(zoneId, 'Zone ID');
|
|
77
|
+
validateRequired(recordId, 'Record ID');
|
|
78
|
+
await client.delete(`/v1/zones/${zoneId}/records/${recordId}`);
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=dns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dns.js","sourceRoot":"","sources":["../../src/services/dns.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { LiaraClient } from '../api/client.js';
|
|
2
|
+
import { Domain, DomainCheck, PaginationOptions } from '../api/types.js';
|
|
3
|
+
/**
|
|
4
|
+
* List all domains
|
|
5
|
+
*/
|
|
6
|
+
export declare function listDomains(client: LiaraClient, pagination?: PaginationOptions): Promise<Domain[]>;
|
|
7
|
+
/**
|
|
8
|
+
* Get details of a specific domain
|
|
9
|
+
*/
|
|
10
|
+
export declare function getDomain(client: LiaraClient, domainId: string): Promise<Domain>;
|
|
11
|
+
/**
|
|
12
|
+
* Add a domain to an app
|
|
13
|
+
*/
|
|
14
|
+
export declare function addDomain(client: LiaraClient, appName: string, domain: string): Promise<Domain>;
|
|
15
|
+
/**
|
|
16
|
+
* Remove a domain from an app
|
|
17
|
+
*/
|
|
18
|
+
export declare function removeDomain(client: LiaraClient, domainId: string): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Check domain status
|
|
21
|
+
*/
|
|
22
|
+
export declare function checkDomain(client: LiaraClient, domainId: string): Promise<DomainCheck>;
|
|
23
|
+
//# sourceMappingURL=domains.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domains.d.ts","sourceRoot":"","sources":["../../src/services/domains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACH,MAAM,EACN,WAAW,EACX,iBAAiB,EAEpB,MAAM,iBAAiB,CAAC;AAGzB;;GAEG;AACH,wBAAsB,WAAW,CAC7B,MAAM,EAAE,WAAW,EACnB,UAAU,CAAC,EAAE,iBAAiB,GAC/B,OAAO,CAAC,MAAM,EAAE,CAAC,CAGnB;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC3B,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC3B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAQjB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAC9B,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAGf;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC7B,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC,WAAW,CAAC,CAGtB"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { paginationToParams, } from '../api/types.js';
|
|
2
|
+
import { validateRequired } from '../utils/errors.js';
|
|
3
|
+
/**
|
|
4
|
+
* List all domains
|
|
5
|
+
*/
|
|
6
|
+
export async function listDomains(client, pagination) {
|
|
7
|
+
const params = paginationToParams(pagination);
|
|
8
|
+
return await client.get('/v1/domains', params);
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Get details of a specific domain
|
|
12
|
+
*/
|
|
13
|
+
export async function getDomain(client, domainId) {
|
|
14
|
+
validateRequired(domainId, 'Domain ID');
|
|
15
|
+
return await client.get(`/v1/domains/${domainId}`);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Add a domain to an app
|
|
19
|
+
*/
|
|
20
|
+
export async function addDomain(client, appName, domain) {
|
|
21
|
+
validateRequired(appName, 'App name');
|
|
22
|
+
validateRequired(domain, 'Domain');
|
|
23
|
+
return await client.post('/v1/domains', {
|
|
24
|
+
project: appName,
|
|
25
|
+
domain,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Remove a domain from an app
|
|
30
|
+
*/
|
|
31
|
+
export async function removeDomain(client, domainId) {
|
|
32
|
+
validateRequired(domainId, 'Domain ID');
|
|
33
|
+
await client.delete(`/v1/domains/${domainId}`);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Check domain status
|
|
37
|
+
*/
|
|
38
|
+
export async function checkDomain(client, domainId) {
|
|
39
|
+
validateRequired(domainId, 'Domain ID');
|
|
40
|
+
return await client.get(`/v1/domains/${domainId}/check`);
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=domains.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domains.js","sourceRoot":"","sources":["../../src/services/domains.ts"],"names":[],"mappings":"AACA,OAAO,EAIH,kBAAkB,GACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC7B,MAAmB,EACnB,UAA8B;IAE9B,MAAM,MAAM,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC9C,OAAO,MAAM,MAAM,CAAC,GAAG,CAAW,aAAa,EAAE,MAAM,CAAC,CAAC;AAC7D,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC3B,MAAmB,EACnB,QAAgB;IAEhB,gBAAgB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACxC,OAAO,MAAM,MAAM,CAAC,GAAG,CAAS,eAAe,QAAQ,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC3B,MAAmB,EACnB,OAAe,EACf,MAAc;IAEd,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACtC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEnC,OAAO,MAAM,MAAM,CAAC,IAAI,CAAS,aAAa,EAAE;QAC5C,OAAO,EAAE,OAAO;QAChB,MAAM;KACT,CAAC,CAAC;AACP,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAC9B,MAAmB,EACnB,QAAgB;IAEhB,gBAAgB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACxC,MAAM,MAAM,CAAC,MAAM,CAAC,eAAe,QAAQ,EAAE,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC7B,MAAmB,EACnB,QAAgB;IAEhB,gBAAgB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACxC,OAAO,MAAM,MAAM,CAAC,GAAG,CAAc,eAAe,QAAQ,QAAQ,CAAC,CAAC;AAC1E,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { LiaraClient } from '../api/client.js';
|
|
2
|
+
import { EnvironmentVariable } from '../api/types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Update environment variables for an app
|
|
5
|
+
*/
|
|
6
|
+
export declare function updateEnvVars(client: LiaraClient, appName: string, variables: EnvironmentVariable[]): Promise<{
|
|
7
|
+
message: string;
|
|
8
|
+
}>;
|
|
9
|
+
/**
|
|
10
|
+
* Helper to set a single environment variable
|
|
11
|
+
*/
|
|
12
|
+
export declare function setEnvVar(client: LiaraClient, appName: string, key: string, value: string): Promise<{
|
|
13
|
+
message: string;
|
|
14
|
+
}>;
|
|
15
|
+
/**
|
|
16
|
+
* Get all environment variables for an app
|
|
17
|
+
*/
|
|
18
|
+
export declare function getEnvVars(client: LiaraClient, appName: string): Promise<EnvironmentVariable[]>;
|
|
19
|
+
/**
|
|
20
|
+
* Delete/unset environment variables
|
|
21
|
+
*/
|
|
22
|
+
export declare function deleteEnvVars(client: LiaraClient, appName: string, keys: string[]): Promise<{
|
|
23
|
+
message: string;
|
|
24
|
+
}>;
|
|
25
|
+
/**
|
|
26
|
+
* Delete/unset a single environment variable
|
|
27
|
+
*/
|
|
28
|
+
export declare function deleteEnvVar(client: LiaraClient, appName: string, key: string): Promise<{
|
|
29
|
+
message: string;
|
|
30
|
+
}>;
|
|
31
|
+
//# sourceMappingURL=environment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/services/environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACH,mBAAmB,EAEtB,MAAM,iBAAiB,CAAC;AAGzB;;GAEG;AACH,wBAAsB,aAAa,CAC/B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,mBAAmB,EAAE,GACjC,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAgB9B;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC3B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAE9B;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC5B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,GAChB,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAIhC;AAED;;GAEG;AACH,wBAAsB,aAAa,CAC/B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,GACf,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAqB9B;AAED;;GAEG;AACH,wBAAsB,YAAY,CAC9B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,GACZ,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAE9B"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { validateAppName, validateEnvKey, validateRequired } from '../utils/errors.js';
|
|
2
|
+
/**
|
|
3
|
+
* Update environment variables for an app
|
|
4
|
+
*/
|
|
5
|
+
export async function updateEnvVars(client, appName, variables) {
|
|
6
|
+
validateAppName(appName);
|
|
7
|
+
validateRequired(variables, 'Variables');
|
|
8
|
+
// Validate each environment variable
|
|
9
|
+
for (const { key, value } of variables) {
|
|
10
|
+
validateEnvKey(key);
|
|
11
|
+
validateRequired(value, `Value for ${key}`);
|
|
12
|
+
}
|
|
13
|
+
const request = {
|
|
14
|
+
project: appName,
|
|
15
|
+
variables,
|
|
16
|
+
};
|
|
17
|
+
return await client.post('/v1/projects/update-envs', request);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Helper to set a single environment variable
|
|
21
|
+
*/
|
|
22
|
+
export async function setEnvVar(client, appName, key, value) {
|
|
23
|
+
return await updateEnvVars(client, appName, [{ key, value }]);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Get all environment variables for an app
|
|
27
|
+
*/
|
|
28
|
+
export async function getEnvVars(client, appName) {
|
|
29
|
+
validateAppName(appName);
|
|
30
|
+
const project = await client.get(`/v1/projects/${appName}`);
|
|
31
|
+
return project.envVars || [];
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Delete/unset environment variables
|
|
35
|
+
*/
|
|
36
|
+
export async function deleteEnvVars(client, appName, keys) {
|
|
37
|
+
validateAppName(appName);
|
|
38
|
+
validateRequired(keys, 'Environment variable keys');
|
|
39
|
+
if (keys.length === 0) {
|
|
40
|
+
throw new Error('At least one environment variable key is required');
|
|
41
|
+
}
|
|
42
|
+
// Get current env vars
|
|
43
|
+
const currentVars = await getEnvVars(client, appName);
|
|
44
|
+
// Filter out the keys to delete
|
|
45
|
+
const updatedVars = currentVars.filter(v => !keys.includes(v.key));
|
|
46
|
+
// Update with remaining vars
|
|
47
|
+
const request = {
|
|
48
|
+
project: appName,
|
|
49
|
+
variables: updatedVars,
|
|
50
|
+
};
|
|
51
|
+
return await client.post('/v1/projects/update-envs', request);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Delete/unset a single environment variable
|
|
55
|
+
*/
|
|
56
|
+
export async function deleteEnvVar(client, appName, key) {
|
|
57
|
+
return await deleteEnvVars(client, appName, [key]);
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=environment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/services/environment.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEvF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAC/B,MAAmB,EACnB,OAAe,EACf,SAAgC;IAEhC,eAAe,CAAC,OAAO,CAAC,CAAC;IACzB,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAEzC,qCAAqC;IACrC,KAAK,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,SAAS,EAAE,CAAC;QACrC,cAAc,CAAC,GAAG,CAAC,CAAC;QACpB,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,OAAO,GAAsB;QAC/B,OAAO,EAAE,OAAO;QAChB,SAAS;KACZ,CAAC;IAEF,OAAO,MAAM,MAAM,CAAC,IAAI,CAAsB,0BAA0B,EAAE,OAAO,CAAC,CAAC;AACvF,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC3B,MAAmB,EACnB,OAAe,EACf,GAAW,EACX,KAAa;IAEb,OAAO,MAAM,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAClE,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC5B,MAAmB,EACnB,OAAe;IAEf,eAAe,CAAC,OAAO,CAAC,CAAC;IACzB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,GAAG,CAAM,gBAAgB,OAAO,EAAE,CAAC,CAAC;IACjE,OAAO,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAC/B,MAAmB,EACnB,OAAe,EACf,IAAc;IAEd,eAAe,CAAC,OAAO,CAAC,CAAC;IACzB,gBAAgB,CAAC,IAAI,EAAE,2BAA2B,CAAC,CAAC;IAEpD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACzE,CAAC;IAED,uBAAuB;IACvB,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEtD,gCAAgC;IAChC,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAEnE,6BAA6B;IAC7B,MAAM,OAAO,GAAsB;QAC/B,OAAO,EAAE,OAAO;QAChB,SAAS,EAAE,WAAW;KACzB,CAAC;IAEF,OAAO,MAAM,MAAM,CAAC,IAAI,CAAsB,0BAA0B,EAAE,OAAO,CAAC,CAAC;AACvF,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAC9B,MAAmB,EACnB,OAAe,EACf,GAAW;IAEX,OAAO,MAAM,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACvD,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { LiaraClient } from '../api/client.js';
|
|
2
|
+
import { VirtualMachine, CreateVmRequest, PaginationOptions } from '../api/types.js';
|
|
3
|
+
/**
|
|
4
|
+
* List all virtual machines
|
|
5
|
+
*/
|
|
6
|
+
export declare function listVMs(client: LiaraClient, pagination?: PaginationOptions): Promise<VirtualMachine[]>;
|
|
7
|
+
/**
|
|
8
|
+
* Get details of a specific VM
|
|
9
|
+
*/
|
|
10
|
+
export declare function getVM(client: LiaraClient, vmId: string): Promise<VirtualMachine>;
|
|
11
|
+
/**
|
|
12
|
+
* Create a new virtual machine
|
|
13
|
+
*/
|
|
14
|
+
export declare function createVM(client: LiaraClient, request: CreateVmRequest): Promise<VirtualMachine>;
|
|
15
|
+
/**
|
|
16
|
+
* Start a VM
|
|
17
|
+
*/
|
|
18
|
+
export declare function startVM(client: LiaraClient, vmId: string): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Stop a VM
|
|
21
|
+
*/
|
|
22
|
+
export declare function stopVM(client: LiaraClient, vmId: string): Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* Restart a VM
|
|
25
|
+
*/
|
|
26
|
+
export declare function restartVM(client: LiaraClient, vmId: string): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* Shutdown a VM
|
|
29
|
+
*/
|
|
30
|
+
export declare function shutdownVM(client: LiaraClient, vmId: string): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* Power off a VM
|
|
33
|
+
*/
|
|
34
|
+
export declare function powerOffVM(client: LiaraClient, vmId: string): Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* Delete a VM
|
|
37
|
+
*/
|
|
38
|
+
export declare function deleteVM(client: LiaraClient, vmId: string): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* Resize a VM (change plan)
|
|
41
|
+
*/
|
|
42
|
+
export declare function resizeVM(client: LiaraClient, vmId: string, planID: string): Promise<VirtualMachine>;
|
|
43
|
+
/**
|
|
44
|
+
* Create a VM snapshot
|
|
45
|
+
*/
|
|
46
|
+
export declare function createSnapshot(client: LiaraClient, vmId: string, name?: string): Promise<{
|
|
47
|
+
snapshotId: string;
|
|
48
|
+
name: string;
|
|
49
|
+
createdAt: string;
|
|
50
|
+
}>;
|
|
51
|
+
/**
|
|
52
|
+
* List VM snapshots
|
|
53
|
+
*/
|
|
54
|
+
export declare function listSnapshots(client: LiaraClient, vmId: string, pagination?: PaginationOptions): Promise<Array<{
|
|
55
|
+
snapshotId: string;
|
|
56
|
+
name: string;
|
|
57
|
+
createdAt: string;
|
|
58
|
+
size?: number;
|
|
59
|
+
}>>;
|
|
60
|
+
/**
|
|
61
|
+
* Restore a VM from a snapshot
|
|
62
|
+
*/
|
|
63
|
+
export declare function restoreSnapshot(client: LiaraClient, vmId: string, snapshotId: string): Promise<{
|
|
64
|
+
message: string;
|
|
65
|
+
}>;
|
|
66
|
+
/**
|
|
67
|
+
* Delete a VM snapshot
|
|
68
|
+
*/
|
|
69
|
+
export declare function deleteSnapshot(client: LiaraClient, vmId: string, snapshotId: string): Promise<void>;
|
|
70
|
+
/**
|
|
71
|
+
* Attach a network to a VM
|
|
72
|
+
*/
|
|
73
|
+
export declare function attachNetwork(client: LiaraClient, vmId: string, networkId: string): Promise<{
|
|
74
|
+
message: string;
|
|
75
|
+
}>;
|
|
76
|
+
/**
|
|
77
|
+
* Detach a network from a VM
|
|
78
|
+
*/
|
|
79
|
+
export declare function detachNetwork(client: LiaraClient, vmId: string, networkId: string): Promise<void>;
|
|
80
|
+
//# sourceMappingURL=iaas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iaas.d.ts","sourceRoot":"","sources":["../../src/services/iaas.ts"],"names":[],"mappings":"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"}
|