@asyncapi/cli 2.3.12 → 2.4.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.
@@ -9,7 +9,7 @@
9
9
  "version": "0.1.0",
10
10
  "license": "Apache-2.0",
11
11
  "dependencies": {
12
- "@asyncapi/glee": "^0.37.7"
12
+ "@asyncapi/glee": "^0.37.8"
13
13
  },
14
14
  "devDependencies": {
15
15
  "@types/node": "^20.5.9"
@@ -81,9 +81,9 @@
81
81
  }
82
82
  },
83
83
  "node_modules/@asyncapi/generator-react-sdk": {
84
- "version": "1.1.1",
85
- "resolved": "https://registry.npmjs.org/@asyncapi/generator-react-sdk/-/generator-react-sdk-1.1.1.tgz",
86
- "integrity": "sha512-R86Xa20wLtzI4fVf9HECR+UCSYvNE1B4WZs3eI5jAvGtONBTFOvkixd4SUL+uLP4DP96pU2DuKhih/PQbmMneQ==",
84
+ "version": "1.1.2",
85
+ "resolved": "https://registry.npmjs.org/@asyncapi/generator-react-sdk/-/generator-react-sdk-1.1.2.tgz",
86
+ "integrity": "sha512-hU9ux8hEMhXwQWWzySZlZ+L5SsM0r4uXdPFvYRTX5uVGeLKGoj4Ok8hY2gPhahKcvMELOIU2mw3O6h9h9AcskQ==",
87
87
  "dependencies": {
88
88
  "@asyncapi/parser": "^3.1.0",
89
89
  "@babel/core": "7.12.9",
@@ -169,13 +169,13 @@
169
169
  "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
170
170
  },
171
171
  "node_modules/@asyncapi/glee": {
172
- "version": "0.37.7",
173
- "resolved": "https://registry.npmjs.org/@asyncapi/glee/-/glee-0.37.7.tgz",
174
- "integrity": "sha512-E+wGnDmV3ix2eELOeDlHOKSQx0Q+7BcxrBWzQQGkxAiMPjJz+2gzfKXU/58MX8CNnvXFWSVLnKRDtR+ntU4rJQ==",
172
+ "version": "0.37.8",
173
+ "resolved": "https://registry.npmjs.org/@asyncapi/glee/-/glee-0.37.8.tgz",
174
+ "integrity": "sha512-1qa/OuOzA38AvuNu1w/wduXKnXjxtHMcCYggVoCQVIzJZ6lG9xaK73g3floUUDK5sMAqiytvisCyGVobXzv4Kw==",
175
175
  "dependencies": {
176
176
  "@asyncapi/generator": "^1.17.25",
177
- "@asyncapi/html-template": "^2.3.10",
178
- "@asyncapi/markdown-template": "^1.6.5",
177
+ "@asyncapi/html-template": "^2.3.14",
178
+ "@asyncapi/markdown-template": "^1.6.6",
179
179
  "@asyncapi/parser": "^3.1.0",
180
180
  "@next/env": "^14.0.4",
181
181
  "@types/jest": "^29.5.11",
@@ -216,11 +216,11 @@
216
216
  }
217
217
  },
218
218
  "node_modules/@asyncapi/html-template": {
219
- "version": "2.3.13",
220
- "resolved": "https://registry.npmjs.org/@asyncapi/html-template/-/html-template-2.3.13.tgz",
221
- "integrity": "sha512-IxldILMhc78cQVGf+gP9ggBeclOs7d2AHGhoCeyLsqfTbn4ndnxLS5IjI+JgAf1BAPvHFg6bBX6Tnfnw8ZxxFw==",
219
+ "version": "2.3.14",
220
+ "resolved": "https://registry.npmjs.org/@asyncapi/html-template/-/html-template-2.3.14.tgz",
221
+ "integrity": "sha512-e7jHGXNtovA2u9n0A9CtPy+xkXa76vpz+gdY/4q4TC4bm6EadEhcDiNQ0LtFnUjcHDuxXzYZs8/0BZr1vSBeQw==",
222
222
  "dependencies": {
223
- "@asyncapi/generator-react-sdk": "^1.1.1",
223
+ "@asyncapi/generator-react-sdk": "^1.1.2",
224
224
  "@asyncapi/parser": "^3.1.0",
225
225
  "@asyncapi/react-component": "^1.2.13",
226
226
  "highlight.js": "10.7.3",
@@ -231,11 +231,11 @@
231
231
  }
232
232
  },
233
233
  "node_modules/@asyncapi/markdown-template": {
234
- "version": "1.6.5",
235
- "resolved": "https://registry.npmjs.org/@asyncapi/markdown-template/-/markdown-template-1.6.5.tgz",
236
- "integrity": "sha512-5lzj5HO0sKNkg90fRQ/cE20MJoYmqKdvHhRDocFm5LKN0OPj3sgFqExYE64mVA0AEdXcUeF23dpv8094qc2hkg==",
234
+ "version": "1.6.6",
235
+ "resolved": "https://registry.npmjs.org/@asyncapi/markdown-template/-/markdown-template-1.6.6.tgz",
236
+ "integrity": "sha512-Hm9B/g2B9lHpE2uoM6nKQqU3PmRGpalwm/ufKcLHV4aPq3S870nvD2TWPv+qVMCCeJMyOeJi0l8Wj5yWY4TU2A==",
237
237
  "dependencies": {
238
- "@asyncapi/generator-react-sdk": "^1.1.1",
238
+ "@asyncapi/generator-react-sdk": "^1.1.2",
239
239
  "openapi-sampler": "^1.3.0",
240
240
  "yaml": "^1.10.2"
241
241
  }
@@ -10169,9 +10169,9 @@
10169
10169
  "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
10170
10170
  },
10171
10171
  "node_modules/path-to-regexp": {
10172
- "version": "6.2.2",
10173
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz",
10174
- "integrity": "sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw=="
10172
+ "version": "6.3.0",
10173
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz",
10174
+ "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ=="
10175
10175
  },
10176
10176
  "node_modules/path-type": {
10177
10177
  "version": "4.0.0",
@@ -24,7 +24,7 @@
24
24
  },
25
25
  "homepage": "https://github.com/asyncapi/glee-hello-world#readme",
26
26
  "dependencies": {
27
- "@asyncapi/glee": "^0.37.7"
27
+ "@asyncapi/glee": "^0.37.8"
28
28
  },
29
29
  "devDependencies": {
30
30
  "@types/node": "^20.5.9"
@@ -9,7 +9,7 @@
9
9
  "version": "0.1.0",
10
10
  "license": "Apache-2.0",
11
11
  "dependencies": {
12
- "@asyncapi/glee": "^0.37.7"
12
+ "@asyncapi/glee": "^0.37.8"
13
13
  },
14
14
  "engines": {
15
15
  "node": ">=14.15.1"
@@ -78,9 +78,9 @@
78
78
  }
79
79
  },
80
80
  "node_modules/@asyncapi/generator-react-sdk": {
81
- "version": "1.1.1",
82
- "resolved": "https://registry.npmjs.org/@asyncapi/generator-react-sdk/-/generator-react-sdk-1.1.1.tgz",
83
- "integrity": "sha512-R86Xa20wLtzI4fVf9HECR+UCSYvNE1B4WZs3eI5jAvGtONBTFOvkixd4SUL+uLP4DP96pU2DuKhih/PQbmMneQ==",
81
+ "version": "1.1.2",
82
+ "resolved": "https://registry.npmjs.org/@asyncapi/generator-react-sdk/-/generator-react-sdk-1.1.2.tgz",
83
+ "integrity": "sha512-hU9ux8hEMhXwQWWzySZlZ+L5SsM0r4uXdPFvYRTX5uVGeLKGoj4Ok8hY2gPhahKcvMELOIU2mw3O6h9h9AcskQ==",
84
84
  "dependencies": {
85
85
  "@asyncapi/parser": "^3.1.0",
86
86
  "@babel/core": "7.12.9",
@@ -166,13 +166,13 @@
166
166
  "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
167
167
  },
168
168
  "node_modules/@asyncapi/glee": {
169
- "version": "0.37.7",
170
- "resolved": "https://registry.npmjs.org/@asyncapi/glee/-/glee-0.37.7.tgz",
171
- "integrity": "sha512-E+wGnDmV3ix2eELOeDlHOKSQx0Q+7BcxrBWzQQGkxAiMPjJz+2gzfKXU/58MX8CNnvXFWSVLnKRDtR+ntU4rJQ==",
169
+ "version": "0.37.8",
170
+ "resolved": "https://registry.npmjs.org/@asyncapi/glee/-/glee-0.37.8.tgz",
171
+ "integrity": "sha512-1qa/OuOzA38AvuNu1w/wduXKnXjxtHMcCYggVoCQVIzJZ6lG9xaK73g3floUUDK5sMAqiytvisCyGVobXzv4Kw==",
172
172
  "dependencies": {
173
173
  "@asyncapi/generator": "^1.17.25",
174
- "@asyncapi/html-template": "^2.3.10",
175
- "@asyncapi/markdown-template": "^1.6.5",
174
+ "@asyncapi/html-template": "^2.3.14",
175
+ "@asyncapi/markdown-template": "^1.6.6",
176
176
  "@asyncapi/parser": "^3.1.0",
177
177
  "@next/env": "^14.0.4",
178
178
  "@types/jest": "^29.5.11",
@@ -213,11 +213,11 @@
213
213
  }
214
214
  },
215
215
  "node_modules/@asyncapi/html-template": {
216
- "version": "2.3.13",
217
- "resolved": "https://registry.npmjs.org/@asyncapi/html-template/-/html-template-2.3.13.tgz",
218
- "integrity": "sha512-IxldILMhc78cQVGf+gP9ggBeclOs7d2AHGhoCeyLsqfTbn4ndnxLS5IjI+JgAf1BAPvHFg6bBX6Tnfnw8ZxxFw==",
216
+ "version": "2.3.14",
217
+ "resolved": "https://registry.npmjs.org/@asyncapi/html-template/-/html-template-2.3.14.tgz",
218
+ "integrity": "sha512-e7jHGXNtovA2u9n0A9CtPy+xkXa76vpz+gdY/4q4TC4bm6EadEhcDiNQ0LtFnUjcHDuxXzYZs8/0BZr1vSBeQw==",
219
219
  "dependencies": {
220
- "@asyncapi/generator-react-sdk": "^1.1.1",
220
+ "@asyncapi/generator-react-sdk": "^1.1.2",
221
221
  "@asyncapi/parser": "^3.1.0",
222
222
  "@asyncapi/react-component": "^1.2.13",
223
223
  "highlight.js": "10.7.3",
@@ -228,11 +228,11 @@
228
228
  }
229
229
  },
230
230
  "node_modules/@asyncapi/markdown-template": {
231
- "version": "1.6.5",
232
- "resolved": "https://registry.npmjs.org/@asyncapi/markdown-template/-/markdown-template-1.6.5.tgz",
233
- "integrity": "sha512-5lzj5HO0sKNkg90fRQ/cE20MJoYmqKdvHhRDocFm5LKN0OPj3sgFqExYE64mVA0AEdXcUeF23dpv8094qc2hkg==",
231
+ "version": "1.6.6",
232
+ "resolved": "https://registry.npmjs.org/@asyncapi/markdown-template/-/markdown-template-1.6.6.tgz",
233
+ "integrity": "sha512-Hm9B/g2B9lHpE2uoM6nKQqU3PmRGpalwm/ufKcLHV4aPq3S870nvD2TWPv+qVMCCeJMyOeJi0l8Wj5yWY4TU2A==",
234
234
  "dependencies": {
235
- "@asyncapi/generator-react-sdk": "^1.1.1",
235
+ "@asyncapi/generator-react-sdk": "^1.1.2",
236
236
  "openapi-sampler": "^1.3.0",
237
237
  "yaml": "^1.10.2"
238
238
  }
@@ -10166,9 +10166,9 @@
10166
10166
  "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
10167
10167
  },
10168
10168
  "node_modules/path-to-regexp": {
10169
- "version": "6.2.2",
10170
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz",
10171
- "integrity": "sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw=="
10169
+ "version": "6.3.0",
10170
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz",
10171
+ "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ=="
10172
10172
  },
10173
10173
  "node_modules/path-type": {
10174
10174
  "version": "4.0.0",
@@ -16,6 +16,6 @@
16
16
  "author": "Fran Mendez",
17
17
  "license": "Apache-2.0",
18
18
  "dependencies": {
19
- "@asyncapi/glee": "^0.37.7"
19
+ "@asyncapi/glee": "^0.37.8"
20
20
  }
21
21
  }
@@ -6,7 +6,7 @@
6
6
  "": {
7
7
  "name": "myTemplate",
8
8
  "dependencies": {
9
- "@asyncapi/generator-react-sdk": "^1.1.1"
9
+ "@asyncapi/generator-react-sdk": "^1.1.2"
10
10
  }
11
11
  },
12
12
  "node_modules/@ampproject/remapping": {
@@ -23,9 +23,9 @@
23
23
  }
24
24
  },
25
25
  "node_modules/@asyncapi/generator-react-sdk": {
26
- "version": "1.1.1",
27
- "resolved": "https://registry.npmjs.org/@asyncapi/generator-react-sdk/-/generator-react-sdk-1.1.1.tgz",
28
- "integrity": "sha512-R86Xa20wLtzI4fVf9HECR+UCSYvNE1B4WZs3eI5jAvGtONBTFOvkixd4SUL+uLP4DP96pU2DuKhih/PQbmMneQ==",
26
+ "version": "1.1.2",
27
+ "resolved": "https://registry.npmjs.org/@asyncapi/generator-react-sdk/-/generator-react-sdk-1.1.2.tgz",
28
+ "integrity": "sha512-hU9ux8hEMhXwQWWzySZlZ+L5SsM0r4uXdPFvYRTX5uVGeLKGoj4Ok8hY2gPhahKcvMELOIU2mw3O6h9h9AcskQ==",
29
29
  "dependencies": {
30
30
  "@asyncapi/parser": "^3.1.0",
31
31
  "@babel/core": "7.12.9",
@@ -5,6 +5,6 @@
5
5
  "supportedProtocols": []
6
6
  },
7
7
  "dependencies": {
8
- "@asyncapi/generator-react-sdk": "^1.1.1"
8
+ "@asyncapi/generator-react-sdk": "^1.1.2"
9
9
  }
10
10
  }
@@ -4,7 +4,9 @@ export default class Convert extends Command {
4
4
  static flags: {
5
5
  help: import("@oclif/core/lib/interfaces").BooleanFlag<void>;
6
6
  output: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
7
+ format: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
7
8
  'target-version': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
9
+ perspective: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
8
10
  };
9
11
  static args: {
10
12
  'spec-file': import("@oclif/core/lib/interfaces").Arg<string | undefined, Record<string, unknown>>;
@@ -27,9 +27,19 @@ class Convert extends base_1.default {
27
27
  this.specFile = yield (0, SpecificationFile_1.load)(filePath);
28
28
  // eslint-disable-next-line sonarjs/no-duplicate-string
29
29
  this.metricsMetadata.to_version = flags['target-version'];
30
+ // Determine if the input is OpenAPI or AsyncAPI
31
+ const specJson = this.specFile.toJson();
32
+ const isOpenAPI = flags['format'] === 'openapi';
33
+ const isAsyncAPI = flags['format'] === 'asyncapi';
30
34
  // CONVERSION
31
- convertedFile = (0, converter_1.convert)(this.specFile.text(), flags['target-version']);
32
- if (convertedFile) {
35
+ if (isOpenAPI) {
36
+ convertedFile = (0, converter_1.convertOpenAPI)(this.specFile.text(), specJson.openapi, {
37
+ perspective: flags['perspective']
38
+ });
39
+ this.log(`🎉 The OpenAPI document has been successfully converted to AsyncAPI version ${(0, picocolors_1.green)(flags['target-version'])}!`);
40
+ }
41
+ else if (isAsyncAPI) {
42
+ convertedFile = (0, converter_1.convert)(this.specFile.text(), flags['target-version']);
33
43
  if (this.specFile.getFilePath()) {
34
44
  this.log(`🎉 The ${(0, picocolors_1.cyan)(this.specFile.getFilePath())} file has been successfully converted to version ${(0, picocolors_1.green)(flags['target-version'])}!!`);
35
45
  }
@@ -68,7 +78,7 @@ class Convert extends base_1.default {
68
78
  }
69
79
  }
70
80
  exports.default = Convert;
71
- Convert.description = 'Convert asyncapi documents older to newer versions';
81
+ Convert.description = 'Convert asyncapi documents older to newer versions or OpenAPI documents to AsyncAPI';
72
82
  Convert.flags = (0, convert_flags_1.convertFlags)(latestVersion);
73
83
  Convert.args = {
74
84
  'spec-file': core_1.Args.string({ description: 'spec path, url, or context-name', required: false }),
@@ -1,5 +1,7 @@
1
1
  export declare const convertFlags: (latestVersion: string) => {
2
2
  help: import("@oclif/core/lib/interfaces").BooleanFlag<void>;
3
3
  output: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
4
+ format: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
4
5
  'target-version': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
6
+ perspective: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
5
7
  };
@@ -6,7 +6,20 @@ const convertFlags = (latestVersion) => {
6
6
  return {
7
7
  help: core_1.Flags.help({ char: 'h' }),
8
8
  output: core_1.Flags.string({ char: 'o', description: 'path to the file where the result is saved' }),
9
- 'target-version': core_1.Flags.string({ char: 't', description: 'asyncapi version to convert to', default: latestVersion })
9
+ format: core_1.Flags.string({
10
+ char: 'f',
11
+ description: 'Specify the format to convert from (openapi or asyncapi)',
12
+ options: ['openapi', 'asyncapi'],
13
+ required: true,
14
+ default: 'asyncapi',
15
+ }),
16
+ 'target-version': core_1.Flags.string({ char: 't', description: 'asyncapi version to convert to', default: latestVersion }),
17
+ perspective: core_1.Flags.string({
18
+ char: 'p',
19
+ description: 'Perspective to use when converting OpenAPI to AsyncAPI (client or server). Note: This option is only applicable for OpenAPI to AsyncAPI conversions.',
20
+ options: ['client', 'server'],
21
+ default: 'server',
22
+ }),
10
23
  };
11
24
  };
12
25
  exports.convertFlags = convertFlags;
@@ -75,7 +75,7 @@
75
75
  "required": false
76
76
  }
77
77
  },
78
- "description": "Convert asyncapi documents older to newer versions",
78
+ "description": "Convert asyncapi documents older to newer versions or OpenAPI documents to AsyncAPI",
79
79
  "flags": {
80
80
  "help": {
81
81
  "char": "h",
@@ -92,6 +92,20 @@
92
92
  "multiple": false,
93
93
  "type": "option"
94
94
  },
95
+ "format": {
96
+ "char": "f",
97
+ "description": "Specify the format to convert from (openapi or asyncapi)",
98
+ "name": "format",
99
+ "required": true,
100
+ "default": "asyncapi",
101
+ "hasDynamicHelp": false,
102
+ "multiple": false,
103
+ "options": [
104
+ "openapi",
105
+ "asyncapi"
106
+ ],
107
+ "type": "option"
108
+ },
95
109
  "target-version": {
96
110
  "char": "t",
97
111
  "description": "asyncapi version to convert to",
@@ -100,6 +114,19 @@
100
114
  "hasDynamicHelp": false,
101
115
  "multiple": false,
102
116
  "type": "option"
117
+ },
118
+ "perspective": {
119
+ "char": "p",
120
+ "description": "Perspective to use when converting OpenAPI to AsyncAPI (client or server). Note: This option is only applicable for OpenAPI to AsyncAPI conversions.",
121
+ "name": "perspective",
122
+ "default": "server",
123
+ "hasDynamicHelp": false,
124
+ "multiple": false,
125
+ "options": [
126
+ "client",
127
+ "server"
128
+ ],
129
+ "type": "option"
103
130
  }
104
131
  },
105
132
  "hasDynamicHelp": false,
@@ -1587,5 +1614,5 @@
1587
1614
  ]
1588
1615
  }
1589
1616
  },
1590
- "version": "2.3.12"
1617
+ "version": "2.4.0"
1591
1618
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@asyncapi/cli",
3
3
  "description": "All in one CLI for all AsyncAPI tools",
4
- "version": "2.3.12",
4
+ "version": "2.4.0",
5
5
  "author": "@asyncapi",
6
6
  "bin": {
7
7
  "asyncapi": "./bin/run_bin"
@@ -10,7 +10,7 @@
10
10
  "dependencies": {
11
11
  "@asyncapi/avro-schema-parser": "^3.0.23",
12
12
  "@asyncapi/bundler": "^0.6.3",
13
- "@asyncapi/converter": "^1.6.0",
13
+ "@asyncapi/converter": "^1.6.1",
14
14
  "@asyncapi/diff": "^0.4.1",
15
15
  "@asyncapi/generator": "^1.17.25",
16
16
  "@asyncapi/modelina": "^3.7.0",