@rhost/testkit 1.4.0 → 1.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 (73) hide show
  1. package/README.md +1 -0
  2. package/dist/cli/index.js +15 -4
  3. package/dist/cli/index.js.map +1 -1
  4. package/dist/cli/init.d.ts.map +1 -1
  5. package/dist/cli/init.js +107 -19
  6. package/dist/cli/init.js.map +1 -1
  7. package/dist/cli/lint.d.ts +2 -0
  8. package/dist/cli/lint.d.ts.map +1 -0
  9. package/dist/cli/lint.js +163 -0
  10. package/dist/cli/lint.js.map +1 -0
  11. package/dist/cli/mush-format.d.ts +2 -0
  12. package/dist/cli/mush-format.d.ts.map +1 -0
  13. package/dist/cli/mush-format.js +232 -0
  14. package/dist/cli/mush-format.js.map +1 -0
  15. package/dist/client.d.ts +43 -1
  16. package/dist/client.d.ts.map +1 -1
  17. package/dist/client.js +78 -5
  18. package/dist/client.js.map +1 -1
  19. package/dist/index.d.ts +3 -1
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +10 -1
  22. package/dist/index.js.map +1 -1
  23. package/dist/offline/document.d.ts +8 -0
  24. package/dist/offline/document.d.ts.map +1 -0
  25. package/dist/offline/document.js +124 -0
  26. package/dist/offline/document.js.map +1 -0
  27. package/dist/offline/expect.d.ts +27 -0
  28. package/dist/offline/expect.d.ts.map +1 -0
  29. package/dist/offline/expect.js +90 -0
  30. package/dist/offline/expect.js.map +1 -0
  31. package/dist/offline/index.d.ts +5 -0
  32. package/dist/offline/index.d.ts.map +1 -0
  33. package/dist/offline/index.js +14 -0
  34. package/dist/offline/index.js.map +1 -0
  35. package/dist/offline/mock-client.d.ts +19 -0
  36. package/dist/offline/mock-client.d.ts.map +1 -0
  37. package/dist/offline/mock-client.js +36 -0
  38. package/dist/offline/mock-client.js.map +1 -0
  39. package/dist/offline/mock-world.d.ts +30 -0
  40. package/dist/offline/mock-world.d.ts.map +1 -0
  41. package/dist/offline/mock-world.js +64 -0
  42. package/dist/offline/mock-world.js.map +1 -0
  43. package/dist/offline/reduced-expect.d.ts +38 -0
  44. package/dist/offline/reduced-expect.d.ts.map +1 -0
  45. package/dist/offline/reduced-expect.js +61 -0
  46. package/dist/offline/reduced-expect.js.map +1 -0
  47. package/dist/offline/runner.d.ts +13 -0
  48. package/dist/offline/runner.d.ts.map +1 -0
  49. package/dist/offline/runner.js +174 -0
  50. package/dist/offline/runner.js.map +1 -0
  51. package/dist/offline/types.d.ts +78 -0
  52. package/dist/offline/types.d.ts.map +1 -0
  53. package/dist/offline/types.js +3 -0
  54. package/dist/offline/types.js.map +1 -0
  55. package/dist/reporter.d.ts +3 -1
  56. package/dist/reporter.d.ts.map +1 -1
  57. package/dist/reporter.js +20 -0
  58. package/dist/reporter.js.map +1 -1
  59. package/dist/runner.d.ts +39 -0
  60. package/dist/runner.d.ts.map +1 -1
  61. package/dist/runner.js +82 -15
  62. package/dist/runner.js.map +1 -1
  63. package/dist/validator/formatter.js +13 -2
  64. package/dist/validator/formatter.js.map +1 -1
  65. package/dist/validator/mush-format.d.ts +43 -0
  66. package/dist/validator/mush-format.d.ts.map +1 -0
  67. package/dist/validator/mush-format.js +484 -0
  68. package/dist/validator/mush-format.js.map +1 -0
  69. package/dist/validator/mush-lint.d.ts +22 -0
  70. package/dist/validator/mush-lint.d.ts.map +1 -0
  71. package/dist/validator/mush-lint.js +590 -0
  72. package/dist/validator/mush-lint.js.map +1 -0
  73. package/package.json +10 -2
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
@@ -52,8 +52,19 @@ class Serializer {
52
52
  if (pretty && hasNestedCall(trimmedArgs)) {
53
53
  const indent = ' '.repeat(depth + 1);
54
54
  const closingIndent = ' '.repeat(depth);
55
- const serializedArgs = trimmedArgs.map(arg => indent + this.serializeNodes(arg, depth + 1));
56
- return `${name}(\n${serializedArgs.join(',\n')}\n${closingIndent})`;
55
+ const serializedArgs = trimmedArgs.map(arg => this.serializeNodes(arg, depth + 1));
56
+ let body = '';
57
+ for (let i = 0; i < serializedArgs.length; i++) {
58
+ const s = serializedArgs[i];
59
+ const isLast = i === serializedArgs.length - 1;
60
+ if (s === '') {
61
+ body += ',';
62
+ }
63
+ else {
64
+ body += `\n${indent}${s}` + (isLast ? '' : ',');
65
+ }
66
+ }
67
+ return `${name}(${body}\n${closingIndent})`;
57
68
  }
58
69
  const serializedArgs = trimmedArgs.map(arg => this.serializeNodes(arg, depth + 1));
59
70
  return `${name}(${serializedArgs.join(',')})`;
@@ -1 +1 @@
1
- {"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../src/validator/formatter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../src/validator/formatter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ export interface ExpandOptions {
2
+ /** Indent size in spaces. Default: 2. */
3
+ indent?: number;
4
+ }
5
+ export interface CompressOptions {
6
+ /** Normalise function names to lowercase. Default: false. */
7
+ lowercase?: boolean;
8
+ }
9
+ export interface FileFormatResult {
10
+ output: string;
11
+ changed: boolean;
12
+ }
13
+ /**
14
+ * Expand a compressed installer line's attribute value into pretty
15
+ * multi-line format for use in a src/*.mush file.
16
+ *
17
+ * expandAttrValue('$+finger *:@pemit %#=[u(me/FN_FINGER,%0)]')
18
+ * →
19
+ * $+finger *:
20
+ * @pemit %#=
21
+ * [u(me/FN_FINGER, %0)]
22
+ */
23
+ export declare function expandAttrValue(value: string, opts?: ExpandOptions): string;
24
+ /**
25
+ * Compress a pretty src/*.mush attribute value to a single line suitable
26
+ * for an installer file. Strips leading/trailing whitespace per argument
27
+ * and collapses multi-line indentation.
28
+ */
29
+ export declare function compressAttrValue(value: string, opts?: CompressOptions): string;
30
+ /**
31
+ * Expand a full installer file to pretty src format.
32
+ */
33
+ export declare function expandFile(content: string, opts?: ExpandOptions): FileFormatResult;
34
+ /**
35
+ * Compress a pretty src/*.mush file to installer format.
36
+ */
37
+ export declare function compressFile(content: string, meta?: {
38
+ name?: string;
39
+ version?: string;
40
+ author?: string;
41
+ requires?: string;
42
+ }, opts?: CompressOptions): FileFormatResult;
43
+ //# sourceMappingURL=mush-format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mush-format.d.ts","sourceRoot":"","sources":["../../src/validator/mush-format.ts"],"names":[],"mappings":"AAsBA,MAAM,WAAW,aAAa;IAC5B,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,6DAA6D;IAC7D,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,aAAkB,GAAG,MAAM,CAS/E;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,eAAoB,GAAG,MAAM,CAcnF;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,aAAkB,GAAG,gBAAgB,CAmEtF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,EAClF,IAAI,GAAE,eAAoB,GACzB,gBAAgB,CAoFlB"}
@@ -0,0 +1,484 @@
1
+ "use strict";
2
+ // ---------------------------------------------------------------------------
3
+ // mush-format — full-file softcode formatter
4
+ //
5
+ // Handles the two-way conversion mandated by mush-architect's FILE FORMAT
6
+ // CONTRACT:
7
+ //
8
+ // expand dist/*.installer.txt → src/*.mush (compressed → readable)
9
+ // compress src/*.mush → dist/*.installer.txt (readable → compressed)
10
+ //
11
+ // The key capability that the existing `fmt` module lacks: this formatter
12
+ // understands the full attribute-value structure — dollar patterns, @commands,
13
+ // command lists (`;`), and braced content — by using the compiled PEG grammar.
14
+ // Braced content is re-parsed recursively so `{@switch ...}` gets indented
15
+ // as nested commands rather than rendered as an opaque string.
16
+ // ---------------------------------------------------------------------------
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.expandAttrValue = expandAttrValue;
19
+ exports.compressAttrValue = compressAttrValue;
20
+ exports.expandFile = expandFile;
21
+ exports.compressFile = compressFile;
22
+ const mushcode_1 = require("@ursamu/mushcode");
23
+ /**
24
+ * Expand a compressed installer line's attribute value into pretty
25
+ * multi-line format for use in a src/*.mush file.
26
+ *
27
+ * expandAttrValue('$+finger *:@pemit %#=[u(me/FN_FINGER,%0)]')
28
+ * →
29
+ * $+finger *:
30
+ * @pemit %#=
31
+ * [u(me/FN_FINGER, %0)]
32
+ */
33
+ function expandAttrValue(value, opts = {}) {
34
+ const indent = opts.indent ?? 2;
35
+ try {
36
+ const ast = (0, mushcode_1.parse)(value);
37
+ return prettyNode(ast, 0, indent);
38
+ }
39
+ catch {
40
+ // Not parseable (syntax error, RhostMUSH-specific syntax, etc.) — return as-is
41
+ return value;
42
+ }
43
+ }
44
+ /**
45
+ * Compress a pretty src/*.mush attribute value to a single line suitable
46
+ * for an installer file. Strips leading/trailing whitespace per argument
47
+ * and collapses multi-line indentation.
48
+ */
49
+ function compressAttrValue(value, opts = {}) {
50
+ // Strip leading/trailing whitespace from the whole value
51
+ const trimmed = value.trim();
52
+ try {
53
+ const ast = (0, mushcode_1.parse)(trimmed);
54
+ let result = (0, mushcode_1.print)(ast, { mode: 'compact' });
55
+ if (opts.lowercase) {
56
+ result = result.replace(/([A-Za-z][A-Za-z0-9_]*)\(/g, (_, name) => name.toLowerCase() + '(');
57
+ }
58
+ return result;
59
+ }
60
+ catch {
61
+ // Fall back to simple whitespace collapse
62
+ return trimmed.replace(/\s+/g, ' ');
63
+ }
64
+ }
65
+ /**
66
+ * Expand a full installer file to pretty src format.
67
+ */
68
+ function expandFile(content, opts = {}) {
69
+ const lines = content.split('\n');
70
+ const out = [];
71
+ for (const raw of lines) {
72
+ const line = raw.trimEnd();
73
+ // Strip installer @@ header/footer comments — they're generated on compress
74
+ if (line.startsWith('@@ ===') || line.startsWith('@@ ---['))
75
+ continue;
76
+ if (line.match(/^@@ Mushcode Installer/i))
77
+ continue;
78
+ if (line.match(/^@@ \[END OF FILE\]/i))
79
+ continue;
80
+ if (line.match(/^@@ Version:/i))
81
+ continue;
82
+ if (line.match(/^@@ Requires:/i))
83
+ continue;
84
+ if (line.match(/^@@ Author:/i))
85
+ continue;
86
+ if (line.match(/^@@ $/))
87
+ continue;
88
+ // Convert @@ section markers to // comments
89
+ if (line.startsWith('@@')) {
90
+ const comment = line.replace(/^@@\s*/, '').trim();
91
+ if (comment)
92
+ out.push(`// ${comment}`);
93
+ else
94
+ out.push('');
95
+ continue;
96
+ }
97
+ // Attribute set: &ATTR obj=value
98
+ const attrMatch = line.match(/^(&[A-Za-z_][A-Za-z0-9_-]*(?:\.[0-9]+)?\s+[^=]+)=(.*)$/);
99
+ if (attrMatch) {
100
+ const header = attrMatch[1];
101
+ const value = attrMatch[2];
102
+ if (!value.trim()) {
103
+ out.push(`${header}=`);
104
+ }
105
+ else {
106
+ const pretty = expandAttrValue(value, opts);
107
+ const ind = ' '.repeat(opts.indent ?? 2);
108
+ // Multi-line value: put value on new line indented
109
+ if (pretty.includes('\n')) {
110
+ out.push(`${header}=`);
111
+ out.push(pretty.split('\n').map(l => ind + l).join('\n'));
112
+ }
113
+ else {
114
+ out.push(`${header}=${pretty}`);
115
+ }
116
+ }
117
+ out.push(''); // blank line between attrs for readability
118
+ continue;
119
+ }
120
+ // @command with value: @cmd obj=value
121
+ const cmdMatch = line.match(/^(@[a-zA-Z][a-zA-Z0-9_/-]*)(\s+[^=]+=)(.+)$/);
122
+ if (cmdMatch) {
123
+ const [, cmd, objPart, value] = cmdMatch;
124
+ const pretty = expandAttrValue(value, opts);
125
+ if (pretty.includes('\n')) {
126
+ const ind = ' '.repeat(opts.indent ?? 2);
127
+ out.push(`${cmd}${objPart}`);
128
+ out.push(pretty.split('\n').map(l => ind + l).join('\n'));
129
+ }
130
+ else {
131
+ out.push(`${cmd}${objPart}${pretty}`);
132
+ }
133
+ continue;
134
+ }
135
+ // Everything else (@create, @set, @lock, connect, QUIT, etc.) — pass through
136
+ out.push(line);
137
+ }
138
+ const output = out.join('\n').replace(/\n{3,}/g, '\n\n').trim() + '\n';
139
+ return { output, changed: output !== content };
140
+ }
141
+ /**
142
+ * Compress a pretty src/*.mush file to installer format.
143
+ */
144
+ function compressFile(content, meta = {}, opts = {}) {
145
+ const lines = content.split('\n');
146
+ const installerLines = [];
147
+ // Collect non-comment logical lines, joining multi-line attribute values
148
+ const logicalLines = [];
149
+ let currentLine = '';
150
+ for (const raw of lines) {
151
+ const line = raw.trim();
152
+ // Skip // comments entirely in compressed output
153
+ if (line.startsWith('//'))
154
+ continue;
155
+ // Skip blank lines
156
+ if (!line) {
157
+ if (currentLine) {
158
+ logicalLines.push(currentLine);
159
+ currentLine = '';
160
+ }
161
+ continue;
162
+ }
163
+ // A new logical line starts with a command-level keyword or &
164
+ const isNewCommand = /^[@&a-zA-Z+]/.test(line) || line === 'QUIT' || line === 'think';
165
+ if (isNewCommand && currentLine) {
166
+ logicalLines.push(currentLine);
167
+ currentLine = line;
168
+ }
169
+ else if (isNewCommand) {
170
+ currentLine = line;
171
+ }
172
+ else {
173
+ // Continuation line: append with a space (collapsing indentation)
174
+ currentLine += (currentLine ? ' ' : '') + line;
175
+ }
176
+ }
177
+ if (currentLine)
178
+ logicalLines.push(currentLine);
179
+ // Build installer output
180
+ const name = meta.name ?? 'Unnamed System';
181
+ const version = meta.version ?? '0.0.0';
182
+ const author = meta.author ?? '';
183
+ const requires = meta.requires ?? 'None';
184
+ const sep = '@@ ' + '='.repeat(75);
185
+ installerLines.push(sep);
186
+ installerLines.push(`@@ Mushcode Installer for: ${name}`);
187
+ installerLines.push(`@@ Version: ${version}`);
188
+ if (author)
189
+ installerLines.push(`@@ Author: ${author}`);
190
+ installerLines.push(`@@ Requires: ${requires}`);
191
+ installerLines.push(sep);
192
+ installerLines.push('');
193
+ for (const logical of logicalLines) {
194
+ // Attribute set: compress the value
195
+ const attrMatch = logical.match(/^(&[A-Za-z_][A-Za-z0-9_-]*(?:\.[0-9]+)?\s+[^=]+)=(.*)$/);
196
+ if (attrMatch) {
197
+ const header = attrMatch[1];
198
+ const value = attrMatch[2].trim();
199
+ const compressed = value ? compressAttrValue(value, opts) : '';
200
+ installerLines.push(`${header}=${compressed}`);
201
+ continue;
202
+ }
203
+ // @command with value: compress the value part
204
+ const cmdMatch = logical.match(/^(@[a-zA-Z][a-zA-Z0-9_/-]*)(\s+[^=]+=)(.+)$/);
205
+ if (cmdMatch) {
206
+ const [, cmd, objPart, value] = cmdMatch;
207
+ const compressed = compressAttrValue(value.trim(), opts);
208
+ installerLines.push(`${cmd}${objPart}${compressed}`);
209
+ continue;
210
+ }
211
+ installerLines.push(logical);
212
+ }
213
+ installerLines.push('');
214
+ installerLines.push(sep);
215
+ installerLines.push('@@ ---[ UNINSTALL ]---');
216
+ installerLines.push('@@ @@ To uninstall: destroy all objects created by the installer above.');
217
+ installerLines.push(sep);
218
+ installerLines.push('@@ [END OF FILE]');
219
+ const output = installerLines.join('\n') + '\n';
220
+ return { output, changed: true };
221
+ }
222
+ function prettyNode(node, depth, indent) {
223
+ const pad = (d) => ' '.repeat(d * indent);
224
+ switch (node.type) {
225
+ case 'DollarPattern': {
226
+ const pattern = prettyNode(node.pattern, depth, indent);
227
+ const action = prettyNode(node.action, depth + 1, indent);
228
+ return `${pattern}:\n${pad(depth + 1)}${action}`;
229
+ }
230
+ case 'ListenPattern': {
231
+ // Pattern prettyNode adds '$'; for ListenPattern we need '^', so access parts directly
232
+ const patParts = node.pattern.parts;
233
+ const pattern = '^' + patParts.map(p => prettyInline(p)).join('');
234
+ const action = prettyNode(node.action, depth + 1, indent);
235
+ return `${pattern}:\n${pad(depth + 1)}${action}`;
236
+ }
237
+ case 'Pattern':
238
+ return '$' + node.parts.map(p => prettyInline(p)).join('');
239
+ case 'PatternAlts': {
240
+ const pats = node.patterns.map(p => p.parts.map(pp => prettyInline(pp)).join(''));
241
+ return '$' + pats.join(';');
242
+ }
243
+ case 'Wildcard':
244
+ return node.wildcard;
245
+ case 'CommandList': {
246
+ const cmds = node.commands
247
+ .map(c => pad(depth) + prettyNode(c, depth, indent));
248
+ return cmds.join(';\n');
249
+ }
250
+ case 'AtCommand': {
251
+ const sw = node.switches.map(s => '/' + s).join('');
252
+ const obj = node.object ? ' ' + prettyNode(node.object, depth, indent) : '';
253
+ const val = node.value
254
+ ? formatAtCmdValue(node.name, node.value, depth, indent)
255
+ : '';
256
+ return `@${node.name}${sw}${obj}${val}`;
257
+ }
258
+ case 'AttributeSet': {
259
+ const attrObj = prettyNode(node.object, depth, indent);
260
+ const val = prettyNode(node.value, depth + 1, indent);
261
+ if (val.includes('\n')) {
262
+ return `&${node.attribute} ${attrObj}=\n${pad(depth + 1)}${val}`;
263
+ }
264
+ return `&${node.attribute} ${attrObj}=${val}`;
265
+ }
266
+ case 'UserCommand': {
267
+ return formatUserCommand(node.parts, depth, indent);
268
+ }
269
+ case 'Text':
270
+ return node.parts.map(p => prettyInline(p)).join('');
271
+ case 'EvalBlock':
272
+ return '[' + prettyEvalInline(node.parts) + ']';
273
+ case 'FunctionCall':
274
+ return prettyFunctionCall(node, depth, indent);
275
+ case 'BracedString':
276
+ return prettyBraced(node.parts, depth, indent);
277
+ case 'Substitution': return '%' + node.code;
278
+ case 'SpecialVar': return node.code;
279
+ case 'Escape': return '\\' + node.char;
280
+ case 'Literal': return node.value;
281
+ default: return '';
282
+ }
283
+ }
284
+ /**
285
+ * Format an @command value. For @switch, detect case-list pattern and
286
+ * break each `pattern, {action}` pair onto its own indented block.
287
+ */
288
+ function formatAtCmdValue(cmdName, valNode, depth, indent) {
289
+ const pad = (d) => ' '.repeat(d * indent);
290
+ const valText = prettyNode(valNode, depth + 1, indent);
291
+ // @switch / @switchall — try to format as a case list.
292
+ // formatCaseList already applies pad(depth+1) to each line — don't double-add it.
293
+ if (cmdName === 'switch' || cmdName === 'switchall') {
294
+ const caseList = formatSwitchValue(valNode, depth + 1, indent);
295
+ if (caseList) {
296
+ return `=\n${caseList}`;
297
+ }
298
+ }
299
+ // CommandList values already carry pad(depth+1) on each line from prettyNode.
300
+ if (valText.includes('\n')) {
301
+ return `=\n${valText}`;
302
+ }
303
+ // Long single-line value: push to next line with one indent
304
+ if (valText.length > 60) {
305
+ return `=\n${pad(depth + 1)}${valText}`;
306
+ }
307
+ return `=${valText}`;
308
+ }
309
+ /**
310
+ * Format a UserCommand node.
311
+ * Detects the @switch case-list pattern: alternating text-patterns and
312
+ * BracedString actions separated by commas.
313
+ */
314
+ function formatUserCommand(parts, depth, indent) {
315
+ // Count BracedStrings in the parts
316
+ const braceCount = parts.filter(p => p.type === 'BracedString').length;
317
+ // If there are braced strings, split at them and format as a case list
318
+ if (braceCount >= 1) {
319
+ return formatCaseList(parts, depth, indent);
320
+ }
321
+ // Otherwise just inline
322
+ return parts.map(p => prettyInline(p)).join('');
323
+ }
324
+ /**
325
+ * Split a list of UserCommand parts at BracedString nodes, producing a
326
+ * formatted case-list like:
327
+ *
328
+ * 1, {
329
+ * @pemit %#=Error
330
+ * }, {
331
+ * @switch ...
332
+ * }
333
+ */
334
+ function formatCaseList(parts, depth, indent) {
335
+ const pad = (d) => ' '.repeat(d * indent);
336
+ const chunks = [];
337
+ let buf = '';
338
+ for (const part of parts) {
339
+ if (part.type === 'BracedString') {
340
+ // Flush the text buffer as a case label (trim trailing comma+space)
341
+ const label = buf.replace(/,\s*$/, '').trimEnd();
342
+ if (label)
343
+ chunks.push(label);
344
+ buf = '';
345
+ // Format the brace content
346
+ chunks.push(prettyBraced(part.parts, depth, indent));
347
+ }
348
+ else {
349
+ buf += prettyInline(part);
350
+ }
351
+ }
352
+ if (buf.trim())
353
+ chunks.push(buf.trim());
354
+ // Reassemble: label, brace, comma-separator, label, brace, ...
355
+ const lines = [];
356
+ for (let i = 0; i < chunks.length; i++) {
357
+ const chunk = chunks[i];
358
+ const next = chunks[i + 1];
359
+ if (chunk.startsWith('{')) {
360
+ // It's a brace — does it need a trailing comma?
361
+ const hasMore = next !== undefined;
362
+ lines.push(pad(depth) + chunk + (hasMore ? ',' : ''));
363
+ }
364
+ else {
365
+ // It's a label — attach to next brace if the brace is coming
366
+ if (next && next.startsWith('{')) {
367
+ lines.push(pad(depth) + chunk + ', ' + next + (chunks[i + 2] !== undefined ? ',' : ''));
368
+ i++; // skip the brace we just attached
369
+ }
370
+ else {
371
+ lines.push(pad(depth) + chunk);
372
+ }
373
+ }
374
+ }
375
+ return lines.join('\n');
376
+ }
377
+ /**
378
+ * Format a BracedString by re-parsing its text content as a CommandList
379
+ * when it looks like command content. Falls back to inline rendering if
380
+ * re-parsing fails or the content is simple.
381
+ */
382
+ function prettyBraced(parts, depth, indent) {
383
+ const pad = (d) => ' '.repeat(d * indent);
384
+ const text = extractText(parts);
385
+ // Simple content (no @ & commands, no semicolons): keep inline
386
+ const isComplex = /^[@&]|;/.test(text.trim());
387
+ if (!isComplex) {
388
+ return `{${text}}`;
389
+ }
390
+ // Try to re-parse braced content as a command sequence
391
+ try {
392
+ const inner = (0, mushcode_1.parse)(text.trim());
393
+ const formatted = prettyNode(inner, depth + 1, indent);
394
+ return `{\n${pad(depth + 1)}${formatted}\n${pad(depth)}}`;
395
+ }
396
+ catch {
397
+ return `{${text}}`;
398
+ }
399
+ }
400
+ /**
401
+ * Detect @switch value pattern and format it as aligned case blocks.
402
+ * Returns null if the pattern isn't recognised.
403
+ */
404
+ function formatSwitchValue(valNode, depth, indent) {
405
+ if (valNode.type !== 'UserCommand')
406
+ return null;
407
+ const parts = valNode.parts;
408
+ const braceCount = parts.filter(p => p.type === 'BracedString').length;
409
+ if (braceCount < 1)
410
+ return null;
411
+ return formatCaseList(parts, depth, indent);
412
+ }
413
+ // ---------------------------------------------------------------------------
414
+ // Helpers for inline rendering (no newlines)
415
+ // ---------------------------------------------------------------------------
416
+ function prettyInline(node) {
417
+ switch (node.type) {
418
+ case 'Literal': return node.value;
419
+ case 'Substitution': return '%' + node.code;
420
+ case 'SpecialVar': return node.code;
421
+ case 'Escape': return '\\' + node.char;
422
+ case 'Wildcard': return node.wildcard;
423
+ case 'EvalBlock': return '[' + prettyEvalInline(node.parts) + ']';
424
+ case 'BracedString': return '{' + extractText(node.parts) + '}';
425
+ case 'FunctionCall': return prettyFunctionCallInline(node);
426
+ case 'Text': return node.parts.map(p => prettyInline(p)).join('');
427
+ case 'Arg': return node.parts.map(p => prettyInline(p)).join('');
428
+ default: return '';
429
+ }
430
+ }
431
+ function prettyEvalInline(parts) {
432
+ return parts.map(p => prettyInline(p)).join('');
433
+ }
434
+ function prettyFunctionCallInline(node) {
435
+ const name = node.name;
436
+ const args = node.args;
437
+ if (args.length === 0)
438
+ return `${name}()`;
439
+ // Trim each arg's serialised text so we don't double-space after commas that
440
+ // already had trailing/leading whitespace in the original source.
441
+ const argStrs = args.map(a => a.parts.map(p => prettyInline(p)).join('').trim());
442
+ return `${name}(${argStrs.join(', ')})`;
443
+ }
444
+ /**
445
+ * Pretty-print a FunctionCall node.
446
+ * Stays inline if all args are simple; wraps to multi-line otherwise.
447
+ */
448
+ function prettyFunctionCall(node, depth, indent) {
449
+ const pad = (d) => ' '.repeat(d * indent);
450
+ const name = node.name;
451
+ const args = node.args;
452
+ if (args.length === 0)
453
+ return `${name}()`;
454
+ const hasNested = args.some(a => a.parts.some(p => p.type === 'FunctionCall' || p.type === 'EvalBlock' || p.type === 'BracedString'));
455
+ if (!hasNested) {
456
+ return prettyFunctionCallInline(node);
457
+ }
458
+ const serialized = args.map(a => pad(depth + 1) + a.parts.map(p => prettyInline(p)).join('')).join(',\n');
459
+ return `${name}(\n${serialized}\n${pad(depth)})`;
460
+ }
461
+ // ---------------------------------------------------------------------------
462
+ // Text extractor — collapses AST nodes back to raw text for re-parsing
463
+ // ---------------------------------------------------------------------------
464
+ function extractText(parts) {
465
+ return parts.map(p => {
466
+ switch (p.type) {
467
+ case 'Literal': return p.value;
468
+ case 'Substitution': return '%' + p.code;
469
+ case 'SpecialVar': return p.code;
470
+ case 'Escape': return '\\' + p.char;
471
+ case 'EvalBlock': return '[' + extractText(p.parts) + ']';
472
+ case 'BracedString': return '{' + extractText(p.parts) + '}';
473
+ case 'FunctionCall': {
474
+ const name = p.name;
475
+ const args = p.args;
476
+ if (args.length === 0)
477
+ return `${name}()`;
478
+ return `${name}(${args.map(a => extractText(a.parts)).join(',')})`;
479
+ }
480
+ default: return '';
481
+ }
482
+ }).join('');
483
+ }
484
+ //# sourceMappingURL=mush-format.js.map