@aircast-4g/mavlink 1.0.1

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 (171) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +632 -0
  3. package/dist/batch-processor.d.ts +17 -0
  4. package/dist/batch-processor.d.ts.map +1 -0
  5. package/dist/batch-processor.js +141 -0
  6. package/dist/batch-processor.js.map +1 -0
  7. package/dist/cli.d.ts +3 -0
  8. package/dist/cli.d.ts.map +1 -0
  9. package/dist/cli.js +174 -0
  10. package/dist/cli.js.map +1 -0
  11. package/dist/generator/batch-processor.d.ts +17 -0
  12. package/dist/generator/batch-processor.d.ts.map +1 -0
  13. package/dist/generator/batch-processor.js +141 -0
  14. package/dist/generator/batch-processor.js.map +1 -0
  15. package/dist/generator/generator.d.ts +15 -0
  16. package/dist/generator/generator.d.ts.map +1 -0
  17. package/dist/generator/generator.js +92 -0
  18. package/dist/generator/generator.js.map +1 -0
  19. package/dist/generator/template-engine.d.ts +13 -0
  20. package/dist/generator/template-engine.d.ts.map +1 -0
  21. package/dist/generator/template-engine.js +220 -0
  22. package/dist/generator/template-engine.js.map +1 -0
  23. package/dist/generator/type-converter.d.ts +15 -0
  24. package/dist/generator/type-converter.d.ts.map +1 -0
  25. package/dist/generator/type-converter.js +179 -0
  26. package/dist/generator/type-converter.js.map +1 -0
  27. package/dist/generator/xml-parser.d.ts +13 -0
  28. package/dist/generator/xml-parser.d.ts.map +1 -0
  29. package/dist/generator/xml-parser.js +170 -0
  30. package/dist/generator/xml-parser.js.map +1 -0
  31. package/dist/generator.d.ts +15 -0
  32. package/dist/generator.d.ts.map +1 -0
  33. package/dist/generator.js +92 -0
  34. package/dist/generator.js.map +1 -0
  35. package/dist/index.d.ts +8 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +37 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/parser/crc.d.ts +7 -0
  40. package/dist/parser/crc.d.ts.map +1 -0
  41. package/dist/parser/crc.js +182 -0
  42. package/dist/parser/crc.js.map +1 -0
  43. package/dist/parser/frame-parser.d.ts +15 -0
  44. package/dist/parser/frame-parser.d.ts.map +1 -0
  45. package/dist/parser/frame-parser.js +82 -0
  46. package/dist/parser/frame-parser.js.map +1 -0
  47. package/dist/parser/index.d.ts +6 -0
  48. package/dist/parser/index.d.ts.map +1 -0
  49. package/dist/parser/index.js +28 -0
  50. package/dist/parser/index.js.map +1 -0
  51. package/dist/parser/mavlink-parser.d.ts +35 -0
  52. package/dist/parser/mavlink-parser.d.ts.map +1 -0
  53. package/dist/parser/mavlink-parser.js +204 -0
  54. package/dist/parser/mavlink-parser.js.map +1 -0
  55. package/dist/parser/message-decoder.d.ts +11 -0
  56. package/dist/parser/message-decoder.d.ts.map +1 -0
  57. package/dist/parser/message-decoder.js +247 -0
  58. package/dist/parser/message-decoder.js.map +1 -0
  59. package/dist/parser/types.d.ts +59 -0
  60. package/dist/parser/types.d.ts.map +1 -0
  61. package/dist/parser/types.js +13 -0
  62. package/dist/parser/types.js.map +1 -0
  63. package/dist/template-engine.d.ts +13 -0
  64. package/dist/template-engine.d.ts.map +1 -0
  65. package/dist/template-engine.js +220 -0
  66. package/dist/template-engine.js.map +1 -0
  67. package/dist/type-converter.d.ts +15 -0
  68. package/dist/type-converter.d.ts.map +1 -0
  69. package/dist/type-converter.js +179 -0
  70. package/dist/type-converter.js.map +1 -0
  71. package/dist/types.d.ts +110 -0
  72. package/dist/types.d.ts.map +1 -0
  73. package/dist/types.js +3 -0
  74. package/dist/types.js.map +1 -0
  75. package/dist/xml-parser.d.ts +13 -0
  76. package/dist/xml-parser.d.ts.map +1 -0
  77. package/dist/xml-parser.js +170 -0
  78. package/dist/xml-parser.js.map +1 -0
  79. package/package.json +105 -0
  80. package/types/ardupilotmega/enums.d.ts +2427 -0
  81. package/types/ardupilotmega/enums.d.ts.map +1 -0
  82. package/types/ardupilotmega/enums.js +4636 -0
  83. package/types/ardupilotmega/enums.js.map +1 -0
  84. package/types/ardupilotmega/enums.ts +4631 -0
  85. package/types/ardupilotmega/index.d.ts +4 -0
  86. package/types/ardupilotmega/index.d.ts.map +1 -0
  87. package/types/ardupilotmega/index.js +22 -0
  88. package/types/ardupilotmega/index.js.map +1 -0
  89. package/types/ardupilotmega/index.ts +6 -0
  90. package/types/ardupilotmega/messages.d.ts +3719 -0
  91. package/types/ardupilotmega/messages.d.ts.map +1 -0
  92. package/types/ardupilotmega/messages.js +1281 -0
  93. package/types/ardupilotmega/messages.js.map +1 -0
  94. package/types/ardupilotmega/messages.ts +8088 -0
  95. package/types/ardupilotmega/types.d.ts +221 -0
  96. package/types/ardupilotmega/types.d.ts.map +1 -0
  97. package/types/ardupilotmega/types.js +5 -0
  98. package/types/ardupilotmega/types.js.map +1 -0
  99. package/types/ardupilotmega/types.ts +2833 -0
  100. package/types/common/enums.d.ts +1843 -0
  101. package/types/common/enums.d.ts.map +1 -0
  102. package/types/common/enums.js +3636 -0
  103. package/types/common/enums.js.map +1 -0
  104. package/types/common/enums.ts +3632 -0
  105. package/types/common/index.d.ts +4 -0
  106. package/types/common/index.d.ts.map +1 -0
  107. package/types/common/index.js +21 -0
  108. package/types/common/index.js.map +1 -0
  109. package/types/common/index.ts +6 -0
  110. package/types/common/messages.d.ts +2805 -0
  111. package/types/common/messages.d.ts.map +1 -0
  112. package/types/common/messages.js +920 -0
  113. package/types/common/messages.js.map +1 -0
  114. package/types/common/messages.ts +6114 -0
  115. package/types/common/types.d.ts +157 -0
  116. package/types/common/types.d.ts.map +1 -0
  117. package/types/common/types.js +4 -0
  118. package/types/common/types.js.map +1 -0
  119. package/types/common/types.ts +2159 -0
  120. package/types/minimal/enums.d.ts +244 -0
  121. package/types/minimal/enums.d.ts.map +1 -0
  122. package/types/minimal/enums.js +496 -0
  123. package/types/minimal/enums.js.map +1 -0
  124. package/types/minimal/enums.ts +494 -0
  125. package/types/minimal/index.d.ts +4 -0
  126. package/types/minimal/index.d.ts.map +1 -0
  127. package/types/minimal/index.js +21 -0
  128. package/types/minimal/index.js.map +1 -0
  129. package/types/minimal/index.ts +6 -0
  130. package/types/minimal/messages.d.ts +25 -0
  131. package/types/minimal/messages.d.ts.map +1 -0
  132. package/types/minimal/messages.js +12 -0
  133. package/types/minimal/messages.js.map +1 -0
  134. package/types/minimal/messages.ts +62 -0
  135. package/types/minimal/types.d.ts +14 -0
  136. package/types/minimal/types.d.ts.map +1 -0
  137. package/types/minimal/types.js +4 -0
  138. package/types/minimal/types.js.map +1 -0
  139. package/types/minimal/types.ts +272 -0
  140. package/types/paparazzi/enums.ts +3632 -0
  141. package/types/paparazzi/index.ts +6 -0
  142. package/types/paparazzi/messages.ts +6185 -0
  143. package/types/paparazzi/types.ts +2159 -0
  144. package/types/python_array_test/enums.ts +3632 -0
  145. package/types/python_array_test/index.ts +6 -0
  146. package/types/python_array_test/messages.ts +6258 -0
  147. package/types/python_array_test/types.ts +2159 -0
  148. package/types/standard/enums.d.ts +248 -0
  149. package/types/standard/enums.d.ts.map +1 -0
  150. package/types/standard/enums.js +505 -0
  151. package/types/standard/enums.js.map +1 -0
  152. package/types/standard/enums.ts +502 -0
  153. package/types/standard/index.d.ts +4 -0
  154. package/types/standard/index.d.ts.map +1 -0
  155. package/types/standard/index.js +22 -0
  156. package/types/standard/index.js.map +1 -0
  157. package/types/standard/index.ts +6 -0
  158. package/types/standard/messages.d.ts +25 -0
  159. package/types/standard/messages.d.ts.map +1 -0
  160. package/types/standard/messages.js +13 -0
  161. package/types/standard/messages.js.map +1 -0
  162. package/types/standard/messages.ts +63 -0
  163. package/types/standard/types.d.ts +15 -0
  164. package/types/standard/types.d.ts.map +1 -0
  165. package/types/standard/types.js +5 -0
  166. package/types/standard/types.js.map +1 -0
  167. package/types/standard/types.ts +278 -0
  168. package/types/test/enums.ts +2 -0
  169. package/types/test/index.ts +6 -0
  170. package/types/test/messages.ts +69 -0
  171. package/types/test/types.ts +11 -0
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BatchProcessor = void 0;
7
+ const fs_1 = require("fs");
8
+ const path_1 = require("path");
9
+ const node_fetch_1 = __importDefault(require("node-fetch"));
10
+ const generator_1 = require("./generator");
11
+ class BatchProcessor {
12
+ constructor() {
13
+ this.generator = new generator_1.MAVLinkGenerator();
14
+ }
15
+ async processAllDialects(options) {
16
+ console.log('Fetching list of available dialects...');
17
+ // Get list of XML files from GitHub API
18
+ const response = await (0, node_fetch_1.default)(BatchProcessor.MAVLINK_DIALECTS_URL);
19
+ if (!response.ok) {
20
+ throw new Error(`Failed to fetch dialects list: ${response.statusText}`);
21
+ }
22
+ const files = await response.json();
23
+ const xmlFiles = files.filter(file => file.name.endsWith('.xml'));
24
+ console.log(`Found ${xmlFiles.length} dialect files to process`);
25
+ // Create main output directory
26
+ await fs_1.promises.mkdir(options.outputDir, { recursive: true });
27
+ // Process each dialect
28
+ const processedDialects = [];
29
+ for (const file of xmlFiles) {
30
+ const dialectName = file.name.replace('.xml', '').toLowerCase().replace('_', '');
31
+ const dialectOutputDir = (0, path_1.join)(options.outputDir, dialectName);
32
+ console.log(`Processing ${file.name}...`);
33
+ try {
34
+ const generationOptions = {
35
+ dialectName,
36
+ outputFormat: options.dialectFormat,
37
+ includeEnums: options.includeEnums,
38
+ includeTypeGuards: options.includeTypeGuards
39
+ };
40
+ await this.generator.generateFromURL(file.download_url, dialectOutputDir, generationOptions);
41
+ processedDialects.push(dialectName);
42
+ // Reset parser state for next dialect
43
+ this.generator.reset();
44
+ }
45
+ catch (error) {
46
+ console.error(`Failed to process ${file.name}:`, error);
47
+ }
48
+ }
49
+ // Generate main index file
50
+ await this.generateMainIndex(options.outputDir, processedDialects);
51
+ console.log(`Successfully processed ${processedDialects.length} dialects`);
52
+ }
53
+ async processSpecificDialects(dialectNames, options) {
54
+ console.log(`Processing ${dialectNames.length} specific dialects...`);
55
+ // Create main output directory
56
+ await fs_1.promises.mkdir(options.outputDir, { recursive: true });
57
+ const processedDialects = [];
58
+ for (const dialectName of dialectNames) {
59
+ const xmlFileName = `${dialectName}.xml`;
60
+ const dialectUrl = `${BatchProcessor.MAVLINK_RAW_BASE_URL}/${xmlFileName}`;
61
+ const dialectOutputDir = (0, path_1.join)(options.outputDir, dialectName.toLowerCase());
62
+ console.log(`Processing ${dialectName}...`);
63
+ try {
64
+ const generationOptions = {
65
+ dialectName: dialectName.toLowerCase(),
66
+ outputFormat: options.dialectFormat,
67
+ includeEnums: options.includeEnums,
68
+ includeTypeGuards: options.includeTypeGuards
69
+ };
70
+ await this.generator.generateFromURL(dialectUrl, dialectOutputDir, generationOptions);
71
+ processedDialects.push(dialectName.toLowerCase());
72
+ // Reset parser state for next dialect
73
+ this.generator.reset();
74
+ }
75
+ catch (error) {
76
+ console.error(`Failed to process ${dialectName}:`, error);
77
+ }
78
+ }
79
+ // Generate main index file
80
+ await this.generateMainIndex(options.outputDir, processedDialects);
81
+ console.log(`Successfully processed ${processedDialects.length} dialects`);
82
+ }
83
+ async generateMainIndex(outputDir, dialectNames) {
84
+ const indexContent = `// Auto-generated TypeScript dialects index
85
+ // Exports all available dialects
86
+
87
+ ${dialectNames.map(name => `export * as ${name} from './${name}';`).join('\n')}
88
+
89
+ // Convenience re-exports
90
+ export { MAVLinkMessage, MessageTypeMap, AnyMessage } from './common/types';
91
+ `;
92
+ await fs_1.promises.writeFile((0, path_1.join)(outputDir, 'index.ts'), indexContent);
93
+ console.log(`Generated main index file with ${dialectNames.length} dialects`);
94
+ }
95
+ async generatePackageJson(outputDir, version = '1.0.0') {
96
+ const packageJson = {
97
+ name: 'mavlink-types',
98
+ version,
99
+ description: 'Auto-generated TypeScript types for MAVLink dialects',
100
+ main: 'index.js',
101
+ types: 'index.d.ts',
102
+ files: ['**/*.ts', '**/*.js', '**/*.d.ts'],
103
+ keywords: ['mavlink', 'typescript', 'types', 'drone', 'autopilot'],
104
+ license: 'MIT',
105
+ repository: {
106
+ type: 'git',
107
+ url: 'https://github.com/mavlink/mavlink'
108
+ },
109
+ scripts: {
110
+ build: 'tsc',
111
+ prepublishOnly: 'npm run build'
112
+ },
113
+ devDependencies: {
114
+ typescript: '^5.0.0'
115
+ }
116
+ };
117
+ await fs_1.promises.writeFile((0, path_1.join)(outputDir, 'package.json'), JSON.stringify(packageJson, null, 2));
118
+ // Also generate a basic tsconfig.json
119
+ const tsConfig = {
120
+ compilerOptions: {
121
+ target: 'ES2020',
122
+ module: 'commonjs',
123
+ declaration: true,
124
+ outDir: './dist',
125
+ rootDir: './',
126
+ strict: true,
127
+ esModuleInterop: true,
128
+ skipLibCheck: true,
129
+ forceConsistentCasingInFileNames: true
130
+ },
131
+ include: ['**/*.ts'],
132
+ exclude: ['node_modules', 'dist']
133
+ };
134
+ await fs_1.promises.writeFile((0, path_1.join)(outputDir, 'tsconfig.json'), JSON.stringify(tsConfig, null, 2));
135
+ console.log('Generated package.json and tsconfig.json');
136
+ }
137
+ }
138
+ exports.BatchProcessor = BatchProcessor;
139
+ BatchProcessor.MAVLINK_DIALECTS_URL = 'https://api.github.com/repos/mavlink/mavlink/contents/message_definitions/v1.0';
140
+ BatchProcessor.MAVLINK_RAW_BASE_URL = 'https://raw.githubusercontent.com/mavlink/mavlink/master/message_definitions/v1.0';
141
+ //# sourceMappingURL=batch-processor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-processor.js","sourceRoot":"","sources":["../src/batch-processor.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/dist/cli.js ADDED
@@ -0,0 +1,174 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ const commander_1 = require("commander");
38
+ const generator_1 = require("./generator/generator");
39
+ const batch_processor_1 = require("./generator/batch-processor");
40
+ const fs_1 = require("fs");
41
+ const program = new commander_1.Command();
42
+ program
43
+ .name('aircast-mavlink')
44
+ .description('Aircast MAVLink TypeScript type generator')
45
+ .version('1.0.0');
46
+ program
47
+ .command('generate')
48
+ .description('Generate TypeScript types from a MAVLink XML dialect')
49
+ .option('-i, --input <path>', 'Input XML file path or URL')
50
+ .option('-o, --output <path>', 'Output directory path', './types')
51
+ .option('-n, --name <name>', 'Dialect name (auto-detected if not provided)')
52
+ .option('-f, --format <format>', 'Output format: single or separate', 'separate')
53
+ .option('--no-enums', 'Skip enum generation')
54
+ .option('--no-type-guards', 'Skip type guard generation')
55
+ .action(async (options) => {
56
+ try {
57
+ if (!options.input) {
58
+ console.error('Error: Input file or URL is required');
59
+ process.exit(1);
60
+ }
61
+ const generator = new generator_1.MAVLinkGenerator();
62
+ const dialectName = options.name || extractDialectName(options.input);
63
+ const generationOptions = {
64
+ dialectName,
65
+ outputFormat: options.format,
66
+ includeEnums: options.enums !== false,
67
+ includeTypeGuards: options.typeGuards !== false
68
+ };
69
+ console.log(`Generating TypeScript types for ${dialectName}...`);
70
+ console.log(`Input: ${options.input}`);
71
+ console.log(`Output: ${options.output}`);
72
+ console.log(`Format: ${generationOptions.outputFormat}`);
73
+ if (options.input.startsWith('http')) {
74
+ await generator.generateFromURL(options.input, options.output, generationOptions);
75
+ }
76
+ else {
77
+ if (!(0, fs_1.existsSync)(options.input)) {
78
+ console.error(`Error: Input file does not exist: ${options.input}`);
79
+ process.exit(1);
80
+ }
81
+ await generator.generateFromFile(options.input, options.output, generationOptions);
82
+ }
83
+ console.log('✅ Generation completed successfully!');
84
+ }
85
+ catch (error) {
86
+ console.error('❌ Generation failed:', error);
87
+ process.exit(1);
88
+ }
89
+ });
90
+ program
91
+ .command('batch')
92
+ .description('Generate TypeScript types for multiple MAVLink dialects')
93
+ .option('-o, --output <path>', 'Output directory path', './mavlink-types')
94
+ .option('-d, --dialects <dialects>', 'Comma-separated list of dialect names (generates all if not specified)')
95
+ .option('-f, --format <format>', 'Output format: single or separate', 'separate')
96
+ .option('--no-enums', 'Skip enum generation')
97
+ .option('--no-type-guards', 'Skip type guard generation')
98
+ .option('--package', 'Generate package.json and tsconfig.json')
99
+ .action(async (options) => {
100
+ try {
101
+ const processor = new batch_processor_1.BatchProcessor();
102
+ const processorOptions = {
103
+ outputDir: options.output,
104
+ dialectFormat: options.format,
105
+ includeEnums: options.enums !== false,
106
+ includeTypeGuards: options.typeGuards !== false
107
+ };
108
+ console.log(`Generating TypeScript types for MAVLink dialects...`);
109
+ console.log(`Output directory: ${options.output}`);
110
+ console.log(`Format: ${processorOptions.dialectFormat}`);
111
+ if (options.dialects) {
112
+ const dialectNames = options.dialects.split(',').map((name) => name.trim());
113
+ console.log(`Processing specific dialects: ${dialectNames.join(', ')}`);
114
+ await processor.processSpecificDialects(dialectNames, processorOptions);
115
+ }
116
+ else {
117
+ console.log('Processing all available dialects...');
118
+ await processor.processAllDialects(processorOptions);
119
+ }
120
+ if (options.package) {
121
+ await processor.generatePackageJson(options.output);
122
+ }
123
+ console.log('✅ Batch generation completed successfully!');
124
+ }
125
+ catch (error) {
126
+ console.error('❌ Batch generation failed:', error);
127
+ process.exit(1);
128
+ }
129
+ });
130
+ program
131
+ .command('list')
132
+ .description('List available MAVLink dialects')
133
+ .action(async () => {
134
+ try {
135
+ console.log('Fetching available MAVLink dialects...');
136
+ const fetch = (await Promise.resolve().then(() => __importStar(require('node-fetch')))).default;
137
+ const response = await fetch('https://api.github.com/repos/mavlink/mavlink/contents/message_definitions/v1.0');
138
+ if (!response.ok) {
139
+ throw new Error(`Failed to fetch dialects: ${response.statusText}`);
140
+ }
141
+ const files = await response.json();
142
+ const dialects = files
143
+ .filter(file => file.name.endsWith('.xml'))
144
+ .map(file => file.name.replace('.xml', ''))
145
+ .sort();
146
+ console.log('\nAvailable MAVLink dialects:');
147
+ console.log('==========================');
148
+ dialects.forEach(dialect => {
149
+ console.log(` ${dialect}`);
150
+ });
151
+ console.log(`\nTotal: ${dialects.length} dialects`);
152
+ }
153
+ catch (error) {
154
+ console.error('❌ Failed to fetch dialects list:', error);
155
+ process.exit(1);
156
+ }
157
+ });
158
+ function extractDialectName(input) {
159
+ // Extract dialect name from file path or URL
160
+ const parts = input.split('/');
161
+ const filename = parts[parts.length - 1];
162
+ return filename.replace('.xml', '').toLowerCase().replace('_', '');
163
+ }
164
+ // Handle uncaught errors
165
+ process.on('unhandledRejection', (reason, promise) => {
166
+ console.error('Unhandled Rejection at:', promise, 'reason:', reason);
167
+ process.exit(1);
168
+ });
169
+ process.on('uncaughtException', (error) => {
170
+ console.error('Uncaught Exception:', error);
171
+ process.exit(1);
172
+ });
173
+ program.parse();
174
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export interface BatchProcessorOptions {
2
+ outputDir: string;
3
+ dialectFormat: 'single' | 'separate';
4
+ includeEnums: boolean;
5
+ includeTypeGuards: boolean;
6
+ }
7
+ export declare class BatchProcessor {
8
+ private generator;
9
+ private static readonly MAVLINK_DIALECTS_URL;
10
+ private static readonly MAVLINK_RAW_BASE_URL;
11
+ constructor();
12
+ processAllDialects(options: BatchProcessorOptions): Promise<void>;
13
+ processSpecificDialects(dialectNames: string[], options: BatchProcessorOptions): Promise<void>;
14
+ private generateMainIndex;
15
+ generatePackageJson(outputDir: string, version?: string): Promise<void>;
16
+ }
17
+ //# sourceMappingURL=batch-processor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-processor.d.ts","sourceRoot":"","sources":["../../src/generator/batch-processor.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,QAAQ,GAAG,UAAU,CAAC;IACrC,YAAY,EAAE,OAAO,CAAC;IACtB,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAoF;IAChI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAuF;;IAM7H,kBAAkB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiDjE,uBAAuB,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;YAsCtF,iBAAiB;IAczB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,MAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CAoDvF"}
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BatchProcessor = void 0;
7
+ const fs_1 = require("fs");
8
+ const path_1 = require("path");
9
+ const node_fetch_1 = __importDefault(require("node-fetch"));
10
+ const generator_1 = require("./generator");
11
+ class BatchProcessor {
12
+ constructor() {
13
+ this.generator = new generator_1.MAVLinkGenerator();
14
+ }
15
+ async processAllDialects(options) {
16
+ console.log('Fetching list of available dialects...');
17
+ // Get list of XML files from GitHub API
18
+ const response = await (0, node_fetch_1.default)(BatchProcessor.MAVLINK_DIALECTS_URL);
19
+ if (!response.ok) {
20
+ throw new Error(`Failed to fetch dialects list: ${response.statusText}`);
21
+ }
22
+ const files = await response.json();
23
+ const xmlFiles = files.filter(file => file.name.endsWith('.xml'));
24
+ console.log(`Found ${xmlFiles.length} dialect files to process`);
25
+ // Create main output directory
26
+ await fs_1.promises.mkdir(options.outputDir, { recursive: true });
27
+ // Process each dialect
28
+ const processedDialects = [];
29
+ for (const file of xmlFiles) {
30
+ const dialectName = file.name.replace('.xml', '').toLowerCase().replace('_', '');
31
+ const dialectOutputDir = (0, path_1.join)(options.outputDir, dialectName);
32
+ console.log(`Processing ${file.name}...`);
33
+ try {
34
+ const generationOptions = {
35
+ dialectName,
36
+ outputFormat: options.dialectFormat,
37
+ includeEnums: options.includeEnums,
38
+ includeTypeGuards: options.includeTypeGuards
39
+ };
40
+ await this.generator.generateFromURL(file.download_url, dialectOutputDir, generationOptions);
41
+ processedDialects.push(dialectName);
42
+ // Reset parser state for next dialect
43
+ this.generator.reset();
44
+ }
45
+ catch (error) {
46
+ console.error(`Failed to process ${file.name}:`, error);
47
+ }
48
+ }
49
+ // Generate main index file
50
+ await this.generateMainIndex(options.outputDir, processedDialects);
51
+ console.log(`Successfully processed ${processedDialects.length} dialects`);
52
+ }
53
+ async processSpecificDialects(dialectNames, options) {
54
+ console.log(`Processing ${dialectNames.length} specific dialects...`);
55
+ // Create main output directory
56
+ await fs_1.promises.mkdir(options.outputDir, { recursive: true });
57
+ const processedDialects = [];
58
+ for (const dialectName of dialectNames) {
59
+ const xmlFileName = `${dialectName}.xml`;
60
+ const dialectUrl = `${BatchProcessor.MAVLINK_RAW_BASE_URL}/${xmlFileName}`;
61
+ const dialectOutputDir = (0, path_1.join)(options.outputDir, dialectName.toLowerCase());
62
+ console.log(`Processing ${dialectName}...`);
63
+ try {
64
+ const generationOptions = {
65
+ dialectName: dialectName.toLowerCase(),
66
+ outputFormat: options.dialectFormat,
67
+ includeEnums: options.includeEnums,
68
+ includeTypeGuards: options.includeTypeGuards
69
+ };
70
+ await this.generator.generateFromURL(dialectUrl, dialectOutputDir, generationOptions);
71
+ processedDialects.push(dialectName.toLowerCase());
72
+ // Reset parser state for next dialect
73
+ this.generator.reset();
74
+ }
75
+ catch (error) {
76
+ console.error(`Failed to process ${dialectName}:`, error);
77
+ }
78
+ }
79
+ // Generate main index file
80
+ await this.generateMainIndex(options.outputDir, processedDialects);
81
+ console.log(`Successfully processed ${processedDialects.length} dialects`);
82
+ }
83
+ async generateMainIndex(outputDir, dialectNames) {
84
+ const indexContent = `// Auto-generated TypeScript dialects index
85
+ // Exports all available dialects
86
+
87
+ ${dialectNames.map(name => `export * as ${name} from './${name}';`).join('\n')}
88
+
89
+ // Convenience re-exports
90
+ export { MAVLinkMessage, MessageTypeMap, AnyMessage } from './common/types';
91
+ `;
92
+ await fs_1.promises.writeFile((0, path_1.join)(outputDir, 'index.ts'), indexContent);
93
+ console.log(`Generated main index file with ${dialectNames.length} dialects`);
94
+ }
95
+ async generatePackageJson(outputDir, version = '1.0.0') {
96
+ const packageJson = {
97
+ name: 'mavlink-types',
98
+ version,
99
+ description: 'Auto-generated TypeScript types for MAVLink dialects',
100
+ main: 'index.js',
101
+ types: 'index.d.ts',
102
+ files: ['**/*.ts', '**/*.js', '**/*.d.ts'],
103
+ keywords: ['mavlink', 'typescript', 'types', 'drone', 'autopilot'],
104
+ license: 'MIT',
105
+ repository: {
106
+ type: 'git',
107
+ url: 'https://github.com/mavlink/mavlink'
108
+ },
109
+ scripts: {
110
+ build: 'tsc',
111
+ prepublishOnly: 'npm run build'
112
+ },
113
+ devDependencies: {
114
+ typescript: '^5.0.0'
115
+ }
116
+ };
117
+ await fs_1.promises.writeFile((0, path_1.join)(outputDir, 'package.json'), JSON.stringify(packageJson, null, 2));
118
+ // Also generate a basic tsconfig.json
119
+ const tsConfig = {
120
+ compilerOptions: {
121
+ target: 'ES2020',
122
+ module: 'commonjs',
123
+ declaration: true,
124
+ outDir: './dist',
125
+ rootDir: './',
126
+ strict: true,
127
+ esModuleInterop: true,
128
+ skipLibCheck: true,
129
+ forceConsistentCasingInFileNames: true
130
+ },
131
+ include: ['**/*.ts'],
132
+ exclude: ['node_modules', 'dist']
133
+ };
134
+ await fs_1.promises.writeFile((0, path_1.join)(outputDir, 'tsconfig.json'), JSON.stringify(tsConfig, null, 2));
135
+ console.log('Generated package.json and tsconfig.json');
136
+ }
137
+ }
138
+ exports.BatchProcessor = BatchProcessor;
139
+ BatchProcessor.MAVLINK_DIALECTS_URL = 'https://api.github.com/repos/mavlink/mavlink/contents/message_definitions/v1.0';
140
+ BatchProcessor.MAVLINK_RAW_BASE_URL = 'https://raw.githubusercontent.com/mavlink/mavlink/master/message_definitions/v1.0';
141
+ //# sourceMappingURL=batch-processor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-processor.js","sourceRoot":"","sources":["../../src/generator/batch-processor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { GenerationOptions } from '../types';
2
+ export declare class MAVLinkGenerator {
3
+ private xmlParser;
4
+ private typeConverter;
5
+ private templateEngine;
6
+ constructor();
7
+ generateFromURL(url: string, outputPath: string, options: GenerationOptions): Promise<void>;
8
+ generateFromFile(filePath: string, outputPath: string, options: GenerationOptions): Promise<void>;
9
+ private generate;
10
+ reset(): void;
11
+ }
12
+ export declare function generateTypesFromXML(xmlContent: string, options: GenerationOptions): Promise<{
13
+ [filename: string]: string;
14
+ }>;
15
+ //# sourceMappingURL=generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/generator/generator.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAA4C,MAAM,UAAU,CAAC;AAEvF,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,cAAc,CAAiB;;IAQjC,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3F,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;YAKzF,QAAQ;IA+BtB,KAAK,IAAI,IAAI;CAGd;AAGD,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC;IAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC,CAsCzC"}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MAVLinkGenerator = void 0;
4
+ exports.generateTypesFromXML = generateTypesFromXML;
5
+ const fs_1 = require("fs");
6
+ const path_1 = require("path");
7
+ const xml2js_1 = require("xml2js");
8
+ const xml_parser_1 = require("./xml-parser");
9
+ const type_converter_1 = require("./type-converter");
10
+ const template_engine_1 = require("./template-engine");
11
+ class MAVLinkGenerator {
12
+ constructor() {
13
+ this.xmlParser = new xml_parser_1.XMLParser();
14
+ this.typeConverter = new type_converter_1.TypeConverter();
15
+ this.templateEngine = new template_engine_1.TemplateEngine();
16
+ }
17
+ async generateFromURL(url, outputPath, options) {
18
+ const definition = await this.xmlParser.parseFromURL(url);
19
+ await this.generate(definition, outputPath, options);
20
+ }
21
+ async generateFromFile(filePath, outputPath, options) {
22
+ const definition = await this.xmlParser.parseFromFile(filePath);
23
+ await this.generate(definition, outputPath, options);
24
+ }
25
+ async generate(definition, outputPath, options) {
26
+ // Convert to TypeScript types
27
+ const tsDialect = this.typeConverter.convert(definition, options.dialectName);
28
+ // Ensure output directory exists
29
+ await fs_1.promises.mkdir(outputPath, { recursive: true });
30
+ if (options.outputFormat === 'single') {
31
+ // Generate single file
32
+ const content = this.templateEngine.generateSingle(tsDialect);
33
+ await fs_1.promises.writeFile((0, path_1.join)(outputPath, 'index.ts'), content);
34
+ }
35
+ else {
36
+ // Generate separate files
37
+ const typesContent = this.templateEngine.generateTypes(tsDialect);
38
+ await fs_1.promises.writeFile((0, path_1.join)(outputPath, 'types.ts'), typesContent);
39
+ if (options.includeEnums) {
40
+ const enumsContent = this.templateEngine.generateEnums(tsDialect);
41
+ await fs_1.promises.writeFile((0, path_1.join)(outputPath, 'enums.ts'), enumsContent);
42
+ }
43
+ const messagesContent = this.templateEngine.generateMessages(tsDialect);
44
+ await fs_1.promises.writeFile((0, path_1.join)(outputPath, 'messages.ts'), messagesContent);
45
+ const indexContent = this.templateEngine.generateIndex(tsDialect, options.includeEnums);
46
+ await fs_1.promises.writeFile((0, path_1.join)(outputPath, 'index.ts'), indexContent);
47
+ }
48
+ console.log(`Generated TypeScript types for ${options.dialectName} in ${outputPath}`);
49
+ }
50
+ reset() {
51
+ this.xmlParser.reset();
52
+ }
53
+ }
54
+ exports.MAVLinkGenerator = MAVLinkGenerator;
55
+ // Standalone function for programmatic usage
56
+ async function generateTypesFromXML(xmlContent, options) {
57
+ const converter = new type_converter_1.TypeConverter();
58
+ const templateEngine = new template_engine_1.TemplateEngine();
59
+ // Parse XML directly from string
60
+ const definition = await new Promise((resolve, reject) => {
61
+ (0, xml2js_1.parseString)(xmlContent, { explicitArray: false }, (err, result) => {
62
+ if (err)
63
+ reject(err);
64
+ else
65
+ resolve(result.mavlink);
66
+ });
67
+ });
68
+ // Convert parsed XML to definition format for compatibility
69
+ const definitionForConverter = {
70
+ version: definition.version,
71
+ dialect: definition.dialect ? parseInt(definition.dialect) : undefined,
72
+ includes: [],
73
+ enums: [],
74
+ messages: []
75
+ };
76
+ // Convert to TypeScript
77
+ const tsDialect = converter.convert(definitionForConverter, options.dialectName);
78
+ const files = {};
79
+ if (options.outputFormat === 'single') {
80
+ files['index.ts'] = templateEngine.generateSingle(tsDialect);
81
+ }
82
+ else {
83
+ files['types.ts'] = templateEngine.generateTypes(tsDialect);
84
+ if (options.includeEnums) {
85
+ files['enums.ts'] = templateEngine.generateEnums(tsDialect);
86
+ }
87
+ files['messages.ts'] = templateEngine.generateMessages(tsDialect);
88
+ files['index.ts'] = templateEngine.generateIndex(tsDialect, options.includeEnums);
89
+ }
90
+ return files;
91
+ }
92
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/generator/generator.ts"],"names":[],"mappings":"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"}