@politty/zod 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -138,19 +138,21 @@ $ my-cli World -g "Hi" -l
138
138
  HI, WORLD!
139
139
 
140
140
  $ my-cli --help
141
- Usage: greet <name> [options]
141
+ greet
142
142
 
143
143
  A CLI tool that displays greetings
144
144
 
145
+ Usage: greet [options] <name>
146
+
145
147
  Arguments:
146
- name Name of the person to greet
148
+ <name> Name of the person to greet
147
149
 
148
150
  Options:
149
- -g, --greeting <value> Greeting phrase (default: "Hello")
150
- -l, --loud Output in uppercase
151
- -h, --help Show help
152
- -H, --help-all Show help with all subcommand options
153
- --help-json Show help as JSON
151
+ -h, --help Show help
152
+ -H, --help-all Show help with all subcommand options
153
+ --help-json Show help as JSON
154
+ -g, --greeting <GREETING> Greeting phrase (default: "Hello")
155
+ -l, --loud Output in uppercase (default: false)
154
156
  ```
155
157
 
156
158
  Every command also accepts `--help-json`, which prints the same information as a single JSON object instead of formatted text — useful for tools that consume a CLI's help programmatically (e.g. generating docs or another UI) rather than parsing `--help`'s output:
@@ -1,2 +1,2 @@
1
- import{a as e,i as t}from"./schema-extractor-QpSHJvwI.js";import{n}from"./command-tLHaJHe6.js";import{n as r}from"./runner-bjKUtqk1.js";import{chmodSync as i,existsSync as a,mkdirSync as o,readFileSync as s,writeFileSync as c}from"node:fs";import{basename as l,dirname as u,extname as d,isAbsolute as f,join as p,relative as m,resolve as h}from"node:path";import{fileURLToPath as g}from"node:url";const _=`Generated by politty: compile-cache bin shim`,v=[`./cli.js`,`./cli.mjs`,`./index.js`,`./index.mjs`];function y(e){let t=h(e);for(;;){let e=p(t,`package.json`);if(a(e))return{pkg:JSON.parse(s(e,`utf8`)),dir:t};let n=u(t);if(n===t)return;t=n}}function b(e){if(!e)return[];if(typeof e.bin==`string`&&e.bin){let t=x(e);return t?[[t,e.bin]]:[]}return typeof e.bin==`object`&&e.bin!==null?Object.entries(e.bin).filter(e=>typeof e[1]==`string`&&e[1]!==``):[]}function x(e){if(e){if(typeof e.bin==`object`&&e.bin!==null){let[t]=Object.keys(e.bin);if(t)return t}if(typeof e.name==`string`&&e.name){let t=e.name;return t.startsWith(`@`)?t.split(`/`)[1]??t:t}}}function S(e){let t=u(e),n=l(e);for(let e of v)if(l(e)!==n&&a(p(t,e)))return e}function C(e,t,n){return[`#!/usr/bin/env node`,``,`// ${_}.`,`// Enables the Node.js on-disk compile cache (V8 code cache) before the`,`// CLI module graph is compiled, so warm starts skip recompilation`,`// (Node >= 22.8.0; silent no-op otherwise).`,`try {`,` const { enableCompileCache } = await import(${JSON.stringify(n)});`,` enableCompileCache(${JSON.stringify(e)});`,`} catch {`,` // ${n} is not resolvable from here (e.g. a fully`,` // bundled CLI) — start without the compile cache rather than failing`,` // the CLI.`,`}`,`await import(${JSON.stringify(t)});`,``].join(`
1
+ import{a as e,i as t}from"./schema-extractor-QpSHJvwI.js";import{n}from"./command-tLHaJHe6.js";import{n as r}from"./runner-DtJbfhOs.js";import{chmodSync as i,existsSync as a,mkdirSync as o,readFileSync as s,writeFileSync as c}from"node:fs";import{basename as l,dirname as u,extname as d,isAbsolute as f,join as p,relative as m,resolve as h}from"node:path";import{fileURLToPath as g}from"node:url";const _=`Generated by politty: compile-cache bin shim`,v=[`./cli.js`,`./cli.mjs`,`./index.js`,`./index.mjs`];function y(e){let t=h(e);for(;;){let e=p(t,`package.json`);if(a(e))return{pkg:JSON.parse(s(e,`utf8`)),dir:t};let n=u(t);if(n===t)return;t=n}}function b(e){if(!e)return[];if(typeof e.bin==`string`&&e.bin){let t=x(e);return t?[[t,e.bin]]:[]}return typeof e.bin==`object`&&e.bin!==null?Object.entries(e.bin).filter(e=>typeof e[1]==`string`&&e[1]!==``):[]}function x(e){if(e){if(typeof e.bin==`object`&&e.bin!==null){let[t]=Object.keys(e.bin);if(t)return t}if(typeof e.name==`string`&&e.name){let t=e.name;return t.startsWith(`@`)?t.split(`/`)[1]??t:t}}}function S(e){let t=u(e),n=l(e);for(let e of v)if(l(e)!==n&&a(p(t,e)))return e}function C(e,t,n){return[`#!/usr/bin/env node`,``,`// ${_}.`,`// Enables the Node.js on-disk compile cache (V8 code cache) before the`,`// CLI module graph is compiled, so warm starts skip recompilation`,`// (Node >= 22.8.0; silent no-op otherwise).`,`try {`,` const { enableCompileCache } = await import(${JSON.stringify(n)});`,` enableCompileCache(${JSON.stringify(e)});`,`} catch {`,` // ${n} is not resolvable from here (e.g. a fully`,` // bundled CLI) — start without the compile cache rather than failing`,` // the CLI.`,`}`,`await import(${JSON.stringify(t)});`,``].join(`
2
2
  `)}function w(e){return e===void 0?[]:Array.isArray(e)?e:[e]}function T(e){return(t={})=>E(`${e}/compile-cache`,t)}function E(e,t){let n=t.cwd??process.cwd(),r=y(n),l=r?.pkg,p=w(t.entry),m=w(t.out),T=b(l),E;if(m.length>0){if(p.length>0&&p.length!==m.length)throw Error(`--entry count (${p.length}) does not match --out count (${m.length}); pass one --out per --entry or omit --out entirely.`);E=m.map(e=>f(e)?e:h(n,e))}else{if(T.length===0||r===void 0)throw Error(`Cannot derive the output path: no bin entry in package.json. Pass --out explicitly.`);if(p.length>0&&p.length!==T.length)throw Error(`--entry count (${p.length}) does not match the package's bin entries (${T.length}); pass one --entry per bin (in declaration order) or matching --out paths.`);E=T.map(([,e])=>h(r.dir,e))}if(new Set(E).size!==E.length)throw Error(`Duplicate output paths; each shim needs a distinct output file. Check the --out values (or the bin paths in package.json when --out is omitted).`);let O=new Map;if(r)for(let[e,t]of T)O.set(h(r.dir,t),e);let k=[],A=t.compileCacheSpecifier??e;if(/[\r\n\u2028\u2029]/.test(A))throw Error(`Invalid compile-cache specifier ${JSON.stringify(A)}: a module specifier cannot contain a line terminator.`);let j=E.map((e,r)=>{let i=O.get(e),o=t.program??i??x(l);if(!o)throw Error(`Cannot derive a program name: no bin or name in package.json. Pass --program explicitly.`);if(t.program===void 0&&i===void 0&&m.length>0&&k.push(`Warning: ${D(e,n)} does not match any bin path in package.json, so its cache directory uses the program name ${JSON.stringify(o)}. Pass --program to override.`),e.endsWith(`.cjs`))throw Error(`The generated shim is an ES module and cannot be written to a .cjs file. Use a .mjs (or .js in a "type": "module" package) output path.`);if(d(e)===``)throw Error(`The generated shim is an ES module and cannot be written to an extensionless file (it would not load on every supported Node.js version). Use a .mjs (or .js in a "type": "module" package) output path.`);if(e.endsWith(`.js`)&&l?.type!==`module`)throw Error(l===void 0?`The generated shim is an ES module, and no package.json was found to confirm .js files are treated as ESM. Write it to a .mjs file instead (e.g. --out dist/bin.mjs).`:`The generated shim is an ES module, but the package is not "type": "module". Write it to a .mjs file instead (e.g. --out dist/bin.mjs).`);let c=p[r]??S(e);if(c===void 0)throw Error(`Cannot derive an entry: none of ${v.join(`, `)} exist next to ${e}. Pass --entry explicitly.`);if(!c.startsWith(`./`)&&!c.startsWith(`../`)&&!c.startsWith(`file:`))throw Error(`Invalid entry ${c}: pass a specifier relative to the shim file ("./..." or "../...") or a file: URL.`);let f;if(c.startsWith(`file:`))try{f=g(c)}catch{f=void 0}else f=h(u(e),c);if(f===e)throw Error(`The shim at ${e} would import itself (entry ${c}). Point bin at a separate shim path (e.g. dist/bin.js) or pass a different --entry.`);if(a(e)&&!s(e,`utf8`).includes(_))throw Error(`Refusing to overwrite ${e}: it exists and was not generated by politty. If bin currently points at your real CLI entry, point it at a separate shim path (e.g. dist/bin.js) or pass --out explicitly.`);return{outputPath:e,program:o,entry:c,compileCacheSpecifier:A}});for(let e of k)console.warn(e);for(let{outputPath:e,program:t,entry:n}of j)o(u(e),{recursive:!0}),c(e,C(t,n,A)),i(e,493);return j}function D(e,t){let n=m(t,e);return n&&!n.startsWith(`..`)?n:e}const O=t({bin:e.string({description:`CLI binary or built JS entry file to invoke`,placeholder:`PATH`}),program:e.string({description:`Program name embedded in worker metadata`,placeholder:`NAME`}),shell:e.enum([`bash`,`zsh`,`fish`],{description:`Shell worker to generate`,placeholder:`SHELL`}),out:e.optionalString({description:`Output worker path (defaults to dist/completion/<shell>-worker.<ext>)`,placeholder:`PATH`}),verify:e.boolean({description:`Verify __completion-worker-path resolves to the generated worker`})}),k=n({name:`generate-worker`,description:`Generate and verify a bundled shell completion worker`,args:O,async run(e){let{generateBundledCompletionWorker:t}=await import(`./completion-CDwNvtfE.js`);await t({bin:e.bin,programName:e.program,shell:e.shell,...e.out!==void 0&&{outputPath:e.out},verify:e.verify})}}),A=t({entry:e.optionalStringArray({description:`Module specifier the shim imports, relative to the shim file; repeatable, one per bin/--out (defaults to ./cli.js, ./cli.mjs, ./index.js, or ./index.mjs next to each shim)`,placeholder:`SPECIFIER`}),out:e.optionalStringArray({description:`Output path for the generated shim; repeatable, one per --entry (defaults to the bin paths in package.json)`,placeholder:`PATH`}),program:e.optionalString({description:`Program name for the cache directory, applied to all shims (defaults per shim to its bin name)`,placeholder:`NAME`}),compileCacheSpecifier:e.optionalString({description:`Module specifier the shim imports enableCompileCache from (defaults to the compile-cache subpath of the politty package running this command)`,placeholder:`SPECIFIER`})});function j(e){let t=T(e),i=n({name:`generate-shim`,description:`Generate a compile-cache bin shim that loads the real CLI via dynamic import`,args:A,run(e){let n=process.cwd(),r=t({...e.entry!==void 0&&{entry:e.entry},...e.out!==void 0&&{out:e.out},...e.program!==void 0&&{program:e.program},...e.compileCacheSpecifier!==void 0&&{compileCacheSpecifier:e.compileCacheSpecifier},cwd:n});for(let e of r)console.log(`Generated compile-cache shim: ${D(e.outputPath,n)} (program: ${e.program}, entry: ${e.entry}, compile-cache: ${e.compileCacheSpecifier})`)}}),a=n({name:`politty`,description:`politty development utilities`,subCommands:{"generate-shim":i,"generate-worker":k}});return r(a).catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)})}export{T as n,j as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./cli-main-DWQYfxFO.js";export{e as runPolittyCli};
@@ -1 +1 @@
1
- import"./register-D0mDOOyc.js";const{runPolittyCli:e}=await import(`./cli-main-DXoFbgu3.js`);await e(`@politty/zod`);export{};
1
+ import"./register-D0mDOOyc.js";const{runPolittyCli:e}=await import(`./cli-main-X_a3vjMI.js`);await e(`@politty/zod`);export{};
package/dist/cli.js CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- import{n as e}from"./compile-cache-6u9hgeWu.js";e(`politty`),await import(`./cli-run-HJaZHDXb.js`);export{};
2
+ import{n as e}from"./compile-cache-6u9hgeWu.js";e(`politty`),await import(`./cli-run-BfhO1D3b.js`);export{};
package/dist/docs.js CHANGED
@@ -18,7 +18,7 @@ import{o as e}from"./field-meta-D7G8a7IG.js";import"./register-D0mDOOyc.js";impo
18
18
  `}}const ve={command:e=>W(e),tableStyle:W({optionStyle:`table`}),listStyle:W({optionStyle:`list`})};function ye(e,t){let n=o.resolve(t);if(!a.existsSync(n))return{match:!1,fileExists:!1};let r=a.readFileSync(n,`utf-8`);return e===r?{match:!0,fileExists:!0}:{match:!1,diff:G(r,e),fileExists:!0}}function G(e,t){let n=e.split(`
19
19
  `),r=t.split(`
20
20
  `),i=[];i.push(`--- existing`),i.push(`+++ generated`),i.push(``);let a=Math.max(n.length,r.length),o=!1,s=0,c=[],l=()=>{c.length>0&&(i.push(`@@ -${s+1},${c.length} @@`),i.push(...c),c.length=0),o=!1};for(let e=0;e<a;e++){let t=n[e],i=r[e];if(t===i){if(o){c.push(` ${t??``}`);let e=c.findIndex((e,t)=>(e.startsWith(`-`)||e.startsWith(`+`))&&c.slice(t+1).every(e=>e.startsWith(` `)));e!==-1&&c.length-e>3&&l()}}else{if(!o){o=!0,s=e;let t=Math.max(0,e-3);for(let r=t;r<e;r++)c.push(` ${n[r]??``}`)}t!==void 0&&(i===void 0||t!==i)&&c.push(`-${t}`),i!==void 0&&(t===void 0||t!==i)&&c.push(`+${i}`)}}return l(),i.join(`
21
- `)}function K(e,t){let n=o.resolve(e),r=o.dirname(n);a.existsSync(r)||a.mkdirSync(r,{recursive:!0}),a.writeFileSync(n,t,`utf-8`)}function be(e){let t=o.resolve(e);return a.existsSync(t)?a.readFileSync(t,`utf-8`):null}function xe(e,t=a){let n=o.resolve(e);t.existsSync(n)&&t.unlinkSync(n)}async function Se(e,n,r=[]){let a=t(e),o=a?.fields.filter(e=>e.positional)??[],s=a?.fields.filter(e=>!e.positional)??[],c=[];if(e.subCommands)for(let[t,n]of Object.entries(e.subCommands)){let e=await i(n),a=[...r,t];c.push({name:t,description:e.description,aliases:e.aliases,fullPath:a})}return{name:e.name??``,description:e.description,aliases:e.aliases,fullCommandPath:r.length>0?`${n} ${r.join(` `)}`:n,commandPath:r.join(` `),depth:r.length+1,positionalArgs:o,options:s,subCommands:c,extracted:a,command:e,notes:e.notes,examples:e.examples}}async function Ce(e,t){let n=t??e.name??`command`,r=new Map;async function a(e,t){let o=await Se(e,n,t),s=t.join(` `);if(r.set(s,o),e.subCommands)for(let[n,r]of Object.entries(e.subCommands))await a(await i(r),[...t,n])}return await a(e,[]),r}async function we(e,t,n,r=[]){let i=[];t.mock&&await t.mock();try{for(let t of e){let e=await Te(t,n,r);i.push(e)}}finally{t.cleanup&&await t.cleanup()}return i}async function Te(e,t,n){let i=Ee(e.cmd),a=[...n,...i],o=r({passthrough:!1});o.start();let s=!0;try{let{runCommand:e}=await import(`./runner-FI1rpYp3.js`),n=await e(t,a);s=n.success,!n.success&&n.error&&console.error(n.error.message)}catch(e){s=!1,console.error(e instanceof Error?e.message:String(e))}finally{o.stop()}let c=o.getLogs(),l=c.entries.filter(e=>e.stream===`stdout`).map(e=>e.message).join(`
21
+ `)}function K(e,t){let n=o.resolve(e),r=o.dirname(n);a.existsSync(r)||a.mkdirSync(r,{recursive:!0}),a.writeFileSync(n,t,`utf-8`)}function be(e){let t=o.resolve(e);return a.existsSync(t)?a.readFileSync(t,`utf-8`):null}function xe(e,t=a){let n=o.resolve(e);t.existsSync(n)&&t.unlinkSync(n)}async function Se(e,n,r=[]){let a=t(e),o=a?.fields.filter(e=>e.positional)??[],s=a?.fields.filter(e=>!e.positional)??[],c=[];if(e.subCommands)for(let[t,n]of Object.entries(e.subCommands)){let e=await i(n),a=[...r,t];c.push({name:t,description:e.description,aliases:e.aliases,fullPath:a})}return{name:e.name??``,description:e.description,aliases:e.aliases,fullCommandPath:r.length>0?`${n} ${r.join(` `)}`:n,commandPath:r.join(` `),depth:r.length+1,positionalArgs:o,options:s,subCommands:c,extracted:a,command:e,notes:e.notes,examples:e.examples}}async function Ce(e,t){let n=t??e.name??`command`,r=new Map;async function a(e,t){let o=await Se(e,n,t),s=t.join(` `);if(r.set(s,o),e.subCommands)for(let[n,r]of Object.entries(e.subCommands))await a(await i(r),[...t,n])}return await a(e,[]),r}async function we(e,t,n,r=[]){let i=[];t.mock&&await t.mock();try{for(let t of e){let e=await Te(t,n,r);i.push(e)}}finally{t.cleanup&&await t.cleanup()}return i}async function Te(e,t,n){let i=Ee(e.cmd),a=[...n,...i],o=r({passthrough:!1});o.start();let s=!0;try{let{runCommand:e}=await import(`./runner-DPQ3GQA7.js`),n=await e(t,a);s=n.success,!n.success&&n.error&&console.error(n.error.message)}catch(e){s=!1,console.error(e instanceof Error?e.message:String(e))}finally{o.stop()}let c=o.getLogs(),l=c.entries.filter(e=>e.stream===`stdout`).map(e=>e.message).join(`
22
22
  `),u=c.entries.filter(e=>e.stream===`stderr`).map(e=>e.message).join(`
23
23
  `);return{cmd:e.cmd,desc:e.desc,expectedOutput:e.output,stdout:l,stderr:u,success:s}}function Ee(e){let t=[],n=``,r=!1,i=``;for(let a=0;a<e.length;a++){let o=e[a];(o===`"`||o===`'`)&&!r?(r=!0,i=o):o===i&&r?(r=!1,i=``):o===` `&&!r?n&&=(t.push(n),``):n+=o}return n&&t.push(n),t}function De(t){let n=e();return Object.entries(t).map(([e,t])=>n.resolveFieldMeta(e,t))}function Oe(e,t){let n=De(e).filter(e=>!e.positional);return n.length===0?``:C(p(n),t?.columns)}function ke(e){return e.replace(/\|/g,`\\|`).replace(/\n/g,` `)}function Ae(e){return e.replace(/\s+/g,`-`).toLowerCase()}function je(e){return e.subCommands.length===0}function Me(e,t){return e===t?!0:t===``?e!==``:e.startsWith(t+` `)}function Ne(e,t,n){let r=[];for(let i of e){let e=t.get(i);if(e){if(je(e))r.push(i);else for(let[e,a]of t)(i===``?e.length>0:e.startsWith(i+` `)||e===i)&&(je(a)||!n)&&r.push(e)}}return r}function Pe(e,t,n,r){let i=`#`.repeat(n),a=[];a.push(`${i} [${e.title}](${e.docPath})`),a.push(``),a.push(e.description),a.push(``);let o=e.noExpand?e.commands:Ne(e.commands,t,r),s=o,c=new Set;if(e.allowedCommands){let t=new Set(e.allowedCommands);s=o.filter(e=>t.has(e));for(let n of e.commands)t.has(n)&&!s.some(e=>Me(e,n))&&(s.push(n),c.add(n))}a.push(`| Command | Description |`),a.push(`|---------|-------------|`);for(let n of s){let i=t.get(n);if(!i||!e.noExpand&&r&&!c.has(n)&&!je(i))continue;let o=n||i.name,s=Ae(o),l=ke(i.description??``);a.push(`| [${o}](${e.docPath}#${s}) | ${l} |`)}return a.join(`
24
24
  `)}async function Fe(e,t,n){let r=n?.headingLevel??3,i=n?.leafOnly??!0,a=await Ce(e),o=[];for(let e of t){let t=Pe(e,a,r,i);o.push(t)}return o.join(`
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{a as e,i as t}from"./field-meta-D7G8a7IG.js";import{t as n}from"./register-D0mDOOyc.js";import{r,t as i}from"./schema-extractor-QpSHJvwI.js";import{n as a,t as o}from"./cli-main-q4kY1qaL.js";import{n as s,t as c}from"./command-tLHaJHe6.js";import{C as l,D as u,E as d,O as f,S as p,T as m,_ as h,a as g,b as _,c as v,d as y,f as b,g as x,h as S,i as C,k as w,l as T,m as E,n as D,o as O,p as k,r as A,s as j,t as M,u as N,v as P,w as F,x as I,y as L}from"./runner-bjKUtqk1.js";import{o as R,s as z}from"./subcommand-router-D8GTMXYL.js";import{a as B,i as V,n as H,r as U,t as W}from"./logger-CoeDrmRr.js";import{t as G}from"./with-completion-command-CZ9qcezN.js";const K=a(`@politty/zod`),q=s,J=c,Y=n;export{h as CaseVariantCollisionError,P as DefaultSubCommandError,L as DuplicateAliasError,_ as DuplicateFieldError,I as DuplicateNegationError,p as FieldTypeConflictError,l as PositionalConfigError,F as ReservedAliasError,m as ReservedFieldNameError,Y as arg,a as createCompileCacheShimGenerator,J as createDefineCommand,A as createDualCaseProxy,q as defineCommand,i as extractFields,O as formatCommandValidationErrors,C as formatValidationErrors,K as generateCompileCacheShim,d as generateHelp,u as generateHelpData,r as getUnknownKeysMode,W as isColorEnabled,R as isLazyCommand,z as lazy,H as logger,g as parseArgv,f as renderInline,w as renderMarkdown,M as runCommand,D as runMain,o as runPolittyCli,U as setColorEnabled,V as styles,B as symbols,t as toCamelCase,e as toKebabCase,j as validateCaseVariantCollisions,v as validateCommand,T as validateCrossSchemaCollisions,N as validateDefaultSubCommand,y as validateDuplicateAliases,b as validateDuplicateFields,k as validateDuplicateNegations,E as validatePositionalConfig,S as validateReservedAliases,x as validateReservedFieldNames,G as withCompletionCommand};
1
+ import{a as e,i as t}from"./field-meta-D7G8a7IG.js";import{t as n}from"./register-D0mDOOyc.js";import{r,t as i}from"./schema-extractor-QpSHJvwI.js";import{n as a,t as o}from"./cli-main-DWQYfxFO.js";import{n as s,t as c}from"./command-tLHaJHe6.js";import{C as l,D as u,E as d,O as f,S as p,T as m,_ as h,a as g,b as _,c as v,d as y,f as b,g as x,h as S,i as C,k as w,l as T,m as E,n as D,o as O,p as k,r as A,s as j,t as M,u as N,v as P,w as F,x as I,y as L}from"./runner-DtJbfhOs.js";import{o as R,s as z}from"./subcommand-router-D8GTMXYL.js";import{a as B,i as V,n as H,r as U,t as W}from"./logger-CoeDrmRr.js";import{t as G}from"./with-completion-command-CZ9qcezN.js";const K=a(`@politty/zod`),q=s,J=c,Y=n;export{h as CaseVariantCollisionError,P as DefaultSubCommandError,L as DuplicateAliasError,_ as DuplicateFieldError,I as DuplicateNegationError,p as FieldTypeConflictError,l as PositionalConfigError,F as ReservedAliasError,m as ReservedFieldNameError,Y as arg,a as createCompileCacheShimGenerator,J as createDefineCommand,A as createDualCaseProxy,q as defineCommand,i as extractFields,O as formatCommandValidationErrors,C as formatValidationErrors,K as generateCompileCacheShim,d as generateHelp,u as generateHelpData,r as getUnknownKeysMode,W as isColorEnabled,R as isLazyCommand,z as lazy,H as logger,g as parseArgv,f as renderInline,w as renderMarkdown,M as runCommand,D as runMain,o as runPolittyCli,U as setColorEnabled,V as styles,B as symbols,t as toCamelCase,e as toKebabCase,j as validateCaseVariantCollisions,v as validateCommand,T as validateCrossSchemaCollisions,N as validateDefaultSubCommand,y as validateDuplicateAliases,b as validateDuplicateFields,k as validateDuplicateNegations,E as validatePositionalConfig,S as validateReservedAliases,x as validateReservedFieldNames,G as withCompletionCommand};
@@ -0,0 +1 @@
1
+ import{t as e}from"./runner-DtJbfhOs.js";export{e as runCommand};
@@ -0,0 +1,30 @@
1
+ import{a as e,i as t,n,o as r,t as i}from"./field-meta-D7G8a7IG.js";import{n as a,o,s,t as c}from"./schema-extractor-QpSHJvwI.js";import{n as l}from"./compile-cache-6u9hgeWu.js";import{n as u,r as d,t as f}from"./log-collector-DICKib75.js";import{a as p,c as m,n as h,o as g,r as _,t as v}from"./subcommand-router-D8GTMXYL.js";import{a as y,i as b}from"./logger-CoeDrmRr.js";import{stripVTControlCharacters as x}from"node:util";async function S(e,t,n={}){let r,i,a=n.captureLogs??!1?f():null;a?.start();let o={args:t},s={args:t,error:r},c;n.handleSignals&&(c=async t=>{c&&(process.off(`SIGINT`,c),process.off(`SIGTERM`,c));let r=Error(`Process interrupted`);if(s.error=r,e.cleanup)try{await e.cleanup(s)}catch(e){console.error(`Error during signal cleanup:`,e)}if(n.globalCleanup)try{await n.globalCleanup({error:r})}catch(e){console.error(`Error during global signal cleanup:`,e)}a?.stop(),process.stdout.writableNeedDrain&&await new Promise(e=>{let t=setTimeout(()=>{process.stdout.off(`drain`,n),e()},200),n=()=>{clearTimeout(t),e()};process.stdout.once(`drain`,n)}),process.exit(1)},process.on(`SIGINT`,c),process.on(`SIGTERM`,c));try{e.setup&&await e.setup(o),e.run&&(i=await e.run(t))}catch(e){r=e instanceof Error?e:Error(String(e))}finally{c&&(process.off(`SIGINT`,c),process.off(`SIGTERM`,c))}if(e.cleanup){s.error=r;try{await e.cleanup(s)}catch(e){r||=e instanceof Error?e:Error(String(e))}}a?.stop();let l=n.existingLogs??u(),p=a?.getLogs()??u(),m=d(l,p);return r?{success:!1,error:r,exitCode:1,logs:m}:{success:!0,result:i,exitCode:0,logs:m}}function C(e){return e<=31||e>=127&&e<=159||e>=768&&e<=879||e>=6832&&e<=6911||e>=7616&&e<=7679||e>=8400&&e<=8447||e>=65056&&e<=65071||e===8203||e>=8204&&e<=8207||e===65279||e>=65024&&e<=65039||e>=917760&&e<=917999}function w(e){return e>=4352&&e<=4447||e>=11904&&e<=12350||e>=12353&&e<=13311||e>=13312&&e<=19903||e>=19968&&e<=40959||e>=40960&&e<=42191||e>=43360&&e<=43391||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65135||e>=65280&&e<=65376||e>=65504&&e<=65510||e>=110592&&e<=110959||e>=127488&&e<=127569||e>=131072&&e<=262141||e>=9728&&e<=10175||e>=126976&&e<=129791}function T(e){let t=!1,n=!1,r=!1;for(let i of e){let e=i.codePointAt(0);if(e===65039){r=!0;continue}C(e)||(t=!0,w(e)&&(n=!0))}return t?n||r?2:1:0}const E=(()=>{try{return new Intl.Segmenter(`en`,{granularity:`grapheme`})}catch{return}})();function D(e){if(e.length===0)return 0;let t=e.includes(`\x1B`)||e.includes(`›`)?x(e):e,n=0;if(E)for(let{segment:e}of E.segment(t))n+=T(e);else for(let e of t)n+=T(e);return n}function O(e){let t=[],n=e.replace(/`([^`]+)`/g,(e,n)=>{let r=t.length;return t.push(b.cyan(n)),`\x00CODE${r}\x00`});return n=n.replace(/\*\*(.+?)\*\*/g,(e,t)=>b.bold(t)),n=n.replace(/__(.+?)__/g,(e,t)=>b.bold(t)),n=n.replace(/\*(.+?)\*/g,(e,t)=>b.italic(t)),n=n.replace(/(?<!\w)_(.+?)_(?!\w)/g,(e,t)=>b.italic(t)),n=n.replace(/\[([^\]]+)\]\(([^)]+)\)/g,(e,t,n)=>`${b.underline(t)} ${b.dim(`(${n})`)}`),n=n.replace(/\x00CODE(\d+)\x00/g,(e,n)=>t[Number(n)]),n}function k(e){return re(e.split(`
2
+ `)).map(ce).join(`
3
+
4
+ `)}const A=/^(#{1,6})\s+(.+)$/,j=/^(?:---+|\*\*\*+|___+)\s*$/,M=/^>\s?(.*)$/,N=/^-\s+(.+)$/,P=/^(\d+)[.)]\s+(.+)$/,ee=/^(`{3,}|~{3,})(\S*)\s*$/,te=/^\[!(NOTE|TIP|IMPORTANT|WARNING|CAUTION)\]\s*$/,F=/^\|(.+)\|$/,ne=/^\|(\s*:?-+:?\s*\|)+$/;function re(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(r.trim()===``){n++;continue}let i=r.match(ee);if(i){let r=i[1],a=i[2]??``,o=[];for(n++;n<e.length;){if(e[n].startsWith(r.charAt(0).repeat(r.length))&&e[n].trim()===r.charAt(0).repeat(Math.max(r.length,e[n].trim().length))){n++;break}o.push(e[n]),n++}t.push({type:`code`,lang:a,lines:o});continue}let a=r.match(A);if(a){t.push({type:`heading`,level:a[1].length,content:a[2]}),n++;continue}if(j.test(r)){t.push({type:`hr`}),n++;continue}if(M.test(r)){let r=[];for(;n<e.length;){let t=e[n].match(M);if(t)r.push(t[1]),n++;else break}if(r.length>0){let e=r[0].match(te);if(e){let n=r.slice(1).filter(e=>e!==``);t.push({type:`alert`,alertType:e[1],lines:n});continue}}t.push({type:`blockquote`,lines:r});continue}if(N.test(r)){let r=[];for(;n<e.length;){let t=e[n].match(N);if(t)r.push(t[1]),n++;else break}t.push({type:`ul`,items:r});continue}let o=r.match(P);if(o){let r=Number(o[1]),i=[];for(;n<e.length;){let t=e[n].match(P);if(t)i.push(t[2]),n++;else break}t.push({type:`ol`,items:i,start:r});continue}if(F.test(r)&&n+1<e.length&&ne.test(e[n+1])){let i=ie(r),a=ae(e[n+1]);n+=2;let o=[];for(;n<e.length&&F.test(e[n]);)o.push(ie(e[n])),n++;t.push({type:`table`,headers:i,alignments:a,rows:o});continue}let s=[];for(;n<e.length;){let t=e[n];if(t.trim()===``||A.test(t)||j.test(t)||M.test(t)||N.test(t)||P.test(t)||ee.test(t)||F.test(t)&&n+1<e.length&&ne.test(e[n+1]))break;s.push(t),n++}s.length>0&&t.push({type:`paragraph`,lines:s})}return t}function ie(e){return e.slice(1,-1).split(`|`).map(e=>e.trim())}function ae(e){return e.slice(1,-1).split(`|`).map(e=>{let t=e.trim();return t.startsWith(`:`)&&t.endsWith(`:`)?`center`:t.endsWith(`:`)?`right`:`left`})}function oe(e,t,n){let r=D(e),i=Math.max(0,t-r);if(n===`right`)return` `.repeat(i)+e;if(n===`center`){let t=Math.floor(i/2);return` `.repeat(t)+e+` `.repeat(i-t)}return e+` `.repeat(i)}const se={NOTE:{icon:`ℹ`,label:`Note`,styleFn:b.cyan},TIP:{icon:`💡`,label:`Tip`,styleFn:b.green},IMPORTANT:{icon:`❗`,label:`Important`,styleFn:b.magenta},WARNING:{icon:`⚠`,label:`Warning`,styleFn:b.yellow},CAUTION:{icon:`🔴`,label:`Caution`,styleFn:b.red}};function ce(e){switch(e.type){case`heading`:return b.green(b.bold(O(e.content)));case`hr`:return b.dim(`─`.repeat(40));case`blockquote`:{let t=b.dim(`│ `);return e.lines.map(e=>`${t}${O(e)}`).join(`
5
+ `)}case`alert`:{let{icon:t,label:n,styleFn:r}=se[e.alertType],i=r(b.bold(`│`))+` `,a=`${i}${r(t)} ${r(n)}`;return e.lines.length===0?a:`${a}\n${e.lines.map(e=>`${i}${O(e)}`).join(`
6
+ `)}`}case`ul`:return e.items.map(e=>`${b.dim(`•`)} ${O(e)}`).join(`
7
+ `);case`ol`:{let t=e.start+e.items.length-1,n=String(t).length;return e.items.map((t,r)=>{let i=String(e.start+r).padStart(n,` `);return`${b.dim(`${i}.`)} ${O(t)}`}).join(`
8
+ `)}case`table`:{let t=e.headers.length,n=e.headers.map(e=>O(e)),r=e.rows.map(e=>Array.from({length:t},(t,n)=>O(e[n]??``))),i=n.map((e,t)=>{let n=D(e),i=r.map(e=>D(e[t]));return Math.max(n,...i)}),a=b.dim(`│`),o=b.dim(`┌─${i.map(e=>`─`.repeat(e)).join(`─┬─`)}─┐`),s=b.dim(`├─${i.map(e=>`─`.repeat(e)).join(`─┼─`)}─┤`),c=b.dim(`└─${i.map(e=>`─`.repeat(e)).join(`─┴─`)}─┘`);return[o,`${a} ${n.map((t,n)=>b.bold(oe(t,i[n],e.alignments[n]??`left`))).join(` ${a} `)} ${a}`,s,...r.map(t=>{let n=t.map((t,n)=>oe(t,i[n],e.alignments[n]??`left`));return`${a} ${n.join(` ${a} `)} ${a}`}),c].join(`
9
+ `)}case`code`:return e.lines.map(e=>` ${b.yellow(e)}`).join(`
10
+ `);case`paragraph`:return O(e.lines.join(` `))}}const I={help:`Show help`,helpAll:`Show help with all subcommand options`,helpJson:`Show help as JSON`,version:`Show version`};function le(e){return!e.startsWith(`__`)}function L(e){return Object.entries(e).filter(([e])=>le(e))}function ue(e,t){return t?.rootName&&t.commandPath&&t.commandPath.length>0?t.commandPath.join(` `):e.name??`command`}function de(e,t){return t?.rootName&&t.commandPath&&t.commandPath.length>0?`${t.rootName} ${t.commandPath.join(` `)}`:e.name??`command`}function fe(e,t){let n=[],r=de(e,t);n.push(b.commandName(r)),t?.globalExtracted?.fields.length&&n.push(b.placeholder(`[global options]`));let i=a(e);if(i){let t=i.fields.filter(e=>e.positional);i.fields.filter(e=>!e.positional).length>0&&n.push(b.placeholder(`[options]`)),e.subCommands&&L(e.subCommands).length>0&&(e.run||e.defaultSubCommand?n.push(b.placeholder(`[command]`)):n.push(b.option(`<command>`)));for(let e of t)e.required?n.push(b.option(`<${e.name}>`)):n.push(b.placeholder(`[${e.name}]`))}else e.subCommands&&L(e.subCommands).length>0&&(e.run||e.defaultSubCommand?n.push(b.placeholder(`[command]`)):n.push(b.option(`<command>`)));return n.join(` `)}function pe(e,t){let n=`${b.dim(`When`)} ${b.option(e)}=${b.bold(t.discriminatorValue)}:`;return t.description?`${n} ${t.description}`:n}function me(e,t){return` ${b.bold(`${e.description??`Variant ${t+1}`}:`)}`}function he(e,t=0){let n=e.required?b.option(`<${e.name}>`):b.placeholder(`[${e.name}]`),r=[e.description,e.defaultValue===void 0?void 0:b.defaultValue(`(default: ${JSON.stringify(e.defaultValue)})`)].filter(Boolean).join(` `);return r?V(n,r,t):`${` `.repeat(t)} ${n}`}function ge(e){let t=a(e);if(!t)return``;let n=[];if(t.schemaType===`discriminatedUnion`&&t.discriminator){let e=t.discriminator;n=(t.variants??[]).map(t=>({label:pe(e,t),fields:t.fields}))}else(t.schemaType===`union`||t.schemaType===`xor`)&&t.unionOptions&&(n=t.unionOptions.map((e,t)=>({label:me(e,t),fields:e.fields})));let r=n.length>0?W(n):void 0,i=t.fields.filter(e=>e.positional&&(r===void 0||r.has(e.name))).map(e=>he(e));for(let e of n){let t=e.fields.filter(e=>e.positional&&!r?.has(e.name));t.length!==0&&i.push(``,e.label,...t.map(e=>he(e,1)))}return i.join(`
11
+ `)}function _e(e,t={},r){let i=[],o={help:t.help??I.help,helpAll:t.helpAll??I.helpAll,helpJson:t.helpJson??I.helpJson,version:t.version??I.version},s=a(e),c=s?.fields.some(e=>e.overrideBuiltinAlias===!0&&n(e).includes(`h`))??!1,l=s?.fields.some(e=>e.overrideBuiltinAlias===!0&&n(e).includes(`H`))??!1;if(c?i.push(V(b.option(`--help`),o.help)):i.push(V(`${b.option(`-h`)}, ${b.option(`--help`)}`,o.help)),l?i.push(V(b.option(`--help-all`),o.helpAll)):i.push(V(`${b.option(`-H`)}, ${b.option(`--help-all`)}`,o.helpAll)),i.push(V(b.option(`--help-json`),o.helpJson)),r?.rootVersion&&i.push(V(b.option(`--version`),o.version)),!s)return i.join(`
12
+ `);if(s.schemaType===`discriminatedUnion`&&s.discriminator)return ve(s,e,i);if(s.schemaType===`union`&&s.unionOptions||s.schemaType===`xor`&&s.unionOptions)return ye(s,e,i);let u=s.fields.filter(e=>!e.positional);for(let e of u){let t=z(e),n=e.description??``;e.defaultValue!==void 0&&(n+=` ${b.defaultValue(`(default: ${JSON.stringify(e.defaultValue)})`)}`),e.required&&(n+=` ${b.required(`(required)`)}`);let r=B(e.env);r&&(n+=` ${r}`),i.push(V(t,n));let a=R(e);a&&i.push(a)}return i.join(`
13
+ `)}function R(e,t=0,n=0){return!e.negationDisplay||!e.negationDescription?null:V(b.option(`--${e.negationDisplay}`),`${e.negationDescription} ${b.dim(`(↔ --${e.cliName})`)}`,t,n)}function ve(e,t,n){let r=e.discriminator,i=e.variants??[],a=e.fields.find(e=>e.name===r);if(a&&!a.positional){let t=i.map(e=>e.discriminatorValue).join(`|`),o=`${b.option(`--${r}`)} ${b.placeholder(`<${t}>`)}`,s=e.description??a.description??`Action to perform`;n.push(V(o,s))}let o=new Set,s=new Set;for(let e of i)for(let t of e.fields)s.add(t.name);for(let e of s)e!==r&&i.every(t=>t.fields.some(t=>t.name===e))&&o.add(e);for(let t of o){let r=e.fields.find(e=>e.name===t);if(r&&!r.positional){let e=z(r),t=r.description??``;r.defaultValue!==void 0&&(t+=` ${b.defaultValue(`(default: ${JSON.stringify(r.defaultValue)})`)}`);let i=B(r.env);i&&(t+=` ${i}`),n.push(V(e,t));let a=R(r);a&&n.push(a)}}for(let e of i){let t=e.fields.filter(e=>e.name!==r&&!o.has(e.name)&&!e.positional);if(t.length>0){n.push(``),n.push(pe(r,e));for(let e of t){let t=z(e),r=e.description??``;e.defaultValue!==void 0&&(r+=` ${b.defaultValue(`(default: ${JSON.stringify(e.defaultValue)})`)}`),e.required&&(r+=` ${b.required(`(required)`)}`);let i=B(e.env);i&&(r+=` ${i}`),n.push(V(t,r,1));let a=R(e,1);a&&n.push(a)}}}return n.join(`
14
+ `)}function ye(e,t,n){let r=e.unionOptions??[],i=new Set,a=new Set;for(let e of r)for(let t of e.fields)a.add(t.name);for(let e of a)r.every(t=>t.fields.some(t=>t.name===e))&&i.add(e);for(let t of i){let r=e.fields.find(e=>e.name===t);if(r&&!r.positional){let e=z(r),t=r.description??``;r.defaultValue!==void 0&&(t+=` ${b.defaultValue(`(default: ${JSON.stringify(r.defaultValue)})`)}`);let i=B(r.env);i&&(t+=` ${i}`),n.push(V(e,t));let a=R(r);a&&n.push(a)}}for(let e=0;e<r.length;e++){let t=r[e];if(!t)continue;let a=t.fields.filter(e=>!i.has(e.name)&&!e.positional),o=me(t,e);if(a.length>0){n.push(``),n.push(o);for(let e of a){let t=z(e),r=e.description??``;e.defaultValue!==void 0&&(r+=` ${b.defaultValue(`(default: ${JSON.stringify(e.defaultValue)})`)}`),e.required&&(r+=` ${b.required(`(required)`)}`);let i=B(e.env);i&&(r+=` ${i}`),n.push(V(t,r,1));let a=R(e,1);a&&n.push(a)}}else n.push(``),n.push(o),n.push(` ${b.dim(b.italic(`no options`))}`)}return n.join(`
15
+ `)}function z(e){let t=[];if(e.alias)for(let n of e.alias)n.length===1&&t.push(b.option(`-${n}`));let n=b.option(`--${e.cliName}`);if(e.type!==`boolean`){let t=e.placeholder??e.cliName.toUpperCase();n+=` ${b.placeholder(`<${t}>`)}`}if(t.push(n),e.alias){for(let n of e.alias)if(n.length>1){let r=b.option(`--${n}`);if(e.type!==`boolean`){let t=e.placeholder??e.cliName.toUpperCase();r+=` ${b.placeholder(`<${t}>`)}`}t.push(r)}}let r=t.join(`, `);return e.type===`boolean`&&e.negationDisplay&&!e.negationDescription?`${r} / ${b.option(`--${e.negationDisplay}`)}`:r}function B(e){if(!e)return``;let t=Array.isArray(e)?e:[e];return b.dim(`[env: ${t.join(`, `)}]`)}function be(e){return e.replace(/\x1B\[[0-9;]*m/g,``)}function xe(e,t){let n=be(e).length,r=Math.max(0,t-n);return e+` `.repeat(r)}function Se(e,t){if(!e.includes(`
16
+ `))return e;let n=` `.repeat(t);return e.split(`
17
+ `).join(`\n${n}`)}function V(e,t,n=0,r=0){let i=` `.repeat(n),a=be(e).length,o=32-n*2+r,s=o+2+n*2,c=Se(t,s);return a>=o?`${i} ${e}\n${` `.repeat(s)}${c}`:`${i} ${xe(e,o)}${c}`}function Ce(e,t=0,n=0){let r=z(e),i=e.description??``;e.defaultValue!==void 0&&(i+=` ${b.defaultValue(`(default: ${JSON.stringify(e.defaultValue)})`)}`),e.required&&(i+=` ${b.required(`(required)`)}`);let a=B(e.env);return a&&(i+=` ${a}`),V(r,i,t,n)}function we(e){let t=[];for(let n of e.fields){if(n.positional)continue;t.push(Ce(n));let e=R(n);e&&t.push(e)}return t.join(`
18
+ `)}function Te(e,t){let n=[],r=a(e);if(r){let e=r.fields.filter(e=>!e.positional);for(let r of e){let e=z(r),i=r.description??``;r.defaultValue!==void 0&&(i+=` ${b.defaultValue(`(default: ${JSON.stringify(r.defaultValue)})`)}`);let a=B(r.env);a&&(i+=` ${a}`),n.push(V(e,i,t,2));let o=R(r,t,2);o&&n.push(o)}}return n}function Ee(e,t,n){let r=[];for(let[i,a]of L(e)){let e=m(a),o=t?`${t} ${i}`:i,s=e?.description??``,c=e?.aliases,l=c&&c.length>0?`${o}, ${c.join(`, `)}`:o;if(r.push(V(b.command(l),s,n)),e){let t=Te(e,n+1);r.push(...t);let i=e.subCommands?Object.fromEntries(L(e.subCommands)):void 0;if(i&&Object.keys(i).length>0){let e=Ee(i,o,n);r.push(...e)}}}return r}function H(e,t){let n=[],r=t.context,i=ue(e,r);if(i){let e=b.commandName(i);r?.rootName&&r.commandPath&&r.commandPath.length>0?r.rootVersion?e+=` ${b.version(`(${r.rootName} v${r.rootVersion})`)}`:e+=` ${b.version(`(${r.rootName})`)}`:r?.rootVersion&&(e+=` ${b.version(`v${r.rootVersion}`)}`),n.push(e)}r?.aliasFor&&n.push(b.dim(`Alias for ${b.commandName(r.aliasFor)}`)),e.description&&n.push(e.description),!r?.aliasFor&&e.aliases&&e.aliases.length>0&&n.push(`${b.sectionHeader(`Aliases:`)} ${e.aliases.map(e=>b.command(e)).join(`, `)}`),n.push(`${b.sectionHeader(`Usage:`)} ${fe(e,r)}`);let a=ge(e);a&&n.push(`${b.sectionHeader(`Arguments:`)}\n${a}`);let o=_e(e,t.descriptions,r);if(o&&n.push(`${b.sectionHeader(`Options:`)}\n${o}`),r?.globalExtracted?.fields.length&&n.push(`${b.sectionHeader(`Global Options:`)}\n${we(r.globalExtracted)}`),t.showSubcommands!==!1&&e.subCommands&&L(e.subCommands).length>0){let i=r?.commandPath?.join(` `)??``,a=Object.fromEntries(L(e.subCommands));if(t.showSubcommandOptions){let e=Ee(a,i,0);n.push(`${b.sectionHeader(`Commands:`)}\n${e.join(`
19
+ `)}`)}else{let e=[];for(let[t,n]of Object.entries(a)){let r=m(n),a=r?.description??``,o=i?`${i} ${t}`:t,s=r?.aliases,c=s&&s.length>0?`${o}, ${s.join(`, `)}`:o;e.push(V(b.command(c),a))}n.push(`${b.sectionHeader(`Commands:`)}\n${e.join(`
20
+ `)}`)}}if(e.examples&&e.examples.length>0){let t=Oe(e.examples,r);n.push(`${b.sectionHeader(`Examples:`)}\n${t}`)}if(e.notes){let t=k(e.notes).split(`
21
+ `).map(e=>e===``?``:` ${e}`).join(`
22
+ `);n.push(`${b.sectionHeader(`Notes:`)}\n${t}`)}return`\n${n.join(`
23
+
24
+ `)}\n`}function U(e){let t={name:e.name,cliName:e.cliName,positional:e.positional,required:e.required,type:e.type};return e.alias&&(t.alias=e.alias),e.description!==void 0&&(t.description=e.description),e.placeholder!==void 0&&(t.placeholder=e.placeholder),e.env!==void 0&&(t.env=e.env),e.defaultValue!==void 0&&(t.defaultValue=e.defaultValue),e.enumValues!==void 0&&(t.enumValues=e.enumValues),e.negation!==void 0&&(t.negation=e.negation),e.negationDisplay!==void 0&&(t.negationDisplay=e.negationDisplay),e.negationDescription!==void 0&&(t.negationDescription=e.negationDescription),t}function W(e,t){let n=new Set;for(let r of e)for(let e of r.fields)e.name!==t&&n.add(e.name);let r=new Set;for(let t of n)e.every(e=>e.fields.some(e=>e.name===t))&&r.add(t);return r}function De(e,t){let n=de(e,t),r=!!t?.globalExtracted?.fields.length,i=e.subCommands&&L(e.subCommands).length>0?e.run?`optional`:`required`:void 0,o=a(e);return{commandName:n,hasGlobalOptions:r,hasOptions:o?o.fields.some(e=>!e.positional):!1,subcommand:i,positionals:o?o.fields.filter(e=>e.positional).map(e=>({name:e.name,required:e.required})):[]}}function G(e,t={}){let n=t.context,r=n?.commandPath??[],i={help:t.descriptions?.help??I.help,helpAll:t.descriptions?.helpAll??I.helpAll,helpJson:t.descriptions?.helpJson??I.helpJson,...n?.rootVersion?{version:t.descriptions?.version??I.version}:{}},o=a(e),s,c=[],l=[],u,d,f;if(o){if(s=o.schemaType,c=o.fields.filter(e=>e.positional).map(U),o.schemaType===`discriminatedUnion`&&o.discriminator&&o.variants){let e=o.discriminator;u=e;let t=o.variants,n=W(t,e),r=o.fields.find(t=>t.name===e&&!t.positional),i=o.fields.filter(e=>!e.positional&&n.has(e.name));l=[...r?[{...U(r),description:o.description??r.description??`Action to perform`}]:[],...i.map(U)],d=t.map(t=>({discriminatorValue:t.discriminatorValue,description:t.description,fields:t.fields.filter(t=>t.name!==e&&!n.has(t.name)).map(U)}))}else if((o.schemaType===`union`||o.schemaType===`xor`)&&o.unionOptions){let e=o.unionOptions,t=W(e);l=o.fields.filter(e=>!e.positional&&t.has(e.name)).map(U),f=e.map(e=>({description:e.description,fields:e.fields.filter(e=>!t.has(e.name)).map(U)}))}else l=o.fields.filter(e=>!e.positional).map(U)}let p=n?.globalExtracted?.fields.length?n.globalExtracted.fields.filter(e=>!e.positional).map(U):void 0,h;if(e.subCommands){let i=L(e.subCommands);i.length>0&&(h=i.map(([i,a])=>{let o=m(a);if(!o)return{name:i,unresolved:!0};let s={commandPath:[...r,i],rootName:n?.rootName??e.name,rootVersion:n?.rootVersion,globalExtracted:n?.globalExtracted};return{name:i,aliases:o.aliases,data:G(o,{descriptions:t.descriptions,context:s})}}))}return{name:e.name??`command`,commandPath:r,rootName:n?.rootName,version:n?.rootVersion,aliasFor:n?.aliasFor,description:e.description,aliases:e.aliases,usage:De(e,n),builtinOptions:i,schemaType:s,positionals:c,options:l,discriminator:u,variants:d,unionOptions:f,globalOptions:p,subcommands:h,examples:e.examples,notes:e.notes}}function Oe(e,t){let n=[],r=t?.rootName?`${t.rootName} `:``,i=t?.commandPath?.join(` `)??``,a=i?`${r}${i} `:r;for(let t of e){if(n.push(` ${b.dim(t.desc).split(`
25
+ `).join(`
26
+ `)}`),n.push(` ${b.dim(`$`)} ${a}${t.cmd}`),t.output)for(let e of t.output.split(`
27
+ `))n.push(` ${e}`);n.push(``)}return n.length>0&&n[n.length-1]===``&&n.pop(),n.join(`
28
+ `)}var ke=class extends Error{constructor(e){super(e),this.name=`PositionalConfigError`}},Ae=class extends Error{constructor(e){super(e),this.name=`ReservedAliasError`}},je=class extends Error{constructor(e){super(e),this.name=`DuplicateFieldError`}},Me=class extends Error{constructor(e){super(e),this.name=`DuplicateAliasError`}},K=class extends Error{constructor(e){super(e),this.name=`CaseVariantCollisionError`}},Ne=class extends Error{constructor(e){super(e),this.name=`DuplicateNegationError`}},Pe=class extends Error{constructor(e){super(e),this.name=`ReservedFieldNameError`}},Fe=class extends Error{constructor(e){super(e),this.name=`DefaultSubCommandError`}},Ie=class extends Error{constructor(e){super(e),this.name=`FieldTypeConflictError`}};function Le(e,t){let n=[],r=new Map;for(let i of e.fields)r.has(i.name)&&n.push({commandPath:t,type:`duplicate_field`,message:`Duplicate field name "${i.name}" detected.`,field:i.name}),r.set(i.name,i.name);return n}function Re(e,n){let r=[],i=new Map;for(let a of e.fields){let e=t(a.name),o=i.get(e);o&&o!==a.name&&r.push({commandPath:n,type:`case_variant_collision`,message:`Fields "${o}" and "${a.name}" are case variants of each other and would collide.`,field:a.name}),i.set(e,a.name)}return r}function ze(e,r){let i=[],a=new Map,o=new Set(e.fields.map(e=>e.name)),s=new Set(e.fields.map(e=>e.cliName)),c=(e,t,n)=>{(o.has(e)||s.has(e))&&i.push({commandPath:r,type:`duplicate_alias`,message:`Alias "${e}" for field "${t}" conflicts with existing field name or CLI name "${e}".`,field:t});let c=a.get(e);if(c&&c!==t){let a=n?` (derived camelCase variant)`:``;i.push({commandPath:r,type:`duplicate_alias`,message:`Duplicate alias "${e}"${a} detected. Both "${c}" and "${t}" use the same alias.`,field:t})}a.set(e,t)};for(let r of e.fields){let e=n(r);if(e.length!==0){for(let n of e)if(c(n,r.name,!1),n.length>1&&n.includes(`-`)){let e=t(n);e!==n&&!o.has(e)&&c(e,r.name,!0)}}}return i}function Be(e,r){let i=[],a=new Map,o=(e,t,n)=>{a.has(e)||a.set(e,{field:t,kind:n})};for(let r of e.fields){if(o(r.name,r.name,`field name`),r.name.includes(`-`)){let e=t(r.name);e!==r.name&&o(e,r.name,`field name`)}if(r.cliName!==r.name&&o(r.cliName,r.name,`CLI name`),r.cliName.includes(`-`)){let e=t(r.cliName);e!==r.cliName&&o(e,r.name,`CLI name`)}for(let e of n(r))if(o(e,r.name,`alias`),e.length>1&&e.includes(`-`)){let n=t(e);n!==e&&o(n,r.name,`alias`)}if(r.type===`boolean`&&r.negation===!0){let e=`no-${r.cliName}`;o(e,r.name,`default negation`);let n=t(r.cliName),i=`no${n[0]?.toUpperCase()??``}${n.slice(1)}`;i!==e&&o(i,r.name,`default negation`)}}let s=new Map,c=(e,t,n)=>{let o=a.get(e);if(o){let a=n?` (derived camelCase variant)`:``,s=o.field===t?`the same field's own ${o.kind} "${e}"`:`${o.kind} "${e}" of field "${o.field}"`;i.push({commandPath:r,type:`duplicate_negation`,message:`Negation "${e}"${a} for field "${t}" conflicts with ${s}.`,field:t})}let c=s.get(e);if(c&&c!==t){let a=n?` (derived camelCase variant)`:``;i.push({commandPath:r,type:`duplicate_negation`,message:`Duplicate negation "${e}"${a} detected. Both "${c}" and "${t}" use the same negation name.`,field:t})}s.set(e,t)};for(let n of e.fields)if(typeof n.negation==`string`&&(c(n.negation,n.name,!1),n.negation.includes(`-`))){let e=t(n.negation);e!==n.negation&&c(e,n.name,!0)}return i}function Ve(e,t){let n=[],r=e.fields.filter(e=>e.positional),i=null,a=null;for(let e of r)i!==null&&n.push({commandPath:t,type:`positional_config`,message:`Positional argument "${e.name}" cannot follow array positional argument "${i}".`,field:e.name}),e.type===`array`&&a!==null&&n.push({commandPath:t,type:`positional_config`,message:`Array positional "${e.name}" cannot be used with optional positional "${a}" (ambiguous parsing).`,field:e.name}),a!==null&&e.required&&n.push({commandPath:t,type:`positional_config`,message:`Required positional "${e.name}" cannot follow optional positional "${a}".`,field:e.name}),e.type===`array`&&(i=e.name),e.required||(a=e.name);return n}function He(e,t){let r=[];for(let a of e.fields){if(a.overrideBuiltinAlias!==!0)for(let e of n(a))(e===`h`||e===`H`)&&r.push({commandPath:t,type:`reserved_alias`,message:`Alias "${e}" is reserved for --${e===`h`?`help`:`help-all`}. To override this, set { overrideBuiltinAlias: true } for "${a.name}" and keep the alias where it is currently defined (in alias or hiddenAlias).`,field:a.name});let e=new Set([a.cliName,...n(a)]);for(let n of e){if(!i.has(n))continue;let e=n===a.cliName;r.push({commandPath:t,type:`reserved_alias`,message:`${e?`Field "${a.name}"`:`Alias "${n}" for field "${a.name}"`} collides with the built-in --${n} option, which always takes precedence. Rename the field or its alias; this collision cannot be overridden.`,field:a.name})}}return r}function Ue(e,t){let n=[];for(let r of e.fields)r.name.startsWith(`$`)&&n.push({commandPath:t,type:`reserved_field_name`,message:`Field "${r.name}" starts with "$", which is reserved for framework-injected helpers (e.g. $source).`,field:r.name});return n}function q(e){let t=Le(e,[]);if(t.length>0)throw new je(`Duplicate field name "${t[0]?.field??`unknown`}" detected. Each field must have a unique name.`)}function We(e){let t=ze(e,[]);if(t.length>0){let e=t[0];throw new Me(e.message)}}function Ge(e){let t=Ve(e,[]);if(t.length>0){let e=t[0];throw new ke(e.message)}}function Ke(e,t){let n=He(e,[]);if(n.length>0)throw new Ae(n[0].message)}function qe(e){let t=Ue(e,[]);if(t.length>0){let e=t[0];throw new Pe(e.message)}}function Je(e){let t=Be(e,[]);if(t.length>0){let e=t[0];throw new Ne(e.message)}}function Ye(e){let t=Re(e,[]);if(t.length>0){let e=t[0];throw new K(e.message)}}function Xe(e,t){if(e.type!==t.type||e.positional!==t.positional)return!1;let n=e.enumValues,r=t.enumValues;if(!n&&!r)return!0;if(!n||!r)return!1;let i=new Set(n),a=new Set(r);if(i.size!==a.size)return!1;for(let e of i)if(!a.has(e))return!1;return!0}function Ze(e,n,r){let i=[],a=new Map;for(let n of e.fields)a.set(t(n.name),n);for(let e of n.fields){let n=t(e.name),o=a.get(n);if(o){if(o.name!==e.name){i.push({commandPath:r,type:`case_variant_collision`,message:`Global field "${o.name}" and command field "${e.name}" are case variants of each other and would collide.`,field:e.name});continue}Xe(o,e)||i.push({commandPath:r,type:`field_type_conflict`,message:`Global field "${o.name}" and command field "${e.name}" share the same name but have different definitions.`,field:e.name})}}return i}function Qe(e,t){let n=Ze(e,t,[])[0];if(n)throw n.type===`case_variant_collision`?new K(n.message):new Ie(n.message)}function $e(e,t,n){return[...Le(e,n),...Re(e,n),...ze(e,n),...Be(e,n),...Ve(e,n),...He(e,n),...Ue(e,n)]}function et(e,t){let n=e,r=[];if(n.defaultSubCommand===void 0)return r;n.run&&r.push({commandPath:t,type:`default_subcommand_conflict`,message:`Command "${n.name}" defines both "run" and "defaultSubCommand". Define only one.`});let i=e.subCommands?Object.keys(e.subCommands):[];return i.includes(n.defaultSubCommand)||r.push({commandPath:t,type:`default_subcommand_not_found`,message:`defaultSubCommand "${n.defaultSubCommand}" does not match any subCommands key of "${n.name}". Registered: ${i.length>0?i.join(`, `):`(none)`}.`,field:n.defaultSubCommand}),r}function tt(e){let t=et(e,[]);if(t.length>0)throw new Fe(t[0].message)}function nt(e,t){let n=[];if(!e.subCommands)return n;let r=new Map;for(let[t]of Object.entries(e.subCommands))r.set(t,t);for(let[i,a]of Object.entries(e.subCommands)){let e=g(a)?a.meta:typeof a==`function`?null:a;if(!e?.aliases)continue;let o=[...t,i];for(let t of e.aliases){if(!/^[a-zA-Z0-9][a-zA-Z0-9_-]*$/.test(t)){n.push({commandPath:o,type:`invalid_alias`,message:`Alias "${t}" is invalid. Aliases must start with an alphanumeric character and contain only alphanumeric characters, hyphens, or underscores.`,field:i});continue}if(t===i){n.push({commandPath:o,type:`duplicate_alias`,message:`Alias "${t}" conflicts with its own name.`,field:i});continue}let e=r.get(t);e?e===i?n.push({commandPath:o,type:`duplicate_alias`,message:`Alias "${t}" is duplicated within the alias list.`,field:i}):n.push({commandPath:o,type:`duplicate_alias`,message:`Alias "${t}" conflicts with existing subcommand or alias "${e}".`,field:i}):r.set(t,i)}}return n}function rt(e,t,n){return e===t?[]:[{commandPath:[...n,e],type:`subcommand_key_name_mismatch`,message:`Subcommand registered as "${e}" but its own name is "${t}".`,field:e}]}async function it(e,t={}){let n=t.commandPath??[e.name],r=[],i=e.subCommands?Object.keys(e.subCommands).length>0:!1,a=t.globalArgs?c(t.globalArgs):void 0;if(e.args){let t=c(e.args);r.push(...$e(t,i,n)),a&&r.push(...Ze(a,t,n))}if(r.push(...nt(e,n)),r.push(...et(e,n)),e.subCommands)for(let[i,a]of Object.entries(e.subCommands)){let e=await _(a);r.push(...rt(i,e.name,n));let o=await it(e,{commandPath:[...n,i],...t.globalArgs?{globalArgs:t.globalArgs}:{}});o.valid||r.push(...o.errors)}return r.length===0?{valid:!0}:{valid:!1,errors:r}}function at(e){if(e.length===0)return``;let t=[`Command definition errors:`];for(let n of e){let e=n.commandPath.join(` > `);t.push(` - [${e}] ${n.message}`)}return t.join(`
29
+ `)}const ot=new Set([`1`,`t`,`T`,`TRUE`,`true`,`True`]),st=new Set([`0`,`f`,`F`,`FALSE`,`false`,`False`]);function ct(e){return ot.has(e)?!0:!st.has(e)&&e}function lt(e,t){return t===`boolean`?ct(e):e}function ut(e){let t=e.indexOf(`=`);return t>=0?e.slice(2,t):e.slice(2)}function dt(e,t){let n=ut(e);if(!e.includes(`=`)){let e=t.negationMap.get(n);if(e&&t.booleanFlags.has(e))return{resolvedName:e,withoutDashes:n,isNegated:!0,isCustomNegation:!0,isSuppressedNegation:!1}}let r=e.includes(`=`);if(!r&&n.startsWith(`no-`)){let e=n.slice(3);if(e===e.toLowerCase()){let r=t.aliasMap.get(e)??e;if(t.booleanFlags.has(r)){let e=t.aliasMap.get(n)??n;if(!t.definedNames.has(e))return t.defaultNegationDisabledFields.has(r)?{resolvedName:r,withoutDashes:n,isNegated:!1,isCustomNegation:!1,isSuppressedNegation:!0}:{resolvedName:r,withoutDashes:n,isNegated:!0,isCustomNegation:!1,isSuppressedNegation:!1}}}}if(!r&&n.length>2&&n.startsWith(`no`)&&/[A-Z]/.test(n[2])){let e=n[2].toLowerCase()+n.slice(3),r=t.aliasMap.get(e)??e;if(t.booleanFlags.has(r)){let e=t.aliasMap.get(n)??n;if(!t.definedNames.has(e))return t.defaultNegationDisabledFields.has(r)?{resolvedName:r,withoutDashes:n,isNegated:!1,isCustomNegation:!1,isSuppressedNegation:!0}:{resolvedName:r,withoutDashes:n,isNegated:!0,isCustomNegation:!1,isSuppressedNegation:!1}}}return{resolvedName:t.aliasMap.get(n)??n,withoutDashes:n,isNegated:!1,isCustomNegation:!1,isSuppressedNegation:!1}}const ft=/^-\.?\d/;function pt(e){return ft.test(e)}function mt(e,t={}){let{aliasMap:n=new Map,booleanFlags:r=new Set,arrayFlags:i=new Set,definedNames:a=new Set,negationMap:o=new Map,defaultNegationDisabledFields:s}=t,c={aliasMap:n,booleanFlags:r,definedNames:a,negationMap:o,defaultNegationDisabledFields:s??new Set(r)},l={options:{},positionals:[],rest:[]},u=0,d=!1,f=(e,t)=>{let r=n.get(e)??e;if(i.has(r)){let e=l.options[r];Array.isArray(e)?e.push(t):e===void 0?l.options[r]=[t]:l.options[r]=[e,t]}else l.options[r]=t};for(;u<e.length;){let t=e[u];if(d){l.rest.push(t),u++;continue}if(t===`--`){d=!0,u++;continue}if(t.startsWith(`--`)){let i=t.slice(2),a=dt(t,c);if(a.isSuppressedNegation){f(a.withoutDashes,!0),u++;continue}if(a.isNegated){f(a.resolvedName,!1),u++;continue}let o=i.indexOf(`=`);if(o!==-1){let e=i.slice(0,o),t=i.slice(o+1),a=n.get(e)??e;f(e,r.has(a)?ct(t):t),u++}else{let t=i,a=n.get(t)??t;if(r.has(a))f(t,!0),u++;else{let n=e[u+1];n!==void 0&&(!n.startsWith(`-`)||pt(n))?(f(t,n),u+=2):(f(t,!0),u++)}}continue}if(t.startsWith(`-`)&&t.length>1&&!t.startsWith(`--`)){let i=t.slice(1),a=i.indexOf(`=`);if(a!==-1){let e=i.slice(0,a),t=i.slice(a+1),o=n.get(e)??e;f(e,r.has(o)?ct(t):t),u++}else if(i.length===1){let t=i,a=n.get(t)??t;if(r.has(a))f(t,!0),u++;else{let n=e[u+1];n!==void 0&&(!n.startsWith(`-`)||pt(n))?(f(t,n),u+=2):(f(t,!0),u++)}}else{for(let e of i)f(e,!0);u++}continue}l.positionals.push(t),u++}return l}function J(e){let r=new Map,i=new Set,a=new Set,o=new Set,s=new Map,c=new Set;for(let t of e.fields)o.add(t.name);for(let l of e.fields){l.cliName!==l.name&&r.set(l.cliName,l.name);for(let e of n(l))if(r.set(e,l.name),e.length>1&&e.includes(`-`)){let n=t(e);n!==e&&!o.has(n)&&!r.has(n)&&r.set(n,l.name)}let e=t(l.name);if(e!==l.name&&!o.has(e)&&!r.has(e)&&r.set(e,l.name),l.type===`boolean`&&i.add(l.name),l.type===`array`&&a.add(l.name),l.type===`boolean`&&l.negation!==!0&&(c.add(l.name),typeof l.negation==`string`&&(s.set(l.negation,l.name),l.negation.includes(`-`)))){let e=t(l.negation);e!==l.negation&&s.set(e,l.name)}}return{aliasMap:r,booleanFlags:i,arrayFlags:a,definedNames:o,negationMap:s,defaultNegationDisabledFields:c}}function ht(e,t){let n={...e.options},r=t.fields.filter(e=>e.positional),i=e.rest.length>0?[...e.positionals,...e.rest]:e.positionals,a=0;for(let e of r){if(a>=i.length)break;if(e.type===`array`){n[e.name]=i.slice(a);break}n[e.name]=i[a],a++}return n}function gt(e){let{aliasMap:t=new Map,booleanFlags:r=new Set,definedNames:i=new Set,negationMap:a=new Map,defaultNegationDisabledFields:o=new Set}=J(e),s=new Set;for(let t of e.fields)for(let e of n(t))e.length===1&&s.add(e);return{aliasMap:t,booleanFlags:r,definedNames:i,flagNames:new Set(e.fields.map(e=>e.name)),cliNames:new Set(e.fields.map(e=>e.cliName)),aliases:s,negationMap:a,defaultNegationDisabledFields:o}}function _t(e,t){let{resolvedName:n,withoutDashes:r,isNegated:i,isCustomNegation:a,isSuppressedNegation:o}=dt(e,t);if(o)return{resolvedName:n,withoutDashes:r,isNegated:!1,isGlobal:!1,isSuppressedNegation:o};let s=i&&!a?r.startsWith(`no-`)?r.slice(3):r[2].toLowerCase()+r.slice(3):r;return{resolvedName:n,withoutDashes:r,isNegated:i,isGlobal:t.flagNames.has(n)||t.cliNames.has(r)||t.cliNames.has(s),isSuppressedNegation:!1}}function vt(e,t,n,r,i){return!e.includes(`=`)&&!i.has(t)&&!n&&r!==void 0&&!r.startsWith(`-`)}function Y(e,t,n,r,i,a){let o=e[t];return a.push(o),vt(o,n,r,e[t+1],i)?(a.push(e[t+1]),2):1}function yt(e,t,n){let r=gt(n),i=new Set(t),a=[],o=[],s=0;for(;s<e.length;){let t=e[s];if(t===`--`||bt.has(t))break;if(!t.startsWith(`-`)&&i.has(t))return{subCommandIndex:s,globalTokensBefore:a,tokensAfterSubcommand:e.slice(s+1),suppressedTokens:o};if(t.startsWith(`--`)){let{resolvedName:n,withoutDashes:i,isNegated:c,isGlobal:l,isSuppressedNegation:u}=_t(t,r);if(l){s+=Y(e,s,n,c,r.booleanFlags,a);continue}if(u){o.push(i),s++;continue}break}if(t.startsWith(`-`)&&t.length>1){let n=t.includes(`=`)?t.slice(1,t.indexOf(`=`)):t.slice(1);if(n.length===1){let t=r.aliasMap.get(n)??n;if(r.aliases.has(n)||r.flagNames.has(t)){s+=Y(e,s,t,!1,r.booleanFlags,a);continue}}break}break}return{subCommandIndex:-1,globalTokensBefore:a,tokensAfterSubcommand:[],suppressedTokens:o}}const bt=new Set([`--help`,`-h`,`--help-all`,`-H`,`--help-json`,`--version`]);function xt(e,t,n={}){let r=n.stopOnSuppressedNegation===!0||t?.unknownKeysMode===`strict`,i=t?gt(t):{aliasMap:new Map,booleanFlags:new Set,definedNames:new Set,flagNames:new Set,cliNames:new Set,aliases:new Set,negationMap:new Map,defaultNegationDisabledFields:new Set};for(let t=0;t<e.length;t++){let n=e[t];if(!n.startsWith(`-`))return t;if(n===`--`||bt.has(n))return-1;if(n.startsWith(`--`)){let{resolvedName:a,isNegated:o,isGlobal:s,isSuppressedNegation:c}=_t(n,i);if(s){vt(n,a,o,e[t+1],i.booleanFlags)&&t++;continue}if(c){if(r)return-1;continue}return-1}let a=n.includes(`=`)?n.slice(1,n.indexOf(`=`)):n.slice(1);if(a.length===1){let r=i.aliasMap.get(a)??a;if(i.aliases.has(a)||i.flagNames.has(r)){vt(n,r,!1,e[t+1],i.booleanFlags)&&t++;continue}}return-1}return-1}function X(e,t){let n=xt(e,t);return n>=0?e[n]:void 0}function St(e,t,r={}){let i=v(t),a=[...i],o=a.length>0;if(o&&e.length>0){if(r.globalExtracted){let t=yt(e,a,r.globalExtracted);if(t.subCommandIndex>=0){let n=Ct(t.globalTokensBefore,r.globalExtracted);return{helpRequested:!1,helpAllRequested:!1,helpJsonRequested:!1,versionRequested:!1,subCommand:e[t.subCommandIndex],remainingArgs:t.tokensAfterSubcommand,rawArgs:{},positionals:[],rest:[],unknownFlags:t.suppressedTokens,unknownGlobalFlags:t.suppressedTokens,rawGlobalArgs:n}}}else{let t=e[0];if(t&&!t.startsWith(`-`)&&i.has(t))return{helpRequested:!1,helpAllRequested:!1,helpJsonRequested:!1,versionRequested:!1,subCommand:t,remainingArgs:e.slice(1),rawArgs:{},positionals:[],rest:[],unknownFlags:[]}}}let s;t.args&&(s=c(t.args),r.skipValidation||(q(s),Ye(s),We(s),Je(s),Ge(s),Ke(s,o),qe(s),r.globalExtracted&&Qe(r.globalExtracted,s)));let l=e,u,d=[];if(r.globalExtracted){let{separated:t,globalParsed:n,suppressedTokens:i}=wt(e,r.globalExtracted,s);l=t,u=n,d=i}let f=e.indexOf(`--`),p=f>=0?e.slice(0,f):e,m=s?.fields.some(e=>e.overrideBuiltinAlias===!0&&n(e).includes(`H`))??!1,h=s?.fields.some(e=>e.overrideBuiltinAlias===!0&&n(e).includes(`h`))??!1,g=p.includes(`--help-all`)||!m&&p.includes(`-H`),_=p.includes(`--help-json`),y=!g&&!_&&(p.includes(`--help`)||!h&&p.includes(`-h`)),b=p.includes(`--version`);if(y||g||_||b)return{helpRequested:y,helpAllRequested:g,helpJsonRequested:_,versionRequested:b,subCommand:void 0,remainingArgs:[],rawArgs:{},positionals:[],rest:[],unknownFlags:[],unknownGlobalFlags:d,rawGlobalArgs:u};if(!s){let e=l.indexOf(`--`);return{helpRequested:!1,helpAllRequested:!1,helpJsonRequested:!1,versionRequested:!1,subCommand:void 0,remainingArgs:[],rawArgs:{},positionals:e>=0?l.slice(0,e):l,rest:e>=0?l.slice(e+1):[],unknownFlags:[],unknownGlobalFlags:d,rawGlobalArgs:u}}let x=J(s),S=mt(l,x),C=ht(S,s),w=new Set;for(let e of s.fields)if(e.env&&C[e.name]===void 0){let t=Array.isArray(e.env)?e.env:[e.env];for(let n of t){let t=process.env[n];if(t!==void 0){C[e.name]=lt(t,e.type),w.add(e.name);break}}}let T=new Set(s.fields.map(e=>e.name)),E=new Set(s.fields.map(e=>e.cliName)),D=new Set;for(let e of s.fields)for(let t of n(e))D.add(t);if(r.globalExtracted)for(let e of r.globalExtracted.fields){T.add(e.name),E.add(e.cliName);for(let t of n(e))D.add(t)}let O=[];for(let e of Object.keys(S.options))!T.has(e)&&!E.has(e)&&!D.has(e)&&O.push(e);return{helpRequested:!1,helpAllRequested:!1,helpJsonRequested:!1,versionRequested:!1,subCommand:void 0,remainingArgs:[],rawArgs:C,positionals:S.positionals,rest:S.rest,unknownFlags:O,unknownGlobalFlags:d,extractedFields:s,rawGlobalArgs:u,envFallbackFields:w}}function Ct(e,t){return e.length===0?{}:ht(mt(e,J(t)),t)}function wt(e,r,i){let a=gt(r),o=new Set(i?.fields.map(e=>e.name)??[]),s=new Set(i?.fields.map(e=>e.cliName)??[]),c=i?J(i):void 0,l=new Set(c?.aliasMap?.keys()??[]),u=new Set(c?.negationMap?.keys()??[]),d=new Set;for(let e of i?.fields??[])if(e.type===`boolean`&&e.negation===!0)for(let r of[e.cliName,...n(e)]){let e=`no-${r}`;d.add(e),d.add(t(e))}let f=[],p=[],m=[];for(let t=0;t<e.length;t++){let n=e[t];if(n===`--`){p.push(...e.slice(t));break}if(n.startsWith(`--`)){let{resolvedName:r,withoutDashes:i,isNegated:c,isGlobal:p,isSuppressedNegation:h}=_t(n,a),g=r,_=o.has(i)||o.has(g)||s.has(i)||s.has(g)||l.has(i)||l.has(g)||u.has(i)||u.has(g)||d.has(i);if(p&&!_){t+=Y(e,t,r,c,a.booleanFlags,f)-1;continue}if(h&&!_){m.push(i);continue}}else if(n.startsWith(`-`)&&n.length>1){let r=n.includes(`=`)?n.slice(1,n.indexOf(`=`)):n.slice(1);if(r.length===1){let n=a.aliasMap.get(r)??r;if((a.aliases.has(r)||a.flagNames.has(n))&&!l.has(r)){t+=Y(e,t,n,!1,a.booleanFlags,f)-1;continue}}}p.push(n)}return{separated:p,globalParsed:Ct(f,r),suppressedTokens:m}}function Tt(e,t){return o(t)?s(e,t):r().validate(e,t)}function Et(e){return e.map(e=>`${e.path.length>0?`${e.path.join(`.`)}: `:``}${e.message}`).join(`
30
+ `)}function Dt(e,t){let n=[];for(let e=0;e<=t.length;e++)n[e]=[e];for(let t=0;t<=e.length;t++)n[0][t]=t;for(let r=1;r<=t.length;r++)for(let i=1;i<=e.length;i++)t.charAt(r-1)===e.charAt(i-1)?n[r][i]=n[r-1][i-1]:n[r][i]=Math.min(n[r-1][i-1]+1,n[r][i-1]+1,n[r-1][i]+1);return n[t.length][e.length]}function Ot(e,t){let n=Math.max(2,Math.floor(e.length/2));return t.map(t=>({candidate:t,distance:Dt(e.toLowerCase(),t.toLowerCase())})).filter(({distance:e})=>e<=n).sort((e,t)=>e.distance-t.distance).map(({candidate:e})=>e).slice(0,3)}function kt(e,t){let n=Ot(e.replace(/^-{1,2}/,``),t),r=`${b.warning(`Warning: Unknown option:`)} ${b.bold(e)}`;if(n.length>0){r+=`\n\n${b.info(`Did you mean?`)}`;for(let e of n)r+=`\n ${y.arrow} ${b.option(`--${e}`)}`}return r}function At(e,t){return t&&e.stack?`${b.error(`Error:`)} ${e.message}\n\n${b.dim(e.stack)}`:`${b.error(`Error:`)} ${e.message}`}function Z(n){return new Proxy(n,{get(n,r,i){if(typeof r==`string`){if(r in n)return Reflect.get(n,r,i);let a=t(r);if(a!==r&&a in n)return Reflect.get(n,a,i);let o=e(r);if(o!==r&&o in n)return Reflect.get(n,o,i)}return Reflect.get(n,r,i)},has(n,r){if(typeof r==`string`){if(r in n)return!0;let i=t(r);if(i!==r&&i in n)return!0;let a=e(r);if(a!==r&&a in n)return!0}return Reflect.has(n,r)}})}async function jt(e,t,n){for(let r of t.fields)r.effect&&await r.effect(e[r.name],{name:r.name,args:e,...n!=null&&{globalArgs:n}})}const Mt={log:e=>console.log(e),error:e=>console.error(e),warn:e=>console.warn(e)};function Nt(n,r){Object.defineProperty(n,"$source",{value:n=>r.get(n)??r.get(t(n))??r.get(e(n))??`default`,enumerable:!1})}function Pt(e,t){Object.defineProperty(e,"$invocation",{value:t,enumerable:!1})}function Ft(e,t){let n=t.commandPath?.at(-1)??e.name;return t.aliasFor?{name:n,aliasFor:t.aliasFor}:{name:n}}async function It(e,t,n={}){let r=zt(n),i=n.captureLogs??!1,a=i?f():null;if(n.setup){a?.start();try{await n.setup({})}catch(e){let t=e instanceof Error?e:Error(String(e));if(n.cleanup)try{await n.cleanup({error:t})}catch{}return a?.stop(),{success:!1,error:t,exitCode:1,logs:a?.getLogs()??u()}}a?.stop()}let o=await $(e,t,{...n,handleSignals:!1,_globalExtracted:r,_globalCleanup:n.cleanup,_existingLogs:a?.getLogs()});if(n.cleanup){let e=i?f():null;e?.start();let t={error:o.success?void 0:o.error};try{await n.cleanup(t)}catch(t){if(o.success){let n=t instanceof Error?t:Error(String(t));return e?.stop(),{success:!1,error:n,exitCode:1,logs:d(o.logs,e?.getLogs()??u())}}}e?.stop();let r=e?.getLogs()??u();if(r.entries.length>0)return{...o,logs:d(o.logs,r)}}return o}function Lt(e,t,n){let r=X(t,n);return!r||!r.startsWith(`__`)?!1:Object.hasOwn(e.subCommands??{},r)}async function Rt(e,t={}){if(t.compileCache!==!1&&l(typeof t.compileCache==`string`?{cacheDir:t.compileCache}:{programName:e.name}),e.runMainHook)try{e.runMainHook(process.argv.slice(2))}catch{}let n=process.argv.slice(2),r;if(t.globalArgs)try{r=c(t.globalArgs)}catch{}let i=t;if(Lt(e,n,r)){let{setup:e,cleanup:n,prompt:r,globalArgs:a,...o}=t;i=o}let a=zt(i);if(i.skipValidation||tt(e),i.onUnknownSubcommand&&!e.run&&!Lt(e,n,r)){let t=v(e);if(t.size>0){let e=xt(n,a,{stopOnSuppressedNegation:a?.unknownKeysMode!==`passthrough`}),r=e>=0?n[e]:void 0;if(r&&!t.has(r)){let t=n.slice(e+1),a=await i.onUnknownSubcommand({commandPath:[],name:r,args:t,precedingArgs:n.slice(0,e)});if(typeof a==`number`)return await Q(),process.exit(a)}}}if(i.setup)try{await i.setup({})}catch(e){let t=e instanceof Error?e:Error(String(e));if(i.cleanup)try{await i.cleanup({error:t})}catch{}process.exit(1)}let o=await $(e,n,{debug:i.debug,captureLogs:i.captureLogs,skipValidation:i.skipValidation,handleSignals:!0,logger:i.logger,globalArgs:i.globalArgs,prompt:i.prompt,onUnknownSubcommand:i.onUnknownSubcommand,_globalExtracted:a,_globalCleanup:i.cleanup,_context:{commandPath:[],rootName:e.name,rootVersion:i.version,globalExtracted:a}});if((i.displayErrors??!0)&&!o.success&&o.error&&(i.logger??Mt).error(At(o.error,i.debug??!1)),i.cleanup){let e={error:o.success?void 0:o.error};try{await i.cleanup(e)}catch{}}await Q(),process.exit(o.exitCode)}async function Q(){await Promise.all([process.stdout,process.stderr].map(e=>e.writableLength>0?new Promise(t=>e.write(``,()=>t())):Promise.resolve()))}async function $(e,t,n={}){let r=n.logger??Mt,i=n._context??{commandPath:[],rootName:e.name,globalExtracted:n._globalExtracted},a=n.captureLogs??!1?f():null;a?.start();let o=()=>{let e=n._existingLogs??u(),t=a?.getLogs()??u();return d(e,t)};try{n.skipValidation||tt(e);let s=St(t,e,{skipValidation:n.skipValidation,globalExtracted:n._globalExtracted}),c={...n._parsedGlobalArgs,...s.rawGlobalArgs},l=i.commandPath??[];if(n.onUnknownSubcommand&&!e.run&&l.length>0){let r=v(e);if(r.size>0){let e=xt(t,n._globalExtracted,{stopOnSuppressedNegation:n._globalExtracted?.unknownKeysMode!==`passthrough`}),i=e>=0?t[e]:void 0;if(i&&!r.has(i)){let r=t.slice(e+1),s=await n.onUnknownSubcommand({commandPath:l,name:i,args:r,precedingArgs:[...n._precedingArgs??[],...t.slice(0,e)]});if(typeof s==`number`){if(a?.stop(),n.handleSignals){if(n._globalCleanup)try{await n._globalCleanup({error:void 0})}catch{}await Q(),process.exit(s)}return s===0?{success:!0,result:void 0,exitCode:0,logs:o()}:{success:!1,error:Error(`Plugin "${[...l,i].join(` `)}" exited with code ${s}`),exitCode:s,logs:o()}}}}}if(s.helpRequested||s.helpAllRequested||s.helpJsonRequested){let c=!1,l=h(e),u=v(e);if(l.length>0){let e=X(t,i.globalExtracted);e&&!u.has(e)&&(c=!0)}if(s.helpJsonRequested){let t=G(e,{context:i});r.log(JSON.stringify(t))}else{let t=H(e,{showSubcommands:n.showSubcommands??!0,showSubcommandOptions:s.helpAllRequested||n.showSubcommandOptions,context:i});r.log(t)}if(a?.stop(),c){let e=X(t,i.globalExtracted)??``,n=Ot(e,[...u]),r=n.length>0?` Did you mean: ${n.join(`, `)}?`:``;return{success:!1,error:Error(`Unknown subcommand: ${e}${r?`.${r}`:``}`),exitCode:1,logs:o()}}return{success:!0,result:void 0,exitCode:0,logs:o()}}if(s.unknownGlobalFlags&&s.unknownGlobalFlags.length>0){let e=i.globalExtracted?.unknownKeysMode??`strip`;if(e===`strict`)return a?.stop(),{success:!1,error:Error(`Unknown flags: ${s.unknownGlobalFlags.join(`, `)}`),exitCode:1,logs:o()};if(e===`strip`){let e=i.globalExtracted?.fields.map(e=>e.name)??[];for(let t of s.unknownGlobalFlags)r.error(kt(t,e))}}if(s.versionRequested){let e=i.rootVersion;return e&&r.log(e),a?.stop(),{success:!0,result:void 0,exitCode:0,logs:o()}}if(s.subCommand){let r=await p(e,s.subCommand);if(r){let e={commandPath:[...i.commandPath??[],s.subCommand],rootName:i.rootName,rootVersion:i.rootVersion,globalExtracted:i.globalExtracted,aliasFor:r.aliasFor};a?.stop();let l=new Set(n._globalExtracted?.unknownKeysMode===`passthrough`?[]:s.unknownGlobalFlags??[]),u=e=>e.startsWith(`--`)&&l.has(ut(e)),d=t.slice(0,t.length-s.remainingArgs.length-1).filter(e=>!u(e));return $(r.command,s.remainingArgs,{...n,_context:e,_existingLogs:o(),_parsedGlobalArgs:c,_precedingArgs:[...n._precedingArgs??[],...d]})}}let u=s.extractedFields?.fields.filter(e=>e.positional)??[],d=u.some(e=>e.type===`array`),f=[...s.positionals,...s.rest],m=d?[]:f.slice(u.length),g=d?[]:s.positionals.slice(u.length);if(h(e).length>0&&!s.subCommand&&!e.run&&m.length===0){if(e.defaultSubCommand&&s.unknownFlags.length===0){let r=e.subCommands?.[e.defaultSubCommand];if(r){let l=await _(r),u={commandPath:[...i.commandPath??[],e.defaultSubCommand],rootName:i.rootName,rootVersion:i.rootVersion,globalExtracted:i.globalExtracted};a?.stop();let d=new Set(n._globalExtracted?.unknownKeysMode===`passthrough`?[]:s.unknownGlobalFlags??[]),f=e=>e.startsWith(`--`)&&d.has(ut(e)),p=t.filter(e=>!f(e));return $(l,[],{...n,_context:u,_existingLogs:o(),_parsedGlobalArgs:c,_precedingArgs:[...n._precedingArgs??[],...p]})}}let l=H(e,{showSubcommands:n.showSubcommands??!0,context:i});return r.log(l),a?.stop(),{success:!0,result:void 0,exitCode:0,logs:o()}}if(s.unknownFlags.length>0){let e=s.extractedFields?.unknownKeysMode??`strip`,t=s.extractedFields?.fields.map(e=>e.name)??[];if(e===`strict`)return a?.stop(),{success:!1,error:Error(`Unknown flags: ${s.unknownFlags.join(`, `)}`),exitCode:1,logs:o()};if(e===`strip`)for(let e of s.unknownFlags)r.error(kt(e,t))}if(m.length>0){let t=v(e);if(t.size>0){let e=g.find(e=>!e.startsWith(`-`)&&!t.has(e));if(e){let n=Ot(e,[...t]),r=n.length>0?` Did you mean: ${n.join(`, `)}?`:``;return a?.stop(),{success:!1,error:Error(`Unknown subcommand: ${e}${r?`.${r}`:``}`),exitCode:1,logs:o()}}}let n=s.extractedFields?.unknownKeysMode??`strip`;if(n===`strict`)return a?.stop(),{success:!1,error:Error(`Unexpected positional argument${m.length>1?`s`:``}: ${m.join(`, `)}`),exitCode:1,logs:o()};if(n===`strip`)for(let e of m)(r.warn??r.error)(`Warning: Unexpected positional argument: ${e}`)}let y={},b=e.name===`__complete`,x=new Set(Object.keys(c)),C=new Set;if(n.globalArgs&&n._globalExtracted&&!b){for(let e of n._globalExtracted.fields)if(e.env&&c[e.name]===void 0){let t=Array.isArray(e.env)?e.env:[e.env];for(let n of t){let t=process.env[n];if(t!==void 0){c[e.name]=lt(t,e.type),C.add(e.name);break}}}if(n.prompt){let e=await n.prompt(c,n._globalExtracted);for(let[t,n]of Object.entries(e))n!==void 0&&(c[t]=n)}let e=Tt(c,n.globalArgs);if(!e.success)return a?.stop(),{success:!1,error:Error(Et(e.errors)),exitCode:1,logs:o()};y=e.data}if(!e.args){let t=new Map;for(let e of x)t.set(e,`cli`);for(let e of C)t.set(e,`env`);Nt(y,t),Pt(y,Ft(e,i));let r=Z(y);return n._globalExtracted&&!b&&await jt(r,n._globalExtracted,r),a?.stop(),await S(e,r,{handleSignals:n.handleSignals,captureLogs:n.captureLogs,existingLogs:o(),globalCleanup:n._globalCleanup})}let w=s.rawArgs,T=new Set;if(n.prompt&&s.extractedFields){let e=await n.prompt(w,s.extractedFields),t={...w};for(let[n,r]of Object.entries(e))r!==void 0&&(t[n]=r,T.add(n));w=t}let E=new Set;if(s.extractedFields)for(let e of s.extractedFields.fields)!(Object.hasOwn(s.rawArgs,e.name)||T.has(e.name))&&x.has(e.name)&&Object.hasOwn(y,e.name)&&(w={...w,[e.name]:y[e.name]},E.add(e.name));let D=Tt(w,e.args);if(!D.success)return a?.stop(),{success:!1,error:Error(Et(D.errors)),exitCode:1,logs:o()};let O=Z(D.data),k=new Map;for(let e of x)k.set(e,`cli`);for(let e of C)k.set(e,`env`);Nt(y,k),Pt(y,Ft(e,i));let A=Z(y);n._globalExtracted&&!b&&await jt(A,n._globalExtracted,A),s.extractedFields&&!b&&await jt(O,s.extractedFields,A);let j={...A,...O},M=new Map(k),N=s.envFallbackFields??new Set;for(let e of s.extractedFields?.fields??[]){if(E.has(e.name)){M.set(e.name,`cli`);continue}let t=Object.hasOwn(s.rawArgs,e.name)||N.has(e.name);M.set(e.name,t?N.has(e.name)?`env`:`cli`:`default`)}Nt(j,M),Pt(j,Ft(e,i));let P=Z(j);return a?.stop(),await S(e,P,{handleSignals:n.handleSignals,captureLogs:n.captureLogs,existingLogs:o(),globalCleanup:n._globalCleanup})}catch(e){let t=e instanceof Error?e:Error(String(e));return a?.stop(),{success:!1,error:t,exitCode:1,logs:o()}}}function zt(e){if(!e.globalArgs)return;let t=c(e.globalArgs);if(!e.skipValidation){q(t),Ye(t),We(t),Je(t),Ke(t,!0),qe(t);let e=t.fields.filter(e=>e.positional).map(e=>e.name);if(e.length>0)throw Error(`Global options schema must not contain positional arguments. Found: ${e.join(`, `)}`)}return t}export{ke as C,G as D,H as E,O,Ie as S,Pe as T,K as _,mt as a,je as b,it as c,We as d,q as f,qe as g,Ke as h,Et as i,k,Qe as l,Ge as m,Rt as n,at as o,Je as p,Z as r,Ye as s,It as t,tt as u,Fe as v,Ae as w,Ne as x,Me as y};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@politty/zod",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "A lightweight CLI framework inspired by citty with zod v4 registry integration for type-safe metadata management",
5
5
  "keywords": [
6
6
  "argument-parser",
@@ -71,15 +71,15 @@
71
71
  }
72
72
  },
73
73
  "dependencies": {
74
- "yaml": "^2.9.0"
74
+ "yaml": "^2.9.1"
75
75
  },
76
76
  "devDependencies": {
77
77
  "@politty/core": "0.1.0",
78
- "@types/node": "25.9.5",
78
+ "@types/node": "25.9.7",
79
79
  "@typescript/native-preview": "7.0.0-dev.20260707.2",
80
80
  "tsdown": "0.23.0",
81
81
  "typescript": "7.0.2",
82
- "zod": "4.5.4"
82
+ "zod": "4.6.5"
83
83
  },
84
84
  "peerDependencies": {
85
85
  "@clack/prompts": "^0.10.0 || ^0.11.0 || ^1.0.0",
@@ -1 +0,0 @@
1
- import{t as e}from"./cli-main-q4kY1qaL.js";export{e as runPolittyCli};
@@ -1 +0,0 @@
1
- import{t as e}from"./runner-bjKUtqk1.js";export{e as runCommand};
@@ -1,29 +0,0 @@
1
- import{a as e,i as t,n,o as r,t as i}from"./field-meta-D7G8a7IG.js";import{n as a,o,s,t as c}from"./schema-extractor-QpSHJvwI.js";import{n as l}from"./compile-cache-6u9hgeWu.js";import{n as u,r as d,t as f}from"./log-collector-DICKib75.js";import{a as p,c as m,n as h,o as g,r as _,t as v}from"./subcommand-router-D8GTMXYL.js";import{a as y,i as b}from"./logger-CoeDrmRr.js";import{stripVTControlCharacters as x}from"node:util";async function S(e,t,n={}){let r,i,a=n.captureLogs??!1?f():null;a?.start();let o={args:t},s={args:t,error:r},c;n.handleSignals&&(c=async t=>{c&&(process.off(`SIGINT`,c),process.off(`SIGTERM`,c));let r=Error(`Process interrupted`);if(s.error=r,e.cleanup)try{await e.cleanup(s)}catch(e){console.error(`Error during signal cleanup:`,e)}if(n.globalCleanup)try{await n.globalCleanup({error:r})}catch(e){console.error(`Error during global signal cleanup:`,e)}a?.stop(),process.stdout.writableNeedDrain&&await new Promise(e=>{let t=setTimeout(()=>{process.stdout.off(`drain`,n),e()},200),n=()=>{clearTimeout(t),e()};process.stdout.once(`drain`,n)}),process.exit(1)},process.on(`SIGINT`,c),process.on(`SIGTERM`,c));try{e.setup&&await e.setup(o),e.run&&(i=await e.run(t))}catch(e){r=e instanceof Error?e:Error(String(e))}finally{c&&(process.off(`SIGINT`,c),process.off(`SIGTERM`,c))}if(e.cleanup){s.error=r;try{await e.cleanup(s)}catch(e){r||=e instanceof Error?e:Error(String(e))}}a?.stop();let l=n.existingLogs??u(),p=a?.getLogs()??u(),m=d(l,p);return r?{success:!1,error:r,exitCode:1,logs:m}:{success:!0,result:i,exitCode:0,logs:m}}function C(e){return e<=31||e>=127&&e<=159||e>=768&&e<=879||e>=6832&&e<=6911||e>=7616&&e<=7679||e>=8400&&e<=8447||e>=65056&&e<=65071||e===8203||e>=8204&&e<=8207||e===65279||e>=65024&&e<=65039||e>=917760&&e<=917999}function w(e){return e>=4352&&e<=4447||e>=11904&&e<=12350||e>=12353&&e<=13311||e>=13312&&e<=19903||e>=19968&&e<=40959||e>=40960&&e<=42191||e>=43360&&e<=43391||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65135||e>=65280&&e<=65376||e>=65504&&e<=65510||e>=110592&&e<=110959||e>=127488&&e<=127569||e>=131072&&e<=262141||e>=9728&&e<=10175||e>=126976&&e<=129791}function T(e){let t=!1,n=!1,r=!1;for(let i of e){let e=i.codePointAt(0);if(e===65039){r=!0;continue}C(e)||(t=!0,w(e)&&(n=!0))}return t?n||r?2:1:0}const E=(()=>{try{return new Intl.Segmenter(`en`,{granularity:`grapheme`})}catch{return}})();function D(e){if(e.length===0)return 0;let t=e.includes(`\x1B`)||e.includes(`›`)?x(e):e,n=0;if(E)for(let{segment:e}of E.segment(t))n+=T(e);else for(let e of t)n+=T(e);return n}function O(e){let t=[],n=e.replace(/`([^`]+)`/g,(e,n)=>{let r=t.length;return t.push(b.cyan(n)),`\x00CODE${r}\x00`});return n=n.replace(/\*\*(.+?)\*\*/g,(e,t)=>b.bold(t)),n=n.replace(/__(.+?)__/g,(e,t)=>b.bold(t)),n=n.replace(/\*(.+?)\*/g,(e,t)=>b.italic(t)),n=n.replace(/(?<!\w)_(.+?)_(?!\w)/g,(e,t)=>b.italic(t)),n=n.replace(/\[([^\]]+)\]\(([^)]+)\)/g,(e,t,n)=>`${b.underline(t)} ${b.dim(`(${n})`)}`),n=n.replace(/\x00CODE(\d+)\x00/g,(e,n)=>t[Number(n)]),n}function k(e){return re(e.split(`
2
- `)).map(ce).join(`
3
-
4
- `)}const A=/^(#{1,6})\s+(.+)$/,j=/^(?:---+|\*\*\*+|___+)\s*$/,M=/^>\s?(.*)$/,N=/^-\s+(.+)$/,P=/^(\d+)[.)]\s+(.+)$/,ee=/^(`{3,}|~{3,})(\S*)\s*$/,te=/^\[!(NOTE|TIP|IMPORTANT|WARNING|CAUTION)\]\s*$/,F=/^\|(.+)\|$/,ne=/^\|(\s*:?-+:?\s*\|)+$/;function re(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(r.trim()===``){n++;continue}let i=r.match(ee);if(i){let r=i[1],a=i[2]??``,o=[];for(n++;n<e.length;){if(e[n].startsWith(r.charAt(0).repeat(r.length))&&e[n].trim()===r.charAt(0).repeat(Math.max(r.length,e[n].trim().length))){n++;break}o.push(e[n]),n++}t.push({type:`code`,lang:a,lines:o});continue}let a=r.match(A);if(a){t.push({type:`heading`,level:a[1].length,content:a[2]}),n++;continue}if(j.test(r)){t.push({type:`hr`}),n++;continue}if(M.test(r)){let r=[];for(;n<e.length;){let t=e[n].match(M);if(t)r.push(t[1]),n++;else break}if(r.length>0){let e=r[0].match(te);if(e){let n=r.slice(1).filter(e=>e!==``);t.push({type:`alert`,alertType:e[1],lines:n});continue}}t.push({type:`blockquote`,lines:r});continue}if(N.test(r)){let r=[];for(;n<e.length;){let t=e[n].match(N);if(t)r.push(t[1]),n++;else break}t.push({type:`ul`,items:r});continue}let o=r.match(P);if(o){let r=Number(o[1]),i=[];for(;n<e.length;){let t=e[n].match(P);if(t)i.push(t[2]),n++;else break}t.push({type:`ol`,items:i,start:r});continue}if(F.test(r)&&n+1<e.length&&ne.test(e[n+1])){let i=ie(r),a=ae(e[n+1]);n+=2;let o=[];for(;n<e.length&&F.test(e[n]);)o.push(ie(e[n])),n++;t.push({type:`table`,headers:i,alignments:a,rows:o});continue}let s=[];for(;n<e.length;){let t=e[n];if(t.trim()===``||A.test(t)||j.test(t)||M.test(t)||N.test(t)||P.test(t)||ee.test(t)||F.test(t)&&n+1<e.length&&ne.test(e[n+1]))break;s.push(t),n++}s.length>0&&t.push({type:`paragraph`,lines:s})}return t}function ie(e){return e.slice(1,-1).split(`|`).map(e=>e.trim())}function ae(e){return e.slice(1,-1).split(`|`).map(e=>{let t=e.trim();return t.startsWith(`:`)&&t.endsWith(`:`)?`center`:t.endsWith(`:`)?`right`:`left`})}function oe(e,t,n){let r=D(e),i=Math.max(0,t-r);if(n===`right`)return` `.repeat(i)+e;if(n===`center`){let t=Math.floor(i/2);return` `.repeat(t)+e+` `.repeat(i-t)}return e+` `.repeat(i)}const se={NOTE:{icon:`ℹ`,label:`Note`,styleFn:b.cyan},TIP:{icon:`💡`,label:`Tip`,styleFn:b.green},IMPORTANT:{icon:`❗`,label:`Important`,styleFn:b.magenta},WARNING:{icon:`⚠`,label:`Warning`,styleFn:b.yellow},CAUTION:{icon:`🔴`,label:`Caution`,styleFn:b.red}};function ce(e){switch(e.type){case`heading`:return b.green(b.bold(O(e.content)));case`hr`:return b.dim(`─`.repeat(40));case`blockquote`:{let t=b.dim(`│ `);return e.lines.map(e=>`${t}${O(e)}`).join(`
5
- `)}case`alert`:{let{icon:t,label:n,styleFn:r}=se[e.alertType],i=r(b.bold(`│`))+` `,a=`${i}${r(t)} ${r(n)}`;return e.lines.length===0?a:`${a}\n${e.lines.map(e=>`${i}${O(e)}`).join(`
6
- `)}`}case`ul`:return e.items.map(e=>`${b.dim(`•`)} ${O(e)}`).join(`
7
- `);case`ol`:{let t=e.start+e.items.length-1,n=String(t).length;return e.items.map((t,r)=>{let i=String(e.start+r).padStart(n,` `);return`${b.dim(`${i}.`)} ${O(t)}`}).join(`
8
- `)}case`table`:{let t=e.headers.length,n=e.headers.map(e=>O(e)),r=e.rows.map(e=>Array.from({length:t},(t,n)=>O(e[n]??``))),i=n.map((e,t)=>{let n=D(e),i=r.map(e=>D(e[t]));return Math.max(n,...i)}),a=b.dim(`│`),o=b.dim(`┌─${i.map(e=>`─`.repeat(e)).join(`─┬─`)}─┐`),s=b.dim(`├─${i.map(e=>`─`.repeat(e)).join(`─┼─`)}─┤`),c=b.dim(`└─${i.map(e=>`─`.repeat(e)).join(`─┴─`)}─┘`);return[o,`${a} ${n.map((t,n)=>b.bold(oe(t,i[n],e.alignments[n]??`left`))).join(` ${a} `)} ${a}`,s,...r.map(t=>{let n=t.map((t,n)=>oe(t,i[n],e.alignments[n]??`left`));return`${a} ${n.join(` ${a} `)} ${a}`}),c].join(`
9
- `)}case`code`:return e.lines.map(e=>` ${b.yellow(e)}`).join(`
10
- `);case`paragraph`:return O(e.lines.join(` `))}}const I={help:`Show help`,helpAll:`Show help with all subcommand options`,helpJson:`Show help as JSON`,version:`Show version`};function le(e){return!e.startsWith(`__`)}function L(e){return Object.entries(e).filter(([e])=>le(e))}function ue(e,t){return t?.rootName&&t.commandPath&&t.commandPath.length>0?t.commandPath.join(` `):e.name??`command`}function de(e,t){return t?.rootName&&t.commandPath&&t.commandPath.length>0?`${t.rootName} ${t.commandPath.join(` `)}`:e.name??`command`}function fe(e,t){let n=[],r=de(e,t);n.push(b.commandName(r)),t?.globalExtracted?.fields.length&&n.push(b.placeholder(`[global options]`));let i=a(e);if(i){let t=i.fields.filter(e=>e.positional);i.fields.filter(e=>!e.positional).length>0&&n.push(b.placeholder(`[options]`)),e.subCommands&&L(e.subCommands).length>0&&(e.run||e.defaultSubCommand?n.push(b.placeholder(`[command]`)):n.push(b.option(`<command>`)));for(let e of t)e.required?n.push(b.option(`<${e.name}>`)):n.push(b.placeholder(`[${e.name}]`))}else e.subCommands&&L(e.subCommands).length>0&&(e.run||e.defaultSubCommand?n.push(b.placeholder(`[command]`)):n.push(b.option(`<command>`)));return n.join(` `)}function pe(e,t={},r){let i=[],o={help:t.help??I.help,helpAll:t.helpAll??I.helpAll,helpJson:t.helpJson??I.helpJson,version:t.version??I.version},s=a(e),c=s?.fields.some(e=>e.overrideBuiltinAlias===!0&&n(e).includes(`h`))??!1,l=s?.fields.some(e=>e.overrideBuiltinAlias===!0&&n(e).includes(`H`))??!1;if(c?i.push(V(b.option(`--help`),o.help)):i.push(V(`${b.option(`-h`)}, ${b.option(`--help`)}`,o.help)),l?i.push(V(b.option(`--help-all`),o.helpAll)):i.push(V(`${b.option(`-H`)}, ${b.option(`--help-all`)}`,o.helpAll)),i.push(V(b.option(`--help-json`),o.helpJson)),r?.rootVersion&&i.push(V(b.option(`--version`),o.version)),!s)return i.join(`
11
- `);if(s.schemaType===`discriminatedUnion`&&s.discriminator)return me(s,e,i);if(s.schemaType===`union`&&s.unionOptions||s.schemaType===`xor`&&s.unionOptions)return he(s,e,i);let u=s.fields.filter(e=>!e.positional);for(let e of u){let t=z(e),n=e.description??``;e.defaultValue!==void 0&&(n+=` ${b.defaultValue(`(default: ${JSON.stringify(e.defaultValue)})`)}`),e.required&&(n+=` ${b.required(`(required)`)}`);let r=B(e.env);r&&(n+=` ${r}`),i.push(V(t,n));let a=R(e);a&&i.push(a)}return i.join(`
12
- `)}function R(e,t=0,n=0){return!e.negationDisplay||!e.negationDescription?null:V(b.option(`--${e.negationDisplay}`),`${e.negationDescription} ${b.dim(`(↔ --${e.cliName})`)}`,t,n)}function me(e,t,n){let r=e.discriminator,i=e.variants??[],a=e.fields.find(e=>e.name===r);if(a){let t=i.map(e=>e.discriminatorValue).join(`|`),o=`${b.option(`--${r}`)} ${b.placeholder(`<${t}>`)}`,s=e.description??a.description??`Action to perform`;n.push(V(o,s))}let o=new Set,s=new Set;for(let e of i)for(let t of e.fields)s.add(t.name);for(let e of s)e!==r&&i.every(t=>t.fields.some(t=>t.name===e))&&o.add(e);for(let t of o){let r=e.fields.find(e=>e.name===t);if(r&&!r.positional){let e=z(r),t=r.description??``;r.defaultValue!==void 0&&(t+=` ${b.defaultValue(`(default: ${JSON.stringify(r.defaultValue)})`)}`);let i=B(r.env);i&&(t+=` ${i}`),n.push(V(e,t));let a=R(r);a&&n.push(a)}}for(let e of i){let t=e.fields.filter(e=>e.name!==r&&!o.has(e.name)&&!e.positional);if(t.length>0){n.push(``);let i=e.description?`${b.dim(`When`)} ${b.option(r)}=${b.bold(e.discriminatorValue)}: ${e.description}`:`${b.dim(`When`)} ${b.option(r)}=${b.bold(e.discriminatorValue)}:`;n.push(i);for(let e of t){let t=z(e),r=e.description??``;e.defaultValue!==void 0&&(r+=` ${b.defaultValue(`(default: ${JSON.stringify(e.defaultValue)})`)}`),e.required&&(r+=` ${b.required(`(required)`)}`);let i=B(e.env);i&&(r+=` ${i}`),n.push(V(t,r,1));let a=R(e,1);a&&n.push(a)}}}return n.join(`
13
- `)}function he(e,t,n){let r=e.unionOptions??[],i=new Set,a=new Set;for(let e of r)for(let t of e.fields)a.add(t.name);for(let e of a)r.every(t=>t.fields.some(t=>t.name===e))&&i.add(e);for(let t of i){let r=e.fields.find(e=>e.name===t);if(r&&!r.positional){let e=z(r),t=r.description??``;r.defaultValue!==void 0&&(t+=` ${b.defaultValue(`(default: ${JSON.stringify(r.defaultValue)})`)}`);let i=B(r.env);i&&(t+=` ${i}`),n.push(V(e,t));let a=R(r);a&&n.push(a)}}for(let e=0;e<r.length;e++){let t=r[e];if(!t)continue;let a=t.fields.filter(e=>!i.has(e.name)&&!e.positional),o=t.description??`Variant ${e+1}`;if(a.length>0){n.push(``),n.push(` ${b.bold(`${o}:`)}`);for(let e of a){let t=z(e),r=e.description??``;e.defaultValue!==void 0&&(r+=` ${b.defaultValue(`(default: ${JSON.stringify(e.defaultValue)})`)}`),e.required&&(r+=` ${b.required(`(required)`)}`);let i=B(e.env);i&&(r+=` ${i}`),n.push(V(t,r,1));let a=R(e,1);a&&n.push(a)}}else n.push(``),n.push(` ${b.bold(`${o}:`)}`),n.push(` ${b.dim(b.italic(`no options`))}`)}return n.join(`
14
- `)}function z(e){let t=[];if(e.alias)for(let n of e.alias)n.length===1&&t.push(b.option(`-${n}`));let n=b.option(`--${e.cliName}`);if(e.type!==`boolean`){let t=e.placeholder??e.cliName.toUpperCase();n+=` ${b.placeholder(`<${t}>`)}`}if(t.push(n),e.alias){for(let n of e.alias)if(n.length>1){let r=b.option(`--${n}`);if(e.type!==`boolean`){let t=e.placeholder??e.cliName.toUpperCase();r+=` ${b.placeholder(`<${t}>`)}`}t.push(r)}}let r=t.join(`, `);return e.type===`boolean`&&e.negationDisplay&&!e.negationDescription?`${r} / ${b.option(`--${e.negationDisplay}`)}`:r}function B(e){if(!e)return``;let t=Array.isArray(e)?e:[e];return b.dim(`[env: ${t.join(`, `)}]`)}function ge(e){return e.replace(/\x1B\[[0-9;]*m/g,``)}function _e(e,t){let n=ge(e).length,r=Math.max(0,t-n);return e+` `.repeat(r)}function ve(e,t){if(!e.includes(`
15
- `))return e;let n=` `.repeat(t);return e.split(`
16
- `).join(`\n${n}`)}function V(e,t,n=0,r=0){let i=` `.repeat(n),a=ge(e).length,o=32-n*2+r,s=o+2+n*2,c=ve(t,s);return a>=o?`${i} ${e}\n${` `.repeat(s)}${c}`:`${i} ${_e(e,o)}${c}`}function ye(e,t=0,n=0){let r=z(e),i=e.description??``;e.defaultValue!==void 0&&(i+=` ${b.defaultValue(`(default: ${JSON.stringify(e.defaultValue)})`)}`),e.required&&(i+=` ${b.required(`(required)`)}`);let a=B(e.env);return a&&(i+=` ${a}`),V(r,i,t,n)}function be(e){let t=[];for(let n of e.fields){if(n.positional)continue;t.push(ye(n));let e=R(n);e&&t.push(e)}return t.join(`
17
- `)}function xe(e,t){let n=[],r=a(e);if(r){let e=r.fields.filter(e=>!e.positional);for(let r of e){let e=z(r),i=r.description??``;r.defaultValue!==void 0&&(i+=` ${b.defaultValue(`(default: ${JSON.stringify(r.defaultValue)})`)}`);let a=B(r.env);a&&(i+=` ${a}`),n.push(V(e,i,t,2));let o=R(r,t,2);o&&n.push(o)}}return n}function Se(e,t,n){let r=[];for(let[i,a]of L(e)){let e=m(a),o=t?`${t} ${i}`:i,s=e?.description??``,c=e?.aliases,l=c&&c.length>0?`${o}, ${c.join(`, `)}`:o;if(r.push(V(b.command(l),s,n)),e){let t=xe(e,n+1);r.push(...t);let i=e.subCommands?Object.fromEntries(L(e.subCommands)):void 0;if(i&&Object.keys(i).length>0){let e=Se(i,o,n);r.push(...e)}}}return r}function Ce(e,t){let n=[],r=t.context,i=ue(e,r);if(i){let e=b.commandName(i);r?.rootName&&r.commandPath&&r.commandPath.length>0?r.rootVersion?e+=` ${b.version(`(${r.rootName} v${r.rootVersion})`)}`:e+=` ${b.version(`(${r.rootName})`)}`:r?.rootVersion&&(e+=` ${b.version(`v${r.rootVersion}`)}`),n.push(e)}r?.aliasFor&&n.push(b.dim(`Alias for ${b.commandName(r.aliasFor)}`)),e.description&&n.push(e.description),!r?.aliasFor&&e.aliases&&e.aliases.length>0&&n.push(`${b.sectionHeader(`Aliases:`)} ${e.aliases.map(e=>b.command(e)).join(`, `)}`),n.push(`${b.sectionHeader(`Usage:`)} ${fe(e,r)}`);let a=pe(e,t.descriptions,r);if(a&&n.push(`${b.sectionHeader(`Options:`)}\n${a}`),r?.globalExtracted?.fields.length&&n.push(`${b.sectionHeader(`Global Options:`)}\n${be(r.globalExtracted)}`),t.showSubcommands!==!1&&e.subCommands&&L(e.subCommands).length>0){let i=r?.commandPath?.join(` `)??``,a=Object.fromEntries(L(e.subCommands));if(t.showSubcommandOptions){let e=Se(a,i,0);n.push(`${b.sectionHeader(`Commands:`)}\n${e.join(`
18
- `)}`)}else{let e=[];for(let[t,n]of Object.entries(a)){let r=m(n),a=r?.description??``,o=i?`${i} ${t}`:t,s=r?.aliases,c=s&&s.length>0?`${o}, ${s.join(`, `)}`:o;e.push(V(b.command(c),a))}n.push(`${b.sectionHeader(`Commands:`)}\n${e.join(`
19
- `)}`)}}if(e.examples&&e.examples.length>0){let t=De(e.examples,r);n.push(`${b.sectionHeader(`Examples:`)}\n${t}`)}if(e.notes){let t=k(e.notes).split(`
20
- `).map(e=>e===``?``:` ${e}`).join(`
21
- `);n.push(`${b.sectionHeader(`Notes:`)}\n${t}`)}return`\n${n.join(`
22
-
23
- `)}\n`}function H(e){let t={name:e.name,cliName:e.cliName,positional:e.positional,required:e.required,type:e.type};return e.alias&&(t.alias=e.alias),e.description!==void 0&&(t.description=e.description),e.placeholder!==void 0&&(t.placeholder=e.placeholder),e.env!==void 0&&(t.env=e.env),e.defaultValue!==void 0&&(t.defaultValue=e.defaultValue),e.enumValues!==void 0&&(t.enumValues=e.enumValues),e.negation!==void 0&&(t.negation=e.negation),e.negationDisplay!==void 0&&(t.negationDisplay=e.negationDisplay),e.negationDescription!==void 0&&(t.negationDescription=e.negationDescription),t}function we(e,t){let n=new Set;for(let r of e)for(let e of r.fields)e.name!==t&&n.add(e.name);let r=new Set;for(let t of n)e.every(e=>e.fields.some(e=>e.name===t))&&r.add(t);return r}function Te(e,t){let n=de(e,t),r=!!t?.globalExtracted?.fields.length,i=e.subCommands&&L(e.subCommands).length>0?e.run?`optional`:`required`:void 0,o=a(e);return{commandName:n,hasGlobalOptions:r,hasOptions:o?o.fields.some(e=>!e.positional):!1,subcommand:i,positionals:o?o.fields.filter(e=>e.positional).map(e=>({name:e.name,required:e.required})):[]}}function Ee(e,t={}){let n=t.context,r=n?.commandPath??[],i={help:t.descriptions?.help??I.help,helpAll:t.descriptions?.helpAll??I.helpAll,helpJson:t.descriptions?.helpJson??I.helpJson,...n?.rootVersion?{version:t.descriptions?.version??I.version}:{}},o=a(e),s,c=[],l=[],u,d,f;if(o){if(s=o.schemaType,c=o.fields.filter(e=>e.positional).map(H),o.schemaType===`discriminatedUnion`&&o.discriminator&&o.variants){let e=o.discriminator;u=e;let t=o.variants,n=we(t,e),r=o.fields.find(t=>t.name===e&&!t.positional),i=o.fields.filter(e=>!e.positional&&n.has(e.name));l=[...r?[{...H(r),description:o.description??r.description??`Action to perform`}]:[],...i.map(H)],d=t.map(t=>({discriminatorValue:t.discriminatorValue,description:t.description,fields:t.fields.filter(t=>t.name!==e&&!n.has(t.name)).map(H)}))}else if((o.schemaType===`union`||o.schemaType===`xor`)&&o.unionOptions){let e=o.unionOptions,t=we(e);l=o.fields.filter(e=>!e.positional&&t.has(e.name)).map(H),f=e.map(e=>({description:e.description,fields:e.fields.filter(e=>!t.has(e.name)).map(H)}))}else l=o.fields.filter(e=>!e.positional).map(H)}let p=n?.globalExtracted?.fields.length?n.globalExtracted.fields.filter(e=>!e.positional).map(H):void 0,h;if(e.subCommands){let i=L(e.subCommands);i.length>0&&(h=i.map(([i,a])=>{let o=m(a);if(!o)return{name:i,unresolved:!0};let s={commandPath:[...r,i],rootName:n?.rootName??e.name,rootVersion:n?.rootVersion,globalExtracted:n?.globalExtracted};return{name:i,aliases:o.aliases,data:Ee(o,{descriptions:t.descriptions,context:s})}}))}return{name:e.name??`command`,commandPath:r,rootName:n?.rootName,version:n?.rootVersion,aliasFor:n?.aliasFor,description:e.description,aliases:e.aliases,usage:Te(e,n),builtinOptions:i,schemaType:s,positionals:c,options:l,discriminator:u,variants:d,unionOptions:f,globalOptions:p,subcommands:h,examples:e.examples,notes:e.notes}}function De(e,t){let n=[],r=t?.rootName?`${t.rootName} `:``,i=t?.commandPath?.join(` `)??``,a=i?`${r}${i} `:r;for(let t of e){if(n.push(` ${b.dim(t.desc).split(`
24
- `).join(`
25
- `)}`),n.push(` ${b.dim(`$`)} ${a}${t.cmd}`),t.output)for(let e of t.output.split(`
26
- `))n.push(` ${e}`);n.push(``)}return n.length>0&&n[n.length-1]===``&&n.pop(),n.join(`
27
- `)}var Oe=class extends Error{constructor(e){super(e),this.name=`PositionalConfigError`}},ke=class extends Error{constructor(e){super(e),this.name=`ReservedAliasError`}},Ae=class extends Error{constructor(e){super(e),this.name=`DuplicateFieldError`}},je=class extends Error{constructor(e){super(e),this.name=`DuplicateAliasError`}},Me=class extends Error{constructor(e){super(e),this.name=`CaseVariantCollisionError`}},Ne=class extends Error{constructor(e){super(e),this.name=`DuplicateNegationError`}},Pe=class extends Error{constructor(e){super(e),this.name=`ReservedFieldNameError`}},Fe=class extends Error{constructor(e){super(e),this.name=`DefaultSubCommandError`}},Ie=class extends Error{constructor(e){super(e),this.name=`FieldTypeConflictError`}};function Le(e,t){let n=[],r=new Map;for(let i of e.fields)r.has(i.name)&&n.push({commandPath:t,type:`duplicate_field`,message:`Duplicate field name "${i.name}" detected.`,field:i.name}),r.set(i.name,i.name);return n}function Re(e,n){let r=[],i=new Map;for(let a of e.fields){let e=t(a.name),o=i.get(e);o&&o!==a.name&&r.push({commandPath:n,type:`case_variant_collision`,message:`Fields "${o}" and "${a.name}" are case variants of each other and would collide.`,field:a.name}),i.set(e,a.name)}return r}function ze(e,r){let i=[],a=new Map,o=new Set(e.fields.map(e=>e.name)),s=new Set(e.fields.map(e=>e.cliName)),c=(e,t,n)=>{(o.has(e)||s.has(e))&&i.push({commandPath:r,type:`duplicate_alias`,message:`Alias "${e}" for field "${t}" conflicts with existing field name or CLI name "${e}".`,field:t});let c=a.get(e);if(c&&c!==t){let a=n?` (derived camelCase variant)`:``;i.push({commandPath:r,type:`duplicate_alias`,message:`Duplicate alias "${e}"${a} detected. Both "${c}" and "${t}" use the same alias.`,field:t})}a.set(e,t)};for(let r of e.fields){let e=n(r);if(e.length!==0){for(let n of e)if(c(n,r.name,!1),n.length>1&&n.includes(`-`)){let e=t(n);e!==n&&!o.has(e)&&c(e,r.name,!0)}}}return i}function Be(e,r){let i=[],a=new Map,o=(e,t,n)=>{a.has(e)||a.set(e,{field:t,kind:n})};for(let r of e.fields){if(o(r.name,r.name,`field name`),r.name.includes(`-`)){let e=t(r.name);e!==r.name&&o(e,r.name,`field name`)}if(r.cliName!==r.name&&o(r.cliName,r.name,`CLI name`),r.cliName.includes(`-`)){let e=t(r.cliName);e!==r.cliName&&o(e,r.name,`CLI name`)}for(let e of n(r))if(o(e,r.name,`alias`),e.length>1&&e.includes(`-`)){let n=t(e);n!==e&&o(n,r.name,`alias`)}if(r.type===`boolean`&&r.negation===!0){let e=`no-${r.cliName}`;o(e,r.name,`default negation`);let n=t(r.cliName),i=`no${n[0]?.toUpperCase()??``}${n.slice(1)}`;i!==e&&o(i,r.name,`default negation`)}}let s=new Map,c=(e,t,n)=>{let o=a.get(e);if(o){let a=n?` (derived camelCase variant)`:``,s=o.field===t?`the same field's own ${o.kind} "${e}"`:`${o.kind} "${e}" of field "${o.field}"`;i.push({commandPath:r,type:`duplicate_negation`,message:`Negation "${e}"${a} for field "${t}" conflicts with ${s}.`,field:t})}let c=s.get(e);if(c&&c!==t){let a=n?` (derived camelCase variant)`:``;i.push({commandPath:r,type:`duplicate_negation`,message:`Duplicate negation "${e}"${a} detected. Both "${c}" and "${t}" use the same negation name.`,field:t})}s.set(e,t)};for(let n of e.fields)if(typeof n.negation==`string`&&(c(n.negation,n.name,!1),n.negation.includes(`-`))){let e=t(n.negation);e!==n.negation&&c(e,n.name,!0)}return i}function Ve(e,t){let n=[],r=e.fields.filter(e=>e.positional),i=null,a=null;for(let e of r)i!==null&&n.push({commandPath:t,type:`positional_config`,message:`Positional argument "${e.name}" cannot follow array positional argument "${i}".`,field:e.name}),e.type===`array`&&a!==null&&n.push({commandPath:t,type:`positional_config`,message:`Array positional "${e.name}" cannot be used with optional positional "${a}" (ambiguous parsing).`,field:e.name}),a!==null&&e.required&&n.push({commandPath:t,type:`positional_config`,message:`Required positional "${e.name}" cannot follow optional positional "${a}".`,field:e.name}),e.type===`array`&&(i=e.name),e.required||(a=e.name);return n}function He(e,t){let r=[];for(let a of e.fields){if(a.overrideBuiltinAlias!==!0)for(let e of n(a))(e===`h`||e===`H`)&&r.push({commandPath:t,type:`reserved_alias`,message:`Alias "${e}" is reserved for --${e===`h`?`help`:`help-all`}. To override this, set { overrideBuiltinAlias: true } for "${a.name}" and keep the alias where it is currently defined (in alias or hiddenAlias).`,field:a.name});let e=new Set([a.cliName,...n(a)]);for(let n of e){if(!i.has(n))continue;let e=n===a.cliName;r.push({commandPath:t,type:`reserved_alias`,message:`${e?`Field "${a.name}"`:`Alias "${n}" for field "${a.name}"`} collides with the built-in --${n} option, which always takes precedence. Rename the field or its alias; this collision cannot be overridden.`,field:a.name})}}return r}function Ue(e,t){let n=[];for(let r of e.fields)r.name.startsWith(`$`)&&n.push({commandPath:t,type:`reserved_field_name`,message:`Field "${r.name}" starts with "$", which is reserved for framework-injected helpers (e.g. $source).`,field:r.name});return n}function We(e){let t=Le(e,[]);if(t.length>0)throw new Ae(`Duplicate field name "${t[0]?.field??`unknown`}" detected. Each field must have a unique name.`)}function Ge(e){let t=ze(e,[]);if(t.length>0){let e=t[0];throw new je(e.message)}}function Ke(e){let t=Ve(e,[]);if(t.length>0){let e=t[0];throw new Oe(e.message)}}function qe(e,t){let n=He(e,[]);if(n.length>0)throw new ke(n[0].message)}function U(e){let t=Ue(e,[]);if(t.length>0){let e=t[0];throw new Pe(e.message)}}function W(e){let t=Be(e,[]);if(t.length>0){let e=t[0];throw new Ne(e.message)}}function G(e){let t=Re(e,[]);if(t.length>0){let e=t[0];throw new Me(e.message)}}function Je(e,t){if(e.type!==t.type||e.positional!==t.positional)return!1;let n=e.enumValues,r=t.enumValues;if(!n&&!r)return!0;if(!n||!r)return!1;let i=new Set(n),a=new Set(r);if(i.size!==a.size)return!1;for(let e of i)if(!a.has(e))return!1;return!0}function Ye(e,n,r){let i=[],a=new Map;for(let n of e.fields)a.set(t(n.name),n);for(let e of n.fields){let n=t(e.name),o=a.get(n);if(o){if(o.name!==e.name){i.push({commandPath:r,type:`case_variant_collision`,message:`Global field "${o.name}" and command field "${e.name}" are case variants of each other and would collide.`,field:e.name});continue}Je(o,e)||i.push({commandPath:r,type:`field_type_conflict`,message:`Global field "${o.name}" and command field "${e.name}" share the same name but have different definitions.`,field:e.name})}}return i}function Xe(e,t){let n=Ye(e,t,[])[0];if(n)throw n.type===`case_variant_collision`?new Me(n.message):new Ie(n.message)}function Ze(e,t,n){return[...Le(e,n),...Re(e,n),...ze(e,n),...Be(e,n),...Ve(e,n),...He(e,n),...Ue(e,n)]}function Qe(e,t){let n=e,r=[];if(n.defaultSubCommand===void 0)return r;n.run&&r.push({commandPath:t,type:`default_subcommand_conflict`,message:`Command "${n.name}" defines both "run" and "defaultSubCommand". Define only one.`});let i=e.subCommands?Object.keys(e.subCommands):[];return i.includes(n.defaultSubCommand)||r.push({commandPath:t,type:`default_subcommand_not_found`,message:`defaultSubCommand "${n.defaultSubCommand}" does not match any subCommands key of "${n.name}". Registered: ${i.length>0?i.join(`, `):`(none)`}.`,field:n.defaultSubCommand}),r}function K(e){let t=Qe(e,[]);if(t.length>0)throw new Fe(t[0].message)}function $e(e,t){let n=[];if(!e.subCommands)return n;let r=new Map;for(let[t]of Object.entries(e.subCommands))r.set(t,t);for(let[i,a]of Object.entries(e.subCommands)){let e=g(a)?a.meta:typeof a==`function`?null:a;if(!e?.aliases)continue;let o=[...t,i];for(let t of e.aliases){if(!/^[a-zA-Z0-9][a-zA-Z0-9_-]*$/.test(t)){n.push({commandPath:o,type:`invalid_alias`,message:`Alias "${t}" is invalid. Aliases must start with an alphanumeric character and contain only alphanumeric characters, hyphens, or underscores.`,field:i});continue}if(t===i){n.push({commandPath:o,type:`duplicate_alias`,message:`Alias "${t}" conflicts with its own name.`,field:i});continue}let e=r.get(t);e?e===i?n.push({commandPath:o,type:`duplicate_alias`,message:`Alias "${t}" is duplicated within the alias list.`,field:i}):n.push({commandPath:o,type:`duplicate_alias`,message:`Alias "${t}" conflicts with existing subcommand or alias "${e}".`,field:i}):r.set(t,i)}}return n}function et(e,t,n){return e===t?[]:[{commandPath:[...n,e],type:`subcommand_key_name_mismatch`,message:`Subcommand registered as "${e}" but its own name is "${t}".`,field:e}]}async function tt(e,t={}){let n=t.commandPath??[e.name],r=[],i=e.subCommands?Object.keys(e.subCommands).length>0:!1,a=t.globalArgs?c(t.globalArgs):void 0;if(e.args){let t=c(e.args);r.push(...Ze(t,i,n)),a&&r.push(...Ye(a,t,n))}if(r.push(...$e(e,n)),r.push(...Qe(e,n)),e.subCommands)for(let[i,a]of Object.entries(e.subCommands)){let e=await _(a);r.push(...et(i,e.name,n));let o=await tt(e,{commandPath:[...n,i],...t.globalArgs?{globalArgs:t.globalArgs}:{}});o.valid||r.push(...o.errors)}return r.length===0?{valid:!0}:{valid:!1,errors:r}}function nt(e){if(e.length===0)return``;let t=[`Command definition errors:`];for(let n of e){let e=n.commandPath.join(` > `);t.push(` - [${e}] ${n.message}`)}return t.join(`
28
- `)}const rt=new Set([`1`,`t`,`T`,`TRUE`,`true`,`True`]),it=new Set([`0`,`f`,`F`,`FALSE`,`false`,`False`]);function q(e){return rt.has(e)?!0:!it.has(e)&&e}function at(e,t){return t===`boolean`?q(e):e}function J(e){let t=e.indexOf(`=`);return t>=0?e.slice(2,t):e.slice(2)}function ot(e,t){let n=J(e);if(!e.includes(`=`)){let e=t.negationMap.get(n);if(e&&t.booleanFlags.has(e))return{resolvedName:e,withoutDashes:n,isNegated:!0,isCustomNegation:!0,isSuppressedNegation:!1}}let r=e.includes(`=`);if(!r&&n.startsWith(`no-`)){let e=n.slice(3);if(e===e.toLowerCase()){let r=t.aliasMap.get(e)??e;if(t.booleanFlags.has(r)){let e=t.aliasMap.get(n)??n;if(!t.definedNames.has(e))return t.defaultNegationDisabledFields.has(r)?{resolvedName:r,withoutDashes:n,isNegated:!1,isCustomNegation:!1,isSuppressedNegation:!0}:{resolvedName:r,withoutDashes:n,isNegated:!0,isCustomNegation:!1,isSuppressedNegation:!1}}}}if(!r&&n.length>2&&n.startsWith(`no`)&&/[A-Z]/.test(n[2])){let e=n[2].toLowerCase()+n.slice(3),r=t.aliasMap.get(e)??e;if(t.booleanFlags.has(r)){let e=t.aliasMap.get(n)??n;if(!t.definedNames.has(e))return t.defaultNegationDisabledFields.has(r)?{resolvedName:r,withoutDashes:n,isNegated:!1,isCustomNegation:!1,isSuppressedNegation:!0}:{resolvedName:r,withoutDashes:n,isNegated:!0,isCustomNegation:!1,isSuppressedNegation:!1}}}return{resolvedName:t.aliasMap.get(n)??n,withoutDashes:n,isNegated:!1,isCustomNegation:!1,isSuppressedNegation:!1}}const st=/^-\.?\d/;function ct(e){return st.test(e)}function lt(e,t={}){let{aliasMap:n=new Map,booleanFlags:r=new Set,arrayFlags:i=new Set,definedNames:a=new Set,negationMap:o=new Map,defaultNegationDisabledFields:s}=t,c={aliasMap:n,booleanFlags:r,definedNames:a,negationMap:o,defaultNegationDisabledFields:s??new Set(r)},l={options:{},positionals:[],rest:[]},u=0,d=!1,f=(e,t)=>{let r=n.get(e)??e;if(i.has(r)){let e=l.options[r];Array.isArray(e)?e.push(t):e===void 0?l.options[r]=[t]:l.options[r]=[e,t]}else l.options[r]=t};for(;u<e.length;){let t=e[u];if(d){l.rest.push(t),u++;continue}if(t===`--`){d=!0,u++;continue}if(t.startsWith(`--`)){let i=t.slice(2),a=ot(t,c);if(a.isSuppressedNegation){f(a.withoutDashes,!0),u++;continue}if(a.isNegated){f(a.resolvedName,!1),u++;continue}let o=i.indexOf(`=`);if(o!==-1){let e=i.slice(0,o),t=i.slice(o+1),a=n.get(e)??e;f(e,r.has(a)?q(t):t),u++}else{let t=i,a=n.get(t)??t;if(r.has(a))f(t,!0),u++;else{let n=e[u+1];n!==void 0&&(!n.startsWith(`-`)||ct(n))?(f(t,n),u+=2):(f(t,!0),u++)}}continue}if(t.startsWith(`-`)&&t.length>1&&!t.startsWith(`--`)){let i=t.slice(1),a=i.indexOf(`=`);if(a!==-1){let e=i.slice(0,a),t=i.slice(a+1),o=n.get(e)??e;f(e,r.has(o)?q(t):t),u++}else if(i.length===1){let t=i,a=n.get(t)??t;if(r.has(a))f(t,!0),u++;else{let n=e[u+1];n!==void 0&&(!n.startsWith(`-`)||ct(n))?(f(t,n),u+=2):(f(t,!0),u++)}}else{for(let e of i)f(e,!0);u++}continue}l.positionals.push(t),u++}return l}function Y(e){let r=new Map,i=new Set,a=new Set,o=new Set,s=new Map,c=new Set;for(let t of e.fields)o.add(t.name);for(let l of e.fields){l.cliName!==l.name&&r.set(l.cliName,l.name);for(let e of n(l))if(r.set(e,l.name),e.length>1&&e.includes(`-`)){let n=t(e);n!==e&&!o.has(n)&&!r.has(n)&&r.set(n,l.name)}let e=t(l.name);if(e!==l.name&&!o.has(e)&&!r.has(e)&&r.set(e,l.name),l.type===`boolean`&&i.add(l.name),l.type===`array`&&a.add(l.name),l.type===`boolean`&&l.negation!==!0&&(c.add(l.name),typeof l.negation==`string`&&(s.set(l.negation,l.name),l.negation.includes(`-`)))){let e=t(l.negation);e!==l.negation&&s.set(e,l.name)}}return{aliasMap:r,booleanFlags:i,arrayFlags:a,definedNames:o,negationMap:s,defaultNegationDisabledFields:c}}function ut(e,t){let n={...e.options},r=t.fields.filter(e=>e.positional),i=e.rest.length>0?[...e.positionals,...e.rest]:e.positionals,a=0;for(let e of r){if(a>=i.length)break;if(e.type===`array`){n[e.name]=i.slice(a);break}n[e.name]=i[a],a++}return n}function dt(e){let{aliasMap:t=new Map,booleanFlags:r=new Set,definedNames:i=new Set,negationMap:a=new Map,defaultNegationDisabledFields:o=new Set}=Y(e),s=new Set;for(let t of e.fields)for(let e of n(t))e.length===1&&s.add(e);return{aliasMap:t,booleanFlags:r,definedNames:i,flagNames:new Set(e.fields.map(e=>e.name)),cliNames:new Set(e.fields.map(e=>e.cliName)),aliases:s,negationMap:a,defaultNegationDisabledFields:o}}function ft(e,t){let{resolvedName:n,withoutDashes:r,isNegated:i,isCustomNegation:a,isSuppressedNegation:o}=ot(e,t);if(o)return{resolvedName:n,withoutDashes:r,isNegated:!1,isGlobal:!1,isSuppressedNegation:o};let s=i&&!a?r.startsWith(`no-`)?r.slice(3):r[2].toLowerCase()+r.slice(3):r;return{resolvedName:n,withoutDashes:r,isNegated:i,isGlobal:t.flagNames.has(n)||t.cliNames.has(r)||t.cliNames.has(s),isSuppressedNegation:!1}}function pt(e,t,n,r,i){return!e.includes(`=`)&&!i.has(t)&&!n&&r!==void 0&&!r.startsWith(`-`)}function X(e,t,n,r,i,a){let o=e[t];return a.push(o),pt(o,n,r,e[t+1],i)?(a.push(e[t+1]),2):1}function mt(e,t,n){let r=dt(n),i=new Set(t),a=[],o=[],s=0;for(;s<e.length;){let t=e[s];if(t===`--`||ht.has(t))break;if(!t.startsWith(`-`)&&i.has(t))return{subCommandIndex:s,globalTokensBefore:a,tokensAfterSubcommand:e.slice(s+1),suppressedTokens:o};if(t.startsWith(`--`)){let{resolvedName:n,withoutDashes:i,isNegated:c,isGlobal:l,isSuppressedNegation:u}=ft(t,r);if(l){s+=X(e,s,n,c,r.booleanFlags,a);continue}if(u){o.push(i),s++;continue}break}if(t.startsWith(`-`)&&t.length>1){let n=t.includes(`=`)?t.slice(1,t.indexOf(`=`)):t.slice(1);if(n.length===1){let t=r.aliasMap.get(n)??n;if(r.aliases.has(n)||r.flagNames.has(t)){s+=X(e,s,t,!1,r.booleanFlags,a);continue}}break}break}return{subCommandIndex:-1,globalTokensBefore:a,tokensAfterSubcommand:[],suppressedTokens:o}}const ht=new Set([`--help`,`-h`,`--help-all`,`-H`,`--help-json`,`--version`]);function gt(e,t,n={}){let r=n.stopOnSuppressedNegation===!0||t?.unknownKeysMode===`strict`,i=t?dt(t):{aliasMap:new Map,booleanFlags:new Set,definedNames:new Set,flagNames:new Set,cliNames:new Set,aliases:new Set,negationMap:new Map,defaultNegationDisabledFields:new Set};for(let t=0;t<e.length;t++){let n=e[t];if(!n.startsWith(`-`))return t;if(n===`--`||ht.has(n))return-1;if(n.startsWith(`--`)){let{resolvedName:a,isNegated:o,isGlobal:s,isSuppressedNegation:c}=ft(n,i);if(s){pt(n,a,o,e[t+1],i.booleanFlags)&&t++;continue}if(c){if(r)return-1;continue}return-1}let a=n.includes(`=`)?n.slice(1,n.indexOf(`=`)):n.slice(1);if(a.length===1){let r=i.aliasMap.get(a)??a;if(i.aliases.has(a)||i.flagNames.has(r)){pt(n,r,!1,e[t+1],i.booleanFlags)&&t++;continue}}return-1}return-1}function _t(e,t){let n=gt(e,t);return n>=0?e[n]:void 0}function vt(e,t,r={}){let i=v(t),a=[...i],o=a.length>0;if(o&&e.length>0){if(r.globalExtracted){let t=mt(e,a,r.globalExtracted);if(t.subCommandIndex>=0){let n=yt(t.globalTokensBefore,r.globalExtracted);return{helpRequested:!1,helpAllRequested:!1,helpJsonRequested:!1,versionRequested:!1,subCommand:e[t.subCommandIndex],remainingArgs:t.tokensAfterSubcommand,rawArgs:{},positionals:[],rest:[],unknownFlags:t.suppressedTokens,unknownGlobalFlags:t.suppressedTokens,rawGlobalArgs:n}}}else{let t=e[0];if(t&&!t.startsWith(`-`)&&i.has(t))return{helpRequested:!1,helpAllRequested:!1,helpJsonRequested:!1,versionRequested:!1,subCommand:t,remainingArgs:e.slice(1),rawArgs:{},positionals:[],rest:[],unknownFlags:[]}}}let s;t.args&&(s=c(t.args),r.skipValidation||(We(s),G(s),Ge(s),W(s),Ke(s),qe(s,o),U(s),r.globalExtracted&&Xe(r.globalExtracted,s)));let l=e,u,d=[];if(r.globalExtracted){let{separated:t,globalParsed:n,suppressedTokens:i}=bt(e,r.globalExtracted,s);l=t,u=n,d=i}let f=e.indexOf(`--`),p=f>=0?e.slice(0,f):e,m=s?.fields.some(e=>e.overrideBuiltinAlias===!0&&n(e).includes(`H`))??!1,h=s?.fields.some(e=>e.overrideBuiltinAlias===!0&&n(e).includes(`h`))??!1,g=p.includes(`--help-all`)||!m&&p.includes(`-H`),_=p.includes(`--help-json`),y=!g&&!_&&(p.includes(`--help`)||!h&&p.includes(`-h`)),b=p.includes(`--version`);if(y||g||_||b)return{helpRequested:y,helpAllRequested:g,helpJsonRequested:_,versionRequested:b,subCommand:void 0,remainingArgs:[],rawArgs:{},positionals:[],rest:[],unknownFlags:[],unknownGlobalFlags:d,rawGlobalArgs:u};if(!s){let e=l.indexOf(`--`);return{helpRequested:!1,helpAllRequested:!1,helpJsonRequested:!1,versionRequested:!1,subCommand:void 0,remainingArgs:[],rawArgs:{},positionals:e>=0?l.slice(0,e):l,rest:e>=0?l.slice(e+1):[],unknownFlags:[],unknownGlobalFlags:d,rawGlobalArgs:u}}let x=Y(s),S=lt(l,x),C=ut(S,s),w=new Set;for(let e of s.fields)if(e.env&&C[e.name]===void 0){let t=Array.isArray(e.env)?e.env:[e.env];for(let n of t){let t=process.env[n];if(t!==void 0){C[e.name]=at(t,e.type),w.add(e.name);break}}}let T=new Set(s.fields.map(e=>e.name)),E=new Set(s.fields.map(e=>e.cliName)),D=new Set;for(let e of s.fields)for(let t of n(e))D.add(t);if(r.globalExtracted)for(let e of r.globalExtracted.fields){T.add(e.name),E.add(e.cliName);for(let t of n(e))D.add(t)}let O=[];for(let e of Object.keys(S.options))!T.has(e)&&!E.has(e)&&!D.has(e)&&O.push(e);return{helpRequested:!1,helpAllRequested:!1,helpJsonRequested:!1,versionRequested:!1,subCommand:void 0,remainingArgs:[],rawArgs:C,positionals:S.positionals,rest:S.rest,unknownFlags:O,unknownGlobalFlags:d,extractedFields:s,rawGlobalArgs:u,envFallbackFields:w}}function yt(e,t){return e.length===0?{}:ut(lt(e,Y(t)),t)}function bt(e,r,i){let a=dt(r),o=new Set(i?.fields.map(e=>e.name)??[]),s=new Set(i?.fields.map(e=>e.cliName)??[]),c=i?Y(i):void 0,l=new Set(c?.aliasMap?.keys()??[]),u=new Set(c?.negationMap?.keys()??[]),d=new Set;for(let e of i?.fields??[])if(e.type===`boolean`&&e.negation===!0)for(let r of[e.cliName,...n(e)]){let e=`no-${r}`;d.add(e),d.add(t(e))}let f=[],p=[],m=[];for(let t=0;t<e.length;t++){let n=e[t];if(n===`--`){p.push(...e.slice(t));break}if(n.startsWith(`--`)){let{resolvedName:r,withoutDashes:i,isNegated:c,isGlobal:p,isSuppressedNegation:h}=ft(n,a),g=r,_=o.has(i)||o.has(g)||s.has(i)||s.has(g)||l.has(i)||l.has(g)||u.has(i)||u.has(g)||d.has(i);if(p&&!_){t+=X(e,t,r,c,a.booleanFlags,f)-1;continue}if(h&&!_){m.push(i);continue}}else if(n.startsWith(`-`)&&n.length>1){let r=n.includes(`=`)?n.slice(1,n.indexOf(`=`)):n.slice(1);if(r.length===1){let n=a.aliasMap.get(r)??r;if((a.aliases.has(r)||a.flagNames.has(n))&&!l.has(r)){t+=X(e,t,n,!1,a.booleanFlags,f)-1;continue}}}p.push(n)}return{separated:p,globalParsed:yt(f,r),suppressedTokens:m}}function xt(e,t){return o(t)?s(e,t):r().validate(e,t)}function St(e){return e.map(e=>`${e.path.length>0?`${e.path.join(`.`)}: `:``}${e.message}`).join(`
29
- `)}function Ct(e,t){let n=[];for(let e=0;e<=t.length;e++)n[e]=[e];for(let t=0;t<=e.length;t++)n[0][t]=t;for(let r=1;r<=t.length;r++)for(let i=1;i<=e.length;i++)t.charAt(r-1)===e.charAt(i-1)?n[r][i]=n[r-1][i-1]:n[r][i]=Math.min(n[r-1][i-1]+1,n[r][i-1]+1,n[r-1][i]+1);return n[t.length][e.length]}function wt(e,t){let n=Math.max(2,Math.floor(e.length/2));return t.map(t=>({candidate:t,distance:Ct(e.toLowerCase(),t.toLowerCase())})).filter(({distance:e})=>e<=n).sort((e,t)=>e.distance-t.distance).map(({candidate:e})=>e).slice(0,3)}function Tt(e,t){let n=wt(e.replace(/^-{1,2}/,``),t),r=`${b.warning(`Warning: Unknown option:`)} ${b.bold(e)}`;if(n.length>0){r+=`\n\n${b.info(`Did you mean?`)}`;for(let e of n)r+=`\n ${y.arrow} ${b.option(`--${e}`)}`}return r}function Et(e,t){return t&&e.stack?`${b.error(`Error:`)} ${e.message}\n\n${b.dim(e.stack)}`:`${b.error(`Error:`)} ${e.message}`}function Z(n){return new Proxy(n,{get(n,r,i){if(typeof r==`string`){if(r in n)return Reflect.get(n,r,i);let a=t(r);if(a!==r&&a in n)return Reflect.get(n,a,i);let o=e(r);if(o!==r&&o in n)return Reflect.get(n,o,i)}return Reflect.get(n,r,i)},has(n,r){if(typeof r==`string`){if(r in n)return!0;let i=t(r);if(i!==r&&i in n)return!0;let a=e(r);if(a!==r&&a in n)return!0}return Reflect.has(n,r)}})}async function Q(e,t,n){for(let r of t.fields)r.effect&&await r.effect(e[r.name],{name:r.name,args:e,...n!=null&&{globalArgs:n}})}const Dt={log:e=>console.log(e),error:e=>console.error(e),warn:e=>console.warn(e)};function Ot(n,r){Object.defineProperty(n,"$source",{value:n=>r.get(n)??r.get(t(n))??r.get(e(n))??`default`,enumerable:!1})}function kt(e,t){Object.defineProperty(e,"$invocation",{value:t,enumerable:!1})}function At(e,t){let n=t.commandPath?.at(-1)??e.name;return t.aliasFor?{name:n,aliasFor:t.aliasFor}:{name:n}}async function jt(e,t,n={}){let r=Ft(n),i=n.captureLogs??!1,a=i?f():null;if(n.setup){a?.start();try{await n.setup({})}catch(e){let t=e instanceof Error?e:Error(String(e));if(n.cleanup)try{await n.cleanup({error:t})}catch{}return a?.stop(),{success:!1,error:t,exitCode:1,logs:a?.getLogs()??u()}}a?.stop()}let o=await $(e,t,{...n,handleSignals:!1,_globalExtracted:r,_globalCleanup:n.cleanup,_existingLogs:a?.getLogs()});if(n.cleanup){let e=i?f():null;e?.start();let t={error:o.success?void 0:o.error};try{await n.cleanup(t)}catch(t){if(o.success){let n=t instanceof Error?t:Error(String(t));return e?.stop(),{success:!1,error:n,exitCode:1,logs:d(o.logs,e?.getLogs()??u())}}}e?.stop();let r=e?.getLogs()??u();if(r.entries.length>0)return{...o,logs:d(o.logs,r)}}return o}function Mt(e,t,n){let r=_t(t,n);return!r||!r.startsWith(`__`)?!1:Object.hasOwn(e.subCommands??{},r)}async function Nt(e,t={}){if(t.compileCache!==!1&&l(typeof t.compileCache==`string`?{cacheDir:t.compileCache}:{programName:e.name}),e.runMainHook)try{e.runMainHook(process.argv.slice(2))}catch{}let n=process.argv.slice(2),r;if(t.globalArgs)try{r=c(t.globalArgs)}catch{}let i=t;if(Mt(e,n,r)){let{setup:e,cleanup:n,prompt:r,globalArgs:a,...o}=t;i=o}let a=Ft(i);if(i.skipValidation||K(e),i.onUnknownSubcommand&&!e.run&&!Mt(e,n,r)){let t=v(e);if(t.size>0){let e=gt(n,a,{stopOnSuppressedNegation:a?.unknownKeysMode!==`passthrough`}),r=e>=0?n[e]:void 0;if(r&&!t.has(r)){let t=n.slice(e+1),a=await i.onUnknownSubcommand({commandPath:[],name:r,args:t,precedingArgs:n.slice(0,e)});if(typeof a==`number`)return await Pt(),process.exit(a)}}}if(i.setup)try{await i.setup({})}catch(e){let t=e instanceof Error?e:Error(String(e));if(i.cleanup)try{await i.cleanup({error:t})}catch{}process.exit(1)}let o=await $(e,n,{debug:i.debug,captureLogs:i.captureLogs,skipValidation:i.skipValidation,handleSignals:!0,logger:i.logger,globalArgs:i.globalArgs,prompt:i.prompt,onUnknownSubcommand:i.onUnknownSubcommand,_globalExtracted:a,_globalCleanup:i.cleanup,_context:{commandPath:[],rootName:e.name,rootVersion:i.version,globalExtracted:a}});if((i.displayErrors??!0)&&!o.success&&o.error&&(i.logger??Dt).error(Et(o.error,i.debug??!1)),i.cleanup){let e={error:o.success?void 0:o.error};try{await i.cleanup(e)}catch{}}await Pt(),process.exit(o.exitCode)}async function Pt(){await Promise.all([process.stdout,process.stderr].map(e=>e.writableLength>0?new Promise(t=>e.write(``,()=>t())):Promise.resolve()))}async function $(e,t,n={}){let r=n.logger??Dt,i=n._context??{commandPath:[],rootName:e.name,globalExtracted:n._globalExtracted},a=n.captureLogs??!1?f():null;a?.start();let o=()=>{let e=n._existingLogs??u(),t=a?.getLogs()??u();return d(e,t)};try{n.skipValidation||K(e);let s=vt(t,e,{skipValidation:n.skipValidation,globalExtracted:n._globalExtracted}),c={...n._parsedGlobalArgs,...s.rawGlobalArgs},l=i.commandPath??[];if(n.onUnknownSubcommand&&!e.run&&l.length>0){let r=v(e);if(r.size>0){let e=gt(t,n._globalExtracted,{stopOnSuppressedNegation:n._globalExtracted?.unknownKeysMode!==`passthrough`}),i=e>=0?t[e]:void 0;if(i&&!r.has(i)){let r=t.slice(e+1),s=await n.onUnknownSubcommand({commandPath:l,name:i,args:r,precedingArgs:[...n._precedingArgs??[],...t.slice(0,e)]});if(typeof s==`number`){if(a?.stop(),n.handleSignals){if(n._globalCleanup)try{await n._globalCleanup({error:void 0})}catch{}await Pt(),process.exit(s)}return s===0?{success:!0,result:void 0,exitCode:0,logs:o()}:{success:!1,error:Error(`Plugin "${[...l,i].join(` `)}" exited with code ${s}`),exitCode:s,logs:o()}}}}}if(s.helpRequested||s.helpAllRequested||s.helpJsonRequested){let c=!1,l=h(e),u=v(e);if(l.length>0){let e=_t(t,i.globalExtracted);e&&!u.has(e)&&(c=!0)}if(s.helpJsonRequested){let t=Ee(e,{context:i});r.log(JSON.stringify(t))}else{let t=Ce(e,{showSubcommands:n.showSubcommands??!0,showSubcommandOptions:s.helpAllRequested||n.showSubcommandOptions,context:i});r.log(t)}if(a?.stop(),c){let e=_t(t,i.globalExtracted)??``,n=wt(e,[...u]),r=n.length>0?` Did you mean: ${n.join(`, `)}?`:``;return{success:!1,error:Error(`Unknown subcommand: ${e}${r?`.${r}`:``}`),exitCode:1,logs:o()}}return{success:!0,result:void 0,exitCode:0,logs:o()}}if(s.unknownGlobalFlags&&s.unknownGlobalFlags.length>0){let e=i.globalExtracted?.unknownKeysMode??`strip`;if(e===`strict`)return a?.stop(),{success:!1,error:Error(`Unknown flags: ${s.unknownGlobalFlags.join(`, `)}`),exitCode:1,logs:o()};if(e===`strip`){let e=i.globalExtracted?.fields.map(e=>e.name)??[];for(let t of s.unknownGlobalFlags)r.error(Tt(t,e))}}if(s.versionRequested){let e=i.rootVersion;return e&&r.log(e),a?.stop(),{success:!0,result:void 0,exitCode:0,logs:o()}}if(s.subCommand){let r=await p(e,s.subCommand);if(r){let e={commandPath:[...i.commandPath??[],s.subCommand],rootName:i.rootName,rootVersion:i.rootVersion,globalExtracted:i.globalExtracted,aliasFor:r.aliasFor};a?.stop();let l=new Set(n._globalExtracted?.unknownKeysMode===`passthrough`?[]:s.unknownGlobalFlags??[]),u=e=>e.startsWith(`--`)&&l.has(J(e)),d=t.slice(0,t.length-s.remainingArgs.length-1).filter(e=>!u(e));return $(r.command,s.remainingArgs,{...n,_context:e,_existingLogs:o(),_parsedGlobalArgs:c,_precedingArgs:[...n._precedingArgs??[],...d]})}}let u=s.extractedFields?.fields.filter(e=>e.positional)??[],d=u.some(e=>e.type===`array`),f=[...s.positionals,...s.rest],m=d?[]:f.slice(u.length),g=d?[]:s.positionals.slice(u.length);if(h(e).length>0&&!s.subCommand&&!e.run&&m.length===0){if(e.defaultSubCommand&&s.unknownFlags.length===0){let r=e.subCommands?.[e.defaultSubCommand];if(r){let l=await _(r),u={commandPath:[...i.commandPath??[],e.defaultSubCommand],rootName:i.rootName,rootVersion:i.rootVersion,globalExtracted:i.globalExtracted};a?.stop();let d=new Set(n._globalExtracted?.unknownKeysMode===`passthrough`?[]:s.unknownGlobalFlags??[]),f=e=>e.startsWith(`--`)&&d.has(J(e)),p=t.filter(e=>!f(e));return $(l,[],{...n,_context:u,_existingLogs:o(),_parsedGlobalArgs:c,_precedingArgs:[...n._precedingArgs??[],...p]})}}let l=Ce(e,{showSubcommands:n.showSubcommands??!0,context:i});return r.log(l),a?.stop(),{success:!0,result:void 0,exitCode:0,logs:o()}}if(s.unknownFlags.length>0){let e=s.extractedFields?.unknownKeysMode??`strip`,t=s.extractedFields?.fields.map(e=>e.name)??[];if(e===`strict`)return a?.stop(),{success:!1,error:Error(`Unknown flags: ${s.unknownFlags.join(`, `)}`),exitCode:1,logs:o()};if(e===`strip`)for(let e of s.unknownFlags)r.error(Tt(e,t))}if(m.length>0){let t=v(e);if(t.size>0){let e=g.find(e=>!e.startsWith(`-`)&&!t.has(e));if(e){let n=wt(e,[...t]),r=n.length>0?` Did you mean: ${n.join(`, `)}?`:``;return a?.stop(),{success:!1,error:Error(`Unknown subcommand: ${e}${r?`.${r}`:``}`),exitCode:1,logs:o()}}}let n=s.extractedFields?.unknownKeysMode??`strip`;if(n===`strict`)return a?.stop(),{success:!1,error:Error(`Unexpected positional argument${m.length>1?`s`:``}: ${m.join(`, `)}`),exitCode:1,logs:o()};if(n===`strip`)for(let e of m)(r.warn??r.error)(`Warning: Unexpected positional argument: ${e}`)}let y={},b=e.name===`__complete`,x=new Set(Object.keys(c)),C=new Set;if(n.globalArgs&&n._globalExtracted&&!b){for(let e of n._globalExtracted.fields)if(e.env&&c[e.name]===void 0){let t=Array.isArray(e.env)?e.env:[e.env];for(let n of t){let t=process.env[n];if(t!==void 0){c[e.name]=at(t,e.type),C.add(e.name);break}}}if(n.prompt){let e=await n.prompt(c,n._globalExtracted);for(let[t,n]of Object.entries(e))n!==void 0&&(c[t]=n)}let e=xt(c,n.globalArgs);if(!e.success)return a?.stop(),{success:!1,error:Error(St(e.errors)),exitCode:1,logs:o()};y=e.data}if(!e.args){let t=new Map;for(let e of x)t.set(e,`cli`);for(let e of C)t.set(e,`env`);Ot(y,t),kt(y,At(e,i));let r=Z(y);return n._globalExtracted&&!b&&await Q(r,n._globalExtracted,r),a?.stop(),await S(e,r,{handleSignals:n.handleSignals,captureLogs:n.captureLogs,existingLogs:o(),globalCleanup:n._globalCleanup})}let w=s.rawArgs,T=new Set;if(n.prompt&&s.extractedFields){let e=await n.prompt(w,s.extractedFields),t={...w};for(let[n,r]of Object.entries(e))r!==void 0&&(t[n]=r,T.add(n));w=t}let E=new Set;if(s.extractedFields)for(let e of s.extractedFields.fields)!(Object.hasOwn(s.rawArgs,e.name)||T.has(e.name))&&x.has(e.name)&&Object.hasOwn(y,e.name)&&(w={...w,[e.name]:y[e.name]},E.add(e.name));let D=xt(w,e.args);if(!D.success)return a?.stop(),{success:!1,error:Error(St(D.errors)),exitCode:1,logs:o()};let O=Z(D.data),k=new Map;for(let e of x)k.set(e,`cli`);for(let e of C)k.set(e,`env`);Ot(y,k),kt(y,At(e,i));let A=Z(y);n._globalExtracted&&!b&&await Q(A,n._globalExtracted,A),s.extractedFields&&!b&&await Q(O,s.extractedFields,A);let j={...A,...O},M=new Map(k),N=s.envFallbackFields??new Set;for(let e of s.extractedFields?.fields??[]){if(E.has(e.name)){M.set(e.name,`cli`);continue}let t=Object.hasOwn(s.rawArgs,e.name)||N.has(e.name);M.set(e.name,t?N.has(e.name)?`env`:`cli`:`default`)}Ot(j,M),kt(j,At(e,i));let P=Z(j);return a?.stop(),await S(e,P,{handleSignals:n.handleSignals,captureLogs:n.captureLogs,existingLogs:o(),globalCleanup:n._globalCleanup})}catch(e){let t=e instanceof Error?e:Error(String(e));return a?.stop(),{success:!1,error:t,exitCode:1,logs:o()}}}function Ft(e){if(!e.globalArgs)return;let t=c(e.globalArgs);if(!e.skipValidation){We(t),G(t),Ge(t),W(t),qe(t,!0),U(t);let e=t.fields.filter(e=>e.positional).map(e=>e.name);if(e.length>0)throw Error(`Global options schema must not contain positional arguments. Found: ${e.join(`, `)}`)}return t}export{Oe as C,Ee as D,Ce as E,O,Ie as S,Pe as T,Me as _,lt as a,Ae as b,tt as c,Ge as d,We as f,U as g,qe as h,St as i,k,Xe as l,Ke as m,Nt as n,nt as o,W as p,Z as r,G as s,jt as t,K as u,Fe as v,ke as w,Ne as x,je as y};