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.
Files changed (79) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +353 -0
  3. package/dist/api/client.d.ts +49 -0
  4. package/dist/api/client.d.ts.map +1 -0
  5. package/dist/api/client.js +145 -0
  6. package/dist/api/client.js.map +1 -0
  7. package/dist/api/types.d.ts +256 -0
  8. package/dist/api/types.d.ts.map +1 -0
  9. package/dist/api/types.js +25 -0
  10. package/dist/api/types.js.map +1 -0
  11. package/dist/index.d.ts +3 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +3102 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/services/apps.d.ts +39 -0
  16. package/dist/services/apps.d.ts.map +1 -0
  17. package/dist/services/apps.js +83 -0
  18. package/dist/services/apps.js.map +1 -0
  19. package/dist/services/databases.d.ts +74 -0
  20. package/dist/services/databases.d.ts.map +1 -0
  21. package/dist/services/databases.js +120 -0
  22. package/dist/services/databases.js.map +1 -0
  23. package/dist/services/deployment.d.ts +57 -0
  24. package/dist/services/deployment.d.ts.map +1 -0
  25. package/dist/services/deployment.js +70 -0
  26. package/dist/services/deployment.js.map +1 -0
  27. package/dist/services/disks.d.ts +35 -0
  28. package/dist/services/disks.d.ts.map +1 -0
  29. package/dist/services/disks.js +88 -0
  30. package/dist/services/disks.js.map +1 -0
  31. package/dist/services/dns.d.ts +43 -0
  32. package/dist/services/dns.d.ts.map +1 -0
  33. package/dist/services/dns.js +80 -0
  34. package/dist/services/dns.js.map +1 -0
  35. package/dist/services/domains.d.ts +23 -0
  36. package/dist/services/domains.d.ts.map +1 -0
  37. package/dist/services/domains.js +42 -0
  38. package/dist/services/domains.js.map +1 -0
  39. package/dist/services/environment.d.ts +31 -0
  40. package/dist/services/environment.d.ts.map +1 -0
  41. package/dist/services/environment.js +59 -0
  42. package/dist/services/environment.js.map +1 -0
  43. package/dist/services/iaas.d.ts +80 -0
  44. package/dist/services/iaas.d.ts.map +1 -0
  45. package/dist/services/iaas.js +161 -0
  46. package/dist/services/iaas.js.map +1 -0
  47. package/dist/services/mail.d.ts +38 -0
  48. package/dist/services/mail.d.ts.map +1 -0
  49. package/dist/services/mail.js +65 -0
  50. package/dist/services/mail.js.map +1 -0
  51. package/dist/services/network.d.ts +19 -0
  52. package/dist/services/network.d.ts.map +1 -0
  53. package/dist/services/network.js +35 -0
  54. package/dist/services/network.js.map +1 -0
  55. package/dist/services/observability.d.ts +24 -0
  56. package/dist/services/observability.d.ts.map +1 -0
  57. package/dist/services/observability.js +41 -0
  58. package/dist/services/observability.js.map +1 -0
  59. package/dist/services/plans.d.ts +12 -0
  60. package/dist/services/plans.d.ts.map +1 -0
  61. package/dist/services/plans.js +17 -0
  62. package/dist/services/plans.js.map +1 -0
  63. package/dist/services/settings.d.ts +28 -0
  64. package/dist/services/settings.d.ts.map +1 -0
  65. package/dist/services/settings.js +37 -0
  66. package/dist/services/settings.js.map +1 -0
  67. package/dist/services/storage.d.ts +60 -0
  68. package/dist/services/storage.d.ts.map +1 -0
  69. package/dist/services/storage.js +96 -0
  70. package/dist/services/storage.js.map +1 -0
  71. package/dist/services/user.d.ts +32 -0
  72. package/dist/services/user.d.ts.map +1 -0
  73. package/dist/services/user.js +16 -0
  74. package/dist/services/user.js.map +1 -0
  75. package/dist/utils/errors.d.ts +30 -0
  76. package/dist/utils/errors.d.ts.map +1 -0
  77. package/dist/utils/errors.js +63 -0
  78. package/dist/utils/errors.js.map +1 -0
  79. package/package.json +67 -0
@@ -0,0 +1,161 @@
1
+ import { LiaraClient } from '../api/client.js';
2
+ import { paginationToParams, } from '../api/types.js';
3
+ import { validateRequired } from '../utils/errors.js';
4
+ /**
5
+ * Create a specialized IaaS client with the IaaS API base URL
6
+ */
7
+ function createIaaSClient(client) {
8
+ // Access the internal client to get the API token
9
+ const internalClient = client.client;
10
+ const apiToken = internalClient?.defaults?.headers?.Authorization?.replace('Bearer ', '') ||
11
+ process.env.LIARA_API_TOKEN;
12
+ const teamId = client.teamId || process.env.LIARA_TEAM_ID;
13
+ if (!apiToken) {
14
+ throw new Error('API token is required for IaaS operations');
15
+ }
16
+ // Create new client with IaaS base URL
17
+ // Import LiaraClient class dynamically
18
+ return new LiaraClient({
19
+ apiToken,
20
+ teamId,
21
+ baseURL: 'https://iaas-api.liara.ir',
22
+ });
23
+ }
24
+ /**
25
+ * List all virtual machines
26
+ */
27
+ export async function listVMs(client, pagination) {
28
+ const iaasClient = createIaaSClient(client);
29
+ const params = paginationToParams(pagination);
30
+ return await iaasClient.get('/vm', params);
31
+ }
32
+ /**
33
+ * Get details of a specific VM
34
+ */
35
+ export async function getVM(client, vmId) {
36
+ validateRequired(vmId, 'VM ID');
37
+ const iaasClient = createIaaSClient(client);
38
+ return await iaasClient.get(`/vm/${vmId}`);
39
+ }
40
+ /**
41
+ * Create a new virtual machine
42
+ */
43
+ export async function createVM(client, request) {
44
+ validateRequired(request.name, 'VM name');
45
+ validateRequired(request.planID, 'Plan ID');
46
+ validateRequired(request.os, 'Operating system');
47
+ const iaasClient = createIaaSClient(client);
48
+ return await iaasClient.post('/vm', request);
49
+ }
50
+ /**
51
+ * Start a VM
52
+ */
53
+ export async function startVM(client, vmId) {
54
+ validateRequired(vmId, 'VM ID');
55
+ const iaasClient = createIaaSClient(client);
56
+ await iaasClient.post(`/vm/${vmId}/actions/start`);
57
+ }
58
+ /**
59
+ * Stop a VM
60
+ */
61
+ export async function stopVM(client, vmId) {
62
+ validateRequired(vmId, 'VM ID');
63
+ const iaasClient = createIaaSClient(client);
64
+ await iaasClient.post(`/vm/${vmId}/actions/stop`);
65
+ }
66
+ /**
67
+ * Restart a VM
68
+ */
69
+ export async function restartVM(client, vmId) {
70
+ validateRequired(vmId, 'VM ID');
71
+ const iaasClient = createIaaSClient(client);
72
+ await iaasClient.post(`/vm/${vmId}/actions/restart`);
73
+ }
74
+ /**
75
+ * Shutdown a VM
76
+ */
77
+ export async function shutdownVM(client, vmId) {
78
+ validateRequired(vmId, 'VM ID');
79
+ const iaasClient = createIaaSClient(client);
80
+ await iaasClient.post(`/vm/${vmId}/actions/shutdown`);
81
+ }
82
+ /**
83
+ * Power off a VM
84
+ */
85
+ export async function powerOffVM(client, vmId) {
86
+ validateRequired(vmId, 'VM ID');
87
+ const iaasClient = createIaaSClient(client);
88
+ await iaasClient.post(`/vm/${vmId}/actions/poweroff`);
89
+ }
90
+ /**
91
+ * Delete a VM
92
+ */
93
+ export async function deleteVM(client, vmId) {
94
+ validateRequired(vmId, 'VM ID');
95
+ const iaasClient = createIaaSClient(client);
96
+ await iaasClient.delete(`/vm/${vmId}`);
97
+ }
98
+ /**
99
+ * Resize a VM (change plan)
100
+ */
101
+ export async function resizeVM(client, vmId, planID) {
102
+ validateRequired(vmId, 'VM ID');
103
+ validateRequired(planID, 'Plan ID');
104
+ const iaasClient = createIaaSClient(client);
105
+ return await iaasClient.post(`/vm/${vmId}/resize`, { planID });
106
+ }
107
+ /**
108
+ * Create a VM snapshot
109
+ */
110
+ export async function createSnapshot(client, vmId, name) {
111
+ validateRequired(vmId, 'VM ID');
112
+ const iaasClient = createIaaSClient(client);
113
+ const body = name ? { name } : {};
114
+ return await iaasClient.post(`/vm/${vmId}/snapshots`, body);
115
+ }
116
+ /**
117
+ * List VM snapshots
118
+ */
119
+ export async function listSnapshots(client, vmId, pagination) {
120
+ validateRequired(vmId, 'VM ID');
121
+ const iaasClient = createIaaSClient(client);
122
+ const params = paginationToParams(pagination);
123
+ return await iaasClient.get(`/vm/${vmId}/snapshots`, params);
124
+ }
125
+ /**
126
+ * Restore a VM from a snapshot
127
+ */
128
+ export async function restoreSnapshot(client, vmId, snapshotId) {
129
+ validateRequired(vmId, 'VM ID');
130
+ validateRequired(snapshotId, 'Snapshot ID');
131
+ const iaasClient = createIaaSClient(client);
132
+ return await iaasClient.post(`/vm/${vmId}/snapshots/${snapshotId}/restore`);
133
+ }
134
+ /**
135
+ * Delete a VM snapshot
136
+ */
137
+ export async function deleteSnapshot(client, vmId, snapshotId) {
138
+ validateRequired(vmId, 'VM ID');
139
+ validateRequired(snapshotId, 'Snapshot ID');
140
+ const iaasClient = createIaaSClient(client);
141
+ await iaasClient.delete(`/vm/${vmId}/snapshots/${snapshotId}`);
142
+ }
143
+ /**
144
+ * Attach a network to a VM
145
+ */
146
+ export async function attachNetwork(client, vmId, networkId) {
147
+ validateRequired(vmId, 'VM ID');
148
+ validateRequired(networkId, 'Network ID');
149
+ const iaasClient = createIaaSClient(client);
150
+ return await iaasClient.post(`/vm/${vmId}/networks/${networkId}/attach`);
151
+ }
152
+ /**
153
+ * Detach a network from a VM
154
+ */
155
+ export async function detachNetwork(client, vmId, networkId) {
156
+ validateRequired(vmId, 'VM ID');
157
+ validateRequired(networkId, 'Network ID');
158
+ const iaasClient = createIaaSClient(client);
159
+ await iaasClient.delete(`/vm/${vmId}/networks/${networkId}`);
160
+ }
161
+ //# sourceMappingURL=iaas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iaas.js","sourceRoot":"","sources":["../../src/services/iaas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAIH,kBAAkB,GACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;GAEG;AACH,SAAS,gBAAgB,CAAC,MAAmB;IACzC,kDAAkD;IAClD,MAAM,cAAc,GAAI,MAAc,CAAC,MAAM,CAAC;IAC9C,MAAM,QAAQ,GAAG,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAC7C,MAAM,MAAM,GAAI,MAAc,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAEnE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IACjE,CAAC;IAED,uCAAuC;IACvC,uCAAuC;IACvC,OAAO,IAAI,WAAW,CAAC;QACnB,QAAQ;QACR,MAAM;QACN,OAAO,EAAE,2BAA2B;KACvC,CAAC,CAAC;AACP,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CACzB,MAAmB,EACnB,UAA8B;IAE9B,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC9C,OAAO,MAAM,UAAU,CAAC,GAAG,CAAmB,KAAK,EAAE,MAAM,CAAC,CAAC;AACjE,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK,CACvB,MAAmB,EACnB,IAAY;IAEZ,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC5C,OAAO,MAAM,UAAU,CAAC,GAAG,CAAiB,OAAO,IAAI,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC1B,MAAmB,EACnB,OAAwB;IAExB,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC1C,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC5C,gBAAgB,CAAC,OAAO,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC;IAEjD,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC5C,OAAO,MAAM,UAAU,CAAC,IAAI,CAAiB,KAAK,EAAE,OAAO,CAAC,CAAC;AACjE,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CACzB,MAAmB,EACnB,IAAY;IAEZ,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,UAAU,CAAC,IAAI,CAAC,OAAO,IAAI,gBAAgB,CAAC,CAAC;AACvD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CACxB,MAAmB,EACnB,IAAY;IAEZ,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,UAAU,CAAC,IAAI,CAAC,OAAO,IAAI,eAAe,CAAC,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC3B,MAAmB,EACnB,IAAY;IAEZ,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,UAAU,CAAC,IAAI,CAAC,OAAO,IAAI,kBAAkB,CAAC,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC5B,MAAmB,EACnB,IAAY;IAEZ,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,UAAU,CAAC,IAAI,CAAC,OAAO,IAAI,mBAAmB,CAAC,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC5B,MAAmB,EACnB,IAAY;IAEZ,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,UAAU,CAAC,IAAI,CAAC,OAAO,IAAI,mBAAmB,CAAC,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC1B,MAAmB,EACnB,IAAY;IAEZ,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,UAAU,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC1B,MAAmB,EACnB,IAAY,EACZ,MAAc;IAEd,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChC,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACpC,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC5C,OAAO,MAAM,UAAU,CAAC,IAAI,CAAiB,OAAO,IAAI,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AACnF,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAChC,MAAmB,EACnB,IAAY,EACZ,IAAa;IAEb,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAClC,OAAO,MAAM,UAAU,CAAC,IAAI,CACxB,OAAO,IAAI,YAAY,EACvB,IAAI,CACP,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAC/B,MAAmB,EACnB,IAAY,EACZ,UAA8B;IAE9B,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC9C,OAAO,MAAM,UAAU,CAAC,GAAG,CACvB,OAAO,IAAI,YAAY,EACvB,MAAM,CACT,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACjC,MAAmB,EACnB,IAAY,EACZ,UAAkB;IAElB,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChC,gBAAgB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC5C,OAAO,MAAM,UAAU,CAAC,IAAI,CACxB,OAAO,IAAI,cAAc,UAAU,UAAU,CAChD,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAChC,MAAmB,EACnB,IAAY,EACZ,UAAkB;IAElB,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChC,gBAAgB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,UAAU,CAAC,MAAM,CAAC,OAAO,IAAI,cAAc,UAAU,EAAE,CAAC,CAAC;AACnE,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAC/B,MAAmB,EACnB,IAAY,EACZ,SAAiB;IAEjB,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChC,gBAAgB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC5C,OAAO,MAAM,UAAU,CAAC,IAAI,CACxB,OAAO,IAAI,aAAa,SAAS,SAAS,CAC7C,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAC/B,MAAmB,EACnB,IAAY,EACZ,SAAiB;IAEjB,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChC,gBAAgB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,UAAU,CAAC,MAAM,CAAC,OAAO,IAAI,aAAa,SAAS,EAAE,CAAC,CAAC;AACjE,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { LiaraClient } from '../api/client.js';
2
+ import { MailServer, SendEmailRequest, PaginationOptions } from '../api/types.js';
3
+ /**
4
+ * List all mail servers
5
+ */
6
+ export declare function listMailServers(client: LiaraClient, pagination?: PaginationOptions): Promise<MailServer[]>;
7
+ /**
8
+ * Get details of a specific mail server
9
+ */
10
+ export declare function getMailServer(client: LiaraClient, mailId: string): Promise<MailServer>;
11
+ /**
12
+ * Create a new mail server
13
+ */
14
+ export declare function createMailServer(client: LiaraClient, name: string, mode?: 'smtp' | 'api'): Promise<MailServer>;
15
+ /**
16
+ * Delete a mail server
17
+ */
18
+ export declare function deleteMailServer(client: LiaraClient, mailId: string): Promise<void>;
19
+ /**
20
+ * Send an email
21
+ */
22
+ export declare function sendEmail(client: LiaraClient, mailId: string, request: SendEmailRequest): Promise<{
23
+ message: string;
24
+ messageId?: string;
25
+ }>;
26
+ /**
27
+ * Start a mail server
28
+ */
29
+ export declare function startMailServer(client: LiaraClient, mailId: string): Promise<void>;
30
+ /**
31
+ * Stop a mail server
32
+ */
33
+ export declare function stopMailServer(client: LiaraClient, mailId: string): Promise<void>;
34
+ /**
35
+ * Restart a mail server
36
+ */
37
+ export declare function restartMailServer(client: LiaraClient, mailId: string): Promise<void>;
38
+ //# sourceMappingURL=mail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mail.d.ts","sourceRoot":"","sources":["../../src/services/mail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACH,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EAEpB,MAAM,iBAAiB,CAAC;AAGzB;;GAEG;AACH,wBAAsB,eAAe,CACjC,MAAM,EAAE,WAAW,EACnB,UAAU,CAAC,EAAE,iBAAiB,GAC/B,OAAO,CAAC,UAAU,EAAE,CAAC,CAGvB;AAED;;GAEG;AACH,wBAAsB,aAAa,CAC/B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,UAAU,CAAC,CAGrB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAClC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,MAAM,GAAG,KAAa,GAC7B,OAAO,CAAC,UAAU,CAAC,CAGrB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAClC,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,EACd,OAAO,EAAE,gBAAgB,GAC1B,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAclD;AAED;;GAEG;AACH,wBAAsB,eAAe,CACjC,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAGf;AAED;;GAEG;AACH,wBAAsB,cAAc,CAChC,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAGf;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACnC,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAGf"}
@@ -0,0 +1,65 @@
1
+ import { paginationToParams, } from '../api/types.js';
2
+ import { validateRequired } from '../utils/errors.js';
3
+ /**
4
+ * List all mail servers
5
+ */
6
+ export async function listMailServers(client, pagination) {
7
+ const params = paginationToParams(pagination);
8
+ return await client.get('/v1/mails', params);
9
+ }
10
+ /**
11
+ * Get details of a specific mail server
12
+ */
13
+ export async function getMailServer(client, mailId) {
14
+ validateRequired(mailId, 'Mail server ID');
15
+ return await client.get(`/v1/mails/${mailId}`);
16
+ }
17
+ /**
18
+ * Create a new mail server
19
+ */
20
+ export async function createMailServer(client, name, mode = 'api') {
21
+ validateRequired(name, 'Mail server name');
22
+ return await client.post('/v1/mails', { name, mode });
23
+ }
24
+ /**
25
+ * Delete a mail server
26
+ */
27
+ export async function deleteMailServer(client, mailId) {
28
+ validateRequired(mailId, 'Mail server ID');
29
+ await client.delete(`/v1/mails/${mailId}`);
30
+ }
31
+ /**
32
+ * Send an email
33
+ */
34
+ export async function sendEmail(client, mailId, request) {
35
+ validateRequired(mailId, 'Mail server ID');
36
+ validateRequired(request.from, 'From address');
37
+ validateRequired(request.to, 'To address');
38
+ validateRequired(request.subject, 'Subject');
39
+ if (!request.html && !request.text) {
40
+ throw new Error('Either html or text content is required');
41
+ }
42
+ return await client.post(`/v1/mails/${mailId}/send`, request);
43
+ }
44
+ /**
45
+ * Start a mail server
46
+ */
47
+ export async function startMailServer(client, mailId) {
48
+ validateRequired(mailId, 'Mail server ID');
49
+ await client.post(`/v1/mails/${mailId}/actions/start`);
50
+ }
51
+ /**
52
+ * Stop a mail server
53
+ */
54
+ export async function stopMailServer(client, mailId) {
55
+ validateRequired(mailId, 'Mail server ID');
56
+ await client.post(`/v1/mails/${mailId}/actions/stop`);
57
+ }
58
+ /**
59
+ * Restart a mail server
60
+ */
61
+ export async function restartMailServer(client, mailId) {
62
+ validateRequired(mailId, 'Mail server ID');
63
+ await client.post(`/v1/mails/${mailId}/actions/restart`);
64
+ }
65
+ //# sourceMappingURL=mail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mail.js","sourceRoot":"","sources":["../../src/services/mail.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,eAAe,CACjC,MAAmB,EACnB,UAA8B;IAE9B,MAAM,MAAM,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC9C,OAAO,MAAM,MAAM,CAAC,GAAG,CAAe,WAAW,EAAE,MAAM,CAAC,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAC/B,MAAmB,EACnB,MAAc;IAEd,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC3C,OAAO,MAAM,MAAM,CAAC,GAAG,CAAa,aAAa,MAAM,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,MAAmB,EACnB,IAAY,EACZ,OAAuB,KAAK;IAE5B,gBAAgB,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;IAC3C,OAAO,MAAM,MAAM,CAAC,IAAI,CAAa,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACtE,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,MAAmB,EACnB,MAAc;IAEd,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC3C,MAAM,MAAM,CAAC,MAAM,CAAC,aAAa,MAAM,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC3B,MAAmB,EACnB,MAAc,EACd,OAAyB;IAEzB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC3C,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAC/C,gBAAgB,CAAC,OAAO,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;IAC3C,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAE7C,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,MAAM,MAAM,CAAC,IAAI,CACpB,aAAa,MAAM,OAAO,EAC1B,OAAO,CACV,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACjC,MAAmB,EACnB,MAAc;IAEd,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC3C,MAAM,MAAM,CAAC,IAAI,CAAC,aAAa,MAAM,gBAAgB,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAChC,MAAmB,EACnB,MAAc;IAEd,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC3C,MAAM,MAAM,CAAC,IAAI,CAAC,aAAa,MAAM,eAAe,CAAC,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACnC,MAAmB,EACnB,MAAc;IAEd,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC3C,MAAM,MAAM,CAAC,IAAI,CAAC,aAAa,MAAM,kBAAkB,CAAC,CAAC;AAC7D,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { LiaraClient } from '../api/client.js';
2
+ import { Network, PaginationOptions } from '../api/types.js';
3
+ /**
4
+ * List all networks
5
+ */
6
+ export declare function listNetworks(client: LiaraClient, pagination?: PaginationOptions): Promise<Network[]>;
7
+ /**
8
+ * Get details of a specific network
9
+ */
10
+ export declare function getNetwork(client: LiaraClient, networkId: string): Promise<Network>;
11
+ /**
12
+ * Create a new network
13
+ */
14
+ export declare function createNetwork(client: LiaraClient, name: string, cidr?: string): Promise<Network>;
15
+ /**
16
+ * Delete a network
17
+ */
18
+ export declare function deleteNetwork(client: LiaraClient, networkId: string): Promise<void>;
19
+ //# sourceMappingURL=network.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/services/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACH,OAAO,EACP,iBAAiB,EAEpB,MAAM,iBAAiB,CAAC;AAGzB;;GAEG;AACH,wBAAsB,YAAY,CAC9B,MAAM,EAAE,WAAW,EACnB,UAAU,CAAC,EAAE,iBAAiB,GAC/B,OAAO,CAAC,OAAO,EAAE,CAAC,CAGpB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC5B,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED;;GAEG;AACH,wBAAsB,aAAa,CAC/B,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC,CASlB;AAED;;GAEG;AACH,wBAAsB,aAAa,CAC/B,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAGf"}
@@ -0,0 +1,35 @@
1
+ import { paginationToParams, } from '../api/types.js';
2
+ import { validateRequired } from '../utils/errors.js';
3
+ /**
4
+ * List all networks
5
+ */
6
+ export async function listNetworks(client, pagination) {
7
+ const params = paginationToParams(pagination);
8
+ return await client.get('/v1/networks', params);
9
+ }
10
+ /**
11
+ * Get details of a specific network
12
+ */
13
+ export async function getNetwork(client, networkId) {
14
+ validateRequired(networkId, 'Network ID');
15
+ return await client.get(`/v1/networks/${networkId}`);
16
+ }
17
+ /**
18
+ * Create a new network
19
+ */
20
+ export async function createNetwork(client, name, cidr) {
21
+ validateRequired(name, 'Network name');
22
+ const request = { name };
23
+ if (cidr) {
24
+ request.cidr = cidr;
25
+ }
26
+ return await client.post('/v1/networks', request);
27
+ }
28
+ /**
29
+ * Delete a network
30
+ */
31
+ export async function deleteNetwork(client, networkId) {
32
+ validateRequired(networkId, 'Network ID');
33
+ await client.delete(`/v1/networks/${networkId}`);
34
+ }
35
+ //# sourceMappingURL=network.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/services/network.ts"],"names":[],"mappings":"AACA,OAAO,EAGH,kBAAkB,GACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAC9B,MAAmB,EACnB,UAA8B;IAE9B,MAAM,MAAM,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC9C,OAAO,MAAM,MAAM,CAAC,GAAG,CAAY,cAAc,EAAE,MAAM,CAAC,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC5B,MAAmB,EACnB,SAAiB;IAEjB,gBAAgB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAC1C,OAAO,MAAM,MAAM,CAAC,GAAG,CAAU,gBAAgB,SAAS,EAAE,CAAC,CAAC;AAClE,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAC/B,MAAmB,EACnB,IAAY,EACZ,IAAa;IAEb,gBAAgB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAEvC,MAAM,OAAO,GAAQ,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAI,IAAI,EAAE,CAAC;QACP,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,OAAO,MAAM,MAAM,CAAC,IAAI,CAAU,cAAc,EAAE,OAAO,CAAC,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAC/B,MAAmB,EACnB,SAAiB;IAEjB,gBAAgB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAC1C,MAAM,MAAM,CAAC,MAAM,CAAC,gBAAgB,SAAS,EAAE,CAAC,CAAC;AACrD,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { LiaraClient } from '../api/client.js';
2
+ import { MetricsSummary, LogEntry } from '../api/types.js';
3
+ /**
4
+ * Get app metrics summary
5
+ */
6
+ export declare function getAppMetrics(client: LiaraClient, appName: string, period?: string): Promise<MetricsSummary>;
7
+ /**
8
+ * Get app logs
9
+ * @param limit - Maximum number of log entries to return (default: 100)
10
+ * @param since - ISO timestamp to fetch logs since
11
+ * @param until - ISO timestamp to fetch logs until
12
+ */
13
+ export declare function getAppLogs(client: LiaraClient, appName: string, options?: {
14
+ limit?: number;
15
+ since?: string;
16
+ until?: string;
17
+ }): Promise<LogEntry[]>;
18
+ /**
19
+ * Stream app logs (real-time)
20
+ * Note: This would typically use WebSocket, but for MCP we return recent logs
21
+ * For true streaming, consider implementing WebSocket support separately
22
+ */
23
+ export declare function streamAppLogs(client: LiaraClient, appName: string): Promise<LogEntry[]>;
24
+ //# sourceMappingURL=observability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observability.d.ts","sourceRoot":"","sources":["../../src/services/observability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACH,cAAc,EACd,QAAQ,EACX,MAAM,iBAAiB,CAAC;AAGzB;;GAEG;AACH,wBAAsB,aAAa,CAC/B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC,CAQzB;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAC5B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IACN,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,GACF,OAAO,CAAC,QAAQ,EAAE,CAAC,CAkBrB;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAC/B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,GAChB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAMrB"}
@@ -0,0 +1,41 @@
1
+ import { validateAppName } from '../utils/errors.js';
2
+ /**
3
+ * Get app metrics summary
4
+ */
5
+ export async function getAppMetrics(client, appName, period) {
6
+ validateAppName(appName);
7
+ const params = period ? { period } : {};
8
+ return await client.get(`/v1/projects/${appName}/metrics/summary`, params);
9
+ }
10
+ /**
11
+ * Get app logs
12
+ * @param limit - Maximum number of log entries to return (default: 100)
13
+ * @param since - ISO timestamp to fetch logs since
14
+ * @param until - ISO timestamp to fetch logs until
15
+ */
16
+ export async function getAppLogs(client, appName, options) {
17
+ validateAppName(appName);
18
+ const params = {};
19
+ if (options?.limit) {
20
+ params.limit = options.limit;
21
+ }
22
+ if (options?.since) {
23
+ params.since = options.since;
24
+ }
25
+ if (options?.until) {
26
+ params.until = options.until;
27
+ }
28
+ return await client.get(`/v1/projects/${appName}/logs`, params);
29
+ }
30
+ /**
31
+ * Stream app logs (real-time)
32
+ * Note: This would typically use WebSocket, but for MCP we return recent logs
33
+ * For true streaming, consider implementing WebSocket support separately
34
+ */
35
+ export async function streamAppLogs(client, appName) {
36
+ validateAppName(appName);
37
+ // For now, return recent logs
38
+ // WebSocket streaming would require separate implementation
39
+ return await getAppLogs(client, appName, { limit: 100 });
40
+ }
41
+ //# sourceMappingURL=observability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observability.js","sourceRoot":"","sources":["../../src/services/observability.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAC/B,MAAmB,EACnB,OAAe,EACf,MAAe;IAEf,eAAe,CAAC,OAAO,CAAC,CAAC;IAEzB,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACxC,OAAO,MAAM,MAAM,CAAC,GAAG,CACnB,gBAAgB,OAAO,kBAAkB,EACzC,MAAM,CACT,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC5B,MAAmB,EACnB,OAAe,EACf,OAIC;IAED,eAAe,CAAC,OAAO,CAAC,CAAC;IAEzB,MAAM,MAAM,GAAQ,EAAE,CAAC;IACvB,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;QACjB,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IACjC,CAAC;IACD,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;QACjB,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IACjC,CAAC;IACD,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;QACjB,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IACjC,CAAC;IAED,OAAO,MAAM,MAAM,CAAC,GAAG,CACnB,gBAAgB,OAAO,OAAO,EAC9B,MAAM,CACT,CAAC;AACN,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAC/B,MAAmB,EACnB,OAAe;IAEf,eAAe,CAAC,OAAO,CAAC,CAAC;IAEzB,8BAA8B;IAC9B,4DAA4D;IAC5D,OAAO,MAAM,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;AAC7D,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { LiaraClient } from '../api/client.js';
2
+ import { Plan, PaginationOptions } from '../api/types.js';
3
+ /**
4
+ * List available plans
5
+ * @param planType - Optional filter by plan type ('app', 'database', 'vm')
6
+ */
7
+ export declare function listPlans(client: LiaraClient, planType?: 'app' | 'database' | 'vm', pagination?: PaginationOptions): Promise<Plan[]>;
8
+ /**
9
+ * Get a specific plan by ID
10
+ */
11
+ export declare function getPlan(client: LiaraClient, planId: string): Promise<Plan>;
12
+ //# sourceMappingURL=plans.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plans.d.ts","sourceRoot":"","sources":["../../src/services/plans.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAsB,MAAM,iBAAiB,CAAC;AAE9E;;;GAGG;AACH,wBAAsB,SAAS,CAC3B,MAAM,EAAE,WAAW,EACnB,QAAQ,CAAC,EAAE,KAAK,GAAG,UAAU,GAAG,IAAI,EACpC,UAAU,CAAC,EAAE,iBAAiB,GAC/B,OAAO,CAAC,IAAI,EAAE,CAAC,CAIjB;AAED;;GAEG;AACH,wBAAsB,OAAO,CACzB,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAEf"}
@@ -0,0 +1,17 @@
1
+ import { paginationToParams } from '../api/types.js';
2
+ /**
3
+ * List available plans
4
+ * @param planType - Optional filter by plan type ('app', 'database', 'vm')
5
+ */
6
+ export async function listPlans(client, planType, pagination) {
7
+ const params = planType ? { type: planType } : {};
8
+ Object.assign(params, paginationToParams(pagination));
9
+ return await client.get('/v1/plans', params);
10
+ }
11
+ /**
12
+ * Get a specific plan by ID
13
+ */
14
+ export async function getPlan(client, planId) {
15
+ return await client.get(`/v1/plans/${planId}`);
16
+ }
17
+ //# sourceMappingURL=plans.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plans.js","sourceRoot":"","sources":["../../src/services/plans.ts"],"names":[],"mappings":"AACA,OAAO,EAA2B,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE9E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC3B,MAAmB,EACnB,QAAoC,EACpC,UAA8B;IAE9B,MAAM,MAAM,GAAQ,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACvD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC;IACtD,OAAO,MAAM,MAAM,CAAC,GAAG,CAAS,WAAW,EAAE,MAAM,CAAC,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CACzB,MAAmB,EACnB,MAAc;IAEd,OAAO,MAAM,MAAM,CAAC,GAAG,CAAO,aAAa,MAAM,EAAE,CAAC,CAAC;AACzD,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { LiaraClient } from '../api/client.js';
2
+ /**
3
+ * Enable or disable zero-downtime deployment for an app
4
+ */
5
+ export declare function setZeroDowntime(client: LiaraClient, appName: string, enabled: boolean): Promise<{
6
+ message: string;
7
+ }>;
8
+ /**
9
+ * Enable or disable default subdomain for an app
10
+ */
11
+ export declare function setDefaultSubdomain(client: LiaraClient, appName: string, enabled: boolean): Promise<{
12
+ message: string;
13
+ }>;
14
+ /**
15
+ * Enable or disable static IP for an app
16
+ * Returns the IP address when enabling
17
+ */
18
+ export declare function setFixedIP(client: LiaraClient, appName: string, enabled: boolean): Promise<{
19
+ message: string;
20
+ IP?: string;
21
+ }>;
22
+ /**
23
+ * Enable or disable read-only mode for an app
24
+ */
25
+ export declare function setReadOnly(client: LiaraClient, appName: string, enabled: boolean): Promise<{
26
+ message: string;
27
+ }>;
28
+ //# sourceMappingURL=settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/services/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C;;GAEG;AACH,wBAAsB,eAAe,CACjC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,GACjB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAS9B;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACrC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,GACjB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAO9B;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC5B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,GACjB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAO3C;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC7B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,GACjB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAO9B"}
@@ -0,0 +1,37 @@
1
+ import { validateAppName } from '../utils/errors.js';
2
+ /**
3
+ * Enable or disable zero-downtime deployment for an app
4
+ */
5
+ export async function setZeroDowntime(client, appName, enabled) {
6
+ validateAppName(appName);
7
+ const status = enabled ? 'enable' : 'disable';
8
+ // Note: API uses project ID, but we'll use name and let the API handle it
9
+ // If needed, we might need to get the project ID first
10
+ return await client.post(`/v1/projects/${appName}/zero-downtime/${status}`);
11
+ }
12
+ /**
13
+ * Enable or disable default subdomain for an app
14
+ */
15
+ export async function setDefaultSubdomain(client, appName, enabled) {
16
+ validateAppName(appName);
17
+ const status = enabled ? 'enable' : 'disable';
18
+ return await client.post(`/v1/projects/${appName}/default-subdomain/${status}`);
19
+ }
20
+ /**
21
+ * Enable or disable static IP for an app
22
+ * Returns the IP address when enabling
23
+ */
24
+ export async function setFixedIP(client, appName, enabled) {
25
+ validateAppName(appName);
26
+ const status = enabled ? 'enable' : 'disable';
27
+ return await client.post(`/v1/projects/${appName}/fixed-ip/${status}`);
28
+ }
29
+ /**
30
+ * Enable or disable read-only mode for an app
31
+ */
32
+ export async function setReadOnly(client, appName, enabled) {
33
+ validateAppName(appName);
34
+ const status = enabled ? 'enable' : 'disable';
35
+ return await client.post(`/v1/projects/${appName}/read-only/${status}`);
36
+ }
37
+ //# sourceMappingURL=settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/services/settings.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACjC,MAAmB,EACnB,OAAe,EACf,OAAgB;IAEhB,eAAe,CAAC,OAAO,CAAC,CAAC;IACzB,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAE9C,0EAA0E;IAC1E,uDAAuD;IACvD,OAAO,MAAM,MAAM,CAAC,IAAI,CACpB,gBAAgB,OAAO,kBAAkB,MAAM,EAAE,CACpD,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACrC,MAAmB,EACnB,OAAe,EACf,OAAgB;IAEhB,eAAe,CAAC,OAAO,CAAC,CAAC;IACzB,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAE9C,OAAO,MAAM,MAAM,CAAC,IAAI,CACpB,gBAAgB,OAAO,sBAAsB,MAAM,EAAE,CACxD,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC5B,MAAmB,EACnB,OAAe,EACf,OAAgB;IAEhB,eAAe,CAAC,OAAO,CAAC,CAAC;IACzB,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAE9C,OAAO,MAAM,MAAM,CAAC,IAAI,CACpB,gBAAgB,OAAO,aAAa,MAAM,EAAE,CAC/C,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC7B,MAAmB,EACnB,OAAe,EACf,OAAgB;IAEhB,eAAe,CAAC,OAAO,CAAC,CAAC;IACzB,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAE9C,OAAO,MAAM,MAAM,CAAC,IAAI,CACpB,gBAAgB,OAAO,cAAc,MAAM,EAAE,CAChD,CAAC;AACN,CAAC"}
@@ -0,0 +1,60 @@
1
+ import { LiaraClient } from '../api/client.js';
2
+ import { Bucket, BucketCredentials, CreateBucketRequest, PaginationOptions } from '../api/types.js';
3
+ /**
4
+ * List all buckets
5
+ */
6
+ export declare function listBuckets(client: LiaraClient, pagination?: PaginationOptions): Promise<Bucket[]>;
7
+ /**
8
+ * Get details of a specific bucket
9
+ */
10
+ export declare function getBucket(client: LiaraClient, name: string): Promise<Bucket>;
11
+ /**
12
+ * Create a new bucket
13
+ */
14
+ export declare function createBucket(client: LiaraClient, request: CreateBucketRequest): Promise<Bucket>;
15
+ /**
16
+ * Delete a bucket
17
+ */
18
+ export declare function deleteBucket(client: LiaraClient, name: string): Promise<void>;
19
+ /**
20
+ * Get bucket credentials (S3-compatible access keys)
21
+ */
22
+ export declare function getBucketCredentials(client: LiaraClient, name: string): Promise<BucketCredentials>;
23
+ /**
24
+ * List objects in a bucket
25
+ */
26
+ export declare function listObjects(client: LiaraClient, bucketName: string, prefix?: string, maxKeys?: number): Promise<Array<{
27
+ key: string;
28
+ size: number;
29
+ lastModified: string;
30
+ etag?: string;
31
+ }>>;
32
+ /**
33
+ * Upload an object to a bucket
34
+ */
35
+ export declare function uploadObject(client: LiaraClient, bucketName: string, objectKey: string, filePath: string): Promise<{
36
+ message: string;
37
+ etag?: string;
38
+ }>;
39
+ /**
40
+ * Get download URL for an object
41
+ */
42
+ export declare function getObjectDownloadUrl(client: LiaraClient, bucketName: string, objectKey: string, expiresIn?: number): Promise<{
43
+ url: string;
44
+ expiresAt?: string;
45
+ }>;
46
+ /**
47
+ * Delete an object from a bucket
48
+ */
49
+ export declare function deleteObject(client: LiaraClient, bucketName: string, objectKey: string): Promise<void>;
50
+ /**
51
+ * Get object metadata
52
+ */
53
+ export declare function getObjectMetadata(client: LiaraClient, bucketName: string, objectKey: string): Promise<{
54
+ key: string;
55
+ size: number;
56
+ lastModified: string;
57
+ contentType?: string;
58
+ etag?: string;
59
+ }>;
60
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/services/storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACH,MAAM,EACN,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EAEpB,MAAM,iBAAiB,CAAC;AAKzB;;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,IAAI,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAC9B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,mBAAmB,GAC7B,OAAO,CAAC,MAAM,CAAC,CAIjB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAC9B,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAGf;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACtC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,CAAC,CAG5B;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC7B,MAAM,EAAE,WAAW,EACnB,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,KAAK,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC,CAAC,CAYF;AAED;;GAEG;AACH,wBAAsB,YAAY,CAC9B,MAAM,EAAE,WAAW,EACnB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAkB7C;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACtC,MAAM,EAAE,WAAW,EACnB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAW9C;AAED;;GAEG;AACH,wBAAsB,YAAY,CAC9B,MAAM,EAAE,WAAW,EACnB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACnC,MAAM,EAAE,WAAW,EACnB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC;IACP,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC,CAWD"}