@aircast-4g/mavlink 1.0.1 → 1.1.2

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 (135) hide show
  1. package/dist/cli.js +0 -0
  2. package/dist/dialects/ardupilotmega/decoder.js +11930 -0
  3. package/dist/dialects/common/decoder.js +9098 -0
  4. package/dist/dialects/minimal/decoder.js +67 -0
  5. package/dist/generator/generator.d.ts +1 -0
  6. package/dist/generator/generator.d.ts.map +1 -1
  7. package/dist/generator/generator.js +49 -5
  8. package/dist/generator/generator.js.map +1 -1
  9. package/dist/generator/template-engine.d.ts +1 -0
  10. package/dist/generator/template-engine.d.ts.map +1 -1
  11. package/dist/generator/template-engine.js +50 -0
  12. package/dist/generator/template-engine.js.map +1 -1
  13. package/dist/parser/mavlink-parser.d.ts.map +1 -1
  14. package/dist/parser/mavlink-parser.js +17 -6
  15. package/dist/parser/mavlink-parser.js.map +1 -1
  16. package/dist/parser/message-decoder.d.ts +40 -4
  17. package/dist/parser/message-decoder.d.ts.map +1 -1
  18. package/dist/parser/message-decoder.js +263 -222
  19. package/dist/parser/message-decoder.js.map +1 -1
  20. package/dist/parser/types.d.ts +1 -0
  21. package/dist/parser/types.d.ts.map +1 -1
  22. package/dist/parser/types.js.map +1 -1
  23. package/package.json +17 -26
  24. package/dist/batch-processor.d.ts +0 -17
  25. package/dist/batch-processor.d.ts.map +0 -1
  26. package/dist/batch-processor.js +0 -141
  27. package/dist/batch-processor.js.map +0 -1
  28. package/dist/generator.d.ts +0 -15
  29. package/dist/generator.d.ts.map +0 -1
  30. package/dist/generator.js +0 -92
  31. package/dist/generator.js.map +0 -1
  32. package/dist/template-engine.d.ts +0 -13
  33. package/dist/template-engine.d.ts.map +0 -1
  34. package/dist/template-engine.js +0 -220
  35. package/dist/template-engine.js.map +0 -1
  36. package/dist/type-converter.d.ts +0 -15
  37. package/dist/type-converter.d.ts.map +0 -1
  38. package/dist/type-converter.js +0 -179
  39. package/dist/type-converter.js.map +0 -1
  40. package/dist/xml-parser.d.ts +0 -13
  41. package/dist/xml-parser.d.ts.map +0 -1
  42. package/dist/xml-parser.js +0 -170
  43. package/dist/xml-parser.js.map +0 -1
  44. package/types/ardupilotmega/enums.d.ts +0 -2427
  45. package/types/ardupilotmega/enums.d.ts.map +0 -1
  46. package/types/ardupilotmega/enums.js +0 -4636
  47. package/types/ardupilotmega/enums.js.map +0 -1
  48. package/types/ardupilotmega/index.d.ts +0 -4
  49. package/types/ardupilotmega/index.d.ts.map +0 -1
  50. package/types/ardupilotmega/index.js +0 -22
  51. package/types/ardupilotmega/index.js.map +0 -1
  52. package/types/ardupilotmega/messages.d.ts +0 -3719
  53. package/types/ardupilotmega/messages.d.ts.map +0 -1
  54. package/types/ardupilotmega/messages.js +0 -1281
  55. package/types/ardupilotmega/messages.js.map +0 -1
  56. package/types/ardupilotmega/types.d.ts +0 -221
  57. package/types/ardupilotmega/types.d.ts.map +0 -1
  58. package/types/ardupilotmega/types.js +0 -5
  59. package/types/ardupilotmega/types.js.map +0 -1
  60. package/types/common/enums.d.ts +0 -1843
  61. package/types/common/enums.d.ts.map +0 -1
  62. package/types/common/enums.js +0 -3636
  63. package/types/common/enums.js.map +0 -1
  64. package/types/common/index.d.ts +0 -4
  65. package/types/common/index.d.ts.map +0 -1
  66. package/types/common/index.js +0 -21
  67. package/types/common/index.js.map +0 -1
  68. package/types/common/messages.d.ts +0 -2805
  69. package/types/common/messages.d.ts.map +0 -1
  70. package/types/common/messages.js +0 -920
  71. package/types/common/messages.js.map +0 -1
  72. package/types/common/types.d.ts +0 -157
  73. package/types/common/types.d.ts.map +0 -1
  74. package/types/common/types.js +0 -4
  75. package/types/common/types.js.map +0 -1
  76. package/types/minimal/enums.d.ts +0 -244
  77. package/types/minimal/enums.d.ts.map +0 -1
  78. package/types/minimal/enums.js +0 -496
  79. package/types/minimal/enums.js.map +0 -1
  80. package/types/minimal/index.d.ts +0 -4
  81. package/types/minimal/index.d.ts.map +0 -1
  82. package/types/minimal/index.js +0 -21
  83. package/types/minimal/index.js.map +0 -1
  84. package/types/minimal/messages.d.ts +0 -25
  85. package/types/minimal/messages.d.ts.map +0 -1
  86. package/types/minimal/messages.js +0 -12
  87. package/types/minimal/messages.js.map +0 -1
  88. package/types/minimal/types.d.ts +0 -14
  89. package/types/minimal/types.d.ts.map +0 -1
  90. package/types/minimal/types.js +0 -4
  91. package/types/minimal/types.js.map +0 -1
  92. package/types/paparazzi/enums.ts +0 -3632
  93. package/types/paparazzi/index.ts +0 -6
  94. package/types/paparazzi/messages.ts +0 -6185
  95. package/types/paparazzi/types.ts +0 -2159
  96. package/types/python_array_test/enums.ts +0 -3632
  97. package/types/python_array_test/index.ts +0 -6
  98. package/types/python_array_test/messages.ts +0 -6258
  99. package/types/python_array_test/types.ts +0 -2159
  100. package/types/standard/enums.d.ts +0 -248
  101. package/types/standard/enums.d.ts.map +0 -1
  102. package/types/standard/enums.js +0 -505
  103. package/types/standard/enums.js.map +0 -1
  104. package/types/standard/enums.ts +0 -502
  105. package/types/standard/index.d.ts +0 -4
  106. package/types/standard/index.d.ts.map +0 -1
  107. package/types/standard/index.js +0 -22
  108. package/types/standard/index.js.map +0 -1
  109. package/types/standard/index.ts +0 -6
  110. package/types/standard/messages.d.ts +0 -25
  111. package/types/standard/messages.d.ts.map +0 -1
  112. package/types/standard/messages.js +0 -13
  113. package/types/standard/messages.js.map +0 -1
  114. package/types/standard/messages.ts +0 -63
  115. package/types/standard/types.d.ts +0 -15
  116. package/types/standard/types.d.ts.map +0 -1
  117. package/types/standard/types.js +0 -5
  118. package/types/standard/types.js.map +0 -1
  119. package/types/standard/types.ts +0 -278
  120. package/types/test/enums.ts +0 -2
  121. package/types/test/index.ts +0 -6
  122. package/types/test/messages.ts +0 -69
  123. package/types/test/types.ts +0 -11
  124. /package/{types/ardupilotmega/enums.ts → dist/dialects/ardupilotmega/enums.d.ts} +0 -0
  125. /package/{types/ardupilotmega/index.ts → dist/dialects/ardupilotmega/index.d.ts} +0 -0
  126. /package/{types/ardupilotmega/messages.ts → dist/dialects/ardupilotmega/messages.d.ts} +0 -0
  127. /package/{types/ardupilotmega/types.ts → dist/dialects/ardupilotmega/types.d.ts} +0 -0
  128. /package/{types/common/enums.ts → dist/dialects/common/enums.d.ts} +0 -0
  129. /package/{types/common/index.ts → dist/dialects/common/index.d.ts} +0 -0
  130. /package/{types/common/messages.ts → dist/dialects/common/messages.d.ts} +0 -0
  131. /package/{types/common/types.ts → dist/dialects/common/types.d.ts} +0 -0
  132. /package/{types/minimal/enums.ts → dist/dialects/minimal/enums.d.ts} +0 -0
  133. /package/{types/minimal/index.ts → dist/dialects/minimal/index.d.ts} +0 -0
  134. /package/{types/minimal/messages.ts → dist/dialects/minimal/messages.d.ts} +0 -0
  135. /package/{types/minimal/types.ts → dist/dialects/minimal/types.d.ts} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aircast-4g/mavlink",
3
- "version": "1.0.1",
3
+ "version": "1.1.2",
4
4
  "description": "TypeScript type generator for MAVLink dialects",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -10,25 +10,17 @@
10
10
  "require": "./dist/index.js",
11
11
  "import": "./dist/index.js"
12
12
  },
13
- "./types/common": {
14
- "types": "./types/common/index.ts",
15
- "require": "./types/common/index.js",
16
- "import": "./types/common/index.js"
13
+ "./dialects/common": {
14
+ "types": "./dist/dialects/common/index.d.ts"
17
15
  },
18
- "./types/minimal": {
19
- "types": "./types/minimal/index.ts",
20
- "require": "./types/minimal/index.js",
21
- "import": "./types/minimal/index.js"
16
+ "./dialects/minimal": {
17
+ "types": "./dist/dialects/minimal/index.d.ts"
22
18
  },
23
- "./types/ardupilotmega": {
24
- "types": "./types/ardupilotmega/index.ts",
25
- "require": "./types/ardupilotmega/index.js",
26
- "import": "./types/ardupilotmega/index.js"
19
+ "./dialects/ardupilotmega": {
20
+ "types": "./dist/dialects/ardupilotmega/index.d.ts"
27
21
  },
28
- "./types/standard": {
29
- "types": "./types/standard/index.ts",
30
- "require": "./types/standard/index.js",
31
- "import": "./types/standard/index.js"
22
+ "./dialects/standard": {
23
+ "types": "./dist/dialects/standard/index.d.ts"
32
24
  }
33
25
  },
34
26
  "bin": {
@@ -36,24 +28,23 @@
36
28
  },
37
29
  "files": [
38
30
  "dist/**/*",
39
- "types/**/*",
40
31
  "README.md",
41
32
  "LICENSE"
42
33
  ],
43
34
  "scripts": {
44
- "build": "tsc",
35
+ "build": "tsc && npm run gen:common && npm run gen:ardupilotmega && npm run gen:minimal",
45
36
  "start": "node dist/cli.js",
46
37
  "dev": "tsx src/cli.ts",
47
38
  "test": "jest",
48
39
  "lint": "eslint src/**/*.ts",
49
40
  "clean": "rm -rf dist",
50
- "gen:common": "tsx src/cli.ts generate -i https://raw.githubusercontent.com/mavlink/mavlink/master/message_definitions/v1.0/common.xml -o ./types/common",
51
- "gen:ardupilotmega": "tsx src/cli.ts generate -i https://raw.githubusercontent.com/mavlink/mavlink/master/message_definitions/v1.0/ardupilotmega.xml -o ./types/ardupilotmega",
52
- "gen:minimal": "tsx src/cli.ts generate -i https://raw.githubusercontent.com/mavlink/mavlink/master/message_definitions/v1.0/minimal.xml -o ./types/minimal",
53
- "gen:test": "tsx src/cli.ts generate -i https://raw.githubusercontent.com/mavlink/mavlink/master/message_definitions/v1.0/test.xml -o ./types/test",
54
- "gen:paparazzi": "tsx src/cli.ts generate -i https://raw.githubusercontent.com/mavlink/mavlink/master/message_definitions/v1.0/paparazzi.xml -o ./types/paparazzi",
55
- "gen:python_array_test": "tsx src/cli.ts generate -i https://raw.githubusercontent.com/mavlink/mavlink/master/message_definitions/v1.0/python_array_test.xml -o ./types/python_array_test",
56
- "gen:standard": "tsx src/cli.ts generate -i https://raw.githubusercontent.com/mavlink/mavlink/master/message_definitions/v1.0/standard.xml -o ./types/standard",
41
+ "gen:common": "tsx src/cli.ts generate -i https://raw.githubusercontent.com/mavlink/mavlink/master/message_definitions/v1.0/common.xml -o ./dist/dialects/common",
42
+ "gen:ardupilotmega": "tsx src/cli.ts generate -i https://raw.githubusercontent.com/mavlink/mavlink/master/message_definitions/v1.0/ardupilotmega.xml -o ./dist/dialects/ardupilotmega",
43
+ "gen:minimal": "tsx src/cli.ts generate -i https://raw.githubusercontent.com/mavlink/mavlink/master/message_definitions/v1.0/minimal.xml -o ./dist/dialects/minimal",
44
+ "gen:test": "tsx src/cli.ts generate -i https://raw.githubusercontent.com/mavlink/mavlink/master/message_definitions/v1.0/test.xml -o ./dist/dialects/test",
45
+ "gen:paparazzi": "tsx src/cli.ts generate -i https://raw.githubusercontent.com/mavlink/mavlink/master/message_definitions/v1.0/paparazzi.xml -o ./dist/dialects/paparazzi",
46
+ "gen:python_array_test": "tsx src/cli.ts generate -i https://raw.githubusercontent.com/mavlink/mavlink/master/message_definitions/v1.0/python_array_test.xml -o ./dist/dialects/python_array_test",
47
+ "gen:standard": "tsx src/cli.ts generate -i https://raw.githubusercontent.com/mavlink/mavlink/master/message_definitions/v1.0/standard.xml -o ./dist/dialects/standard",
57
48
  "gen:all": "npm run gen:common && npm run gen:ardupilotmega && npm run gen:minimal && npm run gen:test && npm run gen:paparazzi && npm run gen:python_array_test && npm run gen:standard",
58
49
  "release:patch": "npm version patch && git push origin master --tags && gh release create v$(node -p \"require('./package.json').version\") --title \"v$(node -p \"require('./package.json').version\")\" --generate-notes",
59
50
  "release:minor": "npm version minor && git push origin master --tags && gh release create v$(node -p \"require('./package.json').version\") --title \"v$(node -p \"require('./package.json').version\")\" --generate-notes",
@@ -1,17 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"batch-processor.d.ts","sourceRoot":"","sources":["../src/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"}
@@ -1,141 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"batch-processor.js","sourceRoot":"","sources":["../src/batch-processor.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAA4C,MAAM,SAAS,CAAC;AAEtF,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"}
package/dist/generator.js DELETED
@@ -1,92 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- import { TypeScriptDialect } from './types';
2
- export declare class TemplateEngine {
3
- private templates;
4
- constructor();
5
- private initializeTemplates;
6
- private registerHelpers;
7
- generateTypes(dialect: TypeScriptDialect): string;
8
- generateEnums(dialect: TypeScriptDialect): string;
9
- generateMessages(dialect: TypeScriptDialect): string;
10
- generateIndex(dialect: TypeScriptDialect, includeEnums?: boolean): string;
11
- generateSingle(dialect: TypeScriptDialect): string;
12
- }
13
- //# sourceMappingURL=template-engine.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"template-engine.d.ts","sourceRoot":"","sources":["../src/template-engine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,qBAAa,cAAc;IACzB,OAAO,CAAC,SAAS,CAAsD;;IAOvE,OAAO,CAAC,mBAAmB;IAmK3B,OAAO,CAAC,eAAe;IAcvB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM;IAQjD,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM;IAQjD,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM;IAQpD,aAAa,CAAC,OAAO,EAAE,iBAAiB,EAAE,YAAY,GAAE,OAAe,GAAG,MAAM;IAQhF,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM;CAOnD"}
@@ -1,220 +0,0 @@
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.TemplateEngine = void 0;
7
- const handlebars_1 = __importDefault(require("handlebars"));
8
- class TemplateEngine {
9
- constructor() {
10
- this.templates = new Map();
11
- this.initializeTemplates();
12
- this.registerHelpers();
13
- }
14
- initializeTemplates() {
15
- // Main types template
16
- this.templates.set('types', handlebars_1.default.compile(`// Auto-generated TypeScript types for {{ dialectName }} dialect
17
- // Generated from MAVLink XML definitions
18
-
19
- export interface MAVLinkMessage<Content = unknown> {
20
- timestamp: number;
21
- system_id: number;
22
- component_id: number;
23
- type: string;
24
- content: Content;
25
- }
26
-
27
- {{#each enums}}
28
- {{#each description}}
29
- // {{ this }}
30
- {{/each}}
31
- export type {{ name }} =
32
- {{#each values}}
33
- | {{ value }}{{#if description}} // {{ name }} - {{ join description " " }}{{/if}}
34
- {{/each}}
35
- | number;
36
-
37
- {{/each}}
38
- `));
39
- // Enums template
40
- this.templates.set('enums', handlebars_1.default.compile(`// Auto-generated TypeScript enums for {{ dialectName }} dialect
41
-
42
- {{#each enums}}
43
- {{#each description}}
44
- // {{ this }}
45
- {{/each}}
46
- export enum {{ name }}Enum {
47
- {{#each values}}
48
- {{#each description}}
49
- // {{ this }}
50
- {{/each}}
51
- {{ name }} = {{ value }},
52
- {{/each}}
53
- }
54
-
55
- {{/each}}
56
- `));
57
- // Messages template
58
- this.templates.set('messages', handlebars_1.default.compile(`// Auto-generated TypeScript message interfaces for {{ dialectName }} dialect
59
-
60
- import { MAVLinkMessage } from './types';
61
- import type {
62
- {{#each enums}}
63
- {{ name }},
64
- {{/each}}
65
- } from './types';
66
-
67
- {{#each messages}}
68
- {{#each description}}
69
- // {{ this }}
70
- {{/each}}
71
- export interface Message{{ name }} {
72
- {{#each fields}}
73
- {{#each description}}
74
- // {{ this }}
75
- {{/each}}
76
- {{ name }}{{#if optional}}?{{/if}}: {{ type }};
77
- {{/each}}
78
- }
79
-
80
- {{/each}}
81
-
82
- // Message type map for type-safe message handling
83
- export interface MessageTypeMap {
84
- {{#each messages}}
85
- {{ originalName }}: Message{{ name }};
86
- {{/each}}
87
- }
88
-
89
- // Union type of all message types
90
- export type AnyMessage =
91
- {{#each messages}}
92
- | MAVLinkMessage<Message{{ name }}>
93
- {{/each}};
94
-
95
- // Type guard functions
96
- {{#each messages}}
97
- export function is{{ name }}(msg: MAVLinkMessage): msg is MAVLinkMessage<Message{{ name }}> {
98
- return msg.type === '{{ originalName }}';
99
- }
100
- {{/each}}
101
- `));
102
- // Index template
103
- this.templates.set('index', handlebars_1.default.compile(`// Auto-generated TypeScript index file
104
- // Exports all dialect types
105
-
106
- export * from './types';
107
- export * from './enums';
108
- export * from './messages';
109
- `));
110
- // Single file template
111
- this.templates.set('single', handlebars_1.default.compile(`// Auto-generated TypeScript types for {{ dialectName }} dialect
112
- // Generated from MAVLink XML definitions
113
-
114
- export interface MAVLinkMessage<Content = unknown> {
115
- timestamp: number;
116
- system_id: number;
117
- component_id: number;
118
- type: string;
119
- content: Content;
120
- }
121
-
122
- // Enums
123
- {{#each enums}}
124
- {{#each description}}
125
- // {{ this }}
126
- {{/each}}
127
- export type {{ name }} =
128
- {{#each values}}
129
- | {{ value }}{{#if description}} // {{ name }} - {{ join description " " }}{{/if}}
130
- {{/each}}
131
- | number;
132
-
133
- {{/each}}
134
-
135
- // Messages
136
- {{#each messages}}
137
- {{#each description}}
138
- // {{ this }}
139
- {{/each}}
140
- export interface Message{{ name }} {
141
- {{#each fields}}
142
- {{#each description}}
143
- // {{ this }}
144
- {{/each}}
145
- {{ name }}{{#if optional}}?{{/if}}: {{ type }};
146
- {{/each}}
147
- }
148
-
149
- {{/each}}
150
-
151
- // Message type map for type-safe message handling
152
- export interface MessageTypeMap {
153
- {{#each messages}}
154
- {{ originalName }}: Message{{ name }};
155
- {{/each}}
156
- }
157
-
158
- // Union type of all message types
159
- export type AnyMessage =
160
- {{#each messages}}
161
- | MAVLinkMessage<Message{{ name }}>
162
- {{/each}};
163
-
164
- // Type guard functions
165
- {{#each messages}}
166
- export function is{{ name }}(msg: MAVLinkMessage): msg is MAVLinkMessage<Message{{ name }}> {
167
- return msg.type === '{{ originalName }}';
168
- }
169
- {{/each}}
170
- `));
171
- }
172
- registerHelpers() {
173
- handlebars_1.default.registerHelper('join', (array, separator) => {
174
- return array.join(separator);
175
- });
176
- handlebars_1.default.registerHelper('eq', (a, b) => {
177
- return a === b;
178
- });
179
- handlebars_1.default.registerHelper('ne', (a, b) => {
180
- return a !== b;
181
- });
182
- }
183
- generateTypes(dialect) {
184
- const template = this.templates.get('types');
185
- if (!template) {
186
- throw new Error('Types template not found');
187
- }
188
- return template(dialect);
189
- }
190
- generateEnums(dialect) {
191
- const template = this.templates.get('enums');
192
- if (!template) {
193
- throw new Error('Enums template not found');
194
- }
195
- return template(dialect);
196
- }
197
- generateMessages(dialect) {
198
- const template = this.templates.get('messages');
199
- if (!template) {
200
- throw new Error('Messages template not found');
201
- }
202
- return template(dialect);
203
- }
204
- generateIndex(dialect, includeEnums = false) {
205
- const template = this.templates.get('index');
206
- if (!template) {
207
- throw new Error('Index template not found');
208
- }
209
- return template({ ...dialect, includeEnums });
210
- }
211
- generateSingle(dialect) {
212
- const template = this.templates.get('single');
213
- if (!template) {
214
- throw new Error('Single template not found');
215
- }
216
- return template(dialect);
217
- }
218
- }
219
- exports.TemplateEngine = TemplateEngine;
220
- //# sourceMappingURL=template-engine.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"template-engine.js","sourceRoot":"","sources":["../src/template-engine.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import { MAVLinkDialectDefinition, TypeScriptDialect } from './types';
2
- export declare class TypeConverter {
3
- private static readonly MAVLINK_TO_TS_TYPES;
4
- convert(definition: MAVLinkDialectDefinition, dialectName: string): TypeScriptDialect;
5
- private convertEnum;
6
- private convertMessage;
7
- private convertField;
8
- private convertMessageName;
9
- private convertFieldName;
10
- private convertFieldType;
11
- private convertSingleType;
12
- private parseEnumValue;
13
- private parseDescription;
14
- }
15
- //# sourceMappingURL=type-converter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"type-converter.d.ts","sourceRoot":"","sources":["../src/type-converter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EAIxB,iBAAiB,EAIlB,MAAM,SAAS,CAAC;AAEjB,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAazC;IAEF,OAAO,CAAC,UAAU,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,GAAG,iBAAiB;IA8BrF,OAAO,CAAC,WAAW;IA0BnB,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,iBAAiB;IAyBzB,OAAO,CAAC,cAAc;IA4BtB,OAAO,CAAC,gBAAgB;CAQzB"}