@kubb/cli 4.28.1 → 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.
- package/dist/{agent-DrV6PuuK.js → agent-BzD6f3mV.js} +4 -5
- package/dist/{agent-DrV6PuuK.js.map → agent-BzD6f3mV.js.map} +1 -1
- package/dist/{agent-BHBMSAC7.cjs → agent-NAhMf2ot.cjs} +4 -5
- package/dist/{agent-BHBMSAC7.cjs.map → agent-NAhMf2ot.cjs.map} +1 -1
- package/dist/{chunk-C1_xRkKa.cjs → chunk-CNbaEX1y.cjs} +1 -1
- package/dist/{chunk-jHaXqnEa.js → chunk-DKWOrOAv.js} +1 -1
- package/dist/{generate-B8XICi_S.cjs → generate-C8gS4Z2F.cjs} +190 -188
- package/dist/generate-C8gS4Z2F.cjs.map +1 -0
- package/dist/{generate-CQudcsre.js → generate-CnKaIwc7.js} +191 -185
- package/dist/generate-CnKaIwc7.js.map +1 -0
- package/dist/index.cjs +9 -8
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +8 -8
- package/dist/{init-Byzguonv.js → init-B5qnw1XS.js} +22 -23
- package/dist/init-B5qnw1XS.js.map +1 -0
- package/dist/{init-CRG4HVMq.cjs → init-BDWQO7I8.cjs} +22 -24
- package/dist/init-BDWQO7I8.cjs.map +1 -0
- package/dist/{mcp-DGyip5BX.cjs → mcp-97TXkJVX.cjs} +5 -7
- package/dist/mcp-97TXkJVX.cjs.map +1 -0
- package/dist/{mcp-C-e4yatL.js → mcp-Jboea6xH.js} +5 -6
- package/dist/mcp-Jboea6xH.js.map +1 -0
- package/dist/{package-DIc1GFdF.cjs → package-oo3QhWS5.cjs} +2 -2
- package/dist/package-oo3QhWS5.cjs.map +1 -0
- package/dist/package-veMf5zNr.js +6 -0
- package/dist/package-veMf5zNr.js.map +1 -0
- package/dist/{start-jaV7_Xss.js → start-CYuU23PX.js} +27 -24
- package/dist/start-CYuU23PX.js.map +1 -0
- package/dist/{start-DqKYNdp1.cjs → start-lrn1-P52.cjs} +27 -25
- package/dist/start-lrn1-P52.cjs.map +1 -0
- package/dist/{validate-Cvb5aOEb.cjs → validate-BgYhe_55.cjs} +3 -4
- package/dist/{validate-Cvb5aOEb.cjs.map → validate-BgYhe_55.cjs.map} +1 -1
- package/dist/{validate-YI4YkVTl.js → validate-DOeZKiGx.js} +3 -4
- package/dist/{validate-YI4YkVTl.js.map → validate-DOeZKiGx.js.map} +1 -1
- package/package.json +12 -21
- package/src/commands/agent/start.ts +17 -16
- package/src/commands/generate.ts +11 -7
- package/src/commands/init.ts +14 -14
- package/src/commands/mcp.ts +2 -2
- package/src/loggers/clackLogger.ts +49 -40
- package/src/loggers/githubActionsLogger.ts +36 -32
- package/src/loggers/plainLogger.ts +9 -9
- package/src/runners/generate.ts +9 -7
- package/src/utils/Writables.ts +2 -2
- package/src/utils/executeHooks.ts +4 -5
- package/src/utils/formatMsWithColor.ts +4 -4
- package/src/utils/getIntro.ts +52 -6
- package/src/utils/getSummary.ts +6 -6
- package/src/utils/packageManager.ts +3 -9
- package/src/utils/randomColor.ts +5 -6
- package/src/utils/watcher.ts +3 -3
- package/dist/generate-B8XICi_S.cjs.map +0 -1
- package/dist/generate-CQudcsre.js.map +0 -1
- package/dist/index.d.cts +0 -6
- package/dist/init-Byzguonv.js.map +0 -1
- package/dist/init-CRG4HVMq.cjs.map +0 -1
- package/dist/mcp-C-e4yatL.js.map +0 -1
- package/dist/mcp-DGyip5BX.cjs.map +0 -1
- package/dist/package-DIc1GFdF.cjs.map +0 -1
- package/dist/package-G_AvcVgZ.js +0 -6
- package/dist/package-G_AvcVgZ.js.map +0 -1
- package/dist/start-DqKYNdp1.cjs.map +0 -1
- package/dist/start-jaV7_Xss.js.map +0 -1
- package/src/utils/ansiColors.ts +0 -23
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
const require_chunk = require('./chunk-
|
|
2
|
-
const require_package = require('./package-
|
|
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
|
-
|
|
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
|
-
|
|
62
|
-
|
|
60
|
+
stdio: "inherit",
|
|
61
|
+
cwd
|
|
63
62
|
});
|
|
64
63
|
}
|
|
65
64
|
async function installPackages(packages, packageManager, cwd = process.cwd()) {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
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(
|
|
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
|
|
231
|
-
spinner
|
|
229
|
+
const spinner = _clack_prompts.spinner();
|
|
230
|
+
spinner.start(`Initializing package.json with ${packageManager.name}`);
|
|
232
231
|
await initPackageJson(cwd, packageManager);
|
|
233
|
-
spinner
|
|
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: ${
|
|
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: ${
|
|
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: ${
|
|
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: ${
|
|
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(
|
|
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(
|
|
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 =
|
|
345
|
-
//# sourceMappingURL=init-
|
|
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-
|
|
1
|
+
const require_chunk = require('./chunk-CNbaEX1y.cjs');
|
|
2
2
|
let citty = require("citty");
|
|
3
|
-
let
|
|
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(
|
|
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 =
|
|
44
|
-
//# sourceMappingURL=mcp-
|
|
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-
|
|
1
|
+
import { t as __name } from "./chunk-DKWOrOAv.js";
|
|
2
2
|
import { defineCommand, showUsage } from "citty";
|
|
3
|
-
import
|
|
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(
|
|
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 {
|
|
43
|
-
//# sourceMappingURL=mcp-
|
|
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.
|
|
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-
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"package-veMf5zNr.js","names":[],"sources":["../package.json"],"sourcesContent":[""],"mappings":""}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import { t as __name } from "./chunk-
|
|
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
|
-
|
|
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(
|
|
70
|
-
clack.log.info(
|
|
71
|
-
clack.log.info(
|
|
72
|
-
clack.log.info(
|
|
73
|
-
if (noCache) clack.log.info(
|
|
74
|
-
if (!KUBB_AGENT_ALLOW_WRITE && !KUBB_AGENT_ALLOW_ALL) clack.log.warn(
|
|
75
|
-
|
|
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
|
|
96
|
+
const { args } = commandContext;
|
|
93
97
|
try {
|
|
94
|
-
const configPath = path.resolve(process$1.cwd(), args
|
|
95
|
-
const port = args
|
|
96
|
-
const host = args
|
|
97
|
-
const noCache = args
|
|
98
|
-
const allowWrite = args
|
|
99
|
-
const allowAll = args
|
|
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(
|
|
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 {
|
|
119
|
-
//# sourceMappingURL=start-
|
|
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-
|
|
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
|
-
|
|
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(
|
|
74
|
-
_clack_prompts.log.info(
|
|
75
|
-
_clack_prompts.log.info(
|
|
76
|
-
_clack_prompts.log.info(
|
|
77
|
-
if (noCache) _clack_prompts.log.info(
|
|
78
|
-
if (!KUBB_AGENT_ALLOW_WRITE && !KUBB_AGENT_ALLOW_ALL) _clack_prompts.log.warn(
|
|
79
|
-
|
|
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
|
|
99
|
+
const { args } = commandContext;
|
|
97
100
|
try {
|
|
98
|
-
const configPath = node_path.default.resolve(node_process.cwd(), args
|
|
99
|
-
const port = args
|
|
100
|
-
const host = args
|
|
101
|
-
const noCache = args
|
|
102
|
-
const allowWrite = args
|
|
103
|
-
const allowAll = args
|
|
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(
|
|
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 =
|
|
123
|
-
//# sourceMappingURL=start-
|
|
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-
|
|
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 =
|
|
54
|
-
//# sourceMappingURL=validate-
|
|
52
|
+
exports.default = command;
|
|
53
|
+
//# sourceMappingURL=validate-BgYhe_55.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-
|
|
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-
|
|
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 {
|
|
53
|
-
//# sourceMappingURL=validate-
|
|
51
|
+
export { command as default };
|
|
52
|
+
//# sourceMappingURL=validate-DOeZKiGx.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-
|
|
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"}
|