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.
Files changed (34) hide show
  1. package/README.md +66 -30
  2. package/dist/application/application.client.d.ts +2 -2
  3. package/dist/application/application.client.d.ts.map +1 -1
  4. package/dist/application/application.client.js +2 -2
  5. package/dist/application/server/server.class.d.ts +3 -3
  6. package/dist/application/server/server.class.d.ts.map +1 -1
  7. package/dist/application/server/server.class.js +1 -1
  8. package/dist/application/server/server.manager.d.ts +6 -6
  9. package/dist/application/server/server.manager.d.ts.map +1 -1
  10. package/dist/application/server/server.manager.js +7 -7
  11. package/dist/application/user/user.class.d.ts +3 -3
  12. package/dist/application/user/user.class.d.ts.map +1 -1
  13. package/dist/application/user/user.manager.d.ts +2 -2
  14. package/dist/application/user/user.manager.d.ts.map +1 -1
  15. package/dist/application/user/user.manager.js +4 -4
  16. package/dist/application/user/user.types.d.ts +2 -2
  17. package/dist/application/user/user.types.d.ts.map +1 -1
  18. package/dist/class.d.ts.map +1 -1
  19. package/dist/class.js +5 -1
  20. package/dist/client/client.class.d.ts +4 -248
  21. package/dist/client/client.class.d.ts.map +1 -1
  22. package/dist/client/client.class.js +4 -14
  23. package/dist/client/client.types.d.ts +2 -2
  24. package/dist/client/client.types.d.ts.map +1 -1
  25. package/dist/client/server/index.d.ts +2 -1
  26. package/dist/client/server/index.d.ts.map +1 -1
  27. package/dist/client/server/index.js +2 -1
  28. package/dist/client/server/server.class.d.ts +81 -0
  29. package/dist/client/server/server.class.d.ts.map +1 -0
  30. package/dist/client/server/server.class.js +114 -0
  31. package/dist/client/server/server.manager.d.ts +14 -0
  32. package/dist/client/server/server.manager.d.ts.map +1 -0
  33. package/dist/client/server/server.manager.js +39 -0
  34. 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 client de Pterodactyl**.
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
- baseUrl: 'https://panel.example.com',
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
- baseUrl: 'https://panel.example.com',
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 basique
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.info();
50
- console.log(info.attributes.username);
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.info(srv.attributes.identifier);
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
- ### Activité d’un serveur
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
- const activity = await client.user.servers.activity.list({
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: 50,
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(serverId, {
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, permettant de distinguer :
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 { PterodactylAPIError } from 'pterodactyl-api-client';
159
+ import { ApiError } from 'pterodactyl-api-client';
121
160
 
122
161
  try {
123
- const activity = await client.user.servers.activity.list({
124
- page: 1,
125
- per_page: 50,
126
- });
162
+ const info = await client.user.account.fetch();
127
163
  } catch (e) {
128
- if (e instanceof PterodactylAPIError) {
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 { ServerManager } from './server/server.manager.js';
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: ServerManager;
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,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,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,aAAa,CAAC;IACvB,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"}
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 { ServerManager } from './server/server.manager.js';
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 ServerManager(this.httpClient, cache?.servers, cache?.databases);
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 { ServerManager } from './server.manager.js';
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 Server<ServerStatus extends Status = Status> {
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: ServerManager, data: Partial<BaseApplicationServer> & (Pick<BaseApplicationServer, 'id'> | Pick<BaseApplicationServer, 'externalId'>), databasesTtl?: number);
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,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAUzD,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,MAAM,CAAC,YAAY,SAAS,MAAM,GAAG,MAAM;IAwCpD,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,aAAa,EACpC,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
+ {"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 Server {
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 { Server } from './server.class.js';
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 ServerManager extends BaseCacheManager<number | string, Server> {
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<Server>>;
11
- fetch(server: ApplicationServerIds, options?: BaseFetchOptions): Promise<Server>;
12
- resolve(server: number | string): Server;
13
- create(payload: CreateServerPayload, options?: Pick<BaseFetchOptions, 'cache'>): Promise<Server>;
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,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,qBAAa,aAAc,SAAQ,gBAAgB,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC;IAIxE,OAAO,CAAC,UAAU;IAHpB,OAAO,CAAC,YAAY,CAAqB;gBAG/B,UAAU,EAAE,UAAU,EAC9B,QAAQ,GAAE,MAAuC,EACjD,YAAY,CAAC,EAAE,MAAM;IAMjB,IAAI,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IA0B9D,KAAK,CACT,MAAM,EAAE,oBAAoB,EAC5B,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,MAAM,CAAC;IA0BlB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IAyBlC,MAAM,CACV,OAAO,EAAE,mBAAmB,EAC5B,OAAO,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,GACxC,OAAO,CAAC,MAAM,CAAC;CAkBnB"}
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 { Server } from './server.class.js';
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 ServerManager extends BaseCacheManager {
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 Server(this.httpClient, this, serverObject.attributes, this.databasesTtl), options?.cache)),
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 Server(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);
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 Server(this.httpClient, this, {
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 Server(this.httpClient, this, {
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 Server(this.httpClient, this, (await this.httpClient.request('POST', '/application/servers', createServerSchema.parse(payload), {
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 { Server } from '../server/server.class.js';
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 ? Server[] : never;
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: Server[];
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,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,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,MAAM,EAAE,GAAG,KAAK,CAAC;gBAGlD,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,MAAM,EAAE,CAAC;KACnB,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"}
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 { ServerManager } from '../server/server.manager.js';
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: ServerManager, cacheTtl?: number);
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,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,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,aAAa,EACpC,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"}
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 { Server } from '../server/server.class.js';
7
- import { ServerManager } from '../server/server.manager.js';
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 Server(this.httpClient, this.serverManager, serverObject.attributes)),
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 Server(this.httpClient, this.serverManager, serverObject.attributes)),
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 { Server } from '../server/server.class.js';
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: Server[];
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":"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"}
1
+ {"version":3,"file":"user.types.d.ts","sourceRoot":"","sources":["../../../src/application/user/user.types.ts"],"names":[],"mappings":"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"}
@@ -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;CAaF"}
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({ panelUrl: this.panelUrl, apiKey: this.apiKey });
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 type { FetchUserServersOptions } from './client.types.js';
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
- constructor({ apiKey, panelUrl }: {
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":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAG7D,qBAAa,SAAS;IACpB,OAAO,CAAC,UAAU,CAAa;IAC/B,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC;IAChB,OAAO,EAAE,aAAa,CAAC;gBAElB,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,GAAG,CAAA;KAAE;IAMnE,YAAY,CAAC,OAAO,CAAC,EAAE,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAQ9C,MAAM,CAAC,EAAE,EAAE,MAAM;CAGlB"}
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 { userServerFilterSchema } from './client.schema.js';
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
- constructor({ apiKey, panelUrl }) {
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;AAE1D,MAAM,WAAW,uBAAwB,SAAQ,sBAAsB;IACrE,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"}
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.client.js';
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,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,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.client.js';
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.0.0",
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",