pterodactyl-api-client 4.0.0 → 4.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/README.md +66 -30
- package/dist/application/application.client.d.ts +2 -2
- package/dist/application/application.client.d.ts.map +1 -1
- package/dist/application/application.client.js +2 -2
- package/dist/application/server/server.class.d.ts +3 -3
- package/dist/application/server/server.class.d.ts.map +1 -1
- package/dist/application/server/server.class.js +1 -1
- package/dist/application/server/server.manager.d.ts +6 -6
- package/dist/application/server/server.manager.d.ts.map +1 -1
- package/dist/application/server/server.manager.js +7 -7
- package/dist/application/user/user.class.d.ts +3 -3
- package/dist/application/user/user.class.d.ts.map +1 -1
- package/dist/application/user/user.manager.d.ts +2 -2
- package/dist/application/user/user.manager.d.ts.map +1 -1
- package/dist/application/user/user.manager.js +4 -4
- package/dist/application/user/user.types.d.ts +2 -2
- package/dist/application/user/user.types.d.ts.map +1 -1
- package/dist/class.d.ts.map +1 -1
- package/dist/class.js +5 -1
- package/dist/client/client.class.d.ts +4 -248
- package/dist/client/client.class.d.ts.map +1 -1
- package/dist/client/client.class.js +4 -14
- package/dist/client/client.types.d.ts +2 -2
- package/dist/client/client.types.d.ts.map +1 -1
- package/dist/client/server/index.d.ts +2 -1
- package/dist/client/server/index.d.ts.map +1 -1
- package/dist/client/server/index.js +2 -1
- package/dist/client/server/server.class.d.ts +81 -0
- package/dist/client/server/server.class.d.ts.map +1 -0
- package/dist/client/server/server.class.js +114 -0
- package/dist/client/server/server.manager.d.ts +14 -0
- package/dist/client/server/server.manager.d.ts.map +1 -0
- package/dist/client/server/server.manager.js +39 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
# pterodactyl‑api‑client
|
|
2
2
|
|
|
3
|
-
Client API TypeScript pour l’**API
|
|
4
|
-
Fournit une interface typée, modulaire et orientée classes pour consommer l’API du panel Pterodactyl (comptes, serveurs, websockets, etc.).
|
|
5
|
-
|
|
6
|
-
**API client** = endpoints disponibles avec une _Client API Key_ générée dans le panel utilisateur.
|
|
3
|
+
Client API TypeScript pour l’**API Client & Application de Pterodactyl**.
|
|
4
|
+
Fournit une interface typée, modulaire et orientée classes pour consommer l’API du panel Pterodactyl (comptes, serveurs, localisations, nodes, nests, eggs, bases de données, websockets, etc.).
|
|
7
5
|
|
|
8
6
|
---
|
|
9
7
|
|
|
@@ -23,8 +21,14 @@ npm install pterodactyl-api-client
|
|
|
23
21
|
import { PterodactylAPIClient } from 'pterodactyl-api-client';
|
|
24
22
|
|
|
25
23
|
const client = new PterodactylAPIClient({
|
|
26
|
-
|
|
24
|
+
panelUrl: 'https://panel.example.com',
|
|
27
25
|
apiKey: 'VOTRE_CLE_API',
|
|
26
|
+
role: 'admin', // 'admin' ou 'user'
|
|
27
|
+
cache: {
|
|
28
|
+
users: 300000, // TTL cache pour les utilisateurs en ms
|
|
29
|
+
servers: 60000, // TTL cache pour les serveurs
|
|
30
|
+
// optionnel pour d'autres entités : nodes, locations, nests, eggs, etc.
|
|
31
|
+
},
|
|
28
32
|
});
|
|
29
33
|
```
|
|
30
34
|
|
|
@@ -34,20 +38,23 @@ const client = new PterodactylAPIClient({
|
|
|
34
38
|
const { PterodactylAPIClient } = require('pterodactyl-api-client');
|
|
35
39
|
|
|
36
40
|
const client = new PterodactylAPIClient({
|
|
37
|
-
|
|
41
|
+
panelUrl: 'https://panel.example.com',
|
|
38
42
|
apiKey: 'VOTRE_CLE_API',
|
|
43
|
+
role: 'admin',
|
|
39
44
|
});
|
|
40
45
|
```
|
|
41
46
|
|
|
42
47
|
---
|
|
43
48
|
|
|
44
|
-
## Utilisation
|
|
49
|
+
## Utilisation : API Client (`role: 'user'` ou `'admin'`)
|
|
50
|
+
|
|
51
|
+
Disponible via la propriété `client.user`.
|
|
45
52
|
|
|
46
53
|
### Compte utilisateur
|
|
47
54
|
|
|
48
55
|
```js
|
|
49
|
-
const info = await client.user.account.
|
|
50
|
-
console.log(info.
|
|
56
|
+
const info = await client.user.account.fetch();
|
|
57
|
+
console.log(info.username);
|
|
51
58
|
```
|
|
52
59
|
|
|
53
60
|
### Gestion des clés API
|
|
@@ -61,28 +68,66 @@ const created = await client.user.account.apiKey.create({
|
|
|
61
68
|
});
|
|
62
69
|
```
|
|
63
70
|
|
|
64
|
-
### Serveurs
|
|
71
|
+
### Serveurs Client
|
|
72
|
+
|
|
73
|
+
L'API client pour les serveurs est accessible via le gestionnaire `client.user.servers` (ClientServerManager).
|
|
65
74
|
|
|
66
75
|
```js
|
|
76
|
+
// Liste les serveurs
|
|
67
77
|
const servers = await client.user.servers.list();
|
|
68
78
|
const srv = servers.data[0];
|
|
69
79
|
|
|
70
|
-
// Récupère les détails
|
|
71
|
-
const detail = await client.user.servers.
|
|
80
|
+
// Récupère les détails d'un serveur
|
|
81
|
+
const detail = await client.user.servers.fetch(srv.identifier);
|
|
82
|
+
console.log(detail.name);
|
|
72
83
|
```
|
|
73
84
|
|
|
74
|
-
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Utilisation : API Application/Admin (`role: 'admin'`)
|
|
88
|
+
|
|
89
|
+
Disponible via la propriété `client.admin`. Cette API bénéficie d'un cache local personnalisable et de gestionnaires orientés classes.
|
|
90
|
+
|
|
91
|
+
### Gestionnaires disponibles
|
|
92
|
+
|
|
93
|
+
- `client.admin.users` (UserManager)
|
|
94
|
+
- `client.admin.servers` (ApplicationServerManager)
|
|
95
|
+
- `client.admin.locations` (LocationManager)
|
|
96
|
+
- `client.admin.nodes` (NodeManager)
|
|
97
|
+
- `client.admin.nests` (NestManager)
|
|
98
|
+
|
|
99
|
+
### Exemple d'utilisation
|
|
75
100
|
|
|
76
101
|
```js
|
|
77
|
-
|
|
102
|
+
// Récupérer et lister les utilisateurs côté admin
|
|
103
|
+
const paginatedUsers = await client.admin.users.list({
|
|
78
104
|
page: 1,
|
|
79
|
-
per_page:
|
|
105
|
+
per_page: 10,
|
|
80
106
|
});
|
|
107
|
+
|
|
108
|
+
// Récupérer un serveur par son ID avec cache
|
|
109
|
+
const server = await client.admin.servers.fetch(1);
|
|
110
|
+
console.log(server.name);
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Utilisation de `resolve()`
|
|
114
|
+
|
|
115
|
+
La méthode synchrone `resolve` permet de récupérer instantanément une ressource à partir du cache local si elle est présente, ou de retourner une instance partielle (contenant uniquement l'ID) si elle n'est pas en cache. Cela évite des requêtes réseau inutiles.
|
|
116
|
+
|
|
117
|
+
```js
|
|
118
|
+
// Récupère le serveur depuis le cache ou crée une instance légère (côté client)
|
|
119
|
+
const server = client.user.servers.resolve('e1a2b3c4');
|
|
120
|
+
|
|
121
|
+
// Ou côté admin/application
|
|
122
|
+
const adminServer = client.admin.servers.resolve(12);
|
|
123
|
+
|
|
124
|
+
// Vous pouvez ensuite chaîner directement des appels d'API associés à cette instance
|
|
125
|
+
await server.databases.list();
|
|
81
126
|
```
|
|
82
127
|
|
|
83
128
|
---
|
|
84
129
|
|
|
85
|
-
## WebSockets (serveur)
|
|
130
|
+
## WebSockets (serveur client)
|
|
86
131
|
|
|
87
132
|
Pterodactyl offre un endpoint WebSocket pour recevoir :
|
|
88
133
|
|
|
@@ -94,7 +139,7 @@ Pterodactyl offre un endpoint WebSocket pour recevoir :
|
|
|
94
139
|
Pour se connecter :
|
|
95
140
|
|
|
96
141
|
```js
|
|
97
|
-
await client.user.servers.websocket.connect(
|
|
142
|
+
await client.user.servers.resolve(serverId).console.websocket.connect({
|
|
98
143
|
onStats: (stats) => {
|
|
99
144
|
console.log(stats);
|
|
100
145
|
},
|
|
@@ -104,28 +149,19 @@ await client.user.servers.websocket.connect(serverId, {
|
|
|
104
149
|
});
|
|
105
150
|
```
|
|
106
151
|
|
|
107
|
-
Les tokens WS sont temporaires (≈ 10 min), il faut gérer les reconnexions.
|
|
108
|
-
|
|
109
152
|
---
|
|
110
153
|
|
|
111
154
|
## Erreurs & exceptions
|
|
112
155
|
|
|
113
|
-
Les erreurs retournées par l’API sont encapsulées dans une classe d’erreur dédiée,
|
|
114
|
-
|
|
115
|
-
- erreurs réseau
|
|
116
|
-
- erreurs de validation
|
|
117
|
-
- erreurs API avec statut HTTP
|
|
156
|
+
Les erreurs retournées par l’API sont encapsulées dans une classe d’erreur dédiée, `ApiError`.
|
|
118
157
|
|
|
119
158
|
```js
|
|
120
|
-
import {
|
|
159
|
+
import { ApiError } from 'pterodactyl-api-client';
|
|
121
160
|
|
|
122
161
|
try {
|
|
123
|
-
const
|
|
124
|
-
page: 1,
|
|
125
|
-
per_page: 50,
|
|
126
|
-
});
|
|
162
|
+
const info = await client.user.account.fetch();
|
|
127
163
|
} catch (e) {
|
|
128
|
-
if (e instanceof
|
|
164
|
+
if (e instanceof ApiError) {
|
|
129
165
|
console.error('HTTP Status :', e.status);
|
|
130
166
|
console.error('Message :', e.message);
|
|
131
167
|
console.error('Endpoint :', e.path);
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { LocationManager } from './location/location.manager.js';
|
|
2
2
|
import { NestManager } from './nest/nest.manager.js';
|
|
3
3
|
import { NodeManager } from './node/node.manager.js';
|
|
4
|
-
import {
|
|
4
|
+
import { ApplicationServerManager } from './server/server.manager.js';
|
|
5
5
|
import { UserManager } from './user/user.manager.js';
|
|
6
6
|
import type { CacheTtlOptions } from '../types.js';
|
|
7
7
|
export declare class ApplicationAPI {
|
|
8
8
|
private httpClient;
|
|
9
9
|
readonly panelUrl: URL;
|
|
10
10
|
users: UserManager;
|
|
11
|
-
servers:
|
|
11
|
+
servers: ApplicationServerManager;
|
|
12
12
|
locations: LocationManager;
|
|
13
13
|
nodes: NodeManager;
|
|
14
14
|
nests: NestManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.client.d.ts","sourceRoot":"","sources":["../../src/application/application.client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"application.client.d.ts","sourceRoot":"","sources":["../../src/application/application.client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,qBAAa,cAAc;IACzB,OAAO,CAAC,UAAU,CAAa;IAC/B,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC;IAChB,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,wBAAwB,CAAC;IAClC,SAAS,EAAE,eAAe,CAAC;IAC3B,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,EAAE,WAAW,CAAC;gBAEd,EACV,MAAM,EACN,QAAQ,EACR,KAAK,GACN,EAAE;QACD,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,GAAG,CAAC;QACd,KAAK,CAAC,EAAE,eAAe,CAAC;KACzB;CAiBF"}
|
|
@@ -2,7 +2,7 @@ import { HttpClient } from '../class/HttpClient.js';
|
|
|
2
2
|
import { LocationManager } from './location/location.manager.js';
|
|
3
3
|
import { NestManager } from './nest/nest.manager.js';
|
|
4
4
|
import { NodeManager } from './node/node.manager.js';
|
|
5
|
-
import {
|
|
5
|
+
import { ApplicationServerManager } from './server/server.manager.js';
|
|
6
6
|
import { UserManager } from './user/user.manager.js';
|
|
7
7
|
export class ApplicationAPI {
|
|
8
8
|
httpClient;
|
|
@@ -15,7 +15,7 @@ export class ApplicationAPI {
|
|
|
15
15
|
constructor({ apiKey, panelUrl, cache, }) {
|
|
16
16
|
this.panelUrl = panelUrl;
|
|
17
17
|
this.httpClient = new HttpClient(panelUrl, apiKey);
|
|
18
|
-
this.servers = new
|
|
18
|
+
this.servers = new ApplicationServerManager(this.httpClient, cache?.servers, cache?.databases);
|
|
19
19
|
this.users = new UserManager(this.httpClient, this.servers, cache?.users);
|
|
20
20
|
this.locations = new LocationManager(this.httpClient, cache?.locations);
|
|
21
21
|
this.nodes = new NodeManager(this.httpClient, cache?.nodes, cache?.allocations);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { HttpClient } from '../../class/HttpClient.js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { ApplicationServerManager } from './server.manager.js';
|
|
3
3
|
import { ServerDatabaseManager } from './database/database.manager.js';
|
|
4
4
|
import type { BaseApplicationServer, UpdateApplicationServerPayload, Status } from './server.types.js';
|
|
5
5
|
import type { BaseFetchOptions } from '../../types.js';
|
|
6
|
-
export declare class
|
|
6
|
+
export declare class ApplicationServer<ServerStatus extends Status = Status> {
|
|
7
7
|
private httpClient;
|
|
8
8
|
private serverManager;
|
|
9
9
|
id: number;
|
|
@@ -42,7 +42,7 @@ export declare class Server<ServerStatus extends Status = Status> {
|
|
|
42
42
|
createdAt: Date;
|
|
43
43
|
databases: ServerDatabaseManager;
|
|
44
44
|
private databasesTtl;
|
|
45
|
-
constructor(httpClient: HttpClient, serverManager:
|
|
45
|
+
constructor(httpClient: HttpClient, serverManager: ApplicationServerManager, data: Partial<BaseApplicationServer> & (Pick<BaseApplicationServer, 'id'> | Pick<BaseApplicationServer, 'externalId'>), databasesTtl?: number);
|
|
46
46
|
fetch(options?: BaseFetchOptions): Promise<this>;
|
|
47
47
|
update(payload: UpdateApplicationServerPayload, options?: Omit<BaseFetchOptions, 'force'>): Promise<this>;
|
|
48
48
|
suspend(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.class.d.ts","sourceRoot":"","sources":["../../../src/application/server/server.class.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"server.class.d.ts","sourceRoot":"","sources":["../../../src/application/server/server.class.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAUpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,KAAK,EACV,qBAAqB,EACrB,8BAA8B,EAE9B,MAAM,EACP,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,qBAAa,iBAAiB,CAAC,YAAY,SAAS,MAAM,GAAG,MAAM;IAwC/D,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,aAAa;IAxChB,EAAE,EAAG,MAAM,CAAC;IACZ,UAAU,EAAG,IAAI,GAAG,MAAM,CAAC;IAC3B,IAAI,EAAG,MAAM,CAAC;IACd,UAAU,EAAG,MAAM,CAAC;IACpB,IAAI,EAAG,MAAM,CAAC;IACd,WAAW,EAAG,MAAM,CAAC;IACrB,SAAS,EAAG,YAAY,SAAS,WAAW,GAAG,IAAI,GAAG,KAAK,CAAC;IAC5D,MAAM,EAAG;QACd,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,WAAW,EAAE,OAAO,CAAC;KACtB,CAAC;IACK,aAAa,EAAG;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACK,IAAI,EAAG,MAAM,CAAC;IACd,IAAI,EAAG,MAAM,CAAC;IACd,UAAU,EAAG,MAAM,CAAC;IACpB,IAAI,EAAG,MAAM,CAAC;IACd,GAAG,EAAG,MAAM,CAAC;IACb,SAAS,EAAG;QACjB,cAAc,EAAE,MAAM,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;QAC7C,SAAS,EAAE,YAAY,SAAS,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC;KACtD,CAAC;IACK,SAAS,EAAG,IAAI,CAAC;IACjB,SAAS,EAAG,IAAI,CAAC;IAEjB,SAAS,EAAG,qBAAqB,CAAC;IACzC,OAAO,CAAC,YAAY,CAAqB;gBAG/B,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,wBAAwB,EAC/C,IAAI,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAClC,CACI,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,GACjC,IAAI,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAC5C,EACH,YAAY,CAAC,EAAE,MAAM;IAajB,KAAK,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBhD,MAAM,CACV,OAAO,EAAE,8BAA8B,EACvC,OAAO,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,GACxC,OAAO,CAAC,IAAI,CAAC;IAsDV,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAOxB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAO1B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAO1B,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAU7C"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { setManagerCacheSymbol, removeManagerCacheSymbol, } from '../../symbols.js';
|
|
2
2
|
import { setApplicationServerDetailsSchema, setApplicationServerConfigurationSchema, setApplicationServerStartupSchema, } from './server.schemas.js';
|
|
3
3
|
import { ServerDatabaseManager } from './database/database.manager.js';
|
|
4
|
-
export class
|
|
4
|
+
export class ApplicationServer {
|
|
5
5
|
httpClient;
|
|
6
6
|
serverManager;
|
|
7
7
|
id;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import type { BaseFetchOptions, Paginated } from '../../types.js';
|
|
2
2
|
import type { CreateServerPayload, ListServersOptions, ApplicationServerIds } from './server.types.js';
|
|
3
|
-
import {
|
|
3
|
+
import { ApplicationServer } from './server.class.js';
|
|
4
4
|
import type { HttpClient } from '../../class/HttpClient.js';
|
|
5
5
|
import { BaseCacheManager } from '../../class/BaseCacheManager.js';
|
|
6
|
-
export declare class
|
|
6
|
+
export declare class ApplicationServerManager extends BaseCacheManager<number | string, ApplicationServer> {
|
|
7
7
|
private httpClient;
|
|
8
8
|
private databasesTtl;
|
|
9
9
|
constructor(httpClient: HttpClient, cacheTtl?: number, databasesTtl?: number);
|
|
10
|
-
list(options?: ListServersOptions): Promise<Paginated<
|
|
11
|
-
fetch(server: ApplicationServerIds, options?: BaseFetchOptions): Promise<
|
|
12
|
-
resolve(server: number | string):
|
|
13
|
-
create(payload: CreateServerPayload, options?: Pick<BaseFetchOptions, 'cache'>): Promise<
|
|
10
|
+
list(options?: ListServersOptions): Promise<Paginated<ApplicationServer>>;
|
|
11
|
+
fetch(server: ApplicationServerIds, options?: BaseFetchOptions): Promise<ApplicationServer>;
|
|
12
|
+
resolve(server: number | string): ApplicationServer;
|
|
13
|
+
create(payload: CreateServerPayload, options?: Pick<BaseFetchOptions, 'cache'>): Promise<ApplicationServer>;
|
|
14
14
|
}
|
|
15
15
|
//# sourceMappingURL=server.manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.manager.d.ts","sourceRoot":"","sources":["../../../src/application/server/server.manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAEhB,SAAS,EACV,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EAErB,MAAM,mBAAmB,CAAC;AAQ3B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"server.manager.d.ts","sourceRoot":"","sources":["../../../src/application/server/server.manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAEhB,SAAS,EACV,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EAErB,MAAM,mBAAmB,CAAC;AAQ3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,qBAAa,wBAAyB,SAAQ,gBAAgB,CAC5D,MAAM,GAAG,MAAM,EACf,iBAAiB,CAClB;IAIG,OAAO,CAAC,UAAU;IAHpB,OAAO,CAAC,YAAY,CAAqB;gBAG/B,UAAU,EAAE,UAAU,EAC9B,QAAQ,GAAE,MAAuC,EACjD,YAAY,CAAC,EAAE,MAAM;IAMjB,IAAI,CACR,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IA0BlC,KAAK,CACT,MAAM,EAAE,oBAAoB,EAC5B,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,iBAAiB,CAAC;IA0B7B,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,iBAAiB;IAyB7C,MAAM,CACV,OAAO,EAAE,mBAAmB,EAC5B,OAAO,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,GACxC,OAAO,CAAC,iBAAiB,CAAC;CAkB9B"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { buildQueryParams } from '../../utils/buildQueryParams.js';
|
|
2
2
|
import { createServerSchema, listServersFilterSchema, applicationServerIdSchema, applicationServerId, applicationServerExternalId, } from './server.schemas.js';
|
|
3
|
-
import {
|
|
3
|
+
import { ApplicationServer } from './server.class.js';
|
|
4
4
|
import { ONE_MINUTE_IN_MILLISECONDS } from '../../utils/vars.js';
|
|
5
5
|
import { BaseCacheManager } from '../../class/BaseCacheManager.js';
|
|
6
|
-
export class
|
|
6
|
+
export class ApplicationServerManager extends BaseCacheManager {
|
|
7
7
|
httpClient;
|
|
8
8
|
databasesTtl;
|
|
9
9
|
constructor(httpClient, cacheTtl = ONE_MINUTE_IN_MILLISECONDS * 5, databasesTtl) {
|
|
@@ -18,7 +18,7 @@ export class ServerManager extends BaseCacheManager {
|
|
|
18
18
|
});
|
|
19
19
|
const serverObjectList = await this.httpClient.request('GET', `/application/servers?${queries}`, { parseDates: true });
|
|
20
20
|
return {
|
|
21
|
-
data: serverObjectList.data.map((serverObject) => this.setCache(new
|
|
21
|
+
data: serverObjectList.data.map((serverObject) => this.setCache(new ApplicationServer(this.httpClient, this, serverObject.attributes, this.databasesTtl), options?.cache)),
|
|
22
22
|
pagination: serverObjectList.meta.pagination,
|
|
23
23
|
};
|
|
24
24
|
}
|
|
@@ -27,17 +27,17 @@ export class ServerManager extends BaseCacheManager {
|
|
|
27
27
|
(server.external_id && this.getCache(server.external_id));
|
|
28
28
|
if (cacheServer && !options?.force)
|
|
29
29
|
return cacheServer;
|
|
30
|
-
return this.setCache(new
|
|
30
|
+
return this.setCache(new ApplicationServer(this.httpClient, this, (await this.httpClient.request('GET', `/application/servers/${((s) => s.id ?? `external/${s.external_id}`)(applicationServerIdSchema.parse(server))}`, { parseDates: true })).attributes, this.databasesTtl), options?.cache);
|
|
31
31
|
}
|
|
32
32
|
resolve(server) {
|
|
33
33
|
return super.resolve(server, () => {
|
|
34
34
|
if (typeof server === 'number') {
|
|
35
|
-
return new
|
|
35
|
+
return new ApplicationServer(this.httpClient, this, {
|
|
36
36
|
id: applicationServerId.parse(server),
|
|
37
37
|
}, this.databasesTtl);
|
|
38
38
|
}
|
|
39
39
|
else {
|
|
40
|
-
return new
|
|
40
|
+
return new ApplicationServer(this.httpClient, this, {
|
|
41
41
|
id: undefined,
|
|
42
42
|
externalId: applicationServerExternalId.parse(server),
|
|
43
43
|
}, this.databasesTtl);
|
|
@@ -45,7 +45,7 @@ export class ServerManager extends BaseCacheManager {
|
|
|
45
45
|
});
|
|
46
46
|
}
|
|
47
47
|
async create(payload, options) {
|
|
48
|
-
return this.setCache(new
|
|
48
|
+
return this.setCache(new ApplicationServer(this.httpClient, this, (await this.httpClient.request('POST', '/application/servers', createServerSchema.parse(payload), {
|
|
49
49
|
parseDates: true,
|
|
50
50
|
})).attributes, this.databasesTtl), options?.cache);
|
|
51
51
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { HttpClient } from '../../class/HttpClient.js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { ApplicationServer } from '../server/server.class.js';
|
|
3
3
|
import type { BaseUser, CreateUserPayload, FetchUserOptions, UpdateUserOptions } from './user.types.js';
|
|
4
4
|
import type { UserManager } from './user.manager.js';
|
|
5
5
|
export declare class User<HasServers extends boolean = boolean> {
|
|
@@ -17,9 +17,9 @@ export declare class User<HasServers extends boolean = boolean> {
|
|
|
17
17
|
'2fa': boolean;
|
|
18
18
|
createdAt: Date;
|
|
19
19
|
updatedAt: Date;
|
|
20
|
-
servers?: HasServers extends true ?
|
|
20
|
+
servers?: HasServers extends true ? ApplicationServer[] : never;
|
|
21
21
|
constructor(httpClient: HttpClient, userManager: UserManager, data: Partial<BaseUser> & Pick<BaseUser, 'id'> & (HasServers extends true ? {
|
|
22
|
-
servers:
|
|
22
|
+
servers: ApplicationServer[];
|
|
23
23
|
} : Record<never, never>));
|
|
24
24
|
fetch<IncludeServers extends boolean>(options?: FetchUserOptions<IncludeServers>): Promise<User<IncludeServers>>;
|
|
25
25
|
update(payload: CreateUserPayload, options?: UpdateUserOptions): Promise<this>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.class.d.ts","sourceRoot":"","sources":["../../../src/application/user/user.class.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"user.class.d.ts","sourceRoot":"","sources":["../../../src/application/user/user.class.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EACV,QAAQ,EACR,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EAElB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAOrD,qBAAa,IAAI,CAAC,UAAU,SAAS,OAAO,GAAG,OAAO;IAiBlD,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,WAAW;IAjBd,EAAE,EAAG,MAAM,CAAC;IACZ,UAAU,EAAG,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAG,MAAM,CAAC;IACd,QAAQ,EAAG,MAAM,CAAC;IAClB,KAAK,EAAG,MAAM,CAAC;IACf,SAAS,EAAG,MAAM,CAAC;IACnB,QAAQ,EAAG,MAAM,CAAC;IAClB,QAAQ,EAAG,MAAM,CAAC;IAClB,SAAS,EAAG,OAAO,CAAC;IACpB,KAAK,EAAG,OAAO,CAAC;IAChB,SAAS,EAAG,IAAI,CAAC;IACjB,SAAS,EAAG,IAAI,CAAC;IAEjB,OAAO,CAAC,EAAE,UAAU,SAAS,IAAI,GAAG,iBAAiB,EAAE,GAAG,KAAK,CAAC;gBAG7D,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EAChC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,GACrB,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GACpB,CAAC,UAAU,SAAS,IAAI,GACpB;QACE,OAAO,EAAE,iBAAiB,EAAE,CAAC;KAC9B,GACD,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAKvB,KAAK,CAAC,cAAc,SAAS,OAAO,EACxC,OAAO,CAAC,EAAE,gBAAgB,CAAC,cAAc,CAAC,GACzC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IA4B1B,MAAM,CACV,OAAO,EAAE,iBAAiB,EAC1B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,IAAI,CAAC;IAqBV,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAO9B"}
|
|
@@ -3,11 +3,11 @@ import type { CreateUserPayload, FetchUserOptions, ListUsersOptions, UserExterna
|
|
|
3
3
|
import { User } from './user.class.js';
|
|
4
4
|
import type { HttpClient } from '../../class/HttpClient.js';
|
|
5
5
|
import { BaseCacheManager } from '../../class/BaseCacheManager.js';
|
|
6
|
-
import {
|
|
6
|
+
import { ApplicationServerManager } from '../server/server.manager.js';
|
|
7
7
|
export declare class UserManager extends BaseCacheManager<UserId | UserExternalId, User> {
|
|
8
8
|
private httpClient;
|
|
9
9
|
private serverManager;
|
|
10
|
-
constructor(httpClient: HttpClient, serverManager:
|
|
10
|
+
constructor(httpClient: HttpClient, serverManager: ApplicationServerManager, cacheTtl?: number);
|
|
11
11
|
list<IncludeServers extends boolean = false>(options?: ListUsersOptions<IncludeServers>): Promise<Paginated<User<IncludeServers extends true ? IncludeServers : false>>>;
|
|
12
12
|
fetch<IncludeServers extends boolean>(user: UserIds, options?: FetchUserOptions<IncludeServers>): Promise<User<IncludeServers extends true ? IncludeServers : false>>;
|
|
13
13
|
resolve(user: UserId): User;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.manager.d.ts","sourceRoot":"","sources":["../../../src/application/user/user.manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAEhB,SAAS,EACV,MAAM,gBAAgB,CAAC;AAGxB,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,MAAM,EACN,OAAO,EAER,MAAM,iBAAiB,CAAC;AAOzB,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"user.manager.d.ts","sourceRoot":"","sources":["../../../src/application/user/user.manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAEhB,SAAS,EACV,MAAM,gBAAgB,CAAC;AAGxB,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,MAAM,EACN,OAAO,EAER,MAAM,iBAAiB,CAAC;AAOzB,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,qBAAa,WAAY,SAAQ,gBAAgB,CAC/C,MAAM,GAAG,cAAc,EACvB,IAAI,CACL;IAEG,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,aAAa;gBADb,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,wBAAwB,EAC/C,QAAQ,GAAE,MAAuC;IAK7C,IAAI,CAAC,cAAc,SAAS,OAAO,GAAG,KAAK,EAC/C,OAAO,CAAC,EAAE,gBAAgB,CAAC,cAAc,CAAC,GACzC,OAAO,CACR,SAAS,CAAC,IAAI,CAAC,cAAc,SAAS,IAAI,GAAG,cAAc,GAAG,KAAK,CAAC,CAAC,CACtE;IA+CK,KAAK,CAAC,cAAc,SAAS,OAAO,EACxC,IAAI,EAAE,OAAO,EACb,OAAO,CAAC,EAAE,gBAAgB,CAAC,cAAc,CAAC,GACzC,OAAO,CAAC,IAAI,CAAC,cAAc,SAAS,IAAI,GAAG,cAAc,GAAG,KAAK,CAAC,CAAC;IA+CtE,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAUrB,MAAM,CACV,OAAO,EAAE,iBAAiB,EAC1B,OAAO,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,GACxC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;CAiBxB"}
|
|
@@ -3,8 +3,8 @@ import { createUserSchema, listUsersFilterSchema, userId, userIdSchema, } from '
|
|
|
3
3
|
import { User } from './user.class.js';
|
|
4
4
|
import { ONE_MINUTE_IN_MILLISECONDS } from '../../utils/vars.js';
|
|
5
5
|
import { BaseCacheManager } from '../../class/BaseCacheManager.js';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
6
|
+
import { ApplicationServer } from '../server/server.class.js';
|
|
7
|
+
import { ApplicationServerManager } from '../server/server.manager.js';
|
|
8
8
|
export class UserManager extends BaseCacheManager {
|
|
9
9
|
httpClient;
|
|
10
10
|
serverManager;
|
|
@@ -26,7 +26,7 @@ export class UserManager extends BaseCacheManager {
|
|
|
26
26
|
const { relationships, ...attributes } = userObject.attributes;
|
|
27
27
|
return this.setCache(new User(this.httpClient, this, {
|
|
28
28
|
...attributes,
|
|
29
|
-
servers: relationships.servers.data.map((serverObject) => new
|
|
29
|
+
servers: relationships.servers.data.map((serverObject) => new ApplicationServer(this.httpClient, this.serverManager, serverObject.attributes)),
|
|
30
30
|
}), options.cache);
|
|
31
31
|
}),
|
|
32
32
|
pagination: userObjectList.meta.pagination,
|
|
@@ -45,7 +45,7 @@ export class UserManager extends BaseCacheManager {
|
|
|
45
45
|
const { relationships, ...attributes } = userObject.attributes;
|
|
46
46
|
return this.setCache(new User(this.httpClient, this, {
|
|
47
47
|
...attributes,
|
|
48
|
-
servers: relationships.servers.data.map((serverObject) => new
|
|
48
|
+
servers: relationships.servers.data.map((serverObject) => new ApplicationServer(this.httpClient, this.serverManager, serverObject.attributes)),
|
|
49
49
|
}), options.cache);
|
|
50
50
|
}
|
|
51
51
|
resolve(user) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { BaseFetchOptions, BasePayload, Filters, PaginationFetchOptions, Sorts } from '../../types.js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { ApplicationServer } from '../server/server.class.js';
|
|
3
3
|
import type { ApplicationServerObject } from '../server/server.types.js';
|
|
4
4
|
export type UserId = number;
|
|
5
5
|
export type UserExternalId = string;
|
|
@@ -56,7 +56,7 @@ export interface BaseUser {
|
|
|
56
56
|
updatedAt: Date;
|
|
57
57
|
}
|
|
58
58
|
export interface UserWithServers extends BaseUser {
|
|
59
|
-
servers:
|
|
59
|
+
servers: ApplicationServer[];
|
|
60
60
|
}
|
|
61
61
|
export interface CreateUserPayload extends BasePayload {
|
|
62
62
|
email: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.types.d.ts","sourceRoot":"","sources":["../../../src/application/user/user.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,OAAO,EACP,sBAAsB,EACtB,KAAK,EACN,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"user.types.d.ts","sourceRoot":"","sources":["../../../src/application/user/user.types.ts"],"names":[],"mappings":"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"}
|
package/dist/class.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class.d.ts","sourceRoot":"","sources":["../src/class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE/D,qBAAa,oBAAoB,CAAC,CAAC,SAAS,WAAW;IACrD,OAAO,CAAC,MAAM,CAAS;IACvB,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACV,IAAI,EAAE,SAAS,CAAC;IACR,KAAK,EAAE,CAAC,SAAS,OAAO,GAAG,cAAc,GAAG,KAAK,CAAC;gBAErD,OAAO,EAAE;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,CAAC,CAAC;QACR,QAAQ,CAAC,EAAE,eAAe,CAAC;KAC5B;
|
|
1
|
+
{"version":3,"file":"class.d.ts","sourceRoot":"","sources":["../src/class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE/D,qBAAa,oBAAoB,CAAC,CAAC,SAAS,WAAW;IACrD,OAAO,CAAC,MAAM,CAAS;IACvB,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACV,IAAI,EAAE,SAAS,CAAC;IACR,KAAK,EAAE,CAAC,SAAS,OAAO,GAAG,cAAc,GAAG,KAAK,CAAC;gBAErD,OAAO,EAAE;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,CAAC,CAAC;QACR,QAAQ,CAAC,EAAE,eAAe,CAAC;KAC5B;CAkBF"}
|
package/dist/class.js
CHANGED
|
@@ -10,7 +10,11 @@ export class PterodactylAPIClient {
|
|
|
10
10
|
this.panelUrl = new URL(clientSchema.parse(options).panelUrl);
|
|
11
11
|
this.role = clientSchema.parse(options).role;
|
|
12
12
|
this.apiKey = clientSchema.parse(options).apiKey;
|
|
13
|
-
this.user = new ClientAPI({
|
|
13
|
+
this.user = new ClientAPI({
|
|
14
|
+
panelUrl: this.panelUrl,
|
|
15
|
+
apiKey: this.apiKey,
|
|
16
|
+
cacheTtl: clientSchema.parse(options).cache?.servers,
|
|
17
|
+
});
|
|
14
18
|
if (this.role === 'admin')
|
|
15
19
|
this.admin = new ApplicationAPI({
|
|
16
20
|
panelUrl: this.panelUrl,
|
|
@@ -1,258 +1,14 @@
|
|
|
1
1
|
import { AccountClient } from './account/account.client.js';
|
|
2
|
-
import
|
|
3
|
-
import { UserServerClient } from './server/server.client.js';
|
|
2
|
+
import { ClientServerManager } from './server/server.manager.js';
|
|
4
3
|
export declare class ClientAPI {
|
|
5
4
|
private httpClient;
|
|
6
5
|
readonly panelUrl: URL;
|
|
7
6
|
account: AccountClient;
|
|
8
|
-
|
|
7
|
+
servers: ClientServerManager;
|
|
8
|
+
constructor({ apiKey, panelUrl, cacheTtl, }: {
|
|
9
9
|
apiKey: string;
|
|
10
10
|
panelUrl: URL;
|
|
11
|
+
cacheTtl?: number | undefined;
|
|
11
12
|
});
|
|
12
|
-
fetchServers(options?: FetchUserServersOptions): Promise<{
|
|
13
|
-
data: ({
|
|
14
|
-
object: "server";
|
|
15
|
-
attributes: {
|
|
16
|
-
serverOwner: boolean;
|
|
17
|
-
identifier: string;
|
|
18
|
-
serverIdentifier: string;
|
|
19
|
-
internalId: number;
|
|
20
|
-
uuid: string;
|
|
21
|
-
name: string;
|
|
22
|
-
node: string;
|
|
23
|
-
isNodeUnderMaintenance: boolean;
|
|
24
|
-
sftpDetails: {
|
|
25
|
-
ip: string;
|
|
26
|
-
port: number;
|
|
27
|
-
};
|
|
28
|
-
description: string;
|
|
29
|
-
limits: {
|
|
30
|
-
memory: number;
|
|
31
|
-
swap: number;
|
|
32
|
-
disk: number;
|
|
33
|
-
io: number;
|
|
34
|
-
cpu: number;
|
|
35
|
-
threads: string | null;
|
|
36
|
-
oomDisabled: boolean;
|
|
37
|
-
};
|
|
38
|
-
invocation: string;
|
|
39
|
-
dockerImage: string;
|
|
40
|
-
eggFeatures: Lowercase<string>[];
|
|
41
|
-
featureLimits: {
|
|
42
|
-
databases: number;
|
|
43
|
-
allocations: number;
|
|
44
|
-
backups: number;
|
|
45
|
-
};
|
|
46
|
-
isTransferring: boolean;
|
|
47
|
-
relationships: {
|
|
48
|
-
allocations: {
|
|
49
|
-
object: "list";
|
|
50
|
-
data: {
|
|
51
|
-
object: "allocation";
|
|
52
|
-
attributes: {
|
|
53
|
-
id: number;
|
|
54
|
-
ip: `${number}.${number}.${number}.${number}`;
|
|
55
|
-
ipAlias: string | null;
|
|
56
|
-
port: number;
|
|
57
|
-
notes: string | null;
|
|
58
|
-
isDefault: boolean;
|
|
59
|
-
};
|
|
60
|
-
}[];
|
|
61
|
-
};
|
|
62
|
-
variables: {
|
|
63
|
-
meta: {
|
|
64
|
-
startupCommand: string;
|
|
65
|
-
rawStartupCommand: string;
|
|
66
|
-
dockerImages: {
|
|
67
|
-
[x: Lowercase<string>]: string;
|
|
68
|
-
};
|
|
69
|
-
};
|
|
70
|
-
object: "list";
|
|
71
|
-
data: {
|
|
72
|
-
object: "egg_variable";
|
|
73
|
-
attributes: {
|
|
74
|
-
name: string;
|
|
75
|
-
description: string;
|
|
76
|
-
envVariable: Uppercase<string>;
|
|
77
|
-
defaultValue: string;
|
|
78
|
-
serverValue: string;
|
|
79
|
-
isEditable: boolean;
|
|
80
|
-
rules: string;
|
|
81
|
-
};
|
|
82
|
-
}[];
|
|
83
|
-
};
|
|
84
|
-
};
|
|
85
|
-
status: null;
|
|
86
|
-
isInstalling: false;
|
|
87
|
-
isSuspended: false;
|
|
88
|
-
};
|
|
89
|
-
} | {
|
|
90
|
-
object: "server";
|
|
91
|
-
attributes: {
|
|
92
|
-
serverOwner: boolean;
|
|
93
|
-
identifier: string;
|
|
94
|
-
serverIdentifier: string;
|
|
95
|
-
internalId: number;
|
|
96
|
-
uuid: string;
|
|
97
|
-
name: string;
|
|
98
|
-
node: string;
|
|
99
|
-
isNodeUnderMaintenance: boolean;
|
|
100
|
-
sftpDetails: {
|
|
101
|
-
ip: string;
|
|
102
|
-
port: number;
|
|
103
|
-
};
|
|
104
|
-
description: string;
|
|
105
|
-
limits: {
|
|
106
|
-
memory: number;
|
|
107
|
-
swap: number;
|
|
108
|
-
disk: number;
|
|
109
|
-
io: number;
|
|
110
|
-
cpu: number;
|
|
111
|
-
threads: string | null;
|
|
112
|
-
oomDisabled: boolean;
|
|
113
|
-
};
|
|
114
|
-
invocation: string;
|
|
115
|
-
dockerImage: string;
|
|
116
|
-
eggFeatures: Lowercase<string>[];
|
|
117
|
-
featureLimits: {
|
|
118
|
-
databases: number;
|
|
119
|
-
allocations: number;
|
|
120
|
-
backups: number;
|
|
121
|
-
};
|
|
122
|
-
isTransferring: boolean;
|
|
123
|
-
relationships: {
|
|
124
|
-
allocations: {
|
|
125
|
-
object: "list";
|
|
126
|
-
data: {
|
|
127
|
-
object: "allocation";
|
|
128
|
-
attributes: {
|
|
129
|
-
id: number;
|
|
130
|
-
ip: `${number}.${number}.${number}.${number}`;
|
|
131
|
-
ipAlias: string | null;
|
|
132
|
-
port: number;
|
|
133
|
-
notes: string | null;
|
|
134
|
-
isDefault: boolean;
|
|
135
|
-
};
|
|
136
|
-
}[];
|
|
137
|
-
};
|
|
138
|
-
variables: {
|
|
139
|
-
meta: {
|
|
140
|
-
startupCommand: string;
|
|
141
|
-
rawStartupCommand: string;
|
|
142
|
-
dockerImages: {
|
|
143
|
-
[x: Lowercase<string>]: string;
|
|
144
|
-
};
|
|
145
|
-
};
|
|
146
|
-
object: "list";
|
|
147
|
-
data: {
|
|
148
|
-
object: "egg_variable";
|
|
149
|
-
attributes: {
|
|
150
|
-
name: string;
|
|
151
|
-
description: string;
|
|
152
|
-
envVariable: Uppercase<string>;
|
|
153
|
-
defaultValue: string;
|
|
154
|
-
serverValue: string;
|
|
155
|
-
isEditable: boolean;
|
|
156
|
-
rules: string;
|
|
157
|
-
};
|
|
158
|
-
}[];
|
|
159
|
-
};
|
|
160
|
-
};
|
|
161
|
-
status: "installing";
|
|
162
|
-
isInstalling: true;
|
|
163
|
-
isSuspended: false;
|
|
164
|
-
};
|
|
165
|
-
} | {
|
|
166
|
-
object: "server";
|
|
167
|
-
attributes: {
|
|
168
|
-
serverOwner: boolean;
|
|
169
|
-
identifier: string;
|
|
170
|
-
serverIdentifier: string;
|
|
171
|
-
internalId: number;
|
|
172
|
-
uuid: string;
|
|
173
|
-
name: string;
|
|
174
|
-
node: string;
|
|
175
|
-
isNodeUnderMaintenance: boolean;
|
|
176
|
-
sftpDetails: {
|
|
177
|
-
ip: string;
|
|
178
|
-
port: number;
|
|
179
|
-
};
|
|
180
|
-
description: string;
|
|
181
|
-
limits: {
|
|
182
|
-
memory: number;
|
|
183
|
-
swap: number;
|
|
184
|
-
disk: number;
|
|
185
|
-
io: number;
|
|
186
|
-
cpu: number;
|
|
187
|
-
threads: string | null;
|
|
188
|
-
oomDisabled: boolean;
|
|
189
|
-
};
|
|
190
|
-
invocation: string;
|
|
191
|
-
dockerImage: string;
|
|
192
|
-
eggFeatures: Lowercase<string>[];
|
|
193
|
-
featureLimits: {
|
|
194
|
-
databases: number;
|
|
195
|
-
allocations: number;
|
|
196
|
-
backups: number;
|
|
197
|
-
};
|
|
198
|
-
isTransferring: boolean;
|
|
199
|
-
relationships: {
|
|
200
|
-
allocations: {
|
|
201
|
-
object: "list";
|
|
202
|
-
data: {
|
|
203
|
-
object: "allocation";
|
|
204
|
-
attributes: {
|
|
205
|
-
id: number;
|
|
206
|
-
ip: `${number}.${number}.${number}.${number}`;
|
|
207
|
-
ipAlias: string | null;
|
|
208
|
-
port: number;
|
|
209
|
-
notes: string | null;
|
|
210
|
-
isDefault: boolean;
|
|
211
|
-
};
|
|
212
|
-
}[];
|
|
213
|
-
};
|
|
214
|
-
variables: {
|
|
215
|
-
meta: {
|
|
216
|
-
startupCommand: string;
|
|
217
|
-
rawStartupCommand: string;
|
|
218
|
-
dockerImages: {
|
|
219
|
-
[x: Lowercase<string>]: string;
|
|
220
|
-
};
|
|
221
|
-
};
|
|
222
|
-
object: "list";
|
|
223
|
-
data: {
|
|
224
|
-
object: "egg_variable";
|
|
225
|
-
attributes: {
|
|
226
|
-
name: string;
|
|
227
|
-
description: string;
|
|
228
|
-
envVariable: Uppercase<string>;
|
|
229
|
-
defaultValue: string;
|
|
230
|
-
serverValue: string;
|
|
231
|
-
isEditable: boolean;
|
|
232
|
-
rules: string;
|
|
233
|
-
};
|
|
234
|
-
}[];
|
|
235
|
-
};
|
|
236
|
-
};
|
|
237
|
-
status: "suspended";
|
|
238
|
-
isInstalling: false;
|
|
239
|
-
isSuspended: true;
|
|
240
|
-
};
|
|
241
|
-
})[];
|
|
242
|
-
meta: {
|
|
243
|
-
pagination: {
|
|
244
|
-
total: number;
|
|
245
|
-
count: number;
|
|
246
|
-
perPage: number;
|
|
247
|
-
currentPage: number;
|
|
248
|
-
totalPages: number;
|
|
249
|
-
links: {
|
|
250
|
-
[x: Lowercase<string>]: string;
|
|
251
|
-
};
|
|
252
|
-
};
|
|
253
|
-
};
|
|
254
|
-
object: "list";
|
|
255
|
-
}>;
|
|
256
|
-
server(id: string): UserServerClient;
|
|
257
13
|
}
|
|
258
14
|
//# sourceMappingURL=client.class.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.class.d.ts","sourceRoot":"","sources":["../../src/client/client.class.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.class.d.ts","sourceRoot":"","sources":["../../src/client/client.class.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,qBAAa,SAAS;IACpB,OAAO,CAAC,UAAU,CAAa;IAC/B,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC;IAChB,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,mBAAmB,CAAC;gBAExB,EACV,MAAM,EACN,QAAQ,EACR,QAAQ,GACT,EAAE;QACD,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,GAAG,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KAC/B;CAUF"}
|
|
@@ -1,25 +1,15 @@
|
|
|
1
1
|
import { HttpClient } from '../class/HttpClient.js';
|
|
2
|
-
import { buildQueryParams } from '../utils/buildQueryParams.js';
|
|
3
2
|
import { AccountClient } from './account/account.client.js';
|
|
4
|
-
import {
|
|
5
|
-
import { UserServerClient } from './server/server.client.js';
|
|
3
|
+
import { ClientServerManager } from './server/server.manager.js';
|
|
6
4
|
export class ClientAPI {
|
|
7
5
|
httpClient;
|
|
8
6
|
panelUrl;
|
|
9
7
|
account;
|
|
10
|
-
|
|
8
|
+
servers;
|
|
9
|
+
constructor({ apiKey, panelUrl, cacheTtl, }) {
|
|
11
10
|
this.panelUrl = panelUrl;
|
|
12
11
|
this.httpClient = new HttpClient(panelUrl, apiKey);
|
|
13
12
|
this.account = new AccountClient(this.httpClient);
|
|
14
|
-
|
|
15
|
-
fetchServers(options) {
|
|
16
|
-
const queries = buildQueryParams({
|
|
17
|
-
...options,
|
|
18
|
-
filter: userServerFilterSchema.optional().parse(options?.filter),
|
|
19
|
-
});
|
|
20
|
-
return this.httpClient.request('GET', `/client?${queries}`);
|
|
21
|
-
}
|
|
22
|
-
server(id) {
|
|
23
|
-
return new UserServerClient(this.httpClient, this.panelUrl, id);
|
|
13
|
+
this.servers = new ClientServerManager(this.httpClient, this.panelUrl, cacheTtl);
|
|
24
14
|
}
|
|
25
15
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { PaginationFetchOptions } from '../types.js';
|
|
2
|
-
export interface FetchUserServersOptions extends PaginationFetchOptions {
|
|
1
|
+
import type { PaginationFetchOptions, BaseFetchOptions } from '../types.js';
|
|
2
|
+
export interface FetchUserServersOptions extends PaginationFetchOptions, Omit<BaseFetchOptions, 'force'> {
|
|
3
3
|
filter?: {
|
|
4
4
|
uuid?: string | undefined;
|
|
5
5
|
name?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.types.d.ts","sourceRoot":"","sources":["../../src/client/client.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"client.types.d.ts","sourceRoot":"","sources":["../../src/client/client.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE5E,MAAM,WAAW,uBACf,SAAQ,sBAAsB,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC;IAC/D,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACjC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KAClC,CAAC;CACH"}
|
|
@@ -13,7 +13,8 @@ export * from './schedules/index.js';
|
|
|
13
13
|
export * from './startup/index.js';
|
|
14
14
|
export * from './subuser/index.js';
|
|
15
15
|
export * from './subusers/index.js';
|
|
16
|
-
export * from './server.
|
|
16
|
+
export * from './server.class.js';
|
|
17
|
+
export * from './server.manager.js';
|
|
17
18
|
export * from './server.schemas.js';
|
|
18
19
|
export * from './server.types.js';
|
|
19
20
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/server/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/server/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC"}
|
|
@@ -13,6 +13,7 @@ export * from './schedules/index.js';
|
|
|
13
13
|
export * from './startup/index.js';
|
|
14
14
|
export * from './subuser/index.js';
|
|
15
15
|
export * from './subusers/index.js';
|
|
16
|
-
export * from './server.
|
|
16
|
+
export * from './server.class.js';
|
|
17
|
+
export * from './server.manager.js';
|
|
17
18
|
export * from './server.schemas.js';
|
|
18
19
|
export * from './server.types.js';
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { HttpClient } from '../../class/HttpClient.js';
|
|
2
|
+
import type { CamelCasedProperties } from '../../utils/camelCase.js';
|
|
3
|
+
import type { Paginated, BaseFetchOptions } from '../../types.js';
|
|
4
|
+
import { AllocationClient } from './allocation/allocation.client.js';
|
|
5
|
+
import { AllocationsClient } from './allocations/allocations.client.js';
|
|
6
|
+
import { BackupClient } from './backup/backup.client.js';
|
|
7
|
+
import { BackupsClient } from './backups/backups.client.js';
|
|
8
|
+
import { ConsoleClient } from './console/console.client.js';
|
|
9
|
+
import { DatabaseClient } from './database/database.client.js';
|
|
10
|
+
import { DatabasesClient } from './databases/databases.client.js';
|
|
11
|
+
import { ImageClient } from './image/image.client.js';
|
|
12
|
+
import { PowerClient } from './power/power.client.js';
|
|
13
|
+
import { ResourceClient } from './resource/resource.client.js';
|
|
14
|
+
import { ScheduleClient } from './schedule/schedule.client.js';
|
|
15
|
+
import { SchedulesClient } from './schedules/schedules.client.js';
|
|
16
|
+
import type { SetUserServerDetailsPayload, ServerEvent, FetchUserServerActivityLogsOptions, ActivityLog, UserServer } from './server.types.js';
|
|
17
|
+
import { StartupClient } from './startup/startup.client.js';
|
|
18
|
+
import { SubuserClient } from './subuser/subuser.client.js';
|
|
19
|
+
import { SubusersClient } from './subusers/subusers.client.js';
|
|
20
|
+
import type { ClientServerManager } from './server.manager.js';
|
|
21
|
+
export declare class ClientServer {
|
|
22
|
+
private httpClient;
|
|
23
|
+
readonly panelUrl: URL;
|
|
24
|
+
private clientServerManager;
|
|
25
|
+
serverOwner: boolean;
|
|
26
|
+
identifier: string;
|
|
27
|
+
serverIdentifier: string;
|
|
28
|
+
internalId: number;
|
|
29
|
+
uuid: string;
|
|
30
|
+
name: string;
|
|
31
|
+
node: string;
|
|
32
|
+
isNodeUnderMaintenance: boolean;
|
|
33
|
+
sftpDetails: {
|
|
34
|
+
ip: string;
|
|
35
|
+
port: number;
|
|
36
|
+
};
|
|
37
|
+
description: string;
|
|
38
|
+
limits: {
|
|
39
|
+
memory: number;
|
|
40
|
+
swap: number;
|
|
41
|
+
disk: number;
|
|
42
|
+
io: number;
|
|
43
|
+
cpu: number;
|
|
44
|
+
threads: null | string;
|
|
45
|
+
oomDisabled: boolean;
|
|
46
|
+
};
|
|
47
|
+
invocation: string;
|
|
48
|
+
dockerImage: string;
|
|
49
|
+
eggFeatures: string[];
|
|
50
|
+
featureLimits: {
|
|
51
|
+
databases: number;
|
|
52
|
+
allocations: number;
|
|
53
|
+
backups: number;
|
|
54
|
+
};
|
|
55
|
+
isTransferring: boolean;
|
|
56
|
+
status: 'installing' | 'suspended' | null;
|
|
57
|
+
isInstalling: boolean;
|
|
58
|
+
isSuspended: boolean;
|
|
59
|
+
id: string;
|
|
60
|
+
allocations: AllocationsClient;
|
|
61
|
+
backups: BackupsClient;
|
|
62
|
+
console: ConsoleClient;
|
|
63
|
+
databases: DatabasesClient;
|
|
64
|
+
image: ImageClient;
|
|
65
|
+
power: PowerClient;
|
|
66
|
+
resource: ResourceClient;
|
|
67
|
+
schedules: SchedulesClient;
|
|
68
|
+
startup: StartupClient;
|
|
69
|
+
subusers: SubusersClient;
|
|
70
|
+
constructor(httpClient: HttpClient, panelUrl: URL, clientServerManager: ClientServerManager, data: Partial<CamelCasedProperties<UserServer['attributes']>> & Pick<CamelCasedProperties<UserServer['attributes']>, 'identifier'>);
|
|
71
|
+
fetchActivityLogs<Event extends ServerEvent>(options?: FetchUserServerActivityLogsOptions<Event>): Promise<Paginated<ActivityLog<Event>>>;
|
|
72
|
+
allocation(allocation: number): AllocationClient;
|
|
73
|
+
backup(backup: string): BackupClient;
|
|
74
|
+
database(database: string): DatabaseClient;
|
|
75
|
+
schedule(schedule: number): ScheduleClient;
|
|
76
|
+
subuser(subuser: string): SubuserClient;
|
|
77
|
+
fetch(options?: BaseFetchOptions): Promise<this>;
|
|
78
|
+
updateDetails(payload: SetUserServerDetailsPayload): Promise<void>;
|
|
79
|
+
reinstall(): Promise<void>;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=server.class.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.class.d.ts","sourceRoot":"","sources":["../../../src/client/server/server.class.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { HttpClient } from '../../class/HttpClient.js';
|
|
2
|
+
import { buildQueryParams } from '../../utils/buildQueryParams.js';
|
|
3
|
+
import { AllocationClient } from './allocation/allocation.client.js';
|
|
4
|
+
import { AllocationsClient } from './allocations/allocations.client.js';
|
|
5
|
+
import { BackupClient } from './backup/backup.client.js';
|
|
6
|
+
import { BackupsClient } from './backups/backups.client.js';
|
|
7
|
+
import { ConsoleClient } from './console/console.client.js';
|
|
8
|
+
import { DatabaseClient } from './database/database.client.js';
|
|
9
|
+
import { DatabasesClient } from './databases/databases.client.js';
|
|
10
|
+
import { ImageClient } from './image/image.client.js';
|
|
11
|
+
import { PowerClient } from './power/power.client.js';
|
|
12
|
+
import { ResourceClient } from './resource/resource.client.js';
|
|
13
|
+
import { ScheduleClient } from './schedule/schedule.client.js';
|
|
14
|
+
import { SchedulesClient } from './schedules/schedules.client.js';
|
|
15
|
+
import { setUserServerDetailsSchema, userServerActivityEvent, } from './server.schemas.js';
|
|
16
|
+
import { StartupClient } from './startup/startup.client.js';
|
|
17
|
+
import { SubuserClient } from './subuser/subuser.client.js';
|
|
18
|
+
import { SubusersClient } from './subusers/subusers.client.js';
|
|
19
|
+
import { setManagerCacheSymbol } from '../../symbols.js';
|
|
20
|
+
export class ClientServer {
|
|
21
|
+
httpClient;
|
|
22
|
+
panelUrl;
|
|
23
|
+
clientServerManager;
|
|
24
|
+
serverOwner;
|
|
25
|
+
identifier;
|
|
26
|
+
serverIdentifier;
|
|
27
|
+
internalId;
|
|
28
|
+
uuid;
|
|
29
|
+
name;
|
|
30
|
+
node;
|
|
31
|
+
isNodeUnderMaintenance;
|
|
32
|
+
sftpDetails;
|
|
33
|
+
description;
|
|
34
|
+
limits;
|
|
35
|
+
invocation;
|
|
36
|
+
dockerImage;
|
|
37
|
+
eggFeatures;
|
|
38
|
+
featureLimits;
|
|
39
|
+
isTransferring;
|
|
40
|
+
status;
|
|
41
|
+
isInstalling;
|
|
42
|
+
isSuspended;
|
|
43
|
+
id;
|
|
44
|
+
allocations;
|
|
45
|
+
backups;
|
|
46
|
+
console;
|
|
47
|
+
databases;
|
|
48
|
+
image;
|
|
49
|
+
power;
|
|
50
|
+
resource;
|
|
51
|
+
schedules;
|
|
52
|
+
startup;
|
|
53
|
+
subusers;
|
|
54
|
+
constructor(httpClient, panelUrl, clientServerManager, data) {
|
|
55
|
+
this.httpClient = httpClient;
|
|
56
|
+
this.panelUrl = panelUrl;
|
|
57
|
+
this.clientServerManager = clientServerManager;
|
|
58
|
+
Object.assign(this, data);
|
|
59
|
+
this.id = this.identifier;
|
|
60
|
+
this.allocations = new AllocationsClient(httpClient, this.id);
|
|
61
|
+
this.backups = new BackupsClient(httpClient, this.id);
|
|
62
|
+
this.console = new ConsoleClient(httpClient, panelUrl, this.id);
|
|
63
|
+
this.databases = new DatabasesClient(httpClient, this.id);
|
|
64
|
+
this.image = new ImageClient(httpClient, this.id);
|
|
65
|
+
this.power = new PowerClient(httpClient, this.id);
|
|
66
|
+
this.resource = new ResourceClient(httpClient, this.id);
|
|
67
|
+
this.schedules = new SchedulesClient(httpClient, this.id);
|
|
68
|
+
this.startup = new StartupClient(httpClient, this.id);
|
|
69
|
+
this.subusers = new SubusersClient(httpClient, this.id);
|
|
70
|
+
}
|
|
71
|
+
async fetchActivityLogs(options) {
|
|
72
|
+
const event = userServerActivityEvent
|
|
73
|
+
.optional()
|
|
74
|
+
.parse(options?.filter?.event);
|
|
75
|
+
const queries = buildQueryParams({
|
|
76
|
+
...options,
|
|
77
|
+
filter: { event },
|
|
78
|
+
});
|
|
79
|
+
const activityObjectList = await this.httpClient.request('GET', `/client/servers/${this.id}/activity?${queries}`, {
|
|
80
|
+
parseDates: true,
|
|
81
|
+
});
|
|
82
|
+
return {
|
|
83
|
+
data: activityObjectList.data.map((activityObject) => activityObject.attributes),
|
|
84
|
+
pagination: activityObjectList.meta.pagination,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
allocation(allocation) {
|
|
88
|
+
return new AllocationClient(this.httpClient, this.id, allocation);
|
|
89
|
+
}
|
|
90
|
+
backup(backup) {
|
|
91
|
+
return new BackupClient(this.httpClient, this.id, backup);
|
|
92
|
+
}
|
|
93
|
+
database(database) {
|
|
94
|
+
return new DatabaseClient(this.httpClient, this.id, database);
|
|
95
|
+
}
|
|
96
|
+
schedule(schedule) {
|
|
97
|
+
return new ScheduleClient(this.httpClient, this.id, schedule);
|
|
98
|
+
}
|
|
99
|
+
subuser(subuser) {
|
|
100
|
+
return new SubuserClient(this.httpClient, this.id, subuser);
|
|
101
|
+
}
|
|
102
|
+
async fetch(options) {
|
|
103
|
+
const serverObject = await this.httpClient.request('GET', `/client/servers/${this.id}`, { parseDates: true });
|
|
104
|
+
Object.assign(this, serverObject.attributes);
|
|
105
|
+
this.clientServerManager[setManagerCacheSymbol](this, options?.cache);
|
|
106
|
+
return this;
|
|
107
|
+
}
|
|
108
|
+
updateDetails(payload) {
|
|
109
|
+
return this.httpClient.request('POST', `/client/servers/${this.id}/settings/rename`, setUserServerDetailsSchema.parse(payload));
|
|
110
|
+
}
|
|
111
|
+
reinstall() {
|
|
112
|
+
return this.httpClient.request('POST', `/client/servers/${this.id}/settings/reinstall`);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { HttpClient } from '../../class/HttpClient.js';
|
|
2
|
+
import type { BaseFetchOptions, Paginated } from '../../types.js';
|
|
3
|
+
import { BaseCacheManager } from '../../class/BaseCacheManager.js';
|
|
4
|
+
import { ClientServer } from './server.class.js';
|
|
5
|
+
import type { FetchUserServersOptions } from '../client.types.js';
|
|
6
|
+
export declare class ClientServerManager extends BaseCacheManager<string, ClientServer> {
|
|
7
|
+
private httpClient;
|
|
8
|
+
readonly panelUrl: URL;
|
|
9
|
+
constructor(httpClient: HttpClient, panelUrl: URL, cacheTtl?: number);
|
|
10
|
+
list(options?: FetchUserServersOptions): Promise<Paginated<ClientServer>>;
|
|
11
|
+
fetch(id: string, options?: BaseFetchOptions): Promise<ClientServer>;
|
|
12
|
+
resolve(id: string): ClientServer;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=server.manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.manager.d.ts","sourceRoot":"","sources":["../../../src/client/server/server.manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAElE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAIlE,qBAAa,mBAAoB,SAAQ,gBAAgB,CACvD,MAAM,EACN,YAAY,CACb;IAEG,OAAO,CAAC,UAAU;IAClB,QAAQ,CAAC,QAAQ,EAAE,GAAG;gBADd,UAAU,EAAE,UAAU,EACrB,QAAQ,EAAE,GAAG,EACtB,QAAQ,GAAE,MAAuC;IAK7C,IAAI,CACR,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IA4B7B,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC;IAsB1E,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY;CASlC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { ONE_MINUTE_IN_MILLISECONDS } from '../../utils/vars.js';
|
|
2
|
+
import { BaseCacheManager } from '../../class/BaseCacheManager.js';
|
|
3
|
+
import { buildQueryParams } from '../../utils/buildQueryParams.js';
|
|
4
|
+
import { ClientServer } from './server.class.js';
|
|
5
|
+
import { userServerFilterSchema } from '../client.schema.js';
|
|
6
|
+
import { userServerId } from './server.schemas.js';
|
|
7
|
+
export class ClientServerManager extends BaseCacheManager {
|
|
8
|
+
httpClient;
|
|
9
|
+
panelUrl;
|
|
10
|
+
constructor(httpClient, panelUrl, cacheTtl = ONE_MINUTE_IN_MILLISECONDS * 5) {
|
|
11
|
+
super(cacheTtl, 'id');
|
|
12
|
+
this.httpClient = httpClient;
|
|
13
|
+
this.panelUrl = panelUrl;
|
|
14
|
+
}
|
|
15
|
+
async list(options) {
|
|
16
|
+
const queries = buildQueryParams({
|
|
17
|
+
...options,
|
|
18
|
+
filter: userServerFilterSchema.optional().parse(options?.filter),
|
|
19
|
+
});
|
|
20
|
+
const serverList = await this.httpClient.request('GET', `/client?${queries}`, { parseDates: true });
|
|
21
|
+
return {
|
|
22
|
+
data: serverList.data.map((serverObject) => this.setCache(new ClientServer(this.httpClient, this.panelUrl, this, serverObject.attributes), options?.cache)),
|
|
23
|
+
pagination: serverList.meta.pagination,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
async fetch(id, options) {
|
|
27
|
+
const cacheServer = this.getCache(id);
|
|
28
|
+
if (cacheServer && !options?.force)
|
|
29
|
+
return cacheServer;
|
|
30
|
+
const parsedId = userServerId.parse(id);
|
|
31
|
+
const serverObject = await this.httpClient.request('GET', `/client/servers/${parsedId}`, { parseDates: true });
|
|
32
|
+
return this.setCache(new ClientServer(this.httpClient, this.panelUrl, this, serverObject.attributes), options?.cache);
|
|
33
|
+
}
|
|
34
|
+
resolve(id) {
|
|
35
|
+
return super.resolve(id, () => new ClientServer(this.httpClient, this.panelUrl, this, {
|
|
36
|
+
identifier: userServerId.parse(id),
|
|
37
|
+
}));
|
|
38
|
+
}
|
|
39
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pterodactyl-api-client",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.1.0",
|
|
4
4
|
"description": "SDK TypeScript non officiel et entièrement typé pour l’API Pterodactyl.\nCouvre l’ensemble des endpoints client et application avec une architecture modulaire, orientée classes, conçue pour Node.js et les environnements TypeScript stricts.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|