@jsprismarine/server 0.14.0 → 0.14.1-unstable-20260512202428
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/CHANGELOG.md +21 -0
- package/dist/Server.es.js +48 -51
- package/dist/index.es.js +0 -2
- package/package.json +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# @jsprismarine/server
|
|
2
2
|
|
|
3
|
+
## 0.14.1-unstable-20260512202428
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`cd05900`](https://github.com/JSPrismarine/JSPrismarine/commit/cd05900b01564ff279516a77423f3c1d8baffbfa) Thanks [@filiphsps](https://github.com/filiphsps)! - Drop the redundant per-package `.npmignore` files. Each `package.json` already has a `files` whitelist (`["dist", "CHANGELOG.md", "README.md"]`) that npm treats as the authoritative include list, so the `.npmignore` entries were dead weight — and broad patterns like `node_modules/`, `src/`, and `packages/` risked masking content from `dist/` (e.g. the bundled `dist/node_modules/**` in `@jsprismarine/client`). With the whitelist as the single source of truth, every tarball now contains the full built `dist/`.
|
|
8
|
+
|
|
9
|
+
- [`f962e79`](https://github.com/JSPrismarine/JSPrismarine/commit/f962e79719d55688113e3ab2a8c663d6049a9fab) Thanks [@filiphsps](https://github.com/filiphsps)! - Tidy up doc generation and break a Vite 8 / Rolldown circular load:
|
|
10
|
+
- Teach typedoc about the `@todo` block tag (plus the rest of TSDoc's standard tags) so internal todo comments stop emitting "unknown block tag" warnings.
|
|
11
|
+
- Fix the `@document` path on `Logger` so typedoc can resolve `docs/log-levels.md` from the package directory.
|
|
12
|
+
- Defer `CommandSyntaxException.BUILT_IN_EXCEPTIONS` construction to a lazy getter, and wrap every `BuiltInExceptions` static field in a memoized factory so no `new SimpleCommandExceptionType(...)` / `new DynamicCommandExceptionType(...)` runs during BuiltInExceptions's static-initialization phase. The previous code crashed under Vite 8 (Rolldown) with `default is not a constructor` whenever the `BuiltInExceptions -> SimpleCommandExceptionType -> CommandSyntaxException -> BuiltInExceptions` module load cycle was traversed before the exception type imports were fully resolved.
|
|
13
|
+
- Make `SimpleCommandExceptionType` and `DynamicCommandExceptionType` available as both named and default exports so the existing default-import call sites keep working while the new named-import call sites side-step Rolldown's stricter cyclic live-binding rules.
|
|
14
|
+
|
|
15
|
+
- [`f962e79`](https://github.com/JSPrismarine/JSPrismarine/commit/f962e79719d55688113e3ab2a8c663d6049a9fab) Thanks [@filiphsps](https://github.com/filiphsps)! - Bump Vite to 8.0.12 across the root, every workspace package, and the generator template.
|
|
16
|
+
|
|
17
|
+
- Updated dependencies [[`cd05900`](https://github.com/JSPrismarine/JSPrismarine/commit/cd05900b01564ff279516a77423f3c1d8baffbfa), [`f962e79`](https://github.com/JSPrismarine/JSPrismarine/commit/f962e79719d55688113e3ab2a8c663d6049a9fab), [`f962e79`](https://github.com/JSPrismarine/JSPrismarine/commit/f962e79719d55688113e3ab2a8c663d6049a9fab)]:
|
|
18
|
+
- @jsprismarine/color-parser@0.14.1-unstable-20260512202428
|
|
19
|
+
- @jsprismarine/logger@0.14.1-unstable-20260512202428
|
|
20
|
+
- @jsprismarine/minecraft@0.14.1-unstable-20260512202428
|
|
21
|
+
- @jsprismarine/prismarine@0.14.1-unstable-20260512202428
|
|
22
|
+
- @jsprismarine/raknet@0.14.1-unstable-20260512202428
|
|
23
|
+
|
|
3
24
|
## 0.14.0
|
|
4
25
|
|
|
5
26
|
### Minor Changes
|
package/dist/Server.es.js
CHANGED
|
@@ -1,57 +1,54 @@
|
|
|
1
|
-
import colorParser from
|
|
2
|
-
import { Logger } from
|
|
3
|
-
import { Config, Server } from
|
|
4
|
-
import {
|
|
5
|
-
import dotenv from
|
|
6
|
-
import path from
|
|
7
|
-
|
|
1
|
+
import colorParser from "@jsprismarine/color-parser";
|
|
2
|
+
import { Logger } from "@jsprismarine/logger";
|
|
3
|
+
import { Config, Server } from "@jsprismarine/prismarine";
|
|
4
|
+
import { format, transports } from "winston";
|
|
5
|
+
import dotenv from "dotenv";
|
|
6
|
+
import path from "node:path";
|
|
7
|
+
//#region src/Server.ts
|
|
8
8
|
process.title = "JSPrismarine";
|
|
9
|
-
dotenv.config({
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
)}`.replaceAll(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g, "");
|
|
30
|
-
})
|
|
31
|
-
})
|
|
32
|
-
]);
|
|
33
|
-
const server = new Server({
|
|
34
|
-
config,
|
|
35
|
-
logger
|
|
9
|
+
dotenv.config({ path: [
|
|
10
|
+
path.join(process.cwd(), ".env.local"),
|
|
11
|
+
path.join(process.cwd(), ".env"),
|
|
12
|
+
path.join(process.cwd(), ".env.development.local"),
|
|
13
|
+
path.join(process.cwd(), ".env.development")
|
|
14
|
+
] });
|
|
15
|
+
var date = /* @__PURE__ */ new Date();
|
|
16
|
+
var logFile = "jsprismarine-development.log";
|
|
17
|
+
if (process.env.NODE_ENV !== "development") logFile = `jsprismarine.${(date.getMonth() + 1).toString().padStart(2, "0")}${date.getDate().toString().padStart(2, "0")}${date.getFullYear().toString().padStart(2, "0")}-${date.getHours().toString().padStart(2, "0")}${date.getMinutes().toString().padStart(2, "0")}${date.getSeconds().toString().padStart(2, "0")}.log`;
|
|
18
|
+
var config = new Config();
|
|
19
|
+
var logger = new Logger(config.getLogLevel(), [new transports.File({
|
|
20
|
+
level: "debug",
|
|
21
|
+
filename: path.join(process.cwd(), process.env.JSP_DIR || "", "logs", logFile),
|
|
22
|
+
format: format.printf(({ level, message, timestamp, namespace }) => {
|
|
23
|
+
return `[${timestamp}] [${level}]${colorParser(`${namespace ? ` [${namespace}]` : ""}: ${message}`)}`.replaceAll(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g, "");
|
|
24
|
+
})
|
|
25
|
+
})]);
|
|
26
|
+
var server = new Server({
|
|
27
|
+
config,
|
|
28
|
+
logger
|
|
36
29
|
});
|
|
37
|
-
|
|
38
|
-
[
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
30
|
+
var forceExitTriggered = false;
|
|
31
|
+
[
|
|
32
|
+
"SIGSEGV",
|
|
33
|
+
"SIGHUP",
|
|
34
|
+
"SIGINT",
|
|
35
|
+
"SIGTERM",
|
|
36
|
+
"uncaughtException"
|
|
37
|
+
].forEach((signal) => {
|
|
38
|
+
process.on(signal, async (error) => {
|
|
39
|
+
if (forceExitTriggered) process.exit(1);
|
|
40
|
+
forceExitTriggered = true;
|
|
41
|
+
if (error instanceof Error) logger.error(error);
|
|
42
|
+
server.shutdown({ crash: error === "uncaughtException" });
|
|
43
|
+
process.exit(1);
|
|
44
|
+
});
|
|
50
45
|
});
|
|
51
46
|
try {
|
|
52
|
-
|
|
47
|
+
await server.bootstrap(config.getServerIp(), config.getServerPort());
|
|
53
48
|
} catch (error) {
|
|
54
|
-
|
|
55
|
-
|
|
49
|
+
logger.warn(`Cannot start the server, is it already running on the same port?`);
|
|
50
|
+
throw error;
|
|
56
51
|
}
|
|
57
|
-
//#
|
|
52
|
+
//#endregion
|
|
53
|
+
|
|
54
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmVyLmVzLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uL3NyYy9TZXJ2ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvbG9yUGFyc2VyIGZyb20gJ0Bqc3ByaXNtYXJpbmUvY29sb3ItcGFyc2VyJztcbmltcG9ydCB7IExvZ2dlciB9IGZyb20gJ0Bqc3ByaXNtYXJpbmUvbG9nZ2VyJztcbmltcG9ydCB7IENvbmZpZywgU2VydmVyIH0gZnJvbSAnQGpzcHJpc21hcmluZS9wcmlzbWFyaW5lJztcbmltcG9ydCB7IGZvcm1hdCwgdHJhbnNwb3J0cyB9IGZyb20gJ3dpbnN0b24nO1xuXG5pbXBvcnQgZG90ZW52IGZyb20gJ2RvdGVudic7XG5pbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuXG5wcm9jZXNzLnRpdGxlID0gJ0pTUHJpc21hcmluZSc7XG5cbmRvdGVudi5jb25maWcoe1xuICAgIHBhdGg6IFtcbiAgICAgICAgcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksICcuZW52LmxvY2FsJyksXG4gICAgICAgIHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCAnLmVudicpLFxuICAgICAgICBwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgJy5lbnYuZGV2ZWxvcG1lbnQubG9jYWwnKSxcbiAgICAgICAgcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksICcuZW52LmRldmVsb3BtZW50JylcbiAgICBdXG59KTtcblxuY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCk7XG5sZXQgbG9nRmlsZSA9ICdqc3ByaXNtYXJpbmUtZGV2ZWxvcG1lbnQubG9nJztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAnZGV2ZWxvcG1lbnQnKVxuICAgIGxvZ0ZpbGUgPSBganNwcmlzbWFyaW5lLiR7KGRhdGUuZ2V0TW9udGgoKSArIDEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX0ke2RhdGVcbiAgICAgICAgLmdldERhdGUoKVxuICAgICAgICAudG9TdHJpbmcoKVxuICAgICAgICAucGFkU3RhcnQoMiwgJzAnKX0ke2RhdGUuZ2V0RnVsbFllYXIoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9LSR7ZGF0ZVxuICAgICAgICAuZ2V0SG91cnMoKVxuICAgICAgICAudG9TdHJpbmcoKVxuICAgICAgICAucGFkU3RhcnQoMiwgJzAnKX0ke2RhdGUuZ2V0TWludXRlcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX0ke2RhdGVcbiAgICAgICAgLmdldFNlY29uZHMoKVxuICAgICAgICAudG9TdHJpbmcoKVxuICAgICAgICAucGFkU3RhcnQoMiwgJzAnKX0ubG9nYDtcblxuY29uc3QgY29uZmlnID0gbmV3IENvbmZpZygpO1xuY29uc3QgbG9nZ2VyID0gbmV3IExvZ2dlcihjb25maWcuZ2V0TG9nTGV2ZWwoKSwgW1xuICAgIG5ldyB0cmFuc3BvcnRzLkZpbGUoe1xuICAgICAgICBsZXZlbDogJ2RlYnVnJyxcbiAgICAgICAgZmlsZW5hbWU6IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBwcm9jZXNzLmVudi5KU1BfRElSIHx8ICcnLCAnbG9ncycsIGxvZ0ZpbGUpLFxuICAgICAgICBmb3JtYXQ6IGZvcm1hdC5wcmludGYoKHsgbGV2ZWwsIG1lc3NhZ2UsIHRpbWVzdGFtcCwgbmFtZXNwYWNlIH06IGFueSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGBbJHt0aW1lc3RhbXB9XSBbJHtsZXZlbH1dJHtjb2xvclBhcnNlcihcbiAgICAgICAgICAgICAgICBgJHtuYW1lc3BhY2UgPyBgIFske25hbWVzcGFjZX1dYCA6ICcnfTogJHttZXNzYWdlfWBcbiAgICAgICAgICAgICl9YC5yZXBsYWNlQWxsKC9bXFx1MDAxYlxcdTAwOWJdW1soKSM7P10qKD86WzAtOV17MSw0fSg/OjtbMC05XXswLDR9KSopP1swLTlBLU9SWmNmLW5xcnk9PjxdL2csICcnKTtcbiAgICAgICAgfSlcbiAgICB9KVxuXSk7XG5jb25zdCBzZXJ2ZXIgPSBuZXcgU2VydmVyKHtcbiAgICBjb25maWcsXG4gICAgbG9nZ2VyOiBsb2dnZXIgYXMgYW55XG59KTtcblxubGV0IGZvcmNlRXhpdFRyaWdnZXJlZCA9IGZhbHNlO1xuWydTSUdTRUdWJywgJ1NJR0hVUCcsICdTSUdJTlQnLCAnU0lHVEVSTScsICd1bmNhdWdodEV4Y2VwdGlvbiddLmZvckVhY2goKHNpZ25hbCkgPT4ge1xuICAgIHByb2Nlc3Mub24oc2lnbmFsLCBhc3luYyAoZXJyb3IpID0+IHtcbiAgICAgICAgLy8gSGFuZGxlIHNwYW1taW5nIGN0cmwrYy5cbiAgICAgICAgaWYgKGZvcmNlRXhpdFRyaWdnZXJlZCkge1xuICAgICAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgICB9XG4gICAgICAgIGZvcmNlRXhpdFRyaWdnZXJlZCA9IHRydWU7XG5cbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcihlcnJvcik7XG4gICAgICAgIH1cblxuICAgICAgICB2b2lkIHNlcnZlci5zaHV0ZG93bih7IGNyYXNoOiBlcnJvciA9PT0gJ3VuY2F1Z2h0RXhjZXB0aW9uJyB9KTtcblxuICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBhIHRlbXBvcmFyeSBmaXggZm9yIHRoZSBzZXJ2ZXIgbm90IHNodXR0aW5nIGRvd24gcHJvcGVybHkuXG4gICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9KTtcbn0pO1xuXG50cnkge1xuICAgIGF3YWl0IHNlcnZlci5ib290c3RyYXAoY29uZmlnLmdldFNlcnZlcklwKCksIGNvbmZpZy5nZXRTZXJ2ZXJQb3J0KCkpO1xufSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICBsb2dnZXIud2FybihgQ2Fubm90IHN0YXJ0IHRoZSBzZXJ2ZXIsIGlzIGl0IGFscmVhZHkgcnVubmluZyBvbiB0aGUgc2FtZSBwb3J0P2ApO1xuICAgIHRocm93IGVycm9yOyAvLyBSZS10aHJvdyBpdCBzbyBgcHJvY2Vzcy5vbmAgY2FuIGhhbmRsZSBpdC5cbn1cblxuZXhwb3J0IHt9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBUUEsUUFBUSxRQUFRO0FBRWhCLE9BQU8sT0FBTyxFQUNWLE1BQU07Q0FDRixLQUFLLEtBQUssUUFBUSxLQUFLLEVBQUUsYUFBYTtDQUN0QyxLQUFLLEtBQUssUUFBUSxLQUFLLEVBQUUsT0FBTztDQUNoQyxLQUFLLEtBQUssUUFBUSxLQUFLLEVBQUUseUJBQXlCO0NBQ2xELEtBQUssS0FBSyxRQUFRLEtBQUssRUFBRSxtQkFBbUI7Q0FDL0MsRUFDSixDQUFDO0FBRUYsSUFBTSx1QkFBTyxJQUFJLE1BQU07QUFDdkIsSUFBSSxVQUFVO0FBRWQsSUFBQSxRQUFBLElBQUEsYUFBNkIsZUFDekIsVUFBVSxpQkFBaUIsS0FBSyxVQUFVLEdBQUcsR0FBRyxVQUFVLENBQUMsU0FBUyxHQUFHLElBQUksR0FBRyxLQUN6RSxTQUFTLENBQ1QsVUFBVSxDQUNWLFNBQVMsR0FBRyxJQUFJLEdBQUcsS0FBSyxhQUFhLENBQUMsVUFBVSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxLQUNyRSxVQUFVLENBQ1YsVUFBVSxDQUNWLFNBQVMsR0FBRyxJQUFJLEdBQUcsS0FBSyxZQUFZLENBQUMsVUFBVSxDQUFDLFNBQVMsR0FBRyxJQUFJLEdBQUcsS0FDbkUsWUFBWSxDQUNaLFVBQVUsQ0FDVixTQUFTLEdBQUcsSUFBSSxDQUFDO0FBRTFCLElBQU0sU0FBUyxJQUFJLFFBQVE7QUFDM0IsSUFBTSxTQUFTLElBQUksT0FBTyxPQUFPLGFBQWEsRUFBRSxDQUM1QyxJQUFJLFdBQVcsS0FBSztDQUNoQixPQUFPO0NBQ1AsVUFBVSxLQUFLLEtBQUssUUFBUSxLQUFLLEVBQUUsUUFBUSxJQUFJLFdBQVcsSUFBSSxRQUFRLFFBQVE7Q0FDOUUsUUFBUSxPQUFPLFFBQVEsRUFBRSxPQUFPLFNBQVMsV0FBVyxnQkFBcUI7RUFDckUsT0FBTyxJQUFJLFVBQVUsS0FBSyxNQUFNLEdBQUcsWUFDL0IsR0FBRyxZQUFZLEtBQUssVUFBVSxLQUFLLEdBQUcsSUFBSSxVQUM3QyxHQUFHLFdBQVcsK0VBQStFLEdBQUc7R0FDbkc7Q0FDTCxDQUFDLENBQ0wsQ0FBQztBQUNGLElBQU0sU0FBUyxJQUFJLE9BQU87Q0FDdEI7Q0FDUTtDQUNYLENBQUM7QUFFRixJQUFJLHFCQUFxQjtBQUN6QjtDQUFDO0NBQVc7Q0FBVTtDQUFVO0NBQVc7Q0FBb0IsQ0FBQyxTQUFTLFdBQVc7Q0FDaEYsUUFBUSxHQUFHLFFBQVEsT0FBTyxVQUFVO0VBRWhDLElBQUksb0JBQ0EsUUFBUSxLQUFLLEVBQUU7RUFFbkIscUJBQXFCO0VBRXJCLElBQUksaUJBQWlCLE9BQ2pCLE9BQU8sTUFBTSxNQUFNO0VBR3ZCLE9BQVksU0FBUyxFQUFFLE9BQU8sVUFBVSxxQkFBcUIsQ0FBQztFQUc5RCxRQUFRLEtBQUssRUFBRTtHQUNqQjtFQUNKO0FBRUYsSUFBSTtDQUNBLE1BQU0sT0FBTyxVQUFVLE9BQU8sYUFBYSxFQUFFLE9BQU8sZUFBZSxDQUFDO1NBQy9ELE9BQWdCO0NBQ3JCLE9BQU8sS0FBSyxtRUFBbUU7Q0FDL0UsTUFBTSJ9
|
package/dist/index.es.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jsprismarine/server",
|
|
3
|
-
"version": "0.14.
|
|
3
|
+
"version": "0.14.1-unstable-20260512202428",
|
|
4
4
|
"description": "Minecraft: Bedrock Edition dedicated server entrypoint",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"publishConfig": {
|
|
@@ -50,17 +50,17 @@
|
|
|
50
50
|
"rimraf": "6.1.3",
|
|
51
51
|
"tsx": "4.21.0",
|
|
52
52
|
"typescript": "6.0.3",
|
|
53
|
-
"vite": "
|
|
53
|
+
"vite": "8.0.12",
|
|
54
54
|
"vitest": "4.1.6"
|
|
55
55
|
},
|
|
56
56
|
"dependencies": {
|
|
57
57
|
"dotenv": "17.4.2",
|
|
58
58
|
"winston": "3.19.0",
|
|
59
|
-
"@jsprismarine/
|
|
60
|
-
"@jsprismarine/
|
|
61
|
-
"@jsprismarine/
|
|
62
|
-
"@jsprismarine/
|
|
63
|
-
"@jsprismarine/
|
|
59
|
+
"@jsprismarine/minecraft": "0.14.1-unstable-20260512202428",
|
|
60
|
+
"@jsprismarine/prismarine": "0.14.1-unstable-20260512202428",
|
|
61
|
+
"@jsprismarine/raknet": "0.14.1-unstable-20260512202428",
|
|
62
|
+
"@jsprismarine/color-parser": "0.14.1-unstable-20260512202428",
|
|
63
|
+
"@jsprismarine/logger": "0.14.1-unstable-20260512202428"
|
|
64
64
|
},
|
|
65
65
|
"scripts": {
|
|
66
66
|
"clean": "rimraf dist jsp *.tsbuildinfo vite.config.ts.timestamp-* .tsup .turbo",
|