@rhost/testkit 1.5.3 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli/index.js CHANGED
@@ -11,6 +11,7 @@ const deploy_1 = require("./deploy");
11
11
  const fmt_1 = require("./fmt");
12
12
  const mush_format_1 = require("./mush-format");
13
13
  const lint_1 = require("./lint");
14
+ const server_1 = require("./server");
14
15
  const args = process.argv.slice(2);
15
16
  const cmd = args[0];
16
17
  switch (cmd) {
@@ -35,6 +36,9 @@ switch (cmd) {
35
36
  case 'lint':
36
37
  (0, lint_1.runLintCli)(args.slice(1));
37
38
  break;
39
+ case 'server':
40
+ (0, server_1.runServerCli)(args.slice(1));
41
+ break;
38
42
  case '--version':
39
43
  case '-v': {
40
44
  // eslint-disable-next-line @typescript-eslint/no-var-requires
@@ -62,6 +66,7 @@ USAGE
62
66
  rhost-testkit <command> [options]
63
67
 
64
68
  COMMANDS
69
+ server Start a RhostMUSH Docker server (no prior setup required)
65
70
  validate Validate a softcode expression offline (no server needed)
66
71
  watch Watch test files and re-run on change
67
72
  init Scaffold project structure and optional CI/CD templates
@@ -77,6 +82,8 @@ OPTIONS
77
82
  Run \`rhost-testkit <command> --help\` for command-specific options.
78
83
 
79
84
  EXAMPLES
85
+ rhost-testkit server
86
+ rhost-testkit server --port 7000 --config ./rhost.config.json
80
87
  rhost-testkit validate "add(2,3)"
81
88
  rhost-testkit validate --file mycode.mush
82
89
  rhost-testkit watch
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;AACA,8EAA8E;AAC9E,gCAAgC;AAChC,8EAA8E;;AAE9E,yCAA4C;AAC5C,mCAAsC;AACtC,iCAAoC;AACpC,qCAAwC;AACxC,+BAAkC;AAClC,+CAAiD;AACjD,iCAAoC;AAEpC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAEpB,QAAQ,GAAG,EAAE,CAAC;IACZ,KAAK,UAAU;QACb,IAAA,yBAAc,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM;IAER,KAAK,OAAO;QACV,IAAA,mBAAW,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM;IAER,KAAK,MAAM;QACT,IAAA,iBAAU,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM;IAER,KAAK,QAAQ;QACX,IAAA,qBAAY,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM;IAER,KAAK,KAAK;QACR,IAAA,eAAS,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM;IAER,KAAK,aAAa;QAChB,IAAA,8BAAgB,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM;IAER,KAAK,MAAM;QACT,IAAA,iBAAU,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM;IAER,KAAK,WAAW,CAAC;IACjB,KAAK,IAAI,CAAC,CAAC,CAAC;QACV,8DAA8D;QAC9D,MAAM,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAwB,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACzB,MAAM;IACR,CAAC;IAED,KAAK,QAAQ,CAAC;IACd,KAAK,IAAI,CAAC;IACV,KAAK,SAAS;QACZ,SAAS,EAAE,CAAC;QACZ,MAAM;IAER;QACE,OAAO,CAAC,KAAK,CAAC,mCAAmC,GAAG,KAAK,CAAC,CAAC;QAC3D,SAAS,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,SAAS;IAChB,8DAA8D;IAC9D,MAAM,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAwB,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC;iBACG,GAAG,CAAC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+B3B,CAAC,IAAI,EAAE,CAAC,CAAC;AACV,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;AACA,8EAA8E;AAC9E,gCAAgC;AAChC,8EAA8E;;AAE9E,yCAA4C;AAC5C,mCAAsC;AACtC,iCAAoC;AACpC,qCAAwC;AACxC,+BAAkC;AAClC,+CAAiD;AACjD,iCAAoC;AACpC,qCAAwC;AAExC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAEpB,QAAQ,GAAG,EAAE,CAAC;IACZ,KAAK,UAAU;QACb,IAAA,yBAAc,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM;IAER,KAAK,OAAO;QACV,IAAA,mBAAW,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM;IAER,KAAK,MAAM;QACT,IAAA,iBAAU,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM;IAER,KAAK,QAAQ;QACX,IAAA,qBAAY,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM;IAER,KAAK,KAAK;QACR,IAAA,eAAS,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM;IAER,KAAK,aAAa;QAChB,IAAA,8BAAgB,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM;IAER,KAAK,MAAM;QACT,IAAA,iBAAU,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM;IAER,KAAK,QAAQ;QACX,IAAA,qBAAY,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM;IAER,KAAK,WAAW,CAAC;IACjB,KAAK,IAAI,CAAC,CAAC,CAAC;QACV,8DAA8D;QAC9D,MAAM,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAwB,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACzB,MAAM;IACR,CAAC;IAED,KAAK,QAAQ,CAAC;IACd,KAAK,IAAI,CAAC;IACV,KAAK,SAAS;QACZ,SAAS,EAAE,CAAC;QACZ,MAAM;IAER;QACE,OAAO,CAAC,KAAK,CAAC,mCAAmC,GAAG,KAAK,CAAC,CAAC;QAC3D,SAAS,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,SAAS;IAChB,8DAA8D;IAC9D,MAAM,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAwB,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC;iBACG,GAAG,CAAC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkC3B,CAAC,IAAI,EAAE,CAAC,CAAC;AACV,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=server-bin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-bin.d.ts","sourceRoot":"","sources":["../../src/cli/server-bin.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const server_1 = require("./server");
5
+ (0, server_1.runServerCli)(process.argv.slice(2));
6
+ //# sourceMappingURL=server-bin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-bin.js","sourceRoot":"","sources":["../../src/cli/server-bin.ts"],"names":[],"mappings":";;;AACA,qCAAwC;AACxC,IAAA,qBAAY,EAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { RhostConfig } from '../config';
2
+ export interface ServerOptions {
3
+ port: number;
4
+ image: string | null;
5
+ buildFromSource: boolean;
6
+ projectRoot: string;
7
+ config: RhostConfig;
8
+ startupTimeout: number;
9
+ }
10
+ export declare function parseArgs(args: string[]): ServerOptions | null;
11
+ export declare function runServerCli(args: string[]): Promise<void>;
12
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/cli/server.ts"],"names":[],"mappings":"AAOA,OAAO,EAAc,WAAW,EAAuB,MAAM,WAAW,CAAC;AAOzE,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,aAAa,GAAG,IAAI,CAgG9D;AA2CD,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqIhE"}
@@ -0,0 +1,339 @@
1
+ "use strict";
2
+ // ---------------------------------------------------------------------------
3
+ // CLI handler: rhost-testkit server (also exposed as `rhost-server` bin)
4
+ // ---------------------------------------------------------------------------
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.parseArgs = parseArgs;
40
+ exports.runServerCli = runServerCli;
41
+ const fs = __importStar(require("fs"));
42
+ const path = __importStar(require("path"));
43
+ const testcontainers_1 = require("testcontainers");
44
+ const config_1 = require("../config");
45
+ const CONTAINER_SCRIPTS_PATH = '/home/rhost/game/scripts';
46
+ const CONTAINER_MUSH_CONFIG_PATH = '/home/rhost/game/mush.config';
47
+ const CONTAINER_STUNNEL_CERT_PATH = '/home/rhost/stunnel-cert.pem';
48
+ const CONTAINER_STUNNEL_KEY_PATH = '/home/rhost/stunnel-key.pem';
49
+ function parseArgs(args) {
50
+ if (args.includes('--help') || args.includes('-h')) {
51
+ printHelp();
52
+ return null;
53
+ }
54
+ let port = 4201;
55
+ let image = 'lcanady/rhostmush:latest';
56
+ let buildFromSource = false;
57
+ let projectRoot = process.cwd();
58
+ let configPath = null;
59
+ let startupTimeout = 120000;
60
+ // Inline build flag overrides (merged on top of any config file)
61
+ let enableWebSockets;
62
+ let enableReality;
63
+ let extraCflags;
64
+ // Inline stunnel overrides
65
+ let stunnelEnable;
66
+ let stunnelAcceptPort;
67
+ let stunnelConnectPort;
68
+ let stunnelCert;
69
+ let stunnelKey;
70
+ for (let i = 0; i < args.length; i++) {
71
+ const arg = args[i];
72
+ const next = () => {
73
+ if (!args[i + 1]) {
74
+ console.error(`${arg} requires a value`);
75
+ process.exit(1);
76
+ }
77
+ return args[++i];
78
+ };
79
+ const nextInt = (flag) => {
80
+ const n = parseInt(next(), 10);
81
+ if (isNaN(n)) {
82
+ console.error(`${flag} must be a number`);
83
+ process.exit(1);
84
+ }
85
+ return n;
86
+ };
87
+ switch (arg) {
88
+ case '-p':
89
+ case '--port':
90
+ port = nextInt('--port');
91
+ break;
92
+ case '--image':
93
+ image = next();
94
+ break;
95
+ case '--build-from-source':
96
+ buildFromSource = true;
97
+ image = null;
98
+ break;
99
+ case '--project-root':
100
+ projectRoot = path.resolve(next());
101
+ break;
102
+ case '-c':
103
+ case '--config':
104
+ configPath = path.resolve(next());
105
+ break;
106
+ case '--startup-timeout':
107
+ startupTimeout = nextInt('--startup-timeout');
108
+ break;
109
+ // compile-time build flags
110
+ case '--enable-websockets':
111
+ enableWebSockets = true;
112
+ break;
113
+ case '--disable-websockets':
114
+ enableWebSockets = false;
115
+ break;
116
+ case '--enable-reality':
117
+ enableReality = true;
118
+ break;
119
+ case '--extra-cflags':
120
+ extraCflags = next();
121
+ break;
122
+ // stunnel
123
+ case '--stunnel':
124
+ stunnelEnable = true;
125
+ break;
126
+ case '--stunnel-port':
127
+ stunnelAcceptPort = nextInt('--stunnel-port');
128
+ stunnelEnable = true;
129
+ break;
130
+ case '--stunnel-connect-port':
131
+ stunnelConnectPort = nextInt('--stunnel-connect-port');
132
+ break;
133
+ case '--stunnel-cert':
134
+ stunnelCert = path.resolve(next());
135
+ break;
136
+ case '--stunnel-key':
137
+ stunnelKey = path.resolve(next());
138
+ break;
139
+ default:
140
+ console.error(`rhost-server: unknown option '${arg}'\n`);
141
+ printHelp();
142
+ process.exit(1);
143
+ }
144
+ }
145
+ // Load config file
146
+ let config = {};
147
+ if (configPath) {
148
+ const stat = fs.existsSync(configPath) && fs.statSync(configPath);
149
+ const dir = stat && stat.isDirectory() ? configPath : path.dirname(configPath);
150
+ config = (0, config_1.loadConfig)(dir) ?? {};
151
+ }
152
+ else {
153
+ config = (0, config_1.loadConfig)() ?? {};
154
+ }
155
+ // Merge CLI build flags on top of config file
156
+ if (enableWebSockets !== undefined || enableReality !== undefined || extraCflags !== undefined) {
157
+ config.build = {
158
+ ...config.build,
159
+ ...(enableWebSockets !== undefined && { enableWebSockets }),
160
+ ...(enableReality !== undefined && { enableReality }),
161
+ ...(extraCflags !== undefined && { extraCflags }),
162
+ };
163
+ }
164
+ // Merge CLI stunnel flags on top of config file
165
+ if (stunnelEnable !== undefined || stunnelAcceptPort !== undefined ||
166
+ stunnelConnectPort !== undefined || stunnelCert !== undefined || stunnelKey !== undefined) {
167
+ config.stunnel = {
168
+ ...config.stunnel,
169
+ ...(stunnelEnable !== undefined && { enable: stunnelEnable }),
170
+ ...(stunnelAcceptPort !== undefined && { acceptPort: stunnelAcceptPort }),
171
+ ...(stunnelConnectPort !== undefined && { connectPort: stunnelConnectPort }),
172
+ ...(stunnelCert !== undefined && { certFile: stunnelCert }),
173
+ ...(stunnelKey !== undefined && { keyFile: stunnelKey }),
174
+ };
175
+ }
176
+ return { port, image, buildFromSource, projectRoot, config, startupTimeout };
177
+ }
178
+ function printHelp() {
179
+ console.log(`
180
+ rhost-server — Start a RhostMUSH Docker server
181
+
182
+ USAGE
183
+ rhost-server [options]
184
+ rhost-testkit server [options]
185
+
186
+ SERVER OPTIONS
187
+ -p, --port <n> Host port to publish the MUSH on. Default: 4201
188
+ --image <name> Docker image to use. Default: lcanady/rhostmush:latest
189
+ --build-from-source Build the image from source instead of pulling
190
+ --project-root <path> Path to the rhostmush-docker repo (with --build-from-source)
191
+ -c, --config <path> Path to rhost.config.json (or its directory)
192
+ --startup-timeout <ms> Max ms to wait for ready. Default: 120000
193
+
194
+ COMPILE-TIME FLAGS (require --build-from-source)
195
+ --enable-websockets Enable WebSocket (RFC 6455) support
196
+ --disable-websockets Disable WebSocket support
197
+ --enable-reality Enable REALMS/Reality Levels system
198
+ --extra-cflags <flags> Additional raw CFLAGS (e.g. "-DFOO -DBAR")
199
+
200
+ STUNNEL OPTIONS
201
+ --stunnel Wrap the MUSH port in TLS via stunnel
202
+ --stunnel-port <n> Port stunnel listens on for TLS. Default: 4203
203
+ --stunnel-connect-port <n> Internal port stunnel forwards to. Default: 4201
204
+ --stunnel-cert <path> PEM certificate file (auto-generated if omitted)
205
+ --stunnel-key <path> PEM private key file (defaults to --stunnel-cert)
206
+
207
+ -h, --help Show this help
208
+
209
+ EXAMPLES
210
+ rhost-server
211
+ rhost-server --port 7000
212
+ rhost-server --config ./rhost.config.json
213
+ rhost-server --build-from-source --enable-websockets --enable-ssl
214
+ rhost-server --stunnel --stunnel-port 4203 --stunnel-cert ./cert.pem
215
+ rhost-server --build-from-source --enable-websockets --stunnel
216
+ `.trim());
217
+ }
218
+ async function runServerCli(args) {
219
+ const opts = parseArgs(args);
220
+ if (!opts)
221
+ return;
222
+ const { port, image, buildFromSource, projectRoot, config, startupTimeout } = opts;
223
+ const stunnelEnabled = config.stunnel?.enable === true;
224
+ const stunnelAccept = config.stunnel?.acceptPort ?? 4203;
225
+ const imageLabel = buildFromSource ? `source (${projectRoot})` : image;
226
+ console.log(`\nStarting RhostMUSH — ${buildFromSource ? 'building from source' : `image: ${image}`}`);
227
+ if (config.build && buildFromSource) {
228
+ const flags = Object.entries((0, config_1.buildArgsFromConfig)(config.build))
229
+ .map(([k, v]) => `${k}=${v}`).join(', ');
230
+ if (flags)
231
+ console.log(`Build flags: ${flags}`);
232
+ }
233
+ if (stunnelEnabled) {
234
+ console.log(`stunnel: TLS on :${stunnelAccept} → :${config.stunnel?.connectPort ?? port}`);
235
+ }
236
+ console.log('Pulling/building image and booting container… (first build may take several minutes)\n');
237
+ // ── Build the GenericContainer ──────────────────────────────────────────
238
+ let container;
239
+ if (buildFromSource) {
240
+ let builder = testcontainers_1.GenericContainer.fromDockerfile(projectRoot);
241
+ if (config.build) {
242
+ builder = builder.withBuildArgs((0, config_1.buildArgsFromConfig)(config.build));
243
+ }
244
+ container = await builder.build();
245
+ }
246
+ else {
247
+ container = new testcontainers_1.GenericContainer(image);
248
+ }
249
+ // ── Copy files into the container ────────────────────────────────────────
250
+ if (config.scriptsDir) {
251
+ if (!fs.existsSync(config.scriptsDir)) {
252
+ console.error(`rhost-server: scriptsDir not found: ${config.scriptsDir}`);
253
+ process.exit(1);
254
+ }
255
+ container = container.withCopyDirectoriesToContainer([{
256
+ source: config.scriptsDir,
257
+ target: CONTAINER_SCRIPTS_PATH,
258
+ }]);
259
+ }
260
+ if (config.mushConfig) {
261
+ if (!fs.existsSync(config.mushConfig)) {
262
+ console.error(`rhost-server: mushConfig not found: ${config.mushConfig}`);
263
+ process.exit(1);
264
+ }
265
+ container = container.withCopyFilesToContainer([{
266
+ source: config.mushConfig,
267
+ target: CONTAINER_MUSH_CONFIG_PATH,
268
+ }]);
269
+ }
270
+ // ── stunnel environment + cert files ─────────────────────────────────────
271
+ if (stunnelEnabled) {
272
+ const stunnel = config.stunnel;
273
+ const envVars = { STUNNEL_ENABLE: 'true' };
274
+ if (stunnel.acceptPort)
275
+ envVars['STUNNEL_ACCEPT_PORT'] = String(stunnel.acceptPort);
276
+ if (stunnel.connectPort)
277
+ envVars['STUNNEL_CONNECT_PORT'] = String(stunnel.connectPort);
278
+ const certFile = stunnel.certFile;
279
+ const keyFile = stunnel.keyFile;
280
+ if (certFile) {
281
+ if (!fs.existsSync(certFile)) {
282
+ console.error(`rhost-server: stunnel cert not found: ${certFile}`);
283
+ process.exit(1);
284
+ }
285
+ container = container.withCopyFilesToContainer([{ source: certFile, target: CONTAINER_STUNNEL_CERT_PATH }]);
286
+ envVars['STUNNEL_CERT'] = CONTAINER_STUNNEL_CERT_PATH;
287
+ if (keyFile && keyFile !== certFile) {
288
+ if (!fs.existsSync(keyFile)) {
289
+ console.error(`rhost-server: stunnel key not found: ${keyFile}`);
290
+ process.exit(1);
291
+ }
292
+ container = container.withCopyFilesToContainer([{ source: keyFile, target: CONTAINER_STUNNEL_KEY_PATH }]);
293
+ envVars['STUNNEL_KEY'] = CONTAINER_STUNNEL_KEY_PATH;
294
+ }
295
+ }
296
+ // If no certFile, entrypoint.sh auto-generates a self-signed cert.
297
+ container = container.withEnvironment(envVars);
298
+ }
299
+ // ── Ports ─────────────────────────────────────────────────────────────────
300
+ const exposedPorts = [
301
+ { container: 4201, host: port },
302
+ ];
303
+ if (stunnelEnabled) {
304
+ exposedPorts.push({ container: stunnelAccept, host: stunnelAccept });
305
+ }
306
+ const started = await container
307
+ .withExposedPorts(...exposedPorts)
308
+ .withWaitStrategy(testcontainers_1.Wait.forListeningPorts().withStartupTimeout(startupTimeout))
309
+ .start();
310
+ const host = started.getHost();
311
+ const mappedPort = started.getMappedPort(4201);
312
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
313
+ console.log(' RhostMUSH is running');
314
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
315
+ console.log(` Host: ${host}`);
316
+ console.log(` Port: ${mappedPort}`);
317
+ if (config.build?.enableWebSockets) {
318
+ const wsProto = stunnelEnabled ? 'wss' : 'ws';
319
+ const wsPort = stunnelEnabled ? started.getMappedPort(stunnelAccept) : mappedPort;
320
+ console.log(` WebSocket: ${wsProto}://${host}:${wsPort}`);
321
+ }
322
+ if (stunnelEnabled) {
323
+ const tlsPort = started.getMappedPort(stunnelAccept);
324
+ console.log(` TLS port: ${tlsPort} (via stunnel)`);
325
+ }
326
+ console.log(` Image: ${buildFromSource ? 'built from source' : imageLabel}`);
327
+ console.log(' Wizard: Wizard / Nyctasia (default credentials)');
328
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
329
+ console.log('\nPress Ctrl+C to stop.\n');
330
+ const shutdown = async () => {
331
+ console.log('\nShutting down…');
332
+ await started.stop();
333
+ process.exit(0);
334
+ };
335
+ process.on('SIGINT', shutdown);
336
+ process.on('SIGTERM', shutdown);
337
+ await new Promise(() => { });
338
+ }
339
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/cli/server.ts"],"names":[],"mappings":"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"}
package/dist/client.d.ts CHANGED
@@ -43,6 +43,22 @@ export interface RhostClientOptions {
43
43
  * aborted after this many milliseconds. Default: 10000
44
44
  */
45
45
  connectTimeout?: number;
46
+ /**
47
+ * When true, connects via WebSocket (RFC 6455) instead of raw TCP.
48
+ * Requires RhostMUSH compiled with ENABLE_WEBSOCKETS. Default: false.
49
+ */
50
+ useWebSocket?: boolean;
51
+ /**
52
+ * WebSocket request path sent in the HTTP upgrade handshake.
53
+ * Only relevant when useWebSocket is true. Default: '/'
54
+ */
55
+ websocketPath?: string;
56
+ /**
57
+ * Use a secure WebSocket connection (wss://) instead of plain ws://.
58
+ * Requires the port to be fronted by stunnel or another TLS terminator.
59
+ * Only relevant when useWebSocket is true. Default: false
60
+ */
61
+ websocketSecure?: boolean;
46
62
  }
47
63
  export interface PreviewOptions {
48
64
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAQA,uDAAuD;AACvD,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED,MAAM,WAAW,cAAc;IAC3B,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IAC/B,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAMD,MAAM,WAAW,cAAc;IAC3B;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;GASG;AACH,qBAAa,WAAW;IACpB,OAAO,CAAC,IAAI,CAAiB;IAC7B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,WAAW,CAAU;IAC7B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,eAAe,CAAS;IAEhC,OAAO,CAAC,cAAc,CAAS;gBAEnB,OAAO,GAAE,kBAAuB;IAU5C;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAK9B;;;OAGG;IACG,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB9D;;;;;;;;;;OAUG;IACG,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIjE;;;;;;;;;;;;;;OAcG;IACG,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAQtF;;;;;;;;;;;;;;;OAeG;IACG,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAmCzE;;;;;;;;;;OAUG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI7B;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACG,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;IAmB3E,4DAA4D;IAC5D,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAI7C,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAI9C,8CAA8C;IACxC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YAanB,YAAY;YA8BZ,eAAe;YAgCf,eAAe;IAQ7B,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,MAAM;CAGjB"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -24,7 +24,11 @@ function stripAnsi(s) {
24
24
  */
25
25
  class RhostClient {
26
26
  constructor(options = {}) {
27
- this.conn = new connection_1.MushConnection(options.host ?? 'localhost', options.port ?? 4201);
27
+ this.conn = new connection_1.MushConnection(options.host ?? 'localhost', options.port ?? 4201, {
28
+ useWebSocket: options.useWebSocket,
29
+ websocketPath: options.websocketPath,
30
+ websocketSecure: options.websocketSecure,
31
+ });
28
32
  this.defaultTimeout = options.timeout ?? 10000;
29
33
  this.bannerTimeout = options.bannerTimeout ?? 300;
30
34
  this.doStripAnsi = options.stripAnsi !== false;
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -1,4 +1,57 @@
1
1
  export declare const CONFIG_FILENAME = "rhost.config.json";
2
+ export interface RhostBuildConfig {
3
+ /**
4
+ * Compile RhostMUSH with WebSocket (RFC 6455) support.
5
+ * Equivalent to the ENABLE_WEBSOCKETS compile-time flag.
6
+ * Default: false
7
+ */
8
+ enableWebSockets?: boolean;
9
+ /**
10
+ * Compile RhostMUSH with the reality levels system.
11
+ * Default: false
12
+ */
13
+ enableReality?: boolean;
14
+ /**
15
+ * Arbitrary extra compiler flags passed directly to CFLAGS.
16
+ * Use for any compile-time feature not covered above.
17
+ * Example: "-DSOME_FEATURE -DANOTHER"
18
+ */
19
+ extraCflags?: string;
20
+ }
21
+ export interface RhostStunnelConfig {
22
+ /**
23
+ * Launch a stunnel process inside the container to wrap the MUSH port
24
+ * (or WebSocket port) in TLS. Required when clients connect via wss://
25
+ * or a browser enforces mixed-content rules.
26
+ * Default: false
27
+ */
28
+ enable?: boolean;
29
+ /**
30
+ * Port stunnel listens on for incoming TLS connections.
31
+ * This is the port clients connect to (e.g. for wss://).
32
+ * Default: 4203
33
+ */
34
+ acceptPort?: number;
35
+ /**
36
+ * Internal port stunnel forwards decrypted traffic to.
37
+ * Should match RHOST_PORT (plain MUSH) or the WebSocket port.
38
+ * Default: 4201
39
+ */
40
+ connectPort?: number;
41
+ /**
42
+ * Path to the PEM certificate file.
43
+ * If omitted, a self-signed certificate is generated automatically
44
+ * (suitable for testing; not for production).
45
+ * Relative to the directory containing rhost.config.json.
46
+ */
47
+ certFile?: string;
48
+ /**
49
+ * Path to the PEM private key file.
50
+ * Defaults to certFile if not set (combined cert+key PEM).
51
+ * Relative to the directory containing rhost.config.json.
52
+ */
53
+ keyFile?: string;
54
+ }
2
55
  export interface RhostConfig {
3
56
  /**
4
57
  * Path to a directory of execscript files that will be copied into the
@@ -13,6 +66,19 @@ export interface RhostConfig {
13
66
  * Relative to the directory containing `rhost.config.json`.
14
67
  */
15
68
  mushConfig?: string;
69
+ /**
70
+ * Compile-time feature flags. Only relevant when building the image from
71
+ * source via `RhostContainer.fromSource()` or `rhost-server --build-from-source`.
72
+ * Has no effect when using a pre-built image.
73
+ */
74
+ build?: RhostBuildConfig;
75
+ /**
76
+ * stunnel TLS wrapper configuration.
77
+ * When enabled, a stunnel process is launched inside the container that
78
+ * accepts TLS connections and forwards them to the plain MUSH port.
79
+ * This lets browser clients use wss:// even when the MUSH itself is plain TCP.
80
+ */
81
+ stunnel?: RhostStunnelConfig;
16
82
  }
17
83
  /**
18
84
  * Load `rhost.config.json` from `searchDir` (default: `process.cwd()`).
@@ -21,8 +87,11 @@ export interface RhostConfig {
21
87
  * container simply starts with its built-in defaults.
22
88
  *
23
89
  * @throws SyntaxError when the file exists but is not valid JSON.
24
- * @throws Error when `scriptsDir` or `mushConfig` resolve to a path
25
- * outside the project directory (path traversal guard).
90
+ * @throws Error when path fields resolve outside the project directory.
26
91
  */
27
92
  export declare function loadConfig(searchDir?: string): RhostConfig | null;
93
+ /** Convert a RhostBuildConfig into Docker build-arg key/value pairs. */
94
+ export declare function buildArgsFromConfig(build: RhostBuildConfig): Record<string, string>;
95
+ /** Convert a RhostStunnelConfig into container environment variables. */
96
+ export declare function stunnelEnvFromConfig(stunnel: RhostStunnelConfig): Record<string, string>;
28
97
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,eAAe,sBAAsB,CAAC;AAEnD,MAAM,WAAW,WAAW;IACxB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,SAAS,GAAE,MAAsB,GAAG,WAAW,GAAG,IAAI,CAgChF"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAsCA,eAAO,MAAM,eAAe,sBAAsB,CAAC;AAEnD,MAAM,WAAW,gBAAgB;IAC7B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IAC/B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IACxB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,KAAK,CAAC,EAAE,gBAAgB,CAAC;IAEzB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAChC;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,SAAS,GAAE,MAAsB,GAAG,WAAW,GAAG,IAAI,CAqChF;AAED,wEAAwE;AACxE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMnF;AAED,yEAAyE;AACzE,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAUxF"}