@kubb/cli 5.0.0-beta.7 → 5.0.0-beta.70

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 (133) hide show
  1. package/LICENSE +17 -10
  2. package/README.md +45 -77
  3. package/bin/kubb.js +9 -3
  4. package/dist/Telemetry-CfPP7MYq.cjs +321 -0
  5. package/dist/Telemetry-CfPP7MYq.cjs.map +1 -0
  6. package/dist/Telemetry-uAr3lK_-.js +284 -0
  7. package/dist/Telemetry-uAr3lK_-.js.map +1 -0
  8. package/dist/{define-Bdn8j5VM.cjs → defineCommand-Bo3yZTWI.cjs} +3 -21
  9. package/dist/defineCommand-Bo3yZTWI.cjs.map +1 -0
  10. package/dist/{define-m_fp-Aqm.js → defineCommand-DMEeqliP.js} +4 -16
  11. package/dist/defineCommand-DMEeqliP.js.map +1 -0
  12. package/dist/{errors-CINO1EIv.js → errors-Dc_d7BfX.js} +2 -2
  13. package/dist/{errors-CINO1EIv.js.map → errors-Dc_d7BfX.js.map} +1 -1
  14. package/dist/{errors-CLCjoSg0.cjs → errors-gxFK0vrp.cjs} +2 -2
  15. package/dist/{errors-CLCjoSg0.cjs.map → errors-gxFK0vrp.cjs.map} +1 -1
  16. package/dist/{generate-BY-juRdH.js → generate-BdxIouwm.js} +21 -16
  17. package/dist/generate-BdxIouwm.js.map +1 -0
  18. package/dist/{generate-Bod9YCbF.cjs → generate-tRupKbnI.cjs} +21 -16
  19. package/dist/generate-tRupKbnI.cjs.map +1 -0
  20. package/dist/index.cjs +34 -81
  21. package/dist/index.cjs.map +1 -1
  22. package/dist/index.d.ts +6 -1
  23. package/dist/index.js +34 -81
  24. package/dist/index.js.map +1 -1
  25. package/dist/{init-Cs3Fp6nN.js → init-D_9I495E.js} +5 -5
  26. package/dist/{init-Cs3Fp6nN.js.map → init-D_9I495E.js.map} +1 -1
  27. package/dist/{init-BIkZU6mB.cjs → init-XlS3aia7.cjs} +6 -6
  28. package/dist/{init-BIkZU6mB.cjs.map → init-XlS3aia7.cjs.map} +1 -1
  29. package/dist/mcp-BlKi3z04.js +21 -0
  30. package/dist/mcp-BlKi3z04.js.map +1 -0
  31. package/dist/mcp-DSo5Ccwz.cjs +21 -0
  32. package/dist/mcp-DSo5Ccwz.cjs.map +1 -0
  33. package/dist/package-CsDaFmfZ.js +6 -0
  34. package/dist/package-CsDaFmfZ.js.map +1 -0
  35. package/dist/{package-DrUndPET.cjs → package-HWZRLSO4.cjs} +2 -2
  36. package/dist/package-HWZRLSO4.cjs.map +1 -0
  37. package/dist/{chunk-BvFE5Tac.js → rolldown-runtime-C0LytTxp.js} +0 -1
  38. package/dist/{run-YsoCk5we.cjs → run-AYlRjIX5.cjs} +136 -98
  39. package/dist/run-AYlRjIX5.cjs.map +1 -0
  40. package/dist/run-BM1t8CSM.cjs +33 -0
  41. package/dist/run-BM1t8CSM.cjs.map +1 -0
  42. package/dist/run-BlFVmIJl.js +32 -0
  43. package/dist/run-BlFVmIJl.js.map +1 -0
  44. package/dist/{run-CQbj3ley.cjs → run-CBc896in.cjs} +6 -6
  45. package/dist/run-CBc896in.cjs.map +1 -0
  46. package/dist/{run-CF97BWVa.js → run-D9mQoQHA.js} +123 -85
  47. package/dist/run-D9mQoQHA.js.map +1 -0
  48. package/dist/{run-CCZ24VKk.js → run-D_dWNFhX.js} +5 -5
  49. package/dist/run-D_dWNFhX.js.map +1 -0
  50. package/dist/run-DwylXpzM.cjs +1380 -0
  51. package/dist/run-DwylXpzM.cjs.map +1 -0
  52. package/dist/run-KlHwxNTr.js +1377 -0
  53. package/dist/run-KlHwxNTr.js.map +1 -0
  54. package/dist/tools-CZT9wSA6.cjs +175 -0
  55. package/dist/tools-CZT9wSA6.cjs.map +1 -0
  56. package/dist/tools-D0UogMU3.js +152 -0
  57. package/dist/tools-D0UogMU3.js.map +1 -0
  58. package/dist/{validate-Bfpf_UIh.cjs → validate-3gu3yglv.cjs} +6 -6
  59. package/dist/{validate-Bfpf_UIh.cjs.map → validate-3gu3yglv.cjs.map} +1 -1
  60. package/dist/{validate-lbUkWQ5o.js → validate-DBqdV14W.js} +5 -5
  61. package/dist/{validate-lbUkWQ5o.js.map → validate-DBqdV14W.js.map} +1 -1
  62. package/package.json +13 -25
  63. package/dist/agent-DN7o8nlE.js +0 -68
  64. package/dist/agent-DN7o8nlE.js.map +0 -1
  65. package/dist/agent-Fm9_8BBH.cjs +0 -70
  66. package/dist/agent-Fm9_8BBH.cjs.map +0 -1
  67. package/dist/constants-B2JTeRBb.js +0 -42
  68. package/dist/constants-B2JTeRBb.js.map +0 -1
  69. package/dist/constants-BINTA5VZ.cjs +0 -77
  70. package/dist/constants-BINTA5VZ.cjs.map +0 -1
  71. package/dist/constants-BYGmiFs0.cjs +0 -139
  72. package/dist/constants-BYGmiFs0.cjs.map +0 -1
  73. package/dist/constants-DSJ-Xrbv.js +0 -116
  74. package/dist/constants-DSJ-Xrbv.js.map +0 -1
  75. package/dist/define-Bdn8j5VM.cjs.map +0 -1
  76. package/dist/define-m_fp-Aqm.js.map +0 -1
  77. package/dist/generate-BY-juRdH.js.map +0 -1
  78. package/dist/generate-Bod9YCbF.cjs.map +0 -1
  79. package/dist/mcp-BSNulBcC.js +0 -39
  80. package/dist/mcp-BSNulBcC.js.map +0 -1
  81. package/dist/mcp-DcSrFhhP.cjs +0 -39
  82. package/dist/mcp-DcSrFhhP.cjs.map +0 -1
  83. package/dist/package-D5wmvFl4.js +0 -6
  84. package/dist/package-D5wmvFl4.js.map +0 -1
  85. package/dist/package-DrUndPET.cjs.map +0 -1
  86. package/dist/run-BAJubgdA.js +0 -1735
  87. package/dist/run-BAJubgdA.js.map +0 -1
  88. package/dist/run-BzpYYOQs.js +0 -121
  89. package/dist/run-BzpYYOQs.js.map +0 -1
  90. package/dist/run-CCZ24VKk.js.map +0 -1
  91. package/dist/run-CF97BWVa.js.map +0 -1
  92. package/dist/run-CQbj3ley.cjs.map +0 -1
  93. package/dist/run-CqKd6JNc.cjs +0 -1738
  94. package/dist/run-CqKd6JNc.cjs.map +0 -1
  95. package/dist/run-D0hmRpHy.js +0 -49
  96. package/dist/run-D0hmRpHy.js.map +0 -1
  97. package/dist/run-DwdAwnLG.cjs +0 -125
  98. package/dist/run-DwdAwnLG.cjs.map +0 -1
  99. package/dist/run-Lr0Ctnu0.cjs +0 -50
  100. package/dist/run-Lr0Ctnu0.cjs.map +0 -1
  101. package/dist/run-YsoCk5we.cjs.map +0 -1
  102. package/dist/shell-475fQKaX.cjs +0 -62
  103. package/dist/shell-475fQKaX.cjs.map +0 -1
  104. package/dist/shell-CN6DNqeC.js +0 -51
  105. package/dist/shell-CN6DNqeC.js.map +0 -1
  106. package/dist/telemetry-B2iWkY5e.cjs +0 -280
  107. package/dist/telemetry-B2iWkY5e.cjs.map +0 -1
  108. package/dist/telemetry-BkektVz6.js +0 -243
  109. package/dist/telemetry-BkektVz6.js.map +0 -1
  110. package/src/commands/agent/start.ts +0 -50
  111. package/src/commands/agent.ts +0 -10
  112. package/src/commands/generate.ts +0 -59
  113. package/src/commands/init.ts +0 -51
  114. package/src/commands/mcp.ts +0 -36
  115. package/src/commands/validate.ts +0 -22
  116. package/src/constants.ts +0 -48
  117. package/src/index.ts +0 -45
  118. package/src/loggers/clackLogger.ts +0 -460
  119. package/src/loggers/fileSystemLogger.ts +0 -148
  120. package/src/loggers/githubActionsLogger.ts +0 -367
  121. package/src/loggers/plainLogger.ts +0 -243
  122. package/src/loggers/types.ts +0 -7
  123. package/src/loggers/utils.ts +0 -252
  124. package/src/runners/agent/run.ts +0 -113
  125. package/src/runners/agent/utils.ts +0 -98
  126. package/src/runners/generate/run.ts +0 -276
  127. package/src/runners/generate/utils.ts +0 -209
  128. package/src/runners/init/run.ts +0 -211
  129. package/src/runners/init/utils.ts +0 -33
  130. package/src/runners/mcp/run.ts +0 -55
  131. package/src/runners/validate/run.ts +0 -63
  132. package/src/telemetry.ts +0 -280
  133. /package/dist/{chunk-ByKO4r7w.cjs → rolldown-runtime-Bx3C2hgW.cjs} +0 -0
@@ -1,6 +1,6 @@
1
- import "./chunk-BvFE5Tac.js";
2
- import { n as defineCommand } from "./define-m_fp-Aqm.js";
3
- import { t as version } from "./package-D5wmvFl4.js";
1
+ import "./rolldown-runtime-C0LytTxp.js";
2
+ import { t as defineCommand } from "./defineCommand-DMEeqliP.js";
3
+ import { t as version } from "./package-CsDaFmfZ.js";
4
4
  //#region src/commands/validate.ts
5
5
  const command = defineCommand({
6
6
  name: "validate",
@@ -13,7 +13,7 @@ const command = defineCommand({
13
13
  required: true
14
14
  } },
15
15
  async run({ values }) {
16
- const { run } = await import("./run-CCZ24VKk.js");
16
+ const { run } = await import("./run-D_dWNFhX.js");
17
17
  await run({
18
18
  input: values.input,
19
19
  version
@@ -23,4 +23,4 @@ const command = defineCommand({
23
23
  //#endregion
24
24
  export { command };
25
25
 
26
- //# sourceMappingURL=validate-lbUkWQ5o.js.map
26
+ //# sourceMappingURL=validate-DBqdV14W.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate-lbUkWQ5o.js","names":[],"sources":["../src/commands/validate.ts"],"sourcesContent":["import { defineCommand } from '@internals/utils'\nimport { version } from '../../package.json'\n\nexport const command = defineCommand({\n name: 'validate',\n description:\n 'Parse and validate an OpenAPI/Swagger file for structural correctness. Reports schema errors, missing required fields, and malformed references. Use this before running generate to catch spec issues early.',\n examples: ['kubb validate --input ./openapi.yaml', 'kubb validate --input https://petstore3.swagger.io/api/v3/openapi.json'],\n options: {\n input: {\n type: 'string',\n description: 'Path or URL to the OpenAPI/Swagger file to validate',\n short: 'i',\n required: true,\n },\n },\n async run({ values }) {\n const { run } = await import('../runners/validate/run.ts')\n\n await run({ input: values.input, version })\n },\n})\n"],"mappings":";;;;AAGA,MAAa,UAAU,cAAc;CACnC,MAAM;CACN,aACE;CACF,UAAU,CAAC,wCAAwC,yEAAyE;CAC5H,SAAS,EACP,OAAO;EACL,MAAM;EACN,aAAa;EACb,OAAO;EACP,UAAU;EACX,EACF;CACD,MAAM,IAAI,EAAE,UAAU;EACpB,MAAM,EAAE,QAAQ,MAAM,OAAO;EAE7B,MAAM,IAAI;GAAE,OAAO,OAAO;GAAO;GAAS,CAAC;;CAE9C,CAAC"}
1
+ {"version":3,"file":"validate-DBqdV14W.js","names":[],"sources":["../src/commands/validate.ts"],"sourcesContent":["import { defineCommand } from '@internals/utils'\nimport { version } from '../../package.json'\n\nexport const command = defineCommand({\n name: 'validate',\n description:\n 'Parse and validate an OpenAPI/Swagger file for structural correctness. Reports schema errors, missing required fields, and malformed references. Use this before running generate to catch spec issues early.',\n examples: ['kubb validate --input ./openapi.yaml', 'kubb validate --input https://petstore3.swagger.io/api/v3/openapi.json'],\n options: {\n input: {\n type: 'string',\n description: 'Path or URL to the OpenAPI/Swagger file to validate',\n short: 'i',\n required: true,\n },\n },\n async run({ values }) {\n const { run } = await import('../runners/validate/run.ts')\n\n await run({ input: values.input, version })\n },\n})\n"],"mappings":";;;;AAGA,MAAa,UAAU,cAAc;CACnC,MAAM;CACN,aACE;CACF,UAAU,CAAC,wCAAwC,wEAAwE;CAC3H,SAAS,EACP,OAAO;EACL,MAAM;EACN,aAAa;EACb,OAAO;EACP,UAAU;CACZ,EACF;CACA,MAAM,IAAI,EAAE,UAAU;EACpB,MAAM,EAAE,QAAQ,MAAM,OAAO;EAE7B,MAAM,IAAI;GAAE,OAAO,OAAO;GAAO;EAAQ,CAAC;CAC5C;AACF,CAAC"}
package/package.json CHANGED
@@ -1,15 +1,14 @@
1
1
  {
2
2
  "name": "@kubb/cli",
3
- "version": "5.0.0-beta.7",
4
- "description": "Official CLI for Kubb. Run kubb generate, kubb init, kubb validate, kubb mcp, and kubb agent to manage the full code generation lifecycle from OpenAPI/Swagger specs.",
3
+ "version": "5.0.0-beta.70",
4
+ "description": "Official CLI for Kubb. Run kubb generate, kubb init, kubb validate, and kubb mcp to manage the full code generation lifecycle.",
5
5
  "keywords": [
6
6
  "cli",
7
7
  "code-generator",
8
8
  "codegen",
9
9
  "kubb",
10
- "openapi",
10
+ "meta-framework",
11
11
  "sdk-generator",
12
- "swagger",
13
12
  "typescript"
14
13
  ],
15
14
  "license": "MIT",
@@ -23,7 +22,6 @@
23
22
  "kubb": "bin/kubb.js"
24
23
  },
25
24
  "files": [
26
- "src",
27
25
  "dist",
28
26
  "bin",
29
27
  "!/**/**.test.**",
@@ -47,52 +45,42 @@
47
45
  "registry": "https://registry.npmjs.org/"
48
46
  },
49
47
  "dependencies": {
50
- "@clack/prompts": "^1.3.0",
48
+ "@clack/prompts": "^1.5.1",
51
49
  "chokidar": "^5.0.0",
52
- "cosmiconfig": "^9.0.1",
53
50
  "jiti": "^2.7.0",
54
- "tinyexec": "^1.1.2",
55
- "@kubb/core": "5.0.0-beta.7"
51
+ "tinyexec": "^1.2.4",
52
+ "unconfig": "^7.5.0",
53
+ "@kubb/core": "5.0.0-beta.70"
56
54
  },
57
55
  "devDependencies": {
58
56
  "@internals/shared": "0.0.0",
59
57
  "@internals/utils": "0.0.0",
60
- "@kubb/adapter-oas": "5.0.0-beta.7"
58
+ "@kubb/adapter-oas": "5.0.0-beta.70"
61
59
  },
62
60
  "peerDependencies": {
63
- "@kubb/adapter-oas": "5.0.0-beta.7",
64
- "@kubb/agent": "5.0.0-beta.7",
65
- "@kubb/mcp": "5.0.0-beta.7"
61
+ "@kubb/adapter-oas": "5.0.0-beta.70",
62
+ "@kubb/mcp": "5.0.0-beta.70"
66
63
  },
67
64
  "peerDependenciesMeta": {
68
65
  "@kubb/adapter-oas": {
69
66
  "optional": true
70
67
  },
71
- "@kubb/agent": {
72
- "optional": true
73
- },
74
68
  "@kubb/mcp": {
75
69
  "optional": true
76
70
  }
77
71
  },
78
- "size-limit": [
79
- {
80
- "path": "./dist/*.js",
81
- "limit": "510 KiB",
82
- "gzip": true
83
- }
84
- ],
85
72
  "preferGlobal": true,
86
73
  "engines": {
87
74
  "node": ">=22"
88
75
  },
89
76
  "scripts": {
90
- "build": "tsdown && size-limit",
91
- "clean": "npx rimraf ./dist",
77
+ "build": "tsdown",
78
+ "clean": "node -e \"require('node:fs').rmSync('./dist', {recursive:true,force:true})\"",
92
79
  "lint": "oxlint .",
93
80
  "lint:fix": "oxlint --fix .",
94
81
  "release": "pnpm publish --no-git-check",
95
82
  "release:canary": "bash ../../.github/canary.sh && node ../../scripts/build.js canary && pnpm publish --no-git-check",
83
+ "release:stage": "pnpm stage publish --no-git-check",
96
84
  "start": "tsdown --watch",
97
85
  "test": "vitest --passWithNoTests",
98
86
  "typecheck": "tsc -p ./tsconfig.json --noEmit --emitDeclarationOnly false"
@@ -1,68 +0,0 @@
1
- import "./chunk-BvFE5Tac.js";
2
- import { n as defineCommand } from "./define-m_fp-Aqm.js";
3
- import { t as version } from "./package-D5wmvFl4.js";
4
- import { o as agentDefaults } from "./constants-B2JTeRBb.js";
5
- //#endregion
6
- //#region src/commands/agent.ts
7
- const command = defineCommand({
8
- name: "agent",
9
- description: "Manage the Kubb Agent — an HTTP server that lets AI agents trigger code generation programmatically via a REST API. Useful when an AI workflow needs to generate code without direct CLI access.",
10
- examples: [
11
- "kubb agent start",
12
- "kubb agent start --port 4000 --allow-write",
13
- "kubb agent start --config ./kubb.config.ts --allow-all"
14
- ],
15
- subCommands: [defineCommand({
16
- name: "start",
17
- description: "Start the Kubb Agent HTTP server. Exposes a REST API that accepts a kubb.config.ts patch and returns generated code as a stream. Use --allow-write to also write files to disk.",
18
- examples: [
19
- "kubb agent start",
20
- "kubb agent start --port 4000",
21
- "kubb agent start --allow-write",
22
- "kubb agent start --config ./kubb.config.ts --allow-all"
23
- ],
24
- options: {
25
- config: {
26
- type: "string",
27
- description: "Path to the Kubb config file",
28
- short: "c"
29
- },
30
- port: {
31
- type: "string",
32
- description: "Port the HTTP server listens on",
33
- short: "p",
34
- default: agentDefaults.port
35
- },
36
- host: {
37
- type: "string",
38
- description: "Hostname the HTTP server binds to",
39
- default: agentDefaults.host
40
- },
41
- "allow-write": {
42
- type: "boolean",
43
- description: "Write generated files to the filesystem. When omitted, output is streamed only and no files are written.",
44
- default: false
45
- },
46
- "allow-all": {
47
- type: "boolean",
48
- description: "Grant all permissions (implies --allow-write).",
49
- default: false
50
- }
51
- },
52
- async run({ values }) {
53
- const { run } = await import("./run-BzpYYOQs.js");
54
- await run({
55
- port: values.port !== void 0 ? values.port : void 0,
56
- host: values.host,
57
- configPath: values.config,
58
- allowWrite: values["allow-write"],
59
- allowAll: values["allow-all"],
60
- version
61
- });
62
- }
63
- })]
64
- });
65
- //#endregion
66
- export { command };
67
-
68
- //# sourceMappingURL=agent-DN7o8nlE.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-DN7o8nlE.js","names":["command","startCommand"],"sources":["../src/commands/agent/start.ts","../src/commands/agent.ts"],"sourcesContent":["import { defineCommand } from '@internals/utils'\nimport { version } from '../../../package.json'\nimport { agentDefaults } from '../../constants.ts'\n\nexport const command = defineCommand({\n name: 'start',\n description:\n 'Start the Kubb Agent HTTP server. Exposes a REST API that accepts a kubb.config.ts patch and returns generated code as a stream. Use --allow-write to also write files to disk.',\n examples: ['kubb agent start', 'kubb agent start --port 4000', 'kubb agent start --allow-write', 'kubb agent start --config ./kubb.config.ts --allow-all'],\n options: {\n config: {\n type: 'string',\n description: 'Path to the Kubb config file',\n short: 'c',\n },\n port: {\n type: 'string',\n description: 'Port the HTTP server listens on',\n short: 'p',\n default: agentDefaults.port,\n },\n host: {\n type: 'string',\n description: 'Hostname the HTTP server binds to',\n default: agentDefaults.host,\n },\n 'allow-write': {\n type: 'boolean',\n description: 'Write generated files to the filesystem. When omitted, output is streamed only and no files are written.',\n default: false,\n },\n 'allow-all': {\n type: 'boolean',\n description: 'Grant all permissions (implies --allow-write).',\n default: false,\n },\n },\n async run({ values }) {\n const { run } = await import('../../runners/agent/run.ts')\n\n await run({\n port: values.port !== undefined ? values.port : undefined,\n host: values.host,\n configPath: values.config,\n allowWrite: values['allow-write'],\n allowAll: values['allow-all'],\n version,\n })\n },\n})\n","import { defineCommand } from '@internals/utils'\nimport { command as startCommand } from './agent/start.ts'\n\nexport const command = defineCommand({\n name: 'agent',\n description:\n 'Manage the Kubb Agent — an HTTP server that lets AI agents trigger code generation programmatically via a REST API. Useful when an AI workflow needs to generate code without direct CLI access.',\n examples: ['kubb agent start', 'kubb agent start --port 4000 --allow-write', 'kubb agent start --config ./kubb.config.ts --allow-all'],\n subCommands: [startCommand],\n})\n"],"mappings":";;;;;;ACGA,MAAa,UAAU,cAAc;CACnC,MAAM;CACN,aACE;CACF,UAAU;EAAC;EAAoB;EAA8C;EAAyD;CACtI,aAAa,CDJQ,cAAc;EACnC,MAAM;EACN,aACE;EACF,UAAU;GAAC;GAAoB;GAAgC;GAAkC;GAAyD;EAC1J,SAAS;GACP,QAAQ;IACN,MAAM;IACN,aAAa;IACb,OAAO;IACR;GACD,MAAM;IACJ,MAAM;IACN,aAAa;IACb,OAAO;IACP,SAAS,cAAc;IACxB;GACD,MAAM;IACJ,MAAM;IACN,aAAa;IACb,SAAS,cAAc;IACxB;GACD,eAAe;IACb,MAAM;IACN,aAAa;IACb,SAAS;IACV;GACD,aAAa;IACX,MAAM;IACN,aAAa;IACb,SAAS;IACV;GACF;EACD,MAAM,IAAI,EAAE,UAAU;GACpB,MAAM,EAAE,QAAQ,MAAM,OAAO;GAE7B,MAAM,IAAI;IACR,MAAM,OAAO,SAAS,KAAA,IAAY,OAAO,OAAO,KAAA;IAChD,MAAM,OAAO;IACb,YAAY,OAAO;IACnB,YAAY,OAAO;IACnB,UAAU,OAAO;IACjB;IACD,CAAC;;EAEL,CCzCeC,CAAa;CAC5B,CAAC"}
@@ -1,70 +0,0 @@
1
- require("./chunk-ByKO4r7w.cjs");
2
- const require_define = require("./define-Bdn8j5VM.cjs");
3
- const require_package = require("./package-DrUndPET.cjs");
4
- const require_constants = require("./constants-BINTA5VZ.cjs");
5
- //#region src/commands/agent/start.ts
6
- const command$1 = require_define.defineCommand({
7
- name: "start",
8
- description: "Start the Kubb Agent HTTP server. Exposes a REST API that accepts a kubb.config.ts patch and returns generated code as a stream. Use --allow-write to also write files to disk.",
9
- examples: [
10
- "kubb agent start",
11
- "kubb agent start --port 4000",
12
- "kubb agent start --allow-write",
13
- "kubb agent start --config ./kubb.config.ts --allow-all"
14
- ],
15
- options: {
16
- config: {
17
- type: "string",
18
- description: "Path to the Kubb config file",
19
- short: "c"
20
- },
21
- port: {
22
- type: "string",
23
- description: "Port the HTTP server listens on",
24
- short: "p",
25
- default: require_constants.agentDefaults.port
26
- },
27
- host: {
28
- type: "string",
29
- description: "Hostname the HTTP server binds to",
30
- default: require_constants.agentDefaults.host
31
- },
32
- "allow-write": {
33
- type: "boolean",
34
- description: "Write generated files to the filesystem. When omitted, output is streamed only and no files are written.",
35
- default: false
36
- },
37
- "allow-all": {
38
- type: "boolean",
39
- description: "Grant all permissions (implies --allow-write).",
40
- default: false
41
- }
42
- },
43
- async run({ values }) {
44
- const { run } = await Promise.resolve().then(() => require("./run-DwdAwnLG.cjs"));
45
- await run({
46
- port: values.port !== void 0 ? values.port : void 0,
47
- host: values.host,
48
- configPath: values.config,
49
- allowWrite: values["allow-write"],
50
- allowAll: values["allow-all"],
51
- version: require_package.version
52
- });
53
- }
54
- });
55
- //#endregion
56
- //#region src/commands/agent.ts
57
- const command = require_define.defineCommand({
58
- name: "agent",
59
- description: "Manage the Kubb Agent — an HTTP server that lets AI agents trigger code generation programmatically via a REST API. Useful when an AI workflow needs to generate code without direct CLI access.",
60
- examples: [
61
- "kubb agent start",
62
- "kubb agent start --port 4000 --allow-write",
63
- "kubb agent start --config ./kubb.config.ts --allow-all"
64
- ],
65
- subCommands: [command$1]
66
- });
67
- //#endregion
68
- exports.command = command;
69
-
70
- //# sourceMappingURL=agent-Fm9_8BBH.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-Fm9_8BBH.cjs","names":["command","defineCommand","agentDefaults","defineCommand","startCommand"],"sources":["../src/commands/agent/start.ts","../src/commands/agent.ts"],"sourcesContent":["import { defineCommand } from '@internals/utils'\nimport { version } from '../../../package.json'\nimport { agentDefaults } from '../../constants.ts'\n\nexport const command = defineCommand({\n name: 'start',\n description:\n 'Start the Kubb Agent HTTP server. Exposes a REST API that accepts a kubb.config.ts patch and returns generated code as a stream. Use --allow-write to also write files to disk.',\n examples: ['kubb agent start', 'kubb agent start --port 4000', 'kubb agent start --allow-write', 'kubb agent start --config ./kubb.config.ts --allow-all'],\n options: {\n config: {\n type: 'string',\n description: 'Path to the Kubb config file',\n short: 'c',\n },\n port: {\n type: 'string',\n description: 'Port the HTTP server listens on',\n short: 'p',\n default: agentDefaults.port,\n },\n host: {\n type: 'string',\n description: 'Hostname the HTTP server binds to',\n default: agentDefaults.host,\n },\n 'allow-write': {\n type: 'boolean',\n description: 'Write generated files to the filesystem. When omitted, output is streamed only and no files are written.',\n default: false,\n },\n 'allow-all': {\n type: 'boolean',\n description: 'Grant all permissions (implies --allow-write).',\n default: false,\n },\n },\n async run({ values }) {\n const { run } = await import('../../runners/agent/run.ts')\n\n await run({\n port: values.port !== undefined ? values.port : undefined,\n host: values.host,\n configPath: values.config,\n allowWrite: values['allow-write'],\n allowAll: values['allow-all'],\n version,\n })\n },\n})\n","import { defineCommand } from '@internals/utils'\nimport { command as startCommand } from './agent/start.ts'\n\nexport const command = defineCommand({\n name: 'agent',\n description:\n 'Manage the Kubb Agent — an HTTP server that lets AI agents trigger code generation programmatically via a REST API. Useful when an AI workflow needs to generate code without direct CLI access.',\n examples: ['kubb agent start', 'kubb agent start --port 4000 --allow-write', 'kubb agent start --config ./kubb.config.ts --allow-all'],\n subCommands: [startCommand],\n})\n"],"mappings":";;;;;AAIA,MAAaA,YAAUC,eAAAA,cAAc;CACnC,MAAM;CACN,aACE;CACF,UAAU;EAAC;EAAoB;EAAgC;EAAkC;EAAyD;CAC1J,SAAS;EACP,QAAQ;GACN,MAAM;GACN,aAAa;GACb,OAAO;GACR;EACD,MAAM;GACJ,MAAM;GACN,aAAa;GACb,OAAO;GACP,SAASC,kBAAAA,cAAc;GACxB;EACD,MAAM;GACJ,MAAM;GACN,aAAa;GACb,SAASA,kBAAAA,cAAc;GACxB;EACD,eAAe;GACb,MAAM;GACN,aAAa;GACb,SAAS;GACV;EACD,aAAa;GACX,MAAM;GACN,aAAa;GACb,SAAS;GACV;EACF;CACD,MAAM,IAAI,EAAE,UAAU;EACpB,MAAM,EAAE,QAAQ,MAAA,QAAA,SAAA,CAAA,WAAA,QAAM,qBAAA,CAAA;EAEtB,MAAM,IAAI;GACR,MAAM,OAAO,SAAS,KAAA,IAAY,OAAO,OAAO,KAAA;GAChD,MAAM,OAAO;GACb,YAAY,OAAO;GACnB,YAAY,OAAO;GACnB,UAAU,OAAO;GACjB,SAAA,gBAAA;GACD,CAAC;;CAEL,CAAC;;;AC9CF,MAAa,UAAUC,eAAAA,cAAc;CACnC,MAAM;CACN,aACE;CACF,UAAU;EAAC;EAAoB;EAA8C;EAAyD;CACtI,aAAa,CAACC,UAAa;CAC5B,CAAC"}
@@ -1,42 +0,0 @@
1
- import { t as KUBB_CONFIG_FILENAME } from "./constants-DSJ-Xrbv.js";
2
- //#region src/constants.ts
3
- /**
4
- * NPM registry endpoint used to check for @kubb/cli updates.
5
- */
6
- const KUBB_NPM_PACKAGE_URL = "https://registry.npmjs.org/@kubb/cli/latest";
7
- /**
8
- * OpenTelemetry ingestion endpoint for anonymous usage telemetry.
9
- */
10
- const OTLP_ENDPOINT = "https://otlp.kubb.dev";
11
- /**
12
- * Horizontal rule rendered above/below the plain-logger generation summary.
13
- */
14
- const SUMMARY_SEPARATOR = "─".repeat(27);
15
- /**
16
- * Glob pattern for paths the file watcher ignores.
17
- */
18
- const WATCHER_IGNORED_PATHS = "**/{.git,node_modules}/**";
19
- /**
20
- * Flags that short-circuit execution (help/version) — no telemetry notice is shown.
21
- */
22
- const QUIET_FLAGS = new Set([
23
- "--help",
24
- "-h",
25
- "--version",
26
- "-v"
27
- ]);
28
- const agentDefaults = {
29
- port: "3000",
30
- host: "localhost",
31
- configFile: KUBB_CONFIG_FILENAME,
32
- retryTimeout: "30000",
33
- studioUrl: "https://kubb.studio",
34
- /**
35
- * Relative path from the @kubb/agent package root to the server entry.
36
- */
37
- serverEntryPath: ".output/server/index.mjs"
38
- };
39
- //#endregion
40
- export { WATCHER_IGNORED_PATHS as a, SUMMARY_SEPARATOR as i, OTLP_ENDPOINT as n, agentDefaults as o, QUIET_FLAGS as r, KUBB_NPM_PACKAGE_URL as t };
41
-
42
- //# sourceMappingURL=constants-B2JTeRBb.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants-B2JTeRBb.js","names":[],"sources":["../src/constants.ts"],"sourcesContent":["import { KUBB_CONFIG_FILENAME } from '@internals/shared'\n\n/**\n * NPM registry endpoint used to check for @kubb/cli updates.\n */\nexport const KUBB_NPM_PACKAGE_URL = 'https://registry.npmjs.org/@kubb/cli/latest' as const\n\n/**\n * OpenTelemetry ingestion endpoint for anonymous usage telemetry.\n */\nexport const OTLP_ENDPOINT = 'https://otlp.kubb.dev' as const\n\n/**\n * Horizontal rule rendered above/below the plain-logger generation summary.\n */\nexport const SUMMARY_SEPARATOR = '─'.repeat(27)\n\n/**\n * Maximum number of █ characters in a plugin timing bar.\n */\nexport const SUMMARY_MAX_BAR_LENGTH = 10 as const\n\n/**\n * Divides elapsed milliseconds into bar-length units (1 block per 100 ms).\n */\nexport const SUMMARY_TIME_SCALE_DIVISOR = 100 as const\n\n/**\n * Glob pattern for paths the file watcher ignores.\n */\nexport const WATCHER_IGNORED_PATHS = '**/{.git,node_modules}/**' as const\n\n/**\n * Flags that short-circuit execution (help/version) — no telemetry notice is shown.\n */\nexport const QUIET_FLAGS = new Set(['--help', '-h', '--version', '-v'] as const)\n\nexport const agentDefaults = {\n port: '3000',\n host: 'localhost',\n configFile: KUBB_CONFIG_FILENAME,\n retryTimeout: '30000',\n studioUrl: 'https://kubb.studio',\n /**\n * Relative path from the @kubb/agent package root to the server entry.\n */\n serverEntryPath: '.output/server/index.mjs',\n} as const\n"],"mappings":";;;;;AAKA,MAAa,uBAAuB;;;;AAKpC,MAAa,gBAAgB;;;;AAK7B,MAAa,oBAAoB,IAAI,OAAO,GAAG;;;;AAe/C,MAAa,wBAAwB;;;;AAKrC,MAAa,cAAc,IAAI,IAAI;CAAC;CAAU;CAAM;CAAa;CAAK,CAAU;AAEhF,MAAa,gBAAgB;CAC3B,MAAM;CACN,MAAM;CACN,YAAY;CACZ,cAAc;CACd,WAAW;;;;CAIX,iBAAiB;CAClB"}
@@ -1,77 +0,0 @@
1
- const require_constants = require("./constants-BYGmiFs0.cjs");
2
- //#region src/constants.ts
3
- /**
4
- * NPM registry endpoint used to check for @kubb/cli updates.
5
- */
6
- const KUBB_NPM_PACKAGE_URL = "https://registry.npmjs.org/@kubb/cli/latest";
7
- /**
8
- * OpenTelemetry ingestion endpoint for anonymous usage telemetry.
9
- */
10
- const OTLP_ENDPOINT = "https://otlp.kubb.dev";
11
- /**
12
- * Horizontal rule rendered above/below the plain-logger generation summary.
13
- */
14
- const SUMMARY_SEPARATOR = "─".repeat(27);
15
- /**
16
- * Glob pattern for paths the file watcher ignores.
17
- */
18
- const WATCHER_IGNORED_PATHS = "**/{.git,node_modules}/**";
19
- /**
20
- * Flags that short-circuit execution (help/version) — no telemetry notice is shown.
21
- */
22
- const QUIET_FLAGS = new Set([
23
- "--help",
24
- "-h",
25
- "--version",
26
- "-v"
27
- ]);
28
- const agentDefaults = {
29
- port: "3000",
30
- host: "localhost",
31
- configFile: require_constants.KUBB_CONFIG_FILENAME,
32
- retryTimeout: "30000",
33
- studioUrl: "https://kubb.studio",
34
- /**
35
- * Relative path from the @kubb/agent package root to the server entry.
36
- */
37
- serverEntryPath: ".output/server/index.mjs"
38
- };
39
- //#endregion
40
- Object.defineProperty(exports, "KUBB_NPM_PACKAGE_URL", {
41
- enumerable: true,
42
- get: function() {
43
- return KUBB_NPM_PACKAGE_URL;
44
- }
45
- });
46
- Object.defineProperty(exports, "OTLP_ENDPOINT", {
47
- enumerable: true,
48
- get: function() {
49
- return OTLP_ENDPOINT;
50
- }
51
- });
52
- Object.defineProperty(exports, "QUIET_FLAGS", {
53
- enumerable: true,
54
- get: function() {
55
- return QUIET_FLAGS;
56
- }
57
- });
58
- Object.defineProperty(exports, "SUMMARY_SEPARATOR", {
59
- enumerable: true,
60
- get: function() {
61
- return SUMMARY_SEPARATOR;
62
- }
63
- });
64
- Object.defineProperty(exports, "WATCHER_IGNORED_PATHS", {
65
- enumerable: true,
66
- get: function() {
67
- return WATCHER_IGNORED_PATHS;
68
- }
69
- });
70
- Object.defineProperty(exports, "agentDefaults", {
71
- enumerable: true,
72
- get: function() {
73
- return agentDefaults;
74
- }
75
- });
76
-
77
- //# sourceMappingURL=constants-BINTA5VZ.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants-BINTA5VZ.cjs","names":["KUBB_CONFIG_FILENAME"],"sources":["../src/constants.ts"],"sourcesContent":["import { KUBB_CONFIG_FILENAME } from '@internals/shared'\n\n/**\n * NPM registry endpoint used to check for @kubb/cli updates.\n */\nexport const KUBB_NPM_PACKAGE_URL = 'https://registry.npmjs.org/@kubb/cli/latest' as const\n\n/**\n * OpenTelemetry ingestion endpoint for anonymous usage telemetry.\n */\nexport const OTLP_ENDPOINT = 'https://otlp.kubb.dev' as const\n\n/**\n * Horizontal rule rendered above/below the plain-logger generation summary.\n */\nexport const SUMMARY_SEPARATOR = '─'.repeat(27)\n\n/**\n * Maximum number of █ characters in a plugin timing bar.\n */\nexport const SUMMARY_MAX_BAR_LENGTH = 10 as const\n\n/**\n * Divides elapsed milliseconds into bar-length units (1 block per 100 ms).\n */\nexport const SUMMARY_TIME_SCALE_DIVISOR = 100 as const\n\n/**\n * Glob pattern for paths the file watcher ignores.\n */\nexport const WATCHER_IGNORED_PATHS = '**/{.git,node_modules}/**' as const\n\n/**\n * Flags that short-circuit execution (help/version) — no telemetry notice is shown.\n */\nexport const QUIET_FLAGS = new Set(['--help', '-h', '--version', '-v'] as const)\n\nexport const agentDefaults = {\n port: '3000',\n host: 'localhost',\n configFile: KUBB_CONFIG_FILENAME,\n retryTimeout: '30000',\n studioUrl: 'https://kubb.studio',\n /**\n * Relative path from the @kubb/agent package root to the server entry.\n */\n serverEntryPath: '.output/server/index.mjs',\n} as const\n"],"mappings":";;;;;AAKA,MAAa,uBAAuB;;;;AAKpC,MAAa,gBAAgB;;;;AAK7B,MAAa,oBAAoB,IAAI,OAAO,GAAG;;;;AAe/C,MAAa,wBAAwB;;;;AAKrC,MAAa,cAAc,IAAI,IAAI;CAAC;CAAU;CAAM;CAAa;CAAK,CAAU;AAEhF,MAAa,gBAAgB;CAC3B,MAAM;CACN,MAAM;CACN,YAAYA,kBAAAA;CACZ,cAAc;CACd,WAAW;;;;CAIX,iBAAiB;CAClB"}
@@ -1,139 +0,0 @@
1
- //#region ../../internals/shared/src/constants.ts
2
- const KUBB_CONFIG_FILENAME = "kubb.config.ts";
3
- const initDefaults = {
4
- inputPath: "./openapi.yaml",
5
- outputPath: "./src/gen",
6
- plugins: ["plugin-ts"]
7
- };
8
- const availablePlugins = [
9
- {
10
- value: "plugin-ts",
11
- label: "TypeScript",
12
- hint: "Recommended",
13
- packageName: "@kubb/plugin-ts",
14
- importName: "pluginTs",
15
- category: "types"
16
- },
17
- {
18
- value: "plugin-client",
19
- label: "Client (Fetch/Axios)",
20
- packageName: "@kubb/plugin-client",
21
- importName: "pluginClient",
22
- category: "client"
23
- },
24
- {
25
- value: "plugin-react-query",
26
- label: "React Query / TanStack Query",
27
- packageName: "@kubb/plugin-react-query",
28
- importName: "pluginReactQuery",
29
- category: "framework"
30
- },
31
- {
32
- value: "plugin-vue-query",
33
- label: "Vue Query",
34
- packageName: "@kubb/plugin-vue-query",
35
- importName: "pluginVueQuery",
36
- category: "framework"
37
- },
38
- {
39
- value: "plugin-zod",
40
- label: "Zod Schemas",
41
- packageName: "@kubb/plugin-zod",
42
- importName: "pluginZod",
43
- category: "validation"
44
- },
45
- {
46
- value: "plugin-faker",
47
- label: "Faker.js Mocks",
48
- packageName: "@kubb/plugin-faker",
49
- importName: "pluginFaker",
50
- category: "mocks"
51
- },
52
- {
53
- value: "plugin-msw",
54
- label: "MSW Handlers",
55
- packageName: "@kubb/plugin-msw",
56
- importName: "pluginMsw",
57
- category: "mocks"
58
- },
59
- {
60
- value: "plugin-cypress",
61
- label: "Cypress Tests",
62
- packageName: "@kubb/plugin-cypress",
63
- importName: "pluginCypress",
64
- category: "testing"
65
- },
66
- {
67
- value: "plugin-mcp",
68
- label: "MCP Server (AI / Model Context Protocol)",
69
- packageName: "@kubb/plugin-mcp",
70
- importName: "pluginMcp",
71
- category: "ai"
72
- },
73
- {
74
- value: "plugin-redoc",
75
- label: "ReDoc Documentation",
76
- packageName: "@kubb/plugin-redoc",
77
- importName: "pluginRedoc",
78
- category: "documentation"
79
- }
80
- ];
81
- const pluginDefaultConfigs = {
82
- "plugin-ts": `pluginTs({
83
- output: { path: 'models' },
84
- })`,
85
- "plugin-client": `pluginClient({
86
- output: { path: 'clients' },
87
- })`,
88
- "plugin-react-query": `pluginReactQuery({
89
- output: { path: 'hooks' },
90
- })`,
91
- "plugin-vue-query": `pluginVueQuery({
92
- output: { path: 'hooks' },
93
- })`,
94
- "plugin-zod": `pluginZod({
95
- output: { path: 'zod' },
96
- })`,
97
- "plugin-faker": `pluginFaker({
98
- output: { path: 'mocks' },
99
- })`,
100
- "plugin-msw": `pluginMsw({
101
- output: { path: 'msw' },
102
- })`,
103
- "plugin-cypress": `pluginCypress({
104
- output: { path: 'cypress' },
105
- })`,
106
- "plugin-mcp": `pluginMcp({
107
- output: { path: 'mcp' },
108
- })`,
109
- "plugin-redoc": `pluginRedoc({
110
- output: { path: 'redoc' },
111
- })`
112
- };
113
- //#endregion
114
- Object.defineProperty(exports, "KUBB_CONFIG_FILENAME", {
115
- enumerable: true,
116
- get: function() {
117
- return KUBB_CONFIG_FILENAME;
118
- }
119
- });
120
- Object.defineProperty(exports, "availablePlugins", {
121
- enumerable: true,
122
- get: function() {
123
- return availablePlugins;
124
- }
125
- });
126
- Object.defineProperty(exports, "initDefaults", {
127
- enumerable: true,
128
- get: function() {
129
- return initDefaults;
130
- }
131
- });
132
- Object.defineProperty(exports, "pluginDefaultConfigs", {
133
- enumerable: true,
134
- get: function() {
135
- return pluginDefaultConfigs;
136
- }
137
- });
138
-
139
- //# sourceMappingURL=constants-BYGmiFs0.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants-BYGmiFs0.cjs","names":[],"sources":["../../../internals/shared/src/constants.ts"],"sourcesContent":["import type { PluginOption } from './types.ts'\n\nexport const KUBB_CONFIG_FILENAME = 'kubb.config.ts' as const\n\nexport const initDefaults = {\n inputPath: './openapi.yaml',\n outputPath: './src/gen',\n plugins: ['plugin-ts'],\n} as const\n\nexport const availablePlugins: PluginOption[] = [\n {\n value: 'plugin-ts',\n label: 'TypeScript',\n hint: 'Recommended',\n packageName: '@kubb/plugin-ts',\n importName: 'pluginTs',\n category: 'types',\n },\n {\n value: 'plugin-client',\n label: 'Client (Fetch/Axios)',\n packageName: '@kubb/plugin-client',\n importName: 'pluginClient',\n category: 'client',\n },\n {\n value: 'plugin-react-query',\n label: 'React Query / TanStack Query',\n packageName: '@kubb/plugin-react-query',\n importName: 'pluginReactQuery',\n category: 'framework',\n },\n {\n value: 'plugin-vue-query',\n label: 'Vue Query',\n packageName: '@kubb/plugin-vue-query',\n importName: 'pluginVueQuery',\n category: 'framework',\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: 'mocks',\n },\n {\n value: 'plugin-msw',\n label: 'MSW Handlers',\n packageName: '@kubb/plugin-msw',\n importName: 'pluginMsw',\n category: 'mocks',\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-mcp',\n label: 'MCP Server (AI / Model Context Protocol)',\n packageName: '@kubb/plugin-mcp',\n importName: 'pluginMcp',\n category: 'ai',\n },\n {\n value: 'plugin-redoc',\n label: 'ReDoc Documentation',\n packageName: '@kubb/plugin-redoc',\n importName: 'pluginRedoc',\n category: 'documentation',\n },\n]\n\nexport const pluginDefaultConfigs = {\n 'plugin-ts': `pluginTs({\n output: { path: 'models' },\n })`,\n 'plugin-client': `pluginClient({\n output: { path: 'clients' },\n })`,\n 'plugin-react-query': `pluginReactQuery({\n output: { path: 'hooks' },\n })`,\n 'plugin-vue-query': `pluginVueQuery({\n output: { path: 'hooks' },\n })`,\n 'plugin-zod': `pluginZod({\n output: { path: 'zod' },\n })`,\n 'plugin-faker': `pluginFaker({\n output: { path: 'mocks' },\n })`,\n 'plugin-msw': `pluginMsw({\n output: { path: 'msw' },\n })`,\n 'plugin-cypress': `pluginCypress({\n output: { path: 'cypress' },\n })`,\n 'plugin-mcp': `pluginMcp({\n output: { path: 'mcp' },\n })`,\n 'plugin-redoc': `pluginRedoc({\n output: { path: 'redoc' },\n })`,\n} as const satisfies Record<string, string>\n"],"mappings":";AAEA,MAAa,uBAAuB;AAEpC,MAAa,eAAe;CAC1B,WAAW;CACX,YAAY;CACZ,SAAS,CAAC,YAAY;CACvB;AAED,MAAa,mBAAmC;CAC9C;EACE,OAAO;EACP,OAAO;EACP,MAAM;EACN,aAAa;EACb,YAAY;EACZ,UAAU;EACX;CACD;EACE,OAAO;EACP,OAAO;EACP,aAAa;EACb,YAAY;EACZ,UAAU;EACX;CACD;EACE,OAAO;EACP,OAAO;EACP,aAAa;EACb,YAAY;EACZ,UAAU;EACX;CACD;EACE,OAAO;EACP,OAAO;EACP,aAAa;EACb,YAAY;EACZ,UAAU;EACX;CACD;EACE,OAAO;EACP,OAAO;EACP,aAAa;EACb,YAAY;EACZ,UAAU;EACX;CACD;EACE,OAAO;EACP,OAAO;EACP,aAAa;EACb,YAAY;EACZ,UAAU;EACX;CACD;EACE,OAAO;EACP,OAAO;EACP,aAAa;EACb,YAAY;EACZ,UAAU;EACX;CACD;EACE,OAAO;EACP,OAAO;EACP,aAAa;EACb,YAAY;EACZ,UAAU;EACX;CACD;EACE,OAAO;EACP,OAAO;EACP,aAAa;EACb,YAAY;EACZ,UAAU;EACX;CACD;EACE,OAAO;EACP,OAAO;EACP,aAAa;EACb,YAAY;EACZ,UAAU;EACX;CACF;AAED,MAAa,uBAAuB;CAClC,aAAa;;;CAGb,iBAAiB;;;CAGjB,sBAAsB;;;CAGtB,oBAAoB;;;CAGpB,cAAc;;;CAGd,gBAAgB;;;CAGhB,cAAc;;;CAGd,kBAAkB;;;CAGlB,cAAc;;;CAGd,gBAAgB;;;CAGjB"}