@asyncapi/cli 0.37.1 → 0.38.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.
package/README.md CHANGED
@@ -74,6 +74,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
74
74
  </tr>
75
75
  <tr>
76
76
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/sambhavgupta0705"><img src="https://avatars.githubusercontent.com/u/81870866?v=4?s=100" width="100px;" alt="Sambhav Gupta"/><br /><sub><b>Sambhav Gupta</b></sub></a><br /><a href="https://github.com/asyncapi/cli/commits?author=sambhavgupta0705" title="Code">💻</a> <a href="https://github.com/asyncapi/cli/commits?author=sambhavgupta0705" title="Tests">⚠️</a></td>
77
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/CyberHippo"><img src="https://avatars.githubusercontent.com/u/18269437?v=4?s=100" width="100px;" alt="Hippolyte Vergnol"/><br /><sub><b>Hippolyte Vergnol</b></sub></a><br /><a href="https://github.com/asyncapi/cli/commits?author=CyberHippo" title="Code">💻</a> <a href="#infra-CyberHippo" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
77
78
  </tr>
78
79
  </tbody>
79
80
  </table>
@@ -24,6 +24,7 @@ export default class Models extends Command {
24
24
  tsModelType: import("@oclif/core/lib/interfaces").OptionFlag<string>;
25
25
  tsEnumType: import("@oclif/core/lib/interfaces").OptionFlag<string>;
26
26
  tsModuleSystem: import("@oclif/core/lib/interfaces").OptionFlag<string>;
27
+ tsIncludeComments: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
27
28
  tsExportType: import("@oclif/core/lib/interfaces").OptionFlag<string>;
28
29
  tsJsonBinPack: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
29
30
  /**
@@ -24,7 +24,7 @@ class Models extends base_1.default {
24
24
  run() {
25
25
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
26
26
  const { args, flags } = yield this.parse(Models);
27
- const { tsModelType, tsEnumType, tsModuleSystem, tsExportType, tsJsonBinPack, namespace, csharpAutoImplement, csharpArrayType, packageName, output } = flags;
27
+ const { tsModelType, tsEnumType, tsIncludeComments, tsModuleSystem, tsExportType, tsJsonBinPack, namespace, csharpAutoImplement, csharpArrayType, packageName, output } = flags;
28
28
  const { language, file } = args;
29
29
  const inputFile = (yield (0, SpecificationFile_1.load)(file)) || (yield (0, SpecificationFile_1.load)());
30
30
  const { document, status } = yield (0, parser_1.parse)(this, inputFile, flags);
@@ -47,20 +47,24 @@ class Models extends base_1.default {
47
47
  });
48
48
  let fileGenerator;
49
49
  let fileOptions = {};
50
+ const presets = [];
50
51
  switch (language) {
51
52
  case Languages.typescript:
53
+ if (tsIncludeComments) {
54
+ presets.push(modelina_1.TS_DESCRIPTION_PRESET);
55
+ }
56
+ if (tsJsonBinPack) {
57
+ presets.push({
58
+ preset: modelina_1.TS_COMMON_PRESET,
59
+ options: {
60
+ marshalling: true
61
+ }
62
+ }, modelina_1.TS_JSONBINPACK_PRESET);
63
+ }
52
64
  fileGenerator = new modelina_1.TypeScriptFileGenerator({
53
65
  modelType: tsModelType,
54
66
  enumType: tsEnumType,
55
- presets: tsJsonBinPack ? [
56
- {
57
- preset: modelina_1.TS_COMMON_PRESET,
58
- options: {
59
- marshalling: true
60
- }
61
- },
62
- modelina_1.TS_JSONBINPACK_PRESET
63
- ] : []
67
+ presets
64
68
  });
65
69
  fileOptions = {
66
70
  moduleSystem: tsModuleSystem,
@@ -188,6 +192,10 @@ Models.flags = Object.assign({ help: core_1.Flags.help({ char: 'h' }), output: c
188
192
  description: 'TypeScript specific, define the module system to be used.',
189
193
  required: false,
190
194
  default: 'ESM',
195
+ }), tsIncludeComments: core_1.Flags.boolean({
196
+ description: 'TypeScript specific, if enabled add comments while generating models.',
197
+ required: false,
198
+ default: false,
191
199
  }), tsExportType: core_1.Flags.string({
192
200
  type: 'option',
193
201
  options: ['default', 'named'],
@@ -1 +1,856 @@
1
- {"version":"0.37.1","commands":{"bundle":{"id":"bundle","description":"bundle one or multiple asyncapi documents and their references together.","strict":false,"pluginName":"@asyncapi/cli","pluginAlias":"@asyncapi/cli","pluginType":"core","aliases":[],"examples":["asyncapi bundle ./asyncapi.yaml > final-asyncapi.yaml","asyncapi bundle ./asyncapi.yaml --output final-asyncapi.yaml","asyncapi bundle ./asyncapi.yaml ./features.yaml --reference-into-components","asyncapi bundle ./asyncapi.yaml ./features.yaml --base ./asyncapi.yaml --reference-into-components"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"output":{"name":"output","type":"option","char":"o","description":"The output file name. Omitting this flag the result will be printed in the console.","multiple":false},"reference-into-components":{"name":"reference-into-components","type":"boolean","char":"r","description":"Bundle the message $refs into components object.","allowNo":false},"base":{"name":"base","type":"option","char":"b","description":"Path to the file which will act as a base. This is required when some properties are to needed to be overwritten.","multiple":false}},"args":[]},"convert":{"id":"convert","description":"Convert asyncapi documents older to newer versions","strict":true,"pluginName":"@asyncapi/cli","pluginAlias":"@asyncapi/cli","pluginType":"core","aliases":[],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"output":{"name":"output","type":"option","char":"o","description":"path to the file where the result is saved","multiple":false},"target-version":{"name":"target-version","type":"option","char":"t","description":"asyncapi version to convert to","multiple":false,"default":"2.6.0"}},"args":[{"name":"spec-file","description":"spec path, url, or context-name","required":false}]},"diff":{"id":"diff","description":"Find diff between two asyncapi files","strict":true,"pluginName":"@asyncapi/cli","pluginAlias":"@asyncapi/cli","pluginType":"core","aliases":[],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"format":{"name":"format","type":"option","char":"f","description":"format of the output","multiple":false,"options":["json","yaml","yml"],"default":"yaml"},"type":{"name":"type","type":"option","char":"t","description":"type of the output","multiple":false,"options":["breaking","non-breaking","unclassified","all"],"default":"all"},"overrides":{"name":"overrides","type":"option","char":"o","description":"path to JSON file containing the override properties","multiple":false},"watch":{"name":"watch","type":"boolean","char":"w","description":"Enable watch mode","allowNo":false},"log-diagnostics":{"name":"log-diagnostics","type":"boolean","description":"log validation diagnostics or not","allowNo":true},"diagnostics-format":{"name":"diagnostics-format","type":"option","description":"format to use for validation diagnostics","helpValue":"(json|stylish|junit|html|text|teamcity|pretty)","multiple":false,"options":["json","stylish","junit","html","text","teamcity","pretty"],"default":"stylish"},"fail-severity":{"name":"fail-severity","type":"option","description":"diagnostics of this level or above will trigger a failure exit code","helpValue":"(error|warn|info|hint)","multiple":false,"options":["error","warn","info","hint"],"default":"error"}},"args":[{"name":"old","description":"old spec path, URL or context-name","required":true},{"name":"new","description":"new spec path, URL or context-name","required":true}]},"new":{"id":"new","description":"Creates a new asyncapi file","strict":true,"pluginName":"@asyncapi/cli","pluginAlias":"@asyncapi/cli","pluginType":"core","aliases":[],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"file-name":{"name":"file-name","type":"option","char":"n","description":"name of the file","multiple":false},"example":{"name":"example","type":"option","char":"e","description":"name of the example to use","multiple":false},"studio":{"name":"studio","type":"boolean","char":"s","description":"open in Studio","allowNo":false},"port":{"name":"port","type":"option","char":"p","description":"port in which to start Studio","multiple":false},"no-tty":{"name":"no-tty","type":"boolean","description":"do not use an interactive terminal","allowNo":false}},"args":[]},"optimize":{"id":"optimize","description":"optimize asyncapi specification file","strict":true,"pluginName":"@asyncapi/cli","pluginAlias":"@asyncapi/cli","pluginType":"core","aliases":[],"examples":["asyncapi optimize ./asyncapi.yaml","asyncapi optimize ./asyncapi.yaml --no-tty","asyncapi optimize ./asyncapi.yaml --optimization=remove-components,reuse-components,move-to-components --no-tty","asyncapi optimize ./asyncapi.yaml --optimization=remove-components,reuse-components,move-to-components --output=terminal --no-tty"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"optimization":{"name":"optimization","type":"option","char":"p","description":"select the type of optimizations that you want to apply.","multiple":true,"options":["remove-components","reuse-components","move-to-components"],"default":["remove-components","reuse-components","move-to-components"]},"output":{"name":"output","type":"option","char":"o","description":"select where you want the output.","multiple":false,"options":["terminal","new-file","overwrite"],"default":"terminal"},"no-tty":{"name":"no-tty","type":"boolean","description":"do not use an interactive terminal","allowNo":false}},"args":[{"name":"spec-file","description":"spec path, url, or context-name","required":false}]},"validate":{"id":"validate","description":"validate asyncapi file","strict":true,"pluginName":"@asyncapi/cli","pluginAlias":"@asyncapi/cli","pluginType":"core","aliases":[],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"watch":{"name":"watch","type":"boolean","char":"w","description":"Enable watch mode","allowNo":false},"log-diagnostics":{"name":"log-diagnostics","type":"boolean","description":"log validation diagnostics or not","allowNo":true},"diagnostics-format":{"name":"diagnostics-format","type":"option","description":"format to use for validation diagnostics","helpValue":"(json|stylish|junit|html|text|teamcity|pretty)","multiple":false,"options":["json","stylish","junit","html","text","teamcity","pretty"],"default":"stylish"},"fail-severity":{"name":"fail-severity","type":"option","description":"diagnostics of this level or above will trigger a failure exit code","helpValue":"(error|warn|info|hint)","multiple":false,"options":["error","warn","info","hint"],"default":"error"}},"args":[{"name":"spec-file","description":"spec path, url, or context-name","required":false}]},"config":{"id":"config","description":"CLI config settings","strict":true,"pluginName":"@asyncapi/cli","pluginAlias":"@asyncapi/cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"generate:fromTemplate":{"id":"generate:fromTemplate","description":"Generates whatever you want using templates compatible with AsyncAPI Generator.","strict":true,"pluginName":"@asyncapi/cli","pluginAlias":"@asyncapi/cli","pluginType":"core","aliases":[],"examples":["asyncapi generate fromTemplate asyncapi.yaml @asyncapi/html-template --param version=1.0.0 singleFile=true --output ./docs --force-write"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"disable-hook":{"name":"disable-hook","type":"option","char":"d","description":"Disable a specific hook type or hooks from a given hook type","multiple":true},"install":{"name":"install","type":"boolean","char":"i","description":"Installs the template and its dependencies (defaults to false)","allowNo":false},"debug":{"name":"debug","type":"boolean","description":"Enable more specific errors in the console","allowNo":false},"no-overwrite":{"name":"no-overwrite","type":"option","char":"n","description":"Glob or path of the file(s) to skip when regenerating","multiple":true},"output":{"name":"output","type":"option","char":"o","description":"Directory where to put the generated files (defaults to current directory)","multiple":false},"force-write":{"name":"force-write","type":"boolean","description":"Force writing of the generated files to given directory even if it is a git repo with unstaged files or not empty dir (defaults to false)","allowNo":false},"watch":{"name":"watch","type":"boolean","char":"w","description":"Watches the template directory and the AsyncAPI document, and re-generate the files when changes occur. Ignores the output directory.","allowNo":false},"param":{"name":"param","type":"option","char":"p","description":"Additional param to pass to templates","multiple":true},"map-base-url":{"name":"map-base-url","type":"option","description":"Maps all schema references from base url to local folder","multiple":false}},"args":[{"name":"asyncapi","description":"- Local path, url or context-name pointing to AsyncAPI file","required":true},{"name":"template","description":"- Name of the generator template like for example @asyncapi/html-template or https://github.com/asyncapi/html-template","required":true}]},"generate":{"id":"generate","description":"Generate typed models or other things like clients, applications or docs using AsyncAPI Generator templates.","strict":true,"pluginName":"@asyncapi/cli","pluginAlias":"@asyncapi/cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"generate:models":{"id":"generate:models","description":"Generates typed models","strict":true,"pluginName":"@asyncapi/cli","pluginAlias":"@asyncapi/cli","pluginType":"core","aliases":[],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"output":{"name":"output","type":"option","char":"o","description":"The output directory where the models should be written to. Omitting this flag will write the models to `stdout`.","required":false,"multiple":false},"tsModelType":{"name":"tsModelType","type":"option","description":"TypeScript specific, define which type of model needs to be generated.","required":false,"multiple":false,"options":["class","interface"],"default":"class"},"tsEnumType":{"name":"tsEnumType","type":"option","description":"TypeScript specific, define which type of enums needs to be generated.","required":false,"multiple":false,"options":["enum","union"],"default":"enum"},"tsModuleSystem":{"name":"tsModuleSystem","type":"option","description":"TypeScript specific, define the module system to be used.","required":false,"multiple":false,"options":["ESM","CJS"],"default":"ESM"},"tsExportType":{"name":"tsExportType","type":"option","description":"TypeScript specific, define which type of export needs to be generated.","required":false,"multiple":false,"options":["default","named"],"default":"default"},"tsJsonBinPack":{"name":"tsJsonBinPack","type":"boolean","description":"TypeScript specific, define basic support for serializing to and from binary with jsonbinpack.","required":false,"allowNo":false},"packageName":{"name":"packageName","type":"option","description":"Go, Java and Kotlin specific, define the package to use for the generated models. This is required when language is `go`, `java` or `kotlin`.","required":false,"multiple":false},"namespace":{"name":"namespace","type":"option","description":"C# specific, define the namespace to use for the generated models. This is required when language is `csharp`.","required":false,"multiple":false},"csharpAutoImplement":{"name":"csharpAutoImplement","type":"boolean","description":"C# specific, define whether to generate auto-implemented properties or not.","required":false,"allowNo":false},"csharpArrayType":{"name":"csharpArrayType","type":"option","description":"C# specific, define which type of array needs to be generated.","required":false,"multiple":false,"options":["Array","List"],"default":"Array"},"log-diagnostics":{"name":"log-diagnostics","type":"boolean","description":"log validation diagnostics or not","allowNo":true},"diagnostics-format":{"name":"diagnostics-format","type":"option","description":"format to use for validation diagnostics","helpValue":"(json|stylish|junit|html|text|teamcity|pretty)","multiple":false,"options":["json","stylish","junit","html","text","teamcity","pretty"],"default":"stylish"},"fail-severity":{"name":"fail-severity","type":"option","description":"diagnostics of this level or above will trigger a failure exit code","helpValue":"(error|warn|info|hint)","multiple":false,"options":["error","warn","info","hint"],"default":"error"}},"args":[{"name":"language","description":"The language you want the typed models generated for.","required":true,"options":["typescript","csharp","golang","java","javascript","dart","python","rust","kotlin"]},{"name":"file","description":"Path or URL to the AsyncAPI document, or context-name","required":true}]},"start":{"id":"start","description":"Start asyncapi studio","strict":true,"pluginName":"@asyncapi/cli","pluginAlias":"@asyncapi/cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"start:studio":{"id":"start:studio","description":"starts a new local instance of Studio","strict":true,"pluginName":"@asyncapi/cli","pluginAlias":"@asyncapi/cli","pluginType":"core","aliases":[],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"file":{"name":"file","type":"option","char":"f","description":"path to the AsyncAPI file to link with Studio","multiple":false},"port":{"name":"port","type":"option","char":"p","description":"port in which to start Studio","multiple":false}},"args":[]},"config:context:add":{"id":"config:context:add","description":"Add or modify a context in the store","strict":true,"pluginName":"@asyncapi/cli","pluginAlias":"@asyncapi/cli","pluginType":"core","aliases":[],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false}},"args":[{"name":"context-name","description":"context name","required":true},{"name":"spec-file-path","description":"file path of the spec file","required":true}]},"config:context:current":{"id":"config:context:current","description":"Shows the current context that is being used","strict":true,"pluginName":"@asyncapi/cli","pluginAlias":"@asyncapi/cli","pluginType":"core","aliases":[],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false}},"args":[]},"config:context":{"id":"config:context","strict":true,"pluginName":"@asyncapi/cli","pluginAlias":"@asyncapi/cli","pluginType":"core","aliases":[],"flags":{},"args":[]},"config:context:list":{"id":"config:context:list","description":"List all the stored context in the store","strict":true,"pluginName":"@asyncapi/cli","pluginAlias":"@asyncapi/cli","pluginType":"core","aliases":[],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false}},"args":[]},"config:context:remove":{"id":"config:context:remove","description":"Delete a context from the store","strict":true,"pluginName":"@asyncapi/cli","pluginAlias":"@asyncapi/cli","pluginType":"core","aliases":[],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false}},"args":[{"name":"context-name","description":"Name of the context to delete","required":true}]},"config:context:use":{"id":"config:context:use","description":"Set a context as current","strict":true,"pluginName":"@asyncapi/cli","pluginAlias":"@asyncapi/cli","pluginType":"core","aliases":[],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false}},"args":[{"name":"context-name","description":"name of the saved context","required":true}]}}}
1
+ {
2
+ "version": "0.38.0",
3
+ "commands": {
4
+ "bundle": {
5
+ "id": "bundle",
6
+ "description": "bundle one or multiple asyncapi documents and their references together.",
7
+ "strict": false,
8
+ "pluginName": "@asyncapi/cli",
9
+ "pluginAlias": "@asyncapi/cli",
10
+ "pluginType": "core",
11
+ "aliases": [],
12
+ "examples": [
13
+ "asyncapi bundle ./asyncapi.yaml > final-asyncapi.yaml",
14
+ "asyncapi bundle ./asyncapi.yaml --output final-asyncapi.yaml",
15
+ "asyncapi bundle ./asyncapi.yaml ./features.yaml --reference-into-components",
16
+ "asyncapi bundle ./asyncapi.yaml ./features.yaml --base ./asyncapi.yaml --reference-into-components"
17
+ ],
18
+ "flags": {
19
+ "help": {
20
+ "name": "help",
21
+ "type": "boolean",
22
+ "char": "h",
23
+ "description": "Show CLI help.",
24
+ "allowNo": false
25
+ },
26
+ "output": {
27
+ "name": "output",
28
+ "type": "option",
29
+ "char": "o",
30
+ "description": "The output file name. Omitting this flag the result will be printed in the console.",
31
+ "multiple": false
32
+ },
33
+ "reference-into-components": {
34
+ "name": "reference-into-components",
35
+ "type": "boolean",
36
+ "char": "r",
37
+ "description": "Bundle the message $refs into components object.",
38
+ "allowNo": false
39
+ },
40
+ "base": {
41
+ "name": "base",
42
+ "type": "option",
43
+ "char": "b",
44
+ "description": "Path to the file which will act as a base. This is required when some properties are to needed to be overwritten.",
45
+ "multiple": false
46
+ }
47
+ },
48
+ "args": {}
49
+ },
50
+ "convert": {
51
+ "id": "convert",
52
+ "description": "Convert asyncapi documents older to newer versions",
53
+ "strict": true,
54
+ "pluginName": "@asyncapi/cli",
55
+ "pluginAlias": "@asyncapi/cli",
56
+ "pluginType": "core",
57
+ "aliases": [],
58
+ "flags": {
59
+ "help": {
60
+ "name": "help",
61
+ "type": "boolean",
62
+ "char": "h",
63
+ "description": "Show CLI help.",
64
+ "allowNo": false
65
+ },
66
+ "output": {
67
+ "name": "output",
68
+ "type": "option",
69
+ "char": "o",
70
+ "description": "path to the file where the result is saved",
71
+ "multiple": false
72
+ },
73
+ "target-version": {
74
+ "name": "target-version",
75
+ "type": "option",
76
+ "char": "t",
77
+ "description": "asyncapi version to convert to",
78
+ "multiple": false,
79
+ "default": "2.6.0"
80
+ }
81
+ },
82
+ "args": {
83
+ "spec-file": {
84
+ "name": "spec-file",
85
+ "description": "spec path, url, or context-name",
86
+ "required": false
87
+ }
88
+ }
89
+ },
90
+ "diff": {
91
+ "id": "diff",
92
+ "description": "Find diff between two asyncapi files",
93
+ "strict": true,
94
+ "pluginName": "@asyncapi/cli",
95
+ "pluginAlias": "@asyncapi/cli",
96
+ "pluginType": "core",
97
+ "aliases": [],
98
+ "flags": {
99
+ "help": {
100
+ "name": "help",
101
+ "type": "boolean",
102
+ "char": "h",
103
+ "description": "Show CLI help.",
104
+ "allowNo": false
105
+ },
106
+ "format": {
107
+ "name": "format",
108
+ "type": "option",
109
+ "char": "f",
110
+ "description": "format of the output",
111
+ "multiple": false,
112
+ "options": [
113
+ "json",
114
+ "yaml",
115
+ "yml"
116
+ ],
117
+ "default": "yaml"
118
+ },
119
+ "type": {
120
+ "name": "type",
121
+ "type": "option",
122
+ "char": "t",
123
+ "description": "type of the output",
124
+ "multiple": false,
125
+ "options": [
126
+ "breaking",
127
+ "non-breaking",
128
+ "unclassified",
129
+ "all"
130
+ ],
131
+ "default": "all"
132
+ },
133
+ "overrides": {
134
+ "name": "overrides",
135
+ "type": "option",
136
+ "char": "o",
137
+ "description": "path to JSON file containing the override properties",
138
+ "multiple": false
139
+ },
140
+ "watch": {
141
+ "name": "watch",
142
+ "type": "boolean",
143
+ "char": "w",
144
+ "description": "Enable watch mode",
145
+ "allowNo": false
146
+ },
147
+ "log-diagnostics": {
148
+ "name": "log-diagnostics",
149
+ "type": "boolean",
150
+ "description": "log validation diagnostics or not",
151
+ "allowNo": true
152
+ },
153
+ "diagnostics-format": {
154
+ "name": "diagnostics-format",
155
+ "type": "option",
156
+ "description": "format to use for validation diagnostics",
157
+ "helpValue": "(json|stylish|junit|html|text|teamcity|pretty)",
158
+ "multiple": false,
159
+ "options": [
160
+ "json",
161
+ "stylish",
162
+ "junit",
163
+ "html",
164
+ "text",
165
+ "teamcity",
166
+ "pretty"
167
+ ],
168
+ "default": "stylish"
169
+ },
170
+ "fail-severity": {
171
+ "name": "fail-severity",
172
+ "type": "option",
173
+ "description": "diagnostics of this level or above will trigger a failure exit code",
174
+ "helpValue": "(error|warn|info|hint)",
175
+ "multiple": false,
176
+ "options": [
177
+ "error",
178
+ "warn",
179
+ "info",
180
+ "hint"
181
+ ],
182
+ "default": "error"
183
+ }
184
+ },
185
+ "args": {
186
+ "old": {
187
+ "name": "old",
188
+ "description": "old spec path, URL or context-name",
189
+ "required": true
190
+ },
191
+ "new": {
192
+ "name": "new",
193
+ "description": "new spec path, URL or context-name",
194
+ "required": true
195
+ }
196
+ }
197
+ },
198
+ "new": {
199
+ "id": "new",
200
+ "description": "Creates a new asyncapi file",
201
+ "strict": true,
202
+ "pluginName": "@asyncapi/cli",
203
+ "pluginAlias": "@asyncapi/cli",
204
+ "pluginType": "core",
205
+ "aliases": [],
206
+ "flags": {
207
+ "help": {
208
+ "name": "help",
209
+ "type": "boolean",
210
+ "char": "h",
211
+ "description": "Show CLI help.",
212
+ "allowNo": false
213
+ },
214
+ "file-name": {
215
+ "name": "file-name",
216
+ "type": "option",
217
+ "char": "n",
218
+ "description": "name of the file",
219
+ "multiple": false
220
+ },
221
+ "example": {
222
+ "name": "example",
223
+ "type": "option",
224
+ "char": "e",
225
+ "description": "name of the example to use",
226
+ "multiple": false
227
+ },
228
+ "studio": {
229
+ "name": "studio",
230
+ "type": "boolean",
231
+ "char": "s",
232
+ "description": "open in Studio",
233
+ "allowNo": false
234
+ },
235
+ "port": {
236
+ "name": "port",
237
+ "type": "option",
238
+ "char": "p",
239
+ "description": "port in which to start Studio",
240
+ "multiple": false
241
+ },
242
+ "no-tty": {
243
+ "name": "no-tty",
244
+ "type": "boolean",
245
+ "description": "do not use an interactive terminal",
246
+ "allowNo": false
247
+ }
248
+ },
249
+ "args": {}
250
+ },
251
+ "optimize": {
252
+ "id": "optimize",
253
+ "description": "optimize asyncapi specification file",
254
+ "strict": true,
255
+ "pluginName": "@asyncapi/cli",
256
+ "pluginAlias": "@asyncapi/cli",
257
+ "pluginType": "core",
258
+ "aliases": [],
259
+ "examples": [
260
+ "asyncapi optimize ./asyncapi.yaml",
261
+ "asyncapi optimize ./asyncapi.yaml --no-tty",
262
+ "asyncapi optimize ./asyncapi.yaml --optimization=remove-components,reuse-components,move-to-components --no-tty",
263
+ "asyncapi optimize ./asyncapi.yaml --optimization=remove-components,reuse-components,move-to-components --output=terminal --no-tty"
264
+ ],
265
+ "flags": {
266
+ "help": {
267
+ "name": "help",
268
+ "type": "boolean",
269
+ "char": "h",
270
+ "description": "Show CLI help.",
271
+ "allowNo": false
272
+ },
273
+ "optimization": {
274
+ "name": "optimization",
275
+ "type": "option",
276
+ "char": "p",
277
+ "description": "select the type of optimizations that you want to apply.",
278
+ "multiple": true,
279
+ "options": [
280
+ "remove-components",
281
+ "reuse-components",
282
+ "move-to-components"
283
+ ],
284
+ "default": [
285
+ "remove-components",
286
+ "reuse-components",
287
+ "move-to-components"
288
+ ]
289
+ },
290
+ "output": {
291
+ "name": "output",
292
+ "type": "option",
293
+ "char": "o",
294
+ "description": "select where you want the output.",
295
+ "multiple": false,
296
+ "options": [
297
+ "terminal",
298
+ "new-file",
299
+ "overwrite"
300
+ ],
301
+ "default": "terminal"
302
+ },
303
+ "no-tty": {
304
+ "name": "no-tty",
305
+ "type": "boolean",
306
+ "description": "do not use an interactive terminal",
307
+ "allowNo": false
308
+ }
309
+ },
310
+ "args": {
311
+ "spec-file": {
312
+ "name": "spec-file",
313
+ "description": "spec path, url, or context-name",
314
+ "required": false
315
+ }
316
+ }
317
+ },
318
+ "validate": {
319
+ "id": "validate",
320
+ "description": "validate asyncapi file",
321
+ "strict": true,
322
+ "pluginName": "@asyncapi/cli",
323
+ "pluginAlias": "@asyncapi/cli",
324
+ "pluginType": "core",
325
+ "aliases": [],
326
+ "flags": {
327
+ "help": {
328
+ "name": "help",
329
+ "type": "boolean",
330
+ "char": "h",
331
+ "description": "Show CLI help.",
332
+ "allowNo": false
333
+ },
334
+ "watch": {
335
+ "name": "watch",
336
+ "type": "boolean",
337
+ "char": "w",
338
+ "description": "Enable watch mode",
339
+ "allowNo": false
340
+ },
341
+ "log-diagnostics": {
342
+ "name": "log-diagnostics",
343
+ "type": "boolean",
344
+ "description": "log validation diagnostics or not",
345
+ "allowNo": true
346
+ },
347
+ "diagnostics-format": {
348
+ "name": "diagnostics-format",
349
+ "type": "option",
350
+ "description": "format to use for validation diagnostics",
351
+ "helpValue": "(json|stylish|junit|html|text|teamcity|pretty)",
352
+ "multiple": false,
353
+ "options": [
354
+ "json",
355
+ "stylish",
356
+ "junit",
357
+ "html",
358
+ "text",
359
+ "teamcity",
360
+ "pretty"
361
+ ],
362
+ "default": "stylish"
363
+ },
364
+ "fail-severity": {
365
+ "name": "fail-severity",
366
+ "type": "option",
367
+ "description": "diagnostics of this level or above will trigger a failure exit code",
368
+ "helpValue": "(error|warn|info|hint)",
369
+ "multiple": false,
370
+ "options": [
371
+ "error",
372
+ "warn",
373
+ "info",
374
+ "hint"
375
+ ],
376
+ "default": "error"
377
+ }
378
+ },
379
+ "args": {
380
+ "spec-file": {
381
+ "name": "spec-file",
382
+ "description": "spec path, url, or context-name",
383
+ "required": false
384
+ }
385
+ }
386
+ },
387
+ "config": {
388
+ "id": "config",
389
+ "description": "CLI config settings",
390
+ "strict": true,
391
+ "pluginName": "@asyncapi/cli",
392
+ "pluginAlias": "@asyncapi/cli",
393
+ "pluginType": "core",
394
+ "aliases": [],
395
+ "flags": {},
396
+ "args": {}
397
+ },
398
+ "generate:fromTemplate": {
399
+ "id": "generate:fromTemplate",
400
+ "description": "Generates whatever you want using templates compatible with AsyncAPI Generator.",
401
+ "strict": true,
402
+ "pluginName": "@asyncapi/cli",
403
+ "pluginAlias": "@asyncapi/cli",
404
+ "pluginType": "core",
405
+ "aliases": [],
406
+ "examples": [
407
+ "asyncapi generate fromTemplate asyncapi.yaml @asyncapi/html-template --param version=1.0.0 singleFile=true --output ./docs --force-write"
408
+ ],
409
+ "flags": {
410
+ "help": {
411
+ "name": "help",
412
+ "type": "boolean",
413
+ "char": "h",
414
+ "description": "Show CLI help.",
415
+ "allowNo": false
416
+ },
417
+ "disable-hook": {
418
+ "name": "disable-hook",
419
+ "type": "option",
420
+ "char": "d",
421
+ "description": "Disable a specific hook type or hooks from a given hook type",
422
+ "multiple": true
423
+ },
424
+ "install": {
425
+ "name": "install",
426
+ "type": "boolean",
427
+ "char": "i",
428
+ "description": "Installs the template and its dependencies (defaults to false)",
429
+ "allowNo": false
430
+ },
431
+ "debug": {
432
+ "name": "debug",
433
+ "type": "boolean",
434
+ "description": "Enable more specific errors in the console",
435
+ "allowNo": false
436
+ },
437
+ "no-overwrite": {
438
+ "name": "no-overwrite",
439
+ "type": "option",
440
+ "char": "n",
441
+ "description": "Glob or path of the file(s) to skip when regenerating",
442
+ "multiple": true
443
+ },
444
+ "output": {
445
+ "name": "output",
446
+ "type": "option",
447
+ "char": "o",
448
+ "description": "Directory where to put the generated files (defaults to current directory)",
449
+ "multiple": false
450
+ },
451
+ "force-write": {
452
+ "name": "force-write",
453
+ "type": "boolean",
454
+ "description": "Force writing of the generated files to given directory even if it is a git repo with unstaged files or not empty dir (defaults to false)",
455
+ "allowNo": false
456
+ },
457
+ "watch": {
458
+ "name": "watch",
459
+ "type": "boolean",
460
+ "char": "w",
461
+ "description": "Watches the template directory and the AsyncAPI document, and re-generate the files when changes occur. Ignores the output directory.",
462
+ "allowNo": false
463
+ },
464
+ "param": {
465
+ "name": "param",
466
+ "type": "option",
467
+ "char": "p",
468
+ "description": "Additional param to pass to templates",
469
+ "multiple": true
470
+ },
471
+ "map-base-url": {
472
+ "name": "map-base-url",
473
+ "type": "option",
474
+ "description": "Maps all schema references from base url to local folder",
475
+ "multiple": false
476
+ }
477
+ },
478
+ "args": {
479
+ "asyncapi": {
480
+ "name": "asyncapi",
481
+ "description": "- Local path, url or context-name pointing to AsyncAPI file",
482
+ "required": true
483
+ },
484
+ "template": {
485
+ "name": "template",
486
+ "description": "- Name of the generator template like for example @asyncapi/html-template or https://github.com/asyncapi/html-template",
487
+ "required": true
488
+ }
489
+ }
490
+ },
491
+ "generate": {
492
+ "id": "generate",
493
+ "description": "Generate typed models or other things like clients, applications or docs using AsyncAPI Generator templates.",
494
+ "strict": true,
495
+ "pluginName": "@asyncapi/cli",
496
+ "pluginAlias": "@asyncapi/cli",
497
+ "pluginType": "core",
498
+ "aliases": [],
499
+ "flags": {},
500
+ "args": {}
501
+ },
502
+ "generate:models": {
503
+ "id": "generate:models",
504
+ "description": "Generates typed models",
505
+ "strict": true,
506
+ "pluginName": "@asyncapi/cli",
507
+ "pluginAlias": "@asyncapi/cli",
508
+ "pluginType": "core",
509
+ "aliases": [],
510
+ "flags": {
511
+ "help": {
512
+ "name": "help",
513
+ "type": "boolean",
514
+ "char": "h",
515
+ "description": "Show CLI help.",
516
+ "allowNo": false
517
+ },
518
+ "output": {
519
+ "name": "output",
520
+ "type": "option",
521
+ "char": "o",
522
+ "description": "The output directory where the models should be written to. Omitting this flag will write the models to `stdout`.",
523
+ "required": false,
524
+ "multiple": false
525
+ },
526
+ "tsModelType": {
527
+ "name": "tsModelType",
528
+ "type": "option",
529
+ "description": "TypeScript specific, define which type of model needs to be generated.",
530
+ "required": false,
531
+ "multiple": false,
532
+ "options": [
533
+ "class",
534
+ "interface"
535
+ ],
536
+ "default": "class"
537
+ },
538
+ "tsEnumType": {
539
+ "name": "tsEnumType",
540
+ "type": "option",
541
+ "description": "TypeScript specific, define which type of enums needs to be generated.",
542
+ "required": false,
543
+ "multiple": false,
544
+ "options": [
545
+ "enum",
546
+ "union"
547
+ ],
548
+ "default": "enum"
549
+ },
550
+ "tsModuleSystem": {
551
+ "name": "tsModuleSystem",
552
+ "type": "option",
553
+ "description": "TypeScript specific, define the module system to be used.",
554
+ "required": false,
555
+ "multiple": false,
556
+ "options": [
557
+ "ESM",
558
+ "CJS"
559
+ ],
560
+ "default": "ESM"
561
+ },
562
+ "tsIncludeComments": {
563
+ "name": "tsIncludeComments",
564
+ "type": "boolean",
565
+ "description": "TypeScript specific, if enabled add comments while generating models.",
566
+ "required": false,
567
+ "allowNo": false
568
+ },
569
+ "tsExportType": {
570
+ "name": "tsExportType",
571
+ "type": "option",
572
+ "description": "TypeScript specific, define which type of export needs to be generated.",
573
+ "required": false,
574
+ "multiple": false,
575
+ "options": [
576
+ "default",
577
+ "named"
578
+ ],
579
+ "default": "default"
580
+ },
581
+ "tsJsonBinPack": {
582
+ "name": "tsJsonBinPack",
583
+ "type": "boolean",
584
+ "description": "TypeScript specific, define basic support for serializing to and from binary with jsonbinpack.",
585
+ "required": false,
586
+ "allowNo": false
587
+ },
588
+ "packageName": {
589
+ "name": "packageName",
590
+ "type": "option",
591
+ "description": "Go, Java and Kotlin specific, define the package to use for the generated models. This is required when language is `go`, `java` or `kotlin`.",
592
+ "required": false,
593
+ "multiple": false
594
+ },
595
+ "namespace": {
596
+ "name": "namespace",
597
+ "type": "option",
598
+ "description": "C# specific, define the namespace to use for the generated models. This is required when language is `csharp`.",
599
+ "required": false,
600
+ "multiple": false
601
+ },
602
+ "csharpAutoImplement": {
603
+ "name": "csharpAutoImplement",
604
+ "type": "boolean",
605
+ "description": "C# specific, define whether to generate auto-implemented properties or not.",
606
+ "required": false,
607
+ "allowNo": false
608
+ },
609
+ "csharpArrayType": {
610
+ "name": "csharpArrayType",
611
+ "type": "option",
612
+ "description": "C# specific, define which type of array needs to be generated.",
613
+ "required": false,
614
+ "multiple": false,
615
+ "options": [
616
+ "Array",
617
+ "List"
618
+ ],
619
+ "default": "Array"
620
+ },
621
+ "log-diagnostics": {
622
+ "name": "log-diagnostics",
623
+ "type": "boolean",
624
+ "description": "log validation diagnostics or not",
625
+ "allowNo": true
626
+ },
627
+ "diagnostics-format": {
628
+ "name": "diagnostics-format",
629
+ "type": "option",
630
+ "description": "format to use for validation diagnostics",
631
+ "helpValue": "(json|stylish|junit|html|text|teamcity|pretty)",
632
+ "multiple": false,
633
+ "options": [
634
+ "json",
635
+ "stylish",
636
+ "junit",
637
+ "html",
638
+ "text",
639
+ "teamcity",
640
+ "pretty"
641
+ ],
642
+ "default": "stylish"
643
+ },
644
+ "fail-severity": {
645
+ "name": "fail-severity",
646
+ "type": "option",
647
+ "description": "diagnostics of this level or above will trigger a failure exit code",
648
+ "helpValue": "(error|warn|info|hint)",
649
+ "multiple": false,
650
+ "options": [
651
+ "error",
652
+ "warn",
653
+ "info",
654
+ "hint"
655
+ ],
656
+ "default": "error"
657
+ }
658
+ },
659
+ "args": {
660
+ "language": {
661
+ "name": "language",
662
+ "description": "The language you want the typed models generated for.",
663
+ "required": true,
664
+ "options": [
665
+ "typescript",
666
+ "csharp",
667
+ "golang",
668
+ "java",
669
+ "javascript",
670
+ "dart",
671
+ "python",
672
+ "rust",
673
+ "kotlin"
674
+ ]
675
+ },
676
+ "file": {
677
+ "name": "file",
678
+ "description": "Path or URL to the AsyncAPI document, or context-name",
679
+ "required": true
680
+ }
681
+ }
682
+ },
683
+ "start": {
684
+ "id": "start",
685
+ "description": "Start asyncapi studio",
686
+ "strict": true,
687
+ "pluginName": "@asyncapi/cli",
688
+ "pluginAlias": "@asyncapi/cli",
689
+ "pluginType": "core",
690
+ "aliases": [],
691
+ "flags": {},
692
+ "args": {}
693
+ },
694
+ "start:studio": {
695
+ "id": "start:studio",
696
+ "description": "starts a new local instance of Studio",
697
+ "strict": true,
698
+ "pluginName": "@asyncapi/cli",
699
+ "pluginAlias": "@asyncapi/cli",
700
+ "pluginType": "core",
701
+ "aliases": [],
702
+ "flags": {
703
+ "help": {
704
+ "name": "help",
705
+ "type": "boolean",
706
+ "char": "h",
707
+ "description": "Show CLI help.",
708
+ "allowNo": false
709
+ },
710
+ "file": {
711
+ "name": "file",
712
+ "type": "option",
713
+ "char": "f",
714
+ "description": "path to the AsyncAPI file to link with Studio",
715
+ "multiple": false
716
+ },
717
+ "port": {
718
+ "name": "port",
719
+ "type": "option",
720
+ "char": "p",
721
+ "description": "port in which to start Studio",
722
+ "multiple": false
723
+ }
724
+ },
725
+ "args": {}
726
+ },
727
+ "config:context:add": {
728
+ "id": "config:context:add",
729
+ "description": "Add or modify a context in the store",
730
+ "strict": true,
731
+ "pluginName": "@asyncapi/cli",
732
+ "pluginAlias": "@asyncapi/cli",
733
+ "pluginType": "core",
734
+ "aliases": [],
735
+ "flags": {
736
+ "help": {
737
+ "name": "help",
738
+ "type": "boolean",
739
+ "char": "h",
740
+ "description": "Show CLI help.",
741
+ "allowNo": false
742
+ }
743
+ },
744
+ "args": {
745
+ "context-name": {
746
+ "name": "context-name",
747
+ "description": "context name",
748
+ "required": true
749
+ },
750
+ "spec-file-path": {
751
+ "name": "spec-file-path",
752
+ "description": "file path of the spec file",
753
+ "required": true
754
+ }
755
+ }
756
+ },
757
+ "config:context:current": {
758
+ "id": "config:context:current",
759
+ "description": "Shows the current context that is being used",
760
+ "strict": true,
761
+ "pluginName": "@asyncapi/cli",
762
+ "pluginAlias": "@asyncapi/cli",
763
+ "pluginType": "core",
764
+ "aliases": [],
765
+ "flags": {
766
+ "help": {
767
+ "name": "help",
768
+ "type": "boolean",
769
+ "char": "h",
770
+ "description": "Show CLI help.",
771
+ "allowNo": false
772
+ }
773
+ },
774
+ "args": {}
775
+ },
776
+ "config:context": {
777
+ "id": "config:context",
778
+ "strict": true,
779
+ "pluginName": "@asyncapi/cli",
780
+ "pluginAlias": "@asyncapi/cli",
781
+ "pluginType": "core",
782
+ "aliases": [],
783
+ "flags": {},
784
+ "args": {}
785
+ },
786
+ "config:context:list": {
787
+ "id": "config:context:list",
788
+ "description": "List all the stored context in the store",
789
+ "strict": true,
790
+ "pluginName": "@asyncapi/cli",
791
+ "pluginAlias": "@asyncapi/cli",
792
+ "pluginType": "core",
793
+ "aliases": [],
794
+ "flags": {
795
+ "help": {
796
+ "name": "help",
797
+ "type": "boolean",
798
+ "char": "h",
799
+ "description": "Show CLI help.",
800
+ "allowNo": false
801
+ }
802
+ },
803
+ "args": {}
804
+ },
805
+ "config:context:remove": {
806
+ "id": "config:context:remove",
807
+ "description": "Delete a context from the store",
808
+ "strict": true,
809
+ "pluginName": "@asyncapi/cli",
810
+ "pluginAlias": "@asyncapi/cli",
811
+ "pluginType": "core",
812
+ "aliases": [],
813
+ "flags": {
814
+ "help": {
815
+ "name": "help",
816
+ "type": "boolean",
817
+ "char": "h",
818
+ "description": "Show CLI help.",
819
+ "allowNo": false
820
+ }
821
+ },
822
+ "args": {
823
+ "context-name": {
824
+ "name": "context-name",
825
+ "description": "Name of the context to delete",
826
+ "required": true
827
+ }
828
+ }
829
+ },
830
+ "config:context:use": {
831
+ "id": "config:context:use",
832
+ "description": "Set a context as current",
833
+ "strict": true,
834
+ "pluginName": "@asyncapi/cli",
835
+ "pluginAlias": "@asyncapi/cli",
836
+ "pluginType": "core",
837
+ "aliases": [],
838
+ "flags": {
839
+ "help": {
840
+ "name": "help",
841
+ "type": "boolean",
842
+ "char": "h",
843
+ "description": "Show CLI help.",
844
+ "allowNo": false
845
+ }
846
+ },
847
+ "args": {
848
+ "context-name": {
849
+ "name": "context-name",
850
+ "description": "name of the saved context",
851
+ "required": true
852
+ }
853
+ }
854
+ }
855
+ }
856
+ }
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": "0.37.1",
4
+ "version": "0.38.0",
5
5
  "author": "@asyncapi",
6
6
  "bin": {
7
7
  "asyncapi": "./bin/run"
@@ -16,9 +16,9 @@
16
16
  "@asyncapi/optimizer": "^0.1.18",
17
17
  "@asyncapi/parser": "2.0.0-next-major.16",
18
18
  "@asyncapi/studio": "^0.17.3",
19
- "@oclif/core": "^1.18.0",
20
- "@oclif/errors": "^1.3.5",
21
- "@oclif/plugin-not-found": "^2.3.1",
19
+ "@oclif/core": "^1.26.2",
20
+ "@oclif/errors": "^1.3.6",
21
+ "@oclif/plugin-not-found": "^2.3.22",
22
22
  "@stoplight/spectral-cli": "6.6.0",
23
23
  "ajv": "^8.12.0",
24
24
  "chalk": "^4.1.0",
@@ -27,6 +27,7 @@
27
27
  "inquirer": "^8.2.0",
28
28
  "lodash.template": "^4.4.0",
29
29
  "node-fetch": "^2.0.0",
30
+ "oclif": "^3.7.3",
30
31
  "open": "^8.4.0",
31
32
  "reflect-metadata": "^0.1.13",
32
33
  "request": "^2.88.2",
@@ -64,8 +65,8 @@
64
65
  "conventional-changelog-conventionalcommits": "^4.4.0",
65
66
  "cross-env": "^7.0.3",
66
67
  "eslint": "^8.24.0",
67
- "eslint-config-oclif": "^3.1.0",
68
- "eslint-config-oclif-typescript": "^0.1.0",
68
+ "eslint-config-oclif": "^4",
69
+ "eslint-config-oclif-typescript": "^1.0.3",
69
70
  "eslint-plugin-github": "^4.3.7",
70
71
  "eslint-plugin-security": "^1.4.0",
71
72
  "eslint-plugin-sonarjs": "^0.15.0",
@@ -77,7 +78,6 @@
77
78
  "rimraf": "^3.0.2",
78
79
  "semantic-release": "^17.4.3",
79
80
  "simple-git": "^2.48.0",
80
- "souvikns-oclif": "^2.5.0",
81
81
  "ts-node": "^10.9.1",
82
82
  "tslib": "^2.3.1",
83
83
  "typescript": "4.6.4"
@@ -154,10 +154,10 @@
154
154
  "generate:readme:toc": "markdown-toc -i README.md",
155
155
  "lint": "eslint --max-warnings 0 --config .eslintrc .",
156
156
  "lint:fix": "eslint --max-warnings 5 --config .eslintrc . --fix",
157
- "pack:macos": "oclif pack:macos && npm run pack:rename",
158
- "pack:linux": "oclif pack:deb && npm run pack:rename",
159
- "pack:tarballs": "oclif pack:tarballs -t linux-x64 && npm run pack:rename",
160
- "pack:windows": "oclif pack:win",
157
+ "pack:macos": "oclif pack macos && npm run pack:rename",
158
+ "pack:linux": "oclif pack deb && npm run pack:rename",
159
+ "pack:tarballs": "oclif pack tarballs -t linux-x64 && npm run pack:rename",
160
+ "pack:windows": "oclif pack win",
161
161
  "pack:rename": "node scripts/releasePackagesRename.js",
162
162
  "postpack": "rimraf oclif.manifest.json",
163
163
  "prepublishOnly": "npm run build && oclif manifest",