@minecraft/api-docs-generator 1.0.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 (157) hide show
  1. package/CHANGELOG.json +20 -0
  2. package/CHANGELOG.md +13 -0
  3. package/README.md +92 -0
  4. package/lib/ChangelogStrategy.d.ts +39 -0
  5. package/lib/ChangelogStrategy.js +114 -0
  6. package/lib/ChangelogStrategy.js.map +1 -0
  7. package/lib/Config.d.ts +76 -0
  8. package/lib/Config.js +68 -0
  9. package/lib/Config.js.map +1 -0
  10. package/lib/Context.d.ts +28 -0
  11. package/lib/Context.js +323 -0
  12. package/lib/Context.js.map +1 -0
  13. package/lib/FileLoader.d.ts +13 -0
  14. package/lib/FileLoader.js +91 -0
  15. package/lib/FileLoader.js.map +1 -0
  16. package/lib/Logger.d.ts +65 -0
  17. package/lib/Logger.js +179 -0
  18. package/lib/Logger.js.map +1 -0
  19. package/lib/MinecraftRelease.d.ts +37 -0
  20. package/lib/MinecraftRelease.js +157 -0
  21. package/lib/MinecraftRelease.js.map +1 -0
  22. package/lib/PrettierConfiguration.d.ts +2 -0
  23. package/lib/PrettierConfiguration.js +17 -0
  24. package/lib/PrettierConfiguration.js.map +1 -0
  25. package/lib/changelog.d.ts +11 -0
  26. package/lib/changelog.js +459 -0
  27. package/lib/changelog.js.map +1 -0
  28. package/lib/cli.d.ts +2 -0
  29. package/lib/cli.js +172 -0
  30. package/lib/cli.js.map +1 -0
  31. package/lib/filters/CommandFilters.d.ts +2 -0
  32. package/lib/filters/CommandFilters.js +171 -0
  33. package/lib/filters/CommandFilters.js.map +1 -0
  34. package/lib/filters/CommonFilters.d.ts +2 -0
  35. package/lib/filters/CommonFilters.js +2518 -0
  36. package/lib/filters/CommonFilters.js.map +1 -0
  37. package/lib/filters/Filters.d.ts +17 -0
  38. package/lib/filters/Filters.js +5 -0
  39. package/lib/filters/Filters.js.map +1 -0
  40. package/lib/filters/MarkdownFilters.d.ts +2 -0
  41. package/lib/filters/MarkdownFilters.js +63 -0
  42. package/lib/filters/MarkdownFilters.js.map +1 -0
  43. package/lib/filters/TypeScriptFilters.d.ts +2 -0
  44. package/lib/filters/TypeScriptFilters.js +387 -0
  45. package/lib/filters/TypeScriptFilters.js.map +1 -0
  46. package/lib/filters/index.d.ts +4 -0
  47. package/lib/filters/index.js +23 -0
  48. package/lib/filters/index.js.map +1 -0
  49. package/lib/generator.d.ts +8 -0
  50. package/lib/generator.js +511 -0
  51. package/lib/generator.js.map +1 -0
  52. package/lib/index.d.ts +16 -0
  53. package/lib/index.js +50 -0
  54. package/lib/index.js.map +1 -0
  55. package/lib/modules/IMinecraftModule.d.ts +123 -0
  56. package/lib/modules/IMinecraftModule.js +71 -0
  57. package/lib/modules/IMinecraftModule.js.map +1 -0
  58. package/lib/modules/KeyToTypeMapping.d.ts +77 -0
  59. package/lib/modules/KeyToTypeMapping.js +5 -0
  60. package/lib/modules/KeyToTypeMapping.js.map +1 -0
  61. package/lib/modules/MinecraftAfterEventsOrderModule.d.ts +57 -0
  62. package/lib/modules/MinecraftAfterEventsOrderModule.js +28 -0
  63. package/lib/modules/MinecraftAfterEventsOrderModule.js.map +1 -0
  64. package/lib/modules/MinecraftBlockModule.d.ts +139 -0
  65. package/lib/modules/MinecraftBlockModule.js +37 -0
  66. package/lib/modules/MinecraftBlockModule.js.map +1 -0
  67. package/lib/modules/MinecraftChangelogTypes.d.ts +60 -0
  68. package/lib/modules/MinecraftChangelogTypes.js +17 -0
  69. package/lib/modules/MinecraftChangelogTypes.js.map +1 -0
  70. package/lib/modules/MinecraftCommandModule.d.ts +270 -0
  71. package/lib/modules/MinecraftCommandModule.js +87 -0
  72. package/lib/modules/MinecraftCommandModule.js.map +1 -0
  73. package/lib/modules/MinecraftDimensionsModule.d.ts +44 -0
  74. package/lib/modules/MinecraftDimensionsModule.js +11 -0
  75. package/lib/modules/MinecraftDimensionsModule.js.map +1 -0
  76. package/lib/modules/MinecraftDocsTypes.d.ts +475 -0
  77. package/lib/modules/MinecraftDocsTypes.js +77 -0
  78. package/lib/modules/MinecraftDocsTypes.js.map +1 -0
  79. package/lib/modules/MinecraftEffectsModule.d.ts +44 -0
  80. package/lib/modules/MinecraftEffectsModule.js +11 -0
  81. package/lib/modules/MinecraftEffectsModule.js.map +1 -0
  82. package/lib/modules/MinecraftEnchantmentsModule.d.ts +44 -0
  83. package/lib/modules/MinecraftEnchantmentsModule.js +11 -0
  84. package/lib/modules/MinecraftEnchantmentsModule.js.map +1 -0
  85. package/lib/modules/MinecraftEngineDataModules.d.ts +2 -0
  86. package/lib/modules/MinecraftEngineDataModules.js +5 -0
  87. package/lib/modules/MinecraftEngineDataModules.js.map +1 -0
  88. package/lib/modules/MinecraftEntitiesModule.d.ts +44 -0
  89. package/lib/modules/MinecraftEntitiesModule.js +11 -0
  90. package/lib/modules/MinecraftEntitiesModule.js.map +1 -0
  91. package/lib/modules/MinecraftItemsModule.d.ts +44 -0
  92. package/lib/modules/MinecraftItemsModule.js +11 -0
  93. package/lib/modules/MinecraftItemsModule.js.map +1 -0
  94. package/lib/modules/MinecraftSchemaObject.d.ts +16 -0
  95. package/lib/modules/MinecraftSchemaObject.js +5 -0
  96. package/lib/modules/MinecraftSchemaObject.js.map +1 -0
  97. package/lib/modules/MinecraftScriptModule.d.ts +3677 -0
  98. package/lib/modules/MinecraftScriptModule.js +374 -0
  99. package/lib/modules/MinecraftScriptModule.js.map +1 -0
  100. package/lib/modules/MinecraftVanillaDataModules.d.ts +4 -0
  101. package/lib/modules/MinecraftVanillaDataModules.js +9 -0
  102. package/lib/modules/MinecraftVanillaDataModules.js.map +1 -0
  103. package/lib/modules/index.d.ts +15 -0
  104. package/lib/modules/index.js +34 -0
  105. package/lib/modules/index.js.map +1 -0
  106. package/lib/plugins/MarkupGenerator.d.ts +28 -0
  107. package/lib/plugins/MarkupGenerator.js +5 -0
  108. package/lib/plugins/MarkupGenerator.js.map +1 -0
  109. package/lib/plugins/Plugin.d.ts +16 -0
  110. package/lib/plugins/Plugin.js +5 -0
  111. package/lib/plugins/Plugin.js.map +1 -0
  112. package/lib/plugins/index.d.ts +2 -0
  113. package/lib/plugins/index.js +21 -0
  114. package/lib/plugins/index.js.map +1 -0
  115. package/lib/test/commonFilterUnitTests.spec.d.ts +1 -0
  116. package/lib/test/commonFilterUnitTests.spec.js +85 -0
  117. package/lib/test/commonFilterUnitTests.spec.js.map +1 -0
  118. package/lib/test/diffingUnitTests.test.d.ts +1 -0
  119. package/lib/test/diffingUnitTests.test.js +238 -0
  120. package/lib/test/diffingUnitTests.test.js.map +1 -0
  121. package/lib/test/scanObjectUnitTests.test.d.ts +1 -0
  122. package/lib/test/scanObjectUnitTests.test.js +162 -0
  123. package/lib/test/scanObjectUnitTests.test.js.map +1 -0
  124. package/lib/test/versionParsing.test.d.ts +1 -0
  125. package/lib/test/versionParsing.test.js +147 -0
  126. package/lib/test/versionParsing.test.js.map +1 -0
  127. package/lib/utilities/AppendVersion.d.ts +8 -0
  128. package/lib/utilities/AppendVersion.js +46 -0
  129. package/lib/utilities/AppendVersion.js.map +1 -0
  130. package/lib/utilities/Complete.d.ts +7 -0
  131. package/lib/utilities/Complete.js +5 -0
  132. package/lib/utilities/Complete.js.map +1 -0
  133. package/lib/utilities/DeepCopyJson.d.ts +4 -0
  134. package/lib/utilities/DeepCopyJson.js +46 -0
  135. package/lib/utilities/DeepCopyJson.js.map +1 -0
  136. package/lib/utilities/GetFiles.d.ts +3 -0
  137. package/lib/utilities/GetFiles.js +44 -0
  138. package/lib/utilities/GetFiles.js.map +1 -0
  139. package/lib/utilities/LongestCommonSubsequence.d.ts +3 -0
  140. package/lib/utilities/LongestCommonSubsequence.js +123 -0
  141. package/lib/utilities/LongestCommonSubsequence.js.map +1 -0
  142. package/lib/utilities/MergeArrays.d.ts +1 -0
  143. package/lib/utilities/MergeArrays.js +15 -0
  144. package/lib/utilities/MergeArrays.js.map +1 -0
  145. package/lib/utilities/RemoveProperty.d.ts +1 -0
  146. package/lib/utilities/RemoveProperty.js +16 -0
  147. package/lib/utilities/RemoveProperty.js.map +1 -0
  148. package/lib/utilities/ScanObject.d.ts +13 -0
  149. package/lib/utilities/ScanObject.js +101 -0
  150. package/lib/utilities/ScanObject.js.map +1 -0
  151. package/lib/utilities/SortComparers.d.ts +3 -0
  152. package/lib/utilities/SortComparers.js +21 -0
  153. package/lib/utilities/SortComparers.js.map +1 -0
  154. package/lib/utilities/index.d.ts +9 -0
  155. package/lib/utilities/index.js +28 -0
  156. package/lib/utilities/index.js.map +1 -0
  157. package/package.json +72 -0
@@ -0,0 +1,511 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5
+ if (k2 === undefined) k2 = k;
6
+ var desc = Object.getOwnPropertyDescriptor(m, k);
7
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
8
+ desc = { enumerable: true, get: function() { return m[k]; } };
9
+ }
10
+ Object.defineProperty(o, k2, desc);
11
+ }) : (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ o[k2] = m[k];
14
+ }));
15
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
16
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
17
+ }) : function(o, v) {
18
+ o["default"] = v;
19
+ });
20
+ var __importStar = (this && this.__importStar) || function (mod) {
21
+ if (mod && mod.__esModule) return mod;
22
+ var result = {};
23
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
24
+ __setModuleDefault(result, mod);
25
+ return result;
26
+ };
27
+ var __importDefault = (this && this.__importDefault) || function (mod) {
28
+ return (mod && mod.__esModule) ? mod : { "default": mod };
29
+ };
30
+ Object.defineProperty(exports, "__esModule", { value: true });
31
+ exports.generate = generate;
32
+ const ajv_1 = __importDefault(require("ajv"));
33
+ const fs_1 = __importDefault(require("fs"));
34
+ const path_1 = __importDefault(require("path"));
35
+ const runtypes_1 = require("runtypes");
36
+ const semver_1 = __importDefault(require("semver"));
37
+ const log = __importStar(require("./Logger"));
38
+ const utils = __importStar(require("./utilities"));
39
+ const Context_1 = require("./Context");
40
+ const MinecraftRelease_1 = require("./MinecraftRelease");
41
+ const changelog_1 = require("./changelog");
42
+ const filters_1 = require("./filters");
43
+ const IMinecraftModule_1 = require("./modules/IMinecraftModule");
44
+ const MinecraftAfterEventsOrderModule_1 = require("./modules/MinecraftAfterEventsOrderModule");
45
+ const MinecraftBlockModule_1 = require("./modules/MinecraftBlockModule");
46
+ const MinecraftCommandModule_1 = require("./modules/MinecraftCommandModule");
47
+ const MinecraftScriptModule_1 = require("./modules/MinecraftScriptModule");
48
+ const utilities_1 = require("./utilities");
49
+ /**
50
+ * Generate outputs for each initialized generator.
51
+ */
52
+ async function generateMarkupFiles(context, filteredReleases, unfilteredReleases) {
53
+ log.info(`Running Generators: [${context.getGeneratorIds().join(', ')}]`);
54
+ fs_1.default.rmSync(context.rootOutputDirectory, { recursive: true, force: true });
55
+ fs_1.default.mkdirSync(context.rootOutputDirectory, { recursive: true });
56
+ for (const generator of context.getGenerators()) {
57
+ if (generator.dependencies && !context.hasGenerators(...generator.dependencies)) {
58
+ log.error(`'${generator.name}' has generator dependencies that have not been imported. Required generators: [${generator.dependencies.join(', ')}]`);
59
+ continue;
60
+ }
61
+ if (generator.templates && !context.hasTemplates(...generator.templates)) {
62
+ log.error(`'${generator.name}' is missing required templates. Required templates: [${generator.templates.join(', ')}]`);
63
+ continue;
64
+ }
65
+ const options = context.getGeneratorOptions(generator.id);
66
+ const releasesToCopy = !generator.filterGroups || generator.filterGroups.length === 0 ? unfilteredReleases : filteredReleases;
67
+ const releasesCopy = [];
68
+ for (const release of releasesToCopy) {
69
+ releasesCopy.push(release.copy());
70
+ }
71
+ const outputDirectory = path_1.default.resolve(context.rootOutputDirectory, generator.outputDirectoryName);
72
+ log.info(`Generating output for '${generator.name}'`);
73
+ try {
74
+ await generator.generateFiles(context, releasesCopy, outputDirectory, options);
75
+ }
76
+ catch (e) {
77
+ if (e instanceof Error) {
78
+ log.error(`Generator '${generator.name}' threw an exception: ${e.message} @ ${e.stack}`);
79
+ }
80
+ }
81
+ }
82
+ }
83
+ /**
84
+ * Performs metadata schema upgrades to support backwards compatibility with metadata generated from older Minecraft releases.
85
+ */
86
+ function upgradeScriptModuleMetadataFormat(documentationJson) {
87
+ const upgradePropertyPrivilegeFormat = (properties) => {
88
+ for (const prop of properties ?? []) {
89
+ if ('privilege' in prop) {
90
+ prop.get_privilege = [{ name: 'read_only' }];
91
+ if (typeof prop.privilege === 'string') {
92
+ prop.set_privilege = [{ name: prop.privilege }];
93
+ }
94
+ else {
95
+ prop.set_privilege = prop.privilege;
96
+ }
97
+ delete prop.privilege;
98
+ }
99
+ }
100
+ };
101
+ const upgradeFunctionPrivilegeFormat = (functions) => {
102
+ for (const func of functions ?? []) {
103
+ if ('privilege' in func) {
104
+ if (typeof func.privilege === 'string') {
105
+ func.call_privilege = [{ name: func.privilege }];
106
+ }
107
+ else {
108
+ func.call_privilege = func.privilege;
109
+ }
110
+ delete func.privilege;
111
+ }
112
+ }
113
+ };
114
+ for (const c of documentationJson.classes ?? []) {
115
+ upgradePropertyPrivilegeFormat(c.properties);
116
+ upgradeFunctionPrivilegeFormat(c.functions);
117
+ }
118
+ for (const e of documentationJson.errors ?? []) {
119
+ upgradePropertyPrivilegeFormat(e.properties);
120
+ }
121
+ upgradeFunctionPrivilegeFormat(documentationJson.functions);
122
+ const upgradeFormat = documentationJson;
123
+ for (const dependency of upgradeFormat.dependencies ?? []) {
124
+ if (dependency.version) {
125
+ dependency.versions = [{ version: dependency.version }];
126
+ delete dependency.version;
127
+ }
128
+ }
129
+ for (const dependency of upgradeFormat.peer_dependencies ?? []) {
130
+ if (dependency.version) {
131
+ dependency.versions = [{ version: dependency.version }];
132
+ delete dependency.version;
133
+ }
134
+ }
135
+ }
136
+ /**
137
+ * Merges 'base' and 'parent', keeping the name and UUID of 'base' in the resulting module.
138
+ */
139
+ function mergeScriptModule(base, parent) {
140
+ const exports = {
141
+ classes: (0, utilities_1.mergeOptionalArrays)(parent.classes, base.classes),
142
+ constants: (0, utilities_1.mergeOptionalArrays)(parent.constants, base.constants),
143
+ enums: (0, utilities_1.mergeOptionalArrays)(parent.enums, base.enums),
144
+ functions: (0, utilities_1.mergeOptionalArrays)(parent.functions, base.functions),
145
+ errors: (0, utilities_1.mergeOptionalArrays)(parent.errors, base.errors),
146
+ interfaces: (0, utilities_1.mergeOptionalArrays)(parent.interfaces, base.interfaces),
147
+ objects: (0, utilities_1.mergeOptionalArrays)(parent.objects, base.objects),
148
+ type_aliases: (0, utilities_1.mergeOptionalArrays)(parent.type_aliases, base.type_aliases),
149
+ };
150
+ Object.keys(exports).forEach((key) => exports[key] === undefined && delete exports[key]);
151
+ return {
152
+ ...parent,
153
+ name: base.name,
154
+ uuid: base.uuid,
155
+ ...exports,
156
+ };
157
+ }
158
+ /**
159
+ * Merges each script module that specifies a 'parentModule' with it's parent, returning the list of all modules after merging.
160
+ *
161
+ * If 'includeParentModules' is true, parent modules will be generated on their own in addition to the merged modules.
162
+ */
163
+ function getMergedScriptModules(context, scriptModules) {
164
+ const standardModules = new Map();
165
+ const modulesToParent = [];
166
+ for (const module of scriptModules) {
167
+ if (module.parentModule) {
168
+ modulesToParent.push(module);
169
+ }
170
+ else {
171
+ standardModules.set(`${module.name}_${module.version}_${module.minecraft_version}`, module);
172
+ }
173
+ }
174
+ if (modulesToParent.length + standardModules.size < scriptModules.length) {
175
+ throw new Error('Incorrect number of modules found, missing standard modules for parenting. Please inspect metadata input.');
176
+ }
177
+ for (const moduleToParent of modulesToParent) {
178
+ const parentName = typeof moduleToParent.parentModule === 'object'
179
+ ? moduleToParent.parentModule.name
180
+ : moduleToParent.parentModule;
181
+ const parentVersion = typeof moduleToParent.parentModule === 'object'
182
+ ? (moduleToParent.parentModule.version ?? moduleToParent.version)
183
+ : moduleToParent.version;
184
+ if (!parentName) {
185
+ throw new Error('Module to parent has no parent, this is a bug in the generator.');
186
+ }
187
+ const minecraftVersion = moduleToParent.minecraft_version;
188
+ const parent = standardModules.get(`${parentName}_${parentVersion}_${minecraftVersion}`);
189
+ if (!parent) {
190
+ throw new Error(`Module '${parentName}' does not exist, cannot parent '${moduleToParent.name}'. Please inspect metadata input.`);
191
+ }
192
+ log.info(`Merging parent module '${parentName}@${parentVersion}' into '${moduleToParent.name}@${moduleToParent.version}'.`);
193
+ const mergedModule = mergeScriptModule(moduleToParent, parent);
194
+ if (!context.includeBaseModules) {
195
+ standardModules.delete(`${parentName}_${parentVersion}_${minecraftVersion}`);
196
+ }
197
+ standardModules.set(`${mergedModule.name}_${mergedModule.version}_${mergedModule.minecraft_version}`, mergedModule);
198
+ }
199
+ return Array.from(standardModules.values());
200
+ }
201
+ /**
202
+ * Adds a stub engine module if only one exists during a PR changelog generation.
203
+ *
204
+ * This is to ensure that the PR changelog is able to properly report full addition or full removal of engine data.
205
+ */
206
+ function tryAddStubEngineModel(generatorsList, allMinecraftReleases, engineModuleFiles) {
207
+ if (generatorsList.some(val => val === 'pr') && engineModuleFiles.length === 1) {
208
+ const existingRelease = engineModuleFiles[0].minecraft_version;
209
+ const otherVersions = Object.keys(allMinecraftReleases).filter(val => val !== existingRelease);
210
+ if (otherVersions.length <= 1) {
211
+ engineModuleFiles.push({
212
+ ...engineModuleFiles[0],
213
+ minecraft_version: otherVersions.length === 1
214
+ ? otherVersions[0]
215
+ : engineModuleFiles[0].minecraft_version.startsWith('999')
216
+ ? '0.0.1'
217
+ : '999.999.999',
218
+ after_events_order_by_version: [],
219
+ });
220
+ }
221
+ }
222
+ }
223
+ /**
224
+ * Loads input metadata and processes modules into MinecraftRelease objects by Minecraft version.
225
+ */
226
+ function loadMinecraftReleases(context) {
227
+ const allMinecraftReleases = {};
228
+ const allScriptModules = [];
229
+ const allCommandModules = [];
230
+ const allBlockModules = [];
231
+ const allVanillaModules = [];
232
+ const allEngineModules = [];
233
+ const allJsonSchemas = {};
234
+ const inputFiles = utils.getFilesRecursively(context.inputDirectory);
235
+ const parseErrors = [];
236
+ for (const inputFilePath of inputFiles) {
237
+ const documentationFileData = fs_1.default.readFileSync(inputFilePath).toString();
238
+ try {
239
+ const documentationJsonRaw = JSON.parse(documentationFileData);
240
+ if (!documentationJsonRaw) {
241
+ log.warn(`File '${inputFilePath}' could not be parsed as JSON.`);
242
+ continue;
243
+ }
244
+ if ('$schema' in documentationJsonRaw) {
245
+ const ajv = new ajv_1.default();
246
+ try {
247
+ if (ajv.validateSchema(documentationJsonRaw)) {
248
+ allJsonSchemas[inputFilePath] = documentationJsonRaw;
249
+ }
250
+ else {
251
+ log.warn(`Skipping invalid JSON schema: ${inputFilePath}`);
252
+ }
253
+ }
254
+ catch (e) {
255
+ if (e instanceof Error) {
256
+ log.error(`Failed to validate schema '${inputFilePath}': ${e.message} @ ${e.stack}`);
257
+ }
258
+ }
259
+ }
260
+ else {
261
+ const documentationJson = IMinecraftModule_1.CommonModuleDataValidator.check(documentationJsonRaw);
262
+ switch (documentationJson.module_type) {
263
+ case 'script': {
264
+ upgradeScriptModuleMetadataFormat(documentationJson);
265
+ const scriptModule = MinecraftScriptModule_1.MinecraftScriptModuleRecord.check(documentationJson);
266
+ allScriptModules.push(scriptModule);
267
+ break;
268
+ }
269
+ case 'commands': {
270
+ const commandModule = MinecraftCommandModule_1.MinecraftCommandModuleRecord.check(documentationJson);
271
+ allCommandModules.push(commandModule);
272
+ break;
273
+ }
274
+ case 'vanilla_data': {
275
+ const vanillaDataModule = IMinecraftModule_1.CoreVanillaDataFieldsRecord.check(documentationJson);
276
+ if (vanillaDataModule.vanilla_data_type === 'block') {
277
+ const blockModule = MinecraftBlockModule_1.MinecraftBlockModuleRecord.check(vanillaDataModule);
278
+ allBlockModules.push(blockModule);
279
+ }
280
+ allVanillaModules.push(vanillaDataModule);
281
+ break;
282
+ }
283
+ case 'after_events_ordering': {
284
+ const afterEventsOrderModule = MinecraftAfterEventsOrderModule_1.MinecraftAfterEventsOrderModuleRecord.check(documentationJson);
285
+ allEngineModules.push(afterEventsOrderModule);
286
+ break;
287
+ }
288
+ default: {
289
+ log.warn(`New module type '${documentationJson.module_type}' found, ignoring for processing. Check whether types should be updated!`);
290
+ }
291
+ }
292
+ }
293
+ }
294
+ catch (e) {
295
+ if (e instanceof runtypes_1.ValidationError) {
296
+ parseErrors.push(`Failure for ${inputFilePath}: ${e.message}`);
297
+ }
298
+ }
299
+ }
300
+ if (parseErrors.length > 0) {
301
+ throw new Error(`\nMultiple parse errors occurred:\n${parseErrors.join('\n')}`);
302
+ }
303
+ const scriptModulesToProcess = context.skipMerging
304
+ ? allScriptModules
305
+ : getMergedScriptModules(context, allScriptModules);
306
+ for (const scriptModule of scriptModulesToProcess) {
307
+ const moduleMinecraftVersion = scriptModule.minecraft_version;
308
+ if (!allMinecraftReleases[moduleMinecraftVersion]) {
309
+ allMinecraftReleases[moduleMinecraftVersion] = new MinecraftRelease_1.MinecraftRelease(moduleMinecraftVersion);
310
+ }
311
+ allMinecraftReleases[moduleMinecraftVersion].script_modules.push(scriptModule);
312
+ }
313
+ for (const commandModule of allCommandModules) {
314
+ const moduleMinecraftVersion = commandModule.minecraft_version;
315
+ if (!allMinecraftReleases[moduleMinecraftVersion]) {
316
+ allMinecraftReleases[moduleMinecraftVersion] = new MinecraftRelease_1.MinecraftRelease(moduleMinecraftVersion);
317
+ }
318
+ allMinecraftReleases[moduleMinecraftVersion].command_modules.push(commandModule);
319
+ }
320
+ for (const blockModule of allBlockModules) {
321
+ const moduleMinecraftVersion = blockModule.minecraft_version;
322
+ if (!allMinecraftReleases[moduleMinecraftVersion]) {
323
+ allMinecraftReleases[moduleMinecraftVersion] = new MinecraftRelease_1.MinecraftRelease(moduleMinecraftVersion);
324
+ }
325
+ allMinecraftReleases[moduleMinecraftVersion].block_modules.push(blockModule);
326
+ }
327
+ for (const vanillaModule of allVanillaModules) {
328
+ const moduleMinecraftVersion = vanillaModule.minecraft_version;
329
+ if (!allMinecraftReleases[moduleMinecraftVersion]) {
330
+ allMinecraftReleases[moduleMinecraftVersion] = new MinecraftRelease_1.MinecraftRelease(moduleMinecraftVersion);
331
+ }
332
+ allMinecraftReleases[moduleMinecraftVersion].vanilla_data_modules.push(vanillaModule);
333
+ }
334
+ tryAddStubEngineModel(context.getGeneratorIds(), allMinecraftReleases, allEngineModules);
335
+ for (const engineModule of allEngineModules) {
336
+ const moduleMinecraftVersion = engineModule.minecraft_version;
337
+ if (!allMinecraftReleases[moduleMinecraftVersion]) {
338
+ allMinecraftReleases[moduleMinecraftVersion] = new MinecraftRelease_1.MinecraftRelease(moduleMinecraftVersion);
339
+ }
340
+ allMinecraftReleases[moduleMinecraftVersion].engine_data_modules.push(engineModule);
341
+ }
342
+ const unversionedJsonSchemas = {};
343
+ for (const path in allJsonSchemas) {
344
+ const jsonSchema = allJsonSchemas[path];
345
+ const schemaMinecraftVersion = jsonSchema['x-minecraft-version'];
346
+ if (!schemaMinecraftVersion) {
347
+ unversionedJsonSchemas[path] = jsonSchema;
348
+ continue;
349
+ }
350
+ if (!allMinecraftReleases[schemaMinecraftVersion]) {
351
+ allMinecraftReleases[schemaMinecraftVersion] = new MinecraftRelease_1.MinecraftRelease(schemaMinecraftVersion);
352
+ }
353
+ allMinecraftReleases[schemaMinecraftVersion].json_schemas[path] = jsonSchema;
354
+ }
355
+ const allMinecraftReleaseVersions = Object.keys(allMinecraftReleases);
356
+ const earliestAvailableMinecraftVersion = allMinecraftReleaseVersions.length > 0
357
+ ? allMinecraftReleaseVersions.sort((a, b) => semver_1.default.compare(a, b)).at(0)
358
+ : '1.0.0';
359
+ if (!allMinecraftReleases[earliestAvailableMinecraftVersion]) {
360
+ allMinecraftReleases[earliestAvailableMinecraftVersion] = new MinecraftRelease_1.MinecraftRelease(earliestAvailableMinecraftVersion);
361
+ }
362
+ for (const path in unversionedJsonSchemas) {
363
+ const jsonSchema = unversionedJsonSchemas[path];
364
+ allMinecraftReleases[earliestAvailableMinecraftVersion].json_schemas[path] = jsonSchema;
365
+ }
366
+ if (Object.keys(allMinecraftReleases).length === 0) {
367
+ throw new Error('No input files were detected.');
368
+ }
369
+ return allMinecraftReleases;
370
+ }
371
+ /**
372
+ * Marks up module versions with the minecraft release version if they are unpublished
373
+ */
374
+ function markupReleaseVersions(context, allMinecraftReleases) {
375
+ const { minecraftReleaseVersion, preexistingModuleReleases } = context;
376
+ if (minecraftReleaseVersion) {
377
+ for (const releaseVersion in allMinecraftReleases) {
378
+ const currentRelease = allMinecraftReleases[releaseVersion];
379
+ const minecraftReleaseVersionSemVer = semver_1.default.parse(minecraftReleaseVersion);
380
+ for (const scriptModule of currentRelease.script_modules) {
381
+ const appendMinecraftReleaseVersion = (jsonObject, name) => {
382
+ if (preexistingModuleReleases &&
383
+ preexistingModuleReleases[name] &&
384
+ preexistingModuleReleases[name].includes(jsonObject.version)) {
385
+ log.info(`Version already released on NPMJS, skipping version mangling for '${name}@${jsonObject.version}' in module '${scriptModule.name}@${jsonObject.version}'.`);
386
+ return;
387
+ }
388
+ jsonObject.version = utils.appendMinecraftVersion(semver_1.default.parse(jsonObject.version), semver_1.default.parse(minecraftReleaseVersionSemVer));
389
+ };
390
+ utils.scanObjectForMembersWithNames(scriptModule, 'version', 'name', jsonObject => {
391
+ appendMinecraftReleaseVersion(jsonObject, jsonObject.name);
392
+ });
393
+ for (const dep of scriptModule.dependencies ?? []) {
394
+ for (const version of dep.versions) {
395
+ appendMinecraftReleaseVersion(version, dep.name);
396
+ }
397
+ }
398
+ for (const dep of scriptModule.peer_dependencies ?? []) {
399
+ if (dep.name !== '@minecraft/vanilla-data') {
400
+ for (const version of dep.versions) {
401
+ appendMinecraftReleaseVersion(version, dep.name);
402
+ }
403
+ }
404
+ else if (minecraftReleaseVersionSemVer.prerelease.length > 0) {
405
+ const minecraftReleaseVersionStr = minecraftReleaseVersionSemVer.format();
406
+ if (!dep.versions.some(v => v.version === minecraftReleaseVersionStr)) {
407
+ dep.versions.push({
408
+ version: minecraftReleaseVersionStr,
409
+ });
410
+ }
411
+ }
412
+ }
413
+ }
414
+ for (const vanillaDataModule of currentRelease.vanilla_data_modules) {
415
+ vanillaDataModule.minecraft_version = utils.appendMinecraftVersion(semver_1.default.parse(vanillaDataModule.minecraft_version), semver_1.default.parse(minecraftReleaseVersionSemVer), true /* onlyUsePrereleaseInfo */);
416
+ }
417
+ }
418
+ }
419
+ }
420
+ /**
421
+ * Filters out modules from further processing based on specified --include-modules IncludeModulesMode option.
422
+ */
423
+ function filterIncludedModules(context, allMinecraftReleases) {
424
+ switch (context.includeModules) {
425
+ default:
426
+ case 'all':
427
+ log.debug(`Will generate all module versions.`);
428
+ break;
429
+ case 'latest':
430
+ log.debug('Will generate only latest stable and pre-release module versions.');
431
+ for (const release of allMinecraftReleases) {
432
+ release.script_modules = release.getLatestScriptModulesByMajorVersion(MinecraftRelease_1.GetLatestScriptModulesOptions.StableAndPrerelease);
433
+ }
434
+ break;
435
+ }
436
+ }
437
+ /**
438
+ * Run markup filters required by specified generators which manipulate and add to module metadata.
439
+ */
440
+ function markupFilters(context, allMinecraftReleases) {
441
+ const filterGroupMap = new Map();
442
+ let useCommonFilters = false;
443
+ for (const generator of context.getGenerators()) {
444
+ if (generator.filterGroups) {
445
+ for (const filterGroup of generator.filterGroups) {
446
+ if (filterGroup.id === 'common') {
447
+ useCommonFilters = true;
448
+ }
449
+ else if (!filterGroupMap.has(filterGroup.id)) {
450
+ filterGroupMap.set(filterGroup.id, filterGroup);
451
+ }
452
+ }
453
+ }
454
+ }
455
+ const shouldRunFilters = filterGroupMap.size > 0 || useCommonFilters;
456
+ const filteredReleases = [];
457
+ if (shouldRunFilters) {
458
+ for (const release of allMinecraftReleases) {
459
+ filteredReleases.push(release.copy());
460
+ }
461
+ const runFilters = (filters) => {
462
+ if (filters) {
463
+ for (const filter of filters) {
464
+ log.info(`Running filter: ${filter[0]}`);
465
+ try {
466
+ filter[1](filteredReleases, context.documentationFileLoader);
467
+ }
468
+ catch (e) {
469
+ if (e instanceof Error) {
470
+ log.error(`Filter ${filter[0]} threw an exception: ${e.message} @ ${e.stack}`);
471
+ }
472
+ }
473
+ }
474
+ }
475
+ };
476
+ const filterGroupsToRun = Array.from(filterGroupMap.values());
477
+ for (const filterGroup of filterGroupsToRun) {
478
+ runFilters(filterGroup.filtersBeforeCommon);
479
+ }
480
+ if (useCommonFilters) {
481
+ runFilters(filters_1.CommonFilters.filters);
482
+ }
483
+ for (const filterGroup of filterGroupsToRun) {
484
+ runFilters(filterGroup.filters);
485
+ }
486
+ }
487
+ return shouldRunFilters ? filteredReleases : allMinecraftReleases;
488
+ }
489
+ /**
490
+ * Main logic of the Minecraft API Docs Generator.
491
+ *
492
+ * Processes API module JSON metadata files, transforming them with filter functions,
493
+ * and renders them into output files with configured markup generators.
494
+ */
495
+ async function generate(options) {
496
+ const context = await Context_1.GeneratorContext.Init(options);
497
+ const allMinecraftReleases = loadMinecraftReleases(context);
498
+ if (context.minecraftReleaseVersion) {
499
+ markupReleaseVersions(context, allMinecraftReleases);
500
+ }
501
+ const sortedMinecraftReleases = Object.values(allMinecraftReleases).sort(utils.reverseSemVerSortComparer('minecraft_version'));
502
+ if (context.changelogStrategy.shouldGenerateChangelogs(sortedMinecraftReleases)) {
503
+ const changelogGenerator = new changelog_1.ChangelogGenerator(context.changelogStrategy);
504
+ changelogGenerator.generateChangelogs(sortedMinecraftReleases);
505
+ }
506
+ filterIncludedModules(context, sortedMinecraftReleases);
507
+ const filteredMinecraftReleases = markupFilters(context, sortedMinecraftReleases);
508
+ await generateMarkupFiles(context, filteredMinecraftReleases, sortedMinecraftReleases);
509
+ context.shutdown();
510
+ }
511
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,16 @@
1
+ /**
2
+ * MinecraftApiDocsGenerator is primarily a command line tool, but we export the main generation logic
3
+ * to allow extending it with custom generators.
4
+ */
5
+ export * from './ChangelogStrategy';
6
+ export { Config, GenerateOptions } from './Config';
7
+ export { GeneratorContext } from './Context';
8
+ export { FileLoader } from './FileLoader';
9
+ export * from './filters';
10
+ export { generate } from './generator';
11
+ export * as Logger from './Logger';
12
+ export * from './MinecraftRelease';
13
+ export * from './modules';
14
+ export { MarkupGenerator, MarkupGeneratorOptions, Plugin } from './plugins';
15
+ export { PRETTIER_CONFIGURATION } from './PrettierConfiguration';
16
+ export * as Utils from './utilities';
package/lib/index.js ADDED
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5
+ if (k2 === undefined) k2 = k;
6
+ var desc = Object.getOwnPropertyDescriptor(m, k);
7
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
8
+ desc = { enumerable: true, get: function() { return m[k]; } };
9
+ }
10
+ Object.defineProperty(o, k2, desc);
11
+ }) : (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ o[k2] = m[k];
14
+ }));
15
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
16
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
17
+ }) : function(o, v) {
18
+ o["default"] = v;
19
+ });
20
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
21
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
22
+ };
23
+ var __importStar = (this && this.__importStar) || function (mod) {
24
+ if (mod && mod.__esModule) return mod;
25
+ var result = {};
26
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
27
+ __setModuleDefault(result, mod);
28
+ return result;
29
+ };
30
+ Object.defineProperty(exports, "__esModule", { value: true });
31
+ exports.Utils = exports.PRETTIER_CONFIGURATION = exports.Logger = exports.generate = exports.FileLoader = exports.GeneratorContext = void 0;
32
+ /**
33
+ * MinecraftApiDocsGenerator is primarily a command line tool, but we export the main generation logic
34
+ * to allow extending it with custom generators.
35
+ */
36
+ __exportStar(require("./ChangelogStrategy"), exports);
37
+ var Context_1 = require("./Context");
38
+ Object.defineProperty(exports, "GeneratorContext", { enumerable: true, get: function () { return Context_1.GeneratorContext; } });
39
+ var FileLoader_1 = require("./FileLoader");
40
+ Object.defineProperty(exports, "FileLoader", { enumerable: true, get: function () { return FileLoader_1.FileLoader; } });
41
+ __exportStar(require("./filters"), exports);
42
+ var generator_1 = require("./generator");
43
+ Object.defineProperty(exports, "generate", { enumerable: true, get: function () { return generator_1.generate; } });
44
+ exports.Logger = __importStar(require("./Logger"));
45
+ __exportStar(require("./MinecraftRelease"), exports);
46
+ __exportStar(require("./modules"), exports);
47
+ var PrettierConfiguration_1 = require("./PrettierConfiguration");
48
+ Object.defineProperty(exports, "PRETTIER_CONFIGURATION", { enumerable: true, get: function () { return PrettierConfiguration_1.PRETTIER_CONFIGURATION; } });
49
+ exports.Utils = __importStar(require("./utilities"));
50
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAElC;;;GAGG;AAEH,sDAAoC;AAEpC,qCAA6C;AAApC,2GAAA,gBAAgB,OAAA;AACzB,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,4CAA0B;AAC1B,yCAAuC;AAA9B,qGAAA,QAAQ,OAAA;AACjB,mDAAmC;AACnC,qDAAmC;AACnC,4CAA0B;AAE1B,iEAAiE;AAAxD,+HAAA,sBAAsB,OAAA;AAC/B,qDAAqC"}