@bkm016/calcite 0.3.0 → 0.5.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 (90) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/README.md +103 -20
  3. package/dist/accounts.js +4 -2
  4. package/dist/accounts.js.map +1 -1
  5. package/dist/cli.js +12 -141
  6. package/dist/cli.js.map +1 -1
  7. package/dist/client-core.d.ts +22 -13
  8. package/dist/client-core.js +217 -260
  9. package/dist/client-core.js.map +1 -1
  10. package/dist/client.d.ts +44 -15
  11. package/dist/client.js +58 -21
  12. package/dist/client.js.map +1 -1
  13. package/dist/display.d.ts +0 -6
  14. package/dist/display.js +31 -44
  15. package/dist/display.js.map +1 -1
  16. package/dist/feed.d.ts +17 -0
  17. package/dist/feed.js +47 -0
  18. package/dist/feed.js.map +1 -0
  19. package/dist/game-run.d.ts +30 -0
  20. package/dist/game-run.js +51 -0
  21. package/dist/game-run.js.map +1 -0
  22. package/dist/hmc.d.ts +7 -0
  23. package/dist/hmc.js +42 -31
  24. package/dist/hmc.js.map +1 -1
  25. package/dist/index.d.ts +4 -2
  26. package/dist/index.js +2 -1
  27. package/dist/index.js.map +1 -1
  28. package/dist/install.d.ts +6 -0
  29. package/dist/install.js +26 -3
  30. package/dist/install.js.map +1 -1
  31. package/dist/java.js +11 -2
  32. package/dist/java.js.map +1 -1
  33. package/dist/launch.d.ts +79 -0
  34. package/dist/launch.js +142 -0
  35. package/dist/launch.js.map +1 -0
  36. package/dist/lock.js +18 -18
  37. package/dist/lock.js.map +1 -1
  38. package/dist/mcp/accounts.d.ts +3 -0
  39. package/dist/mcp/accounts.js +45 -0
  40. package/dist/mcp/accounts.js.map +1 -0
  41. package/dist/mcp/act.d.ts +3 -0
  42. package/dist/mcp/act.js +129 -0
  43. package/dist/mcp/act.js.map +1 -0
  44. package/dist/mcp/extensions.d.ts +3 -0
  45. package/dist/mcp/extensions.js +21 -0
  46. package/dist/mcp/extensions.js.map +1 -0
  47. package/dist/mcp/index.d.ts +13 -0
  48. package/dist/mcp/index.js +58 -0
  49. package/dist/mcp/index.js.map +1 -0
  50. package/dist/mcp/items.d.ts +3 -0
  51. package/dist/mcp/items.js +71 -0
  52. package/dist/mcp/items.js.map +1 -0
  53. package/dist/mcp/lifecycle.d.ts +3 -0
  54. package/dist/mcp/lifecycle.js +120 -0
  55. package/dist/mcp/lifecycle.js.map +1 -0
  56. package/dist/mcp/observe.d.ts +3 -0
  57. package/dist/mcp/observe.js +110 -0
  58. package/dist/mcp/observe.js.map +1 -0
  59. package/dist/mcp/shared.d.ts +49 -0
  60. package/dist/mcp/shared.js +56 -0
  61. package/dist/mcp/shared.js.map +1 -0
  62. package/dist/mcp/tasks.d.ts +15 -0
  63. package/dist/mcp/tasks.js +46 -0
  64. package/dist/mcp/tasks.js.map +1 -0
  65. package/dist/mods.js +6 -4
  66. package/dist/mods.js.map +1 -1
  67. package/dist/mojang.d.ts +5 -1
  68. package/dist/mojang.js.map +1 -1
  69. package/dist/names.js +30 -8
  70. package/dist/names.js.map +1 -1
  71. package/dist/net.js +25 -19
  72. package/dist/net.js.map +1 -1
  73. package/dist/paper.d.ts +46 -0
  74. package/dist/paper.js +200 -0
  75. package/dist/paper.js.map +1 -0
  76. package/dist/probe-server.d.ts +14 -4
  77. package/dist/probe-server.js +11 -10
  78. package/dist/probe-server.js.map +1 -1
  79. package/dist/repl.d.ts +6 -0
  80. package/dist/repl.js +207 -0
  81. package/dist/repl.js.map +1 -0
  82. package/dist/stage.d.ts +6 -0
  83. package/dist/stage.js +19 -0
  84. package/dist/stage.js.map +1 -0
  85. package/dist/types.d.ts +139 -5
  86. package/dist/types.js +12 -1
  87. package/dist/types.js.map +1 -1
  88. package/dist/zip.js.map +1 -1
  89. package/package.json +11 -3
  90. package/vendor/calcite-probe.jar +0 -0
package/dist/feed.js ADDED
@@ -0,0 +1,47 @@
1
+ /** A bounded, append-only history of entries ordered by {@code seq}; the oldest entries drop off first. */
2
+ export class Feed {
3
+ capacity;
4
+ items = [];
5
+ constructor(capacity) {
6
+ this.capacity = capacity;
7
+ }
8
+ push(item) {
9
+ this.items.push(item);
10
+ // trim in batches so a full feed does not shift the array on every push
11
+ if (this.items.length > this.capacity * 1.25)
12
+ this.items = this.items.slice(-this.capacity);
13
+ }
14
+ /** Entries newer than {@code since} that pass {@code filter}; with {@code limit} only the newest ones. */
15
+ since(since = 0, filter, limit) {
16
+ const start = this.firstAfter(since);
17
+ const list = [];
18
+ for (let i = start; i < this.items.length; i++) {
19
+ const item = this.items[i];
20
+ if (!filter || filter(item))
21
+ list.push(item);
22
+ }
23
+ return limit && limit > 0 ? list.slice(-limit) : list;
24
+ }
25
+ /** The first entry newer than {@code since} that passes {@code filter}. */
26
+ find(since, filter) {
27
+ for (let i = this.firstAfter(since); i < this.items.length; i++) {
28
+ if (filter(this.items[i]))
29
+ return this.items[i];
30
+ }
31
+ return undefined;
32
+ }
33
+ /** Index of the first entry with a seq greater than {@code seq} (binary search; seqs only grow). */
34
+ firstAfter(seq) {
35
+ let lo = 0;
36
+ let hi = this.items.length;
37
+ while (lo < hi) {
38
+ const mid = (lo + hi) >>> 1;
39
+ if (this.items[mid].seq <= seq)
40
+ lo = mid + 1;
41
+ else
42
+ hi = mid;
43
+ }
44
+ return lo;
45
+ }
46
+ }
47
+ //# sourceMappingURL=feed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feed.js","sourceRoot":"","sources":["../src/feed.ts"],"names":[],"mappings":"AAKA,2GAA2G;AAC3G,MAAM,OAAO,IAAI;IAGc;IAFrB,KAAK,GAAQ,EAAE,CAAC;IAExB,YAA6B,QAAgB;QAAhB,aAAQ,GAAR,QAAQ,CAAQ;IAAG,CAAC;IAEjD,IAAI,CAAC,IAAO;QACV,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,wEAAwE;QACxE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI;YAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9F,CAAC;IAED,0GAA0G;IAC1G,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,MAA6B,EAAE,KAAc;QAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,IAAI,GAAQ,EAAE,CAAC;QACrB,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC;gBAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxD,CAAC;IAED,2EAA2E;IAC3E,IAAI,CAAC,KAAa,EAAE,MAA4B;QAC9C,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChE,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,oGAAoG;IAC5F,UAAU,CAAC,GAAW;QAC5B,IAAI,EAAE,GAAG,CAAC,CAAC;QACX,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAC3B,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG;gBAAE,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;;gBACxC,EAAE,GAAG,GAAG,CAAC;QAChB,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;CACF"}
@@ -0,0 +1,30 @@
1
+ import { type DisplayLease } from './display.js';
2
+ import { type HmcRun } from './hmc.js';
3
+ import { type ProbeSettings } from './launch.js';
4
+ import { ProbeServer } from './probe-server.js';
5
+ export interface GameRunSetup {
6
+ /** Directory for the probe's settings file. */
7
+ dir: string;
8
+ /** Prefix of the settings file name (the client name). */
9
+ name: string;
10
+ probe: Omit<ProbeSettings, 'port' | 'token'>;
11
+ /** Display to acquire for a rendering client; absent when headless. */
12
+ display?: {
13
+ forceVirtual: boolean;
14
+ };
15
+ }
16
+ /** What one launch of the game holds: the probe endpoint and its settings file, the display, the process and the poller. */
17
+ export declare class GameRun {
18
+ readonly probe: ProbeServer;
19
+ readonly configFile: string;
20
+ readonly display: DisplayLease | null;
21
+ /** The HeadlessMC process, once spawned. */
22
+ hmc: HmcRun | null;
23
+ private poller;
24
+ private constructor();
25
+ /** Opens the probe endpoint, writes its settings and acquires a display; nothing is left behind when this fails. */
26
+ static open(setup: GameRunSetup): Promise<GameRun>;
27
+ /** Runs {@code task} every {@code intervalMs} until disposed; later calls keep the first poller. */
28
+ poll(task: () => void, intervalMs: number): void;
29
+ dispose(): Promise<void>;
30
+ }
@@ -0,0 +1,51 @@
1
+ import { randomBytes } from 'node:crypto';
2
+ import { mkdir, rm, writeFile } from 'node:fs/promises';
3
+ import { join } from 'node:path';
4
+ import { acquireDisplay } from './display.js';
5
+ import { killTree } from './hmc.js';
6
+ import { probeConfig } from './launch.js';
7
+ import { ProbeServer } from './probe-server.js';
8
+ /** What one launch of the game holds: the probe endpoint and its settings file, the display, the process and the poller. */
9
+ export class GameRun {
10
+ probe;
11
+ configFile;
12
+ display;
13
+ /** The HeadlessMC process, once spawned. */
14
+ hmc = null;
15
+ poller;
16
+ constructor(probe, configFile, display) {
17
+ this.probe = probe;
18
+ this.configFile = configFile;
19
+ this.display = display;
20
+ }
21
+ /** Opens the probe endpoint, writes its settings and acquires a display; nothing is left behind when this fails. */
22
+ static async open(setup) {
23
+ const probe = new ProbeServer();
24
+ await probe.listen();
25
+ const configFile = join(setup.dir, `${setup.name}-${randomBytes(6).toString('hex')}.properties`);
26
+ try {
27
+ await mkdir(setup.dir, { recursive: true });
28
+ await writeFile(configFile, probeConfig({ port: probe.port, token: probe.token, ...setup.probe }), { mode: 0o600 });
29
+ const display = setup.display ? await acquireDisplay(setup.display) : null;
30
+ return new GameRun(probe, configFile, display);
31
+ }
32
+ catch (err) {
33
+ await probe.close();
34
+ await rm(configFile, { force: true });
35
+ throw err;
36
+ }
37
+ }
38
+ /** Runs {@code task} every {@code intervalMs} until disposed; later calls keep the first poller. */
39
+ poll(task, intervalMs) {
40
+ this.poller ??= setInterval(task, intervalMs);
41
+ }
42
+ async dispose() {
43
+ clearInterval(this.poller);
44
+ if (this.hmc)
45
+ await killTree(this.hmc.child);
46
+ await this.probe.close();
47
+ await rm(this.configFile, { force: true });
48
+ this.display?.release();
49
+ }
50
+ }
51
+ //# sourceMappingURL=game-run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"game-run.js","sourceRoot":"","sources":["../src/game-run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,cAAc,EAAqB,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAe,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,WAAW,EAAsB,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAYhD,4HAA4H;AAC5H,MAAM,OAAO,OAAO;IAMP;IACA;IACA;IAPX,4CAA4C;IAC5C,GAAG,GAAkB,IAAI,CAAC;IAClB,MAAM,CAA6B;IAE3C,YACW,KAAkB,EAClB,UAAkB,EAClB,OAA4B;QAF5B,UAAK,GAAL,KAAK,CAAa;QAClB,eAAU,GAAV,UAAU,CAAQ;QAClB,YAAO,GAAP,OAAO,CAAqB;IACpC,CAAC;IAEJ,oHAAoH;IACpH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAmB;QACnC,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;QAChC,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC;QACrB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACjG,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5C,MAAM,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACpH,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3E,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;YACpB,MAAM,EAAE,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACtC,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,oGAAoG;IACpG,IAAI,CAAC,IAAgB,EAAE,UAAkB;QACvC,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,OAAO;QACX,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3B,IAAI,IAAI,CAAC,GAAG;YAAE,MAAM,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACzB,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;IAC1B,CAAC;CACF"}
package/dist/hmc.d.ts CHANGED
@@ -8,6 +8,8 @@ export declare const HMC_SHA256 = "dcc061a336ecf7aa638794bd47840fa9970b31d562e63
8
8
  export declare function ensureHmc(paths: CalcitePaths): Promise<string>;
9
9
  /** Escapes one entry of a comma separated HeadlessMC list setting. */
10
10
  export declare function hmcListEntry(value: string): string;
11
+ /** Converts a Java executable path to the Java home path expected by HeadlessMC. */
12
+ export declare function hmcJavaHome(javaPath: string): string;
11
13
  /** Quotes one argument for HeadlessMC's `--jvm`/`--game` options, which are split like a shell command line. */
12
14
  export declare function hmcQuote(arg: string): string;
13
15
  /**
@@ -44,6 +46,11 @@ export interface HmcRunOptions {
44
46
  env?: NodeJS.ProcessEnv;
45
47
  onLine?: (line: string) => void;
46
48
  }
49
+ /**
50
+ * Makes a JVM write its console output as UTF-8 whatever the system locale says. Chat and logs are read from that
51
+ * output; before Java 18 the default follows the locale, which turns non-ASCII text into "?" under POSIX/C.
52
+ */
53
+ export declare const UTF8_CONSOLE_PROPS: Readonly<Record<string, string>>;
47
54
  /**
48
55
  * Runs one HeadlessMC command non-interactively; HeadlessMC exits once the command (and a launched game) finished.
49
56
  * Settings are passed as -D system properties, which take precedence over any config file.
package/dist/hmc.js CHANGED
@@ -21,6 +21,10 @@ export async function ensureHmc(paths) {
21
21
  export function hmcListEntry(value) {
22
22
  return value.replace(/\\/g, '\\\\').replace(/,/g, '\\,');
23
23
  }
24
+ /** Converts a Java executable path to the Java home path expected by HeadlessMC. */
25
+ export function hmcJavaHome(javaPath) {
26
+ return javaPath.replace(/[\\/]bin[\\/]java(?:\.exe)?$/i, '');
27
+ }
24
28
  /** Quotes one argument for HeadlessMC's `--jvm`/`--game` options, which are split like a shell command line. */
25
29
  export function hmcQuote(arg) {
26
30
  return `"${arg.replace(/[\\"]/g, (c) => `\\${c}`)}"`;
@@ -31,8 +35,8 @@ export function hmcQuote(arg) {
31
35
  * {@code loader} the profile selects that platform (fabric, forge, neoforge) and build for Minecraft {@code versionId}.
32
36
  */
33
37
  export async function writeHmcProfile(location, versionId, gameDir, javaMajor, loader) {
34
- const [platform, , build] = loader ? hmcVersionArgs(versionId, loader) : ['vanilla'];
35
- const version = { side: null, platform, version: versionId, build: build ?? null };
38
+ const build = loader ? hmcVersionArgs(versionId, loader).at(2) : undefined;
39
+ const version = { side: null, platform: loader?.kind ?? 'vanilla', version: versionId, build: build ?? null };
36
40
  const profile = {
37
41
  name: 'calcite',
38
42
  version,
@@ -77,22 +81,21 @@ function guardExit() {
77
81
  for (const child of live) {
78
82
  if (child.pid === undefined || child.exitCode !== null)
79
83
  continue;
80
- try {
81
- if (process.platform === 'win32')
82
- spawnSync('taskkill', ['/pid', String(child.pid), '/T', '/F'], { windowsHide: true, stdio: 'ignore' });
83
- else
84
- process.kill(-child.pid, 'SIGKILL');
85
- }
86
- catch {
87
- // already gone
88
- }
84
+ if (process.platform === 'win32')
85
+ spawnSync('taskkill', ['/pid', String(child.pid), '/T', '/F'], { windowsHide: true, stdio: 'ignore' });
86
+ else
87
+ signalGroup(child, child.pid, 'SIGKILL');
89
88
  }
90
89
  live.clear();
91
90
  };
92
91
  process.once('exit', killAll);
93
92
  // A signal without a handler terminates Node without an 'exit' event; when nobody else handles it, clean up and
94
93
  // die with the conventional status. Hosts that handle the signal themselves end up in 'exit' above.
95
- for (const [signal, code] of [['SIGTERM', 143], ['SIGHUP', 129], ['SIGINT', 130]]) {
94
+ for (const [signal, code] of [
95
+ ['SIGTERM', 143],
96
+ ['SIGHUP', 129],
97
+ ['SIGINT', 130],
98
+ ]) {
96
99
  process.on(signal, () => {
97
100
  if (process.listenerCount(signal) > 1)
98
101
  return;
@@ -101,6 +104,17 @@ function guardExit() {
101
104
  });
102
105
  }
103
106
  }
107
+ /**
108
+ * Makes a JVM write its console output as UTF-8 whatever the system locale says. Chat and logs are read from that
109
+ * output; before Java 18 the default follows the locale, which turns non-ASCII text into "?" under POSIX/C.
110
+ */
111
+ export const UTF8_CONSOLE_PROPS = {
112
+ 'file.encoding': 'UTF-8',
113
+ 'stdout.encoding': 'UTF-8', // Java 19+
114
+ 'stderr.encoding': 'UTF-8',
115
+ 'sun.stdout.encoding': 'UTF-8', // older JDKs
116
+ 'sun.stderr.encoding': 'UTF-8',
117
+ };
104
118
  /**
105
119
  * Runs one HeadlessMC command non-interactively; HeadlessMC exits once the command (and a launched game) finished.
106
120
  * Settings are passed as -D system properties, which take precedence over any config file.
@@ -110,6 +124,7 @@ export function runHmc(opts) {
110
124
  'hmc.files.location': opts.location,
111
125
  'hmc.jline.enabled': 'false',
112
126
  'hmc.log.console-level': 'INFO',
127
+ ...UTF8_CONSOLE_PROPS,
113
128
  ...javaProxyProps(),
114
129
  ...opts.props,
115
130
  };
@@ -127,8 +142,6 @@ export function runHmc(opts) {
127
142
  live.add(child);
128
143
  child.once('exit', () => live.delete(child));
129
144
  for (const stream of [child.stdout, child.stderr]) {
130
- if (!stream)
131
- continue;
132
145
  const rl = createInterface({ input: stream });
133
146
  rl.on('line', (line) => opts.onLine?.(line));
134
147
  }
@@ -138,30 +151,28 @@ export function runHmc(opts) {
138
151
  });
139
152
  return { child, exited };
140
153
  }
154
+ /** Signals the process group led by {@code child} (see {@link runHmc}), or the child alone when that fails. */
155
+ function signalGroup(child, pid, signal) {
156
+ try {
157
+ process.kill(-pid, signal);
158
+ }
159
+ catch {
160
+ child.kill(signal);
161
+ }
162
+ }
141
163
  /** Stops a process tree started by {@link runHmc}. */
142
164
  export async function killTree(child, graceMs = 5000) {
143
- if (child.exitCode !== null || child.signalCode !== null || child.pid === undefined)
165
+ const pid = child.pid;
166
+ if (child.exitCode !== null || child.signalCode !== null || pid === undefined)
144
167
  return;
145
168
  const exited = new Promise((resolve) => child.once('exit', () => resolve()));
146
169
  if (process.platform === 'win32') {
147
- spawn('taskkill', ['/pid', String(child.pid), '/T', '/F'], { windowsHide: true, stdio: 'ignore' });
170
+ spawn('taskkill', ['/pid', String(pid), '/T', '/F'], { windowsHide: true, stdio: 'ignore' });
148
171
  }
149
172
  else {
150
- try {
151
- process.kill(-child.pid, 'SIGTERM');
152
- }
153
- catch {
154
- child.kill('SIGTERM');
155
- }
156
- const timer = setTimeout(() => {
157
- try {
158
- process.kill(-child.pid, 'SIGKILL');
159
- }
160
- catch {
161
- child.kill('SIGKILL');
162
- }
163
- }, graceMs);
164
- exited.finally(() => clearTimeout(timer));
173
+ signalGroup(child, pid, 'SIGTERM');
174
+ const timer = setTimeout(() => signalGroup(child, pid, 'SIGKILL'), graceMs);
175
+ void exited.finally(() => clearTimeout(timer));
165
176
  }
166
177
  await Promise.race([exited, new Promise((r) => setTimeout(r, graceMs * 2))]);
167
178
  }
package/dist/hmc.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"hmc.js","sourceRoot":"","sources":["../src/hmc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hmc.js","sourceRoot":"","sources":["../src/hmc.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export { Client, CalciteError, installVersion, parseServer } from './client.js';
2
- export type { Account, BlockFace, BlockInfo, BlockPosition, ChatLine, ClickMode, ClientOptions, ClientStatus, ContainerInfo, DigResult, EntityInfo, EntityQuery, GameState, HitTarget, InstallOptions, InventoryInfo, ItemInfo, LogLine, MoveControls, Phase, PlayerState, RenderMode, ServerAddress, WalkResult, } from './client.js';
1
+ export { Client, CalciteError, installVersion, parseServer, parseWorld } from './client.js';
2
+ export type { Account, BlockFace, BlockInfo, BlockMatch, BlockPosition, BlockSearch, BlockSearchResult, ChatLine, ClickMode, ClientEvents, ClientOptions, ClientStatus, ContainerInfo, CraftResult, DigResult, EntityInfo, EntityQuery, ExtensionCommand, ExtensionEvent, ExtensionInfo, GameEvent, GameState, HitTarget, InstallOptions, InventoryInfo, ItemInfo, LogLine, MoveControls, NearbyEntity, Phase, PlayerState, RenderMode, ServerAddress, Surroundings, TaskStatus, TransferResult, WalkOptions, WalkResult, WorldOptions, } from './client.js';
3
3
  export { listAccounts, removeAccount, startLogin } from './accounts.js';
4
4
  export type { AccountInfo, LoginHandle } from './accounts.js';
5
5
  export { resolvePaths } from './paths.js';
@@ -9,3 +9,5 @@ export type { JavaInstall } from './java.js';
9
9
  export { resolveVersion } from './mojang.js';
10
10
  export { setLogLevel } from './log.js';
11
11
  export { ClientManager } from './manager.js';
12
+ export { offlineUuid, startPaperServer } from './paper.js';
13
+ export type { PaperServer, PaperServerOptions } from './paper.js';
package/dist/index.js CHANGED
@@ -1,8 +1,9 @@
1
- export { Client, CalciteError, installVersion, parseServer } from './client.js';
1
+ export { Client, CalciteError, installVersion, parseServer, parseWorld } from './client.js';
2
2
  export { listAccounts, removeAccount, startLogin } from './accounts.js';
3
3
  export { resolvePaths } from './paths.js';
4
4
  export { findJavaInstalls, ensureJava } from './java.js';
5
5
  export { resolveVersion } from './mojang.js';
6
6
  export { setLogLevel } from './log.js';
7
7
  export { ClientManager } from './manager.js';
8
+ export { offlineUuid, startPaperServer } from './paper.js';
8
9
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AA2BhF,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAExE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEzD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AA2C5F,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAExE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEzD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
package/dist/install.d.ts CHANGED
@@ -5,6 +5,12 @@ import { type NameMode } from './names.js';
5
5
  import { type CalcitePaths } from './paths.js';
6
6
  /** Copies the probe jar to the space-free probe directory (content-addressed). */
7
7
  export declare function installProbe(paths: CalcitePaths): Promise<string>;
8
+ /**
9
+ * Whether an earlier launch of a version with the same asset index reached the game, i.e. HeadlessMC downloaded and
10
+ * verified all of its assets. Launches after that may skip HeadlessMC's per-launch hashing of every asset file.
11
+ */
12
+ export declare function assetsVerified(paths: CalcitePaths, json: VersionJson): Promise<boolean>;
13
+ export declare function markAssetsVerified(paths: CalcitePaths, json: VersionJson): Promise<void>;
8
14
  export interface PrepareOptions {
9
15
  /** Minecraft version id, "release" or "snapshot". */
10
16
  version: string;
package/dist/install.js CHANGED
@@ -2,7 +2,7 @@ import { createHash, randomBytes } from 'node:crypto';
2
2
  import { copyFile, mkdir, readFile, rm, stat, writeFile } from 'node:fs/promises';
3
3
  import { join } from 'node:path';
4
4
  import { fileURLToPath } from 'node:url';
5
- import { ensureHmc, hmcListEntry, hmcQuote, hmcVersionArgs, runHmc, writeHmcProfile } from './hmc.js';
5
+ import { ensureHmc, hmcJavaHome, hmcListEntry, hmcQuote, hmcVersionArgs, runHmc, writeHmcProfile } from './hmc.js';
6
6
  import { ensureJava, ensureLauncherJava } from './java.js';
7
7
  import { findLoader, formatLoader, parseLoader } from './loaders.js';
8
8
  import { withLock } from './lock.js';
@@ -32,6 +32,23 @@ export async function installProbe(paths) {
32
32
  }
33
33
  return target;
34
34
  }
35
+ function assetsMarker(paths, json) {
36
+ return json.assetIndex && join(paths.minecraft, 'assets', 'indexes', `${json.assetIndex.id}.calcite-verified`);
37
+ }
38
+ /**
39
+ * Whether an earlier launch of a version with the same asset index reached the game, i.e. HeadlessMC downloaded and
40
+ * verified all of its assets. Launches after that may skip HeadlessMC's per-launch hashing of every asset file.
41
+ */
42
+ export async function assetsVerified(paths, json) {
43
+ const marker = assetsMarker(paths, json);
44
+ return (!!marker &&
45
+ stat(marker).then(() => true, () => false));
46
+ }
47
+ export async function markAssetsVerified(paths, json) {
48
+ const marker = assetsMarker(paths, json);
49
+ if (marker)
50
+ await writeFile(marker, '');
51
+ }
35
52
  /** Downloads and verifies what launching needs: version files, Java, HeadlessMC, the mod loader and name tables. */
36
53
  export async function prepareGame(paths, opts) {
37
54
  const spec = parseLoader(opts.loader);
@@ -68,7 +85,7 @@ async function hmcDryLaunch(paths, json, loader, rt) {
68
85
  props: {
69
86
  'hmc.files.mc': paths.minecraft,
70
87
  'hmc.files.game': join(location, 'game'),
71
- 'hmc.java.versions': hmcListEntry(rt.java.path),
88
+ 'hmc.java.versions': hmcListEntry(hmcJavaHome(rt.java.path)),
72
89
  'hmc.java.download': 'false',
73
90
  },
74
91
  command: ['launch', ...hmcVersionArgs(json.id, loader), '--offline', '--headless', `--jvm=${hmcQuote('-version')}`],
@@ -106,7 +123,13 @@ async function ensureLoader(paths, json, spec, rt) {
106
123
  */
107
124
  export async function installVersion(spec, opts = {}) {
108
125
  const paths = opts.paths ?? resolvePaths();
109
- const game = await prepareGame(paths, { version: spec, loader: opts.loader, javaPath: opts.javaPath, allowJavaDownload: opts.allowJavaDownload, onLine: opts.onLine });
126
+ const game = await prepareGame(paths, {
127
+ version: spec,
128
+ loader: opts.loader,
129
+ javaPath: opts.javaPath,
130
+ allowJavaDownload: opts.allowJavaDownload,
131
+ onLine: opts.onLine,
132
+ });
110
133
  await installProbe(paths);
111
134
  await hmcDryLaunch(paths, game.json, game.loader, game);
112
135
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
package/dist/java.js CHANGED
@@ -55,7 +55,16 @@ async function candidateExecutables(paths) {
55
55
  for (const base of [process.env.ProgramFiles, process.env['ProgramFiles(x86)'], process.env.ProgramW6432]) {
56
56
  if (!base)
57
57
  continue;
58
- for (const vendor of ['Java', 'Eclipse Adoptium', 'Eclipse Foundation', 'Microsoft', 'Zulu', 'Amazon Corretto', 'BellSoft', 'Semeru']) {
58
+ for (const vendor of [
59
+ 'Java',
60
+ 'Eclipse Adoptium',
61
+ 'Eclipse Foundation',
62
+ 'Microsoft',
63
+ 'Zulu',
64
+ 'Amazon Corretto',
65
+ 'BellSoft',
66
+ 'Semeru',
67
+ ]) {
59
68
  roots.push(join(base, vendor));
60
69
  }
61
70
  }
@@ -149,7 +158,7 @@ export async function downloadJava(paths, major) {
149
158
  for (const image of ['jre', 'jdk']) {
150
159
  const url = `https://api.adoptium.net/v3/assets/latest/${major}/hotspot?architecture=${arch}&image_type=${image}&os=${os}&vendor=eclipse`;
151
160
  const assets = await httpJson(url).catch(() => []);
152
- asset = assets[0];
161
+ asset = assets.at(0);
153
162
  if (asset)
154
163
  break;
155
164
  }
package/dist/java.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"java.js","sourceRoot":"","sources":["../src/java.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAG9C,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAW3B,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;AAE/D,qFAAqF;AACrF,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC9C,MAAM,IAAI,GAAG,sCAAsC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjE,MAAM,OAAO,GAAG,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrD,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACxE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACxD,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,IAAY;IACnC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC/B,OAAO,GAAG,CAAC,iBAAiB,CAAC;QAC7B,OAAO,GAAG,CAAC,aAAa,CAAC;QACzB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,2BAA2B,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC1H,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,MAAM,KAAK,MAAM,EAAE,CAAC,CAAC;QACzD,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,GAAW;IAChC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,mGAAmG;AACnG,KAAK,UAAU,oBAAoB,CAAC,KAAmB;IACrD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvD,IAAI,KAAK,IAAI,CAAC,GAAG,KAAK,WAAW,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxH,CAAC;IACD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,KAAK,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YAC1G,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,KAAK,MAAM,MAAM,IAAI,CAAC,MAAM,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,EAAE,iBAAiB,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC;gBACtI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QACD,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC3G,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,mCAAmC,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,kCAAkC,CAAC,CAAC,CAAC;IACpH,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,yBAAyB,CAAC,CAAC,CAAC;IAC5H,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/D,mFAAmF;IACnF,KAAK,MAAM,OAAO,IAAI,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAElG,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;YACvF,IAAI,UAAU,CAAC,GAAG,CAAC;gBAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC3B,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC;YAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAAmB;IACxD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IACtF,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAoB,EAAE;QAC5C,IAAI,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QACrB,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QACtC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,QAAuB,EAAE,KAAa;IAC7D,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;IACxD,IAAI,KAAK,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAClC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACjC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,UAAU;IACjB,QAAQ,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzB,KAAK,OAAO;YACV,OAAO,SAAS,CAAC;QACnB,KAAK,QAAQ;YACX,OAAO,KAAK,CAAC;QACf,KAAK,OAAO;YACV,OAAO,OAAO,CAAC;QACjB;YACE,MAAM,IAAI,KAAK,CAAC,+CAA+C,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvF,CAAC;AACH,CAAC;AAED,SAAS,YAAY;IACnB,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,KAAK;YACR,OAAO,KAAK,CAAC;QACf,KAAK,OAAO;YACV,OAAO,SAAS,CAAC;QACnB,KAAK,MAAM;YACT,OAAO,KAAK,CAAC;QACf;YACE,MAAM,IAAI,KAAK,CAAC,+CAA+C,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACnF,CAAC;AACH,CAAC;AAOD,qFAAqF;AACrF,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAmB,EAAE,KAAa;IACnE,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;IACxB,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IAClE,OAAO,QAAQ,CAAC,GAAG,MAAM,OAAO,EAAE,KAAK,IAAI,EAAE;QAC3C,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC9B,IAAI,KAAgC,CAAC;QACrC,KAAK,MAAM,KAAK,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;YACnC,MAAM,GAAG,GAAG,6CAA6C,KAAK,yBAAyB,IAAI,eAAe,KAAK,OAAO,EAAE,iBAAiB,CAAC;YAC1I,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACpE,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAClB,IAAI,KAAK;gBAAE,MAAM;QACnB,CAAC;QACD,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,cAAc,KAAK,cAAc,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;QAC3E,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;QACjC,GAAG,CAAC,IAAI,CAAC,uBAAuB,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;QACtE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,GAAG,MAAM,UAAU,CAAC;QACpC,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,kEAAkE;QAClE,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;QACtF,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,MAAM,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC9B,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,oCAAoC,MAAM,EAAE,CAAC,CAAC;QACrG,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,GAAW;IAClC,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,KAAK,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;YACvF,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;gBAC/B,IAAI,CAAC;oBAAE,OAAO,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAWD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,KAAmB,EAAE,KAAa,EAAE,OAA0B,EAAE;IAC/F,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3E,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAChG,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,IAAI,IAAI,CAAC,aAAa,KAAK,KAAK,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,8DAA8D,CAAC,CAAC;IAC/H,CAAC;IACD,OAAO,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC;AAED,mFAAmF;AACnF,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAEtC,yGAAyG;AACzG,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,KAAmB,EAAE,OAAoC,EAAE;IAClG,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,gBAAgB,CAAC,KAAK,CAAC,EAAE,mBAAmB,CAAC,CAAC;IAC5E,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,IAAI,IAAI,CAAC,aAAa,KAAK,KAAK,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,yBAAyB,mBAAmB,iEAAiE,CAAC,CAAC;IACjI,CAAC;IACD,OAAO,YAAY,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"java.js","sourceRoot":"","sources":["../src/java.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ import { type ClientOptions, type RenderMode, type ServerAddress } from './types.js';
2
+ /** Escapes a value for a java.util.Properties file. */
3
+ export declare function propValue(value: string): string;
4
+ export interface ProbeSettings {
5
+ port: number;
6
+ token: string;
7
+ /** Name tables the probe tries in order (a mapping file or "official"). */
8
+ mappings: string[];
9
+ version: string;
10
+ extensions: string[];
11
+ headless: boolean;
12
+ render: RenderMode;
13
+ }
14
+ /** The probe's settings file: the agent argument only names it, since its paths may contain spaces. */
15
+ export declare function probeConfig(s: ProbeSettings): string;
16
+ export interface GameLaunch {
17
+ versionId: string;
18
+ loader?: {
19
+ kind: string;
20
+ build?: string;
21
+ };
22
+ offline: boolean;
23
+ headless: boolean;
24
+ jvmArgs: string[];
25
+ gameArgs: string[];
26
+ }
27
+ /** HeadlessMC's command line for launching the game. */
28
+ export declare function hmcLaunchCommand(l: GameLaunch): string[];
29
+ export interface JvmSettings {
30
+ /** The probe's -javaagent value ("jar=config"); absent when the version is unsupported. */
31
+ agent?: string;
32
+ headless: boolean;
33
+ memory?: string;
34
+ extra?: string[];
35
+ }
36
+ /** JVM arguments for the game: the probe agent, heap size, UTF-8 console, proxy settings and the caller's own arguments. */
37
+ export declare function gameJvmArgs(s: JvmSettings): string[];
38
+ export interface HmcSettings {
39
+ minecraftDir: string;
40
+ gameDir: string;
41
+ javaPath: string;
42
+ virtualDisplay: boolean;
43
+ assetsVerified: boolean;
44
+ }
45
+ /** HeadlessMC system properties for one client. */
46
+ export declare function hmcProperties(s: HmcSettings): Record<string, string>;
47
+ /** Game arguments that join {@code server} right after startup (Quick Play from 1.20, --server before). */
48
+ export declare function joinArgs(server: ServerAddress, quickPlay: boolean): string[];
49
+ export declare function tcpReachable(host: string, port: number, timeoutMs?: number): Promise<boolean>;
50
+ /** What to do when no graphics backend could be created. */
51
+ export declare function noBackendHint(platform: NodeJS.Platform): string;
52
+ export interface ServerWait {
53
+ timeoutMs: number;
54
+ /** Ends the wait early (with a "stopped" error) when it returns true. */
55
+ stopped: () => boolean;
56
+ /** Progress, about every {@code reportMs}. */
57
+ onWaiting: (message: string) => void;
58
+ retryMs?: number;
59
+ reportMs?: number;
60
+ }
61
+ /** Resolves once {@code server} accepts TCP connections; fails after {@code timeoutMs}. */
62
+ export declare function waitForServer(server: ServerAddress, w: ServerWait): Promise<void>;
63
+ /** How many reconnects the {@code reconnect} option allows in a row. */
64
+ export declare function reconnectLimit(option: ClientOptions['reconnect']): number;
65
+ /** Delay before reconnect attempt {@code attempt} (from 1): 5 s, doubling, at most a minute. */
66
+ export declare function reconnectDelay(attempt: number): number;
67
+ /**
68
+ * Minecraft 26.x opens a modal error box and blocks forever when no graphics backend can be created. Watches the
69
+ * game output and reports the backend errors when none came up within {@code graceMs} of the last failure.
70
+ */
71
+ export declare class BackendWatch {
72
+ private readonly onStuck;
73
+ private readonly graceMs;
74
+ private readonly errors;
75
+ private timer;
76
+ constructor(onStuck: (errors: string[]) => void, graceMs?: number);
77
+ line(line: string): void;
78
+ dispose(): void;
79
+ }