@kubb/cli 3.13.2 → 3.14.1

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.
@@ -1,14 +1,14 @@
1
+ import * as process3 from 'process';
2
+ import process3__default from 'process';
3
+ import { setup, safeBuild } from '@kubb/core';
1
4
  import { LogMapper, createLogger, randomCliColour } from '@kubb/core/logger';
5
+ import { SingleBar, Presets } from 'cli-progress';
2
6
  import { colors } from 'consola/utils';
3
- import { setup, safeBuild } from '@kubb/core';
4
7
  import { execa } from 'execa';
5
8
  import { parseArgsStringToArgv } from 'string-argv';
6
9
  import { Writable } from 'stream';
7
- import * as process3 from 'process';
8
- import process3__default from 'process';
9
10
  import PQueue from 'p-queue';
10
11
  import path from 'path';
11
- import { SingleBar, Presets } from 'cli-progress';
12
12
 
13
13
  // src/runners/generate.ts
14
14
  var ConsolaWritable = class extends Writable {
@@ -96,6 +96,8 @@ function getSummary({ pluginManager, filesCreated, status, hrStart, config }) {
96
96
  );
97
97
  return [...logs];
98
98
  }
99
+
100
+ // src/runners/generate.ts
99
101
  async function generate({ input, config, progressCache, args }) {
100
102
  const hrStart = process3__default.hrtime();
101
103
  const logLevel = LogMapper[args.logLevel] || 3;
@@ -190,7 +192,7 @@ ${logFiles.join("\n")}`);
190
192
  });
191
193
  }
192
194
  logger.consola?.error(error);
193
- process3__default.exit(0);
195
+ process3__default.exit(1);
194
196
  }
195
197
  if (config.hooks) {
196
198
  await executeHooks({ hooks: config.hooks, logger });
@@ -208,5 +210,5 @@ ${logFiles.join("\n")}`);
208
210
  }
209
211
 
210
212
  export { generate };
211
- //# sourceMappingURL=generate-R2AKCBCX.js.map
212
- //# sourceMappingURL=generate-R2AKCBCX.js.map
213
+ //# sourceMappingURL=generate-O3UFDY6P.js.map
214
+ //# sourceMappingURL=generate-O3UFDY6P.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/Writables.ts","../src/utils/executeHooks.ts","../src/utils/getErrorCauses.ts","../src/utils/parseHrtimeToSeconds.ts","../src/utils/getSummary.ts","../src/runners/generate.ts"],"names":["process2","colors","process","LogMapper"],"mappings":"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","file":"generate-O3UFDY6P.js","sourcesContent":["import { Writable } from 'node:stream'\n\nimport { colors } from 'consola/utils'\n\nimport * as process from 'node:process'\nimport type { WritableOptions } from 'node:stream'\nimport type { ConsolaInstance } from 'consola'\n\nexport class ConsolaWritable extends Writable {\n consola: ConsolaInstance | undefined\n command: string\n constructor(consola: ConsolaInstance | undefined, command: string, opts?: WritableOptions) {\n super(opts)\n\n this.command = command\n this.consola = consola\n }\n _write(chunk: any, _encoding: BufferEncoding, callback: (error?: Error | null) => void): void {\n process.stdout.write(`${colors.dim(chunk?.toString())}`)\n\n callback()\n }\n}\n","import type { Logger } from '@kubb/core/logger'\nimport { execa } from 'execa'\nimport { parseArgsStringToArgv } from 'string-argv'\nimport { colors } from 'consola/utils'\n\nimport { ConsolaWritable } from './Writables.ts'\n\nimport type { Config } from '@kubb/core'\nimport { LogMapper } from '@kubb/core/logger'\nimport PQueue from 'p-queue'\n\ntype ExecutingHooksProps = {\n hooks: NonNullable<Config['hooks']>\n logger: Logger\n}\n\nexport async function executeHooks({ hooks, logger }: ExecutingHooksProps): Promise<void> {\n const commands = Array.isArray(hooks.done) ? hooks.done : [hooks.done].filter(Boolean)\n const queue = new PQueue({ concurrency: 1 })\n\n const promises = commands.map(async (command) => {\n const consolaWritable = new ConsolaWritable(logger.consola!, command)\n const [cmd, ..._args] = [...parseArgsStringToArgv(command)]\n\n if (!cmd) {\n return null\n }\n\n await queue.add(async () => {\n logger?.emit('start', `Executing hook ${logger.logLevel !== LogMapper.silent ? colors.dim(command) : ''}`)\n\n await execa(cmd, _args, {\n detached: true,\n stdout: logger?.logLevel === LogMapper.silent ? undefined : ['pipe', consolaWritable],\n stripFinalNewline: true,\n })\n\n logger?.emit('success', `Executed hook ${logger.logLevel !== LogMapper.silent ? colors.dim(command) : ''}`)\n })\n })\n\n await Promise.all(promises)\n\n logger?.emit('success', 'Executed hooks')\n}\n","export function getErrorCauses(errors: Error[]): Error[] {\n return errors\n .reduce((prev, error) => {\n const causedError = error?.cause as Error\n if (causedError) {\n prev = [...prev, ...getErrorCauses([causedError])]\n return prev\n }\n prev = [...prev, error]\n\n return prev\n }, [] as Error[])\n .filter(Boolean)\n}\n","export function parseHrtimeToSeconds(hrtime: [number, number]): string {\n const seconds = (hrtime[0] + hrtime[1] / 1e9).toFixed(3)\n return seconds\n}\n","import path from 'node:path'\n\nimport { randomCliColour } from '@kubb/core/logger'\n\nimport { colors } from 'consola/utils'\n\nimport { parseHrtimeToSeconds } from './parseHrtimeToSeconds.ts'\n\nimport type { Config, PluginManager } from '@kubb/core'\n\ntype SummaryProps = {\n pluginManager: PluginManager\n status: 'success' | 'failed'\n hrStart: [number, number]\n filesCreated: number\n config: Config\n}\n\nexport function getSummary({ pluginManager, filesCreated, status, hrStart, config }: SummaryProps): string[] {\n const logs = new Set<string>()\n const elapsedSeconds = parseHrtimeToSeconds(process.hrtime(hrStart))\n\n const buildStartPlugins = pluginManager.executed\n .filter((item) => item.hookName === 'buildStart' && item.plugin.name !== 'core')\n .map((item) => item.plugin.name)\n\n const buildEndPlugins = pluginManager.executed.filter((item) => item.hookName === 'buildEnd' && item.plugin.name !== 'core').map((item) => item.plugin.name)\n\n const failedPlugins = config.plugins?.filter((plugin) => !buildEndPlugins.includes(plugin.name))?.map((plugin) => plugin.name)\n const pluginsCount = config.plugins?.length || 0\n\n const meta = {\n plugins:\n status === 'success'\n ? `${colors.green(`${buildStartPlugins.length} successful`)}, ${pluginsCount} total`\n : `${colors.red(`${failedPlugins?.length ?? 1} failed`)}, ${pluginsCount} total`,\n pluginsFailed: status === 'failed' ? failedPlugins?.map((name) => randomCliColour(name))?.join(', ') : undefined,\n filesCreated: filesCreated,\n time: `${colors.yellow(`${elapsedSeconds}s`)}`,\n output: path.isAbsolute(config.root) ? path.resolve(config.root, config.output.path) : config.root,\n } as const\n\n logs.add(\n [\n [`${colors.bold('Plugins:')} ${meta.plugins}`, true],\n [`${colors.dim('Failed:')} ${meta.pluginsFailed || 'none'}`, !!meta.pluginsFailed],\n [`${colors.bold('Generated:')} ${meta.filesCreated} files in ${meta.time}`, true],\n [`${colors.bold('Output:')} ${meta.output}`, true],\n ]\n .map((item) => {\n if (item.at(1)) {\n return item.at(0)\n }\n return undefined\n })\n .filter(Boolean)\n .join('\\n'),\n )\n\n return [...logs]\n}\n","import process from 'node:process'\nimport { type Config, safeBuild, setup } from '@kubb/core'\nimport { createLogger, LogMapper } from '@kubb/core/logger'\nimport { Presets, SingleBar } from 'cli-progress'\nimport { colors } from 'consola/utils'\nimport type { Args } from '../commands/generate.ts'\nimport { executeHooks } from '../utils/executeHooks.ts'\nimport { getErrorCauses } from '../utils/getErrorCauses.ts'\nimport { getSummary } from '../utils/getSummary.ts'\n\ntype GenerateProps = {\n input?: string\n config: Config\n args: Args\n progressCache: Map<string, SingleBar>\n}\n\nexport async function generate({ input, config, progressCache, args }: GenerateProps): Promise<void> {\n const hrStart = process.hrtime()\n const logLevel = LogMapper[args.logLevel as keyof typeof LogMapper] || 3\n\n const logger = createLogger({\n logLevel,\n name: config.name,\n })\n\n const { root = process.cwd(), ...userConfig } = config\n const inputPath = input ?? ('path' in userConfig.input ? userConfig.input.path : undefined)\n\n if (logger.logLevel !== LogMapper.debug) {\n logger.on('progress_start', ({ id, size, message = '' }) => {\n logger.consola?.pauseLogs()\n const payload = { id, message }\n const progressBar = new SingleBar(\n {\n format: '{percentage}% {bar} {value}/{total} | {message}',\n barsize: 30,\n clearOnComplete: true,\n emptyOnZero: true,\n },\n Presets.shades_grey,\n )\n\n if (!progressCache.has(id)) {\n progressCache.set(id, progressBar)\n progressBar.start(size, 1, payload)\n }\n })\n\n logger.on('progress_stop', ({ id }) => {\n progressCache.get(id)?.stop()\n logger.consola?.resumeLogs()\n })\n\n logger.on('progressed', ({ id, message = '' }) => {\n const payload = { id, message }\n\n progressCache.get(id)?.increment(1, payload)\n })\n }\n\n const definedConfig: Config = {\n root,\n ...userConfig,\n input: inputPath\n ? {\n ...userConfig.input,\n path: inputPath,\n }\n : userConfig.input,\n output: {\n write: true,\n barrelType: 'named',\n extension: {\n '.ts': '.ts',\n },\n ...userConfig.output,\n },\n }\n\n const pluginManager = await setup({\n config: definedConfig,\n logger,\n })\n\n logger.emit('start', `Building ${logger.logLevel !== LogMapper.silent ? colors.dim(inputPath!) : ''}`)\n\n const { files, error } = await safeBuild({\n config: definedConfig,\n pluginManager,\n logger,\n })\n\n if (logger.logLevel === LogMapper.debug) {\n logger.consola?.start('Writing logs')\n\n const logFiles = await logger.writeLogs()\n\n logger.consola?.success(`Written logs: \\n${logFiles.join('\\n')}`)\n }\n\n const summary = getSummary({\n filesCreated: files.length,\n pluginManager,\n config: definedConfig,\n status: error ? 'failed' : 'success',\n hrStart,\n })\n\n if (error && logger.consola) {\n logger.consola?.resumeLogs()\n logger.consola.error(`Build failed ${logger.logLevel !== LogMapper.silent ? colors.dim(inputPath!) : ''}`)\n\n logger.consola.box({\n title: `${config.name || ''}`,\n message: summary.join(''),\n style: {\n padding: 2,\n borderColor: 'red',\n borderStyle: 'rounded',\n },\n })\n\n const errors = getErrorCauses([error])\n if (logger.consola && errors.length && logger.logLevel === LogMapper.debug) {\n errors.forEach((err) => {\n logger.consola?.error(err)\n })\n }\n\n logger.consola?.error(error)\n\n process.exit(1)\n }\n\n if (config.hooks) {\n await executeHooks({ hooks: config.hooks, logger })\n }\n\n logger.consola?.log(`⚡Build completed ${logger.logLevel !== LogMapper.silent ? colors.dim(inputPath!) : ''}`)\n\n logger.consola?.box({\n title: `${config.name || ''}`,\n message: summary.join(''),\n style: {\n padding: 2,\n borderColor: 'green',\n borderStyle: 'rounded',\n },\n })\n}\n"]}
package/dist/index.cjs CHANGED
@@ -1,23 +1,25 @@
1
1
  'use strict';
2
2
 
3
- var chunkEGPY7KZT_cjs = require('./chunk-EGPY7KZT.cjs');
3
+ var chunkVVNXHIJS_cjs = require('./chunk-VVNXHIJS.cjs');
4
4
  var citty = require('citty');
5
+ var consola = require('consola');
6
+ var gradientString = require('gradient-string');
5
7
  var getLatestVersion = require('latest-version');
6
8
  var semver = require('semver');
7
- var gradientString = require('gradient-string');
8
- var consola = require('consola');
9
9
 
10
10
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
11
11
 
12
- var getLatestVersion__default = /*#__PURE__*/_interopDefault(getLatestVersion);
13
- var gradientString__default = /*#__PURE__*/_interopDefault(gradientString);
14
12
  var consola__default = /*#__PURE__*/_interopDefault(consola);
13
+ var gradientString__default = /*#__PURE__*/_interopDefault(gradientString);
14
+ var getLatestVersion__default = /*#__PURE__*/_interopDefault(getLatestVersion);
15
15
 
16
16
  // src/index.ts
17
- chunkEGPY7KZT_cjs.init_cjs_shims();
17
+ chunkVVNXHIJS_cjs.init_cjs_shims();
18
18
 
19
19
  // package.json
20
- var version = "3.13.2";
20
+ var version = "3.14.1";
21
+
22
+ // src/index.ts
21
23
  var name = "kubb";
22
24
  var main = citty.defineCommand({
23
25
  meta: {
@@ -43,15 +45,17 @@ Run \`npm install -g @kubb/cli\` to update`,
43
45
  }
44
46
  } catch (_e) {
45
47
  }
46
- if (!["generate"].includes(rawArgs[0])) {
48
+ if (!["generate", "validate", "mcp"].includes(rawArgs[0])) {
47
49
  console.log(rawArgs[0]);
48
- const generateCommand = await import('./generate-4F5PQZNA.cjs').then((r) => r.default);
50
+ const generateCommand = await import('./generate-7JAJY63M.cjs').then((r) => r.default);
49
51
  await citty.runCommand(generateCommand, { rawArgs });
50
52
  process.exit(0);
51
53
  }
52
54
  },
53
55
  subCommands: {
54
- generate: () => import('./generate-4F5PQZNA.cjs').then((r) => r.default)
56
+ generate: () => import('./generate-7JAJY63M.cjs').then((r) => r.default),
57
+ validate: () => import('./validate-TEQYQFI4.cjs').then((r) => r.default),
58
+ mcp: () => import('./mcp-WWVA2S6S.cjs').then((r) => r.default)
55
59
  }
56
60
  });
57
61
  async function run(_argv) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../package.json"],"names":["init_cjs_shims","defineCommand","consola","gradientString","getLatestVersion","lt","runCommand","runMain"],"mappings":";;;;;;;;;;;;;;;;AAAAA,gCAAA,EAAA;;;ACEE,IAAW,OAAA,GAAA,QAAA;ADMb,IAAM,IAAO,GAAA,MAAA;AAEb,IAAM,OAAOC,mBAAc,CAAA;AAAA,EACzB,IAAM,EAAA;AAAA,IACJ,IAAA;AAAA,IACA,OAAA;AAAA,IACA,WAAa,EAAA;AAAA,GACf;AAAA,EACA,MAAM,KAAA,CAAM,EAAE,OAAA,EAAW,EAAA;AACvB,IAAI,IAAA;AACF,MAAQC,wBAAA,CAAA,GAAA,CAAIC,gCAAe,CAAC,SAAA,EAAW,WAAW,SAAS,CAAC,CAAE,CAAA,WAAW,CAAC,CAAA;AAE1E,MAAM,MAAA,aAAA,GAAgB,MAAMC,iCAAA,CAAiB,WAAW,CAAA;AAExD,MAAI,IAAAC,SAAA,CAAG,OAAS,EAAA,aAAa,CAAG,EAAA;AAC9B,QAAAH,wBAAA,CAAQ,GAAI,CAAA;AAAA,UACV,KAAO,EAAA,8BAAA;AAAA,UACP,OAAS,EAAA,CAAA,GAAA,EAAM,OAAO,CAAA,aAAA,EAAW,aAAa,CAAA;AAAA,0CAAA,CAAA;AAAA,UAE9C,KAAO,EAAA;AAAA,YACL,OAAS,EAAA,CAAA;AAAA,YACT,WAAa,EAAA,QAAA;AAAA,YACb,WAAa,EAAA;AAAA;AACf,SACD,CAAA;AAAA;AACH,aACO,EAAI,EAAA;AAAA;AAEb,IAAI,IAAA,CAAC,CAAC,UAAU,CAAA,CAAE,SAAS,OAAQ,CAAA,CAAC,CAAW,CAAG,EAAA;AAChD,MAAQ,OAAA,CAAA,GAAA,CAAI,OAAQ,CAAA,CAAC,CAAC,CAAA;AAEtB,MAAM,MAAA,eAAA,GAAkB,MAAM,OAAO,yBAAwB,EAAE,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO,CAAA;AAEpF,MAAA,MAAMI,gBAAW,CAAA,eAAA,EAAiB,EAAE,OAAA,EAAS,CAAA;AAE7C,MAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA;AAChB,GACF;AAAA,EACA,WAAa,EAAA;AAAA,IACX,QAAA,EAAU,MAAM,OAAO,yBAAwB,EAAE,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO;AAAA;AAE1E,CAAC,CAAA;AAED,eAAsB,IAAI,KAAiC,EAAA;AACzD,EAAA,MAAMC,cAAQ,IAAI,CAAA;AACpB","file":"index.cjs","sourcesContent":["import { defineCommand, runCommand, runMain } from 'citty'\nimport getLatestVersion from 'latest-version'\nimport { lt } from 'semver'\nimport { default as gradientString } from 'gradient-string'\n\nimport { version } from '../package.json'\nimport consola from 'consola'\n\nconst name = 'kubb'\n\nconst main = defineCommand({\n meta: {\n name,\n version,\n description: 'Kubb generation',\n },\n async setup({ rawArgs }) {\n try {\n consola.log(gradientString(['#F58517', '#F5A217', '#F55A17'])('Kubb CLI:'))\n\n const latestVersion = await getLatestVersion('@kubb/cli')\n\n if (lt(version, latestVersion)) {\n consola.box({\n title: 'Update available for `Kubb` ',\n message: `\\`v${version}\\` → \\`v${latestVersion}\\`\nRun \\`npm install -g @kubb/cli\\` to update`,\n style: {\n padding: 2,\n borderColor: 'yellow',\n borderStyle: 'rounded',\n },\n })\n }\n } catch (_e) {}\n\n if (!['generate'].includes(rawArgs[0] as string)) {\n console.log(rawArgs[0])\n // generate is not being used\n const generateCommand = await import('./commands/generate.ts').then((r) => r.default)\n\n await runCommand(generateCommand, { rawArgs })\n\n process.exit(0)\n }\n },\n subCommands: {\n generate: () => import('./commands/generate.ts').then((r) => r.default),\n },\n})\n\nexport async function run(_argv?: string[]): Promise<void> {\n await runMain(main)\n}\n","{\n \"name\": \"@kubb/cli\",\n \"version\": \"3.13.2\",\n \"description\": \"Generator cli\",\n \"keywords\": [\n \"typescript\",\n \"plugins\",\n \"kubb\",\n \"codegen\",\n \"cli\"\n ],\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/kubb-labs/kubb.git\",\n \"directory\": \"packages/cli\"\n },\n \"license\": \"MIT\",\n \"author\": \"stijnvanhulle\",\n \"sideEffects\": false,\n \"type\": \"module\",\n \"exports\": {\n \".\": {\n \"import\": \"./dist/index.js\",\n \"require\": \"./dist/index.cjs\",\n \"default\": \"./dist/index.cjs\"\n }\n },\n \"main\": \"dist/index.cjs\",\n \"module\": \"dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"bin\": {\n \"kubb\": \"bin/kubb.cjs\"\n },\n \"files\": [\n \"src\",\n \"dist\",\n \"bin\",\n \"!/**/**.test.**\",\n \"!/**/__tests__/**\"\n ],\n \"scripts\": {\n \"build\": \"tsup\",\n \"clean\": \"npx rimraf ./dist\",\n \"lint\": \"bun biome lint .\",\n \"lint:fix\": \"bun biome lint--fix --unsafe .\",\n \"release\": \"pnpm publish --no-git-check\",\n \"release:canary\": \"bash ../../.github/canary.sh && node ../../scripts/build.js canary && pnpm publish --no-git-check\",\n \"start\": \"tsup --watch\",\n \"test\": \"vitest --passWithNoTests\",\n \"typecheck\": \"tsc -p ./tsconfig.json --noEmit --emitDeclarationOnly false\"\n },\n \"dependencies\": {\n \"@kubb/core\": \"workspace:*\",\n \"@kubb/ui\": \"workspace:*\",\n \"chokidar\": \"^4.0.3\",\n \"citty\": \"^0.1.6\",\n \"cli-progress\": \"^3.12.0\",\n \"consola\": \"^3.4.2\",\n \"cosmiconfig\": \"^9.0.0\",\n \"execa\": \"^9.6.0\",\n \"gradient-string\": \"^3.0.0\",\n \"jiti\": \"^2.4.2\",\n \"latest-version\": \"^9.0.0\",\n \"open\": \"^10.1.2\",\n \"p-queue\": \"^8.1.0\",\n \"semver\": \"^7.7.2\",\n \"string-argv\": \"^0.3.2\"\n },\n \"devDependencies\": {\n \"@kubb/config-ts\": \"workspace:*\",\n \"@kubb/config-tsup\": \"workspace:*\",\n \"@kubb/mcp\": \"workspace:*\",\n \"@kubb/plugin-oas\": \"workspace:*\",\n \"@types/cli-progress\": \"^3.11.6\",\n \"@types/node\": \"catalog:\",\n \"@types/semver\": \"^7.7.0\",\n \"source-map-support\": \"^0.5.21\",\n \"tsup\": \"catalog:\",\n \"typescript\": \"catalog:\"\n },\n \"engines\": {\n \"node\": \">=20\"\n },\n \"preferGlobal\": true,\n \"publishConfig\": {\n \"access\": \"public\",\n \"registry\": \"https://registry.npmjs.org/\"\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/index.ts","../package.json"],"names":["init_cjs_shims","defineCommand","consola","gradientString","getLatestVersion","lt","runCommand","runMain"],"mappings":";;;;;;;;;;;;;;;;AAAAA,gCAAA,EAAA;;;ACEE,IAAW,OAAA,GAAA,QAAA;;;ADKb,IAAM,IAAO,GAAA,MAAA;AAEb,IAAM,OAAOC,mBAAc,CAAA;AAAA,EACzB,IAAM,EAAA;AAAA,IACJ,IAAA;AAAA,IACA,OAAA;AAAA,IACA,WAAa,EAAA;AAAA,GACf;AAAA,EACA,MAAM,KAAA,CAAM,EAAE,OAAA,EAAW,EAAA;AACvB,IAAI,IAAA;AACF,MAAQC,wBAAA,CAAA,GAAA,CAAIC,gCAAe,CAAC,SAAA,EAAW,WAAW,SAAS,CAAC,CAAE,CAAA,WAAW,CAAC,CAAA;AAE1E,MAAM,MAAA,aAAA,GAAgB,MAAMC,iCAAA,CAAiB,WAAW,CAAA;AAExD,MAAI,IAAAC,SAAA,CAAG,OAAS,EAAA,aAAa,CAAG,EAAA;AAC9B,QAAAH,wBAAA,CAAQ,GAAI,CAAA;AAAA,UACV,KAAO,EAAA,8BAAA;AAAA,UACP,OAAS,EAAA,CAAA,GAAA,EAAM,OAAO,CAAA,aAAA,EAAW,aAAa,CAAA;AAAA,0CAAA,CAAA;AAAA,UAE9C,KAAO,EAAA;AAAA,YACL,OAAS,EAAA,CAAA;AAAA,YACT,WAAa,EAAA,QAAA;AAAA,YACb,WAAa,EAAA;AAAA;AACf,SACD,CAAA;AAAA;AACH,aACO,EAAI,EAAA;AAAA;AAEb,IAAI,IAAA,CAAC,CAAC,UAAA,EAAY,UAAY,EAAA,KAAK,EAAE,QAAS,CAAA,OAAA,CAAQ,CAAC,CAAW,CAAG,EAAA;AACnE,MAAQ,OAAA,CAAA,GAAA,CAAI,OAAQ,CAAA,CAAC,CAAC,CAAA;AAEtB,MAAM,MAAA,eAAA,GAAkB,MAAM,OAAO,yBAAwB,EAAE,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO,CAAA;AAEpF,MAAA,MAAMI,gBAAW,CAAA,eAAA,EAAiB,EAAE,OAAA,EAAS,CAAA;AAE7C,MAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA;AAChB,GACF;AAAA,EACA,WAAa,EAAA;AAAA,IACX,QAAA,EAAU,MAAM,OAAO,yBAAwB,EAAE,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO,CAAA;AAAA,IACtE,QAAA,EAAU,MAAM,OAAO,yBAAwB,EAAE,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO,CAAA;AAAA,IACtE,GAAA,EAAK,MAAM,OAAO,oBAAmB,EAAE,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO;AAAA;AAEhE,CAAC,CAAA;AAED,eAAsB,IAAI,KAAiC,EAAA;AACzD,EAAA,MAAMC,cAAQ,IAAI,CAAA;AACpB","file":"index.cjs","sourcesContent":["import { defineCommand, runCommand, runMain } from 'citty'\nimport consola from 'consola'\nimport { default as gradientString } from 'gradient-string'\nimport getLatestVersion from 'latest-version'\nimport { lt } from 'semver'\nimport { version } from '../package.json'\n\nconst name = 'kubb'\n\nconst main = defineCommand({\n meta: {\n name,\n version,\n description: 'Kubb generation',\n },\n async setup({ rawArgs }) {\n try {\n consola.log(gradientString(['#F58517', '#F5A217', '#F55A17'])('Kubb CLI:'))\n\n const latestVersion = await getLatestVersion('@kubb/cli')\n\n if (lt(version, latestVersion)) {\n consola.box({\n title: 'Update available for `Kubb` ',\n message: `\\`v${version}\\` → \\`v${latestVersion}\\`\nRun \\`npm install -g @kubb/cli\\` to update`,\n style: {\n padding: 2,\n borderColor: 'yellow',\n borderStyle: 'rounded',\n },\n })\n }\n } catch (_e) {}\n\n if (!['generate', 'validate', 'mcp'].includes(rawArgs[0] as string)) {\n console.log(rawArgs[0])\n // generate is not being used\n const generateCommand = await import('./commands/generate.ts').then((r) => r.default)\n\n await runCommand(generateCommand, { rawArgs })\n\n process.exit(0)\n }\n },\n subCommands: {\n generate: () => import('./commands/generate.ts').then((r) => r.default),\n validate: () => import('./commands/validate.ts').then((r) => r.default),\n mcp: () => import('./commands/mcp.ts').then((r) => r.default),\n },\n})\n\nexport async function run(_argv?: string[]): Promise<void> {\n await runMain(main)\n}\n","{\n \"name\": \"@kubb/cli\",\n \"version\": \"3.14.1\",\n \"description\": \"Command-line interface for Kubb, enabling easy generation of TypeScript, React-Query, Zod, and other code from OpenAPI specifications.\",\n \"keywords\": [\n \"cli\",\n \"command-line\",\n \"typescript\",\n \"openapi\",\n \"swagger\",\n \"code-generator\",\n \"codegen\",\n \"plugins\",\n \"kubb\"\n ],\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/kubb-labs/kubb.git\",\n \"directory\": \"packages/cli\"\n },\n \"license\": \"MIT\",\n \"author\": \"stijnvanhulle\",\n \"sideEffects\": false,\n \"type\": \"module\",\n \"exports\": {\n \".\": {\n \"import\": \"./dist/index.js\",\n \"require\": \"./dist/index.cjs\",\n \"default\": \"./dist/index.cjs\"\n }\n },\n \"main\": \"dist/index.cjs\",\n \"module\": \"dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"bin\": {\n \"kubb\": \"bin/kubb.cjs\"\n },\n \"files\": [\n \"src\",\n \"dist\",\n \"bin\",\n \"!/**/**.test.**\",\n \"!/**/__tests__/**\"\n ],\n \"scripts\": {\n \"build\": \"tsup\",\n \"clean\": \"npx rimraf ./dist\",\n \"lint\": \"bun biome lint .\",\n \"lint:fix\": \"bun biome lint--fix --unsafe .\",\n \"release\": \"pnpm publish --no-git-check\",\n \"release:canary\": \"bash ../../.github/canary.sh && node ../../scripts/build.js canary && pnpm publish --no-git-check\",\n \"start\": \"tsup --watch\",\n \"test\": \"vitest --passWithNoTests\",\n \"typecheck\": \"tsc -p ./tsconfig.json --noEmit --emitDeclarationOnly false\"\n },\n \"dependencies\": {\n \"@kubb/core\": \"workspace:*\",\n \"@kubb/ui\": \"workspace:*\",\n \"chokidar\": \"^4.0.3\",\n \"citty\": \"^0.1.6\",\n \"cli-progress\": \"^3.12.0\",\n \"consola\": \"^3.4.2\",\n \"cosmiconfig\": \"^9.0.0\",\n \"execa\": \"^9.6.0\",\n \"gradient-string\": \"^3.0.0\",\n \"jiti\": \"^2.4.2\",\n \"latest-version\": \"^9.0.0\",\n \"open\": \"^10.1.2\",\n \"p-queue\": \"^8.1.0\",\n \"semver\": \"^7.7.2\",\n \"string-argv\": \"^0.3.2\"\n },\n \"devDependencies\": {\n \"@kubb/config-ts\": \"workspace:*\",\n \"@kubb/config-tsup\": \"workspace:*\",\n \"@kubb/mcp\": \"workspace:*\",\n \"@kubb/oas\": \"workspace:*\",\n \"@kubb/plugin-oas\": \"workspace:*\",\n \"@types/cli-progress\": \"^3.11.6\",\n \"@types/node\": \"catalog:\",\n \"@types/semver\": \"^7.7.0\",\n \"source-map-support\": \"^0.5.21\",\n \"tsup\": \"catalog:\",\n \"typescript\": \"catalog:\"\n },\n \"engines\": {\n \"node\": \">=20\"\n },\n \"preferGlobal\": true,\n \"publishConfig\": {\n \"access\": \"public\",\n \"registry\": \"https://registry.npmjs.org/\"\n }\n}\n"]}
package/dist/index.js CHANGED
@@ -1,13 +1,15 @@
1
1
  import { defineCommand, runCommand, runMain } from 'citty';
2
+ import consola from 'consola';
3
+ import gradientString from 'gradient-string';
2
4
  import getLatestVersion from 'latest-version';
3
5
  import { lt } from 'semver';
4
- import gradientString from 'gradient-string';
5
- import consola from 'consola';
6
6
 
7
7
  // src/index.ts
8
8
 
9
9
  // package.json
10
- var version = "3.13.2";
10
+ var version = "3.14.1";
11
+
12
+ // src/index.ts
11
13
  var name = "kubb";
12
14
  var main = defineCommand({
13
15
  meta: {
@@ -33,15 +35,17 @@ Run \`npm install -g @kubb/cli\` to update`,
33
35
  }
34
36
  } catch (_e) {
35
37
  }
36
- if (!["generate"].includes(rawArgs[0])) {
38
+ if (!["generate", "validate", "mcp"].includes(rawArgs[0])) {
37
39
  console.log(rawArgs[0]);
38
- const generateCommand = await import('./generate-APFHZUB2.js').then((r) => r.default);
40
+ const generateCommand = await import('./generate-BQMCI2PI.js').then((r) => r.default);
39
41
  await runCommand(generateCommand, { rawArgs });
40
42
  process.exit(0);
41
43
  }
42
44
  },
43
45
  subCommands: {
44
- generate: () => import('./generate-APFHZUB2.js').then((r) => r.default)
46
+ generate: () => import('./generate-BQMCI2PI.js').then((r) => r.default),
47
+ validate: () => import('./validate-ONN45RYY.js').then((r) => r.default),
48
+ mcp: () => import('./mcp-PKBP525K.js').then((r) => r.default)
45
49
  }
46
50
  });
47
51
  async function run(_argv) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../package.json","../src/index.ts"],"names":[],"mappings":";;;;;;;;;AAEE,IAAW,OAAA,GAAA,QAAA;ACMb,IAAM,IAAO,GAAA,MAAA;AAEb,IAAM,OAAO,aAAc,CAAA;AAAA,EACzB,IAAM,EAAA;AAAA,IACJ,IAAA;AAAA,IACA,OAAA;AAAA,IACA,WAAa,EAAA;AAAA,GACf;AAAA,EACA,MAAM,KAAA,CAAM,EAAE,OAAA,EAAW,EAAA;AACvB,IAAI,IAAA;AACF,MAAQ,OAAA,CAAA,GAAA,CAAI,eAAe,CAAC,SAAA,EAAW,WAAW,SAAS,CAAC,CAAE,CAAA,WAAW,CAAC,CAAA;AAE1E,MAAM,MAAA,aAAA,GAAgB,MAAM,gBAAA,CAAiB,WAAW,CAAA;AAExD,MAAI,IAAA,EAAA,CAAG,OAAS,EAAA,aAAa,CAAG,EAAA;AAC9B,QAAA,OAAA,CAAQ,GAAI,CAAA;AAAA,UACV,KAAO,EAAA,8BAAA;AAAA,UACP,OAAS,EAAA,CAAA,GAAA,EAAM,OAAO,CAAA,aAAA,EAAW,aAAa,CAAA;AAAA,0CAAA,CAAA;AAAA,UAE9C,KAAO,EAAA;AAAA,YACL,OAAS,EAAA,CAAA;AAAA,YACT,WAAa,EAAA,QAAA;AAAA,YACb,WAAa,EAAA;AAAA;AACf,SACD,CAAA;AAAA;AACH,aACO,EAAI,EAAA;AAAA;AAEb,IAAI,IAAA,CAAC,CAAC,UAAU,CAAA,CAAE,SAAS,OAAQ,CAAA,CAAC,CAAW,CAAG,EAAA;AAChD,MAAQ,OAAA,CAAA,GAAA,CAAI,OAAQ,CAAA,CAAC,CAAC,CAAA;AAEtB,MAAM,MAAA,eAAA,GAAkB,MAAM,OAAO,wBAAwB,EAAE,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO,CAAA;AAEpF,MAAA,MAAM,UAAW,CAAA,eAAA,EAAiB,EAAE,OAAA,EAAS,CAAA;AAE7C,MAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA;AAChB,GACF;AAAA,EACA,WAAa,EAAA;AAAA,IACX,QAAA,EAAU,MAAM,OAAO,wBAAwB,EAAE,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO;AAAA;AAE1E,CAAC,CAAA;AAED,eAAsB,IAAI,KAAiC,EAAA;AACzD,EAAA,MAAM,QAAQ,IAAI,CAAA;AACpB","file":"index.js","sourcesContent":["{\n \"name\": \"@kubb/cli\",\n \"version\": \"3.13.2\",\n \"description\": \"Generator cli\",\n \"keywords\": [\n \"typescript\",\n \"plugins\",\n \"kubb\",\n \"codegen\",\n \"cli\"\n ],\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/kubb-labs/kubb.git\",\n \"directory\": \"packages/cli\"\n },\n \"license\": \"MIT\",\n \"author\": \"stijnvanhulle\",\n \"sideEffects\": false,\n \"type\": \"module\",\n \"exports\": {\n \".\": {\n \"import\": \"./dist/index.js\",\n \"require\": \"./dist/index.cjs\",\n \"default\": \"./dist/index.cjs\"\n }\n },\n \"main\": \"dist/index.cjs\",\n \"module\": \"dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"bin\": {\n \"kubb\": \"bin/kubb.cjs\"\n },\n \"files\": [\n \"src\",\n \"dist\",\n \"bin\",\n \"!/**/**.test.**\",\n \"!/**/__tests__/**\"\n ],\n \"scripts\": {\n \"build\": \"tsup\",\n \"clean\": \"npx rimraf ./dist\",\n \"lint\": \"bun biome lint .\",\n \"lint:fix\": \"bun biome lint--fix --unsafe .\",\n \"release\": \"pnpm publish --no-git-check\",\n \"release:canary\": \"bash ../../.github/canary.sh && node ../../scripts/build.js canary && pnpm publish --no-git-check\",\n \"start\": \"tsup --watch\",\n \"test\": \"vitest --passWithNoTests\",\n \"typecheck\": \"tsc -p ./tsconfig.json --noEmit --emitDeclarationOnly false\"\n },\n \"dependencies\": {\n \"@kubb/core\": \"workspace:*\",\n \"@kubb/ui\": \"workspace:*\",\n \"chokidar\": \"^4.0.3\",\n \"citty\": \"^0.1.6\",\n \"cli-progress\": \"^3.12.0\",\n \"consola\": \"^3.4.2\",\n \"cosmiconfig\": \"^9.0.0\",\n \"execa\": \"^9.6.0\",\n \"gradient-string\": \"^3.0.0\",\n \"jiti\": \"^2.4.2\",\n \"latest-version\": \"^9.0.0\",\n \"open\": \"^10.1.2\",\n \"p-queue\": \"^8.1.0\",\n \"semver\": \"^7.7.2\",\n \"string-argv\": \"^0.3.2\"\n },\n \"devDependencies\": {\n \"@kubb/config-ts\": \"workspace:*\",\n \"@kubb/config-tsup\": \"workspace:*\",\n \"@kubb/mcp\": \"workspace:*\",\n \"@kubb/plugin-oas\": \"workspace:*\",\n \"@types/cli-progress\": \"^3.11.6\",\n \"@types/node\": \"catalog:\",\n \"@types/semver\": \"^7.7.0\",\n \"source-map-support\": \"^0.5.21\",\n \"tsup\": \"catalog:\",\n \"typescript\": \"catalog:\"\n },\n \"engines\": {\n \"node\": \">=20\"\n },\n \"preferGlobal\": true,\n \"publishConfig\": {\n \"access\": \"public\",\n \"registry\": \"https://registry.npmjs.org/\"\n }\n}\n","import { defineCommand, runCommand, runMain } from 'citty'\nimport getLatestVersion from 'latest-version'\nimport { lt } from 'semver'\nimport { default as gradientString } from 'gradient-string'\n\nimport { version } from '../package.json'\nimport consola from 'consola'\n\nconst name = 'kubb'\n\nconst main = defineCommand({\n meta: {\n name,\n version,\n description: 'Kubb generation',\n },\n async setup({ rawArgs }) {\n try {\n consola.log(gradientString(['#F58517', '#F5A217', '#F55A17'])('Kubb CLI:'))\n\n const latestVersion = await getLatestVersion('@kubb/cli')\n\n if (lt(version, latestVersion)) {\n consola.box({\n title: 'Update available for `Kubb` ',\n message: `\\`v${version}\\` → \\`v${latestVersion}\\`\nRun \\`npm install -g @kubb/cli\\` to update`,\n style: {\n padding: 2,\n borderColor: 'yellow',\n borderStyle: 'rounded',\n },\n })\n }\n } catch (_e) {}\n\n if (!['generate'].includes(rawArgs[0] as string)) {\n console.log(rawArgs[0])\n // generate is not being used\n const generateCommand = await import('./commands/generate.ts').then((r) => r.default)\n\n await runCommand(generateCommand, { rawArgs })\n\n process.exit(0)\n }\n },\n subCommands: {\n generate: () => import('./commands/generate.ts').then((r) => r.default),\n },\n})\n\nexport async function run(_argv?: string[]): Promise<void> {\n await runMain(main)\n}\n"]}
1
+ {"version":3,"sources":["../package.json","../src/index.ts"],"names":[],"mappings":";;;;;;;;;AAEE,IAAW,OAAA,GAAA,QAAA;;;ACKb,IAAM,IAAO,GAAA,MAAA;AAEb,IAAM,OAAO,aAAc,CAAA;AAAA,EACzB,IAAM,EAAA;AAAA,IACJ,IAAA;AAAA,IACA,OAAA;AAAA,IACA,WAAa,EAAA;AAAA,GACf;AAAA,EACA,MAAM,KAAA,CAAM,EAAE,OAAA,EAAW,EAAA;AACvB,IAAI,IAAA;AACF,MAAQ,OAAA,CAAA,GAAA,CAAI,eAAe,CAAC,SAAA,EAAW,WAAW,SAAS,CAAC,CAAE,CAAA,WAAW,CAAC,CAAA;AAE1E,MAAM,MAAA,aAAA,GAAgB,MAAM,gBAAA,CAAiB,WAAW,CAAA;AAExD,MAAI,IAAA,EAAA,CAAG,OAAS,EAAA,aAAa,CAAG,EAAA;AAC9B,QAAA,OAAA,CAAQ,GAAI,CAAA;AAAA,UACV,KAAO,EAAA,8BAAA;AAAA,UACP,OAAS,EAAA,CAAA,GAAA,EAAM,OAAO,CAAA,aAAA,EAAW,aAAa,CAAA;AAAA,0CAAA,CAAA;AAAA,UAE9C,KAAO,EAAA;AAAA,YACL,OAAS,EAAA,CAAA;AAAA,YACT,WAAa,EAAA,QAAA;AAAA,YACb,WAAa,EAAA;AAAA;AACf,SACD,CAAA;AAAA;AACH,aACO,EAAI,EAAA;AAAA;AAEb,IAAI,IAAA,CAAC,CAAC,UAAA,EAAY,UAAY,EAAA,KAAK,EAAE,QAAS,CAAA,OAAA,CAAQ,CAAC,CAAW,CAAG,EAAA;AACnE,MAAQ,OAAA,CAAA,GAAA,CAAI,OAAQ,CAAA,CAAC,CAAC,CAAA;AAEtB,MAAM,MAAA,eAAA,GAAkB,MAAM,OAAO,wBAAwB,EAAE,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO,CAAA;AAEpF,MAAA,MAAM,UAAW,CAAA,eAAA,EAAiB,EAAE,OAAA,EAAS,CAAA;AAE7C,MAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA;AAChB,GACF;AAAA,EACA,WAAa,EAAA;AAAA,IACX,QAAA,EAAU,MAAM,OAAO,wBAAwB,EAAE,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO,CAAA;AAAA,IACtE,QAAA,EAAU,MAAM,OAAO,wBAAwB,EAAE,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO,CAAA;AAAA,IACtE,GAAA,EAAK,MAAM,OAAO,mBAAmB,EAAE,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO;AAAA;AAEhE,CAAC,CAAA;AAED,eAAsB,IAAI,KAAiC,EAAA;AACzD,EAAA,MAAM,QAAQ,IAAI,CAAA;AACpB","file":"index.js","sourcesContent":["{\n \"name\": \"@kubb/cli\",\n \"version\": \"3.14.1\",\n \"description\": \"Command-line interface for Kubb, enabling easy generation of TypeScript, React-Query, Zod, and other code from OpenAPI specifications.\",\n \"keywords\": [\n \"cli\",\n \"command-line\",\n \"typescript\",\n \"openapi\",\n \"swagger\",\n \"code-generator\",\n \"codegen\",\n \"plugins\",\n \"kubb\"\n ],\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/kubb-labs/kubb.git\",\n \"directory\": \"packages/cli\"\n },\n \"license\": \"MIT\",\n \"author\": \"stijnvanhulle\",\n \"sideEffects\": false,\n \"type\": \"module\",\n \"exports\": {\n \".\": {\n \"import\": \"./dist/index.js\",\n \"require\": \"./dist/index.cjs\",\n \"default\": \"./dist/index.cjs\"\n }\n },\n \"main\": \"dist/index.cjs\",\n \"module\": \"dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"bin\": {\n \"kubb\": \"bin/kubb.cjs\"\n },\n \"files\": [\n \"src\",\n \"dist\",\n \"bin\",\n \"!/**/**.test.**\",\n \"!/**/__tests__/**\"\n ],\n \"scripts\": {\n \"build\": \"tsup\",\n \"clean\": \"npx rimraf ./dist\",\n \"lint\": \"bun biome lint .\",\n \"lint:fix\": \"bun biome lint--fix --unsafe .\",\n \"release\": \"pnpm publish --no-git-check\",\n \"release:canary\": \"bash ../../.github/canary.sh && node ../../scripts/build.js canary && pnpm publish --no-git-check\",\n \"start\": \"tsup --watch\",\n \"test\": \"vitest --passWithNoTests\",\n \"typecheck\": \"tsc -p ./tsconfig.json --noEmit --emitDeclarationOnly false\"\n },\n \"dependencies\": {\n \"@kubb/core\": \"workspace:*\",\n \"@kubb/ui\": \"workspace:*\",\n \"chokidar\": \"^4.0.3\",\n \"citty\": \"^0.1.6\",\n \"cli-progress\": \"^3.12.0\",\n \"consola\": \"^3.4.2\",\n \"cosmiconfig\": \"^9.0.0\",\n \"execa\": \"^9.6.0\",\n \"gradient-string\": \"^3.0.0\",\n \"jiti\": \"^2.4.2\",\n \"latest-version\": \"^9.0.0\",\n \"open\": \"^10.1.2\",\n \"p-queue\": \"^8.1.0\",\n \"semver\": \"^7.7.2\",\n \"string-argv\": \"^0.3.2\"\n },\n \"devDependencies\": {\n \"@kubb/config-ts\": \"workspace:*\",\n \"@kubb/config-tsup\": \"workspace:*\",\n \"@kubb/mcp\": \"workspace:*\",\n \"@kubb/oas\": \"workspace:*\",\n \"@kubb/plugin-oas\": \"workspace:*\",\n \"@types/cli-progress\": \"^3.11.6\",\n \"@types/node\": \"catalog:\",\n \"@types/semver\": \"^7.7.0\",\n \"source-map-support\": \"^0.5.21\",\n \"tsup\": \"catalog:\",\n \"typescript\": \"catalog:\"\n },\n \"engines\": {\n \"node\": \">=20\"\n },\n \"preferGlobal\": true,\n \"publishConfig\": {\n \"access\": \"public\",\n \"registry\": \"https://registry.npmjs.org/\"\n }\n}\n","import { defineCommand, runCommand, runMain } from 'citty'\nimport consola from 'consola'\nimport { default as gradientString } from 'gradient-string'\nimport getLatestVersion from 'latest-version'\nimport { lt } from 'semver'\nimport { version } from '../package.json'\n\nconst name = 'kubb'\n\nconst main = defineCommand({\n meta: {\n name,\n version,\n description: 'Kubb generation',\n },\n async setup({ rawArgs }) {\n try {\n consola.log(gradientString(['#F58517', '#F5A217', '#F55A17'])('Kubb CLI:'))\n\n const latestVersion = await getLatestVersion('@kubb/cli')\n\n if (lt(version, latestVersion)) {\n consola.box({\n title: 'Update available for `Kubb` ',\n message: `\\`v${version}\\` → \\`v${latestVersion}\\`\nRun \\`npm install -g @kubb/cli\\` to update`,\n style: {\n padding: 2,\n borderColor: 'yellow',\n borderStyle: 'rounded',\n },\n })\n }\n } catch (_e) {}\n\n if (!['generate', 'validate', 'mcp'].includes(rawArgs[0] as string)) {\n console.log(rawArgs[0])\n // generate is not being used\n const generateCommand = await import('./commands/generate.ts').then((r) => r.default)\n\n await runCommand(generateCommand, { rawArgs })\n\n process.exit(0)\n }\n },\n subCommands: {\n generate: () => import('./commands/generate.ts').then((r) => r.default),\n validate: () => import('./commands/validate.ts').then((r) => r.default),\n mcp: () => import('./commands/mcp.ts').then((r) => r.default),\n },\n})\n\nexport async function run(_argv?: string[]): Promise<void> {\n await runMain(main)\n}\n"]}
@@ -0,0 +1,48 @@
1
+ import { defineCommand, showUsage } from 'citty';
2
+ import consola from 'consola';
3
+ import { createJiti } from 'jiti';
4
+
5
+ // src/commands/mcp.ts
6
+ var jiti = createJiti(import.meta.url, {
7
+ sourceMaps: true
8
+ });
9
+ var args = {
10
+ help: {
11
+ type: "boolean",
12
+ description: "Show help",
13
+ alias: "h",
14
+ default: false
15
+ }
16
+ };
17
+ var command = defineCommand({
18
+ meta: {
19
+ name: "mcp",
20
+ description: "Start the server to enable the MCP client to interact with the LLM."
21
+ },
22
+ args,
23
+ async run(commandContext) {
24
+ const { args: args2 } = commandContext;
25
+ if (args2.help) {
26
+ return showUsage(command);
27
+ }
28
+ let mod;
29
+ try {
30
+ mod = await jiti.import("@kubb/mcp", { default: true });
31
+ } catch (_e) {
32
+ consola.error(`Import of '@kubb/mcp' is required to start the MCP server`);
33
+ }
34
+ const { startServer } = mod;
35
+ try {
36
+ consola.start("Starting MCP server...");
37
+ consola.warn("This feature is still under development \u2014 use with caution");
38
+ await startServer();
39
+ } catch (e) {
40
+ consola.error(e?.message);
41
+ }
42
+ }
43
+ });
44
+ var mcp_default = command;
45
+
46
+ export { mcp_default as default };
47
+ //# sourceMappingURL=mcp-PKBP525K.js.map
48
+ //# sourceMappingURL=mcp-PKBP525K.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/mcp.ts"],"names":["args"],"mappings":";;;;;AAKA,IAAM,IAAA,GAAO,UAAW,CAAA,MAAA,CAAA,IAAA,CAAY,GAAK,EAAA;AAAA,EACvC,UAAY,EAAA;AACd,CAAC,CAAA;AAED,IAAM,IAAO,GAAA;AAAA,EACX,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,SAAA;AAAA,IACN,WAAa,EAAA,WAAA;AAAA,IACb,KAAO,EAAA,GAAA;AAAA,IACP,OAAS,EAAA;AAAA;AAEb,CAAA;AAIA,IAAM,UAAU,aAAc,CAAA;AAAA,EAC5B,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,KAAA;AAAA,IACN,WAAa,EAAA;AAAA,GACf;AAAA,EACA,IAAA;AAAA,EACA,MAAM,IAAI,cAAgB,EAAA;AACxB,IAAM,MAAA,EAAE,IAAAA,EAAAA,KAAAA,EAAS,GAAA,cAAA;AAEjB,IAAA,IAAIA,MAAK,IAAM,EAAA;AACb,MAAA,OAAO,UAAU,OAAO,CAAA;AAAA;AAG1B,IAAI,IAAA,GAAA;AACJ,IAAI,IAAA;AACF,MAAA,GAAA,GAAM,MAAM,IAAK,CAAA,MAAA,CAAO,aAAa,EAAE,OAAA,EAAS,MAAM,CAAA;AAAA,aAC/C,EAAI,EAAA;AACX,MAAA,OAAA,CAAQ,MAAM,CAA2D,yDAAA,CAAA,CAAA;AAAA;AAG3E,IAAM,MAAA,EAAE,aAAgB,GAAA,GAAA;AACxB,IAAI,IAAA;AACF,MAAA,OAAA,CAAQ,MAAM,wBAAwB,CAAA;AACtC,MAAA,OAAA,CAAQ,KAAK,iEAA4D,CAAA;AACzE,MAAA,MAAM,WAAY,EAAA;AAAA,aACX,CAAG,EAAA;AACV,MAAQ,OAAA,CAAA,KAAA,CAAO,GAAa,OAAO,CAAA;AAAA;AACrC;AAEJ,CAAC,CAAA;AAED,IAAO,WAAQ,GAAA","file":"mcp-PKBP525K.js","sourcesContent":["import type { ArgsDef, ParsedArgs } from 'citty'\nimport { defineCommand, showUsage } from 'citty'\nimport consola from 'consola'\nimport { createJiti } from 'jiti'\n\nconst jiti = createJiti(import.meta.url, {\n sourceMaps: true,\n})\n\nconst args = {\n help: {\n type: 'boolean',\n description: 'Show help',\n alias: 'h',\n default: false,\n },\n} as const satisfies ArgsDef\n\nexport type Args = ParsedArgs<typeof args>\n\nconst command = defineCommand({\n meta: {\n name: 'mcp',\n description: 'Start the server to enable the MCP client to interact with the LLM.',\n },\n args,\n async run(commandContext) {\n const { args } = commandContext\n\n if (args.help) {\n return showUsage(command)\n }\n\n let mod: any\n try {\n mod = await jiti.import('@kubb/mcp', { default: true })\n } catch (_e) {\n consola.error(`Import of '@kubb/mcp' is required to start the MCP server`)\n }\n\n const { startServer } = mod\n try {\n consola.start('Starting MCP server...')\n consola.warn('This feature is still under development — use with caution')\n await startServer()\n } catch (e) {\n consola.error((e as Error)?.message)\n }\n },\n})\n\nexport default command\n"]}
@@ -0,0 +1,56 @@
1
+ 'use strict';
2
+
3
+ var chunkVVNXHIJS_cjs = require('./chunk-VVNXHIJS.cjs');
4
+ var citty = require('citty');
5
+ var consola = require('consola');
6
+ var jiti$1 = require('jiti');
7
+
8
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
+
10
+ var consola__default = /*#__PURE__*/_interopDefault(consola);
11
+
12
+ // src/commands/mcp.ts
13
+ chunkVVNXHIJS_cjs.init_cjs_shims();
14
+ var jiti = jiti$1.createJiti(chunkVVNXHIJS_cjs.importMetaUrl, {
15
+ sourceMaps: true
16
+ });
17
+ var args = {
18
+ help: {
19
+ type: "boolean",
20
+ description: "Show help",
21
+ alias: "h",
22
+ default: false
23
+ }
24
+ };
25
+ var command = citty.defineCommand({
26
+ meta: {
27
+ name: "mcp",
28
+ description: "Start the server to enable the MCP client to interact with the LLM."
29
+ },
30
+ args,
31
+ async run(commandContext) {
32
+ const { args: args2 } = commandContext;
33
+ if (args2.help) {
34
+ return citty.showUsage(command);
35
+ }
36
+ let mod;
37
+ try {
38
+ mod = await jiti.import("@kubb/mcp", { default: true });
39
+ } catch (_e) {
40
+ consola__default.default.error(`Import of '@kubb/mcp' is required to start the MCP server`);
41
+ }
42
+ const { startServer } = mod;
43
+ try {
44
+ consola__default.default.start("Starting MCP server...");
45
+ consola__default.default.warn("This feature is still under development \u2014 use with caution");
46
+ await startServer();
47
+ } catch (e) {
48
+ consola__default.default.error(e?.message);
49
+ }
50
+ }
51
+ });
52
+ var mcp_default = command;
53
+
54
+ module.exports = mcp_default;
55
+ //# sourceMappingURL=mcp-WWVA2S6S.cjs.map
56
+ //# sourceMappingURL=mcp-WWVA2S6S.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/mcp.ts"],"names":["init_cjs_shims","createJiti","importMetaUrl","defineCommand","args","showUsage","consola"],"mappings":";;;;;;;;;;;;AAAAA,gCAAA,EAAA;AAKA,IAAM,IAAA,GAAOC,kBAAWC,+BAAiB,EAAA;AAAA,EACvC,UAAY,EAAA;AACd,CAAC,CAAA;AAED,IAAM,IAAO,GAAA;AAAA,EACX,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,SAAA;AAAA,IACN,WAAa,EAAA,WAAA;AAAA,IACb,KAAO,EAAA,GAAA;AAAA,IACP,OAAS,EAAA;AAAA;AAEb,CAAA;AAIA,IAAM,UAAUC,mBAAc,CAAA;AAAA,EAC5B,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,KAAA;AAAA,IACN,WAAa,EAAA;AAAA,GACf;AAAA,EACA,IAAA;AAAA,EACA,MAAM,IAAI,cAAgB,EAAA;AACxB,IAAM,MAAA,EAAE,IAAAC,EAAAA,KAAAA,EAAS,GAAA,cAAA;AAEjB,IAAA,IAAIA,MAAK,IAAM,EAAA;AACb,MAAA,OAAOC,gBAAU,OAAO,CAAA;AAAA;AAG1B,IAAI,IAAA,GAAA;AACJ,IAAI,IAAA;AACF,MAAA,GAAA,GAAM,MAAM,IAAK,CAAA,MAAA,CAAO,aAAa,EAAE,OAAA,EAAS,MAAM,CAAA;AAAA,aAC/C,EAAI,EAAA;AACX,MAAAC,wBAAA,CAAQ,MAAM,CAA2D,yDAAA,CAAA,CAAA;AAAA;AAG3E,IAAM,MAAA,EAAE,aAAgB,GAAA,GAAA;AACxB,IAAI,IAAA;AACF,MAAAA,wBAAA,CAAQ,MAAM,wBAAwB,CAAA;AACtC,MAAAA,wBAAA,CAAQ,KAAK,iEAA4D,CAAA;AACzE,MAAA,MAAM,WAAY,EAAA;AAAA,aACX,CAAG,EAAA;AACV,MAAQA,wBAAA,CAAA,KAAA,CAAO,GAAa,OAAO,CAAA;AAAA;AACrC;AAEJ,CAAC,CAAA;AAED,IAAO,WAAQ,GAAA","file":"mcp-WWVA2S6S.cjs","sourcesContent":["import type { ArgsDef, ParsedArgs } from 'citty'\nimport { defineCommand, showUsage } from 'citty'\nimport consola from 'consola'\nimport { createJiti } from 'jiti'\n\nconst jiti = createJiti(import.meta.url, {\n sourceMaps: true,\n})\n\nconst args = {\n help: {\n type: 'boolean',\n description: 'Show help',\n alias: 'h',\n default: false,\n },\n} as const satisfies ArgsDef\n\nexport type Args = ParsedArgs<typeof args>\n\nconst command = defineCommand({\n meta: {\n name: 'mcp',\n description: 'Start the server to enable the MCP client to interact with the LLM.',\n },\n args,\n async run(commandContext) {\n const { args } = commandContext\n\n if (args.help) {\n return showUsage(command)\n }\n\n let mod: any\n try {\n mod = await jiti.import('@kubb/mcp', { default: true })\n } catch (_e) {\n consola.error(`Import of '@kubb/mcp' is required to start the MCP server`)\n }\n\n const { startServer } = mod\n try {\n consola.start('Starting MCP server...')\n consola.warn('This feature is still under development — use with caution')\n await startServer()\n } catch (e) {\n consola.error((e as Error)?.message)\n }\n },\n})\n\nexport default command\n"]}
@@ -0,0 +1,58 @@
1
+ import process from 'process';
2
+ import { defineCommand, showUsage } from 'citty';
3
+ import consola from 'consola';
4
+ import { createJiti } from 'jiti';
5
+
6
+ // src/commands/validate.ts
7
+ var jiti = createJiti(import.meta.url, {
8
+ sourceMaps: true
9
+ });
10
+ var args = {
11
+ input: {
12
+ type: "string",
13
+ description: "Path to Swagger/OpenAPI file",
14
+ alias: "i"
15
+ },
16
+ help: {
17
+ type: "boolean",
18
+ description: "Show help",
19
+ alias: "h",
20
+ default: false
21
+ }
22
+ };
23
+ var command = defineCommand({
24
+ meta: {
25
+ name: "validate",
26
+ description: "Validate a Swagger/OpenAPI file"
27
+ },
28
+ args,
29
+ async run(commandContext) {
30
+ const { args: args2 } = commandContext;
31
+ if (args2.help) {
32
+ return showUsage(command);
33
+ }
34
+ if (args2.input) {
35
+ let mod;
36
+ try {
37
+ mod = await jiti.import("@kubb/oas", { default: true });
38
+ } catch (_e) {
39
+ consola.error(`Import of '@kubb/oas' is required to do validation`);
40
+ }
41
+ const { parse } = mod;
42
+ try {
43
+ const oas = await parse(args2.input);
44
+ await oas.valdiate();
45
+ consola.success("Validation success");
46
+ } catch (e) {
47
+ consola.fail("Validation failed");
48
+ consola.log(e?.message);
49
+ process.exit(1);
50
+ }
51
+ }
52
+ }
53
+ });
54
+ var validate_default = command;
55
+
56
+ export { validate_default as default };
57
+ //# sourceMappingURL=validate-ONN45RYY.js.map
58
+ //# sourceMappingURL=validate-ONN45RYY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/validate.ts"],"names":["args"],"mappings":";;;;;;AAMA,IAAM,IAAA,GAAO,UAAW,CAAA,MAAA,CAAA,IAAA,CAAY,GAAK,EAAA;AAAA,EACvC,UAAY,EAAA;AACd,CAAC,CAAA;AAED,IAAM,IAAO,GAAA;AAAA,EACX,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,QAAA;AAAA,IACN,WAAa,EAAA,8BAAA;AAAA,IACb,KAAO,EAAA;AAAA,GACT;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,SAAA;AAAA,IACN,WAAa,EAAA,WAAA;AAAA,IACb,KAAO,EAAA,GAAA;AAAA,IACP,OAAS,EAAA;AAAA;AAEb,CAAA;AAIA,IAAM,UAAU,aAAc,CAAA;AAAA,EAC5B,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,UAAA;AAAA,IACN,WAAa,EAAA;AAAA,GACf;AAAA,EACA,IAAA;AAAA,EACA,MAAM,IAAI,cAAgB,EAAA;AACxB,IAAM,MAAA,EAAE,IAAAA,EAAAA,KAAAA,EAAS,GAAA,cAAA;AAEjB,IAAA,IAAIA,MAAK,IAAM,EAAA;AACb,MAAA,OAAO,UAAU,OAAO,CAAA;AAAA;AAG1B,IAAA,IAAIA,MAAK,KAAO,EAAA;AACd,MAAI,IAAA,GAAA;AACJ,MAAI,IAAA;AACF,QAAA,GAAA,GAAM,MAAM,IAAK,CAAA,MAAA,CAAO,aAAa,EAAE,OAAA,EAAS,MAAM,CAAA;AAAA,eAC/C,EAAI,EAAA;AACX,QAAA,OAAA,CAAQ,MAAM,CAAoD,kDAAA,CAAA,CAAA;AAAA;AAGpE,MAAM,MAAA,EAAE,OAAU,GAAA,GAAA;AAClB,MAAI,IAAA;AACF,QAAA,MAAM,GAAM,GAAA,MAAM,KAAMA,CAAAA,KAAAA,CAAK,KAAK,CAAA;AAClC,QAAA,MAAM,IAAI,QAAS,EAAA;AAEnB,QAAA,OAAA,CAAQ,QAAQ,oBAAoB,CAAA;AAAA,eAC7B,CAAG,EAAA;AACV,QAAA,OAAA,CAAQ,KAAK,mBAAmB,CAAA;AAChC,QAAQ,OAAA,CAAA,GAAA,CAAK,GAAa,OAAO,CAAA;AACjC,QAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA;AAChB;AACF;AAEJ,CAAC,CAAA;AAED,IAAO,gBAAQ,GAAA","file":"validate-ONN45RYY.js","sourcesContent":["import process from 'node:process'\nimport type { ArgsDef, ParsedArgs } from 'citty'\nimport { defineCommand, showUsage } from 'citty'\nimport consola from 'consola'\nimport { createJiti } from 'jiti'\n\nconst jiti = createJiti(import.meta.url, {\n sourceMaps: true,\n})\n\nconst args = {\n input: {\n type: 'string',\n description: 'Path to Swagger/OpenAPI file',\n alias: 'i',\n },\n help: {\n type: 'boolean',\n description: 'Show help',\n alias: 'h',\n default: false,\n },\n} as const satisfies ArgsDef\n\nexport type Args = ParsedArgs<typeof args>\n\nconst command = defineCommand({\n meta: {\n name: 'validate',\n description: 'Validate a Swagger/OpenAPI file',\n },\n args,\n async run(commandContext) {\n const { args } = commandContext\n\n if (args.help) {\n return showUsage(command)\n }\n\n if (args.input) {\n let mod: any\n try {\n mod = await jiti.import('@kubb/oas', { default: true })\n } catch (_e) {\n consola.error(`Import of '@kubb/oas' is required to do validation`)\n }\n\n const { parse } = mod\n try {\n const oas = await parse(args.input)\n await oas.valdiate()\n\n consola.success('Validation success')\n } catch (e) {\n consola.fail('Validation failed')\n consola.log((e as Error)?.message)\n process.exit(1)\n }\n }\n },\n})\n\nexport default command\n"]}
@@ -0,0 +1,67 @@
1
+ 'use strict';
2
+
3
+ var chunkVVNXHIJS_cjs = require('./chunk-VVNXHIJS.cjs');
4
+ var process = require('process');
5
+ var citty = require('citty');
6
+ var consola = require('consola');
7
+ var jiti$1 = require('jiti');
8
+
9
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
+
11
+ var process__default = /*#__PURE__*/_interopDefault(process);
12
+ var consola__default = /*#__PURE__*/_interopDefault(consola);
13
+
14
+ // src/commands/validate.ts
15
+ chunkVVNXHIJS_cjs.init_cjs_shims();
16
+ var jiti = jiti$1.createJiti(chunkVVNXHIJS_cjs.importMetaUrl, {
17
+ sourceMaps: true
18
+ });
19
+ var args = {
20
+ input: {
21
+ type: "string",
22
+ description: "Path to Swagger/OpenAPI file",
23
+ alias: "i"
24
+ },
25
+ help: {
26
+ type: "boolean",
27
+ description: "Show help",
28
+ alias: "h",
29
+ default: false
30
+ }
31
+ };
32
+ var command = citty.defineCommand({
33
+ meta: {
34
+ name: "validate",
35
+ description: "Validate a Swagger/OpenAPI file"
36
+ },
37
+ args,
38
+ async run(commandContext) {
39
+ const { args: args2 } = commandContext;
40
+ if (args2.help) {
41
+ return citty.showUsage(command);
42
+ }
43
+ if (args2.input) {
44
+ let mod;
45
+ try {
46
+ mod = await jiti.import("@kubb/oas", { default: true });
47
+ } catch (_e) {
48
+ consola__default.default.error(`Import of '@kubb/oas' is required to do validation`);
49
+ }
50
+ const { parse } = mod;
51
+ try {
52
+ const oas = await parse(args2.input);
53
+ await oas.valdiate();
54
+ consola__default.default.success("Validation success");
55
+ } catch (e) {
56
+ consola__default.default.fail("Validation failed");
57
+ consola__default.default.log(e?.message);
58
+ process__default.default.exit(1);
59
+ }
60
+ }
61
+ }
62
+ });
63
+ var validate_default = command;
64
+
65
+ module.exports = validate_default;
66
+ //# sourceMappingURL=validate-TEQYQFI4.cjs.map
67
+ //# sourceMappingURL=validate-TEQYQFI4.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/validate.ts"],"names":["init_cjs_shims","createJiti","importMetaUrl","defineCommand","args","showUsage","consola","process"],"mappings":";;;;;;;;;;;;;;AAAAA,gCAAA,EAAA;AAMA,IAAM,IAAA,GAAOC,kBAAWC,+BAAiB,EAAA;AAAA,EACvC,UAAY,EAAA;AACd,CAAC,CAAA;AAED,IAAM,IAAO,GAAA;AAAA,EACX,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,QAAA;AAAA,IACN,WAAa,EAAA,8BAAA;AAAA,IACb,KAAO,EAAA;AAAA,GACT;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,SAAA;AAAA,IACN,WAAa,EAAA,WAAA;AAAA,IACb,KAAO,EAAA,GAAA;AAAA,IACP,OAAS,EAAA;AAAA;AAEb,CAAA;AAIA,IAAM,UAAUC,mBAAc,CAAA;AAAA,EAC5B,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,UAAA;AAAA,IACN,WAAa,EAAA;AAAA,GACf;AAAA,EACA,IAAA;AAAA,EACA,MAAM,IAAI,cAAgB,EAAA;AACxB,IAAM,MAAA,EAAE,IAAAC,EAAAA,KAAAA,EAAS,GAAA,cAAA;AAEjB,IAAA,IAAIA,MAAK,IAAM,EAAA;AACb,MAAA,OAAOC,gBAAU,OAAO,CAAA;AAAA;AAG1B,IAAA,IAAID,MAAK,KAAO,EAAA;AACd,MAAI,IAAA,GAAA;AACJ,MAAI,IAAA;AACF,QAAA,GAAA,GAAM,MAAM,IAAK,CAAA,MAAA,CAAO,aAAa,EAAE,OAAA,EAAS,MAAM,CAAA;AAAA,eAC/C,EAAI,EAAA;AACX,QAAAE,wBAAA,CAAQ,MAAM,CAAoD,kDAAA,CAAA,CAAA;AAAA;AAGpE,MAAM,MAAA,EAAE,OAAU,GAAA,GAAA;AAClB,MAAI,IAAA;AACF,QAAA,MAAM,GAAM,GAAA,MAAM,KAAMF,CAAAA,KAAAA,CAAK,KAAK,CAAA;AAClC,QAAA,MAAM,IAAI,QAAS,EAAA;AAEnB,QAAAE,wBAAA,CAAQ,QAAQ,oBAAoB,CAAA;AAAA,eAC7B,CAAG,EAAA;AACV,QAAAA,wBAAA,CAAQ,KAAK,mBAAmB,CAAA;AAChC,QAAQA,wBAAA,CAAA,GAAA,CAAK,GAAa,OAAO,CAAA;AACjC,QAAAC,wBAAA,CAAQ,KAAK,CAAC,CAAA;AAAA;AAChB;AACF;AAEJ,CAAC,CAAA;AAED,IAAO,gBAAQ,GAAA","file":"validate-TEQYQFI4.cjs","sourcesContent":["import process from 'node:process'\nimport type { ArgsDef, ParsedArgs } from 'citty'\nimport { defineCommand, showUsage } from 'citty'\nimport consola from 'consola'\nimport { createJiti } from 'jiti'\n\nconst jiti = createJiti(import.meta.url, {\n sourceMaps: true,\n})\n\nconst args = {\n input: {\n type: 'string',\n description: 'Path to Swagger/OpenAPI file',\n alias: 'i',\n },\n help: {\n type: 'boolean',\n description: 'Show help',\n alias: 'h',\n default: false,\n },\n} as const satisfies ArgsDef\n\nexport type Args = ParsedArgs<typeof args>\n\nconst command = defineCommand({\n meta: {\n name: 'validate',\n description: 'Validate a Swagger/OpenAPI file',\n },\n args,\n async run(commandContext) {\n const { args } = commandContext\n\n if (args.help) {\n return showUsage(command)\n }\n\n if (args.input) {\n let mod: any\n try {\n mod = await jiti.import('@kubb/oas', { default: true })\n } catch (_e) {\n consola.error(`Import of '@kubb/oas' is required to do validation`)\n }\n\n const { parse } = mod\n try {\n const oas = await parse(args.input)\n await oas.valdiate()\n\n consola.success('Validation success')\n } catch (e) {\n consola.fail('Validation failed')\n consola.log((e as Error)?.message)\n process.exit(1)\n }\n }\n },\n})\n\nexport default command\n"]}
package/package.json CHANGED
@@ -1,13 +1,17 @@
1
1
  {
2
2
  "name": "@kubb/cli",
3
- "version": "3.13.2",
4
- "description": "Generator cli",
3
+ "version": "3.14.1",
4
+ "description": "Command-line interface for Kubb, enabling easy generation of TypeScript, React-Query, Zod, and other code from OpenAPI specifications.",
5
5
  "keywords": [
6
+ "cli",
7
+ "command-line",
6
8
  "typescript",
7
- "plugins",
8
- "kubb",
9
+ "openapi",
10
+ "swagger",
11
+ "code-generator",
9
12
  "codegen",
10
- "cli"
13
+ "plugins",
14
+ "kubb"
11
15
  ],
12
16
  "repository": {
13
17
  "type": "git",
@@ -52,20 +56,21 @@
52
56
  "p-queue": "^8.1.0",
53
57
  "semver": "^7.7.2",
54
58
  "string-argv": "^0.3.2",
55
- "@kubb/core": "3.13.2",
56
- "@kubb/ui": "3.13.2"
59
+ "@kubb/core": "3.14.1",
60
+ "@kubb/ui": "3.14.1"
57
61
  },
58
62
  "devDependencies": {
59
63
  "@types/cli-progress": "^3.11.6",
60
- "@types/node": "^20.19.4",
64
+ "@types/node": "^20.19.6",
61
65
  "@types/semver": "^7.7.0",
62
66
  "source-map-support": "^0.5.21",
63
67
  "tsup": "^8.5.0",
64
68
  "typescript": "^5.8.3",
65
- "@kubb/config-ts": "3.13.2",
66
- "@kubb/config-tsup": "3.13.2",
67
- "@kubb/mcp": "3.13.2",
68
- "@kubb/plugin-oas": "3.13.2"
69
+ "@kubb/config-ts": "3.14.1",
70
+ "@kubb/config-tsup": "3.14.1",
71
+ "@kubb/mcp": "3.14.1",
72
+ "@kubb/oas": "3.14.1",
73
+ "@kubb/plugin-oas": "3.14.1"
69
74
  },
70
75
  "engines": {
71
76
  "node": ">=20"
@@ -0,0 +1,52 @@
1
+ import type { ArgsDef, ParsedArgs } from 'citty'
2
+ import { defineCommand, showUsage } from 'citty'
3
+ import consola from 'consola'
4
+ import { createJiti } from 'jiti'
5
+
6
+ const jiti = createJiti(import.meta.url, {
7
+ sourceMaps: true,
8
+ })
9
+
10
+ const args = {
11
+ help: {
12
+ type: 'boolean',
13
+ description: 'Show help',
14
+ alias: 'h',
15
+ default: false,
16
+ },
17
+ } as const satisfies ArgsDef
18
+
19
+ export type Args = ParsedArgs<typeof args>
20
+
21
+ const command = defineCommand({
22
+ meta: {
23
+ name: 'mcp',
24
+ description: 'Start the server to enable the MCP client to interact with the LLM.',
25
+ },
26
+ args,
27
+ async run(commandContext) {
28
+ const { args } = commandContext
29
+
30
+ if (args.help) {
31
+ return showUsage(command)
32
+ }
33
+
34
+ let mod: any
35
+ try {
36
+ mod = await jiti.import('@kubb/mcp', { default: true })
37
+ } catch (_e) {
38
+ consola.error(`Import of '@kubb/mcp' is required to start the MCP server`)
39
+ }
40
+
41
+ const { startServer } = mod
42
+ try {
43
+ consola.start('Starting MCP server...')
44
+ consola.warn('This feature is still under development — use with caution')
45
+ await startServer()
46
+ } catch (e) {
47
+ consola.error((e as Error)?.message)
48
+ }
49
+ },
50
+ })
51
+
52
+ export default command