@qraft/plugin 1.0.0-beta.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/CHANGELOG.md +15 -0
- package/README.md +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/GeneratorFile.d.ts +9 -0
- package/dist/lib/GeneratorFile.d.ts.map +1 -0
- package/dist/lib/GeneratorFile.js +2 -0
- package/dist/lib/GeneratorFile.js.map +1 -0
- package/dist/lib/OutputOptions.d.ts +6 -0
- package/dist/lib/OutputOptions.d.ts.map +1 -0
- package/dist/lib/OutputOptions.js +2 -0
- package/dist/lib/OutputOptions.js.map +1 -0
- package/dist/lib/QraftCommand.d.ts +47 -0
- package/dist/lib/QraftCommand.d.ts.map +1 -0
- package/dist/lib/QraftCommand.js +187 -0
- package/dist/lib/QraftCommand.js.map +1 -0
- package/dist/lib/QraftCommandPlugin.d.ts +6 -0
- package/dist/lib/QraftCommandPlugin.d.ts.map +1 -0
- package/dist/lib/QraftCommandPlugin.js +2 -0
- package/dist/lib/QraftCommandPlugin.js.map +1 -0
- package/dist/lib/RedoclyConfigCommand.d.ts +28 -0
- package/dist/lib/RedoclyConfigCommand.d.ts.map +1 -0
- package/dist/lib/RedoclyConfigCommand.js +158 -0
- package/dist/lib/RedoclyConfigCommand.js.map +1 -0
- package/dist/lib/formatFileHeader.d.ts +2 -0
- package/dist/lib/formatFileHeader.d.ts.map +1 -0
- package/dist/lib/formatFileHeader.js +6 -0
- package/dist/lib/formatFileHeader.js.map +1 -0
- package/dist/lib/getRedocAPIsToQraft.d.ts +14 -0
- package/dist/lib/getRedocAPIsToQraft.d.ts.map +1 -0
- package/dist/lib/getRedocAPIsToQraft.js +49 -0
- package/dist/lib/getRedocAPIsToQraft.js.map +1 -0
- package/dist/lib/handleSchemaInput.d.ts +10 -0
- package/dist/lib/handleSchemaInput.d.ts.map +1 -0
- package/dist/lib/handleSchemaInput.js +40 -0
- package/dist/lib/handleSchemaInput.js.map +1 -0
- package/dist/lib/loadRedoclyConfig.d.ts +12 -0
- package/dist/lib/loadRedoclyConfig.d.ts.map +1 -0
- package/dist/lib/loadRedoclyConfig.js +17 -0
- package/dist/lib/loadRedoclyConfig.js.map +1 -0
- package/dist/lib/maybeEscapeShellArg.d.ts +2 -0
- package/dist/lib/maybeEscapeShellArg.d.ts.map +1 -0
- package/dist/lib/maybeEscapeShellArg.js +9 -0
- package/dist/lib/maybeEscapeShellArg.js.map +1 -0
- package/dist/lib/parseConfigToArgs.d.ts +7 -0
- package/dist/lib/parseConfigToArgs.d.ts.map +1 -0
- package/dist/lib/parseConfigToArgs.js +130 -0
- package/dist/lib/parseConfigToArgs.js.map +1 -0
- package/dist/lib/shouldQuoteCommandLineArg.d.ts +11 -0
- package/dist/lib/shouldQuoteCommandLineArg.d.ts.map +1 -0
- package/dist/lib/shouldQuoteCommandLineArg.js +33 -0
- package/dist/lib/shouldQuoteCommandLineArg.js.map +1 -0
- package/dist/lib/writeGeneratorFiles.d.ts +7 -0
- package/dist/lib/writeGeneratorFiles.d.ts.map +1 -0
- package/dist/lib/writeGeneratorFiles.js +51 -0
- package/dist/lib/writeGeneratorFiles.js.map +1 -0
- package/dist/packageVersion.d.ts +2 -0
- package/dist/packageVersion.d.ts.map +1 -0
- package/dist/packageVersion.js +3 -0
- package/dist/packageVersion.js.map +1 -0
- package/package.json +68 -0
- package/src/index.ts +12 -0
- package/src/lib/GeneratorFile.ts +5 -0
- package/src/lib/OutputOptions.ts +6 -0
- package/src/lib/QraftCommand.ts +381 -0
- package/src/lib/QraftCommandPlugin.ts +9 -0
- package/src/lib/RedoclyConfigCommand.ts +290 -0
- package/src/lib/formatFileHeader.ts +4 -0
- package/src/lib/getRedocAPIsToQraft.ts +92 -0
- package/src/lib/handleSchemaInput.ts +58 -0
- package/src/lib/loadRedoclyConfig.ts +47 -0
- package/src/lib/maybeEscapeShellArg.ts +10 -0
- package/src/lib/parseConfigToArgs.ts +134 -0
- package/src/lib/shouldQuoteCommandLineArg.ts +32 -0
- package/src/lib/writeGeneratorFiles.ts +82 -0
- package/src/packageVersion.ts +2 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# @qraft/plugin
|
|
2
|
+
|
|
3
|
+
## 1.0.0-beta.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- a282960: Introduce unified CLI tool `@qraft/cli` that extends code generation capabilities beyond OpenAPI to support AsyncAPI
|
|
8
|
+
specifications. The new CLI provides three main commands:
|
|
9
|
+
- `qraft openapi` - Generate type-safe code from OpenAPI documents (React Query hooks and TypeScript types)
|
|
10
|
+
- `qraft asyncapi` - Generate TypeScript types from AsyncAPI documents
|
|
11
|
+
- `qraft redocly` - Generate code from Redocly configuration files supporting both OpenAPI and AsyncAPI APIs
|
|
12
|
+
|
|
13
|
+
The CLI uses a plugin-based architecture where plugins are installed as peer dependencies, allowing users to install
|
|
14
|
+
only the plugins they need. It maintains full backward compatibility with existing OpenAPI workflows while adding
|
|
15
|
+
seamless support for event-driven API specifications.
|
package/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# shared
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { normalizeOutputDirPath, QraftCommand, splitOptionFlags, } from './lib/QraftCommand.js';
|
|
2
|
+
export { handleSchemaInput } from './lib/handleSchemaInput.js';
|
|
3
|
+
export type { QraftCommandActionCallback, QraftCommandActionOptions, QraftCommandOptions, } from './lib/QraftCommand.js';
|
|
4
|
+
export type { QraftCommandPlugin } from './lib/QraftCommandPlugin.js';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,YAAY,EACZ,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,YAAY,EACV,0BAA0B,EAC1B,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,YAAY,EACZ,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeneratorFile.d.ts","sourceRoot":"","sources":["../../src/lib/GeneratorFile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAEpC,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,GAAG,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC3B;IAAE,SAAS,EAAE,GAAG,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeneratorFile.js","sourceRoot":"","sources":["../../src/lib/GeneratorFile.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OutputOptions.d.ts","sourceRoot":"","sources":["../../src/lib/OutputOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,GAAG,CAAC;IACT,KAAK,EAAE,OAAO,CAAC;CAChB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OutputOptions.js","sourceRoot":"","sources":["../../src/lib/OutputOptions.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { URL } from 'node:url';
|
|
2
|
+
import { Command, Option, ParseOptions } from 'commander';
|
|
3
|
+
import { Ora } from 'ora';
|
|
4
|
+
import { GeneratorFile } from './GeneratorFile.js';
|
|
5
|
+
import { OutputOptions } from './OutputOptions.js';
|
|
6
|
+
export interface QraftCommandOptions {
|
|
7
|
+
defaultFileHeader?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare class QraftCommand<TActionOptions extends QraftCommandActionOptions = QraftCommandActionOptions> extends Command {
|
|
10
|
+
static spinner: Ora;
|
|
11
|
+
protected readonly cwd: URL;
|
|
12
|
+
protected registeredPluginActions: QraftCommandActionCallback<TActionOptions>[];
|
|
13
|
+
constructor(name?: string, options?: QraftCommandOptions);
|
|
14
|
+
action(callback: QraftCommandActionCallback<TActionOptions>): this;
|
|
15
|
+
actionCallback(...actionArgs: any[]): Promise<void>;
|
|
16
|
+
protected prepareActionOptions(inputs: string[], args: Record<string, any>): Promise<TActionOptions>;
|
|
17
|
+
protected registerPluginAction(callback: QraftCommandActionCallback<TActionOptions>): void;
|
|
18
|
+
option(flags: string, description?: string, defaultValue?: string | boolean | string[]): this;
|
|
19
|
+
option<T>(flags: string, description: string, parseArg: (value: string, previous: T) => T, defaultValue?: T): this;
|
|
20
|
+
/** @deprecated since v7, instead use choices or a custom function */
|
|
21
|
+
option(flags: string, description: string, regexp: RegExp, defaultValue?: string | boolean | string[]): this;
|
|
22
|
+
requiredOption(flags: string, description?: string, defaultValue?: string | boolean | string[]): this;
|
|
23
|
+
requiredOption<T>(flags: string, description: string, parseArg: (value: string, previous: T) => T, defaultValue?: T): this;
|
|
24
|
+
/** @deprecated since v7, instead use choices or a custom function */
|
|
25
|
+
requiredOption(flags: string, description: string, regexp: RegExp, defaultValue?: string | boolean | string[]): this;
|
|
26
|
+
addOption(option: Option): this;
|
|
27
|
+
parseAsync(argv?: readonly string[], options?: ParseOptions): Promise<this>;
|
|
28
|
+
parse(argv?: readonly string[], options?: ParseOptions): this;
|
|
29
|
+
protected logVersion(): void;
|
|
30
|
+
protected findSimilarOption(option: {
|
|
31
|
+
flags: string;
|
|
32
|
+
mandatory: boolean;
|
|
33
|
+
}): Option | undefined;
|
|
34
|
+
}
|
|
35
|
+
export declare function normalizeOutputDirPath(outputDir: string): URL;
|
|
36
|
+
export interface QraftCommandActionOptions {
|
|
37
|
+
inputs: string[];
|
|
38
|
+
args: Record<string, any>;
|
|
39
|
+
spinner: Ora;
|
|
40
|
+
output: OutputOptions;
|
|
41
|
+
}
|
|
42
|
+
export type QraftCommandActionCallback<TActionOptions extends QraftCommandActionOptions = QraftCommandActionOptions> = (options: TActionOptions, resolve: (files: GeneratorFile[]) => void) => Promise<void>;
|
|
43
|
+
export declare function splitOptionFlags(flags: string): {
|
|
44
|
+
shortFlag: string | undefined;
|
|
45
|
+
longFlag: string | undefined;
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=QraftCommand.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QraftCommand.d.ts","sourceRoot":"","sources":["../../src/lib/QraftCommand.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,GAAG,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAY,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,MAAM,WAAW,mBAAmB;IAClC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,qBAAa,YAAY,CACvB,cAAc,SAAS,yBAAyB,GAAG,yBAAyB,CAC5E,SAAQ,OAAO;IACf,MAAM,CAAC,OAAO,MAAS;IAEvB,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAC5B,SAAS,CAAC,uBAAuB,EAAE,0BAA0B,CAAC,cAAc,CAAC,EAAE,CAC1E;gBAEO,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB;IAsBxD,MAAM,CAAC,QAAQ,EAAE,0BAA0B,CAAC,cAAc,CAAC,GAAG,IAAI;IAK5D,cAAc,CAAC,GAAG,UAAU,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;cAqDzC,oBAAoB,CAClC,MAAM,EAAE,MAAM,EAAE,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACxB,OAAO,CAAC,cAAc,CAAC;IAc1B,SAAS,CAAC,oBAAoB,CAC5B,QAAQ,EAAE,0BAA0B,CAAC,cAAc,CAAC;IAKtD,MAAM,CACJ,KAAK,EAAE,MAAM,EACb,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GACzC,IAAI;IACP,MAAM,CAAC,CAAC,EACN,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,EAC3C,YAAY,CAAC,EAAE,CAAC,GACf,IAAI;IACP,qEAAqE;IACrE,MAAM,CACJ,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GACzC,IAAI;IA8BP,cAAc,CACZ,KAAK,EAAE,MAAM,EACb,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GACzC,IAAI;IACP,cAAc,CAAC,CAAC,EACd,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,EAC3C,YAAY,CAAC,EAAE,CAAC,GACf,IAAI;IACP,qEAAqE;IACrE,cAAc,CACZ,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GACzC,IAAI;IA8BP,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAa/B,UAAU,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3E,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI;IAK7D,SAAS,CAAC,UAAU;IAIpB,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE;CAe1E;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,CAI7D;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,OAAO,EAAE,GAAG,CAAC;IACb,MAAM,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,MAAM,0BAA0B,CACpC,cAAc,SAAS,yBAAyB,GAAG,yBAAyB,IAC1E,CACF,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,IAAI,KACtC,OAAO,CAAC,IAAI,CAAC,CAAC;AAiFnB,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM;;;EAiB7C"}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import { sep } from 'node:path';
|
|
2
|
+
import process from 'node:process';
|
|
3
|
+
import { pathToFileURL } from 'node:url';
|
|
4
|
+
import c from 'ansi-colors';
|
|
5
|
+
import { Command, Option } from 'commander';
|
|
6
|
+
import ora from 'ora';
|
|
7
|
+
import { writeGeneratorFiles } from './writeGeneratorFiles.js';
|
|
8
|
+
export class QraftCommand extends Command {
|
|
9
|
+
static spinner = ora();
|
|
10
|
+
cwd;
|
|
11
|
+
registeredPluginActions = [];
|
|
12
|
+
constructor(name, options) {
|
|
13
|
+
super(name);
|
|
14
|
+
this.cwd = pathToFileURL(`${process.cwd()}/`);
|
|
15
|
+
this.option('-o, --output-dir <path>', 'Output directory for generated files')
|
|
16
|
+
.addOption(new Option('-c, --clean', 'Clean output directory before generating files'))
|
|
17
|
+
.addOption(new Option('--file-header <string>', 'Header to be added to the generated file (eg: /* eslint-disable */)').default(options?.defaultFileHeader ?? ''));
|
|
18
|
+
}
|
|
19
|
+
action(callback) {
|
|
20
|
+
this.registerPluginAction(callback);
|
|
21
|
+
return super.action(this.actionCallback.bind(this));
|
|
22
|
+
}
|
|
23
|
+
async actionCallback(...actionArgs) {
|
|
24
|
+
const inputs = actionArgs.filter((arg) => typeof arg === 'string');
|
|
25
|
+
const args = actionArgs.find((arg) => arg && typeof arg === 'object');
|
|
26
|
+
if (!args)
|
|
27
|
+
throw new Error('Arguments object not found');
|
|
28
|
+
const spinner = QraftCommand.spinner;
|
|
29
|
+
spinner.start('Initializing process...');
|
|
30
|
+
const actionOptions = await this.prepareActionOptions(inputs, args);
|
|
31
|
+
spinner.text = 'Generating code...';
|
|
32
|
+
for (const pluginAction of this.registeredPluginActions) {
|
|
33
|
+
const fileItems = await new Promise((resolve, reject) => {
|
|
34
|
+
pluginAction(actionOptions, resolve).catch(reject);
|
|
35
|
+
});
|
|
36
|
+
try {
|
|
37
|
+
if (this.registeredPluginActions.indexOf(pluginAction) === 0) {
|
|
38
|
+
await writeGeneratorFiles({
|
|
39
|
+
fileItems: [
|
|
40
|
+
{ directory: actionOptions.output.dir, clean: false },
|
|
41
|
+
...fileItems,
|
|
42
|
+
],
|
|
43
|
+
spinner,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
await writeGeneratorFiles({ fileItems, spinner });
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
spinner.fail(c.red('An error occurred during the code generation process.'));
|
|
52
|
+
if (error instanceof Error) {
|
|
53
|
+
console.error(c.red(error.message), c.red(error.stack ?? ''));
|
|
54
|
+
}
|
|
55
|
+
throw error;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
spinner.succeed(c.green('Qraft process completed successfully'));
|
|
59
|
+
}
|
|
60
|
+
async prepareActionOptions(inputs, args) {
|
|
61
|
+
const outputDir = normalizeOutputDirPath(args.outputDir);
|
|
62
|
+
return {
|
|
63
|
+
inputs,
|
|
64
|
+
args,
|
|
65
|
+
spinner: QraftCommand.spinner,
|
|
66
|
+
output: {
|
|
67
|
+
dir: outputDir,
|
|
68
|
+
clean: args.clean,
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
registerPluginAction(callback) {
|
|
73
|
+
this.registeredPluginActions.push(callback);
|
|
74
|
+
}
|
|
75
|
+
option(flags, description, parseArg, defaultValue) {
|
|
76
|
+
if (this.findSimilarOption({
|
|
77
|
+
flags,
|
|
78
|
+
mandatory: false,
|
|
79
|
+
})) {
|
|
80
|
+
return this;
|
|
81
|
+
}
|
|
82
|
+
return super.option(flags,
|
|
83
|
+
// @ts-expect-error - Issues with overloading
|
|
84
|
+
description, parseArg, defaultValue);
|
|
85
|
+
}
|
|
86
|
+
requiredOption(flags, description, regexpOrDefaultValue, defaultValue) {
|
|
87
|
+
if (this.findSimilarOption({
|
|
88
|
+
flags,
|
|
89
|
+
mandatory: true,
|
|
90
|
+
})) {
|
|
91
|
+
return this;
|
|
92
|
+
}
|
|
93
|
+
return super.requiredOption(flags,
|
|
94
|
+
// @ts-expect-error - Issues with overloading
|
|
95
|
+
description, regexpOrDefaultValue, defaultValue);
|
|
96
|
+
}
|
|
97
|
+
addOption(option) {
|
|
98
|
+
if (this.findSimilarOption({
|
|
99
|
+
flags: option.flags,
|
|
100
|
+
mandatory: option.mandatory,
|
|
101
|
+
})) {
|
|
102
|
+
return this;
|
|
103
|
+
}
|
|
104
|
+
return super.addOption(option);
|
|
105
|
+
}
|
|
106
|
+
parseAsync(argv, options) {
|
|
107
|
+
if (options?.from !== 'user')
|
|
108
|
+
this.logVersion();
|
|
109
|
+
return super.parseAsync(argv, options);
|
|
110
|
+
}
|
|
111
|
+
parse(argv, options) {
|
|
112
|
+
if (options?.from !== 'user')
|
|
113
|
+
this.logVersion();
|
|
114
|
+
return super.parse(argv, options);
|
|
115
|
+
}
|
|
116
|
+
logVersion() {
|
|
117
|
+
QraftCommand.spinner.info(`✨ ${c.bold('Qraft')}`);
|
|
118
|
+
}
|
|
119
|
+
findSimilarOption(option) {
|
|
120
|
+
try {
|
|
121
|
+
return findSimilarOption(option, this.options);
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
console.error(c.red(error instanceof Error
|
|
125
|
+
? error.message
|
|
126
|
+
: 'An error occurred during command option setup'));
|
|
127
|
+
throw error;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
export function normalizeOutputDirPath(outputDir) {
|
|
132
|
+
return pathToFileURL(outputDir.endsWith(sep) ? outputDir : `${outputDir}${sep}`);
|
|
133
|
+
}
|
|
134
|
+
function findSimilarOption({ flags, mandatory, }, options) {
|
|
135
|
+
const newOptionParsedFlags = splitOptionFlags(flags);
|
|
136
|
+
const optional = flags.includes('[');
|
|
137
|
+
const required = flags.includes('<');
|
|
138
|
+
const variadic = /\w\.\.\.[>\]]$/.test(flags);
|
|
139
|
+
return options.find((existingOption) => {
|
|
140
|
+
const existingOptionParsedFlags = splitOptionFlags(existingOption.flags);
|
|
141
|
+
if (!((existingOptionParsedFlags.longFlag !== undefined &&
|
|
142
|
+
existingOptionParsedFlags.longFlag ===
|
|
143
|
+
newOptionParsedFlags.longFlag) ||
|
|
144
|
+
(existingOptionParsedFlags.shortFlag !== undefined &&
|
|
145
|
+
existingOptionParsedFlags.shortFlag ===
|
|
146
|
+
newOptionParsedFlags.shortFlag))) {
|
|
147
|
+
return false;
|
|
148
|
+
}
|
|
149
|
+
if (existingOptionParsedFlags.longFlag !== undefined &&
|
|
150
|
+
newOptionParsedFlags.longFlag !== undefined &&
|
|
151
|
+
existingOptionParsedFlags.longFlag !== newOptionParsedFlags.longFlag) {
|
|
152
|
+
throw new Error(`Long flag ${flags} already exists in the option list with flags: "${existingOption.flags}" and description: "${existingOption.description}"`);
|
|
153
|
+
}
|
|
154
|
+
if (existingOptionParsedFlags.shortFlag !== undefined &&
|
|
155
|
+
newOptionParsedFlags.shortFlag !== undefined &&
|
|
156
|
+
existingOptionParsedFlags.shortFlag !== newOptionParsedFlags.shortFlag) {
|
|
157
|
+
throw new Error(`Short flag ${flags} already exists in the option list with flags: "${existingOption.flags}" and description: "${existingOption.description}"`);
|
|
158
|
+
}
|
|
159
|
+
if (required !== existingOption.required) {
|
|
160
|
+
throw new Error(`Flag ${flags} already exists in the option list with flags: "${existingOption.flags}" and description: "${existingOption.description}" but with different required status`);
|
|
161
|
+
}
|
|
162
|
+
if (optional !== existingOption.optional) {
|
|
163
|
+
throw new Error(`Flag ${flags} already exists in the option list with flags: "${existingOption.flags}" and description: "${existingOption.description}" but with different optional status`);
|
|
164
|
+
}
|
|
165
|
+
if (mandatory !== existingOption.mandatory) {
|
|
166
|
+
throw new Error(`Flag ${flags} already exists in the option list with flags: "${existingOption.flags}" and description: "${existingOption.description}" but with different mandatory status`);
|
|
167
|
+
}
|
|
168
|
+
if (variadic !== existingOption.variadic) {
|
|
169
|
+
throw new Error(`Flag ${flags} already exists in the option list with flags: "${existingOption.flags}" and description: "${existingOption.description}" but with different variadic status`);
|
|
170
|
+
}
|
|
171
|
+
return existingOption;
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
export function splitOptionFlags(flags) {
|
|
175
|
+
let shortFlag;
|
|
176
|
+
let longFlag;
|
|
177
|
+
const flagParts = flags.split(/[ |,]+/);
|
|
178
|
+
if (flagParts.length > 1 && !/^[[<]/.test(flagParts[1]))
|
|
179
|
+
shortFlag = flagParts.shift();
|
|
180
|
+
longFlag = flagParts.shift();
|
|
181
|
+
if (!shortFlag && /^-[^-]$/.test(longFlag ?? '')) {
|
|
182
|
+
shortFlag = longFlag;
|
|
183
|
+
longFlag = undefined;
|
|
184
|
+
}
|
|
185
|
+
return { shortFlag, longFlag };
|
|
186
|
+
}
|
|
187
|
+
//# sourceMappingURL=QraftCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QraftCommand.js","sourceRoot":"","sources":["../../src/lib/QraftCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { QraftCommand, QraftCommandActionOptions } from './QraftCommand.js';
|
|
2
|
+
export interface QraftCommandPlugin<TCommand extends QraftCommand<any> = QraftCommand<QraftCommandActionOptions>> {
|
|
3
|
+
setupCommand(command: TCommand): void | Promise<void>;
|
|
4
|
+
postSetupCommand?(command: TCommand, plugins: string[]): void | Promise<void>;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=QraftCommandPlugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QraftCommandPlugin.d.ts","sourceRoot":"","sources":["../../src/lib/QraftCommandPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAE5E,MAAM,WAAW,kBAAkB,CACjC,QAAQ,SAAS,YAAY,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,yBAAyB,CAAC;IAE5E,YAAY,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtD,gBAAgB,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QraftCommandPlugin.js","sourceRoot":"","sources":["../../src/lib/QraftCommandPlugin.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { URL } from 'node:url';
|
|
2
|
+
import { Command, Option, ParseOptions } from 'commander';
|
|
3
|
+
import { ASYNCAPI_QRAFT_REDOC_CONFIG_KEY, OPENAPI_QRAFT_REDOC_CONFIG_KEY } from './getRedocAPIsToQraft.js';
|
|
4
|
+
export { ASYNCAPI_QRAFT_REDOC_CONFIG_KEY, OPENAPI_QRAFT_REDOC_CONFIG_KEY };
|
|
5
|
+
export declare const redoclyOption: Option;
|
|
6
|
+
export declare function createRedoclyOption(): Option;
|
|
7
|
+
export type ConfigKeyCallbacks<T> = {
|
|
8
|
+
[configKey: string]: CallbackFn<T>;
|
|
9
|
+
};
|
|
10
|
+
export declare class RedoclyConfigCommand extends Command {
|
|
11
|
+
protected readonly cwd: URL;
|
|
12
|
+
protected configKeys: string[];
|
|
13
|
+
/**
|
|
14
|
+
* Redocly API grouped by configKey
|
|
15
|
+
* { [configKey]: { [apiName]: argv[] } }
|
|
16
|
+
*/
|
|
17
|
+
protected parsedAPIsByConfigKey: RedoclyQraftAPIsByConfigKey;
|
|
18
|
+
constructor(name?: string);
|
|
19
|
+
parseConfig<T>(callbacks: ConfigKeyCallbacks<T>, argv: readonly string[], options?: ParseOptions): Promise<T[] | undefined>;
|
|
20
|
+
static forEachRedoclyAPIEntry<T>(apisByConfigKey: RedoclyQraftAPIsByConfigKey, callbacks: ConfigKeyCallbacks<T>): Promise<T[]>;
|
|
21
|
+
}
|
|
22
|
+
type CallbackFn<T> = (processArgv: string[], processArgvParseOptions?: ParseOptions) => T | Promise<T>;
|
|
23
|
+
type RedoclyQraftAPIsByConfigKey = {
|
|
24
|
+
[configKey: string]: {
|
|
25
|
+
[apiName: string]: string[];
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=RedoclyConfigCommand.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RedoclyConfigCommand.d.ts","sourceRoot":"","sources":["../../src/lib/RedoclyConfigCommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAgC,GAAG,EAAE,MAAM,UAAU,CAAC;AAG7D,OAAO,EAAE,OAAO,EAAkB,MAAM,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC1E,OAAO,EACL,+BAA+B,EAE/B,8BAA8B,EAC/B,MAAM,0BAA0B,CAAC;AAMlC,OAAO,EAAE,+BAA+B,EAAE,8BAA8B,EAAE,CAAC;AAE3E,eAAO,MAAM,aAAa,QAAwB,CAAC;AAEnD,wBAAgB,mBAAmB,WAqBlC;AAED,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI;IAClC,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;CACpC,CAAC;AAEF,qBAAa,oBAAqB,SAAQ,OAAO;IAC/C,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAC5B,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,CAAM;IAEpC;;;OAGG;IACH,SAAS,CAAC,qBAAqB,EAAE,2BAA2B,CAAM;gBAEtD,IAAI,CAAC,EAAE,MAAM;IAsHnB,WAAW,CAAC,CAAC,EACjB,SAAS,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAChC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC;WAiBd,sBAAsB,CAAC,CAAC,EACnC,eAAe,EAAE,2BAA2B,EAC5C,SAAS,EAAE,kBAAkB,CAAC,CAAC,CAAC;CAiFnC;AAED,KAAK,UAAU,CAAC,CAAC,IAAI,CACnB,WAAW,EAAE,MAAM,EAAE,EACrB,uBAAuB,CAAC,EAAE,YAAY,KACnC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEpB,KAAK,2BAA2B,GAAG;IACjC,CAAC,SAAS,EAAE,MAAM,GAAG;QACnB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;KAC7B,CAAC;CACH,CAAC"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { relative } from 'node:path';
|
|
2
|
+
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
3
|
+
import { CONFIG_FILE_NAMES } from '@redocly/openapi-core';
|
|
4
|
+
import c from 'ansi-colors';
|
|
5
|
+
import { Command, CommanderError, Option } from 'commander';
|
|
6
|
+
import { ASYNCAPI_QRAFT_REDOC_CONFIG_KEY, getRedocAPIsToQraft, OPENAPI_QRAFT_REDOC_CONFIG_KEY, } from './getRedocAPIsToQraft.js';
|
|
7
|
+
import { loadRedoclyConfig } from './loadRedoclyConfig.js';
|
|
8
|
+
import { maybeEscapeShellArg } from './maybeEscapeShellArg.js';
|
|
9
|
+
import { parseConfigToArgs } from './parseConfigToArgs.js';
|
|
10
|
+
import { QraftCommand } from './QraftCommand.js';
|
|
11
|
+
export { ASYNCAPI_QRAFT_REDOC_CONFIG_KEY, OPENAPI_QRAFT_REDOC_CONFIG_KEY };
|
|
12
|
+
export const redoclyOption = createRedoclyOption();
|
|
13
|
+
export function createRedoclyOption() {
|
|
14
|
+
const bin = c.gray.underline('bin');
|
|
15
|
+
const __redocly = c.yellow('--redocly');
|
|
16
|
+
const examples = [
|
|
17
|
+
`${bin} ${__redocly}`,
|
|
18
|
+
`${bin} ${c.green('my-api')} ${__redocly}`,
|
|
19
|
+
`${bin} ${c.green('my-api@v1 my-api@v2')} ${__redocly}`,
|
|
20
|
+
`${bin} ${__redocly} ${c.yellow.underline('./my-redocly-config.yaml')}`,
|
|
21
|
+
].map((example) => `${c.italic.yellow(example)}`);
|
|
22
|
+
return new Option('--redocly [config]', [
|
|
23
|
+
c.bold(`Use the Redocly configuration to generate multiple API clients`),
|
|
24
|
+
`If the [config] parameter is not specified, the default Redocly configuration will be used: [${CONFIG_FILE_NAMES.join(' | ')}].`,
|
|
25
|
+
`For more information about this option, use the command: ${c.yellow.italic('--redocly-help')}`,
|
|
26
|
+
`${c.underline('Examples:')}`,
|
|
27
|
+
...examples.map((example) => `${c.gray('$')} ${example}`),
|
|
28
|
+
].join('\n'));
|
|
29
|
+
}
|
|
30
|
+
export class RedoclyConfigCommand extends Command {
|
|
31
|
+
cwd;
|
|
32
|
+
configKeys = [];
|
|
33
|
+
/**
|
|
34
|
+
* Redocly API grouped by configKey
|
|
35
|
+
* { [configKey]: { [apiName]: argv[] } }
|
|
36
|
+
*/
|
|
37
|
+
parsedAPIsByConfigKey = {};
|
|
38
|
+
constructor(name) {
|
|
39
|
+
super(name);
|
|
40
|
+
this.cwd = pathToFileURL(`${process.cwd()}/`);
|
|
41
|
+
this.usage(c.green('[apis...] --redocly <config>'))
|
|
42
|
+
.argument('[apis...]', 'Optional list of Redocly APIs for which to generate API clients. If not specified, clients for all APIs will be generated.')
|
|
43
|
+
.allowUnknownOption(true)
|
|
44
|
+
.helpOption('--redocly-help', 'Display help for the `--redocly` option')
|
|
45
|
+
.addOption(redoclyOption)
|
|
46
|
+
.action(async (apis = [], args) => {
|
|
47
|
+
const redocly = args.redocly;
|
|
48
|
+
if (!redocly)
|
|
49
|
+
return;
|
|
50
|
+
const spinner = QraftCommand.spinner;
|
|
51
|
+
spinner.start('Loading Redocly configuration ⚙︎');
|
|
52
|
+
const redoc = await loadRedoclyConfig(redocly || true, this.cwd);
|
|
53
|
+
const redocConfigFile = redoc.configFile;
|
|
54
|
+
if (!redocConfigFile) {
|
|
55
|
+
spinner.fail('No "configFile" found in the Redocly configuration. Please specify the correct path to the Redocly configuration file.');
|
|
56
|
+
process.exit(1);
|
|
57
|
+
}
|
|
58
|
+
const allRawApisByConfigKey = {};
|
|
59
|
+
for (const configKey of this.configKeys) {
|
|
60
|
+
const apisForKey = getRedocAPIsToQraft(redoc, this.cwd, spinner, configKey);
|
|
61
|
+
if (Object.keys(apisForKey).length > 0) {
|
|
62
|
+
allRawApisByConfigKey[configKey] = apisForKey;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
const allApiNames = new Set(Object.values(allRawApisByConfigKey).flatMap((apis) => Object.keys(apis)));
|
|
66
|
+
if (apis.length) {
|
|
67
|
+
const notFoundAPIs = apis.filter((inputAPIName) => !allApiNames.has(inputAPIName));
|
|
68
|
+
if (notFoundAPIs.length) {
|
|
69
|
+
spinner.fail(`The specified API${notFoundAPIs.length > 1 ? 's' : ''} ${notFoundAPIs.map(c.red).join(', ')} ${notFoundAPIs.length > 1 ? 'were' : 'was'} not found in the Redocly configuration.`);
|
|
70
|
+
throw new CommanderError(1, 'ERR_API_NOT_FOUND', `The specified API${notFoundAPIs.length > 1 ? 's' : ''} ${c.red(notFoundAPIs.join(', '))} ${notFoundAPIs.length > 1 ? 'were' : 'was'} not found in the Redocly configuration.`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
for (const [configKey, apisForKey] of Object.entries(allRawApisByConfigKey)) {
|
|
74
|
+
const filteredEntries = Object.entries(apisForKey).filter(([apiName]) => !apis.length || apis.includes(apiName));
|
|
75
|
+
if (filteredEntries.length === 0)
|
|
76
|
+
continue;
|
|
77
|
+
this.parsedAPIsByConfigKey[configKey] = {};
|
|
78
|
+
for (const [apiName, api] of filteredEntries) {
|
|
79
|
+
const globalQraftConfig = configKey in redoc.rawConfig
|
|
80
|
+
? redoc.rawConfig[configKey]
|
|
81
|
+
: undefined;
|
|
82
|
+
const apiQraftConfigWithOutput = api[configKey];
|
|
83
|
+
const { ['output-dir']: outputDir, ...apiQraftConfig } = apiQraftConfigWithOutput;
|
|
84
|
+
const cwd = fileURLToPath(this.cwd);
|
|
85
|
+
this.parsedAPIsByConfigKey[configKey][apiName] = [
|
|
86
|
+
apiName,
|
|
87
|
+
...parseConfigToArgs({
|
|
88
|
+
redocly: relative(cwd, redocConfigFile),
|
|
89
|
+
'output-dir': relative(cwd, outputDir),
|
|
90
|
+
...(globalQraftConfig && typeof globalQraftConfig === 'object'
|
|
91
|
+
? globalQraftConfig
|
|
92
|
+
: undefined),
|
|
93
|
+
...apiQraftConfig,
|
|
94
|
+
}),
|
|
95
|
+
];
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
spinner.stop();
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
async parseConfig(callbacks, argv, options) {
|
|
102
|
+
this.configKeys = Object.keys(callbacks);
|
|
103
|
+
await this.parseAsync(argv, options);
|
|
104
|
+
const hasAnyAPIs = Object.values(this.parsedAPIsByConfigKey).some((apis) => Object.keys(apis).length > 0);
|
|
105
|
+
if (!hasAnyAPIs)
|
|
106
|
+
return; // todo::improve error reporting
|
|
107
|
+
return RedoclyConfigCommand.forEachRedoclyAPIEntry(this.parsedAPIsByConfigKey, callbacks);
|
|
108
|
+
}
|
|
109
|
+
static async forEachRedoclyAPIEntry(apisByConfigKey, callbacks) {
|
|
110
|
+
const spinner = QraftCommand.spinner;
|
|
111
|
+
spinner.info('Loading Redocly configuration...');
|
|
112
|
+
const allResults = [];
|
|
113
|
+
const allErrors = [];
|
|
114
|
+
for (const [configKey, apis] of Object.entries(apisByConfigKey)) {
|
|
115
|
+
const callback = callbacks[configKey];
|
|
116
|
+
if (!callback)
|
|
117
|
+
continue;
|
|
118
|
+
const apiEntries = Object.entries(apis);
|
|
119
|
+
const { errors, results } = await Promise.allSettled(apiEntries.map(async ([apiName, [openAPIDocument, ...apiProcessArgv]]) => {
|
|
120
|
+
spinner.info(`Generating API client for ${c.magenta(apiName)} with the following parameters:\n` +
|
|
121
|
+
c.gray.italic('bin ') +
|
|
122
|
+
`${c.green.italic(openAPIDocument)} ` +
|
|
123
|
+
apiProcessArgv
|
|
124
|
+
.map((arg) => arg.startsWith('--')
|
|
125
|
+
? c.yellow.italic(arg)
|
|
126
|
+
: c.yellow.italic.underline(maybeEscapeShellArg(arg)))
|
|
127
|
+
.join(' '));
|
|
128
|
+
spinner.text = '';
|
|
129
|
+
spinner.start();
|
|
130
|
+
return await callback([openAPIDocument, ...apiProcessArgv], {
|
|
131
|
+
from: 'user',
|
|
132
|
+
});
|
|
133
|
+
})).then((results) => results.reduce((acc, result) => {
|
|
134
|
+
if (result.status === 'rejected')
|
|
135
|
+
acc.errors.push(result.reason);
|
|
136
|
+
else
|
|
137
|
+
acc.results.push(result.value);
|
|
138
|
+
return acc;
|
|
139
|
+
}, { errors: [], results: [] }));
|
|
140
|
+
allResults.push(...results);
|
|
141
|
+
allErrors.push(...errors);
|
|
142
|
+
}
|
|
143
|
+
if (allErrors.length) {
|
|
144
|
+
throw new CommanderError(1, 'ERROR', 'The following errors occurred during API client generation:\n' +
|
|
145
|
+
allErrors
|
|
146
|
+
.map((error) => error instanceof Error
|
|
147
|
+
? error.message + '\n' + error.stack
|
|
148
|
+
: JSON.stringify(error, null, 2))
|
|
149
|
+
.join('\n\n'));
|
|
150
|
+
}
|
|
151
|
+
const allApiNames = Object.values(apisByConfigKey).flatMap((apis) => Object.keys(apis));
|
|
152
|
+
spinner.succeed(c.green(`API clients successfully generated for: `) +
|
|
153
|
+
allApiNames.map((apiName) => `"${c.magenta(apiName)}"`).join(', ') +
|
|
154
|
+
'.');
|
|
155
|
+
return allResults;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=RedoclyConfigCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RedoclyConfigCommand.js","sourceRoot":"","sources":["../../src/lib/RedoclyConfigCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatFileHeader.d.ts","sourceRoot":"","sources":["../../src/lib/formatFileHeader.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,eAAgB,MAAM,GAAG,SAAS,WAG9D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatFileHeader.js","sourceRoot":"","sources":["../../src/lib/formatFileHeader.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,UAA8B,EAAE,EAAE;IACjE,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC;IAC3B,OAAO,GAAG,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACjE,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Config } from '@redocly/openapi-core';
|
|
2
|
+
import { Ora } from 'ora';
|
|
3
|
+
export declare const OPENAPI_QRAFT_REDOC_CONFIG_KEY = "x-openapi-qraft";
|
|
4
|
+
export declare const ASYNCAPI_QRAFT_REDOC_CONFIG_KEY = "x-asyncapi-qraft";
|
|
5
|
+
export declare function getRedocAPIsToQraft(redoc: Config, cwd: URL, spinner: Ora, configKey?: string, apiName?: string): {
|
|
6
|
+
[k: string]: {
|
|
7
|
+
readonly root: import("url").URL;
|
|
8
|
+
readonly output?: string;
|
|
9
|
+
readonly theme?: import("@redocly/openapi-core/lib/config/types.js").ThemeRawConfig;
|
|
10
|
+
readonly styleguide: import("@redocly/openapi-core/lib/config/types.js").ResolvedStyleguideConfig;
|
|
11
|
+
readonly files?: string[];
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=getRedocAPIsToQraft.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getRedocAPIsToQraft.d.ts","sourceRoot":"","sources":["../../src/lib/getRedocAPIsToQraft.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAIpD,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,eAAO,MAAM,8BAA8B,oBAAoB,CAAC;AAChE,eAAO,MAAM,+BAA+B,qBAAqB,CAAC;AAElE,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,GAAG,EACZ,SAAS,GAAE,MAAuC,EAClD,OAAO,CAAC,EAAE,MAAM;;;;;;;;EA6EjB"}
|