exaroton 1.12.0 → 2.0.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 (66) hide show
  1. package/README.md +40 -2
  2. package/index.js +20 -10
  3. package/package.json +19 -15
  4. package/src/Account/Account.js +2 -4
  5. package/src/Billing/Pool/Pool.js +4 -6
  6. package/src/Billing/Pool/PoolMember.js +1 -3
  7. package/src/Client.js +43 -48
  8. package/src/Error/RequestBodyError.js +8 -6
  9. package/src/Error/RequestError.js +21 -13
  10. package/src/Error/RequestStatusError.js +8 -8
  11. package/src/Request/Account/GetAccountRequest.js +2 -4
  12. package/src/Request/Billing/Pool/GetPoolMembersRequest.js +3 -5
  13. package/src/Request/Billing/Pool/GetPoolRequest.js +2 -4
  14. package/src/Request/Billing/Pool/GetPoolServersRequest.js +3 -5
  15. package/src/Request/Billing/Pool/GetPoolsRequest.js +3 -5
  16. package/src/Request/Billing/Pool/PoolRequest.js +2 -4
  17. package/src/Request/GetServersRequest.js +3 -5
  18. package/src/Request/Request.js +11 -12
  19. package/src/Request/Server/ExecuteServerCommandRequest.js +2 -4
  20. package/src/Request/Server/ExtendServerStopTimeRequest.js +2 -4
  21. package/src/Request/Server/Files/Config/GetConfigFileOptionsRequest.js +2 -4
  22. package/src/Request/Server/Files/Config/UpdateConfigFileOptionsRequest.js +2 -4
  23. package/src/Request/Server/Files/CreateDirectoryRequest.js +2 -4
  24. package/src/Request/Server/Files/DeleteFileDataRequest.js +2 -4
  25. package/src/Request/Server/Files/FileDataRequest.js +2 -4
  26. package/src/Request/Server/Files/FileRequest.js +2 -4
  27. package/src/Request/Server/Files/GetFileDataRequest.js +2 -4
  28. package/src/Request/Server/Files/GetFileInformationRequest.js +2 -4
  29. package/src/Request/Server/Files/PutFileDataRequest.js +2 -4
  30. package/src/Request/Server/GetServerLogsRequest.js +2 -4
  31. package/src/Request/Server/GetServerOptionRequest.js +2 -4
  32. package/src/Request/Server/GetServerRequest.js +2 -4
  33. package/src/Request/Server/PlayerLists/DeletePlayerListEntriesRequest.js +2 -4
  34. package/src/Request/Server/PlayerLists/GetPlayerListEntriesRequest.js +2 -4
  35. package/src/Request/Server/PlayerLists/GetPlayerListsRequest.js +3 -5
  36. package/src/Request/Server/PlayerLists/PlayerListRequest.js +2 -4
  37. package/src/Request/Server/PlayerLists/PutPlayerListEntriesRequest.js +2 -4
  38. package/src/Request/Server/RestartServerRequest.js +2 -4
  39. package/src/Request/Server/ServerRequest.js +2 -4
  40. package/src/Request/Server/SetServerOptionRequest.js +2 -4
  41. package/src/Request/Server/ShareServerLogsRequest.js +2 -4
  42. package/src/Request/Server/StartServerRequest.js +2 -4
  43. package/src/Request/Server/StopServerRequest.js +2 -4
  44. package/src/Response/ArrayResponse.js +2 -4
  45. package/src/Response/PlayerListsResponse.js +3 -4
  46. package/src/Response/PoolMembersResponse.js +3 -5
  47. package/src/Response/PoolsResponse.js +3 -5
  48. package/src/Response/Response.js +1 -3
  49. package/src/Response/ServersResponse.js +3 -5
  50. package/src/Server/Config/Config.js +4 -6
  51. package/src/Server/Config/ConfigOption.js +1 -3
  52. package/src/Server/Config/ConfigOptionType.js +1 -3
  53. package/src/Server/File.js +8 -10
  54. package/src/Server/PlayerList.js +4 -6
  55. package/src/Server/Players.js +1 -4
  56. package/src/Server/Server.js +22 -24
  57. package/src/Server/ServerStatus.js +1 -2
  58. package/src/Server/Software.js +1 -3
  59. package/src/Websocket/ConsoleStream.js +2 -4
  60. package/src/Websocket/HeapStream.js +2 -4
  61. package/src/Websocket/ManagementProxyConnection.js +24 -0
  62. package/src/Websocket/ServerManagementStream.js +78 -0
  63. package/src/Websocket/StatsStream.js +2 -4
  64. package/src/Websocket/Stream.js +3 -5
  65. package/src/Websocket/TickStream.js +2 -4
  66. package/src/Websocket/WebsocketClient.js +12 -12
package/README.md CHANGED
@@ -6,6 +6,9 @@ the server. You can read the API documentation here: https://developers.exaroton
6
6
 
7
7
  This is the official Node.js implementation of this API.
8
8
 
9
+ ### Requirements
10
+ - Node 22 or later
11
+
9
12
  ### Installation
10
13
 
11
14
  ```
@@ -18,7 +21,7 @@ To use the API and this client you have to get your API key, which you can gener
18
21
 
19
22
  ### Create a client object
20
23
  ```js
21
- const {Client} = require('exaroton');
24
+ import {Client} from 'exaroton'
22
25
 
23
26
  const client = new Client(token);
24
27
  ```
@@ -69,7 +72,7 @@ if (server.hasStatus(server.STATUS.ONLINE)) {
69
72
  }
70
73
  ```
71
74
  The server status is an `integer` as described in the [documentation](https://developers.exaroton.com/#header-server-status). You can use
72
- the [ServerStatus](./src/Server/ServerStatus.js) object, which you can require on its own `const {ServerStatus} = require('exaroton')` or via the
75
+ the [ServerStatus](./src/Server/ServerStatus.js) object, which you can require on its own `import {ServerStatus} from 'exaroton'` or via the
73
76
  shorthand `server.STATUS` property.
74
77
 
75
78
  #### Start/stop/restart the server
@@ -93,6 +96,15 @@ try {
93
96
  }
94
97
  ```
95
98
 
99
+ #### Extend the server stop timer
100
+ ```js
101
+ try {
102
+ await server.extendStopTime(60);
103
+ } catch (e) {
104
+ console.error(e.message);
105
+ }
106
+ ```
107
+
96
108
  #### Get the server logs
97
109
  ```js
98
110
  try {
@@ -448,6 +460,32 @@ server.on("heap:heap", function(data) {
448
460
  });
449
461
  ```
450
462
 
463
+ ### Management Protocol
464
+ The Minecraft server management protocol introduced in 1.21.9 allows controlling various server settings without
465
+ restarting the server and receiving events from the server. This API client supports proxying this protocol through the
466
+ exaroton websocket connection and using it with the [`mc-server-management`](https://github.com/aternosorg/mc-server-management)
467
+ library.
468
+
469
+ ```js
470
+ // To use it, first subscribe to the `management` stream:
471
+ server.subscribe("management");
472
+ // Then get a connection object from the stream:
473
+ const connection = server.getWebsocketClient().getStream("management").getProxyConnection();
474
+ // And create an object from the management library:
475
+ import {MinecraftServer} from "mc-server-management";
476
+ const mcServer = new MinecraftServer(stream.getProxyConnection());
477
+
478
+ // Now you can perform requests such as getting the server status:
479
+ let status = await mcServer.getStatus();
480
+
481
+ // And subscribe to notifications:
482
+ import {Notifications} from "mc-server-management";
483
+ mcServer.on(Notifications.ALLOWLIST_ADDED, data => {
484
+ console.log("Allowlist added", data);
485
+ });
486
+ ```
487
+
488
+
451
489
  #### Unsubscribe
452
490
  You can unsubscribe from one, multiple or all streams using the `server.unsubscribe()` function.
453
491
 
package/index.js CHANGED
@@ -1,11 +1,21 @@
1
- module.exports = {
2
- Client: require('./src/Client'),
3
- Server: require('./src/Server/Server'),
4
- Software: require('./src/Server/Software'),
5
- ServerStatus: require('./src/Server/ServerStatus'),
6
- Request: require('./src/Request/Request'),
7
- Response: require('./src/Response/Response'),
8
- ConfigOptionType: require('./src/Server/Config/ConfigOptionType'),
9
- Pool: require('./src/Billing/Pool/Pool'),
10
- PoolMember: require('./src/Billing/Pool/PoolMember')
1
+ import Client from "./src/Client.js";
2
+ import Server from "./src/Server/Server.js";
3
+ import Software from "./src/Server/Software.js";
4
+ import ServerStatus from "./src/Server/ServerStatus.js";
5
+ import Request from "./src/Request/Request.js";
6
+ import Response from "./src/Response/Response.js";
7
+ import ConfigOptionType from "./src/Server/Config/ConfigOptionType.js";
8
+ import Pool from "./src/Billing/Pool/Pool.js";
9
+ import PoolMember from "./src/Billing/Pool/PoolMember.js";
10
+
11
+ export {
12
+ Client,
13
+ Server,
14
+ Software,
15
+ ServerStatus,
16
+ Request,
17
+ Response,
18
+ ConfigOptionType,
19
+ Pool,
20
+ PoolMember,
11
21
  }
package/package.json CHANGED
@@ -1,17 +1,21 @@
1
1
  {
2
- "name": "exaroton",
3
- "version": "1.12.0",
4
- "description": "exaroton API client",
5
- "homepage": "https://exaroton.com",
6
- "main": "index.js",
7
- "repository": "github:exaroton/node-exaroton-api",
8
- "author": "Matthias Neid",
9
- "license": "MIT",
10
- "engines": {
11
- "node": ">=12.0.0"
12
- },
13
- "dependencies": {
14
- "got": "^11.8.2",
15
- "ws": "^7.4.5"
16
- }
2
+ "name": "exaroton",
3
+ "version": "2.0.0",
4
+ "description": "exaroton API client",
5
+ "homepage": "https://exaroton.com",
6
+ "main": "index.js",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/exaroton/node-exaroton-api.git"
10
+ },
11
+ "author": "Matthias Neid",
12
+ "license": "MIT",
13
+ "type": "module",
14
+ "engines": {
15
+ "node": ">=22.0.0"
16
+ },
17
+ "dependencies": {
18
+ "mc-server-management": "^3.0.0",
19
+ "ws": "^8.18.3"
20
+ }
17
21
  }
@@ -1,6 +1,6 @@
1
- const GetAccountRequest = require('../Request/Account/GetAccountRequest');
1
+ import GetAccountRequest from '../Request/Account/GetAccountRequest.js'
2
2
 
3
- class Account {
3
+ export default class Account {
4
4
  /**
5
5
  * @type {Client}
6
6
  * @private
@@ -70,5 +70,3 @@ class Account {
70
70
  return this;
71
71
  }
72
72
  }
73
-
74
- module.exports = Account;
@@ -1,8 +1,8 @@
1
- const GetPoolRequest = require("../../Request/Billing/Pool/GetPoolRequest.js");
2
- const GetPoolMembersRequest = require("../../Request/Billing/Pool/GetPoolMembersRequest.js");
3
- const GetPoolServersRequest = require("../../Request/Billing/Pool/GetPoolServersRequest.js");
1
+ import GetPoolRequest from '../../Request/Billing/Pool/GetPoolRequest.js'
2
+ import GetPoolMembersRequest from '../../Request/Billing/Pool/GetPoolMembersRequest.js'
3
+ import GetPoolServersRequest from '../../Request/Billing/Pool/GetPoolServersRequest.js'
4
4
 
5
- class Pool {
5
+ export default class Pool {
6
6
  /**
7
7
  * @type {Client}
8
8
  * @private
@@ -133,5 +133,3 @@ class Pool {
133
133
  return response.getData();
134
134
  }
135
135
  }
136
-
137
- module.exports = Pool;
@@ -1,5 +1,5 @@
1
1
 
2
- class PoolMember {
2
+ export default class PoolMember {
3
3
  /**
4
4
  * Pool member account ID
5
5
  *
@@ -48,5 +48,3 @@ class PoolMember {
48
48
  this.isOwner = typeof poolMemberObject.isOwner !== "undefined" ? poolMemberObject.isOwner : null;
49
49
  }
50
50
  }
51
-
52
- module.exports = PoolMember;
package/src/Client.js CHANGED
@@ -1,17 +1,18 @@
1
- const got = require('got');
2
- const fs = require("fs").promises;
1
+ import {unlink} from 'fs/promises'
3
2
 
4
- const Server = require('./Server/Server');
5
- const Account = require('./Account/Account');
6
- const RequestStatusError = require('./Error/RequestStatusError');
7
- const RequestBodyError = require('./Error/RequestBodyError');
8
- const GetServersRequest = require('./Request/GetServersRequest');
9
- const GetPoolsRequest = require('./Request/Billing/Pool/GetPoolsRequest');
3
+ import Server from './Server/Server.js'
4
+ import Account from './Account/Account.js'
5
+ import RequestStatusError from './Error/RequestStatusError.js'
6
+ import RequestBodyError from './Error/RequestBodyError.js'
7
+ import GetServersRequest from './Request/GetServersRequest.js'
8
+ import GetPoolsRequest from './Request/Billing/Pool/GetPoolsRequest.js'
10
9
 
11
- const packageConfig = require('../package.json');
12
- const Pool = require("./Billing/Pool/Pool.js");
10
+ import packageConfig from '../package.json' with { type: 'json' }
11
+ import Pool from './Billing/Pool/Pool.js'
12
+ import * as stream from "node:stream";
13
+ import RequestError from "./Error/RequestError.js";
13
14
 
14
- class Client {
15
+ export default class Client {
15
16
  /**
16
17
  * @type {string}
17
18
  */
@@ -109,62 +110,58 @@ class Client {
109
110
  request.client = this;
110
111
  const url = this.baseURL + request.getEndpoint();
111
112
 
112
- let gotOptions = {
113
+ /** @type {RequestInit} */
114
+ const options = {
113
115
  method: request.method,
114
- retry: 0,
115
- responseType: request.responseType
116
- };
116
+ headers: Object.assign({
117
+ "authorization": "Bearer " + this.#apiToken,
118
+ "user-agent": this.#userAgent
119
+ }, request.headers)
120
+ }
117
121
 
118
122
  if (request.hasBody()) {
119
- gotOptions.body = request.getBody();
123
+ options.body = request.getBody();
120
124
  }
121
125
 
122
- gotOptions.headers = Object.assign({
123
- "authorization": "Bearer " + this.#apiToken,
124
- "user-agent": this.#userAgent
125
- }, request.headers);
126
-
127
126
  let response;
128
127
  try {
128
+ response = await fetch(url, options);
129
+ if (!response.ok) {
130
+ let data = null;
131
+ try {
132
+ data = await response.json();
133
+ } catch (e) { }
134
+ throw new RequestStatusError(response, data)
135
+ }
129
136
  if (request.hasOutputStream()) {
130
- await this.streamResponse(url, gotOptions, request.getOutputStream());
137
+ await response.body.pipeTo(stream.Writable.toWeb(request.getOutputStream()))
131
138
  return request.createResponse();
132
- } else {
133
- response = await got(url, gotOptions);
134
139
  }
135
140
  } catch (e) {
136
141
  if (request.outputPath !== null) {
137
142
  try {
138
- await fs.unlink(request.outputPath);
143
+ await unlink(request.outputPath);
139
144
  } catch (e) {
140
145
  // ignore
141
146
  }
142
147
  }
143
- throw new RequestStatusError(e);
148
+
149
+ if (e instanceof RequestError) {
150
+ throw e;
151
+ }
152
+ throw new RequestError(e);
144
153
  }
145
154
 
146
- if (!request.expectsJsonResponse() || response.body.success) {
147
- return request.createResponse(response.body);
148
- } else {
149
- throw new RequestBodyError(response);
155
+ if (request.expectsJsonResponse()) {
156
+ const data = await response.json();
157
+ if (data.success) {
158
+ return request.createResponse(data);
159
+ }
160
+
161
+ throw new RequestBodyError(response, data);
150
162
  }
151
- }
152
163
 
153
- /**
154
- * @param {string} url
155
- * @param {{}} gotOptions
156
- * @param {stream.Writable} outputStream
157
- * @return {Promise<unknown>}
158
- */
159
- streamResponse(url, gotOptions, outputStream) {
160
- return new Promise((resolve, reject) => {
161
- let stream = got.stream(url, gotOptions);
162
- stream.pipe(outputStream);
163
- stream.on("error", async (error) => {
164
- reject(error);
165
- });
166
- stream.on("end", resolve);
167
- });
164
+ return request.createResponse(await response.text());
168
165
  }
169
166
 
170
167
  /**
@@ -217,5 +214,3 @@ class Client {
217
214
  return new Pool(this, id);
218
215
  }
219
216
  }
220
-
221
- module.exports = Client;
@@ -1,10 +1,12 @@
1
- const RequestError = require('./RequestError');
1
+ import RequestError from './RequestError.js'
2
2
 
3
- class RequestBodyError extends RequestError {
4
- constructor(response) {
3
+ export default class RequestBodyError extends RequestError {
4
+ /**
5
+ * @param {Response} response fetch response object
6
+ * @param {any} data response data
7
+ */
8
+ constructor(response, data) {
5
9
  super();
6
- this.setErrorFromResponseBody(response);
10
+ this.setErrorFromResponseBody(response, data);
7
11
  }
8
12
  }
9
-
10
- module.exports = RequestBodyError;
@@ -1,25 +1,33 @@
1
- class RequestError extends Error {
2
- statusCode;
3
- error;
1
+ export default class RequestError extends Error {
2
+ statusCode = 0;
3
+ /**
4
+ * @type {Response|null} Response object that caused the error (if any)
5
+ */
4
6
  response;
5
7
 
8
+ /**
9
+ * @param {Error|null} error
10
+ */
11
+ constructor(error = null) {
12
+ super();
13
+ if (error instanceof Error) {
14
+ this.message = error.toString();
15
+ }
16
+ }
17
+
6
18
  /**
7
19
  * Set error and status code from response object
8
20
  *
9
21
  * Returns if an error message was found
10
22
  *
11
- * @param {{}} response
12
- * @return {boolean}
23
+ * @param {Response} response fetch response object
24
+ * @param {any} data response data
13
25
  */
14
- setErrorFromResponseBody(response) {
26
+ setErrorFromResponseBody(response, data) {
15
27
  this.response = response;
16
- this.statusCode = typeof response.statusCode === "number" ? response.statusCode : 0;
17
- if (typeof response.body === "object" && typeof response.body.success === "boolean" && !response.body.success && typeof response.body.error === "string") {
18
- this.message = response.body.error;
19
- return true;
28
+ this.statusCode = response.status;
29
+ if (typeof data === "object" && typeof data.success === "boolean" && !data.success && typeof data.error === "string") {
30
+ this.message = data.error;
20
31
  }
21
- return false;
22
32
  }
23
33
  }
24
-
25
- module.exports = RequestError;
@@ -1,12 +1,12 @@
1
- const RequestError = require('./RequestError');
1
+ import RequestError from './RequestError.js'
2
2
 
3
- class RequestStatusError extends RequestError {
4
- constructor(error) {
3
+ export default class RequestStatusError extends RequestError {
4
+ /**
5
+ * @param {Response} response fetch response object
6
+ * @param {any} data response data
7
+ */
8
+ constructor(response, data) {
5
9
  super();
6
- if (!error.response || !this.setErrorFromResponseBody(error.response)) {
7
- this.message = error.toString();
8
- }
10
+ this.setErrorFromResponseBody(response, data);
9
11
  }
10
12
  }
11
-
12
- module.exports = RequestStatusError;
@@ -1,7 +1,5 @@
1
- const Request = require('../Request');
1
+ import Request from '../Request.js'
2
2
 
3
- class GetAccountRequest extends Request {
3
+ export default class GetAccountRequest extends Request {
4
4
  endpoint = "account/";
5
5
  }
6
-
7
- module.exports = GetAccountRequest;
@@ -1,9 +1,7 @@
1
- const PoolRequest = require("./PoolRequest.js");
2
- const PoolMembersResponse = require("../../../Response/PoolMembersResponse.js");
1
+ import PoolRequest from './PoolRequest.js'
2
+ import PoolMembersResponse from '../../../Response/PoolMembersResponse.js'
3
3
 
4
- class GetPoolMembersRequest extends PoolRequest {
4
+ export default class GetPoolMembersRequest extends PoolRequest {
5
5
  endpoint = "billing/pools/{id}/members";
6
6
  responseClass = PoolMembersResponse;
7
7
  }
8
-
9
- module.exports = GetPoolMembersRequest;
@@ -1,7 +1,5 @@
1
- const PoolRequest = require("./PoolRequest.js");
1
+ import PoolRequest from './PoolRequest.js'
2
2
 
3
- class GetPoolRequest extends PoolRequest {
3
+ export default class GetPoolRequest extends PoolRequest {
4
4
  endpoint = "billing/pools/{id}";
5
5
  }
6
-
7
- module.exports = GetPoolRequest;
@@ -1,9 +1,7 @@
1
- const PoolRequest = require("./PoolRequest.js");
2
- const ServersResponse = require("../../../Response/ServersResponse.js");
1
+ import PoolRequest from './PoolRequest.js'
2
+ import ServersResponse from '../../../Response/ServersResponse.js'
3
3
 
4
- class GetPoolServersRequest extends PoolRequest {
4
+ export default class GetPoolServersRequest extends PoolRequest {
5
5
  endpoint = "billing/pools/{id}/servers";
6
6
  responseClass = ServersResponse;
7
7
  }
8
-
9
- module.exports = GetPoolServersRequest;
@@ -1,9 +1,7 @@
1
- const Request = require('../../Request');
2
- const PoolsResponse = require("../../../Response/PoolsResponse.js");
1
+ import Request from '../../Request.js'
2
+ import PoolsResponse from '../../../Response/PoolsResponse.js'
3
3
 
4
- class GetPoolsRequest extends Request {
4
+ export default class GetPoolsRequest extends Request {
5
5
  endpoint = "billing/pools";
6
6
  responseClass = PoolsResponse;
7
7
  }
8
-
9
- module.exports = GetPoolsRequest;
@@ -1,6 +1,6 @@
1
- const Request = require('../../Request.js');
1
+ import Request from '../../Request.js'
2
2
 
3
- class PoolRequest extends Request {
3
+ export default class PoolRequest extends Request {
4
4
  /**
5
5
  * Pool request constructor
6
6
  *
@@ -11,5 +11,3 @@ class PoolRequest extends Request {
11
11
  this.setParameter("id", id);
12
12
  }
13
13
  }
14
-
15
- module.exports = PoolRequest;
@@ -1,10 +1,8 @@
1
- const Request = require('./Request');
2
- const ServersResponse = require('../Response/ServersResponse');
1
+ import Request from './Request.js'
2
+ import ServersResponse from '../Response/ServersResponse.js'
3
3
 
4
- class GetServersRequest extends Request {
4
+ export default class GetServersRequest extends Request {
5
5
  endpoint = "servers";
6
6
  responseClass = ServersResponse;
7
7
 
8
8
  }
9
-
10
- module.exports = GetServersRequest;
@@ -1,9 +1,10 @@
1
- const {createReadStream} = require('fs');
2
- const {createWriteStream} = require("fs");
1
+ import {createReadStream} from 'fs'
2
+ import {createWriteStream} from 'fs'
3
3
 
4
- const Response = require('../Response/Response');
4
+ import Response from '../Response/Response.js'
5
+ import * as stream from "node:stream";
5
6
 
6
- class Request {
7
+ export default class Request {
7
8
  /**
8
9
  * Request method, e.g. "GET" or "POST"
9
10
  *
@@ -63,7 +64,7 @@ class Request {
63
64
  /**
64
65
  * Optional stream to stream the response body to
65
66
  *
66
- * @type {stream.Writable|null}
67
+ * @type {import('stream').Writable|null}
67
68
  */
68
69
  outputStream = null;
69
70
 
@@ -77,7 +78,7 @@ class Request {
77
78
  /**
78
79
  * Optional stream to read the request body from
79
80
  *
80
- * @type {stream.Readable|null}
81
+ * @type {import('stream').Readable|null}
81
82
  */
82
83
  inputStream = null;
83
84
 
@@ -137,11 +138,11 @@ class Request {
137
138
  /**
138
139
  * Get body for request
139
140
  *
140
- * @return {FormData|string|ReadStream}
141
+ * @return {BodyInit}
141
142
  */
142
143
  getBody() {
143
144
  if (this.hasInputStream()) {
144
- return this.getInputStream();
145
+ return stream.Readable.toWeb(this.getInputStream());
145
146
  }
146
147
 
147
148
  if (typeof this.data === "string") {
@@ -172,7 +173,7 @@ class Request {
172
173
  }
173
174
 
174
175
  /**
175
- * @return {null|stream.Writable}
176
+ * @return {null|import('stream').Writable}
176
177
  */
177
178
  getOutputStream() {
178
179
  if (this.outputStream !== null) {
@@ -192,7 +193,7 @@ class Request {
192
193
  }
193
194
 
194
195
  /**
195
- * @return {null|stream.Readable}
196
+ * @return {null|import('stream').Readable}
196
197
  */
197
198
  getInputStream() {
198
199
  if (this.inputStream !== null) {
@@ -266,5 +267,3 @@ class Request {
266
267
  return this;
267
268
  }
268
269
  }
269
-
270
- module.exports = Request;
@@ -1,6 +1,6 @@
1
- const ServerRequest = require('./ServerRequest');
1
+ import ServerRequest from './ServerRequest.js'
2
2
 
3
- class ExecuteServerCommandRequest extends ServerRequest {
3
+ export default class ExecuteServerCommandRequest extends ServerRequest {
4
4
  endpoint = "servers/{id}/command";
5
5
  method = "POST";
6
6
 
@@ -16,5 +16,3 @@ class ExecuteServerCommandRequest extends ServerRequest {
16
16
  this.data = {command: command};
17
17
  }
18
18
  }
19
-
20
- module.exports = ExecuteServerCommandRequest;
@@ -1,6 +1,6 @@
1
- const ServerRequest = require('./ServerRequest');
1
+ import ServerRequest from './ServerRequest.js'
2
2
 
3
- class ExtendServerStopTimeRequest extends ServerRequest {
3
+ export default class ExtendServerStopTimeRequest extends ServerRequest {
4
4
  endpoint = "servers/{id}/extend-time";
5
5
  method = "POST";
6
6
 
@@ -16,5 +16,3 @@ class ExtendServerStopTimeRequest extends ServerRequest {
16
16
  this.data = {time: time};
17
17
  }
18
18
  }
19
-
20
- module.exports = ExtendServerStopTimeRequest;
@@ -1,7 +1,5 @@
1
- const FileRequest = require("../FileRequest");
1
+ import FileRequest from '../FileRequest.js'
2
2
 
3
- class GetConfigFileOptionsRequest extends FileRequest {
3
+ export default class GetConfigFileOptionsRequest extends FileRequest {
4
4
  endpoint = "servers/{id}/files/config/{path}";
5
5
  }
6
-
7
- module.exports = GetConfigFileOptionsRequest;
@@ -1,6 +1,6 @@
1
- const FileRequest = require("../FileRequest");
1
+ import FileRequest from '../FileRequest.js'
2
2
 
3
- class UpdateConfigFileOptionsRequest extends FileRequest {
3
+ export default class UpdateConfigFileOptionsRequest extends FileRequest {
4
4
  endpoint = "servers/{id}/files/config/{path}";
5
5
  method = "POST";
6
6
 
@@ -17,5 +17,3 @@ class UpdateConfigFileOptionsRequest extends FileRequest {
17
17
  this.data = options;
18
18
  }
19
19
  }
20
-
21
- module.exports = UpdateConfigFileOptionsRequest;
@@ -1,9 +1,7 @@
1
- const PutFileDataRequest = require("./PutFileDataRequest");
1
+ import PutFileDataRequest from './PutFileDataRequest.js'
2
2
 
3
- class CreateDirectoryRequest extends PutFileDataRequest {
3
+ export default class CreateDirectoryRequest extends PutFileDataRequest {
4
4
  headers = {
5
5
  "Content-Type": "inode/directory"
6
6
  }
7
7
  }
8
-
9
- module.exports = CreateDirectoryRequest;