@rhost/testkit 1.5.3 → 1.6.1
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/README.md +187 -7
- package/dist/cli/index.js +7 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/server-bin.d.ts +3 -0
- package/dist/cli/server-bin.d.ts.map +1 -0
- package/dist/cli/server-bin.js +6 -0
- package/dist/cli/server-bin.js.map +1 -0
- package/dist/cli/server.d.ts +12 -0
- package/dist/cli/server.d.ts.map +1 -0
- package/dist/cli/server.js +339 -0
- package/dist/cli/server.js.map +1 -0
- package/dist/client.d.ts +16 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +5 -1
- package/dist/client.js.map +1 -1
- package/dist/config.d.ts +71 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +56 -4
- package/dist/config.js.map +1 -1
- package/dist/connection.d.ts +24 -1
- package/dist/connection.d.ts.map +1 -1
- package/dist/connection.js +63 -5
- package/dist/connection.js.map +1 -1
- package/dist/container.d.ts +7 -7
- package/dist/container.d.ts.map +1 -1
- package/dist/container.js +73 -10
- package/dist/container.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/offline/runner.d.ts +1 -1
- package/dist/offline/runner.d.ts.map +1 -1
- package/dist/offline/runner.js +3 -3
- package/dist/offline/runner.js.map +1 -1
- package/dist/pueblo.d.ts +40 -0
- package/dist/pueblo.d.ts.map +1 -0
- package/dist/pueblo.js +265 -0
- package/dist/pueblo.js.map +1 -0
- package/package.json +10 -4
|
@@ -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
|
/**
|
package/dist/client.d.ts.map
CHANGED
|
@@ -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;
|
|
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;
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;;AASA,8BAEC;AAXD,mCAAoC;AACpC,6CAA8C;AAE9C,oDAAoD;AACpD,yDAAyD;AACzD,gCAAgC;AAChC,MAAM,OAAO,GAAG,0DAA0D,CAAC;AAE3E,uDAAuD;AACvD,SAAgB,SAAS,CAAC,CAAS;IAC/B,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAClC,CAAC;
|
|
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
|
|
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
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
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"}
|
package/dist/config.js
CHANGED
|
@@ -35,6 +35,8 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.CONFIG_FILENAME = void 0;
|
|
37
37
|
exports.loadConfig = loadConfig;
|
|
38
|
+
exports.buildArgsFromConfig = buildArgsFromConfig;
|
|
39
|
+
exports.stunnelEnvFromConfig = stunnelEnvFromConfig;
|
|
38
40
|
/**
|
|
39
41
|
* rhost.config.json loader
|
|
40
42
|
*
|
|
@@ -49,6 +51,26 @@ exports.loadConfig = loadConfig;
|
|
|
49
51
|
* "mushConfig": "./mush.conf"
|
|
50
52
|
* }
|
|
51
53
|
* ```
|
|
54
|
+
*
|
|
55
|
+
* Full example with build flags and stunnel:
|
|
56
|
+
* ```json
|
|
57
|
+
* {
|
|
58
|
+
* "scriptsDir": "./scripts",
|
|
59
|
+
* "mushConfig": "./mush.conf",
|
|
60
|
+
* "build": {
|
|
61
|
+
* "enableWebSockets": true,
|
|
62
|
+
* "enableSsl": true,
|
|
63
|
+
* "extraCflags": "-DPUEBLO"
|
|
64
|
+
* },
|
|
65
|
+
* "stunnel": {
|
|
66
|
+
* "enable": true,
|
|
67
|
+
* "acceptPort": 4203,
|
|
68
|
+
* "connectPort": 4201,
|
|
69
|
+
* "certFile": "./certs/server.pem",
|
|
70
|
+
* "keyFile": "./certs/server.key"
|
|
71
|
+
* }
|
|
72
|
+
* }
|
|
73
|
+
* ```
|
|
52
74
|
*/
|
|
53
75
|
const fs = __importStar(require("fs"));
|
|
54
76
|
const path = __importStar(require("path"));
|
|
@@ -60,8 +82,7 @@ exports.CONFIG_FILENAME = 'rhost.config.json';
|
|
|
60
82
|
* container simply starts with its built-in defaults.
|
|
61
83
|
*
|
|
62
84
|
* @throws SyntaxError when the file exists but is not valid JSON.
|
|
63
|
-
* @throws Error when
|
|
64
|
-
* outside the project directory (path traversal guard).
|
|
85
|
+
* @throws Error when path fields resolve outside the project directory.
|
|
65
86
|
*/
|
|
66
87
|
function loadConfig(searchDir = process.cwd()) {
|
|
67
88
|
const configPath = path.join(searchDir, exports.CONFIG_FILENAME);
|
|
@@ -70,8 +91,6 @@ function loadConfig(searchDir = process.cwd()) {
|
|
|
70
91
|
}
|
|
71
92
|
const raw = fs.readFileSync(configPath, 'utf8');
|
|
72
93
|
const parsed = JSON.parse(raw);
|
|
73
|
-
// Resolve relative paths to absolute, anchored at the config file location,
|
|
74
|
-
// then assert they remain within the project root (searchDir).
|
|
75
94
|
const root = path.resolve(searchDir) + path.sep;
|
|
76
95
|
const base = path.dirname(configPath);
|
|
77
96
|
function resolveConfined(field, value) {
|
|
@@ -89,6 +108,39 @@ function loadConfig(searchDir = process.cwd()) {
|
|
|
89
108
|
if (parsed.mushConfig) {
|
|
90
109
|
parsed.mushConfig = resolveConfined('mushConfig', parsed.mushConfig);
|
|
91
110
|
}
|
|
111
|
+
if (parsed.stunnel?.certFile) {
|
|
112
|
+
parsed.stunnel.certFile = resolveConfined('stunnel.certFile', parsed.stunnel.certFile);
|
|
113
|
+
}
|
|
114
|
+
if (parsed.stunnel?.keyFile) {
|
|
115
|
+
parsed.stunnel.keyFile = resolveConfined('stunnel.keyFile', parsed.stunnel.keyFile);
|
|
116
|
+
}
|
|
92
117
|
return parsed;
|
|
93
118
|
}
|
|
119
|
+
/** Convert a RhostBuildConfig into Docker build-arg key/value pairs. */
|
|
120
|
+
function buildArgsFromConfig(build) {
|
|
121
|
+
const args = {};
|
|
122
|
+
if (build.enableWebSockets)
|
|
123
|
+
args['ENABLE_WEBSOCKETS'] = '1';
|
|
124
|
+
if (build.enableReality)
|
|
125
|
+
args['ENABLE_REALITY'] = '1';
|
|
126
|
+
if (build.extraCflags)
|
|
127
|
+
args['EXTRA_CFLAGS'] = build.extraCflags;
|
|
128
|
+
return args;
|
|
129
|
+
}
|
|
130
|
+
/** Convert a RhostStunnelConfig into container environment variables. */
|
|
131
|
+
function stunnelEnvFromConfig(stunnel) {
|
|
132
|
+
const env = {};
|
|
133
|
+
if (stunnel.enable) {
|
|
134
|
+
env['STUNNEL_ENABLE'] = 'true';
|
|
135
|
+
if (stunnel.acceptPort)
|
|
136
|
+
env['STUNNEL_ACCEPT_PORT'] = String(stunnel.acceptPort);
|
|
137
|
+
if (stunnel.connectPort)
|
|
138
|
+
env['STUNNEL_CONNECT_PORT'] = String(stunnel.connectPort);
|
|
139
|
+
if (stunnel.certFile)
|
|
140
|
+
env['STUNNEL_CERT'] = stunnel.certFile;
|
|
141
|
+
if (stunnel.keyFile)
|
|
142
|
+
env['STUNNEL_KEY'] = stunnel.keyFile;
|
|
143
|
+
}
|
|
144
|
+
return env;
|
|
145
|
+
}
|
|
94
146
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|