@minecraft/markup-generators-plugin 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 (84) hide show
  1. package/CHANGELOG.json +26 -0
  2. package/CHANGELOG.md +14 -0
  3. package/README.md +17 -0
  4. package/lib/generators/ChangelogJSONGenerator.d.ts +7 -0
  5. package/lib/generators/ChangelogJSONGenerator.js +46 -0
  6. package/lib/generators/ChangelogJSONGenerator.js.map +1 -0
  7. package/lib/generators/ChangelogMDGenerator.d.ts +9 -0
  8. package/lib/generators/ChangelogMDGenerator.js +54 -0
  9. package/lib/generators/ChangelogMDGenerator.js.map +1 -0
  10. package/lib/generators/MSDocsMarkdownGenerator.d.ts +26 -0
  11. package/lib/generators/MSDocsMarkdownGenerator.js +434 -0
  12. package/lib/generators/MSDocsMarkdownGenerator.js.map +1 -0
  13. package/lib/generators/NPMModuleGenerator.d.ts +10 -0
  14. package/lib/generators/NPMModuleGenerator.js +176 -0
  15. package/lib/generators/NPMModuleGenerator.js.map +1 -0
  16. package/lib/generators/TypeDocGenerator.d.ts +8 -0
  17. package/lib/generators/TypeDocGenerator.js +123 -0
  18. package/lib/generators/TypeDocGenerator.js.map +1 -0
  19. package/lib/generators/TypeScriptDefinitionGenerator.d.ts +9 -0
  20. package/lib/generators/TypeScriptDefinitionGenerator.js +64 -0
  21. package/lib/generators/TypeScriptDefinitionGenerator.js.map +1 -0
  22. package/lib/generators/TypeScriptGenerator.d.ts +10 -0
  23. package/lib/generators/TypeScriptGenerator.js +128 -0
  24. package/lib/generators/TypeScriptGenerator.js.map +1 -0
  25. package/lib/generators/index.d.ts +7 -0
  26. package/lib/generators/index.js +26 -0
  27. package/lib/generators/index.js.map +1 -0
  28. package/lib/index.d.ts +3 -0
  29. package/lib/index.js +30 -0
  30. package/lib/index.js.map +1 -0
  31. package/lib/msdocsGeneratorUnitTests.spec.d.ts +1 -0
  32. package/lib/msdocsGeneratorUnitTests.spec.js +67 -0
  33. package/lib/msdocsGeneratorUnitTests.spec.js.map +1 -0
  34. package/package.json +66 -0
  35. package/templates/msdocs/blocks/block.mustache +18 -0
  36. package/templates/msdocs/blocks/block_property.mustache +26 -0
  37. package/templates/msdocs/blocks/default_metadata.mustache +4 -0
  38. package/templates/msdocs/commands/command.mustache +52 -0
  39. package/templates/msdocs/commands/default_metadata.mustache +4 -0
  40. package/templates/msdocs/commands/enum.mustache +25 -0
  41. package/templates/msdocs/commands/inline_enum.mustache +15 -0
  42. package/templates/msdocs/commands/overload.mustache +11 -0
  43. package/templates/msdocs/commands/parameter.mustache +1 -0
  44. package/templates/msdocs/commands/summary.mustache +21 -0
  45. package/templates/msdocs/commands/toc.mustache +6 -0
  46. package/templates/msdocs/script/class.mustache +162 -0
  47. package/templates/msdocs/script/default_metadata.mustache +5 -0
  48. package/templates/msdocs/script/enum.mustache +39 -0
  49. package/templates/msdocs/script/examples.mustache +15 -0
  50. package/templates/msdocs/script/function.mustache +95 -0
  51. package/templates/msdocs/script/module.mustache +139 -0
  52. package/templates/msdocs/script/module_changelog.mustache +235 -0
  53. package/templates/msdocs/script/property.mustache +81 -0
  54. package/templates/msdocs/script/property_declaration.mustache +6 -0
  55. package/templates/msdocs/script/toc.mustache +24 -0
  56. package/templates/msdocs/script/type_alias.mustache +56 -0
  57. package/templates/msdocs/script/type_with_links.mustache +1 -0
  58. package/templates/msdocs/script/value.mustache +1 -0
  59. package/templates/npm/README.md.mustache +13 -0
  60. package/templates/npm/package.json.mustache +30 -0
  61. package/templates/npm/vanilla-data/README.md +3 -0
  62. package/templates/npm/vanilla-data/bundle.js.mustache +10 -0
  63. package/templates/npm/vanilla-data/data-package.json.mustache +22 -0
  64. package/templates/npm/vanilla-data/index.ts.mustache +3 -0
  65. package/templates/npm/vanilla-data/template.npmignore +1 -0
  66. package/templates/npm/vanilla-data/tsconfig.json +18 -0
  67. package/templates/ts/data_items_enum.mustache +13 -0
  68. package/templates/ts/module.mustache +5 -0
  69. package/templates/ts/module_header.mustache +9 -0
  70. package/templates/ts/state_mapping.mustache +50 -0
  71. package/templates/tsdef/class.mustache +86 -0
  72. package/templates/tsdef/enum.mustache +32 -0
  73. package/templates/tsdef/examples.mustache +10 -0
  74. package/templates/tsdef/function.mustache +98 -0
  75. package/templates/tsdef/function_argument_declaration.mustache +1 -0
  76. package/templates/tsdef/function_declaration.mustache +1 -0
  77. package/templates/tsdef/module.mustache +63 -0
  78. package/templates/tsdef/module_header.mustache +8 -0
  79. package/templates/tsdef/property.mustache +99 -0
  80. package/templates/tsdef/property_declaration.mustache +1 -0
  81. package/templates/tsdef/type.mustache +1 -0
  82. package/templates/tsdef/type_alias.mustache +37 -0
  83. package/templates/tsdef/value.mustache +1 -0
  84. package/templates/txt/md_changelog.mustache +247 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MSDocsMarkdownGenerator.js","sourceRoot":"","sources":["../../src/generators/MSDocsMarkdownGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { FilterGroup, GeneratorContext, MarkupGenerator, MinecraftRelease } from '@minecraft/api-docs-generator';
2
+ export declare class NPMModuleGenerator implements MarkupGenerator {
3
+ generateFiles(context: GeneratorContext, releases: MinecraftRelease[], outputDirectory: string): Promise<void>;
4
+ readonly id: string;
5
+ readonly name: string;
6
+ readonly outputDirectoryName: string;
7
+ readonly dependencies: string[];
8
+ readonly templates: string[];
9
+ readonly filterGroups: FilterGroup[];
10
+ }
@@ -0,0 +1,176 @@
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.NPMModuleGenerator = void 0;
9
+ const node_core_library_1 = require("@rushstack/node-core-library");
10
+ const child_process_1 = require("child_process");
11
+ const fs_1 = __importDefault(require("fs"));
12
+ const mustache_1 = __importDefault(require("mustache"));
13
+ const path_1 = __importDefault(require("path"));
14
+ const prettier_1 = __importDefault(require("prettier"));
15
+ const api_docs_generator_1 = require("@minecraft/api-docs-generator");
16
+ function generateDataModuleNPM(moduleJsons, rootTypescriptOutputDir, npmTemplateFiles, generationOutputDirectory) {
17
+ const minecraftVersion = moduleJsons[0].minecraft_version;
18
+ const versionedRootTypescriptOutputDir = path_1.default.join(rootTypescriptOutputDir, minecraftVersion);
19
+ const moduleOutputDirectory = path_1.default.join(generationOutputDirectory, '@minecraft/vanilla-data');
20
+ const templatePackage = npmTemplateFiles.joinToRoot('vanilla-data');
21
+ node_core_library_1.FileSystem.copyFiles({
22
+ sourcePath: templatePackage,
23
+ destinationPath: moduleOutputDirectory,
24
+ filter: (sourcePath) => {
25
+ if (sourcePath.endsWith('.mustache') || sourcePath.endsWith('template.npmignore')) {
26
+ return false;
27
+ }
28
+ return true;
29
+ },
30
+ });
31
+ node_core_library_1.FileSystem.copyFile({
32
+ sourcePath: path_1.default.join(templatePackage, 'template.npmignore'),
33
+ destinationPath: path_1.default.join(moduleOutputDirectory, '.npmignore'),
34
+ });
35
+ let targetedVersion;
36
+ for (const module of moduleJsons) {
37
+ if (module.minecraft_version) {
38
+ targetedVersion = module.minecraft_version;
39
+ }
40
+ else {
41
+ if (targetedVersion !== module.minecraft_version) {
42
+ throw new Error('Mismatch versions for vanilla data? Inspect output for a given release.');
43
+ }
44
+ }
45
+ }
46
+ const packageJsonData = {
47
+ version: targetedVersion,
48
+ };
49
+ const packageJsonMustache = npmTemplateFiles.readFileAsString('vanilla-data/data-package.json.mustache');
50
+ const packageJsonOutput = path_1.default.join(moduleOutputDirectory, 'package.json');
51
+ const packageJsonRenderedData = mustache_1.default.render(packageJsonMustache, packageJsonData);
52
+ node_core_library_1.FileSystem.writeFile(packageJsonOutput, packageJsonRenderedData);
53
+ const srcDirectory = path_1.default.join(moduleOutputDirectory, 'src');
54
+ node_core_library_1.FileSystem.copyFiles({
55
+ sourcePath: versionedRootTypescriptOutputDir,
56
+ destinationPath: srcDirectory,
57
+ });
58
+ const files = node_core_library_1.FileSystem.readFolderItems(srcDirectory);
59
+ const indexFileData = { modules: [] };
60
+ for (const file of files) {
61
+ if (file.isFile) {
62
+ if (file.name.endsWith('.ts')) {
63
+ const fileName = file.name.substring(0, file.name.length - 3);
64
+ indexFileData.modules.push(fileName);
65
+ }
66
+ else {
67
+ api_docs_generator_1.Logger.warn(`Found file in vanilla data module that is not a TypeScript file: ${file.name}`);
68
+ indexFileData.modules.push(file.name);
69
+ }
70
+ }
71
+ }
72
+ const indexMustache = npmTemplateFiles.readFileAsString('vanilla-data/index.ts.mustache');
73
+ const indexMustachOutput = path_1.default.join(srcDirectory, 'index.ts');
74
+ const indexFileRenderedData = mustache_1.default.render(indexMustache, indexFileData);
75
+ node_core_library_1.FileSystem.writeFile(indexMustachOutput, indexFileRenderedData);
76
+ try {
77
+ const tsConfigPath = path_1.default.join(moduleOutputDirectory, 'tsconfig.json');
78
+ (0, child_process_1.execSync)(`npx tsc -p ${tsConfigPath}`, {
79
+ cwd: path_1.default.resolve(__dirname, '../../'),
80
+ }).toString();
81
+ node_core_library_1.FileSystem.deleteFile(tsConfigPath, { throwIfNotExists: true });
82
+ const outputBundlePath = path_1.default.join(moduleOutputDirectory, './lib/index.js');
83
+ (0, child_process_1.execSync)(`npx esbuild ${indexMustachOutput} --bundle --format=esm --minify-whitespace --outfile="${outputBundlePath}"`, {
84
+ cwd: path_1.default.resolve(__dirname, '../../'),
85
+ });
86
+ const loadedString = node_core_library_1.FileSystem.readFile(outputBundlePath, { encoding: node_core_library_1.Encoding.Utf8 });
87
+ const bundleMustache = npmTemplateFiles.readFileAsString('vanilla-data/bundle.js.mustache');
88
+ const renderedString = mustache_1.default.render(bundleMustache, {
89
+ data: loadedString,
90
+ });
91
+ node_core_library_1.FileSystem.writeFile(outputBundlePath, renderedString, {
92
+ encoding: node_core_library_1.Encoding.Utf8,
93
+ });
94
+ }
95
+ catch (e) {
96
+ if (e instanceof Error) {
97
+ api_docs_generator_1.Logger.error(`Failed to compile vanilla data module: ${e.message} @ ${e.stack}`);
98
+ throw e;
99
+ }
100
+ }
101
+ }
102
+ async function generateScriptModuleNPM(moduleJson, rootTypescriptDefinitionOutputDir, npmTemplateFiles, generationOutputDirectory) {
103
+ const typeScriptModuleFile = path_1.default.join(rootTypescriptDefinitionOutputDir, `${moduleJson.name}@${moduleJson.version}.d.ts`);
104
+ if (!fs_1.default.existsSync(typeScriptModuleFile)) {
105
+ throw new Error(`Module TypeScript file (${typeScriptModuleFile}) does not exist, cannot generate NPM files`);
106
+ }
107
+ const typesOutputDirectory = path_1.default.join(generationOutputDirectory, 'types');
108
+ fs_1.default.mkdirSync(typesOutputDirectory, { recursive: true });
109
+ const moduleOutputDirectory = path_1.default.join(typesOutputDirectory, `${moduleJson.name}@${moduleJson.version}`);
110
+ const typeScriptFilePath = path_1.default.join(moduleOutputDirectory, 'index.d.ts');
111
+ const typeScriptFolder = path_1.default.dirname(typeScriptFilePath);
112
+ fs_1.default.mkdirSync(typeScriptFolder, { recursive: true });
113
+ const prettierConfig = {
114
+ ...api_docs_generator_1.PRETTIER_CONFIGURATION,
115
+ trailingComma: 'all',
116
+ };
117
+ const dtsFileData = fs_1.default.readFileSync(typeScriptModuleFile, 'utf8');
118
+ let prettifiedFileData = dtsFileData;
119
+ try {
120
+ prettifiedFileData = await prettier_1.default.format(dtsFileData, prettierConfig);
121
+ }
122
+ catch (e) {
123
+ if (e instanceof Error) {
124
+ api_docs_generator_1.Logger.error(`Prettier failed to run for module '${moduleJson.name}': ${e.message}`);
125
+ }
126
+ }
127
+ api_docs_generator_1.Logger.info(`Writing NPM Type Modules to disk: ${typeScriptFilePath}`);
128
+ fs_1.default.writeFileSync(typeScriptFilePath, prettifiedFileData);
129
+ const packageJsonTemplateFileData = npmTemplateFiles.readFileAsString('package.json.mustache');
130
+ const packageJsonProcessedData = mustache_1.default.render(packageJsonTemplateFileData, moduleJson);
131
+ const packageJsonFilePath = path_1.default.join(moduleOutputDirectory, 'package.json');
132
+ api_docs_generator_1.Logger.info(`Writing package.json to disk: ${packageJsonFilePath}`);
133
+ fs_1.default.writeFileSync(packageJsonFilePath, packageJsonProcessedData);
134
+ const readmeTemplateFileData = npmTemplateFiles.readFileAsString('README.md.mustache');
135
+ const readmeProcessedData = mustache_1.default.render(readmeTemplateFileData, moduleJson);
136
+ const readmeFilePath = path_1.default.join(moduleOutputDirectory, 'README.md');
137
+ api_docs_generator_1.Logger.info(`Writing README.md to disk: ${readmeFilePath}`);
138
+ fs_1.default.writeFileSync(readmeFilePath, readmeProcessedData);
139
+ }
140
+ class NPMModuleGenerator {
141
+ async generateFiles(context, releases, outputDirectory) {
142
+ if (releases.length === 0) {
143
+ api_docs_generator_1.Logger.warn(`No releases found, '${this.name}' generation not possible.`);
144
+ return;
145
+ }
146
+ const { npm: npmTemplateFiles } = context.getTemplates(...this.templates);
147
+ const rootTSDefsOutputDir = path_1.default.resolve(context.rootOutputDirectory, context.getGenerator('ts').outputDirectoryName);
148
+ const shouldRunScriptModuleGeneration = releases[0].script_modules.length > 0;
149
+ if (!fs_1.default.existsSync(rootTSDefsOutputDir) && shouldRunScriptModuleGeneration) {
150
+ throw new Error(`Root TypeScript Definition directory (${rootTSDefsOutputDir}) does not exist, cannot generate NPM files`);
151
+ }
152
+ const rootTSOutputDir = path_1.default.resolve(context.rootOutputDirectory, context.getGenerator('ts-source').outputDirectoryName);
153
+ const shouldRunDataGeneration = releases[0].vanilla_data_modules.length > 0;
154
+ if (!fs_1.default.existsSync(rootTSOutputDir) && shouldRunDataGeneration) {
155
+ throw new Error(`Root TypeScript directory (${rootTSOutputDir}) does not exist, cannot generate NPM files`);
156
+ }
157
+ fs_1.default.mkdirSync(outputDirectory, { recursive: true });
158
+ if (shouldRunScriptModuleGeneration) {
159
+ for (const moduleJson of releases[0].script_modules) {
160
+ await generateScriptModuleNPM(moduleJson, rootTSDefsOutputDir, npmTemplateFiles, outputDirectory);
161
+ }
162
+ }
163
+ if (shouldRunDataGeneration) {
164
+ generateDataModuleNPM(releases[0].vanilla_data_modules, rootTSOutputDir, npmTemplateFiles, outputDirectory);
165
+ }
166
+ return Promise.resolve();
167
+ }
168
+ id = 'npm';
169
+ name = 'NPM Type Modules';
170
+ outputDirectoryName = 'npm';
171
+ dependencies = ['ts', 'ts-source'];
172
+ templates = ['npm'];
173
+ filterGroups = [api_docs_generator_1.CommonFilters, api_docs_generator_1.MarkdownFilters];
174
+ }
175
+ exports.NPMModuleGenerator = NPMModuleGenerator;
176
+ //# sourceMappingURL=NPMModuleGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NPMModuleGenerator.js","sourceRoot":"","sources":["../../src/generators/NPMModuleGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { GeneratorContext, MarkupGenerator, MinecraftRelease } from '@minecraft/api-docs-generator';
2
+ export declare class TypeDocGenerator implements MarkupGenerator {
3
+ generateFiles(context: GeneratorContext, releases: MinecraftRelease[], outputDirectory: string): Promise<void>;
4
+ readonly id: string;
5
+ readonly name: string;
6
+ readonly outputDirectoryName: string;
7
+ readonly dependencies: string[];
8
+ }
@@ -0,0 +1,123 @@
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.TypeDocGenerator = void 0;
32
+ const fs_1 = __importDefault(require("fs"));
33
+ const path_1 = __importDefault(require("path"));
34
+ const api_docs_generator_1 = require("@minecraft/api-docs-generator");
35
+ class TypeDocGenerator {
36
+ async generateFiles(context, releases, outputDirectory) {
37
+ if (releases.length === 0) {
38
+ api_docs_generator_1.Logger.warn(`No releases found, '${this.name}' generation not possible.`);
39
+ return;
40
+ }
41
+ const typeDoc = await Promise.resolve().then(() => __importStar(require('typedoc')));
42
+ const tempTypedocDir = fs_1.default.mkdtempSync('tsconfig');
43
+ const rootTSOutputDir = path_1.default.resolve(context.rootOutputDirectory, context.getGenerator('ts').outputDirectoryName);
44
+ if (!fs_1.default.existsSync(rootTSOutputDir)) {
45
+ api_docs_generator_1.Logger.warn('No TypeScript definitions output, skipping TypeDoc generation.');
46
+ return;
47
+ }
48
+ const tsconfig = {
49
+ compilerOptions: {
50
+ target: 'es2016',
51
+ lib: ['dom', 'dom.iterable', 'esnext'],
52
+ allowJs: true,
53
+ skipLibCheck: true,
54
+ esModuleInterop: true,
55
+ allowSyntheticDefaultImports: true,
56
+ strict: true,
57
+ forceConsistentCasingInFileNames: true,
58
+ noFallthroughCasesInSwitch: true,
59
+ module: 'system',
60
+ outFile: 'minecraft',
61
+ moduleResolution: 'node',
62
+ skipDefaultLibCheck: true,
63
+ jsx: 'react-jsx',
64
+ baseUrl: '../',
65
+ },
66
+ typedocOptions: {
67
+ entryPoints: [],
68
+ out: '',
69
+ excludePrivate: true,
70
+ excludeProtected: true,
71
+ },
72
+ include: [],
73
+ };
74
+ fs_1.default.mkdirSync(outputDirectory, { recursive: true });
75
+ api_docs_generator_1.Logger.info(`Outputting TypeDoc to path: ${outputDirectory} (tempdir: ${tempTypedocDir})`);
76
+ try {
77
+ const typedocReaders = [new typeDoc.TSConfigReader(), new typeDoc.TypeDocReader()];
78
+ const inputDocFilesRaw = api_docs_generator_1.Utils.getFilesRecursively(rootTSOutputDir);
79
+ const inputDocFiles = [];
80
+ for (const docFile of inputDocFilesRaw) {
81
+ inputDocFiles.push(path_1.default.resolve(docFile));
82
+ }
83
+ api_docs_generator_1.Logger.info(`Input TypeDoc files:\n\t${inputDocFiles.join('\n\t')}`);
84
+ tsconfig.typedocOptions.entryPoints = inputDocFiles;
85
+ tsconfig.typedocOptions.out = outputDirectory;
86
+ tsconfig.include = inputDocFiles;
87
+ const tsconfigPath = path_1.default.join(tempTypedocDir, 'tsconfig.json');
88
+ api_docs_generator_1.Logger.debug(`Writing tsconfig to '${tsconfigPath}' with value:\n${JSON.stringify(tsconfig, undefined, 2)}`);
89
+ fs_1.default.writeFileSync(tsconfigPath, JSON.stringify(tsconfig, undefined, 2));
90
+ const app = await typeDoc.Application.bootstrap({
91
+ entryPoints: inputDocFiles,
92
+ disableSources: true,
93
+ tsconfig: tsconfigPath,
94
+ readme: 'none',
95
+ hideGenerator: true,
96
+ name: 'Minecraft',
97
+ validation: {
98
+ invalidLink: true,
99
+ },
100
+ }, typedocReaders);
101
+ const project = await app.convert();
102
+ if (!project) {
103
+ throw new Error('Failed to convert TypeDoc project.');
104
+ }
105
+ await app.generateDocs(project, outputDirectory);
106
+ }
107
+ catch (e) {
108
+ if (e instanceof Error) {
109
+ api_docs_generator_1.Logger.error(`Failed to generate TypeDoc: ${e.message} @ ${e.stack}`);
110
+ }
111
+ }
112
+ finally {
113
+ fs_1.default.rmSync(tempTypedocDir, { recursive: true });
114
+ }
115
+ return Promise.resolve();
116
+ }
117
+ id = 'typedoc';
118
+ name = 'TypeDoc';
119
+ outputDirectoryName = 'typedoc';
120
+ dependencies = ['ts'];
121
+ }
122
+ exports.TypeDocGenerator = TypeDocGenerator;
123
+ //# sourceMappingURL=TypeDocGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeDocGenerator.js","sourceRoot":"","sources":["../../src/generators/TypeDocGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { FilterGroup, GeneratorContext, MarkupGenerator, MinecraftRelease } from '@minecraft/api-docs-generator';
2
+ export declare class TypeScriptDefinitionGenerator implements MarkupGenerator {
3
+ generateFiles(context: GeneratorContext, releases: MinecraftRelease[], outputDirectory: string): Promise<void>;
4
+ readonly id: string;
5
+ readonly name: string;
6
+ readonly outputDirectoryName: string;
7
+ readonly templates: string[];
8
+ readonly filterGroups: FilterGroup[];
9
+ }
@@ -0,0 +1,64 @@
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.TypeScriptDefinitionGenerator = void 0;
9
+ const fs_1 = __importDefault(require("fs"));
10
+ const mustache_1 = __importDefault(require("mustache"));
11
+ const path_1 = __importDefault(require("path"));
12
+ const prettier_1 = __importDefault(require("prettier"));
13
+ const api_docs_generator_1 = require("@minecraft/api-docs-generator");
14
+ class TypeScriptDefinitionGenerator {
15
+ async generateFiles(context, releases, outputDirectory) {
16
+ if (releases.length === 0) {
17
+ api_docs_generator_1.Logger.warn(`No releases found, '${this.name}' generation not possible.`);
18
+ return;
19
+ }
20
+ const { tsdef: tsTemplateFiles } = context.getTemplates(...this.templates);
21
+ for (const moduleJson of releases[0].script_modules) {
22
+ const moduleName = moduleJson.name;
23
+ const moduleVersion = moduleJson.version;
24
+ const dtsTemplateFileData = tsTemplateFiles.readFileAsString('module.mustache');
25
+ const dtsProcessedData = mustache_1.default.render(dtsTemplateFileData, moduleJson, {
26
+ type: tsTemplateFiles.readFileAsString('type.mustache'),
27
+ value: tsTemplateFiles.readFileAsString('value.mustache'),
28
+ function: tsTemplateFiles.readFileAsString('function.mustache'),
29
+ function_declaration: tsTemplateFiles.readFileAsString('function_declaration.mustache'),
30
+ examples: tsTemplateFiles.readFileAsString('examples.mustache'),
31
+ property: tsTemplateFiles.readFileAsString('property.mustache'),
32
+ property_declaration: tsTemplateFiles.readFileAsString('property_declaration.mustache'),
33
+ class: tsTemplateFiles.readFileAsString('class.mustache'),
34
+ enum: tsTemplateFiles.readFileAsString('enum.mustache'),
35
+ module_header: tsTemplateFiles.readFileAsString('module_header.mustache'),
36
+ type_alias: tsTemplateFiles.readFileAsString('type_alias.mustache'),
37
+ function_argument_declaration: tsTemplateFiles.readFileAsString('function_argument_declaration.mustache'),
38
+ });
39
+ const typeScriptFilePath = path_1.default.join(outputDirectory, `${moduleName}@${moduleVersion}.d.ts`);
40
+ const typeScriptFolder = path_1.default.dirname(typeScriptFilePath);
41
+ fs_1.default.mkdirSync(typeScriptFolder, { recursive: true });
42
+ api_docs_generator_1.Logger.info(`Writing TypeScript to disk: ${typeScriptFilePath}`);
43
+ let prettifiedFileData = dtsProcessedData;
44
+ try {
45
+ prettifiedFileData = await prettier_1.default.format(dtsProcessedData, api_docs_generator_1.PRETTIER_CONFIGURATION);
46
+ }
47
+ catch (e) {
48
+ if (e instanceof Error) {
49
+ api_docs_generator_1.Logger.error(`Prettier failed to run for module '${moduleName}': ${e.message}`);
50
+ }
51
+ }
52
+ api_docs_generator_1.Logger.info(`Writing TypeScript to disk: ${typeScriptFilePath}`);
53
+ fs_1.default.writeFileSync(typeScriptFilePath, prettifiedFileData);
54
+ }
55
+ return Promise.resolve();
56
+ }
57
+ id = 'ts';
58
+ name = 'TypeScript Definitions';
59
+ outputDirectoryName = 'typescript';
60
+ templates = ['tsdef'];
61
+ filterGroups = [api_docs_generator_1.CommonFilters, api_docs_generator_1.TypeScriptFilters];
62
+ }
63
+ exports.TypeScriptDefinitionGenerator = TypeScriptDefinitionGenerator;
64
+ //# sourceMappingURL=TypeScriptDefinitionGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeScriptDefinitionGenerator.js","sourceRoot":"","sources":["../../src/generators/TypeScriptDefinitionGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { FilterGroup, GeneratorContext, MarkupGenerator, MinecraftRelease } from '@minecraft/api-docs-generator';
2
+ export declare const TypeScriptSourceFilters: FilterGroup;
3
+ export declare class TypeScriptGenerator implements MarkupGenerator {
4
+ generateFiles(context: GeneratorContext, releases: MinecraftRelease[], outputDirectory: string): Promise<void>;
5
+ readonly id: string;
6
+ readonly name: string;
7
+ readonly outputDirectoryName: string;
8
+ readonly templates: string[];
9
+ readonly filterGroups: FilterGroup[];
10
+ }
@@ -0,0 +1,128 @@
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.TypeScriptGenerator = exports.TypeScriptSourceFilters = void 0;
9
+ const fs_1 = __importDefault(require("fs"));
10
+ const mustache_1 = __importDefault(require("mustache"));
11
+ const path_1 = __importDefault(require("path"));
12
+ const prettier_1 = __importDefault(require("prettier"));
13
+ const api_docs_generator_1 = require("@minecraft/api-docs-generator");
14
+ function processDataItemsForTemplating(releases) {
15
+ for (const release of releases) {
16
+ for (const vanillaModule of release.vanilla_data_modules) {
17
+ let hasProperties = false;
18
+ for (const dataItem of vanillaModule.data_items) {
19
+ const nameString = dataItem.name;
20
+ const namespaceEndIndex = nameString.indexOf(':');
21
+ if (namespaceEndIndex !== -1) {
22
+ dataItem.namespace = nameString.slice(0, namespaceEndIndex);
23
+ }
24
+ dataItem.no_namespace_name = nameString.slice(namespaceEndIndex + 1);
25
+ dataItem.standardized_name = dataItem.no_namespace_name
26
+ .split('_')
27
+ .map(segment => `${segment.charAt(0).toUpperCase()}${segment.slice(1)}`)
28
+ .join('');
29
+ if (!dataItem.value || dataItem.value.trim().length === 0) {
30
+ dataItem.value = dataItem.name;
31
+ }
32
+ if (dataItem.properties && dataItem.properties.length) {
33
+ dataItem.state_union = dataItem.properties.map(property => `"${property.name}"`).join(' | ');
34
+ hasProperties = true;
35
+ }
36
+ }
37
+ vanillaModule.has_properties = hasProperties;
38
+ }
39
+ }
40
+ }
41
+ function enumNameMapping(releases) {
42
+ for (const release of releases) {
43
+ for (const vanillaModule of release.vanilla_data_modules) {
44
+ const dataName = vanillaModule.vanilla_data_type;
45
+ vanillaModule.display_type = `${dataName.charAt(0).toUpperCase()}${dataName.slice(1)}`;
46
+ vanillaModule.display_name = `Minecraft${vanillaModule.display_type}Types`;
47
+ }
48
+ }
49
+ }
50
+ function mapNativeTypeToTS(type) {
51
+ switch (type) {
52
+ case 'int':
53
+ return 'number';
54
+ case 'float':
55
+ return 'number';
56
+ case 'bool':
57
+ return 'boolean';
58
+ case 'string':
59
+ return 'string';
60
+ }
61
+ throw new Error(`Unknown native type: ${type}. Update type mapping and ensure new type generation is correct.`);
62
+ }
63
+ function isBlockModuleData(data) {
64
+ return data.vanilla_data_type === 'block';
65
+ }
66
+ function processDataPropertiesForTemplating(releases) {
67
+ for (const release of releases) {
68
+ for (const vanillaModule of release.vanilla_data_modules) {
69
+ if (isBlockModuleData(vanillaModule)) {
70
+ const propertyNames = [];
71
+ vanillaModule.block_properties.forEach(property => {
72
+ property.property_type = mapNativeTypeToTS(property.type);
73
+ propertyNames.push(property.property_name);
74
+ });
75
+ vanillaModule.data_properties = vanillaModule.block_properties;
76
+ }
77
+ }
78
+ }
79
+ }
80
+ exports.TypeScriptSourceFilters = {
81
+ id: 'ts-source',
82
+ filtersBeforeCommon: [
83
+ ['process_data_items_for_templating', processDataItemsForTemplating],
84
+ ['enum_name_mapping', enumNameMapping],
85
+ ['process_data_properties_for_templating', processDataPropertiesForTemplating],
86
+ ],
87
+ };
88
+ class TypeScriptGenerator {
89
+ async generateFiles(context, releases, outputDirectory) {
90
+ if (releases.length === 0) {
91
+ api_docs_generator_1.Logger.warn(`No releases found, '${this.name}' generation not possible.`);
92
+ return;
93
+ }
94
+ const { ts: tsSourceTemplateFiles } = context.getTemplates(...this.templates);
95
+ for (const moduleJson of releases[0].vanilla_data_modules) {
96
+ const dataName = moduleJson.name;
97
+ const minecraftVersion = moduleJson.minecraft_version;
98
+ const tsTemplateFileData = tsSourceTemplateFiles.readFileAsString('module.mustache');
99
+ const tsProcessedData = mustache_1.default.render(tsTemplateFileData, moduleJson, {
100
+ module_header: tsSourceTemplateFiles.readFileAsString('module_header.mustache'),
101
+ data_items_enum: tsSourceTemplateFiles.readFileAsString('data_items_enum.mustache'),
102
+ state_mapping: tsSourceTemplateFiles.readFileAsString('state_mapping.mustache'),
103
+ });
104
+ const typeScriptFilePath = path_1.default.join(outputDirectory, minecraftVersion, `${dataName}.ts`);
105
+ const typeScriptFolder = path_1.default.dirname(typeScriptFilePath);
106
+ fs_1.default.mkdirSync(typeScriptFolder, { recursive: true });
107
+ let prettifiedFileData = tsProcessedData;
108
+ try {
109
+ prettifiedFileData = await prettier_1.default.format(tsProcessedData, api_docs_generator_1.PRETTIER_CONFIGURATION);
110
+ }
111
+ catch (e) {
112
+ if (e instanceof Error) {
113
+ api_docs_generator_1.Logger.error(`Prettier failed to run for module '${dataName}': ${e.message}`);
114
+ }
115
+ }
116
+ api_docs_generator_1.Logger.info(`Writing TypeScript to disk: ${typeScriptFilePath}`);
117
+ fs_1.default.writeFileSync(typeScriptFilePath, prettifiedFileData);
118
+ }
119
+ return Promise.resolve();
120
+ }
121
+ id = 'ts-source';
122
+ name = 'TypeScript Source';
123
+ outputDirectoryName = 'ts-source';
124
+ templates = ['ts'];
125
+ filterGroups = [api_docs_generator_1.CommonFilters, exports.TypeScriptSourceFilters, api_docs_generator_1.TypeScriptFilters];
126
+ }
127
+ exports.TypeScriptGenerator = TypeScriptGenerator;
128
+ //# sourceMappingURL=TypeScriptGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeScriptGenerator.js","sourceRoot":"","sources":["../../src/generators/TypeScriptGenerator.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;;;AAElC,4CAAoB;AACpB,wDAAgC;AAChC,gDAAwB;AACxB,wDAAgC;AAEhC,sEAWuC;AAEvC,SAAS,6BAA6B,CAAC,QAA4B;IAC/D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC7B,KAAK,MAAM,aAAa,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;YACvD,IAAI,aAAa,GAAG,KAAK,CAAC;YAC1B,KAAK,MAAM,QAAQ,IAAI,aAAa,CAAC,UAAU,EAAE,CAAC;gBAC9C,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC;gBACjC,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAClD,IAAI,iBAAiB,KAAK,CAAC,CAAC,EAAE,CAAC;oBAC3B,QAAQ,CAAC,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;gBAChE,CAAC;gBAED,QAAQ,CAAC,iBAAiB,GAAG,UAAU,CAAC,KAAK,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;gBACrE,QAAQ,CAAC,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB;qBAClD,KAAK,CAAC,GAAG,CAAC;qBACV,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;qBACvE,IAAI,CAAC,EAAE,CAAC,CAAC;gBAEd,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACxD,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC;gBACnC,CAAC;gBAED,IAAI,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;oBACpD,QAAQ,CAAC,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC7F,aAAa,GAAG,IAAI,CAAC;gBACzB,CAAC;YACL,CAAC;YAED,aAAa,CAAC,cAAc,GAAG,aAAa,CAAC;QACjD,CAAC;IACL,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CAAC,QAA4B;IACjD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC7B,KAAK,MAAM,aAAa,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;YACvD,MAAM,QAAQ,GAAG,aAAa,CAAC,iBAAiB,CAAC;YAEjD,aAAa,CAAC,YAAY,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACvF,aAAa,CAAC,YAAY,GAAG,YAAY,aAAa,CAAC,YAAY,OAAO,CAAC;QAC/E,CAAC;IACL,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACnC,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,KAAK;YACN,OAAO,QAAQ,CAAC;QACpB,KAAK,OAAO;YACR,OAAO,QAAQ,CAAC;QACpB,KAAK,MAAM;YACP,OAAO,SAAS,CAAC;QACrB,KAAK,QAAQ;YACT,OAAO,QAAQ,CAAC;IACxB,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,kEAAkE,CAAC,CAAC;AACpH,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAgC;IACvD,OAAO,IAAI,CAAC,iBAAiB,KAAK,OAAO,CAAC;AAC9C,CAAC;AAED,SAAS,kCAAkC,CAAC,QAA4B;IACpE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC7B,KAAK,MAAM,aAAa,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;YACvD,IAAI,iBAAiB,CAAC,aAAa,CAAC,EAAE,CAAC;gBACnC,MAAM,aAAa,GAAG,EAAE,CAAC;gBACzB,aAAa,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;oBAC9C,QAAQ,CAAC,aAAa,GAAG,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBAC1D,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;gBAC/C,CAAC,CAAC,CAAC;gBAEH,aAAa,CAAC,eAAe,GAAG,aAAa,CAAC,gBAAgB,CAAC;YACnE,CAAC;QACL,CAAC;IACL,CAAC;AACL,CAAC;AAEY,QAAA,uBAAuB,GAAgB;IAChD,EAAE,EAAE,WAAW;IACf,mBAAmB,EAAE;QACjB,CAAC,mCAAmC,EAAE,6BAA6B,CAAC;QACpE,CAAC,mBAAmB,EAAE,eAAe,CAAC;QACtC,CAAC,wCAAwC,EAAE,kCAAkC,CAAC;KACjF;CACJ,CAAC;AAEF,MAAa,mBAAmB;IAC5B,KAAK,CAAC,aAAa,CACf,OAAyB,EACzB,QAA4B,EAC5B,eAAuB;QAEvB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,2BAAM,CAAC,IAAI,CAAC,uBAAuB,IAAI,CAAC,IAAI,4BAA4B,CAAC,CAAC;YAC1E,OAAO;QACX,CAAC;QAED,MAAM,EAAE,EAAE,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;QAE9E,KAAK,MAAM,UAAU,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,oBAAoB,EAAE,CAAC;YACxD,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC;YACjC,MAAM,gBAAgB,GAAG,UAAU,CAAC,iBAAiB,CAAC;YAEtD,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;YACrF,MAAM,eAAe,GAAG,kBAAQ,CAAC,MAAM,CAAC,kBAAkB,EAAE,UAAU,EAAE;gBACpE,aAAa,EAAE,qBAAqB,CAAC,gBAAgB,CAAC,wBAAwB,CAAC;gBAC/E,eAAe,EAAE,qBAAqB,CAAC,gBAAgB,CAAC,0BAA0B,CAAC;gBACnF,aAAa,EAAE,qBAAqB,CAAC,gBAAgB,CAAC,wBAAwB,CAAC;aAClF,CAAC,CAAC;YAEH,MAAM,kBAAkB,GAAG,cAAI,CAAC,IAAI,CAAC,eAAe,EAAE,gBAAgB,EAAE,GAAG,QAAQ,KAAK,CAAC,CAAC;YAC1F,MAAM,gBAAgB,GAAG,cAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;YAC1D,YAAE,CAAC,SAAS,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAEpD,IAAI,kBAAkB,GAAG,eAAe,CAAC;YACzC,IAAI,CAAC;gBACD,kBAAkB,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,2CAAsB,CAAC,CAAC;YACxF,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;oBACrB,2BAAM,CAAC,KAAK,CAAC,sCAAsC,QAAQ,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBAClF,CAAC;YACL,CAAC;YAED,2BAAM,CAAC,IAAI,CAAC,+BAA+B,kBAAkB,EAAE,CAAC,CAAC;YACjE,YAAE,CAAC,aAAa,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;QAC7D,CAAC;QAED,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEQ,EAAE,GAAW,WAAW,CAAC;IACzB,IAAI,GAAW,mBAAmB,CAAC;IACnC,mBAAmB,GAAW,WAAW,CAAC;IAE1C,SAAS,GAAa,CAAC,IAAI,CAAC,CAAC;IAC7B,YAAY,GAAkB,CAAC,kCAAa,EAAE,+BAAuB,EAAE,sCAAiB,CAAC,CAAC;CACtG;AAlDD,kDAkDC"}
@@ -0,0 +1,7 @@
1
+ export * from './ChangelogJSONGenerator';
2
+ export * from './ChangelogMDGenerator';
3
+ export * from './MSDocsMarkdownGenerator';
4
+ export * from './NPMModuleGenerator';
5
+ export * from './TypeDocGenerator';
6
+ export * from './TypeScriptDefinitionGenerator';
7
+ export * from './TypeScriptGenerator';