@rhost/testkit 1.6.1 → 1.6.2

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.
@@ -1,6 +1,69 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
+ // ---------------------------------------------------------------------------
4
+ // rhost-server — standalone server CLI
5
+ // ---------------------------------------------------------------------------
3
6
  Object.defineProperty(exports, "__esModule", { value: true });
4
7
  const server_1 = require("./server");
5
- (0, server_1.runServerCli)(process.argv.slice(2));
8
+ const server_init_1 = require("./server-init");
9
+ const args = process.argv.slice(2);
10
+ const cmd = args[0];
11
+ switch (cmd) {
12
+ case 'start':
13
+ case undefined:
14
+ // bare `rhost-server` or `rhost-server start` both launch the server
15
+ (0, server_1.runServerCli)(cmd === 'start' ? args.slice(1) : args);
16
+ break;
17
+ case 'init':
18
+ (0, server_init_1.runServerInitCli)(args.slice(1));
19
+ break;
20
+ case '--version':
21
+ case '-v': {
22
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
23
+ const pkg = require('../../package.json');
24
+ console.log(pkg.version);
25
+ break;
26
+ }
27
+ case '--help':
28
+ case '-h':
29
+ printHelp();
30
+ break;
31
+ default:
32
+ // treat unknown first arg as a flag for `start` (e.g. `rhost-server --port 7000`)
33
+ if (cmd.startsWith('-')) {
34
+ (0, server_1.runServerCli)(args);
35
+ }
36
+ else {
37
+ console.error(`rhost-server: unknown command '${cmd}'\n`);
38
+ printHelp();
39
+ process.exit(1);
40
+ }
41
+ }
42
+ function printHelp() {
43
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
44
+ const pkg = require('../../package.json');
45
+ console.log(`
46
+ rhost-server v${pkg.version} — RhostMUSH Docker server
47
+
48
+ USAGE
49
+ rhost-server [command] [options]
50
+
51
+ COMMANDS
52
+ start Launch a RhostMUSH Docker container (default when no command given)
53
+ init Scaffold a rhost.config.json and supporting files in a directory
54
+
55
+ OPTIONS
56
+ -v, --version Print version and exit
57
+ -h, --help Show this help
58
+
59
+ Run \`rhost-server <command> --help\` for command-specific options.
60
+
61
+ EXAMPLES
62
+ rhost-server # start with defaults
63
+ rhost-server start --port 7000
64
+ rhost-server init # scaffold config in current directory
65
+ rhost-server init my-mush # scaffold into my-mush/
66
+ rhost-server init . --websocket --stunnel
67
+ `.trim());
68
+ }
6
69
  //# sourceMappingURL=server-bin.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"server-bin.js","sourceRoot":"","sources":["../../src/cli/server-bin.ts"],"names":[],"mappings":";;AACA,8EAA8E;AAC9E,uCAAuC;AACvC,8EAA8E;;AAE9E,qCAAwC;AACxC,+CAAiD;AAEjD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,GAAG,GAAI,IAAI,CAAC,CAAC,CAAC,CAAC;AAErB,QAAQ,GAAG,EAAE,CAAC;IACV,KAAK,OAAO,CAAC;IACb,KAAK,SAAS;QACV,qEAAqE;QACrE,IAAA,qBAAY,EAAC,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM;IAEV,KAAK,MAAM;QACP,IAAA,8BAAgB,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM;IAEV,KAAK,WAAW,CAAC;IACjB,KAAK,IAAI,CAAC,CAAC,CAAC;QACR,8DAA8D;QAC9D,MAAM,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAwB,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACzB,MAAM;IACV,CAAC;IAED,KAAK,QAAQ,CAAC;IACd,KAAK,IAAI;QACL,SAAS,EAAE,CAAC;QACZ,MAAM;IAEV;QACI,kFAAkF;QAClF,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,IAAA,qBAAY,EAAC,IAAI,CAAC,CAAC;QACvB,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,KAAK,CAAC,kCAAkC,GAAG,KAAK,CAAC,CAAC;YAC1D,SAAS,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;AACT,CAAC;AAED,SAAS,SAAS;IACd,8DAA8D;IAC9D,MAAM,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAwB,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC;gBACA,GAAG,CAAC,OAAO;;;;;;;;;;;;;;;;;;;;;CAqB1B,CAAC,IAAI,EAAE,CAAC,CAAC;AACV,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function runServerInitCli(args: string[]): void;
2
+ //# sourceMappingURL=server-init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-init.d.ts","sourceRoot":"","sources":["../../src/cli/server-init.ts"],"names":[],"mappings":"AAkGA,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CA8GrD"}
@@ -0,0 +1,203 @@
1
+ "use strict";
2
+ // ---------------------------------------------------------------------------
3
+ // CLI handler: rhost-server init
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.runServerInitCli = runServerInitCli;
40
+ const fs = __importStar(require("fs"));
41
+ const path = __importStar(require("path"));
42
+ function parseArgs(args) {
43
+ if (args.includes('--help') || args.includes('-h')) {
44
+ printHelp();
45
+ return null;
46
+ }
47
+ let dir = process.cwd();
48
+ let websocket = false;
49
+ let stunnel = false;
50
+ let reality = false;
51
+ let force = false;
52
+ for (let i = 0; i < args.length; i++) {
53
+ const arg = args[i];
54
+ if (arg === '--websocket' || arg === '--ws') {
55
+ websocket = true;
56
+ }
57
+ else if (arg === '--stunnel') {
58
+ stunnel = true;
59
+ websocket = true; // stunnel implies websocket
60
+ }
61
+ else if (arg === '--reality') {
62
+ reality = true;
63
+ }
64
+ else if (arg === '--force' || arg === '-f') {
65
+ force = true;
66
+ }
67
+ else if (!arg.startsWith('-')) {
68
+ dir = path.resolve(arg);
69
+ }
70
+ else {
71
+ console.error(`rhost-server init: unknown option '${arg}'\n`);
72
+ printHelp();
73
+ process.exit(1);
74
+ }
75
+ }
76
+ return { dir, websocket, stunnel, reality, force };
77
+ }
78
+ function printHelp() {
79
+ console.log(`
80
+ rhost-server init — scaffold a server configuration
81
+
82
+ USAGE
83
+ rhost-server init [dir] [options]
84
+
85
+ ARGUMENTS
86
+ dir Directory to scaffold (default: current directory)
87
+
88
+ OPTIONS
89
+ --websocket, --ws Enable WebSocket support in the generated config
90
+ --stunnel Enable stunnel TLS wrapper (implies --websocket)
91
+ --reality Enable Reality Levels in the generated config
92
+ --force, -f Overwrite existing files
93
+ -h, --help Show this help
94
+
95
+ OUTPUT
96
+ rhost.config.json Server configuration file
97
+ .env Environment variable overrides
98
+ certs/ Directory for TLS certificates (when --stunnel)
99
+ scripts/ Directory for execscript files
100
+ persistent_data/ Directory for persistent game data
101
+
102
+ EXAMPLES
103
+ rhost-server init
104
+ rhost-server init my-mush
105
+ rhost-server init . --websocket
106
+ rhost-server init . --stunnel --force
107
+ `.trim());
108
+ }
109
+ function write(filePath, content, force) {
110
+ if (fs.existsSync(filePath) && !force) {
111
+ console.log(` skip ${path.basename(filePath)} (already exists — use --force to overwrite)`);
112
+ return;
113
+ }
114
+ fs.writeFileSync(filePath, content, 'utf8');
115
+ console.log(` write ${path.relative(process.cwd(), filePath)}`);
116
+ }
117
+ function mkdir(dirPath) {
118
+ if (!fs.existsSync(dirPath)) {
119
+ fs.mkdirSync(dirPath, { recursive: true });
120
+ console.log(` mkdir ${path.relative(process.cwd(), dirPath)}/`);
121
+ }
122
+ }
123
+ function runServerInitCli(args) {
124
+ const opts = parseArgs(args);
125
+ if (!opts)
126
+ return;
127
+ const { dir, websocket, stunnel, reality, force } = opts;
128
+ mkdir(dir);
129
+ console.log(`\nScaffolding RhostMUSH server config in ${path.relative(process.cwd(), dir) || '.'}\n`);
130
+ // ── rhost.config.json ──────────────────────────────────────────────────
131
+ const config = {
132
+ scriptsDir: './scripts',
133
+ };
134
+ if (websocket || reality) {
135
+ const build = {};
136
+ if (websocket)
137
+ build.enableWebSockets = true;
138
+ if (reality)
139
+ build.enableReality = true;
140
+ config.build = build;
141
+ }
142
+ if (stunnel) {
143
+ config.stunnel = {
144
+ enable: true,
145
+ acceptPort: 4203,
146
+ connectPort: 4201,
147
+ certFile: './certs/server.pem',
148
+ keyFile: './certs/server.key',
149
+ };
150
+ }
151
+ write(path.join(dir, 'rhost.config.json'), JSON.stringify(config, null, 2) + '\n', force);
152
+ // ── .env ───────────────────────────────────────────────────────────────
153
+ const envLines = [
154
+ '# RhostMUSH server settings',
155
+ 'RHOST_PORT=4201',
156
+ 'RHOST_MUD_NAME=RhostMUSH',
157
+ 'RHOST_API_PORT=4202',
158
+ '# Change this before exposing the server to any network:',
159
+ 'RHOST_PASS=Nyctasia',
160
+ '',
161
+ '# Persistent game data directory',
162
+ 'RHOST_DATA_DIR=./persistent_data',
163
+ ];
164
+ if (stunnel) {
165
+ envLines.push('', '# stunnel TLS wrapper', 'STUNNEL_ENABLE=true', 'STUNNEL_ACCEPT_PORT=4203', 'STUNNEL_CONNECT_PORT=4201', '# STUNNEL_CERT=./certs/server.pem', '# STUNNEL_KEY=./certs/server.key');
166
+ }
167
+ write(path.join(dir, '.env'), envLines.join('\n') + '\n', force);
168
+ // ── directories ────────────────────────────────────────────────────────
169
+ mkdir(path.join(dir, 'scripts'));
170
+ mkdir(path.join(dir, 'persistent_data'));
171
+ if (stunnel) {
172
+ mkdir(path.join(dir, 'certs'));
173
+ write(path.join(dir, 'certs', '.gitkeep'), '', force);
174
+ // gitignore the actual cert files, keep the directory
175
+ write(path.join(dir, 'certs', '.gitignore'), '*.pem\n*.key\n*.crt\n*.p12\n', force);
176
+ }
177
+ // ── .gitignore ─────────────────────────────────────────────────────────
178
+ const ignoreLines = [
179
+ '.env',
180
+ 'persistent_data/',
181
+ 'node_modules/',
182
+ ];
183
+ if (stunnel)
184
+ ignoreLines.push('certs/*.pem', 'certs/*.key');
185
+ write(path.join(dir, '.gitignore'), ignoreLines.join('\n') + '\n', force);
186
+ // ── summary ────────────────────────────────────────────────────────────
187
+ console.log('\nDone. Next steps:\n');
188
+ if (stunnel) {
189
+ console.log(' 1. Add your TLS certificate and key to certs/');
190
+ console.log(' (or omit them — a self-signed cert will be generated automatically)');
191
+ console.log(' 2. Edit .env to set RHOST_PASS and RHOST_MUD_NAME');
192
+ console.log(' 3. Run: rhost-server start --build-from-source --config rhost.config.json');
193
+ }
194
+ else {
195
+ console.log(' 1. Edit .env to set RHOST_PASS and RHOST_MUD_NAME');
196
+ console.log(' 2. Run: rhost-server start');
197
+ if (websocket) {
198
+ console.log(' (with WebSocket: rhost-server start --build-from-source)');
199
+ }
200
+ }
201
+ console.log();
202
+ }
203
+ //# sourceMappingURL=server-init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-init.js","sourceRoot":"","sources":["../../src/cli/server-init.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rhost/testkit",
3
- "version": "1.6.1",
3
+ "version": "1.6.2",
4
4
  "description": "SDK for programmatically testing MUSHcode against a RhostMUSH server",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -20,6 +20,9 @@
20
20
  "./offline": {
21
21
  "require": "./dist/offline/index.js",
22
22
  "types": "./dist/offline/index.d.ts"
23
+ },
24
+ "./server-bin": {
25
+ "require": "./dist/cli/server-bin.js"
23
26
  }
24
27
  },
25
28
  "files": [