@minecraft/markup-generators-plugin 1.4.2 → 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.
package/CHANGELOG.json CHANGED
@@ -2,7 +2,28 @@
2
2
  "name": "@minecraft/markup-generators-plugin",
3
3
  "entries": [
4
4
  {
5
- "date": "Fri, 06 Mar 2026 18:11:20 GMT",
5
+ "date": "Thu, 26 Mar 2026 20:35:58 GMT",
6
+ "version": "1.5.0",
7
+ "tag": "@minecraft/markup-generators-plugin_v1.5.0",
8
+ "comments": {
9
+ "minor": [
10
+ {
11
+ "author": "zachary.campbell@skyboxlabs.com",
12
+ "package": "@minecraft/markup-generators-plugin",
13
+ "commit": "dff55b90bbb552ea829531dacb5009d796bc53cd",
14
+ "comment": "Add generator for rendering HTML documentation for protocol schemas"
15
+ },
16
+ {
17
+ "author": "beachball",
18
+ "package": "@minecraft/markup-generators-plugin",
19
+ "comment": "Bump @minecraft/api-docs-generator to v1.8.0",
20
+ "commit": "not available"
21
+ }
22
+ ]
23
+ }
24
+ },
25
+ {
26
+ "date": "Fri, 06 Mar 2026 18:11:49 GMT",
6
27
  "version": "1.4.2",
7
28
  "tag": "@minecraft/markup-generators-plugin_v1.4.2",
8
29
  "comments": {
package/CHANGELOG.md CHANGED
@@ -1,12 +1,21 @@
1
1
  # Change Log - @minecraft/markup-generators-plugin
2
2
 
3
- <!-- This log was last generated on Fri, 06 Mar 2026 18:11:20 GMT and should not be manually modified. -->
3
+ <!-- This log was last generated on Thu, 26 Mar 2026 20:35:58 GMT and should not be manually modified. -->
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## 1.5.0
8
+
9
+ Thu, 26 Mar 2026 20:35:58 GMT
10
+
11
+ ### Minor changes
12
+
13
+ - Add generator for rendering HTML documentation for protocol schemas (zachary.campbell@skyboxlabs.com)
14
+ - Bump @minecraft/api-docs-generator to v1.8.0
15
+
7
16
  ## 1.4.2
8
17
 
9
- Fri, 06 Mar 2026 18:11:20 GMT
18
+ Fri, 06 Mar 2026 18:11:49 GMT
10
19
 
11
20
  ### Patches
12
21
 
@@ -0,0 +1,18 @@
1
+ import { GeneratorContext, MarkupGenerator, MinecraftRelease } from '@minecraft/api-docs-generator';
2
+ export declare class ProtocolHTMLGenerator implements MarkupGenerator {
3
+ private getUnderlyingType;
4
+ private generateEnumTable;
5
+ private generateOneOfTable;
6
+ private getOrdinalIndex;
7
+ private generateNestedTable;
8
+ private static readonly PAGE_HTML_BEFORE_TITLE;
9
+ private static readonly PAGE_HTML_AFTER_TITLE;
10
+ private static readonly PAGE_HTML_SUFFIX;
11
+ private getPageHtml;
12
+ private generateIndexPage;
13
+ private processSchema;
14
+ generateFiles(_context: GeneratorContext, releases: MinecraftRelease[], outputDirectory: string): Promise<void>;
15
+ readonly id: string;
16
+ readonly name: string;
17
+ readonly outputDirectoryName: string;
18
+ }
@@ -0,0 +1,531 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+ var __importDefault = (this && this.__importDefault) || function (mod) {
5
+ return (mod && mod.__esModule) ? mod : { "default": mod };
6
+ };
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.ProtocolHTMLGenerator = void 0;
9
+ const fs_1 = require("fs");
10
+ const path_1 = __importDefault(require("path"));
11
+ const api_docs_generator_1 = require("@minecraft/api-docs-generator");
12
+ const HTML_ESCAPE_MAP = {
13
+ '&': '&amp;',
14
+ '<': '&lt;',
15
+ '>': '&gt;',
16
+ '"': '&quot;',
17
+ "'": '&#39;',
18
+ };
19
+ function escapeHtml(str) {
20
+ return str.replace(/[&<>"']/g, c => HTML_ESCAPE_MAP[c]);
21
+ }
22
+ class ProtocolHTMLGenerator {
23
+ getUnderlyingType(schema, definitions) {
24
+ const serializationOptions = schema['x-serialization-options'];
25
+ if (schema['x-underlying-type']) {
26
+ const underlyingType = schema['x-underlying-type'];
27
+ if (schema.enum) {
28
+ if (serializationOptions && serializationOptions.includes('Enum-as-Value')) {
29
+ if (serializationOptions.includes('Compression')) {
30
+ return 'var' + underlyingType;
31
+ }
32
+ return underlyingType;
33
+ }
34
+ return schema.type ?? 'unknown';
35
+ }
36
+ if (serializationOptions?.includes('Compression')) {
37
+ return 'var' + underlyingType;
38
+ }
39
+ return underlyingType;
40
+ }
41
+ if (schema.type === 'array') {
42
+ if (schema.items) {
43
+ if (schema.items.$ref) {
44
+ const refId = schema.items.$ref.split('/').pop() ?? '';
45
+ if (definitions && refId in definitions) {
46
+ const refTitle = definitions[refId].title ?? refId;
47
+ return `array&lt;${refTitle}&gt;`;
48
+ }
49
+ return `array&lt;${refId}&gt;`;
50
+ }
51
+ else if (schema.items['x-underlying-type']) {
52
+ return `array&lt;${schema.items['x-underlying-type']}&gt;`;
53
+ }
54
+ else {
55
+ const itemType = schema.items.type ?? 'unknown';
56
+ return `array&lt;${itemType}&gt;`;
57
+ }
58
+ }
59
+ }
60
+ if (schema.oneOf) {
61
+ return 'oneOf';
62
+ }
63
+ if (schema.$ref) {
64
+ const refId = schema.$ref.split('/').pop() ?? '';
65
+ if (definitions && refId in definitions) {
66
+ return definitions[refId].title ?? refId;
67
+ }
68
+ return refId;
69
+ }
70
+ if (schema.enum) {
71
+ return schema.title ?? 'enum';
72
+ }
73
+ return schema.type ?? 'unknown';
74
+ }
75
+ generateEnumTable(enumValues, indentLevel) {
76
+ if (!enumValues || enumValues.length === 0) {
77
+ return '';
78
+ }
79
+ const marginLeft = (indentLevel + 1) * 20;
80
+ return `<div style="margin-left: ${marginLeft}px; margin-top: 5px; margin-bottom: 5px;">
81
+ <strong>Enum Values:</strong>
82
+ <table border="1" cellpadding="3" cellspacing="0" style="border-collapse: collapse; width: 100%; max-width: 760px; font-size: 12px;">
83
+ <thead>
84
+ <tr style="background-color: #e8e8e8;">
85
+ <th style="width: 40px;">Index</th>
86
+ <th>Value</th>
87
+ </tr>
88
+ </thead>
89
+ <tbody>
90
+ ${enumValues
91
+ .map((value, idx) => `<tr>
92
+ <td style="text-align: center;">${idx}</td>
93
+ <td><code>${escapeHtml(value)}</code></td>
94
+ </tr>`)
95
+ .join('\n')}
96
+ </tbody>
97
+ </table>
98
+ </div>
99
+ `;
100
+ }
101
+ generateOneOfTable(schema, indentLevel, definitions, enumCache) {
102
+ if (!schema.oneOf) {
103
+ return '';
104
+ }
105
+ const controlValueType = schema['x-control-value-type'] ?? 'varuint32';
106
+ const oneOfItems = schema.oneOf;
107
+ const oneofTypeMembers = [];
108
+ const oneOfMembersHtml = [];
109
+ const expandedDefinitionsHtml = [];
110
+ for (let idx = 0; idx < oneOfItems.length; idx++) {
111
+ const oneOfItem = oneOfItems[idx];
112
+ const underlyingType = this.getUnderlyingType(oneOfItem, definitions);
113
+ oneofTypeMembers.push(underlyingType);
114
+ const details = [];
115
+ if (oneOfItem['x-underlying-type']) {
116
+ details.push(`Underlying: ${oneOfItem['x-underlying-type']}`);
117
+ }
118
+ if (oneOfItem['x-serialization-options']) {
119
+ details.push(`Serialization: ${oneOfItem['x-serialization-options']}`);
120
+ }
121
+ if (oneOfItem.title) {
122
+ details.push(`Title: ${oneOfItem.title}`);
123
+ }
124
+ const detailsStr = details.length > 0 ? details.join(', ') : '-';
125
+ oneOfMembersHtml.push(`<tr>
126
+ <td>${idx}</td>
127
+ <td><strong>${underlyingType}</strong></td>
128
+ <td>${detailsStr}</td>
129
+ </tr>`);
130
+ if (oneOfItem.$ref) {
131
+ const refId = oneOfItem.$ref.split('/').pop() ?? '';
132
+ if (refId in definitions) {
133
+ const refSchema = definitions[refId];
134
+ const refTitle = refSchema.title ?? refId;
135
+ if (!refTitle.endsWith('Payload')) {
136
+ const nestedTable = this.generateNestedTable(refSchema, definitions, enumCache, '', indentLevel + 2);
137
+ if (nestedTable) {
138
+ expandedDefinitionsHtml.push(`<details style="margin-left: ${(indentLevel + 1) * 20}px; margin-top: 10px;">
139
+ <summary style="cursor: pointer; font-weight: bold; padding: 5px; background-color: #f0f0f0; border: 1px solid #ddd;"><strong>${refTitle} (Variant ${idx})</strong></summary>
140
+ ${nestedTable}
141
+ </details>`);
142
+ }
143
+ }
144
+ }
145
+ }
146
+ }
147
+ const oneofType = escapeHtml(`oneOf<${oneofTypeMembers.join(', ')}>`);
148
+ const marginLeft = (indentLevel + 1) * 20;
149
+ return `<div style="margin-left: ${marginLeft}px; margin-top: 0px; margin-bottom: 0px;">
150
+ <strong>${oneofType}:</strong>
151
+ <table border="1" cellpadding="5" cellspacing="0" style="border-collapse: collapse; width: 100%; max-width: 760px; margin-top: 5px;">
152
+ <thead>
153
+ <tr style="background-color: #e8e8e8;">
154
+ <th>Control Value [${controlValueType}]</th>
155
+ <th>Type</th>
156
+ <th>Details</th>
157
+ </tr>
158
+ </thead>
159
+ <tbody>
160
+ ${oneOfMembersHtml.join('\n')}
161
+ </tbody>
162
+ </table>
163
+ ${expandedDefinitionsHtml.join('\n')}
164
+ </div>
165
+ `;
166
+ }
167
+ getOrdinalIndex(schema) {
168
+ return schema['x-ordinal-index'] ?? 9999;
169
+ }
170
+ generateNestedTable(schema, definitions, enumCache, title, indentLevel = 0) {
171
+ if (schema.type !== 'object') {
172
+ return '';
173
+ }
174
+ const properties = schema.properties ?? {};
175
+ const required = new Set(schema.required ?? []);
176
+ if (Object.keys(properties).length === 0) {
177
+ return '';
178
+ }
179
+ const sortedProperties = Object.entries(properties).sort(([, a], [, b]) => this.getOrdinalIndex(a) - this.getOrdinalIndex(b));
180
+ const html = [];
181
+ const marginLeft = indentLevel * 20;
182
+ html.push(`<div style="margin-left: ${marginLeft}px; margin-top: 10px;">`);
183
+ if (title) {
184
+ html.push(`<h3>${escapeHtml(title)}</h3>`);
185
+ }
186
+ html.push(`<table border="1" cellpadding="5" cellspacing="0" style="border-collapse: collapse; width: 100%; max-width: 800px;">
187
+ <thead>
188
+ <tr style="background-color: #f0f0f0;">
189
+ <th>Field Name</th>
190
+ <th>Type</th>
191
+ <th>Field Index</th>
192
+ <th>Description</th>
193
+ </tr>
194
+ </thead>
195
+ <tbody>`);
196
+ for (const [fieldName, fieldSchema] of sortedProperties) {
197
+ let underlyingType = this.getUnderlyingType(fieldSchema, definitions);
198
+ const ordinal = this.getOrdinalIndex(fieldSchema);
199
+ const description = escapeHtml(fieldSchema.description ?? '');
200
+ const isRequired = required.has(fieldName);
201
+ const displayFieldName = isRequired ? `${fieldName} (Required)` : fieldName;
202
+ const ordinalDisplay = ordinal !== 9999 ? String(ordinal) : '';
203
+ let enumHtml = '';
204
+ let nestedHtml = '';
205
+ let oneofHtml = '';
206
+ if (fieldSchema.oneOf) {
207
+ oneofHtml = this.generateOneOfTable(fieldSchema, 0, definitions, enumCache);
208
+ }
209
+ else if (fieldSchema.enum) {
210
+ enumHtml = this.generateEnumTable(fieldSchema.enum, 0);
211
+ }
212
+ else if ((fieldSchema.title ?? '') in enumCache) {
213
+ const enumTitle = fieldSchema.title;
214
+ enumHtml = this.generateEnumTable(enumCache[enumTitle], 0);
215
+ }
216
+ else if (fieldSchema.$ref) {
217
+ const refId = fieldSchema.$ref.split('/').pop() ?? '';
218
+ if (refId in definitions) {
219
+ const refSchema = definitions[refId];
220
+ const refTitle = refSchema.title ?? refId;
221
+ underlyingType = refTitle;
222
+ if (!refTitle.endsWith('Payload')) {
223
+ nestedHtml = this.generateNestedTable(refSchema, definitions, enumCache, refTitle, 1);
224
+ }
225
+ }
226
+ }
227
+ else if (fieldSchema.type === 'array') {
228
+ if (fieldSchema.items) {
229
+ if (fieldSchema.items.$ref) {
230
+ const refId = fieldSchema.items.$ref.split('/').pop() ?? '';
231
+ if (refId in definitions) {
232
+ const refSchema = definitions[refId];
233
+ let refTitle = refSchema.title ?? refId;
234
+ if (fieldSchema['x-serialization-options']) {
235
+ refTitle += ` (${fieldSchema['x-serialization-options']})`;
236
+ }
237
+ if (!refTitle.endsWith('Payload')) {
238
+ nestedHtml = this.generateNestedTable(refSchema, definitions, enumCache, `${refTitle} (Array Item)`, 1);
239
+ }
240
+ }
241
+ }
242
+ }
243
+ }
244
+ html.push('<tr>');
245
+ if (enumHtml || nestedHtml || oneofHtml) {
246
+ html.push(`<td rowspan="2"><strong>${escapeHtml(displayFieldName)}</strong></td>`);
247
+ }
248
+ else {
249
+ html.push(`<td><strong>${escapeHtml(displayFieldName)}</strong></td>`);
250
+ }
251
+ html.push(`<td>${underlyingType}</td>
252
+ <td>${ordinalDisplay}</td>
253
+ <td>${description}</td>
254
+ </tr>`);
255
+ if (oneofHtml) {
256
+ html.push(`<tr>
257
+ <td colspan="3" style="padding: 0;">${oneofHtml}</td>
258
+ </tr>`);
259
+ }
260
+ else if (enumHtml) {
261
+ html.push(`<tr>
262
+ <td colspan="3">${enumHtml}</td>
263
+ </tr>`);
264
+ }
265
+ else if (nestedHtml) {
266
+ html.push(`<tr>
267
+ <td colspan="3">${nestedHtml}</td>
268
+ </tr>`);
269
+ }
270
+ }
271
+ html.push(`</tbody>
272
+ </table>
273
+ </div>`);
274
+ return html.join('\n');
275
+ }
276
+ static PAGE_HTML_BEFORE_TITLE = `<!DOCTYPE html>
277
+ <html lang="en">
278
+ <head>
279
+ <meta charset="UTF-8">
280
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
281
+ <title>`;
282
+ static PAGE_HTML_AFTER_TITLE = `</title>
283
+ <style>
284
+ body {
285
+ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
286
+ margin: 0;
287
+ padding: 20px;
288
+ background-color: #f5f5f5;
289
+ line-height: 1.6;
290
+ }
291
+ .container {
292
+ max-width: 1200px;
293
+ margin: 0 auto;
294
+ background-color: white;
295
+ padding: 30px;
296
+ box-shadow: 0 2px 4px rgba(0,0,0,0.1);
297
+ }
298
+ h1 {
299
+ color: #2c3e50;
300
+ border-bottom: 3px solid #3498db;
301
+ padding-bottom: 10px;
302
+ margin-top: 0;
303
+ }
304
+ h2 {
305
+ color: #34495e;
306
+ border-bottom: 2px solid #3498db;
307
+ padding-bottom: 5px;
308
+ margin-top: 30px;
309
+ }
310
+ h3 {
311
+ color: #555;
312
+ margin-top: 20px;
313
+ margin-bottom: 10px;
314
+ }
315
+ h4 {
316
+ color: #666;
317
+ margin-top: 15px;
318
+ margin-bottom: 8px;
319
+ }
320
+ table {
321
+ background-color: white;
322
+ font-size: 14px;
323
+ margin-bottom: 10px;
324
+ }
325
+ th {
326
+ font-weight: bold;
327
+ text-align: left;
328
+ padding: 8px !important;
329
+ }
330
+ td {
331
+ padding: 8px !important;
332
+ }
333
+ tr:nth-child(even) {
334
+ background-color: #f9f9f9;
335
+ }
336
+ tr:hover {
337
+ background-color: #e8f4f8;
338
+ }
339
+ .description {
340
+ color: #555;
341
+ font-style: italic;
342
+ margin: 10px 0 20px 0;
343
+ padding: 10px;
344
+ background-color: #f8f9fa;
345
+ border-left: 4px solid #3498db;
346
+ }
347
+ a {
348
+ color: #3498db;
349
+ text-decoration: none;
350
+ }
351
+ a:hover {
352
+ text-decoration: underline;
353
+ }
354
+ .packet-list {
355
+ columns: 3;
356
+ column-gap: 20px;
357
+ }
358
+ .packet-list li {
359
+ margin-bottom: 8px;
360
+ break-inside: avoid;
361
+ }
362
+ details {
363
+ margin: 10px 0;
364
+ }
365
+ summary {
366
+ cursor: pointer;
367
+ font-weight: bold;
368
+ padding: 8px;
369
+ background-color: #f0f0f0;
370
+ border: 1px solid #ddd;
371
+ border-radius: 4px;
372
+ user-select: none;
373
+ }
374
+ summary:hover {
375
+ background-color: #e8e8e8;
376
+ }
377
+ details[open] summary {
378
+ background-color: #d4edff;
379
+ border-color: #3498db;
380
+ border-left: 4px solid #3498db;
381
+ }
382
+ @media (max-width: 900px) {
383
+ .packet-list {
384
+ columns: 2;
385
+ }
386
+ }
387
+ @media (max-width: 600px) {
388
+ .packet-list {
389
+ columns: 1;
390
+ }
391
+ }
392
+ </style>
393
+ </head>
394
+ <body>
395
+ <div class="container">
396
+ `;
397
+ static PAGE_HTML_SUFFIX = `
398
+ </div>
399
+ </body>
400
+ </html>`;
401
+ getPageHtml(title, content, backLink = true) {
402
+ const backLinkHtml = backLink ? '<p><a href="index.html">← Back to Index</a></p>' : '';
403
+ return (ProtocolHTMLGenerator.PAGE_HTML_BEFORE_TITLE +
404
+ escapeHtml(title) +
405
+ ProtocolHTMLGenerator.PAGE_HTML_AFTER_TITLE +
406
+ backLinkHtml +
407
+ '\n ' +
408
+ content +
409
+ ProtocolHTMLGenerator.PAGE_HTML_SUFFIX);
410
+ }
411
+ async generateIndexPage(packets, outputDirectory) {
412
+ const indexHtml = `<h1>Game Protocol Documentation</h1>
413
+ <p>Documentation for ${packets.length} protocol packets.</p>
414
+ <h2>Packet List</h2>
415
+ <ul class="packet-list">
416
+ ${packets
417
+ .map(value => `<li><a href="${value.filename}"><strong>${escapeHtml(value.title)}</strong></a><br><span style="color: #666; font-size: 0.9em;">${escapeHtml(value.description.length > 100 ? value.description.substring(0, 100) + '...' : value.description)}</span></li>`)
418
+ .join('\n')}
419
+ </ul>`;
420
+ const indexPath = path_1.default.join(outputDirectory, 'index.html');
421
+ await fs_1.promises.writeFile(indexPath, this.getPageHtml('Game Protocol Documentation', indexHtml, false), 'utf-8');
422
+ }
423
+ processSchema(data, key, enumCache) {
424
+ try {
425
+ let title = data.title ?? path_1.default.basename(key, '.json');
426
+ const description = data.description ?? '';
427
+ let extraDetails = '';
428
+ const definitions = data.definitions ?? {};
429
+ const metaProperties = data['$metaProperties'] ?? {};
430
+ if (title.endsWith('Payload')) {
431
+ return { title: '', description: '', content: '', packetId: -1 };
432
+ }
433
+ let packetId = -1;
434
+ if ('[cereal:packet]' in metaProperties) {
435
+ packetId = metaProperties['[cereal:packet]'] ?? -1;
436
+ title += ` (${packetId})`;
437
+ const packetDetails = metaProperties['[cereal:packet_details]'];
438
+ if (packetDetails) {
439
+ extraDetails = String(packetDetails);
440
+ }
441
+ }
442
+ const html = [];
443
+ html.push(`<h1>${escapeHtml(title)}</h1>`);
444
+ if (description) {
445
+ html.push(`<div class="description">${escapeHtml(description)}</div>`);
446
+ }
447
+ if (extraDetails) {
448
+ html.push(`<div class="description">${escapeHtml(extraDetails)}</div>`);
449
+ }
450
+ const properties = data.properties ?? {};
451
+ const propertyKeys = Object.keys(properties);
452
+ if (data.type === 'object' &&
453
+ propertyKeys.length === 1 &&
454
+ 'mPayload' in properties &&
455
+ properties.mPayload.$ref) {
456
+ const refId = properties.mPayload.$ref.split('/').pop() ?? '';
457
+ if (refId in definitions) {
458
+ const payloadSchema = definitions[refId];
459
+ const payloadTitle = payloadSchema.title ?? '';
460
+ if (payloadTitle.endsWith('Payload')) {
461
+ html.push(this.generateNestedTable(payloadSchema, definitions, enumCache, ''));
462
+ }
463
+ else {
464
+ html.push(this.generateNestedTable(data, definitions, enumCache, ''));
465
+ }
466
+ }
467
+ else {
468
+ html.push(this.generateNestedTable(data, definitions, enumCache, ''));
469
+ }
470
+ }
471
+ else if (data.type === 'object' && data.properties) {
472
+ html.push(this.generateNestedTable(data, definitions, enumCache, ''));
473
+ }
474
+ return { title, description, content: html.join('\n'), packetId };
475
+ }
476
+ catch (e) {
477
+ api_docs_generator_1.Logger.error(`Error processing schema '${key}': ${String(e)}`);
478
+ return { title: '', description: '', content: '', packetId: -1 };
479
+ }
480
+ }
481
+ async generateFiles(_context, releases, outputDirectory) {
482
+ if (releases.length === 0) {
483
+ api_docs_generator_1.Logger.warn(`No releases found, '${this.name}' generation not possible.`);
484
+ return;
485
+ }
486
+ if (Object.keys(releases[0].protocol_schemas).length === 0) {
487
+ api_docs_generator_1.Logger.warn(`No protocol schemas found, '${this.name}' generation not possible.`);
488
+ return;
489
+ }
490
+ const enumCache = {};
491
+ for (const [_, schema] of Object.entries(releases[0].protocol_schemas)) {
492
+ const data = schema;
493
+ if (!data.title) {
494
+ continue;
495
+ }
496
+ if (data.enum) {
497
+ enumCache[data.title] = data.enum;
498
+ }
499
+ }
500
+ await fs_1.promises.mkdir(outputDirectory, { recursive: true });
501
+ const packetEntries = Object.entries(releases[0].protocol_schemas)
502
+ .filter(([key]) => !path_1.default.basename(key).startsWith('enum_'))
503
+ .sort(([a], [b]) => a.localeCompare(b));
504
+ if (packetEntries.length === 0) {
505
+ api_docs_generator_1.Logger.warn(`No packets found, '${this.name}' generation not possible.`);
506
+ return;
507
+ }
508
+ const writePromises = [];
509
+ const packets = [];
510
+ for (const [key, schema] of packetEntries) {
511
+ const data = schema;
512
+ const { title, description, content, packetId } = this.processSchema(data, key, enumCache);
513
+ if (!title) {
514
+ continue;
515
+ }
516
+ const stem = path_1.default.basename(key, '.json');
517
+ const outputFilename = `${stem}.html`;
518
+ const outputPath = path_1.default.join(outputDirectory, outputFilename);
519
+ writePromises.push(fs_1.promises.writeFile(outputPath, this.getPageHtml(title, content, true), 'utf-8'));
520
+ packets.push({ title, description, filename: outputFilename, id: packetId });
521
+ }
522
+ packets.sort((a, b) => a.id - b.id);
523
+ writePromises.push(this.generateIndexPage(packets, outputDirectory));
524
+ await Promise.all(writePromises);
525
+ }
526
+ id = 'protocol';
527
+ name = 'Protocol HTML Generator';
528
+ outputDirectoryName = 'protocol';
529
+ }
530
+ exports.ProtocolHTMLGenerator = ProtocolHTMLGenerator;
531
+ //# sourceMappingURL=ProtocolHTMLGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProtocolHTMLGenerator.js","sourceRoot":"","sources":["../../src/generators/ProtocolHTMLGenerator.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ export * from './ChangelogJSONGenerator';
2
2
  export * from './ChangelogMDGenerator';
3
3
  export * from './MSDocsMarkdownGenerator';
4
4
  export * from './NPMModuleGenerator';
5
+ export * from './ProtocolHTMLGenerator';
5
6
  export * from './TypeDocGenerator';
6
7
  export * from './TypeScriptDefinitionGenerator';
7
8
  export * from './TypeScriptGenerator';
@@ -20,6 +20,7 @@ __exportStar(require("./ChangelogJSONGenerator"), exports);
20
20
  __exportStar(require("./ChangelogMDGenerator"), exports);
21
21
  __exportStar(require("./MSDocsMarkdownGenerator"), exports);
22
22
  __exportStar(require("./NPMModuleGenerator"), exports);
23
+ __exportStar(require("./ProtocolHTMLGenerator"), exports);
23
24
  __exportStar(require("./TypeDocGenerator"), exports);
24
25
  __exportStar(require("./TypeScriptDefinitionGenerator"), exports);
25
26
  __exportStar(require("./TypeScriptGenerator"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;;;;;;;AAElC,2DAAyC;AACzC,yDAAuC;AACvC,4DAA0C;AAC1C,uDAAqC;AACrC,qDAAmC;AACnC,kEAAgD;AAChD,wDAAsC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;;;;;;;AAElC,2DAAyC;AACzC,yDAAuC;AACvC,4DAA0C;AAC1C,uDAAqC;AACrC,0DAAwC;AACxC,qDAAmC;AACnC,kEAAgD;AAChD,wDAAsC"}
package/lib/index.js CHANGED
@@ -14,6 +14,7 @@ const MarkupGeneratorsPlugin = {
14
14
  new generators_1.ChangelogMDGenerator(),
15
15
  new generators_1.MSDocsMarkdownGenerator(),
16
16
  new generators_1.NPMModuleGenerator(),
17
+ new generators_1.ProtocolHTMLGenerator(),
17
18
  new generators_1.TypeDocGenerator(),
18
19
  new generators_1.TypeScriptDefinitionGenerator(),
19
20
  new generators_1.TypeScriptGenerator(),
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;;AAElC,gDAAwB;AAIxB,6CAQsB;AAEtB,MAAM,aAAa,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;AAEjE,MAAM,sBAAsB,GAAW;IACnC,UAAU,EAAE;QACR,IAAI,mCAAsB,EAAE;QAC5B,IAAI,iCAAoB,EAAE;QAC1B,IAAI,oCAAuB,EAAE;QAC7B,IAAI,+BAAkB,EAAE;QACxB,IAAI,6BAAgB,EAAE;QACtB,IAAI,0CAA6B,EAAE;QACnC,IAAI,gCAAmB,EAAE;KAC5B;IACD,SAAS,EAAE;QACP,MAAM,EAAE,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC;QAC1C,GAAG,EAAE,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC;QACpC,EAAE,EAAE,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC;QAClC,KAAK,EAAE,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC;QACxC,GAAG,EAAE,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC;KACvC;CACJ,CAAC;AAEF,kBAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;;AAElC,gDAAwB;AAIxB,6CASsB;AAEtB,MAAM,aAAa,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;AAEjE,MAAM,sBAAsB,GAAW;IACnC,UAAU,EAAE;QACR,IAAI,mCAAsB,EAAE;QAC5B,IAAI,iCAAoB,EAAE;QAC1B,IAAI,oCAAuB,EAAE;QAC7B,IAAI,+BAAkB,EAAE;QACxB,IAAI,kCAAqB,EAAE;QAC3B,IAAI,6BAAgB,EAAE;QACtB,IAAI,0CAA6B,EAAE;QACnC,IAAI,gCAAmB,EAAE;KAC5B;IACD,SAAS,EAAE;QACP,MAAM,EAAE,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC;QAC1C,GAAG,EAAE,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC;QACpC,EAAE,EAAE,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC;QAClC,KAAK,EAAE,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC;QACxC,GAAG,EAAE,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC;KACvC;CACJ,CAAC;AAEF,kBAAe,sBAAsB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@minecraft/markup-generators-plugin",
3
- "version": "1.4.2",
3
+ "version": "1.5.0",
4
4
  "description": "Plugin for @minecraft/api-docs-generator containing core markup generators and template files",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -40,7 +40,7 @@
40
40
  "CHANGELOG.*"
41
41
  ],
42
42
  "devDependencies": {
43
- "@minecraft/api-docs-generator": "^1.7.0",
43
+ "@minecraft/api-docs-generator": "^1.8.0",
44
44
  "@minecraft/core-build-tasks": "*",
45
45
  "@types/mustache": "^4.2.2",
46
46
  "@types/node": "^22.0.0",
@@ -61,6 +61,6 @@
61
61
  "typescript": "~5.6.0"
62
62
  },
63
63
  "peerDependencies": {
64
- "@minecraft/api-docs-generator": "^1.7.0"
64
+ "@minecraft/api-docs-generator": "^1.8.0"
65
65
  }
66
66
  }