@kubb/cli 4.28.0 → 4.29.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 (64) hide show
  1. package/dist/{agent-DrV6PuuK.js → agent-BzD6f3mV.js} +4 -5
  2. package/dist/{agent-DrV6PuuK.js.map → agent-BzD6f3mV.js.map} +1 -1
  3. package/dist/{agent-BHBMSAC7.cjs → agent-NAhMf2ot.cjs} +4 -5
  4. package/dist/{agent-BHBMSAC7.cjs.map → agent-NAhMf2ot.cjs.map} +1 -1
  5. package/dist/{chunk-C1_xRkKa.cjs → chunk-CNbaEX1y.cjs} +1 -1
  6. package/dist/{chunk-jHaXqnEa.js → chunk-DKWOrOAv.js} +1 -1
  7. package/dist/{generate-CQYwekvF.cjs → generate-C8gS4Z2F.cjs} +190 -188
  8. package/dist/generate-C8gS4Z2F.cjs.map +1 -0
  9. package/dist/{generate-Cj8cU5XB.js → generate-CnKaIwc7.js} +191 -185
  10. package/dist/generate-CnKaIwc7.js.map +1 -0
  11. package/dist/index.cjs +9 -8
  12. package/dist/index.cjs.map +1 -1
  13. package/dist/index.d.ts +1 -1
  14. package/dist/index.js +8 -8
  15. package/dist/{init-BVwhJb7n.js → init-B5qnw1XS.js} +22 -23
  16. package/dist/init-B5qnw1XS.js.map +1 -0
  17. package/dist/{init-Ckt9G-Yf.cjs → init-BDWQO7I8.cjs} +22 -24
  18. package/dist/init-BDWQO7I8.cjs.map +1 -0
  19. package/dist/{mcp-DGyip5BX.cjs → mcp-97TXkJVX.cjs} +5 -7
  20. package/dist/mcp-97TXkJVX.cjs.map +1 -0
  21. package/dist/{mcp-C-e4yatL.js → mcp-Jboea6xH.js} +5 -6
  22. package/dist/mcp-Jboea6xH.js.map +1 -0
  23. package/dist/{package-CeCGexzv.cjs → package-oo3QhWS5.cjs} +2 -2
  24. package/dist/package-oo3QhWS5.cjs.map +1 -0
  25. package/dist/package-veMf5zNr.js +6 -0
  26. package/dist/package-veMf5zNr.js.map +1 -0
  27. package/dist/{start-jaV7_Xss.js → start-CYuU23PX.js} +27 -24
  28. package/dist/start-CYuU23PX.js.map +1 -0
  29. package/dist/{start-DqKYNdp1.cjs → start-lrn1-P52.cjs} +27 -25
  30. package/dist/start-lrn1-P52.cjs.map +1 -0
  31. package/dist/{validate-Cvb5aOEb.cjs → validate-BgYhe_55.cjs} +3 -4
  32. package/dist/{validate-Cvb5aOEb.cjs.map → validate-BgYhe_55.cjs.map} +1 -1
  33. package/dist/{validate-YI4YkVTl.js → validate-DOeZKiGx.js} +3 -4
  34. package/dist/{validate-YI4YkVTl.js.map → validate-DOeZKiGx.js.map} +1 -1
  35. package/package.json +12 -21
  36. package/src/commands/agent/start.ts +17 -16
  37. package/src/commands/generate.ts +11 -7
  38. package/src/commands/init.ts +14 -14
  39. package/src/commands/mcp.ts +2 -2
  40. package/src/loggers/clackLogger.ts +49 -40
  41. package/src/loggers/githubActionsLogger.ts +36 -32
  42. package/src/loggers/plainLogger.ts +9 -9
  43. package/src/runners/generate.ts +9 -7
  44. package/src/utils/Writables.ts +2 -2
  45. package/src/utils/executeHooks.ts +4 -5
  46. package/src/utils/formatMsWithColor.ts +4 -4
  47. package/src/utils/getIntro.ts +52 -6
  48. package/src/utils/getSummary.ts +6 -6
  49. package/src/utils/packageManager.ts +3 -9
  50. package/src/utils/randomColor.ts +5 -6
  51. package/src/utils/watcher.ts +3 -3
  52. package/dist/generate-CQYwekvF.cjs.map +0 -1
  53. package/dist/generate-Cj8cU5XB.js.map +0 -1
  54. package/dist/index.d.cts +0 -6
  55. package/dist/init-BVwhJb7n.js.map +0 -1
  56. package/dist/init-Ckt9G-Yf.cjs.map +0 -1
  57. package/dist/mcp-C-e4yatL.js.map +0 -1
  58. package/dist/mcp-DGyip5BX.cjs.map +0 -1
  59. package/dist/package-CeCGexzv.cjs.map +0 -1
  60. package/dist/package-DNxKRFpk.js +0 -6
  61. package/dist/package-DNxKRFpk.js.map +0 -1
  62. package/dist/start-DqKYNdp1.cjs.map +0 -1
  63. package/dist/start-jaV7_Xss.js.map +0 -1
  64. package/src/utils/ansiColors.ts +0 -23
@@ -1,15 +1,14 @@
1
- const require_chunk = require('./chunk-C1_xRkKa.cjs');
2
- const require_package = require('./package-CeCGexzv.cjs');
1
+ const require_chunk = require('./chunk-CNbaEX1y.cjs');
2
+ const require_package = require('./package-oo3QhWS5.cjs');
3
3
  let citty = require("citty");
4
+ let node_child_process = require("node:child_process");
4
5
  let node_path = require("node:path");
5
6
  node_path = require_chunk.__toESM(node_path);
6
7
  let node_process = require("node:process");
7
8
  node_process = require_chunk.__toESM(node_process);
9
+ let node_util = require("node:util");
8
10
  let _clack_prompts = require("@clack/prompts");
9
11
  _clack_prompts = require_chunk.__toESM(_clack_prompts);
10
- let execa = require("execa");
11
- let picocolors = require("picocolors");
12
- picocolors = require_chunk.__toESM(picocolors);
13
12
  let node_fs = require("node:fs");
14
13
  node_fs = require_chunk.__toESM(node_fs);
15
14
 
@@ -52,20 +51,20 @@ function hasPackageJson(cwd = process.cwd()) {
52
51
  return node_fs.default.existsSync(node_path.default.join(cwd, "package.json"));
53
52
  }
54
53
  async function initPackageJson(cwd, packageManager) {
55
- await (0, execa.execa)(packageManager.name, {
54
+ (0, node_child_process.spawn)(packageManager.name, {
56
55
  npm: ["init", "-y"],
57
56
  pnpm: ["init"],
58
57
  yarn: ["init", "-y"],
59
58
  bun: ["init", "-y"]
60
59
  }[packageManager.name], {
61
- cwd,
62
- stdio: "inherit"
60
+ stdio: "inherit",
61
+ cwd
63
62
  });
64
63
  }
65
64
  async function installPackages(packages, packageManager, cwd = process.cwd()) {
66
- await (0, execa.execa)(packageManager.name, [...packageManager.installCommand, ...packages], {
67
- cwd,
68
- stdio: "inherit"
65
+ (0, node_child_process.spawn)(packageManager.name, [...packageManager.installCommand, ...packages], {
66
+ stdio: "inherit",
67
+ cwd
69
68
  });
70
69
  }
71
70
 
@@ -212,7 +211,7 @@ const command = (0, citty.defineCommand)({
212
211
  async run({ args }) {
213
212
  const cwd = node_process.default.cwd();
214
213
  const yes = args.yes;
215
- _clack_prompts.intro(picocolors.default.bgCyan(picocolors.default.black(" Kubb Init ")));
214
+ _clack_prompts.intro((0, node_util.styleText)("bgCyan", (0, node_util.styleText)("black", " Kubb Init ")));
216
215
  try {
217
216
  let packageManager;
218
217
  if (!hasPackageJson(cwd)) {
@@ -227,18 +226,18 @@ const command = (0, citty.defineCommand)({
227
226
  }
228
227
  }
229
228
  packageManager = detectPackageManager(cwd);
230
- const spinner$1 = _clack_prompts.spinner();
231
- spinner$1.start(`Initializing package.json with ${packageManager.name}`);
229
+ const spinner = _clack_prompts.spinner();
230
+ spinner.start(`Initializing package.json with ${packageManager.name}`);
232
231
  await initPackageJson(cwd, packageManager);
233
- spinner$1.stop(`Created package.json with ${packageManager.name}`);
232
+ spinner.stop(`Created package.json with ${packageManager.name}`);
234
233
  } else {
235
234
  packageManager = detectPackageManager(cwd);
236
- _clack_prompts.log.info(`Detected package manager: ${picocolors.default.cyan(packageManager.name)}`);
235
+ _clack_prompts.log.info(`Detected package manager: ${(0, node_util.styleText)("cyan", packageManager.name)}`);
237
236
  }
238
237
  let inputPath;
239
238
  if (yes) {
240
239
  inputPath = DEFAULT_INPUT_PATH;
241
- _clack_prompts.log.info(`Using input path: ${picocolors.default.cyan(inputPath)}`);
240
+ _clack_prompts.log.info(`Using input path: ${(0, node_util.styleText)("cyan", inputPath)}`);
242
241
  } else {
243
242
  const inputPathResult = await _clack_prompts.text({
244
243
  message: "Where is your OpenAPI specification located?",
@@ -257,7 +256,7 @@ const command = (0, citty.defineCommand)({
257
256
  let outputPath;
258
257
  if (yes) {
259
258
  outputPath = DEFAULT_OUTPUT_PATH;
260
- _clack_prompts.log.info(`Using output path: ${picocolors.default.cyan(outputPath)}`);
259
+ _clack_prompts.log.info(`Using output path: ${(0, node_util.styleText)("cyan", outputPath)}`);
261
260
  } else {
262
261
  const outputPathResult = await _clack_prompts.text({
263
262
  message: "Where should the generated files be output?",
@@ -276,7 +275,7 @@ const command = (0, citty.defineCommand)({
276
275
  let selectedPlugins;
277
276
  if (yes) {
278
277
  selectedPlugins = plugins.filter((plugin) => DEFAULT_PLUGINS.includes(plugin.value));
279
- _clack_prompts.log.info(`Using plugins: ${picocolors.default.cyan(selectedPlugins.map((p) => p.label).join(", "))}`);
278
+ _clack_prompts.log.info(`Using plugins: ${(0, node_util.styleText)("cyan", selectedPlugins.map((p) => p.label).join(", "))}`);
280
279
  } else {
281
280
  const selectedPluginValues = await _clack_prompts.multiselect({
282
281
  message: "Select plugins to use:",
@@ -330,16 +329,15 @@ const command = (0, citty.defineCommand)({
330
329
  }
331
330
  node_fs.default.writeFileSync(configPath, configContent, "utf-8");
332
331
  configSpinner.stop("Created kubb.config.ts");
333
- _clack_prompts.outro(picocolors.default.green("✓ All set!") + "\n\n" + picocolors.default.dim("Next steps:") + "\n" + picocolors.default.cyan(` 1. Make sure your OpenAPI spec is at: ${inputPath}`) + "\n" + picocolors.default.cyan(" 2. Generate code with: npx kubb generate") + "\n" + picocolors.default.cyan(" Or start a stream server with: npx kubb start") + "\n" + picocolors.default.cyan(` 3. Find generated files in: ${outputPath}`) + "\n\n" + picocolors.default.dim(`Using ${packageManager.name} • Kubb v${require_package.version}`));
332
+ _clack_prompts.outro((0, node_util.styleText)("green", "✓ All set!") + "\n\n" + (0, node_util.styleText)("dim", "Next steps:") + "\n" + (0, node_util.styleText)("cyan", ` 1. Make sure your OpenAPI spec is at: ${inputPath}`) + "\n" + (0, node_util.styleText)("cyan", " 2. Generate code with: npx kubb generate") + "\n" + (0, node_util.styleText)("cyan", " Or start a stream server with: npx kubb start") + "\n" + (0, node_util.styleText)("cyan", ` 3. Find generated files in: ${outputPath}`) + "\n\n" + (0, node_util.styleText)("dim", `Using ${packageManager.name} • Kubb v${require_package.version}`));
334
333
  } catch (error) {
335
- _clack_prompts.log.error(picocolors.default.red("An error occurred during initialization"));
334
+ _clack_prompts.log.error((0, node_util.styleText)("red", "An error occurred during initialization"));
336
335
  if (error instanceof Error) _clack_prompts.log.error(error.message);
337
336
  node_process.default.exit(1);
338
337
  }
339
338
  }
340
339
  });
341
- var init_default = command;
342
340
 
343
341
  //#endregion
344
- exports.default = init_default;
345
- //# sourceMappingURL=init-Ckt9G-Yf.cjs.map
342
+ exports.default = command;
343
+ //# sourceMappingURL=init-BDWQO7I8.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-BDWQO7I8.cjs","names":["path","fs","process","clack","path","fs","version"],"sources":["../src/utils/packageManager.ts","../src/commands/init.ts"],"sourcesContent":["import { spawn } from 'node:child_process'\nimport fs from 'node:fs'\nimport path from 'node:path'\n\nexport type PackageManager = 'npm' | 'pnpm' | 'yarn' | 'bun'\n\nexport interface PackageManagerInfo {\n name: PackageManager\n lockFile: string\n installCommand: string[]\n}\n\nconst packageManagers: Record<PackageManager, PackageManagerInfo> = {\n pnpm: {\n name: 'pnpm',\n lockFile: 'pnpm-lock.yaml',\n installCommand: ['add', '-D'],\n },\n yarn: {\n name: 'yarn',\n lockFile: 'yarn.lock',\n installCommand: ['add', '-D'],\n },\n bun: {\n name: 'bun',\n lockFile: 'bun.lockb',\n installCommand: ['add', '-d'],\n },\n npm: {\n name: 'npm',\n lockFile: 'package-lock.json',\n installCommand: ['install', '--save-dev'],\n },\n}\n\nexport function detectPackageManager(cwd: string = process.cwd()): PackageManagerInfo {\n // Check for packageManager field in package.json\n const packageJsonPath = path.join(cwd, 'package.json')\n if (fs.existsSync(packageJsonPath)) {\n try {\n const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'))\n if (packageJson.packageManager) {\n const [name] = packageJson.packageManager.split('@')\n if (name in packageManagers) {\n return packageManagers[name as PackageManager]\n }\n }\n } catch {\n // Continue to lock file detection\n }\n }\n\n // Check for lock files\n for (const pm of Object.values(packageManagers)) {\n if (fs.existsSync(path.join(cwd, pm.lockFile))) {\n return pm\n }\n }\n\n // Default to npm\n return packageManagers.npm\n}\n\nexport function hasPackageJson(cwd: string = process.cwd()): boolean {\n return fs.existsSync(path.join(cwd, 'package.json'))\n}\n\nexport async function initPackageJson(cwd: string, packageManager: PackageManagerInfo): Promise<void> {\n const commands: Record<PackageManager, string[]> = {\n npm: ['init', '-y'],\n pnpm: ['init'],\n yarn: ['init', '-y'],\n bun: ['init', '-y'],\n }\n\n spawn(packageManager.name, commands[packageManager.name], { stdio: 'inherit', cwd })\n}\n\nexport async function installPackages(packages: string[], packageManager: PackageManagerInfo, cwd: string = process.cwd()): Promise<void> {\n spawn(packageManager.name, [...packageManager.installCommand, ...packages], { stdio: 'inherit', cwd })\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\nimport process from 'node:process'\nimport { styleText } from 'node:util'\nimport * as clack from '@clack/prompts'\nimport { defineCommand } from 'citty'\nimport { version } from '../../package.json'\nimport { detectPackageManager, hasPackageJson, initPackageJson, installPackages, type PackageManagerInfo } from '../utils/packageManager.ts'\n\ntype PluginOption = {\n value: string\n label: string\n hint?: string\n packageName: string\n importName: string\n category: 'core' | 'typescript' | 'query' | 'validation' | 'testing' | 'mocking' | 'docs'\n}\n\nconst plugins: PluginOption[] = [\n {\n value: 'plugin-oas',\n label: 'OpenAPI Parser',\n hint: 'Required',\n packageName: '@kubb/plugin-oas',\n importName: 'pluginOas',\n category: 'core',\n },\n {\n value: 'plugin-ts',\n label: 'TypeScript',\n hint: 'Recommended',\n packageName: '@kubb/plugin-ts',\n importName: 'pluginTs',\n category: 'typescript',\n },\n {\n value: 'plugin-client',\n label: 'Client (Fetch/Axios)',\n packageName: '@kubb/plugin-client',\n importName: 'pluginClient',\n category: 'typescript',\n },\n {\n value: 'plugin-react-query',\n label: 'React Query / TanStack Query',\n packageName: '@kubb/plugin-react-query',\n importName: 'pluginReactQuery',\n category: 'query',\n },\n {\n value: 'plugin-solid-query',\n label: 'Solid Query',\n packageName: '@kubb/plugin-solid-query',\n importName: 'pluginSolidQuery',\n category: 'query',\n },\n {\n value: 'plugin-svelte-query',\n label: 'Svelte Query',\n packageName: '@kubb/plugin-svelte-query',\n importName: 'pluginSvelteQuery',\n category: 'query',\n },\n {\n value: 'plugin-vue-query',\n label: 'Vue Query',\n packageName: '@kubb/plugin-vue-query',\n importName: 'pluginVueQuery',\n category: 'query',\n },\n {\n value: 'plugin-swr',\n label: 'SWR',\n packageName: '@kubb/plugin-swr',\n importName: 'pluginSwr',\n category: 'query',\n },\n {\n value: 'plugin-zod',\n label: 'Zod Schemas',\n packageName: '@kubb/plugin-zod',\n importName: 'pluginZod',\n category: 'validation',\n },\n {\n value: 'plugin-faker',\n label: 'Faker.js Mocks',\n packageName: '@kubb/plugin-faker',\n importName: 'pluginFaker',\n category: 'mocking',\n },\n {\n value: 'plugin-msw',\n label: 'MSW Handlers',\n packageName: '@kubb/plugin-msw',\n importName: 'pluginMsw',\n category: 'mocking',\n },\n {\n value: 'plugin-cypress',\n label: 'Cypress Tests',\n packageName: '@kubb/plugin-cypress',\n importName: 'pluginCypress',\n category: 'testing',\n },\n {\n value: 'plugin-redoc',\n label: 'ReDoc Documentation',\n packageName: '@kubb/plugin-redoc',\n importName: 'pluginRedoc',\n category: 'docs',\n },\n]\n\nfunction generateConfigFile(selectedPlugins: PluginOption[], inputPath: string, outputPath: string): string {\n const imports = selectedPlugins.map((plugin) => `import { ${plugin.importName} } from '${plugin.packageName}'`).join('\\n')\n\n const pluginConfigs = selectedPlugins\n .map((plugin) => {\n if (plugin.value === 'plugin-oas') {\n return ' pluginOas(),'\n }\n if (plugin.value === 'plugin-ts') {\n return ` pluginTs({\\n output: {\\n path: 'models',\\n },\\n }),`\n }\n if (plugin.value === 'plugin-client') {\n return ` pluginClient({\\n output: {\\n path: 'clients',\\n },\\n }),`\n }\n if (plugin.value === 'plugin-react-query') {\n return ` pluginReactQuery({\\n output: {\\n path: 'hooks',\\n },\\n }),`\n }\n if (plugin.value === 'plugin-zod') {\n return ` pluginZod({\\n output: {\\n path: 'zod',\\n },\\n }),`\n }\n if (plugin.value === 'plugin-faker') {\n return ` pluginFaker({\\n output: {\\n path: 'mocks',\\n },\\n }),`\n }\n if (plugin.value === 'plugin-msw') {\n return ` pluginMsw({\\n output: {\\n path: 'msw',\\n },\\n }),`\n }\n if (plugin.value === 'plugin-swr') {\n return ` pluginSwr({\\n output: {\\n path: 'hooks',\\n },\\n }),`\n }\n // Default config for other plugins\n return ` ${plugin.importName}(),`\n })\n .join('\\n')\n\n return `import { defineConfig } from '@kubb/core'\n${imports}\n\nexport default defineConfig({\n root: '.',\n input: {\n path: '${inputPath}',\n },\n output: {\n path: '${outputPath}',\n clean: true,\n },\n plugins: [\n${pluginConfigs}\n ],\n})\n`\n}\n\nconst DEFAULT_INPUT_PATH = './openapi.yaml'\nconst DEFAULT_OUTPUT_PATH = './src/gen'\nconst DEFAULT_PLUGINS = ['plugin-oas', 'plugin-ts']\n\nconst command = defineCommand({\n meta: {\n name: 'init',\n description: 'Initialize a new Kubb project with interactive setup',\n },\n args: {\n yes: {\n type: 'boolean',\n alias: 'y',\n description: 'Skip prompts and use default options',\n default: false,\n },\n },\n async run({ args }) {\n const cwd = process.cwd()\n const yes = args.yes\n\n clack.intro(styleText('bgCyan', styleText('black', ' Kubb Init ')))\n\n try {\n // Check/create package.json\n let packageManager: PackageManagerInfo\n if (!hasPackageJson(cwd)) {\n if (!yes) {\n const shouldInit = await clack.confirm({\n message: 'No package.json found. Would you like to create one?',\n initialValue: true,\n })\n\n if (clack.isCancel(shouldInit) || !shouldInit) {\n clack.cancel('Operation cancelled.')\n process.exit(0)\n }\n }\n\n // Detect package manager before initializing\n packageManager = detectPackageManager(cwd)\n\n const spinner = clack.spinner()\n spinner.start(`Initializing package.json with ${packageManager.name}`)\n\n await initPackageJson(cwd, packageManager)\n\n spinner.stop(`Created package.json with ${packageManager.name}`)\n } else {\n packageManager = detectPackageManager(cwd)\n clack.log.info(`Detected package manager: ${styleText('cyan', packageManager.name)}`)\n }\n\n // Prompt for OpenAPI spec path\n let inputPath: string\n if (yes) {\n inputPath = DEFAULT_INPUT_PATH\n clack.log.info(`Using input path: ${styleText('cyan', inputPath)}`)\n } else {\n const inputPathResult = await clack.text({\n message: 'Where is your OpenAPI specification located?',\n placeholder: DEFAULT_INPUT_PATH,\n defaultValue: DEFAULT_INPUT_PATH,\n validate: (value) => {\n if (!value) return 'Input path is required'\n },\n })\n\n if (clack.isCancel(inputPathResult)) {\n clack.cancel('Operation cancelled.')\n process.exit(0)\n }\n inputPath = inputPathResult as string\n }\n\n // Prompt for output directory\n let outputPath: string\n if (yes) {\n outputPath = DEFAULT_OUTPUT_PATH\n clack.log.info(`Using output path: ${styleText('cyan', outputPath)}`)\n } else {\n const outputPathResult = await clack.text({\n message: 'Where should the generated files be output?',\n placeholder: DEFAULT_OUTPUT_PATH,\n defaultValue: DEFAULT_OUTPUT_PATH,\n validate: (value) => {\n if (!value) return 'Output path is required'\n },\n })\n\n if (clack.isCancel(outputPathResult)) {\n clack.cancel('Operation cancelled.')\n process.exit(0)\n }\n outputPath = outputPathResult as string\n }\n\n // Plugin selection\n let selectedPlugins: PluginOption[]\n if (yes) {\n selectedPlugins = plugins.filter((plugin) => DEFAULT_PLUGINS.includes(plugin.value))\n clack.log.info(`Using plugins: ${styleText('cyan', selectedPlugins.map((p) => p.label).join(', '))}`)\n } else {\n const selectedPluginValues = await clack.multiselect({\n message: 'Select plugins to use:',\n options: plugins.map((plugin) => ({\n value: plugin.value,\n label: plugin.label,\n hint: plugin.hint,\n })),\n initialValues: DEFAULT_PLUGINS,\n required: true,\n })\n\n if (clack.isCancel(selectedPluginValues)) {\n clack.cancel('Operation cancelled.')\n process.exit(0)\n }\n\n selectedPlugins = plugins.filter((plugin) => (selectedPluginValues as string[]).includes(plugin.value))\n }\n\n // Ensure plugin-oas is always included\n if (!selectedPlugins.find((p) => p.value === 'plugin-oas')) {\n selectedPlugins.unshift(plugins.find((p) => p.value === 'plugin-oas')!)\n }\n\n // Install packages\n const packagesToInstall = ['@kubb/core', '@kubb/cli', '@kubb/agent', ...selectedPlugins.map((p) => p.packageName)]\n\n const spinner = clack.spinner()\n spinner.start(`Installing ${packagesToInstall.length} packages with ${packageManager.name}`)\n\n try {\n await installPackages(packagesToInstall, packageManager, cwd)\n spinner.stop(`Installed ${packagesToInstall.length} packages`)\n } catch (error) {\n spinner.stop('Installation failed')\n throw error\n }\n\n // Generate config file\n const configSpinner = clack.spinner()\n configSpinner.start('Creating kubb.config.ts')\n\n const configContent = generateConfigFile(selectedPlugins, inputPath, outputPath)\n const configPath = path.join(cwd, 'kubb.config.ts')\n\n // Check if config already exists\n if (fs.existsSync(configPath)) {\n configSpinner.stop('kubb.config.ts already exists')\n\n if (!yes) {\n const shouldOverwrite = await clack.confirm({\n message: 'kubb.config.ts already exists. Overwrite?',\n initialValue: false,\n })\n\n if (clack.isCancel(shouldOverwrite) || !shouldOverwrite) {\n clack.cancel('Keeping existing configuration. Packages have been installed.')\n process.exit(0)\n }\n }\n\n configSpinner.start('Overwriting kubb.config.ts')\n }\n\n fs.writeFileSync(configPath, configContent, 'utf-8')\n\n configSpinner.stop('Created kubb.config.ts')\n\n // Success message\n clack.outro(\n styleText('green', '✓ All set!') +\n '\\n\\n' +\n styleText('dim', 'Next steps:') +\n '\\n' +\n styleText('cyan', ` 1. Make sure your OpenAPI spec is at: ${inputPath}`) +\n '\\n' +\n styleText('cyan', ' 2. Generate code with: npx kubb generate') +\n '\\n' +\n styleText('cyan', ' Or start a stream server with: npx kubb start') +\n '\\n' +\n styleText('cyan', ` 3. Find generated files in: ${outputPath}`) +\n '\\n\\n' +\n styleText('dim', `Using ${packageManager.name} • Kubb v${version}`),\n )\n } catch (error) {\n clack.log.error(styleText('red', 'An error occurred during initialization'))\n if (error instanceof Error) {\n clack.log.error(error.message)\n }\n process.exit(1)\n }\n },\n})\n\nexport default command\n"],"mappings":"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"}
@@ -1,7 +1,6 @@
1
- const require_chunk = require('./chunk-C1_xRkKa.cjs');
1
+ const require_chunk = require('./chunk-CNbaEX1y.cjs');
2
2
  let citty = require("citty");
3
- let picocolors = require("picocolors");
4
- picocolors = require_chunk.__toESM(picocolors);
3
+ let node_util = require("node:util");
5
4
  let jiti = require("jiti");
6
5
 
7
6
  //#region src/commands/mcp.ts
@@ -30,15 +29,14 @@ const command = (0, citty.defineCommand)({
30
29
  const { run } = mod;
31
30
  try {
32
31
  console.log("⏳ Starting MCP server...");
33
- console.warn(picocolors.default.yellow("This feature is still under development — use with caution"));
32
+ console.warn((0, node_util.styleText)("yellow", "This feature is still under development — use with caution"));
34
33
  await run();
35
34
  } catch (error) {
36
35
  console.error(error?.message);
37
36
  }
38
37
  }
39
38
  });
40
- var mcp_default = command;
41
39
 
42
40
  //#endregion
43
- exports.default = mcp_default;
44
- //# sourceMappingURL=mcp-DGyip5BX.cjs.map
41
+ exports.default = command;
42
+ //# sourceMappingURL=mcp-97TXkJVX.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-97TXkJVX.cjs","names":["jiti"],"sources":["../src/commands/mcp.ts"],"sourcesContent":["import { styleText } from 'node:util'\nimport type { ArgsDef } from 'citty'\nimport { defineCommand, showUsage } from 'citty'\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\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 console.error(`Import of '@kubb/mcp' is required to start the MCP server`)\n process.exit(1)\n }\n\n const { run } = mod\n try {\n console.log('⏳ Starting MCP server...')\n console.warn(styleText('yellow', 'This feature is still under development — use with caution'))\n await run()\n } catch (error) {\n console.error((error as Error)?.message)\n }\n },\n})\n\nexport default command\n"],"mappings":";;;;;;AAKA,MAAMA,6EAAmC,EACvC,YAAY,MACb,CAAC;AAWF,MAAM,mCAAwB;CAC5B,MAAM;EACJ,MAAM;EACN,aAAa;EACd;CACD,MAdW,EACX,MAAM;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,SAAS;EACV,EACF;CAQC,MAAM,IAAI,gBAAgB;EACxB,MAAM,EAAE,SAAS;AAEjB,MAAI,KAAK,KACP,6BAAiB,QAAQ;EAG3B,IAAI;AACJ,MAAI;AACF,SAAM,MAAMA,OAAK,OAAO,aAAa,EAAE,SAAS,MAAM,CAAC;WAChD,IAAI;AACX,WAAQ,MAAM,4DAA4D;AAC1E,WAAQ,KAAK,EAAE;;EAGjB,MAAM,EAAE,QAAQ;AAChB,MAAI;AACF,WAAQ,IAAI,2BAA2B;AACvC,WAAQ,8BAAe,UAAU,6DAA6D,CAAC;AAC/F,SAAM,KAAK;WACJ,OAAO;AACd,WAAQ,MAAO,OAAiB,QAAQ;;;CAG7C,CAAC"}
@@ -1,6 +1,6 @@
1
- import { t as __name } from "./chunk-jHaXqnEa.js";
1
+ import { t as __name } from "./chunk-DKWOrOAv.js";
2
2
  import { defineCommand, showUsage } from "citty";
3
- import pc from "picocolors";
3
+ import { styleText } from "node:util";
4
4
  import { createJiti } from "jiti";
5
5
 
6
6
  //#region src/commands/mcp.ts
@@ -29,15 +29,14 @@ const command = defineCommand({
29
29
  const { run } = mod;
30
30
  try {
31
31
  console.log("⏳ Starting MCP server...");
32
- console.warn(pc.yellow("This feature is still under development — use with caution"));
32
+ console.warn(styleText("yellow", "This feature is still under development — use with caution"));
33
33
  await run();
34
34
  } catch (error) {
35
35
  console.error(error?.message);
36
36
  }
37
37
  }
38
38
  });
39
- var mcp_default = command;
40
39
 
41
40
  //#endregion
42
- export { mcp_default as default };
43
- //# sourceMappingURL=mcp-C-e4yatL.js.map
41
+ export { command as default };
42
+ //# sourceMappingURL=mcp-Jboea6xH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-Jboea6xH.js","names":[],"sources":["../src/commands/mcp.ts"],"sourcesContent":["import { styleText } from 'node:util'\nimport type { ArgsDef } from 'citty'\nimport { defineCommand, showUsage } from 'citty'\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\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 console.error(`Import of '@kubb/mcp' is required to start the MCP server`)\n process.exit(1)\n }\n\n const { run } = mod\n try {\n console.log('⏳ Starting MCP server...')\n console.warn(styleText('yellow', 'This feature is still under development — use with caution'))\n await run()\n } catch (error) {\n console.error((error as Error)?.message)\n }\n },\n})\n\nexport default command\n"],"mappings":";;;;;;AAKA,MAAM,OAAO,WAAW,OAAO,KAAK,KAAK,EACvC,YAAY,MACb,CAAC;AAWF,MAAM,UAAU,cAAc;CAC5B,MAAM;EACJ,MAAM;EACN,aAAa;EACd;CACD,MAdW,EACX,MAAM;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACP,SAAS;EACV,EACF;CAQC,MAAM,IAAI,gBAAgB;EACxB,MAAM,EAAE,SAAS;AAEjB,MAAI,KAAK,KACP,QAAO,UAAU,QAAQ;EAG3B,IAAI;AACJ,MAAI;AACF,SAAM,MAAM,KAAK,OAAO,aAAa,EAAE,SAAS,MAAM,CAAC;WAChD,IAAI;AACX,WAAQ,MAAM,4DAA4D;AAC1E,WAAQ,KAAK,EAAE;;EAGjB,MAAM,EAAE,QAAQ;AAChB,MAAI;AACF,WAAQ,IAAI,2BAA2B;AACvC,WAAQ,KAAK,UAAU,UAAU,6DAA6D,CAAC;AAC/F,SAAM,KAAK;WACJ,OAAO;AACd,WAAQ,MAAO,OAAiB,QAAQ;;;CAG7C,CAAC"}
@@ -1,6 +1,6 @@
1
1
 
2
2
  //#region package.json
3
- var version = "4.28.0";
3
+ var version = "4.29.0";
4
4
 
5
5
  //#endregion
6
6
  Object.defineProperty(exports, 'version', {
@@ -9,4 +9,4 @@ Object.defineProperty(exports, 'version', {
9
9
  return version;
10
10
  }
11
11
  });
12
- //# sourceMappingURL=package-CeCGexzv.cjs.map
12
+ //# sourceMappingURL=package-oo3QhWS5.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-oo3QhWS5.cjs","names":[],"sources":["../package.json"],"sourcesContent":[""],"mappings":""}
@@ -0,0 +1,6 @@
1
+ //#region package.json
2
+ var version = "4.29.0";
3
+
4
+ //#endregion
5
+ export { version as t };
6
+ //# sourceMappingURL=package-veMf5zNr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-veMf5zNr.js","names":[],"sources":["../package.json"],"sourcesContent":[""],"mappings":""}
@@ -1,12 +1,11 @@
1
- import { t as __name } from "./chunk-jHaXqnEa.js";
1
+ import { t as __name } from "./chunk-DKWOrOAv.js";
2
2
  import { defineCommand } from "citty";
3
+ import { spawn } from "node:child_process";
3
4
  import path from "node:path";
4
5
  import * as process$1 from "node:process";
5
6
  import { fileURLToPath } from "node:url";
7
+ import { styleText } from "node:util";
6
8
  import * as clack from "@clack/prompts";
7
- import { config } from "dotenv";
8
- import { execa } from "execa";
9
- import pc from "picocolors";
10
9
 
11
10
  //#region src/commands/agent/start.ts
12
11
  const args = {
@@ -43,7 +42,9 @@ const args = {
43
42
  };
44
43
  async function startServer({ port, host, configPath, noCache, allowWrite, allowAll }) {
45
44
  try {
46
- config();
45
+ try {
46
+ process$1.loadEnvFile();
47
+ } catch {}
47
48
  const agentPkgPath = fileURLToPath(import.meta.resolve("@kubb/agent/package.json"));
48
49
  const agentDir = path.dirname(agentPkgPath);
49
50
  const serverPath = path.join(agentDir, ".output", "server", "index.mjs");
@@ -66,14 +67,17 @@ async function startServer({ port, host, configPath, noCache, allowWrite, allowA
66
67
  KUBB_AGENT_RETRY_TIMEOUT: process$1.env.KUBB_AGENT_RETRY_TIMEOUT || "30000",
67
68
  KUBB_STUDIO_URL: process$1.env.KUBB_STUDIO_URL || "https://studio.kubb.dev"
68
69
  };
69
- clack.log.step(pc.cyan("Starting agent server..."));
70
- clack.log.info(pc.dim(`Config: ${KUBB_AGENT_CONFIG}`));
71
- clack.log.info(pc.dim(`Host: ${HOST}`));
72
- clack.log.info(pc.dim(`Port: ${PORT}`));
73
- if (noCache) clack.log.info(pc.dim("Session caching: disabled"));
74
- if (!KUBB_AGENT_ALLOW_WRITE && !KUBB_AGENT_ALLOW_ALL) clack.log.warn(pc.yellow("Filesystem writes disabled. Use --allow-write or --allow-all to enable."));
75
- await execa("node", [serverPath], {
76
- env,
70
+ clack.log.step(styleText("cyan", "Starting agent server..."));
71
+ clack.log.info(styleText("dim", `Config: ${KUBB_AGENT_CONFIG}`));
72
+ clack.log.info(styleText("dim", `Host: ${HOST}`));
73
+ clack.log.info(styleText("dim", `Port: ${PORT}`));
74
+ if (noCache) clack.log.info(styleText("dim", "Session caching: disabled"));
75
+ if (!KUBB_AGENT_ALLOW_WRITE && !KUBB_AGENT_ALLOW_ALL) clack.log.warn(styleText("yellow", "Filesystem writes disabled. Use --allow-write or --allow-all to enable."));
76
+ spawn("node", [serverPath], {
77
+ env: {
78
+ ...process$1.env,
79
+ ...env
80
+ },
77
81
  stdio: "inherit",
78
82
  cwd: process$1.cwd()
79
83
  });
@@ -89,14 +93,14 @@ const command = defineCommand({
89
93
  },
90
94
  args,
91
95
  async run(commandContext) {
92
- const { args: args$1 } = commandContext;
96
+ const { args } = commandContext;
93
97
  try {
94
- const configPath = path.resolve(process$1.cwd(), args$1.config || "kubb.config.ts");
95
- const port = args$1.port ? Number.parseInt(args$1.port, 10) : 0;
96
- const host = args$1.host;
97
- const noCache = args$1["no-cache"];
98
- const allowWrite = args$1["allow-write"];
99
- const allowAll = args$1["allow-all"];
98
+ const configPath = path.resolve(process$1.cwd(), args.config || "kubb.config.ts");
99
+ const port = args.port ? Number.parseInt(args.port, 10) : 0;
100
+ const host = args.host;
101
+ const noCache = args["no-cache"];
102
+ const allowWrite = args["allow-write"];
103
+ const allowAll = args["allow-all"];
100
104
  await startServer({
101
105
  port,
102
106
  host,
@@ -106,14 +110,13 @@ const command = defineCommand({
106
110
  allowAll
107
111
  });
108
112
  } catch (error) {
109
- clack.log.error(pc.red("Failed to start agent server"));
113
+ clack.log.error(styleText("red", "Failed to start agent server"));
110
114
  console.error(error);
111
115
  process$1.exit(1);
112
116
  }
113
117
  }
114
118
  });
115
- var start_default = command;
116
119
 
117
120
  //#endregion
118
- export { start_default as default };
119
- //# sourceMappingURL=start-jaV7_Xss.js.map
121
+ export { command as default };
122
+ //# sourceMappingURL=start-CYuU23PX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start-CYuU23PX.js","names":["process"],"sources":["../src/commands/agent/start.ts"],"sourcesContent":["import { spawn } from 'node:child_process'\nimport path from 'node:path'\nimport * as process from 'node:process'\nimport { fileURLToPath } from 'node:url'\nimport { styleText } from 'node:util'\nimport * as clack from '@clack/prompts'\nimport type { ArgsDef } from 'citty'\nimport { defineCommand } from 'citty'\n\nconst args = {\n config: {\n type: 'string',\n description: 'Path to the Kubb config',\n alias: 'c',\n },\n port: {\n type: 'string',\n description: 'Port for the server. If not specified, an available port is automatically selected.',\n alias: 'p',\n },\n host: {\n type: 'string',\n description: 'Host for the server',\n default: 'localhost',\n },\n 'no-cache': {\n type: 'boolean',\n description: 'Disable session caching',\n default: false,\n },\n 'allow-write': {\n type: 'boolean',\n description: 'Allow writing generated files to the filesystem. When not set, no files are written and the config patch is not persisted.',\n default: false,\n },\n 'allow-all': {\n type: 'boolean',\n description: 'Grant all permissions (implies --allow-write).',\n default: false,\n },\n} as const satisfies ArgsDef\n\ntype StartServerProps = {\n port: number\n host: string\n configPath: string\n noCache: boolean\n allowWrite: boolean\n allowAll: boolean\n}\n\nasync function startServer({ port, host, configPath, noCache, allowWrite, allowAll }: StartServerProps): Promise<void> {\n try {\n // Load .env file into process.env using Node.js built-in (v20.12.0+)\n try {\n process.loadEnvFile()\n } catch {\n // .env file may not exist; ignore\n }\n\n // Resolve the @kubb/agent package path\n const agentPkgUrl = import.meta.resolve('@kubb/agent/package.json')\n const agentPkgPath = fileURLToPath(agentPkgUrl)\n const agentDir = path.dirname(agentPkgPath)\n const serverPath = path.join(agentDir, '.output', 'server', 'index.mjs')\n\n // nitro env\n const PORT = process.env.PORT || (port === 0 ? '3000' : String(port))\n const HOST = process.env.HOST || host || '0.0.0.0'\n\n // kubb env\n const KUBB_AGENT_ROOT = process.env.KUBB_AGENT_ROOT || process.cwd()\n const KUBB_AGENT_CONFIG = process.env.KUBB_AGENT_CONFIG || configPath || 'kubb.config.ts'\n const KUBB_AGENT_NO_CACHE = noCache ? 'true' : 'false'\n const KUBB_AGENT_ALLOW_WRITE = allowAll || allowWrite ? 'true' : (process.env.KUBB_AGENT_ALLOW_WRITE ?? 'false')\n const KUBB_AGENT_ALLOW_ALL = allowAll ? 'true' : (process.env.KUBB_AGENT_ALLOW_ALL ?? 'false')\n const KUBB_AGENT_TOKEN = process.env.KUBB_AGENT_TOKEN\n const KUBB_AGENT_RETRY_TIMEOUT = process.env.KUBB_AGENT_RETRY_TIMEOUT || '30000'\n const KUBB_STUDIO_URL = process.env.KUBB_STUDIO_URL || 'https://studio.kubb.dev'\n\n // Set environment variables\n const env = {\n PORT,\n HOST,\n KUBB_AGENT_ROOT,\n KUBB_AGENT_CONFIG,\n KUBB_AGENT_NO_CACHE,\n KUBB_AGENT_ALLOW_WRITE,\n KUBB_AGENT_ALLOW_ALL,\n KUBB_AGENT_TOKEN,\n KUBB_AGENT_RETRY_TIMEOUT,\n KUBB_STUDIO_URL,\n }\n\n clack.log.step(styleText('cyan', 'Starting agent server...'))\n clack.log.info(styleText('dim', `Config: ${KUBB_AGENT_CONFIG}`))\n clack.log.info(styleText('dim', `Host: ${HOST}`))\n clack.log.info(styleText('dim', `Port: ${PORT}`))\n if (noCache) {\n clack.log.info(styleText('dim', 'Session caching: disabled'))\n }\n if (!KUBB_AGENT_ALLOW_WRITE && !KUBB_AGENT_ALLOW_ALL) {\n clack.log.warn(styleText('yellow', 'Filesystem writes disabled. Use --allow-write or --allow-all to enable.'))\n }\n\n spawn('node', [serverPath], {\n env: { ...process.env, ...env },\n stdio: 'inherit',\n cwd: process.cwd(),\n })\n } catch (error) {\n console.error('Failed to start agent server:', error)\n process.exit(1)\n }\n}\n\nconst command = defineCommand({\n meta: {\n name: 'start',\n description: 'Start the Agent server',\n },\n args,\n async run(commandContext) {\n const { args } = commandContext\n\n try {\n const configPath = path.resolve(process.cwd(), args.config || 'kubb.config.ts')\n const port = args.port ? Number.parseInt(args.port, 10) : 0\n const host = args.host\n const noCache = args['no-cache']\n const allowWrite = args['allow-write']\n const allowAll = args['allow-all']\n\n await startServer({ port, host, configPath, noCache, allowWrite, allowAll })\n } catch (error) {\n clack.log.error(styleText('red', 'Failed to start agent server'))\n console.error(error)\n process.exit(1)\n }\n },\n})\n\nexport default command\n"],"mappings":";;;;;;;;;;AASA,MAAM,OAAO;CACX,QAAQ;EACN,MAAM;EACN,aAAa;EACb,OAAO;EACR;CACD,MAAM;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACR;CACD,MAAM;EACJ,MAAM;EACN,aAAa;EACb,SAAS;EACV;CACD,YAAY;EACV,MAAM;EACN,aAAa;EACb,SAAS;EACV;CACD,eAAe;EACb,MAAM;EACN,aAAa;EACb,SAAS;EACV;CACD,aAAa;EACX,MAAM;EACN,aAAa;EACb,SAAS;EACV;CACF;AAWD,eAAe,YAAY,EAAE,MAAM,MAAM,YAAY,SAAS,YAAY,YAA6C;AACrH,KAAI;AAEF,MAAI;AACF,aAAQ,aAAa;UACf;EAMR,MAAM,eAAe,cADD,OAAO,KAAK,QAAQ,2BAA2B,CACpB;EAC/C,MAAM,WAAW,KAAK,QAAQ,aAAa;EAC3C,MAAM,aAAa,KAAK,KAAK,UAAU,WAAW,UAAU,YAAY;EAGxE,MAAM,OAAOA,UAAQ,IAAI,SAAS,SAAS,IAAI,SAAS,OAAO,KAAK;EACpE,MAAM,OAAOA,UAAQ,IAAI,QAAQ,QAAQ;EAGzC,MAAM,kBAAkBA,UAAQ,IAAI,mBAAmBA,UAAQ,KAAK;EACpE,MAAM,oBAAoBA,UAAQ,IAAI,qBAAqB,cAAc;EACzE,MAAM,sBAAsB,UAAU,SAAS;EAC/C,MAAM,yBAAyB,YAAY,aAAa,SAAUA,UAAQ,IAAI,0BAA0B;EACxG,MAAM,uBAAuB,WAAW,SAAUA,UAAQ,IAAI,wBAAwB;EAMtF,MAAM,MAAM;GACV;GACA;GACA;GACA;GACA;GACA;GACA;GACA,kBAbuBA,UAAQ,IAAI;GAcnC,0BAb+BA,UAAQ,IAAI,4BAA4B;GAcvE,iBAbsBA,UAAQ,IAAI,mBAAmB;GActD;AAED,QAAM,IAAI,KAAK,UAAU,QAAQ,2BAA2B,CAAC;AAC7D,QAAM,IAAI,KAAK,UAAU,OAAO,WAAW,oBAAoB,CAAC;AAChE,QAAM,IAAI,KAAK,UAAU,OAAO,SAAS,OAAO,CAAC;AACjD,QAAM,IAAI,KAAK,UAAU,OAAO,SAAS,OAAO,CAAC;AACjD,MAAI,QACF,OAAM,IAAI,KAAK,UAAU,OAAO,4BAA4B,CAAC;AAE/D,MAAI,CAAC,0BAA0B,CAAC,qBAC9B,OAAM,IAAI,KAAK,UAAU,UAAU,0EAA0E,CAAC;AAGhH,QAAM,QAAQ,CAAC,WAAW,EAAE;GAC1B,KAAK;IAAE,GAAGA,UAAQ;IAAK,GAAG;IAAK;GAC/B,OAAO;GACP,KAAKA,UAAQ,KAAK;GACnB,CAAC;UACK,OAAO;AACd,UAAQ,MAAM,iCAAiC,MAAM;AACrD,YAAQ,KAAK,EAAE;;;AAInB,MAAM,UAAU,cAAc;CAC5B,MAAM;EACJ,MAAM;EACN,aAAa;EACd;CACD;CACA,MAAM,IAAI,gBAAgB;EACxB,MAAM,EAAE,SAAS;AAEjB,MAAI;GACF,MAAM,aAAa,KAAK,QAAQA,UAAQ,KAAK,EAAE,KAAK,UAAU,iBAAiB;GAC/E,MAAM,OAAO,KAAK,OAAO,OAAO,SAAS,KAAK,MAAM,GAAG,GAAG;GAC1D,MAAM,OAAO,KAAK;GAClB,MAAM,UAAU,KAAK;GACrB,MAAM,aAAa,KAAK;GACxB,MAAM,WAAW,KAAK;AAEtB,SAAM,YAAY;IAAE;IAAM;IAAM;IAAY;IAAS;IAAY;IAAU,CAAC;WACrE,OAAO;AACd,SAAM,IAAI,MAAM,UAAU,OAAO,+BAA+B,CAAC;AACjE,WAAQ,MAAM,MAAM;AACpB,aAAQ,KAAK,EAAE;;;CAGpB,CAAC"}
@@ -1,16 +1,14 @@
1
- const require_chunk = require('./chunk-C1_xRkKa.cjs');
1
+ const require_chunk = require('./chunk-CNbaEX1y.cjs');
2
2
  let citty = require("citty");
3
+ let node_child_process = require("node:child_process");
3
4
  let node_path = require("node:path");
4
5
  node_path = require_chunk.__toESM(node_path);
5
6
  let node_process = require("node:process");
6
7
  node_process = require_chunk.__toESM(node_process);
7
8
  let node_url = require("node:url");
9
+ let node_util = require("node:util");
8
10
  let _clack_prompts = require("@clack/prompts");
9
11
  _clack_prompts = require_chunk.__toESM(_clack_prompts);
10
- let dotenv = require("dotenv");
11
- let execa = require("execa");
12
- let picocolors = require("picocolors");
13
- picocolors = require_chunk.__toESM(picocolors);
14
12
 
15
13
  //#region src/commands/agent/start.ts
16
14
  const args = {
@@ -47,7 +45,9 @@ const args = {
47
45
  };
48
46
  async function startServer({ port, host, configPath, noCache, allowWrite, allowAll }) {
49
47
  try {
50
- (0, dotenv.config)();
48
+ try {
49
+ node_process.loadEnvFile();
50
+ } catch {}
51
51
  const agentPkgPath = (0, node_url.fileURLToPath)({}.resolve("@kubb/agent/package.json"));
52
52
  const agentDir = node_path.default.dirname(agentPkgPath);
53
53
  const serverPath = node_path.default.join(agentDir, ".output", "server", "index.mjs");
@@ -70,14 +70,17 @@ async function startServer({ port, host, configPath, noCache, allowWrite, allowA
70
70
  KUBB_AGENT_RETRY_TIMEOUT: node_process.env.KUBB_AGENT_RETRY_TIMEOUT || "30000",
71
71
  KUBB_STUDIO_URL: node_process.env.KUBB_STUDIO_URL || "https://studio.kubb.dev"
72
72
  };
73
- _clack_prompts.log.step(picocolors.default.cyan("Starting agent server..."));
74
- _clack_prompts.log.info(picocolors.default.dim(`Config: ${KUBB_AGENT_CONFIG}`));
75
- _clack_prompts.log.info(picocolors.default.dim(`Host: ${HOST}`));
76
- _clack_prompts.log.info(picocolors.default.dim(`Port: ${PORT}`));
77
- if (noCache) _clack_prompts.log.info(picocolors.default.dim("Session caching: disabled"));
78
- if (!KUBB_AGENT_ALLOW_WRITE && !KUBB_AGENT_ALLOW_ALL) _clack_prompts.log.warn(picocolors.default.yellow("Filesystem writes disabled. Use --allow-write or --allow-all to enable."));
79
- await (0, execa.execa)("node", [serverPath], {
80
- env,
73
+ _clack_prompts.log.step((0, node_util.styleText)("cyan", "Starting agent server..."));
74
+ _clack_prompts.log.info((0, node_util.styleText)("dim", `Config: ${KUBB_AGENT_CONFIG}`));
75
+ _clack_prompts.log.info((0, node_util.styleText)("dim", `Host: ${HOST}`));
76
+ _clack_prompts.log.info((0, node_util.styleText)("dim", `Port: ${PORT}`));
77
+ if (noCache) _clack_prompts.log.info((0, node_util.styleText)("dim", "Session caching: disabled"));
78
+ if (!KUBB_AGENT_ALLOW_WRITE && !KUBB_AGENT_ALLOW_ALL) _clack_prompts.log.warn((0, node_util.styleText)("yellow", "Filesystem writes disabled. Use --allow-write or --allow-all to enable."));
79
+ (0, node_child_process.spawn)("node", [serverPath], {
80
+ env: {
81
+ ...node_process.env,
82
+ ...env
83
+ },
81
84
  stdio: "inherit",
82
85
  cwd: node_process.cwd()
83
86
  });
@@ -93,14 +96,14 @@ const command = (0, citty.defineCommand)({
93
96
  },
94
97
  args,
95
98
  async run(commandContext) {
96
- const { args: args$1 } = commandContext;
99
+ const { args } = commandContext;
97
100
  try {
98
- const configPath = node_path.default.resolve(node_process.cwd(), args$1.config || "kubb.config.ts");
99
- const port = args$1.port ? Number.parseInt(args$1.port, 10) : 0;
100
- const host = args$1.host;
101
- const noCache = args$1["no-cache"];
102
- const allowWrite = args$1["allow-write"];
103
- const allowAll = args$1["allow-all"];
101
+ const configPath = node_path.default.resolve(node_process.cwd(), args.config || "kubb.config.ts");
102
+ const port = args.port ? Number.parseInt(args.port, 10) : 0;
103
+ const host = args.host;
104
+ const noCache = args["no-cache"];
105
+ const allowWrite = args["allow-write"];
106
+ const allowAll = args["allow-all"];
104
107
  await startServer({
105
108
  port,
106
109
  host,
@@ -110,14 +113,13 @@ const command = (0, citty.defineCommand)({
110
113
  allowAll
111
114
  });
112
115
  } catch (error) {
113
- _clack_prompts.log.error(picocolors.default.red("Failed to start agent server"));
116
+ _clack_prompts.log.error((0, node_util.styleText)("red", "Failed to start agent server"));
114
117
  console.error(error);
115
118
  node_process.exit(1);
116
119
  }
117
120
  }
118
121
  });
119
- var start_default = command;
120
122
 
121
123
  //#endregion
122
- exports.default = start_default;
123
- //# sourceMappingURL=start-DqKYNdp1.cjs.map
124
+ exports.default = command;
125
+ //# sourceMappingURL=start-lrn1-P52.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start-lrn1-P52.cjs","names":["path","process"],"sources":["../src/commands/agent/start.ts"],"sourcesContent":["import { spawn } from 'node:child_process'\nimport path from 'node:path'\nimport * as process from 'node:process'\nimport { fileURLToPath } from 'node:url'\nimport { styleText } from 'node:util'\nimport * as clack from '@clack/prompts'\nimport type { ArgsDef } from 'citty'\nimport { defineCommand } from 'citty'\n\nconst args = {\n config: {\n type: 'string',\n description: 'Path to the Kubb config',\n alias: 'c',\n },\n port: {\n type: 'string',\n description: 'Port for the server. If not specified, an available port is automatically selected.',\n alias: 'p',\n },\n host: {\n type: 'string',\n description: 'Host for the server',\n default: 'localhost',\n },\n 'no-cache': {\n type: 'boolean',\n description: 'Disable session caching',\n default: false,\n },\n 'allow-write': {\n type: 'boolean',\n description: 'Allow writing generated files to the filesystem. When not set, no files are written and the config patch is not persisted.',\n default: false,\n },\n 'allow-all': {\n type: 'boolean',\n description: 'Grant all permissions (implies --allow-write).',\n default: false,\n },\n} as const satisfies ArgsDef\n\ntype StartServerProps = {\n port: number\n host: string\n configPath: string\n noCache: boolean\n allowWrite: boolean\n allowAll: boolean\n}\n\nasync function startServer({ port, host, configPath, noCache, allowWrite, allowAll }: StartServerProps): Promise<void> {\n try {\n // Load .env file into process.env using Node.js built-in (v20.12.0+)\n try {\n process.loadEnvFile()\n } catch {\n // .env file may not exist; ignore\n }\n\n // Resolve the @kubb/agent package path\n const agentPkgUrl = import.meta.resolve('@kubb/agent/package.json')\n const agentPkgPath = fileURLToPath(agentPkgUrl)\n const agentDir = path.dirname(agentPkgPath)\n const serverPath = path.join(agentDir, '.output', 'server', 'index.mjs')\n\n // nitro env\n const PORT = process.env.PORT || (port === 0 ? '3000' : String(port))\n const HOST = process.env.HOST || host || '0.0.0.0'\n\n // kubb env\n const KUBB_AGENT_ROOT = process.env.KUBB_AGENT_ROOT || process.cwd()\n const KUBB_AGENT_CONFIG = process.env.KUBB_AGENT_CONFIG || configPath || 'kubb.config.ts'\n const KUBB_AGENT_NO_CACHE = noCache ? 'true' : 'false'\n const KUBB_AGENT_ALLOW_WRITE = allowAll || allowWrite ? 'true' : (process.env.KUBB_AGENT_ALLOW_WRITE ?? 'false')\n const KUBB_AGENT_ALLOW_ALL = allowAll ? 'true' : (process.env.KUBB_AGENT_ALLOW_ALL ?? 'false')\n const KUBB_AGENT_TOKEN = process.env.KUBB_AGENT_TOKEN\n const KUBB_AGENT_RETRY_TIMEOUT = process.env.KUBB_AGENT_RETRY_TIMEOUT || '30000'\n const KUBB_STUDIO_URL = process.env.KUBB_STUDIO_URL || 'https://studio.kubb.dev'\n\n // Set environment variables\n const env = {\n PORT,\n HOST,\n KUBB_AGENT_ROOT,\n KUBB_AGENT_CONFIG,\n KUBB_AGENT_NO_CACHE,\n KUBB_AGENT_ALLOW_WRITE,\n KUBB_AGENT_ALLOW_ALL,\n KUBB_AGENT_TOKEN,\n KUBB_AGENT_RETRY_TIMEOUT,\n KUBB_STUDIO_URL,\n }\n\n clack.log.step(styleText('cyan', 'Starting agent server...'))\n clack.log.info(styleText('dim', `Config: ${KUBB_AGENT_CONFIG}`))\n clack.log.info(styleText('dim', `Host: ${HOST}`))\n clack.log.info(styleText('dim', `Port: ${PORT}`))\n if (noCache) {\n clack.log.info(styleText('dim', 'Session caching: disabled'))\n }\n if (!KUBB_AGENT_ALLOW_WRITE && !KUBB_AGENT_ALLOW_ALL) {\n clack.log.warn(styleText('yellow', 'Filesystem writes disabled. Use --allow-write or --allow-all to enable.'))\n }\n\n spawn('node', [serverPath], {\n env: { ...process.env, ...env },\n stdio: 'inherit',\n cwd: process.cwd(),\n })\n } catch (error) {\n console.error('Failed to start agent server:', error)\n process.exit(1)\n }\n}\n\nconst command = defineCommand({\n meta: {\n name: 'start',\n description: 'Start the Agent server',\n },\n args,\n async run(commandContext) {\n const { args } = commandContext\n\n try {\n const configPath = path.resolve(process.cwd(), args.config || 'kubb.config.ts')\n const port = args.port ? Number.parseInt(args.port, 10) : 0\n const host = args.host\n const noCache = args['no-cache']\n const allowWrite = args['allow-write']\n const allowAll = args['allow-all']\n\n await startServer({ port, host, configPath, noCache, allowWrite, allowAll })\n } catch (error) {\n clack.log.error(styleText('red', 'Failed to start agent server'))\n console.error(error)\n process.exit(1)\n }\n },\n})\n\nexport default command\n"],"mappings":";;;;;;;;;;;;;AASA,MAAM,OAAO;CACX,QAAQ;EACN,MAAM;EACN,aAAa;EACb,OAAO;EACR;CACD,MAAM;EACJ,MAAM;EACN,aAAa;EACb,OAAO;EACR;CACD,MAAM;EACJ,MAAM;EACN,aAAa;EACb,SAAS;EACV;CACD,YAAY;EACV,MAAM;EACN,aAAa;EACb,SAAS;EACV;CACD,eAAe;EACb,MAAM;EACN,aAAa;EACb,SAAS;EACV;CACD,aAAa;EACX,MAAM;EACN,aAAa;EACb,SAAS;EACV;CACF;AAWD,eAAe,YAAY,EAAE,MAAM,MAAM,YAAY,SAAS,YAAY,YAA6C;AACrH,KAAI;AAEF,MAAI;AACF,gBAAQ,aAAa;UACf;EAMR,MAAM,8CAD0B,QAAQ,2BAA2B,CACpB;EAC/C,MAAM,WAAWA,kBAAK,QAAQ,aAAa;EAC3C,MAAM,aAAaA,kBAAK,KAAK,UAAU,WAAW,UAAU,YAAY;EAGxE,MAAM,OAAOC,aAAQ,IAAI,SAAS,SAAS,IAAI,SAAS,OAAO,KAAK;EACpE,MAAM,OAAOA,aAAQ,IAAI,QAAQ,QAAQ;EAGzC,MAAM,kBAAkBA,aAAQ,IAAI,mBAAmBA,aAAQ,KAAK;EACpE,MAAM,oBAAoBA,aAAQ,IAAI,qBAAqB,cAAc;EACzE,MAAM,sBAAsB,UAAU,SAAS;EAC/C,MAAM,yBAAyB,YAAY,aAAa,SAAUA,aAAQ,IAAI,0BAA0B;EACxG,MAAM,uBAAuB,WAAW,SAAUA,aAAQ,IAAI,wBAAwB;EAMtF,MAAM,MAAM;GACV;GACA;GACA;GACA;GACA;GACA;GACA;GACA,kBAbuBA,aAAQ,IAAI;GAcnC,0BAb+BA,aAAQ,IAAI,4BAA4B;GAcvE,iBAbsBA,aAAQ,IAAI,mBAAmB;GActD;AAED,iBAAM,IAAI,8BAAe,QAAQ,2BAA2B,CAAC;AAC7D,iBAAM,IAAI,8BAAe,OAAO,WAAW,oBAAoB,CAAC;AAChE,iBAAM,IAAI,8BAAe,OAAO,SAAS,OAAO,CAAC;AACjD,iBAAM,IAAI,8BAAe,OAAO,SAAS,OAAO,CAAC;AACjD,MAAI,QACF,gBAAM,IAAI,8BAAe,OAAO,4BAA4B,CAAC;AAE/D,MAAI,CAAC,0BAA0B,CAAC,qBAC9B,gBAAM,IAAI,8BAAe,UAAU,0EAA0E,CAAC;AAGhH,gCAAM,QAAQ,CAAC,WAAW,EAAE;GAC1B,KAAK;IAAE,GAAGA,aAAQ;IAAK,GAAG;IAAK;GAC/B,OAAO;GACP,KAAKA,aAAQ,KAAK;GACnB,CAAC;UACK,OAAO;AACd,UAAQ,MAAM,iCAAiC,MAAM;AACrD,eAAQ,KAAK,EAAE;;;AAInB,MAAM,mCAAwB;CAC5B,MAAM;EACJ,MAAM;EACN,aAAa;EACd;CACD;CACA,MAAM,IAAI,gBAAgB;EACxB,MAAM,EAAE,SAAS;AAEjB,MAAI;GACF,MAAM,aAAaD,kBAAK,QAAQC,aAAQ,KAAK,EAAE,KAAK,UAAU,iBAAiB;GAC/E,MAAM,OAAO,KAAK,OAAO,OAAO,SAAS,KAAK,MAAM,GAAG,GAAG;GAC1D,MAAM,OAAO,KAAK;GAClB,MAAM,UAAU,KAAK;GACrB,MAAM,aAAa,KAAK;GACxB,MAAM,WAAW,KAAK;AAEtB,SAAM,YAAY;IAAE;IAAM;IAAM;IAAY;IAAS;IAAY;IAAU,CAAC;WACrE,OAAO;AACd,kBAAM,IAAI,+BAAgB,OAAO,+BAA+B,CAAC;AACjE,WAAQ,MAAM,MAAM;AACpB,gBAAQ,KAAK,EAAE;;;CAGpB,CAAC"}
@@ -1,4 +1,4 @@
1
- const require_chunk = require('./chunk-C1_xRkKa.cjs');
1
+ const require_chunk = require('./chunk-CNbaEX1y.cjs');
2
2
  let citty = require("citty");
3
3
  let node_process = require("node:process");
4
4
  node_process = require_chunk.__toESM(node_process);
@@ -47,8 +47,7 @@ const command = (0, citty.defineCommand)({
47
47
  }
48
48
  }
49
49
  });
50
- var validate_default = command;
51
50
 
52
51
  //#endregion
53
- exports.default = validate_default;
54
- //# sourceMappingURL=validate-Cvb5aOEb.cjs.map
52
+ exports.default = command;
53
+ //# sourceMappingURL=validate-BgYhe_55.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate-Cvb5aOEb.cjs","names":["jiti"],"sources":["../src/commands/validate.ts"],"sourcesContent":["import process from 'node:process'\nimport type { ArgsDef } from 'citty'\nimport { defineCommand, showUsage } from 'citty'\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\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 console.error(`Import of '@kubb/oas' is required to do validation`)\n process.exit(1)\n }\n\n const { parse } = mod\n try {\n const oas = await parse(args.input)\n await oas.validate()\n\n console.log('✅ Validation success')\n } catch (error) {\n console.error('❌ Validation failed')\n console.log((error as Error)?.message)\n process.exit(1)\n }\n }\n },\n})\n\nexport default command\n"],"mappings":";;;;;;;AAKA,MAAMA,6EAAmC,EACvC,YAAY,MACb,CAAC;AAgBF,MAAM,mCAAwB;CAC5B,MAAM;EACJ,MAAM;EACN,aAAa;EACd;CACD,MAnBW;EACX,OAAO;GACL,MAAM;GACN,aAAa;GACb,OAAO;GACR;EACD,MAAM;GACJ,MAAM;GACN,aAAa;GACb,OAAO;GACP,SAAS;GACV;EACF;CAQC,MAAM,IAAI,gBAAgB;EACxB,MAAM,EAAE,SAAS;AAEjB,MAAI,KAAK,KACP,6BAAiB,QAAQ;AAG3B,MAAI,KAAK,OAAO;GACd,IAAI;AACJ,OAAI;AACF,UAAM,MAAMA,OAAK,OAAO,aAAa,EAAE,SAAS,MAAM,CAAC;YAChD,IAAI;AACX,YAAQ,MAAM,qDAAqD;AACnE,yBAAQ,KAAK,EAAE;;GAGjB,MAAM,EAAE,UAAU;AAClB,OAAI;AAEF,WADY,MAAM,MAAM,KAAK,MAAM,EACzB,UAAU;AAEpB,YAAQ,IAAI,uBAAuB;YAC5B,OAAO;AACd,YAAQ,MAAM,sBAAsB;AACpC,YAAQ,IAAK,OAAiB,QAAQ;AACtC,yBAAQ,KAAK,EAAE;;;;CAItB,CAAC;AAEF,uBAAe"}
1
+ {"version":3,"file":"validate-BgYhe_55.cjs","names":["jiti"],"sources":["../src/commands/validate.ts"],"sourcesContent":["import process from 'node:process'\nimport type { ArgsDef } from 'citty'\nimport { defineCommand, showUsage } from 'citty'\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\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 console.error(`Import of '@kubb/oas' is required to do validation`)\n process.exit(1)\n }\n\n const { parse } = mod\n try {\n const oas = await parse(args.input)\n await oas.validate()\n\n console.log('✅ Validation success')\n } catch (error) {\n console.error('❌ Validation failed')\n console.log((error as Error)?.message)\n process.exit(1)\n }\n }\n },\n})\n\nexport default command\n"],"mappings":";;;;;;;AAKA,MAAMA,6EAAmC,EACvC,YAAY,MACb,CAAC;AAgBF,MAAM,mCAAwB;CAC5B,MAAM;EACJ,MAAM;EACN,aAAa;EACd;CACD,MAnBW;EACX,OAAO;GACL,MAAM;GACN,aAAa;GACb,OAAO;GACR;EACD,MAAM;GACJ,MAAM;GACN,aAAa;GACb,OAAO;GACP,SAAS;GACV;EACF;CAQC,MAAM,IAAI,gBAAgB;EACxB,MAAM,EAAE,SAAS;AAEjB,MAAI,KAAK,KACP,6BAAiB,QAAQ;AAG3B,MAAI,KAAK,OAAO;GACd,IAAI;AACJ,OAAI;AACF,UAAM,MAAMA,OAAK,OAAO,aAAa,EAAE,SAAS,MAAM,CAAC;YAChD,IAAI;AACX,YAAQ,MAAM,qDAAqD;AACnE,yBAAQ,KAAK,EAAE;;GAGjB,MAAM,EAAE,UAAU;AAClB,OAAI;AAEF,WADY,MAAM,MAAM,KAAK,MAAM,EACzB,UAAU;AAEpB,YAAQ,IAAI,uBAAuB;YAC5B,OAAO;AACd,YAAQ,MAAM,sBAAsB;AACpC,YAAQ,IAAK,OAAiB,QAAQ;AACtC,yBAAQ,KAAK,EAAE;;;;CAItB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { t as __name } from "./chunk-jHaXqnEa.js";
1
+ import { t as __name } from "./chunk-DKWOrOAv.js";
2
2
  import { defineCommand, showUsage } from "citty";
3
3
  import process from "node:process";
4
4
  import { createJiti } from "jiti";
@@ -46,8 +46,7 @@ const command = defineCommand({
46
46
  }
47
47
  }
48
48
  });
49
- var validate_default = command;
50
49
 
51
50
  //#endregion
52
- export { validate_default as default };
53
- //# sourceMappingURL=validate-YI4YkVTl.js.map
51
+ export { command as default };
52
+ //# sourceMappingURL=validate-DOeZKiGx.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate-YI4YkVTl.js","names":[],"sources":["../src/commands/validate.ts"],"sourcesContent":["import process from 'node:process'\nimport type { ArgsDef } from 'citty'\nimport { defineCommand, showUsage } from 'citty'\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\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 console.error(`Import of '@kubb/oas' is required to do validation`)\n process.exit(1)\n }\n\n const { parse } = mod\n try {\n const oas = await parse(args.input)\n await oas.validate()\n\n console.log('✅ Validation success')\n } catch (error) {\n console.error('❌ Validation failed')\n console.log((error as Error)?.message)\n process.exit(1)\n }\n }\n },\n})\n\nexport default command\n"],"mappings":";;;;;;AAKA,MAAM,OAAO,WAAW,OAAO,KAAK,KAAK,EACvC,YAAY,MACb,CAAC;AAgBF,MAAM,UAAU,cAAc;CAC5B,MAAM;EACJ,MAAM;EACN,aAAa;EACd;CACD,MAnBW;EACX,OAAO;GACL,MAAM;GACN,aAAa;GACb,OAAO;GACR;EACD,MAAM;GACJ,MAAM;GACN,aAAa;GACb,OAAO;GACP,SAAS;GACV;EACF;CAQC,MAAM,IAAI,gBAAgB;EACxB,MAAM,EAAE,SAAS;AAEjB,MAAI,KAAK,KACP,QAAO,UAAU,QAAQ;AAG3B,MAAI,KAAK,OAAO;GACd,IAAI;AACJ,OAAI;AACF,UAAM,MAAM,KAAK,OAAO,aAAa,EAAE,SAAS,MAAM,CAAC;YAChD,IAAI;AACX,YAAQ,MAAM,qDAAqD;AACnE,YAAQ,KAAK,EAAE;;GAGjB,MAAM,EAAE,UAAU;AAClB,OAAI;AAEF,WADY,MAAM,MAAM,KAAK,MAAM,EACzB,UAAU;AAEpB,YAAQ,IAAI,uBAAuB;YAC5B,OAAO;AACd,YAAQ,MAAM,sBAAsB;AACpC,YAAQ,IAAK,OAAiB,QAAQ;AACtC,YAAQ,KAAK,EAAE;;;;CAItB,CAAC;AAEF,uBAAe"}
1
+ {"version":3,"file":"validate-DOeZKiGx.js","names":[],"sources":["../src/commands/validate.ts"],"sourcesContent":["import process from 'node:process'\nimport type { ArgsDef } from 'citty'\nimport { defineCommand, showUsage } from 'citty'\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\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 console.error(`Import of '@kubb/oas' is required to do validation`)\n process.exit(1)\n }\n\n const { parse } = mod\n try {\n const oas = await parse(args.input)\n await oas.validate()\n\n console.log('✅ Validation success')\n } catch (error) {\n console.error('❌ Validation failed')\n console.log((error as Error)?.message)\n process.exit(1)\n }\n }\n },\n})\n\nexport default command\n"],"mappings":";;;;;;AAKA,MAAM,OAAO,WAAW,OAAO,KAAK,KAAK,EACvC,YAAY,MACb,CAAC;AAgBF,MAAM,UAAU,cAAc;CAC5B,MAAM;EACJ,MAAM;EACN,aAAa;EACd;CACD,MAnBW;EACX,OAAO;GACL,MAAM;GACN,aAAa;GACb,OAAO;GACR;EACD,MAAM;GACJ,MAAM;GACN,aAAa;GACb,OAAO;GACP,SAAS;GACV;EACF;CAQC,MAAM,IAAI,gBAAgB;EACxB,MAAM,EAAE,SAAS;AAEjB,MAAI,KAAK,KACP,QAAO,UAAU,QAAQ;AAG3B,MAAI,KAAK,OAAO;GACd,IAAI;AACJ,OAAI;AACF,UAAM,MAAM,KAAK,OAAO,aAAa,EAAE,SAAS,MAAM,CAAC;YAChD,IAAI;AACX,YAAQ,MAAM,qDAAqD;AACnE,YAAQ,KAAK,EAAE;;GAGjB,MAAM,EAAE,UAAU;AAClB,OAAI;AAEF,WADY,MAAM,MAAM,KAAK,MAAM,EACzB,UAAU;AAEpB,YAAQ,IAAI,uBAAuB;YAC5B,OAAO;AACd,YAAQ,MAAM,sBAAsB;AACpC,YAAQ,IAAK,OAAiB,QAAQ;AACtC,YAAQ,KAAK,EAAE;;;;CAItB,CAAC"}