@aircast-4g/mavlink 1.1.3 → 1.1.5

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 (95) hide show
  1. package/dist/dialects/ardupilotmega/index.d.ts +6373 -5
  2. package/dist/dialects/ardupilotmega/index.js +17515 -0
  3. package/dist/dialects/ardupilotmega/index.js.map +1 -0
  4. package/dist/dialects/common/index.d.ts +4817 -5
  5. package/dist/dialects/common/index.js +13420 -0
  6. package/dist/dialects/common/index.js.map +1 -0
  7. package/dist/dialects/minimal/index.d.ts +295 -5
  8. package/dist/dialects/minimal/index.js +570 -0
  9. package/dist/dialects/minimal/index.js.map +1 -0
  10. package/dist/dialects/paparazzi/index.d.ts +4851 -0
  11. package/dist/dialects/paparazzi/index.js +13518 -0
  12. package/dist/dialects/paparazzi/index.js.map +1 -0
  13. package/dist/dialects/python_array_test/index.d.ts +4886 -0
  14. package/dist/dialects/python_array_test/index.js +13665 -0
  15. package/dist/dialects/python_array_test/index.js.map +1 -0
  16. package/dist/dialects/standard/index.d.ts +301 -0
  17. package/dist/dialects/standard/index.js +578 -0
  18. package/dist/dialects/standard/index.js.map +1 -0
  19. package/dist/dialects/test/index.d.ts +53 -0
  20. package/dist/dialects/test/index.js +120 -0
  21. package/dist/dialects/test/index.js.map +1 -0
  22. package/dist/index.d.ts +345 -8
  23. package/dist/{index.js → mavlink.cjs.js} +8 -18
  24. package/dist/mavlink.cjs.js.map +1 -0
  25. package/dist/mavlink.esm.js +11 -0
  26. package/dist/mavlink.esm.js.map +1 -0
  27. package/dist/mavlink.iife.js +17 -0
  28. package/dist/mavlink.iife.js.map +1 -0
  29. package/package.json +52 -18
  30. package/dist/cli.d.ts +0 -3
  31. package/dist/cli.d.ts.map +0 -1
  32. package/dist/cli.js +0 -174
  33. package/dist/cli.js.map +0 -1
  34. package/dist/dialects/ardupilotmega/decoder.js +0 -11930
  35. package/dist/dialects/ardupilotmega/enums.d.ts +0 -4631
  36. package/dist/dialects/ardupilotmega/messages.d.ts +0 -8088
  37. package/dist/dialects/ardupilotmega/types.d.ts +0 -2833
  38. package/dist/dialects/common/decoder.js +0 -9098
  39. package/dist/dialects/common/enums.d.ts +0 -3632
  40. package/dist/dialects/common/messages.d.ts +0 -6114
  41. package/dist/dialects/common/types.d.ts +0 -2159
  42. package/dist/dialects/minimal/decoder.js +0 -67
  43. package/dist/dialects/minimal/enums.d.ts +0 -494
  44. package/dist/dialects/minimal/messages.d.ts +0 -62
  45. package/dist/dialects/minimal/types.d.ts +0 -272
  46. package/dist/generator/batch-processor.d.ts +0 -17
  47. package/dist/generator/batch-processor.d.ts.map +0 -1
  48. package/dist/generator/batch-processor.js +0 -141
  49. package/dist/generator/batch-processor.js.map +0 -1
  50. package/dist/generator/generator.d.ts +0 -16
  51. package/dist/generator/generator.d.ts.map +0 -1
  52. package/dist/generator/generator.js +0 -136
  53. package/dist/generator/generator.js.map +0 -1
  54. package/dist/generator/template-engine.d.ts +0 -14
  55. package/dist/generator/template-engine.d.ts.map +0 -1
  56. package/dist/generator/template-engine.js +0 -270
  57. package/dist/generator/template-engine.js.map +0 -1
  58. package/dist/generator/type-converter.d.ts +0 -15
  59. package/dist/generator/type-converter.d.ts.map +0 -1
  60. package/dist/generator/type-converter.js +0 -179
  61. package/dist/generator/type-converter.js.map +0 -1
  62. package/dist/generator/xml-parser.d.ts +0 -13
  63. package/dist/generator/xml-parser.d.ts.map +0 -1
  64. package/dist/generator/xml-parser.js +0 -170
  65. package/dist/generator/xml-parser.js.map +0 -1
  66. package/dist/index.d.ts.map +0 -1
  67. package/dist/index.js.map +0 -1
  68. package/dist/parser/crc.d.ts +0 -7
  69. package/dist/parser/crc.d.ts.map +0 -1
  70. package/dist/parser/crc.js +0 -182
  71. package/dist/parser/crc.js.map +0 -1
  72. package/dist/parser/frame-parser.d.ts +0 -15
  73. package/dist/parser/frame-parser.d.ts.map +0 -1
  74. package/dist/parser/frame-parser.js +0 -82
  75. package/dist/parser/frame-parser.js.map +0 -1
  76. package/dist/parser/index.d.ts +0 -6
  77. package/dist/parser/index.d.ts.map +0 -1
  78. package/dist/parser/index.js +0 -28
  79. package/dist/parser/index.js.map +0 -1
  80. package/dist/parser/mavlink-parser.d.ts +0 -35
  81. package/dist/parser/mavlink-parser.d.ts.map +0 -1
  82. package/dist/parser/mavlink-parser.js +0 -215
  83. package/dist/parser/mavlink-parser.js.map +0 -1
  84. package/dist/parser/message-decoder.d.ts +0 -47
  85. package/dist/parser/message-decoder.d.ts.map +0 -1
  86. package/dist/parser/message-decoder.js +0 -288
  87. package/dist/parser/message-decoder.js.map +0 -1
  88. package/dist/parser/types.d.ts +0 -60
  89. package/dist/parser/types.d.ts.map +0 -1
  90. package/dist/parser/types.js +0 -13
  91. package/dist/parser/types.js.map +0 -1
  92. package/dist/types.d.ts +0 -110
  93. package/dist/types.d.ts.map +0 -1
  94. package/dist/types.js +0 -3
  95. package/dist/types.js.map +0 -1
package/package.json CHANGED
@@ -1,26 +1,52 @@
1
1
  {
2
2
  "name": "@aircast-4g/mavlink",
3
- "version": "1.1.3",
3
+ "version": "1.1.5",
4
4
  "description": "TypeScript type generator for MAVLink dialects",
5
- "main": "dist/index.js",
5
+ "main": "dist/mavlink.cjs.js",
6
+ "module": "dist/mavlink.esm.js",
6
7
  "types": "dist/index.d.ts",
7
8
  "exports": {
8
9
  ".": {
9
10
  "types": "./dist/index.d.ts",
10
- "require": "./dist/index.js",
11
- "import": "./dist/index.js"
11
+ "browser": "./dist/mavlink.esm.js",
12
+ "import": "./dist/mavlink.esm.js",
13
+ "require": "./dist/mavlink.cjs.js"
12
14
  },
15
+ "./iife": "./dist/mavlink.iife.js",
13
16
  "./dialects/common": {
14
- "types": "./dist/dialects/common/index.d.ts"
17
+ "types": "./dist/dialects/common/index.d.ts",
18
+ "import": "./dist/dialects/common/index.js",
19
+ "require": "./dist/dialects/common/index.js"
15
20
  },
16
21
  "./dialects/minimal": {
17
- "types": "./dist/dialects/minimal/index.d.ts"
22
+ "types": "./dist/dialects/minimal/index.d.ts",
23
+ "import": "./dist/dialects/minimal/index.js",
24
+ "require": "./dist/dialects/minimal/index.js"
18
25
  },
19
26
  "./dialects/ardupilotmega": {
20
- "types": "./dist/dialects/ardupilotmega/index.d.ts"
27
+ "types": "./dist/dialects/ardupilotmega/index.d.ts",
28
+ "import": "./dist/dialects/ardupilotmega/index.js",
29
+ "require": "./dist/dialects/ardupilotmega/index.js"
21
30
  },
22
31
  "./dialects/standard": {
23
- "types": "./dist/dialects/standard/index.d.ts"
32
+ "types": "./dist/dialects/standard/index.d.ts",
33
+ "import": "./dist/dialects/standard/index.js",
34
+ "require": "./dist/dialects/standard/index.js"
35
+ },
36
+ "./dialects/test": {
37
+ "types": "./dist/dialects/test/index.d.ts",
38
+ "import": "./dist/dialects/test/index.js",
39
+ "require": "./dist/dialects/test/index.js"
40
+ },
41
+ "./dialects/paparazzi": {
42
+ "types": "./dist/dialects/paparazzi/index.d.ts",
43
+ "import": "./dist/dialects/paparazzi/index.js",
44
+ "require": "./dist/dialects/paparazzi/index.js"
45
+ },
46
+ "./dialects/python_array_test": {
47
+ "types": "./dist/dialects/python_array_test/index.d.ts",
48
+ "import": "./dist/dialects/python_array_test/index.js",
49
+ "require": "./dist/dialects/python_array_test/index.js"
24
50
  }
25
51
  },
26
52
  "bin": {
@@ -32,19 +58,21 @@
32
58
  "LICENSE"
33
59
  ],
34
60
  "scripts": {
35
- "build": "tsc && npm run gen:common && npm run gen:ardupilotmega && npm run gen:minimal",
61
+ "build": "npm run clean && npm run generate && npm run build:bundle",
62
+ "build:bundle": "rollup -c",
63
+ "generate": "npm run gen:all",
36
64
  "start": "node dist/cli.js",
37
65
  "dev": "tsx src/cli.ts",
38
66
  "test": "jest",
39
67
  "lint": "eslint src/**/*.ts",
40
- "clean": "rm -rf dist",
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",
68
+ "clean": "rm -rf dist src/generated",
69
+ "gen:common": "tsx src/cli.ts generate -i https://raw.githubusercontent.com/mavlink/mavlink/master/message_definitions/v1.0/common.xml -o ./src/generated/dialects/common",
70
+ "gen:ardupilotmega": "tsx src/cli.ts generate -i https://raw.githubusercontent.com/mavlink/mavlink/master/message_definitions/v1.0/ardupilotmega.xml -o ./src/generated/dialects/ardupilotmega",
71
+ "gen:minimal": "tsx src/cli.ts generate -i https://raw.githubusercontent.com/mavlink/mavlink/master/message_definitions/v1.0/minimal.xml -o ./src/generated/dialects/minimal",
72
+ "gen:test": "tsx src/cli.ts generate -i https://raw.githubusercontent.com/mavlink/mavlink/master/message_definitions/v1.0/test.xml -o ./src/generated/dialects/test",
73
+ "gen:paparazzi": "tsx src/cli.ts generate -i https://raw.githubusercontent.com/mavlink/mavlink/master/message_definitions/v1.0/paparazzi.xml -o ./src/generated/dialects/paparazzi",
74
+ "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 ./src/generated/dialects/python_array_test",
75
+ "gen:standard": "tsx src/cli.ts generate -i https://raw.githubusercontent.com/mavlink/mavlink/master/message_definitions/v1.0/standard.xml -o ./src/generated/dialects/standard",
48
76
  "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",
49
77
  "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",
50
78
  "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",
@@ -78,15 +106,21 @@
78
106
  "xml2js": "^0.6.2"
79
107
  },
80
108
  "devDependencies": {
109
+ "@rollup/plugin-node-resolve": "^15.2.3",
110
+ "@rollup/plugin-typescript": "^11.1.6",
111
+ "glob": "^10.3.10",
81
112
  "@types/jest": "^30.0.0",
82
- "@types/node": "^20.10.0",
113
+ "@types/node": "^20.19.7",
83
114
  "@types/node-fetch": "^2.6.11",
84
115
  "@types/xml2js": "^0.4.14",
85
116
  "@typescript-eslint/eslint-plugin": "^6.21.0",
86
117
  "@typescript-eslint/parser": "^6.21.0",
87
118
  "eslint": "^8.55.0",
88
119
  "jest": "^29.7.0",
120
+ "rollup": "^4.9.6",
121
+ "rollup-plugin-dts": "^6.1.0",
89
122
  "ts-jest": "^29.4.0",
123
+ "tslib": "^2.6.2",
90
124
  "tsx": "^4.6.0",
91
125
  "typescript": "^5.3.0"
92
126
  },
package/dist/cli.d.ts DELETED
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
3
- //# sourceMappingURL=cli.d.ts.map
package/dist/cli.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/dist/cli.js DELETED
@@ -1,174 +0,0 @@
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
package/dist/cli.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}