@openapi-qraft/plugin 2.3.2 → 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.
Files changed (47) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/lib/QraftCommand.d.ts +10 -3
  3. package/dist/lib/QraftCommand.d.ts.map +1 -1
  4. package/dist/lib/QraftCommand.js +83 -21
  5. package/dist/lib/QraftCommand.js.map +1 -1
  6. package/dist/lib/RedoclyConfigCommand.d.ts +22 -0
  7. package/dist/lib/RedoclyConfigCommand.d.ts.map +1 -0
  8. package/dist/lib/RedoclyConfigCommand.js +127 -0
  9. package/dist/lib/RedoclyConfigCommand.js.map +1 -0
  10. package/dist/lib/getRedocAPIsToQraft.d.ts +15 -0
  11. package/dist/lib/getRedocAPIsToQraft.d.ts.map +1 -0
  12. package/dist/lib/getRedocAPIsToQraft.js +45 -0
  13. package/dist/lib/getRedocAPIsToQraft.js.map +1 -0
  14. package/dist/lib/handleSchemaInput.js +1 -1
  15. package/dist/lib/loadRedoclyConfig.d.ts +12 -0
  16. package/dist/lib/loadRedoclyConfig.d.ts.map +1 -0
  17. package/dist/lib/loadRedoclyConfig.js +17 -0
  18. package/dist/lib/loadRedoclyConfig.js.map +1 -0
  19. package/dist/lib/maybeEscapeShellArg.d.ts +2 -0
  20. package/dist/lib/maybeEscapeShellArg.d.ts.map +1 -0
  21. package/dist/lib/maybeEscapeShellArg.js +9 -0
  22. package/dist/lib/maybeEscapeShellArg.js.map +1 -0
  23. package/dist/lib/open-api/readSchema.d.ts +2 -1
  24. package/dist/lib/open-api/readSchema.d.ts.map +1 -1
  25. package/dist/lib/open-api/readSchema.js +1 -7
  26. package/dist/lib/open-api/readSchema.js.map +1 -1
  27. package/dist/lib/parseConfigToArgs.d.ts +7 -0
  28. package/dist/lib/parseConfigToArgs.d.ts.map +1 -0
  29. package/dist/lib/parseConfigToArgs.js +130 -0
  30. package/dist/lib/parseConfigToArgs.js.map +1 -0
  31. package/dist/lib/shouldQuoteCommandLineArg.d.ts +11 -0
  32. package/dist/lib/shouldQuoteCommandLineArg.d.ts.map +1 -0
  33. package/dist/lib/shouldQuoteCommandLineArg.js +33 -0
  34. package/dist/lib/shouldQuoteCommandLineArg.js.map +1 -0
  35. package/dist/packageVersion.d.ts +1 -1
  36. package/dist/packageVersion.js +1 -1
  37. package/package.json +2 -2
  38. package/src/lib/QraftCommand.ts +139 -28
  39. package/src/lib/RedoclyConfigCommand.ts +221 -0
  40. package/src/lib/getRedocAPIsToQraft.ts +87 -0
  41. package/src/lib/handleSchemaInput.ts +1 -1
  42. package/src/lib/loadRedoclyConfig.ts +47 -0
  43. package/src/lib/maybeEscapeShellArg.ts +10 -0
  44. package/src/lib/open-api/readSchema.ts +3 -11
  45. package/src/lib/parseConfigToArgs.ts +134 -0
  46. package/src/lib/shouldQuoteCommandLineArg.ts +32 -0
  47. package/src/packageVersion.ts +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @openapi-qraft/plugin
2
2
 
3
+ ## 2.4.0
4
+
5
+ ### Minor Changes
6
+
7
+ - cc314c3: Added support for Redocly configuration, allowing to generate multiple API clients in a single command.
8
+
3
9
  ## 2.3.2
4
10
 
5
11
  ## 2.3.1
@@ -1,15 +1,18 @@
1
- import type { Option } from 'commander';
2
1
  import { URL } from 'node:url';
3
- import { Command } from 'commander';
2
+ import { Command, Option, ParseOptions } from 'commander';
4
3
  import { Ora } from 'ora';
5
4
  import { GeneratorFile } from './GeneratorFile.js';
6
5
  import { OpenAPISchemaType } from './open-api/OpenAPISchemaType.js';
7
6
  import { OpenAPIService } from './open-api/OpenAPIService.js';
8
7
  import { OutputOptions } from './OutputOptions.js';
9
8
  export declare class QraftCommand extends Command {
9
+ static spinner: Ora;
10
10
  protected readonly cwd: URL;
11
11
  protected registeredPluginActions: QraftCommandActionCallback[];
12
- constructor();
12
+ /**
13
+ * @param name - not used
14
+ */
15
+ constructor(name?: string);
13
16
  action(callback: QraftCommandActionCallback): this;
14
17
  actionCallback(...actionArgs: any[]): Promise<void>;
15
18
  protected registerPluginAction(callback: QraftCommandActionCallback): void;
@@ -21,6 +24,10 @@ export declare class QraftCommand extends Command {
21
24
  requiredOption<T>(flags: string, description: string, parseArg: (value: string, previous: T) => T, defaultValue?: T): this;
22
25
  /** @deprecated since v7, instead use choices or a custom function */
23
26
  requiredOption(flags: string, description: string, regexp: RegExp, defaultValue?: string | boolean | string[]): this;
27
+ addOption(option: Option): this;
28
+ parseAsync(argv?: readonly string[], options?: ParseOptions): Promise<this>;
29
+ parse(argv?: readonly string[], options?: ParseOptions): this;
30
+ protected logVersion(): void;
24
31
  protected findSimilarOption(option: {
25
32
  flags: string;
26
33
  mandatory: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"QraftCommand.d.ts","sourceRoot":"","sources":["../../src/lib/QraftCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGxC,OAAO,EAAiB,GAAG,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAY,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAG/B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAanD,qBAAa,YAAa,SAAQ,OAAO;IACvC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAC5B,SAAS,CAAC,uBAAuB,EAAE,0BAA0B,EAAE,CAAM;;IA+CrE,MAAM,CAAC,QAAQ,EAAE,0BAA0B,GAAG,IAAI;IAK5C,cAAc,CAAC,GAAG,UAAU,EAAE,GAAG,EAAE;IA4JzC,SAAS,CAAC,oBAAoB,CAAC,QAAQ,EAAE,0BAA0B;IAInE,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,iBAAiB,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE;CAe1E;AAWD,MAAM,MAAM,0BAA0B,GAAG,CACvC,OAAO,EAAE;IACP;;OAEG;IACH,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B;;OAEG;IACH,OAAO,EAAE,GAAG,CAAC;IACb;;OAEG;IACH,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B;;OAEG;IACH,MAAM,EAAE,iBAAiB,CAAC;IAC1B;;OAEG;IACH,MAAM,EAAE,aAAa,CAAC;CACvB,EACD,OAAO,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,IAAI,KACtC,OAAO,CAAC,IAAI,CAAC,CAAC;AAmFnB;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM;;;EAoB7C"}
1
+ {"version":3,"file":"QraftCommand.d.ts","sourceRoot":"","sources":["../../src/lib/QraftCommand.ts"],"names":[],"mappings":"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"}
@@ -1,34 +1,43 @@
1
1
  import { sep } from 'node:path';
2
2
  import process from 'node:process';
3
- import { pathToFileURL } from 'node:url';
3
+ import { pathToFileURL, URL } from 'node:url';
4
+ import { createConfig, getMergedConfig } from '@redocly/openapi-core';
4
5
  import c from 'ansi-colors';
5
- import { Command } from 'commander';
6
+ import { Command, CommanderError, Option } from 'commander';
6
7
  import ora from 'ora';
7
8
  import { packageVersion } from '../packageVersion.js';
8
9
  import { filterDocumentPaths } from './filterDocumentPaths.js';
10
+ import { getRedocAPIsToQraft } from './getRedocAPIsToQraft.js';
9
11
  import { handleSchemaInput } from './handleSchemaInput.js';
12
+ import { loadRedoclyConfig } from './loadRedoclyConfig.js';
10
13
  import { getServices } from './open-api/getServices.js';
11
14
  import { readSchema } from './open-api/readSchema.js';
12
15
  import { createPredefinedParametersGlobs, parseOperationPredefinedParametersOption, predefineSchemaParameters, } from './predefineSchemaParameters.js';
13
16
  import { parseOperationNameModifier, processOperationNameModifierOption, } from './processOperationNameModifierOption.js';
17
+ import { redoclyOption } from './RedoclyConfigCommand.js';
14
18
  import { splitCommaSeparatedGlobs } from './splitCommaSeparatedGlobs.js';
15
19
  import { writeGeneratorFiles } from './writeGeneratorFiles.js';
16
20
  export class QraftCommand extends Command {
21
+ static spinner = ora();
17
22
  cwd;
18
23
  registeredPluginActions = [];
19
- constructor() {
20
- super();
24
+ /**
25
+ * @param name - not used
26
+ */
27
+ constructor(name) {
28
+ super(name);
21
29
  this.cwd = pathToFileURL(`${process.cwd()}/`);
22
30
  this.usage('[input] [options]')
23
31
  .argument('[input]', 'Input OpenAPI Document file path, URL (json, yml)', null)
24
- .requiredOption('-o, --output-dir <path>', 'Output directory for generated services')
25
- .option('-rm, --clean', 'Clean output directory before generating services')
26
- .option('--filter-services <glob-patterns...>', 'Filter services to be generated by glob pattern. Eg: "/user/**,/post/**". See NPM `micromatch` package for more details.')
27
- .option('--operation-predefined-parameters <patterns...>', 'Predefined parameters for services. The specified services parameters will be optional. Eg: "/**:header.x-monite-version,query.x-api-key" or "get /**:header.x-monite-entity-id"')
32
+ .option('-o, --output-dir <path>', 'Output directory for generated services')
33
+ .addOption(new Option('-rm, --clean', 'Clean output directory before generating services'))
34
+ .option('--filter-services <glob-patterns...>', 'Filter services to be generated using glob patterns. Example: "/user/**,/post/**". For more details, see the NPM `micromatch` package documentation.')
35
+ .option('--operation-predefined-parameters <patterns...>', 'Predefined parameters for services. The specified service parameters will be optional. Example: "/**:header.x-monite-version,query.x-api-key" or "get /**:header.x-monite-entity-id"', parseColonSeparatedList)
28
36
  .option('--operation-name-modifier <patterns...>', 'Modifies operation names using a pattern. Use the `==>` operator to separate the regular expression (left) and the substitution string (right). For example: "post /**:[A-Za-z]+Id ==> createOne"')
29
- .option('--postfix-services <string>', 'Postfix to be added to the generated service name (eg: Service)')
37
+ .addOption(new Option('--postfix-services <string>', 'Postfix to be added to the generated service name (eg: Service)'))
30
38
  .option('--service-name-base <endpoint[<index>] | tags>', 'Use OpenAPI Operation `endpoint[<index>]` path part (e.g.: "/0/1/2") or `tags` as the base name of the service.', 'endpoint[0]')
31
- .option('--file-header <string>', 'Header to be added to the generated file (eg: /* eslint-disable */)');
39
+ .addOption(new Option('--file-header <string>', 'Header to be added to the generated file (eg: /* eslint-disable */)'))
40
+ .addOption(redoclyOption);
32
41
  }
33
42
  action(callback) {
34
43
  this.registerPluginAction(callback);
@@ -43,22 +52,32 @@ export class QraftCommand extends Command {
43
52
  console.info(`v${packageVersion}`); // todo::add displaying of the used plugin version
44
53
  process.exit(0);
45
54
  }
46
- console.info(`✨ ${c.bold(`OpenAPI Qraft ${packageVersion}`)}`);
47
- const spinner = ora('Starting ⛏︎').start();
48
- const input = handleSchemaInput(inputs[0], this.cwd, spinner);
49
- spinner.text = 'Reading OpenAPI Schema';
50
- let schema = filterDocumentPaths(await readSchema(input), splitCommaSeparatedGlobs(args.filterServices));
55
+ const spinner = QraftCommand.spinner;
56
+ spinner.start('Initializing process...');
57
+ const redoc = args.redocly
58
+ ? getMergedConfig(await loadRedoclyConfig(args.redocly, this.cwd), inputs[0])
59
+ : await createConfig({
60
+ rules: {
61
+ // throw error on duplicate operationIDs
62
+ 'operation-operationId-unique': { severity: 'error' },
63
+ },
64
+ }, { extends: ['minimal'] });
65
+ const input = args.redocly
66
+ ? handleRedoclySchemaInput(redoc, inputs[0], this.cwd, spinner)
67
+ : handleSchemaInput(inputs[0], this.cwd, spinner);
68
+ spinner.text = 'Reading OpenAPI Document...';
69
+ let schema = filterDocumentPaths(await readSchema(input, redoc), splitCommaSeparatedGlobs(args.filterServices));
51
70
  if (args.operationPredefinedParameters) {
52
71
  const predefinedParametersGlobs = createPredefinedParametersGlobs(schema, parseOperationPredefinedParametersOption(...args.operationPredefinedParameters));
53
72
  const predefinedParametersErrors = predefinedParametersGlobs.flatMap(({ errors }) => errors);
54
73
  if (predefinedParametersErrors.length) {
55
74
  predefinedParametersErrors.forEach((error) => spinner.warn(error));
56
- spinner.fail('Error occurred during operation predefined parameters setup.');
75
+ spinner.fail('An error occurred while setting up operation predefined parameters.');
57
76
  process.exit(1);
58
77
  }
59
78
  schema = predefineSchemaParameters(schema, predefinedParametersGlobs);
60
79
  }
61
- spinner.text = 'Getting OpenAPI Services';
80
+ spinner.text = 'Retrieving OpenAPI Services...';
62
81
  let services = getServices(schema, {
63
82
  postfixServices: args.postfixServices,
64
83
  serviceNameBase: args.serviceNameBase,
@@ -87,7 +106,7 @@ export class QraftCommand extends Command {
87
106
  }
88
107
  services = modifiedServicesOperationNames;
89
108
  }
90
- spinner.text = 'Generating code';
109
+ spinner.text = 'Generating code...';
91
110
  const outputDir = normalizeOutputDirPath(args.outputDir);
92
111
  for (const pluginAction of this.registeredPluginActions) {
93
112
  const fileItems = await new Promise((resolve, reject) => {
@@ -116,14 +135,14 @@ export class QraftCommand extends Command {
116
135
  }
117
136
  }
118
137
  catch (error) {
119
- spinner.fail(c.red('Error occurred during generation'));
138
+ spinner.fail(c.red('An error occurred during the code generation process.'));
120
139
  if (error instanceof Error) {
121
140
  console.error(c.red(error.message), c.red(error.stack ?? ''));
122
141
  }
123
142
  throw error;
124
143
  }
125
144
  }
126
- spinner.succeed(c.green('Qraft has been finished'));
145
+ spinner.succeed(c.green('Qraft process completed successfully'));
127
146
  }
128
147
  registerPluginAction(callback) {
129
148
  this.registeredPluginActions.push(callback);
@@ -150,6 +169,28 @@ export class QraftCommand extends Command {
150
169
  // @ts-expect-error - Issues with overloading
151
170
  description, regexpOrDefaultValue, defaultValue);
152
171
  }
172
+ addOption(option) {
173
+ if (this.findSimilarOption({
174
+ flags: option.flags,
175
+ mandatory: option.mandatory,
176
+ })) {
177
+ return this;
178
+ }
179
+ return super.addOption(option);
180
+ }
181
+ parseAsync(argv, options) {
182
+ if (options?.from !== 'user')
183
+ this.logVersion();
184
+ return super.parseAsync(argv, options);
185
+ }
186
+ parse(argv, options) {
187
+ if (options?.from !== 'user')
188
+ this.logVersion();
189
+ return super.parse(argv, options);
190
+ }
191
+ logVersion() {
192
+ QraftCommand.spinner.info(`✨ ${c.bold(`OpenAPI Qraft ${packageVersion}`)}`);
193
+ }
153
194
  findSimilarOption(option) {
154
195
  try {
155
196
  return findSimilarOption(option, this.options);
@@ -157,7 +198,7 @@ export class QraftCommand extends Command {
157
198
  catch (error) {
158
199
  console.error(c.red(error instanceof Error
159
200
  ? error.message
160
- : 'Error occurred during option setup'));
201
+ : 'An error occurred during command option setup'));
161
202
  throw error;
162
203
  }
163
204
  }
@@ -230,4 +271,25 @@ export function splitOptionFlags(flags) {
230
271
  }
231
272
  return { shortFlag, longFlag };
232
273
  }
274
+ function parseColonSeparatedList(value, previous) {
275
+ if (Array.isArray(previous)) {
276
+ const previousValue = previous.at(-1);
277
+ if (typeof previousValue === 'string' &&
278
+ !previousValue.includes(':') &&
279
+ !value.includes(':')) {
280
+ return previous.slice(0, -1).concat(`${previousValue}:${value}`);
281
+ }
282
+ return previous.concat(value);
283
+ }
284
+ return [value];
285
+ }
286
+ function handleRedoclySchemaInput(redoc, inputAPIName, cwd, spinner) {
287
+ if (!inputAPIName) {
288
+ throw new CommanderError(1, 'ERR_MISSING_API', 'No API specified. Please specify the API to be generated.');
289
+ }
290
+ const api = getRedocAPIsToQraft(redoc, cwd, spinner, inputAPIName)[inputAPIName];
291
+ if (!api)
292
+ throw new CommanderError(1, 'ERR_MISSING_API', `API not found in Redocly API (${inputAPIName}) found in the Redocly configuration: ${inputAPIName}. Please specify the correct API.`);
293
+ return new URL(api['root'], cwd);
294
+ }
233
295
  //# sourceMappingURL=QraftCommand.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"QraftCommand.js","sourceRoot":"","sources":["../../src/lib/QraftCommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,aAAa,EAAO,MAAM,UAAU,CAAC;AAC9C,OAAO,CAAC,MAAM,aAAa,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,GAAY,MAAM,KAAK,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGxD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,EACL,+BAA+B,EAC/B,wCAAwC,EACxC,yBAAyB,GAC1B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,0BAA0B,EAC1B,kCAAkC,GACnC,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,MAAM,OAAO,YAAa,SAAQ,OAAO;IACpB,GAAG,CAAM;IAClB,uBAAuB,GAAiC,EAAE,CAAC;IAErE;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,GAAG,GAAG,aAAa,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAE9C,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC;aAC5B,QAAQ,CACP,SAAS,EACT,mDAAmD,EACnD,IAAI,CACL;aACA,cAAc,CACb,yBAAyB,EACzB,yCAAyC,CAC1C;aACA,MAAM,CACL,cAAc,EACd,mDAAmD,CACpD;aACA,MAAM,CACL,sCAAsC,EACtC,0HAA0H,CAC3H;aACA,MAAM,CACL,iDAAiD,EACjD,kLAAkL,CACnL;aACA,MAAM,CACL,yCAAyC,EACzC,mMAAmM,CACpM;aACA,MAAM,CACL,6BAA6B,EAC7B,iEAAiE,CAClE;aACA,MAAM,CACL,gDAAgD,EAChD,iHAAiH,EACjH,aAAa,CACd;aACA,MAAM,CACL,wBAAwB,EACxB,qEAAqE,CACtE,CAAC;IACN,CAAC;IAED,MAAM,CAAC,QAAoC;QACzC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QACpC,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,GAAG,UAAiB;QACvC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAC9B,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,CACrB,CAAC;QACd,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAC1B,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,CACjB,CAAC;QAEzB,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAEzD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC,CAAC,kDAAkD;YACtF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,iBAAiB,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC;QAE/D,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC;QAE3C,MAAM,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAE9D,OAAO,CAAC,IAAI,GAAG,wBAAwB,CAAC;QACxC,IAAI,MAAM,GAAG,mBAAmB,CAC9B,MAAM,UAAU,CAAC,KAAK,CAAC,EACvB,wBAAwB,CAAC,IAAI,CAAC,cAAc,CAAC,CAC9C,CAAC;QAEF,IAAI,IAAI,CAAC,6BAA6B,EAAE,CAAC;YACvC,MAAM,yBAAyB,GAAG,+BAA+B,CAC/D,MAAM,EACN,wCAAwC,CACtC,GAAG,IAAI,CAAC,6BAA6B,CACtC,CACF,CAAC;YAEF,MAAM,0BAA0B,GAAG,yBAAyB,CAAC,OAAO,CAClE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CACvB,CAAC;YAEF,IAAI,0BAA0B,CAAC,MAAM,EAAE,CAAC;gBACtC,0BAA0B,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBACnE,OAAO,CAAC,IAAI,CACV,8DAA8D,CAC/D,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,GAAG,yBAAyB,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;QACxE,CAAC;QAED,OAAO,CAAC,IAAI,GAAG,0BAA0B,CAAC;QAC1C,IAAI,QAAQ,GAAG,WAAW,CAAC,MAA2B,EAAE;YACtD,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,eAAe,EAAE,IAAI,CAAC,eAAe;SACtC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,MAAM,EACJ,QAAQ,EAAE,8BAA8B,EACxC,MAAM,EAAE,2BAA2B,GACpC,GAAG,kCAAkC,CACpC,0BAA0B,CACxB,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC;gBAC3C,CAAC,CAAC,IAAI,CAAC,qBAAqB;gBAC5B,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAClC,EACD,QAAQ,CACT,CAAC;YAEF,IAAI,2BAA2B,CAAC,MAAM,EAAE,CAAC;gBACvC,2BAA2B,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC5C,IAAI,KAAK,CAAC,IAAI,KAAK,kCAAkC,EAAE,CAAC;wBACtD,OAAO,CAAC,IAAI,CACV;4BACE,CAAC,CAAC,GAAG,CAAC,IAAI,CACR,yDAAyD,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,qBAAqB,SAAS,KAAK,CAAC,qBAAqB,GAAG,CACjJ;4BACD,CAAC,CAAC,MAAM,CACN,KAAK,CAAC,SAAS;iCACZ,GAAG,CACF,CAAC,EACC,SAAS,EACT,0BAA0B,EAC1B,4BAA4B,GAC7B,EAAE,EAAE,CACH,yCAAyC,SAAS,OAAO,0BAA0B,SAAS,4BAA4B,GAAG,CAC9H;iCACA,IAAI,CAAC,IAAI,CAAC,CACd;yBACF,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;oBACJ,CAAC;yBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,6BAA6B,EAAE,CAAC;wBACxD,OAAO,CAAC,IAAI,CACV;4BACE,CAAC,CAAC,MAAM,CAAC,IAAI,CACX,oCAAoC,KAAK,CAAC,QAAQ,CAAC,SAAS,OAAO,KAAK,CAAC,QAAQ,CAAC,0BAA0B,SAAS,KAAK,CAAC,QAAQ,CAAC,4BAA4B,GAAG,CACpK;yBACF,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;oBACJ,CAAC;gBACH,CAAC,CAAC,CAAC;gBAEH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,QAAQ,GAAG,8BAA8B,CAAC;QAC5C,CAAC;QAED,OAAO,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAEjC,MAAM,SAAS,GAAG,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEzD,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACxD,MAAM,SAAS,GAAG,MAAM,IAAI,OAAO,CACjC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAClB,YAAY,CACV;oBACE,MAAM;oBACN,IAAI;oBACJ,OAAO;oBACP,QAAQ;oBACR,MAAM,EAAE,MAA2B;oBACnC,MAAM,EAAE;wBACN,GAAG,EAAE,SAAS;wBACd,KAAK,EAAE,IAAI,CAAC,KAAK;qBAClB;iBACF,EACD,OAAO,CACR,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC,CACF,CAAC;YAEF,IAAI,CAAC;gBACH,IAAI,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC7D,MAAM,mBAAmB,CAAC;wBACxB,+DAA+D;wBAC/D,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,SAAS,CAAC;wBACjE,OAAO;qBACR,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,MAAM,mBAAmB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;gBACpD,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC,CAAC;gBAExD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;oBAC3B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;gBAChE,CAAC;gBAED,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;IACtD,CAAC;IAES,oBAAoB,CAAC,QAAoC;QACjE,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAoBD,MAAM,CACJ,KAAa,EACb,WAAoB,EACpB,QAKU,EACV,YAAgB;QAEhB,IACE,IAAI,CAAC,iBAAiB,CAAC;YACrB,KAAK;YACL,SAAS,EAAE,KAAK;SACjB,CAAC,EACF,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC,MAAM,CACjB,KAAK;QACL,6CAA6C;QAC7C,WAAW,EACX,QAAQ,EACR,YAAY,CACb,CAAC;IACJ,CAAC;IAoBD,cAAc,CACZ,KAAa,EACb,WAAoB,EACpB,oBAKuC,EACvC,YAA0C;QAE1C,IACE,IAAI,CAAC,iBAAiB,CAAC;YACrB,KAAK;YACL,SAAS,EAAE,IAAI;SAChB,CAAC,EACF,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC,cAAc,CACzB,KAAK;QACL,6CAA6C;QAC7C,WAAW,EACX,oBAAoB,EACpB,YAAY,CACb,CAAC;IACJ,CAAC;IAES,iBAAiB,CAAC,MAA6C;QACvE,IAAI,CAAC;YACH,OAAO,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CACX,CAAC,CAAC,GAAG,CACH,KAAK,YAAY,KAAK;gBACpB,CAAC,CAAC,KAAK,CAAC,OAAO;gBACf,CAAC,CAAC,oCAAoC,CACzC,CACF,CAAC;YAEF,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,SAAS,sBAAsB,CAAC,SAAiB;IAC/C,OAAO,aAAa,CAClB,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,GAAG,EAAE,CAC3D,CAAC;AACJ,CAAC;AAgCD,SAAS,iBAAiB,CACxB,EACE,KAAK,EACL,SAAS,GAIV,EACD,OAA0B;IAE1B,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACrD,4IAA4I;IAC5I,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,oDAAoD;IAC1F,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,yDAAyD;IAC/F,8GAA8G;IAC9G,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,uCAAuC;IAEtF,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE;QACrC,MAAM,yBAAyB,GAAG,gBAAgB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAEzE,IACE,CAAC,CACC,CAAC,yBAAyB,CAAC,QAAQ,KAAK,SAAS;YAC/C,yBAAyB,CAAC,QAAQ;gBAChC,oBAAoB,CAAC,QAAQ,CAAC;YAClC,CAAC,yBAAyB,CAAC,SAAS,KAAK,SAAS;gBAChD,yBAAyB,CAAC,SAAS;oBACjC,oBAAoB,CAAC,SAAS,CAAC,CACpC,EACD,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IACE,yBAAyB,CAAC,QAAQ,KAAK,SAAS;YAChD,oBAAoB,CAAC,QAAQ,KAAK,SAAS;YAC3C,yBAAyB,CAAC,QAAQ,KAAK,oBAAoB,CAAC,QAAQ,EACpE,CAAC;YACD,MAAM,IAAI,KAAK,CACb,aAAa,KAAK,mDAAmD,cAAc,CAAC,KAAK,uBAAuB,cAAc,CAAC,WAAW,GAAG,CAC9I,CAAC;QACJ,CAAC;QAED,IACE,yBAAyB,CAAC,SAAS,KAAK,SAAS;YACjD,oBAAoB,CAAC,SAAS,KAAK,SAAS;YAC5C,yBAAyB,CAAC,SAAS,KAAK,oBAAoB,CAAC,SAAS,EACtE,CAAC;YACD,MAAM,IAAI,KAAK,CACb,cAAc,KAAK,mDAAmD,cAAc,CAAC,KAAK,uBAAuB,cAAc,CAAC,WAAW,GAAG,CAC/I,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,KAAK,cAAc,CAAC,QAAQ,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CACb,QAAQ,KAAK,mDAAmD,cAAc,CAAC,KAAK,uBAAuB,cAAc,CAAC,WAAW,sCAAsC,CAC5K,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,KAAK,cAAc,CAAC,QAAQ,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CACb,QAAQ,KAAK,mDAAmD,cAAc,CAAC,KAAK,uBAAuB,cAAc,CAAC,WAAW,sCAAsC,CAC5K,CAAC;QACJ,CAAC;QAED,IAAI,SAAS,KAAK,cAAc,CAAC,SAAS,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CACb,QAAQ,KAAK,mDAAmD,cAAc,CAAC,KAAK,uBAAuB,cAAc,CAAC,WAAW,uCAAuC,CAC7K,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,KAAK,cAAc,CAAC,QAAQ,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CACb,QAAQ,KAAK,mDAAmD,cAAc,CAAC,KAAK,uBAAuB,cAAc,CAAC,WAAW,sCAAsC,CAC5K,CAAC;QACJ,CAAC;QAED,OAAO,cAAc,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,IAAI,SAAS,CAAC;IACd,IAAI,QAAQ,CAAC;IAEb,+EAA+E;IAC/E,oEAAoE;IACpE,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAExC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACrD,SAAS,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;IAEhC,QAAQ,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;IAE7B,4EAA4E;IAC5E,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;QACjD,SAAS,GAAG,QAAQ,CAAC;QACrB,QAAQ,GAAG,SAAS,CAAC;IACvB,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"QraftCommand.js","sourceRoot":"","sources":["../../src/lib/QraftCommand.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { URL } from 'node:url';
2
+ import { Command, Option, ParseOptions } from 'commander';
3
+ export declare const redoclyOption: Option;
4
+ /**
5
+ * @param name - not used
6
+ */
7
+ export declare class RedoclyConfigCommand extends Command {
8
+ protected readonly cwd: URL;
9
+ /**
10
+ * Redocly API item and QraftCommand arguments
11
+ */
12
+ protected parsedAPIs: RedoclyQraftAPIs;
13
+ constructor(name?: string);
14
+ parseConfig<T>(callbackFn: CallbackFn<T>, argv: readonly string[], options?: ParseOptions): Promise<T[] | undefined>;
15
+ static forEachRedoclyAPIEntry<T>(redoclyAPIs: RedoclyQraftAPIs, callbackFn: CallbackFn<T>): Promise<T[]>;
16
+ }
17
+ type CallbackFn<T> = (processArgv: string[], processArgvParseOptions?: ParseOptions) => T;
18
+ type RedoclyQraftAPIs = {
19
+ [apiName: string]: string[];
20
+ };
21
+ export {};
22
+ //# 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;AAO1E,eAAO,MAAM,aAAa,QAqBtB,CAAC;AACL;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,OAAO;IAC/C,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAE5B;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,gBAAgB,CAAM;gBAEhC,IAAI,CAAC,EAAE,MAAM;IAkFnB,WAAW,CAAC,CAAC,EACjB,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,EACzB,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC;WAWd,sBAAsB,CAAC,CAAC,EACnC,WAAW,EAAE,gBAAgB,EAC7B,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;CAoE5B;AAED,KAAK,UAAU,CAAC,CAAC,IAAI,CACnB,WAAW,EAAE,MAAM,EAAE,EACrB,uBAAuB,CAAC,EAAE,YAAY,KACnC,CAAC,CAAC;AAEP,KAAK,gBAAgB,GAAG;IACtB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC7B,CAAC"}
@@ -0,0 +1,127 @@
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 { getRedocAPIsToQraft } 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 const redoclyOption = (() => {
12
+ const bin = c.gray.underline('bin');
13
+ const __redocly = c.yellow('--redocly');
14
+ const examples = [
15
+ `${bin} ${__redocly}`,
16
+ `${bin} ${c.green('my-api')} ${__redocly}`,
17
+ `${bin} ${c.green('my-api@v1 my-api@v2')} ${__redocly}`,
18
+ `${bin} ${__redocly} ${c.yellow.underline('./my-redocly-config.yaml')}`,
19
+ ].map((example) => `${c.italic.yellow(example)}`);
20
+ return new Option('--redocly [config]', [
21
+ c.bold(`Use the Redocly configuration to generate multiple API clients`),
22
+ `If the [config] parameter is not specified, the default Redocly configuration will be used: [${CONFIG_FILE_NAMES.join(' | ')}].`,
23
+ `For more information about this option, use the command: ${c.yellow.italic('--redocly-help')}`,
24
+ `${c.underline('Examples:')}`,
25
+ ...examples.map((example) => `${c.gray('$')} ${example}`),
26
+ ].join('\n'));
27
+ })();
28
+ /**
29
+ * @param name - not used
30
+ */
31
+ export class RedoclyConfigCommand extends Command {
32
+ cwd;
33
+ /**
34
+ * Redocly API item and QraftCommand arguments
35
+ */
36
+ parsedAPIs = {};
37
+ constructor(name) {
38
+ super(name);
39
+ this.cwd = pathToFileURL(`${process.cwd()}/`);
40
+ this.usage(c.green('[apis...] --redocly <config>'))
41
+ .argument('[apis...]', 'Optional list of Redocly APIs for which to generate API clients. If not specified, clients for all APIs will be generated.')
42
+ .allowUnknownOption(true)
43
+ .helpOption('--redocly-help', 'Display help for the `--redocly` option')
44
+ .addOption(redoclyOption)
45
+ .action(async (apis = [], args) => {
46
+ const redocly = args.redocly;
47
+ if (!redocly)
48
+ return;
49
+ const spinner = QraftCommand.spinner;
50
+ spinner.start('Loading Redocly configuration ⚙︎');
51
+ const redoc = await loadRedoclyConfig(redocly || true, this.cwd);
52
+ const redocConfigFile = redoc.configFile;
53
+ if (!redocConfigFile) {
54
+ spinner.fail('No "configFile" found in the Redocly configuration. Please specify the correct path to the Redocly configuration file.');
55
+ process.exit(1);
56
+ }
57
+ const redocAPIsToQraftEntries = Object.entries(getRedocAPIsToQraft(redoc, this.cwd, spinner)).filter(([apiName]) => !apis.length || apis.includes(apiName));
58
+ if (apis.length) {
59
+ const notFoundAPIs = apis.filter((inputAPIName) => !redocAPIsToQraftEntries.some(([apiName]) => apiName === inputAPIName));
60
+ if (notFoundAPIs.length) {
61
+ 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.`);
62
+ 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.`);
63
+ }
64
+ }
65
+ redocAPIsToQraftEntries.forEach(([apiName, api]) => {
66
+ const { ['x-openapi-qraft']: { ['output-dir']: outputDir, ...qraftConfig }, } = api;
67
+ const cwd = fileURLToPath(this.cwd);
68
+ this.parsedAPIs[apiName] = [
69
+ apiName,
70
+ ...parseConfigToArgs({
71
+ redocly: relative(cwd, redocConfigFile),
72
+ 'output-dir': relative(cwd, outputDir),
73
+ ...qraftConfig,
74
+ }),
75
+ ];
76
+ });
77
+ spinner.stop();
78
+ });
79
+ }
80
+ async parseConfig(callbackFn, argv, options) {
81
+ await this.parseAsync(argv, options);
82
+ if (!Object.entries(this.parsedAPIs).length)
83
+ return;
84
+ return RedoclyConfigCommand.forEachRedoclyAPIEntry(this.parsedAPIs, callbackFn);
85
+ }
86
+ static async forEachRedoclyAPIEntry(redoclyAPIs, callbackFn) {
87
+ const redoclyAPIsEntries = Object.entries(redoclyAPIs);
88
+ const spinner = QraftCommand.spinner;
89
+ spinner.info('Loading Redocly configuration...');
90
+ const { errors, results } = await Promise.allSettled(redoclyAPIsEntries.map(async ([apiName, [openAPIDocument, ...apiProcessArgv]]) => {
91
+ spinner.info(`Generating API client for ${c.magenta(apiName)} with the following parameters:\n` +
92
+ c.gray.italic('bin ') +
93
+ `${c.green.italic(openAPIDocument)}` +
94
+ apiProcessArgv
95
+ .map((arg) => arg.startsWith('--')
96
+ ? c.yellow.italic(arg)
97
+ : c.yellow.italic.underline(maybeEscapeShellArg(arg)))
98
+ .join(' '));
99
+ spinner.text = '';
100
+ spinner.start();
101
+ return callbackFn([openAPIDocument, ...apiProcessArgv], {
102
+ from: 'user',
103
+ });
104
+ })).then((results) => results.reduce((acc, result) => {
105
+ if (result.status === 'rejected')
106
+ acc.errors.push(result.reason);
107
+ else
108
+ acc.results.push(result.value);
109
+ return acc;
110
+ }, { errors: [], results: [] }));
111
+ if (errors.length) {
112
+ throw new CommanderError(1, 'ERROR', 'The following errors occurred during API client generation:\n' +
113
+ errors
114
+ .map((error) => error instanceof Error
115
+ ? error.message + '\n' + error.stack
116
+ : JSON.stringify(error, null, 2))
117
+ .join('\n\n'));
118
+ }
119
+ spinner.succeed(c.green(`API clients successfully generated for: `) +
120
+ redoclyAPIsEntries
121
+ .map(([apiName]) => `"${c.magenta(apiName)}"`)
122
+ .join(', ') +
123
+ '.');
124
+ return results;
125
+ }
126
+ }
127
+ //# sourceMappingURL=RedoclyConfigCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RedoclyConfigCommand.js","sourceRoot":"","sources":["../../src/lib/RedoclyConfigCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAO,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,CAAC,MAAM,aAAa,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAgB,MAAM,WAAW,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE;IACjC,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAExC,MAAM,QAAQ,GAAG;QACf,GAAG,GAAG,IAAI,SAAS,EAAE;QACrB,GAAG,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,EAAE;QAC1C,GAAG,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,SAAS,EAAE;QACvD,GAAG,GAAG,IAAI,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,0BAA0B,CAAC,EAAE;KACxE,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAElD,OAAO,IAAI,MAAM,CACf,oBAAoB,EACpB;QACE,CAAC,CAAC,IAAI,CAAC,gEAAgE,CAAC;QACxE,gGAAgG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;QACjI,4DAA4D,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE;QAC/F,GAAG,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE;QAC7B,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;KAC1D,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;AACJ,CAAC,CAAC,EAAE,CAAC;AACL;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,OAAO;IAC5B,GAAG,CAAM;IAE5B;;OAEG;IACO,UAAU,GAAqB,EAAE,CAAC;IAE5C,YAAY,IAAa;QACvB,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,GAAG,GAAG,aAAa,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAE9C,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;aAChD,QAAQ,CACP,WAAW,EACX,4HAA4H,CAC7H;aACA,kBAAkB,CAAC,IAAI,CAAC;aACxB,UAAU,CAAC,gBAAgB,EAAE,yCAAyC,CAAC;aACvE,SAAS,CAAC,aAAa,CAAC;aACxB,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE;YAChC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAE7B,IAAI,CAAC,OAAO;gBAAE,OAAO;YAErB,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;YAErC,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;YAElD,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,OAAO,IAAI,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAEjE,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC;YAEzC,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,OAAO,CAAC,IAAI,CACV,wHAAwH,CACzH,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,uBAAuB,GAAG,MAAM,CAAC,OAAO,CAC5C,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAC9C,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YAEhE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAC9B,CAAC,YAAoB,EAAE,EAAE,CACvB,CAAC,uBAAuB,CAAC,IAAI,CAC3B,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,KAAK,YAAY,CACxC,CACJ,CAAC;gBAEF,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;oBACxB,OAAO,CAAC,IAAI,CACV,oBACE,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAClC,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,0CAA0C,CAC7H,CAAC;oBAEF,MAAM,IAAI,cAAc,CACtB,CAAC,EACD,mBAAmB,EACnB,oBACE,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAClC,IAAI,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,0CAA0C,CACzH,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE;gBACjD,MAAM,EACJ,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,WAAW,EAAE,GACnE,GAAG,GAAG,CAAC;gBAER,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAEpC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG;oBACzB,OAAO;oBACP,GAAG,iBAAiB,CAAC;wBACnB,OAAO,EAAE,QAAQ,CAAC,GAAG,EAAE,eAAe,CAAC;wBACvC,YAAY,EAAE,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;wBACtC,GAAG,WAAW;qBACf,CAAC;iBACH,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,WAAW,CACf,UAAyB,EACzB,IAAuB,EACvB,OAAsB;QAEtB,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAErC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM;YAAE,OAAO;QAEpD,OAAO,oBAAoB,CAAC,sBAAsB,CAChD,IAAI,CAAC,UAAU,EACf,UAAU,CACX,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,sBAAsB,CACjC,WAA6B,EAC7B,UAAyB;QAEzB,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAEvD,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;QAErC,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAEjD,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,CAAC,UAAU,CAClD,kBAAkB,CAAC,GAAG,CACpB,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,eAAe,EAAE,GAAG,cAAc,CAAC,CAAC,EAAE,EAAE;YACxD,OAAO,CAAC,IAAI,CACV,6BAA6B,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,mCAAmC;gBAChF,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBACrB,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE;gBACpC,cAAc;qBACX,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACX,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;oBAClB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;oBACtB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CACxD;qBACA,IAAI,CAAC,GAAG,CAAC,CACf,CAAC;YACF,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,EAAE,CAAC;YAEhB,OAAO,UAAU,CAAC,CAAC,eAAe,EAAE,GAAG,cAAc,CAAC,EAAE;gBACtD,IAAI,EAAE,MAAM;aACb,CAAC,CAAC;QACL,CAAC,CACF,CACF,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CACjB,OAAO,CAAC,MAAM,CACZ,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YACd,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU;gBAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;;gBAC5D,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAEpC,OAAO,GAAG,CAAC;QACb,CAAC,EACD,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAC5B,CACF,CAAC;QAEF,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,IAAI,cAAc,CACtB,CAAC,EACD,OAAO,EACP,+DAA+D;gBAC7D,MAAM;qBACH,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACb,KAAK,YAAY,KAAK;oBACpB,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,GAAG,KAAK,CAAC,KAAK;oBACpC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CACnC;qBACA,IAAI,CAAC,MAAM,CAAC,CAClB,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,OAAO,CACb,CAAC,CAAC,KAAK,CAAC,0CAA0C,CAAC;YACjD,kBAAkB;iBACf,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;iBAC7C,IAAI,CAAC,IAAI,CAAC;YACb,GAAG,CACN,CAAC;QAEF,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
@@ -0,0 +1,15 @@
1
+ import type { Config } from '@redocly/openapi-core';
2
+ import { Ora } from 'ora';
3
+ export declare const QRAFT_REDOC_CONFIG_KEY = "x-openapi-qraft";
4
+ export declare function getRedocAPIsToQraft(redoc: Config, cwd: URL, spinner: Ora, apiName?: string): {
5
+ [k: string]: {
6
+ readonly "x-openapi-qraft": {
7
+ readonly "output-dir": string;
8
+ };
9
+ readonly root: string;
10
+ readonly theme?: import("@redocly/openapi-core/lib/config/types.js").ThemeRawConfig;
11
+ readonly styleguide: import("@redocly/openapi-core/lib/config/types.js").ResolvedStyleguideConfig;
12
+ readonly files?: string[];
13
+ };
14
+ };
15
+ //# 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,sBAAsB,oBAAoB,CAAC;AAExD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,GAAG,EACZ,OAAO,CAAC,EAAE,MAAM;;;;;;;;;;EA0EjB"}
@@ -0,0 +1,45 @@
1
+ import { isAbsolute } from 'node:path';
2
+ import { fileURLToPath, pathToFileURL } from 'node:url';
3
+ import { CommanderError } from 'commander';
4
+ export const QRAFT_REDOC_CONFIG_KEY = 'x-openapi-qraft';
5
+ export function getRedocAPIsToQraft(redoc, cwd, spinner, apiName) {
6
+ const hasRedoclyApis = Object.keys(redoc?.apis ?? {}).length > 0;
7
+ if (!hasRedoclyApis) {
8
+ throw new CommanderError(1, 'ERR_MISSING_APIS', 'No "apis" found in Redocly config. Please specify the APIs to be generated.');
9
+ }
10
+ if (!redoc.configFile) {
11
+ throw new CommanderError(1, 'ERR_MISSING_CONFIG_FILE', 'No "configFile" found in Redocly config. Please specify the path to the Redocly config file.');
12
+ }
13
+ const configRoot = isAbsolute(redoc.configFile)
14
+ ? new URL(pathToFileURL(redoc.configFile))
15
+ : new URL(redoc.configFile, cwd);
16
+ const apisToQraftEntries = Object.entries(redoc.apis)
17
+ .map(([itemPpiName, api]) => {
18
+ if (apiName && apiName !== itemPpiName)
19
+ return;
20
+ const qraftConfig = QRAFT_REDOC_CONFIG_KEY in api ? api[QRAFT_REDOC_CONFIG_KEY] : undefined;
21
+ if (!qraftConfig) {
22
+ return void spinner.warn(`API ${itemPpiName} is missing an \`${QRAFT_REDOC_CONFIG_KEY}\` key. Skipping...`);
23
+ }
24
+ if (typeof qraftConfig !== 'object') {
25
+ throw new CommanderError(1, 'ERR_MISSING_API_CONFIG', `API ${itemPpiName} is missing an \`${QRAFT_REDOC_CONFIG_KEY}\` key. See https://openapi-qraft.github.io/openapi-qraft/docs/codegen/CLI/redocly-config.`);
26
+ }
27
+ const { o, ['output-dir']: outputPath = o, ...qraftConfigRest } = qraftConfig;
28
+ if (!outputPath) {
29
+ throw new CommanderError(1, 'ERR_MISSING_API_OUTPUT', `API ${itemPpiName} is missing an "output-dir" key. See https://openapi-qraft.github.io/openapi-qraft/docs/codegen/CLI/redocly-config.`);
30
+ }
31
+ return [
32
+ itemPpiName,
33
+ {
34
+ ...api,
35
+ [QRAFT_REDOC_CONFIG_KEY]: {
36
+ ...qraftConfigRest,
37
+ ['output-dir']: fileURLToPath(new URL(outputPath, configRoot)),
38
+ },
39
+ },
40
+ ];
41
+ })
42
+ .filter((api) => !!api);
43
+ return Object.fromEntries(apisToQraftEntries);
44
+ }
45
+ //# sourceMappingURL=getRedocAPIsToQraft.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getRedocAPIsToQraft.js","sourceRoot":"","sources":["../../src/lib/getRedocAPIsToQraft.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAG3C,MAAM,CAAC,MAAM,sBAAsB,GAAG,iBAAiB,CAAC;AAExD,MAAM,UAAU,mBAAmB,CACjC,KAAa,EACb,GAAQ,EACR,OAAY,EACZ,OAAgB;IAEhB,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACjE,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,cAAc,CACtB,CAAC,EACD,kBAAkB,EAClB,6EAA6E,CAC9E,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACtB,MAAM,IAAI,cAAc,CACtB,CAAC,EACD,yBAAyB,EACzB,8FAA8F,CAC/F,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC;QAC7C,CAAC,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC1C,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAEnC,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;SAClD,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,EAAE;QAC1B,IAAI,OAAO,IAAI,OAAO,KAAK,WAAW;YAAE,OAAO;QAE/C,MAAM,WAAW,GACf,sBAAsB,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE1E,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,KAAK,OAAO,CAAC,IAAI,CACtB,OAAO,WAAW,oBAAoB,sBAAsB,qBAAqB,CAClF,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACpC,MAAM,IAAI,cAAc,CACtB,CAAC,EACD,wBAAwB,EACxB,OAAO,WAAW,oBAAoB,sBAAsB,4FAA4F,CACzJ,CAAC;QACJ,CAAC;QAED,MAAM,EACJ,CAAC,EACD,CAAC,YAAY,CAAC,EAAE,UAAU,GAAG,CAAC,EAC9B,GAAG,eAAe,EACnB,GAAG,WAGH,CAAC;QAEF,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,cAAc,CACtB,CAAC,EACD,wBAAwB,EACxB,OAAO,WAAW,qHAAqH,CACxI,CAAC;QACJ,CAAC;QAED,OAAO;YACL,WAAW;YACX;gBACE,GAAG,GAAG;gBACN,CAAC,sBAAsB,CAAC,EAAE;oBACxB,GAAG,eAAe;oBAClB,CAAC,YAAY,CAAC,EAAE,aAAa,CAAC,IAAI,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;iBAC/D;aACF;SACO,CAAC;IACb,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAE1B,OAAO,MAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;AAChD,CAAC"}
@@ -14,7 +14,7 @@ export function handleSchemaInput(input, cwd, spinner) {
14
14
  * ```
15
15
  */
16
16
  if (process.stdin.isTTY) {
17
- spinner.fail('Input file not found or stdin is empty. Please specify `--input` option or pipe OpenAPI Schema to stdin.');
17
+ spinner.fail('Input file not found or stdin is empty. Please specify `input` argument or pipe OpenAPI Schema to stdin.');
18
18
  throw new Error('Invalid input.');
19
19
  }
20
20
  return process.stdin;
@@ -0,0 +1,12 @@
1
+ import { URL } from 'node:url';
2
+ import { Config } from '@redocly/openapi-core';
3
+ /**
4
+ * Loads Redocly config from the default config file:
5
+ * 'redocly.yaml', 'redocly.yml', '.redocly.yaml', '.redocly.yml'
6
+ */
7
+ export declare function loadRedoclyConfig(configPath: null | undefined | true, cwd: URL): Promise<Config>;
8
+ /**
9
+ * Loads Redocly config from the specified path or from the default config file.
10
+ */
11
+ export declare function loadRedoclyConfig(configPath: string, cwd: URL): Promise<Config>;
12
+ //# sourceMappingURL=loadRedoclyConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadRedoclyConfig.d.ts","sourceRoot":"","sources":["../../src/lib/loadRedoclyConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,GAAG,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EACL,MAAM,EAIP,MAAM,uBAAuB,CAAC;AAG/B;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,IAAI,GAAG,SAAS,GAAG,IAAI,EACnC,GAAG,EAAE,GAAG,GACP,OAAO,CAAC,MAAM,CAAC,CAAC;AACnB;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,GAAG,GACP,OAAO,CAAC,MAAM,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { fileURLToPath } from 'node:url';
2
+ import { CONFIG_FILE_NAMES, findConfig, loadConfig, } from '@redocly/openapi-core';
3
+ import { CommanderError } from 'commander';
4
+ export async function loadRedoclyConfig(configPath, cwd) {
5
+ const normalizedConfigPath = typeof configPath === 'string'
6
+ ? configPath
7
+ : findConfig(fileURLToPath(cwd));
8
+ if (!normalizedConfigPath) {
9
+ throw new CommanderError(1, 'INVALID_REDOCLY_CONFIG_PATH', typeof configPath === 'string'
10
+ ? `Could not find Redocly config file at ${configPath}`
11
+ : `Could not find Redocly config file in ${cwd}. Searched in: ${CONFIG_FILE_NAMES.join(', ')}`);
12
+ }
13
+ return await loadConfig({
14
+ configPath: normalizedConfigPath,
15
+ });
16
+ }
17
+ //# sourceMappingURL=loadRedoclyConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadRedoclyConfig.js","sourceRoot":"","sources":["../../src/lib/loadRedoclyConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAO,MAAM,UAAU,CAAC;AAC9C,OAAO,EAEL,iBAAiB,EACjB,UAAU,EACV,UAAU,GACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAiB3C,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,UAA4C,EAC5C,GAAQ;IAER,MAAM,oBAAoB,GACxB,OAAO,UAAU,KAAK,QAAQ;QAC5B,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;IAErC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC1B,MAAM,IAAI,cAAc,CACtB,CAAC,EACD,6BAA6B,EAC7B,OAAO,UAAU,KAAK,QAAQ;YAC5B,CAAC,CAAC,yCAAyC,UAAU,EAAE;YACvD,CAAC,CAAC,yCAAyC,GAAG,kBAAkB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACjG,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,UAAU,CAAC;QACtB,UAAU,EAAE,oBAAoB;KACjC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function maybeEscapeShellArg(arg: string): string;
2
+ //# sourceMappingURL=maybeEscapeShellArg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maybeEscapeShellArg.d.ts","sourceRoot":"","sources":["../../src/lib/maybeEscapeShellArg.ts"],"names":[],"mappings":"AAEA,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOvD"}
@@ -0,0 +1,9 @@
1
+ import { shouldQuoteCommandLineArg } from './shouldQuoteCommandLineArg.js';
2
+ export function maybeEscapeShellArg(arg) {
3
+ if (shouldQuoteCommandLineArg(arg)) {
4
+ // bash-safe single-quote escaping
5
+ return `'${arg.replace(/'/g, `'\\''`)}'`;
6
+ }
7
+ return arg;
8
+ }
9
+ //# sourceMappingURL=maybeEscapeShellArg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maybeEscapeShellArg.js","sourceRoot":"","sources":["../../src/lib/maybeEscapeShellArg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,IAAI,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,kCAAkC;QAClC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;IAC3C,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { Readable } from 'node:stream';
2
+ import type { Config } from '@redocly/openapi-core';
2
3
  import type { OpenAPI3 } from 'openapi-typescript';
3
- export declare const readSchema: (source: string | URL | OpenAPI3 | Readable | Buffer) => Promise<OpenAPI3>;
4
+ export declare const readSchema: (source: string | URL | OpenAPI3 | Readable | Buffer, redoc: Config) => Promise<OpenAPI3>;
4
5
  //# sourceMappingURL=readSchema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"readSchema.d.ts","sourceRoot":"","sources":["../../../src/lib/open-api/readSchema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAInD,eAAO,MAAM,UAAU,WACb,MAAM,GAAG,GAAG,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,sBAiBpD,CAAC"}
1
+ {"version":3,"file":"readSchema.d.ts","sourceRoot":"","sources":["../../../src/lib/open-api/readSchema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGnD,eAAO,MAAM,UAAU,WACb,MAAM,GAAG,GAAG,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,SAC5C,MAAM,sBAQd,CAAC"}