@politty/zod 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/README.md +31 -0
  2. package/dist/{arg-registry-B8QvBM_Q.d.ts → arg-registry-Be4GJADw.d.ts} +15 -1
  3. package/dist/augment.d.ts +1 -1
  4. package/dist/augment.js +1 -1
  5. package/dist/cli-main-C8D_mKfv.js +2 -0
  6. package/dist/cli-main-ClQaGXB3.js +1 -0
  7. package/dist/cli-run-BFXIag27.js +1 -0
  8. package/dist/cli.js +1 -15
  9. package/dist/command-Mbdt0bmN.js +1 -0
  10. package/dist/compile-cache-VuUbFWIo.js +1 -0
  11. package/dist/compile-cache.js +1 -3
  12. package/dist/completion-D8DMrPqg.js +116 -0
  13. package/dist/completion-DUMcvXkT.js +1 -0
  14. package/dist/completion.d.ts +87 -7
  15. package/dist/completion.js +1 -4
  16. package/dist/docs.d.ts +1 -1
  17. package/dist/docs.js +84 -3045
  18. package/dist/dynamic-CMtee4tD.js +1 -0
  19. package/dist/dynamic-CrnlveHj.js +6 -0
  20. package/dist/field-meta-COGya7xp.js +1 -0
  21. package/dist/index.d.ts +20 -16
  22. package/dist/index.js +1 -27
  23. package/dist/log-collector-hiFa3sNm.js +1 -0
  24. package/dist/logger-CJsyJ8sb.js +1 -0
  25. package/dist/prompt-CqmGq1_N.js +1 -0
  26. package/dist/prompt-clack.d.ts +1 -1
  27. package/dist/prompt-clack.js +1 -32
  28. package/dist/prompt-inquirer.d.ts +1 -1
  29. package/dist/prompt-inquirer.js +1 -47
  30. package/dist/prompt.d.ts +1 -1
  31. package/dist/prompt.js +1 -4
  32. package/dist/register-C1WbbeYH.js +1 -0
  33. package/dist/runner-C_wCXh6X.js +1 -0
  34. package/dist/runner-uPmkI9Gb.js +29 -0
  35. package/dist/schema-BiUP_KyV.js +1 -0
  36. package/dist/schema-extractor-DU0Vuhbd.js +1 -0
  37. package/dist/skill.d.ts +1 -1
  38. package/dist/skill.js +2 -1835
  39. package/dist/subcommand-router-D8GTMXYL.js +1 -0
  40. package/dist/with-completion-command-DDohm8U6.js +3 -0
  41. package/dist/{index-CMb2xLiJ.d.ts → with-completion-command-xaVZtAga.d.ts} +3 -74
  42. package/package.json +3 -3
  43. package/dist/cli-main-BQfutJEX.js +0 -3
  44. package/dist/cli-main-D4kkrRfX.js +0 -314
  45. package/dist/cli-run-wxd6kPPf.js +0 -8
  46. package/dist/command-k-4yAz4J.js +0 -42
  47. package/dist/compile-cache-BC65o7MH.js +0 -103
  48. package/dist/completion-DW5qVc3l.js +0 -5613
  49. package/dist/field-meta-DMy5BcRr.js +0 -146
  50. package/dist/log-collector-CoUkLVJB.js +0 -114
  51. package/dist/logger-i_bb-Jhc.js +0 -133
  52. package/dist/prompt-BjIZThsH.js +0 -169
  53. package/dist/register-DlGnMLIY.js +0 -440
  54. package/dist/runner-DAGvxV2P.js +0 -2980
  55. package/dist/runner-MMjpKeEa.js +0 -3
  56. package/dist/schema-extractor-DMSozq40.js +0 -250
  57. package/dist/src-CLogLsbS.js +0 -12
  58. package/dist/src-bYH2XCQ4.js +0 -6
  59. package/dist/subcommand-router-Cskpofdk.js +0 -134
@@ -0,0 +1 @@
1
+ import{t as e}from"./dynamic-CrnlveHj.js";export{e as createDynamicCompleteCommand};
@@ -0,0 +1,6 @@
1
+ import{r as e,t}from"./field-meta-COGya7xp.js";import{t as n}from"./schema-extractor-DU0Vuhbd.js";import{n as r}from"./command-Mbdt0bmN.js";import{c as i,i as a}from"./subcommand-router-D8GTMXYL.js";import{t as o}from"./schema-BiUP_KyV.js";import{execSync as s}from"node:child_process";function c(e,t,n){return{fieldName:e.name,isArrayOption:e.valueType===`array`,isGlobal:e.isGlobal===!0,resolvedDeps:u(e.valueCompletion,e.isGlobal===!0,t,n)}}function l(e,t,n){return{fieldName:e.name,isArrayOption:!1,isGlobal:!1,resolvedDeps:u(e.valueCompletion,!1,t,n)}}function u(e,t,n,r=[]){if(e?.type!==`expand`)return[];let i=new Set,a=new Set;for(let e of n)e.isGlobal===!0?i.add(e.name):a.add(e.name);for(let e of r)a.add(e.name);return e.dependsOn.map(e=>({name:e,isGlobal:t||i.has(e)&&!a.has(e)}))}function d(e){let t=`$'`;for(let n of e){let e=n.codePointAt(0);t+=n===`\\`?`\\\\`:n===`'`?`\\'`:n===`
2
+ `?`\\n`:n===`\r`?`\\r`:n===` `?`\\t`:e<32||e===127?`\\x${e.toString(16).padStart(2,`0`)}`:n}return t+=`'`,t}function f(e){return`'${e.replace(/'/g,`'\\''`)}'`}function p(e,t){let n=t.withSize?`%Y:%s`:`%Y`,r=t.withSize?`%m:%z`:`%m`,i=`stat -L -c '${n}' "${e}" 2>/dev/null`,a=`stat -L -f '${r}' "${e}" 2>/dev/null`;return t.shell===`fish`?`(${i}; or ${a})`:`$(${i} || ${a})`}function m(e){return e.length===1?`-${e}`:`--${e}`}function h(t,n){g(t,m(n)),n.length===1?g(t,`--${n}`):n.includes(`-`)&&g(t,`--${e(n)}`)}function g(e,t){e.includes(t)||e.push(t)}function _(t,n){let r=[`--${t}`];t.length===1&&r.push(`-${t}`),t.includes(`-`)&&r.push(`--${e(t)}`);for(let e of n??[])h(r,e);return r}function v(e){let t=new Set;for(let n of e)if(n.isGlobal===!0){n.cliName.length===1&&t.add(`-${n.cliName}`);for(let e of n.alias??[])e.length===1&&t.add(`-${e}`)}return t}function y(t,n,r,i){let a=new Set(_(t,n));if(r&&(a.add(`--${r}`),r.includes(`-`)&&a.add(`--${e(r)}`)),i?.frameOptions){if(i.isGlobal===!0){for(let e of i.frameOptions)if(e.isGlobal!==!0)for(let t of b(e.cliName,e.alias))a.delete(t)}else{let e=v(i.frameOptions);if(e.size>0){let t=new Set((n??[]).filter(e=>e.length===1).map(e=>`-${e}`));for(let n of e)t.has(n)||a.delete(n)}}}return[...a].map(e=>`"${e}"`)}function b(t,n){let r=[`--${t}`];t.includes(`-`)&&r.push(`--${e(t)}`);for(let e of n??[])h(r,e);return r}function x(e){let t=e.completion;if(t?.custom){let n=t.custom,r=[];if(n.expand&&r.push(`expand`),n.resolve&&r.push(`resolve`),n.choices&&n.choices.length>0&&r.push(`choices`),n.shellCommand&&r.push(`shellCommand`),r.length>1)throw Error(`Field "${e.name??`<unknown>`}": completion.custom may only specify one of choices, shellCommand, resolve, expand (got ${r.join(`, `)}).`);if(n.expand)return{type:`pending-expand`,spec:n.expand};if(n.resolve)return{type:`dynamic`,resolve:n.resolve};if(n.choices&&n.choices.length>0)return{type:`choices`,choices:n.choices};if(n.shellCommand)return{type:`command`,shellCommand:n.shellCommand}}if(t?.type){if(t.type===`file`)return t.matcher?{type:`file`,matcher:t.matcher}:t.extensions?{type:`file`,extensions:t.extensions}:{type:`file`};if(t.type===`directory`)return{type:`directory`};if(t.type===`none`)return{type:`none`}}if(e.enumValues&&e.enumValues.length>0)return{type:`choices`,choices:e.enumValues}}function S(e){if(e)return e.type===`pending-expand`?{type:`runtime-expand`,dependsOn:e.spec.dependsOn,enumerate:e.spec.enumerate}:e}function C(e){return e.args?w(e.args):[]}function w(e){return n(e).fields.filter(e=>!e.positional).map(e=>{let n=t(e);return{name:e.name,cliName:e.cliName,alias:n.length>0?n:void 0,negation:e.negationDisplay,negationDescription:e.negationDescription,description:e.description,takesValue:e.type!==`boolean`,valueType:e.type,required:e.required,defaultNegationAccepted:e.type===`boolean`&&e.negation===!0,valueCompletion:S(x(e))}})}function T(e){return new Set(_(e.cliName,e.alias))}function E(e,t){let n=T(t);for(let t of e)for(let e of T(t))if(n.has(e))return t}function ee(e,t,n){let r=new Set;if(t.length===0)return r;let i=new Set,a=(e,t)=>{R(n,e,t,i),r.add(e.name)},o=0;for(;o<e.length;){let i=e[o];if(i===`--`||!i.startsWith(`-`))break;if(!i.startsWith(`--`)&&i.length>2){let e=i.indexOf(`=`);if((e>=0?i.slice(1,e):i.slice(1)).length>1)break}let s=M(i),c=V(t,s);if(!c){if(I(t,s)){o++;continue}break}if(c.takesValue){if(N(i)){let e=i.indexOf(`=`);a(c,i.slice(e+1)),o++}else if(o+1<e.length){let t=e[o+1];if(t.startsWith(`-`)){o++;continue}a(c,t),o+=2}else break}else n[c.name]=!z(c,s),r.add(c.name),o++}return r}function D(e,t){return t.valueType===`array`?Array.isArray(e)?e:[e]:Array.isArray(e)?e.at(-1):e}function O(e,t){return t.length===0?e:[...e,...t]}function k(e,t){let n=t.length-1;if(!(n<0))return e>n?n:e}function A(e){return e.args?n(e.args).fields.filter(e=>e.positional).map((e,t)=>({name:e.name,cliName:e.cliName,position:t,description:e.description,required:e.required,variadic:e.type===`array`,valueCompletion:S(x(e))})):[]}function te(e){if(!e.subCommands)return[];let t=[];for(let[n,r]of Object.entries(e.subCommands)){if(n.startsWith(`__`))continue;t.push(n);let e=i(r);e?.aliases&&t.push(...e.aliases)}return t}function ne(e,t){if(!e.subCommands)return null;let n=Object.hasOwn(e.subCommands,t)?e.subCommands[t]:void 0;if(n)return i(n);let r=a(e,t);return r?i(e.subCommands[r]):null}function j(e){return e.startsWith(`-`)}function M(e){if(e.startsWith(`--`)){let t=e.slice(2),n=t.indexOf(`=`);return{name:n>=0?t.slice(0,n):t,isLong:!0}}return e.startsWith(`-`)?{name:e.slice(1,2),isLong:!1}:{name:e,isLong:!0}}function N(e){return e.includes(`=`)}function P(t,n,r){if(!r||t.valueType!==`boolean`)return!1;let i=[t.cliName,...t.alias??[]];for(let t of i){let r=`no-${t}`;if(n===r||n===e(r))return!0}return!1}function F(e,t,n){return e.defaultNegationAccepted===!0&&P(e,t,n)}function I(e,t){return e.some(e=>e.defaultNegationAccepted!==!0&&P(e,t.name,t.isLong))}function L(t,n){return t!==void 0&&t.includes(`-`)&&e(t)===n}function R(e,t,n,r){if(t.valueType!==`array`){e[t.name]=n;return}if(r.has(t.name)){let r=e[t.name];e[t.name]=Array.isArray(r)?[...r,n]:[n]}else e[t.name]=[n],r.add(t.name)}function z(e,t){return t.isLong?e.negation!==void 0&&(e.negation===t.name||L(e.negation,t.name))?!0:F(e,t.name,t.isLong):!1}function B(e,t,n){if(e.cliName===t&&(n||e.cliName.length===1))return!0;if(e.alias){for(let r of e.alias)if(r===t&&(n||r.length===1))return!0}return n&&e.negation===t?!0:!n||t.length<=1?!1:L(e.cliName,t)||e.alias?.some(e=>L(e,t))?!0:L(e.negation,t)}function V(e,t){if(!t.isLong){let n=e.find(e=>e.isGlobal!==!0&&e.alias?.includes(t.name)===!0);if(n)return n;let r=e.find(e=>e.isGlobal===!0&&B(e,t.name,t.isLong));if(r)return r}return e.find(e=>B(e,t.name,t.isLong))||e.find(e=>F(e,t.name,t.isLong))}function H(e,t,n){let r=t,i=[],a=n?w(n).map(e=>({...e,isGlobal:!0})):[],o=new Set,s=0,c={},l=[],u={},d=new Set,f=0,p=new Set,m=e=>{o.add(e.cliName);for(let t of e.alias??[])o.add(t);e.negation&&o.add(e.negation)},h=(e,t)=>{R(e.isGlobal===!0?u:c,e,t,p)},g=(e,t)=>{let n=e.isGlobal===!0?u:c;n[e.name]=!z(e,t)},_=0,v=O(C(r),a),y=!1;for(;_<e.length-1;){let t=e[_];if(!y&&t===`--`){y=!0,_++;continue}if(!y&&t.startsWith(`-`)&&!t.startsWith(`--`)&&t.length>2&&!t.includes(`=`)){let e=Array.from(t.slice(1)),n=v.filter(e=>e.isGlobal!==!0);for(let t of e){let e=V(n,{name:t,isLong:!1});!e||e.takesValue||(m(e),g(e,{name:t,isLong:!1}))}_++;continue}if(!y&&j(t)){let n=M(t),r=V(v,n);if(r){if(m(r),r.takesValue){if(N(t)){let e=t.indexOf(`=`);h(r,t.slice(e+1))}else if(_+1<e.length-1){let t=e[_+1];j(t)||(h(r,t),_++)}}else g(r,n)}_++;continue}let n=y?null:ne(r,t);if(n){i.push(t);let m=C(r),h=e.slice(f,_);for(let e of ee(h,a,u))d.add(e);r=n,v=O(C(r),a);for(let e of Object.keys(c)){let t=m.find(t=>t.name===e),n=a.find(t=>t.name===e)??(t?E(a,t):void 0);n&&(d.has(n.name)||(u[n.name]=D(c[e],n)))}o.clear(),s=0,c={},l=[],p=new Set,f=_+1,_++;continue}l.push(t),s++,_++}let b=e[e.length-1]??``,x=e[e.length-2]??``,S=A(r),T=te(r);for(let e=0;e<S.length;e++){let t=S[e];if(t.variadic){c[t.name]=l.slice(e);break}e<l.length&&(c[t.name]=l[e])}let P,F,I;if(!y&&x&&j(x)&&!N(x)){let e=V(v,M(x));e&&e.takesValue?(P=`option-value`,F=e):b.startsWith(`-`)?P=`option-name`:(P=U(b,T,S,s),P===`positional`&&(I=s))}else if(!y&&b.startsWith(`-`)&&N(b)){let e=V(v,M(b));e&&e.takesValue?(P=`option-value`,F=e):P=`option-name`}else!y&&b.startsWith(`-`)?P=`option-name`:(P=U(b,T,S,s,y),P===`positional`&&(I=s));let L=[];if(F){if(F.valueType===`array`){let e=(F.isGlobal===!0?u:c)[F.name];L=Array.isArray(e)?e.filter(e=>typeof e==`string`):[]}}else if(P===`positional`&&I!==void 0){let e=k(I,S);e!==void 0&&S[e]?.variadic&&(L=l.slice(e))}let B={...u,...c};return{subcommandPath:i,currentCommand:r,currentWord:b,previousWord:x,completionType:P,targetOption:F,positionalIndex:I,options:v,subcommands:T,positionals:S,usedOptions:o,providedPositionalCount:s,parsedArgs:B,previousValues:L}}function U(e,t,n,r,i){return i?`positional`:t.length>0&&(t.filter(t=>t.startsWith(e)).length>0||e===``)?`subcommand`:r<n.length||n.length>0&&n[n.length-1].variadic?`positional`:`subcommand`}const W={Default:0,NoSpace:1,NoFileCompletion:2,FilterPrefix:4,KeepOrder:8,FileCompletion:16,DirectoryCompletion:32,Error:64};function G(e){if(!e.startsWith(`-`))return;let t=e.indexOf(`=`);if(!(t<=0))return e.slice(0,t+1)}async function K(e,t){switch(e.completionType){case`subcommand`:return le(e);case`option-name`:return X(e);case`option-value`:{let n=e.targetOption,r=n?G(e.currentWord):void 0;return Z(r?{...e,currentWord:e.currentWord.slice(r.length)}:e,t,n?.name,n?.valueCompletion,void 0,n?.valueType===`array`)}case`positional`:{let n=re(e);return n?Z(e,t,n.name,n.valueCompletion,n.description,!1):{candidates:[],directive:W.NoFileCompletion}}}}function re(e){let t=e.positionalIndex??0,n=k(t,e.positionals);if(n===void 0)return;let r=e.positionals[n];if(r)return n===t||r.variadic?r:void 0}function q(e){try{return s(e,{encoding:`utf-8`,timeout:5e3}).split(`
3
+ `).map(e=>e.trim()).filter(e=>e.length>0).map(e=>({value:e,type:`value`}))}catch{return[]}}function J(e){return e?.type===`choices`?e.choices:void 0}function Y(e,t){let n=e.options.find(e=>e.name===t&&e.isGlobal!==!0);if(n)return J(n.valueCompletion);let r=e.positionals.find(e=>e.name===t);return J(r?r.valueCompletion:e.options.find(e=>e.name===t&&e.isGlobal===!0)?.valueCompletion)}function ie(e,t){let n=!t.includes(`=`),r=n?ae(e):oe(e,t);return{candidates:r,hasEqSuffix:n&&r.some(e=>e.value.endsWith(`=`))}}function ae(e){let t=new Set,n=[];for(let r of e){let e=r.value.indexOf(`=`);if(e<=0){n.push(r);continue}let i=r.value.slice(0,e+1);t.has(i)||(t.add(i),n.push({...r,value:i}))}return n}function oe(e,t){let n=t.slice(0,t.indexOf(`=`)+1);return e.filter(e=>e.value!==n)}async function se(e,t,n,r,i){let a=[],o=W.FilterPrefix,s,c;switch(e.type){case`choices`:if(e.choices)for(let t of e.choices)a.push({value:t,description:r,type:`value`});o|=W.NoFileCompletion;break;case`file`:e.matcher&&e.matcher.length>0?(c=e.matcher.filter(e=>e.trim().length>0),c.length===0&&(c=void 0,o|=W.FileCompletion)):e.extensions&&e.extensions.length>0?(s=Array.from(new Set(e.extensions.map(e=>e.trim().replace(/^\./,``)).filter(e=>e.length>0))),s.length===0&&(s=void 0,o|=W.FileCompletion)):o|=W.FileCompletion;break;case`directory`:o|=W.DirectoryCompletion;break;case`command`:e.shellCommand&&a.push(...q(e.shellCommand)),o|=W.NoFileCompletion;break;case`none`:o|=W.NoFileCompletion;break;case`dynamic`:try{let n=await e.resolve(t);for(let e of n.candidates){let t=typeof e==`string`?{value:e}:e;a.push({...t,type:`value`})}o=n.directive??W.FilterPrefix|W.NoFileCompletion}catch{o=W.NoFileCompletion|W.Error}break;case`expand`:o|=W.NoFileCompletion;break;case`runtime-expand`:{let r={},i=!1;for(let a of e.dependsOn){let e=t.parsedArgs[a],o=Array.isArray(e)?e[e.length-1]:e,s=Y(n,a);if(typeof o!=`string`||s===void 0||!s.includes(o)){i=!0;break}r[a]=o}if(!i)try{let t=new Set;for(let n of e.enumerate(r)){let e=typeof n==`string`?{value:n}:n;t.has(e.value)||(t.add(e.value),a.push({...e,type:`value`}))}}catch{o=W.NoFileCompletion|W.Error;break}o|=W.NoFileCompletion;break}}if(e.type===`dynamic`||e.type===`expand`||e.type===`runtime-expand`){let n=ie(e.type===`runtime-expand`&&i===!0?ce(a,t.previousValues):a,t.currentWord);return n.hasEqSuffix&&(o|=W.NoSpace),{candidates:n.candidates,directive:o,fileExtensions:s,fileMatchers:c}}return{candidates:a,directive:o,fileExtensions:s,fileMatchers:c}}function ce(e,t){let n=new Set;for(let e of t){let t=e.indexOf(`=`);t>0&&n.add(e.slice(0,t))}return n.size===0?[...e]:e.filter(e=>{let t=e.value.indexOf(`=`);return t<=0||!n.has(e.value.slice(0,t))})}function le(e){let t=[];for(let n of e.subcommands){let r=e.currentCommand.subCommands,o=r?.[n],s=o?void 0:a(e.currentCommand,n),c=o??(s?r?.[s]:void 0),l=c?i(c)?.description:void 0;t.push({value:n,description:l,type:`subcommand`})}if(t.length===0||e.currentWord.startsWith(`-`)){let n=X(e);t.push(...n.candidates)}return{candidates:t,directive:W.FilterPrefix|W.NoFileCompletion}}function X(e){let t=[],n=e.options.filter(t=>t.valueType===`array`||!(e.usedOptions.has(t.cliName)||t.alias&&t.alias.some(t=>e.usedOptions.has(t))||t.negation&&e.usedOptions.has(t.negation)));for(let e of n)t.push({value:`--${e.cliName}`,description:e.description,type:`option`}),e.negation&&t.push({value:`--${e.negation}`,description:e.negationDescription??e.description,type:`option`});return e.usedOptions.has(`help`)||t.push({value:`--help`,description:`Show help information`,type:`option`}),{candidates:t,directive:W.FilterPrefix|W.NoFileCompletion}}function ue(e,t,n){return{currentWord:e.currentWord,shell:t.shell,parsedArgs:de(e.parsedArgs,n),previousValues:e.previousValues,subcommandPath:e.subcommandPath}}function de(e,t){if(t===void 0||!(t in e))return e;let n={...e};return delete n[t],n}async function Z(e,t,n,r,i,a){return r?se(r,ue(e,t,n),e,i,a):{candidates:[],directive:W.FilterPrefix}}function Q(e,t){switch(t.shell){case`bash`:return fe(e,t);case`zsh`:return pe(e,t);case`fish`:return me(e,t)}}function $(e,t){let n=`:${t.directive}`;t.fileExtensions&&t.fileExtensions.length>0&&(n+=`\t@ext:${t.fileExtensions.join(`,`)}`),t.fileMatchers&&t.fileMatchers.length>0&&(n+=`\t@matcher:${t.fileMatchers.join(`,`)}`),e.push(n)}function fe(e,t){let n=((e.directive&W.FilterPrefix)!==0&&t.currentWord?e.candidates.filter(e=>e.value.startsWith(t.currentWord)):e.candidates).map(e=>t.inlinePrefix?`${t.inlinePrefix}${e.value}`:e.value);return $(n,e),n.join(`
4
+ `)}function pe(e,t){let n=e.candidates.map(e=>{let t=e.value.replace(/:/g,`\\:`);return e.description?`${t}:${e.description.replace(/:/g,`\\:`)}`:t});return $(n,e),n.join(`
5
+ `)}function me(e,t){let n=e.candidates.map(e=>e.description?`${e.value}\t${e.description}`:e.value);return $(n,e),n.join(`
6
+ `)}function he(e,t,n){return r({name:`__complete`,args:o,async run(t){let r=H(t.args,e,n),i=r.completionType===`option-value`&&r.targetOption?G(r.currentWord):void 0,a=i?r.currentWord.slice(i.length):r.currentWord,o=Q(await K(r,{shell:t.shell}),{shell:t.shell,currentWord:a,inlinePrefix:i});console.log(o)}})}function ge(e){return!!e.subCommands?.__complete}export{K as a,d as c,b as d,c as f,p as g,f as h,W as i,_ as l,y as m,ge as n,H as o,l as p,Q as r,x as s,he as t,v as u};
@@ -0,0 +1 @@
1
+ let e;function t(t){e=t}function n(){if(!e)throw Error('No validator adapter registered. Import politty through an adapter package (e.g. `import { defineCommand } from "@politty/zod"` or `from "politty"`) so the schema library integration is set up.');return e}const r=new Set([`help`,`help-all`,`version`]);function i(e){return e.replace(/([a-z])([A-Z])/g,`$1-$2`).replace(/([A-Z]+)([A-Z][a-z])/g,`$1-$2`).toLowerCase()}function a(e){return e.replace(/-([a-z])/g,(e,t)=>t.toUpperCase())}function o(e){return!e.alias&&!e.hiddenAlias?[]:[...e.alias??[],...e.hiddenAlias??[]]}function s(e,t){let n=t.argMeta,a=n?.description??t.description,o=i(e),s=/^[A-Za-z0-9][A-Za-z0-9-]*$/,c=(t,n)=>{if(t==null)return;let r=(Array.isArray(t)?t:[t]).map(t=>{if(typeof t!=`string`)throw Error(`Invalid ${n} for field "${e}": expected string or string[], received ${typeof t}.`);let r=t.trim().replace(/^-+/,``);if(r.length===0||!s.test(r))throw Error(`Invalid ${n} "${t}" for field "${e}": aliases must match ${s}.`);return r}),i=Array.from(new Set(r));return i.length>0?i:void 0},l=c(n?.alias,`alias`),u=new Set(l??[]),d=c(n?.hiddenAlias,`hiddenAlias`)?.filter(e=>!u.has(e)),f=d&&d.length>0?d:void 0,p=t.type,m=n?.negation,h;if(m!=null){if(typeof m==`boolean`){if(p!==`boolean`)throw Error(`Invalid negation for field "${e}": negation can only be used on boolean fields.`);h=m}else{if(typeof m!=`string`)throw Error(`Invalid negation for field "${e}": expected string or boolean, received ${typeof m}.`);let t=m.trim().replace(/^-+/,``);if(t.length===0||!s.test(t))throw Error(`Invalid negation "${m}" for field "${e}": negation names must match ${s}.`);if(r.has(t))throw Error(`Invalid negation "${m}" for field "${e}": negation cannot use reserved built-in flag names (${[...r].map(e=>`--${e}`).join(`, `)}).`);if(p!==`boolean`)throw Error(`Invalid negation for field "${e}": negation can only be used on boolean fields.`);h=t}}let g=n?.negationDescription,_;if(g!=null){if(typeof g!=`string`)throw Error(`Invalid negationDescription for field "${e}": expected string, received ${typeof g}.`);if(h===!1)throw Error(`Invalid negationDescription for field "${e}": negationDescription cannot be used when negation is false.`);if(h===void 0)throw Error(`Invalid negationDescription for field "${e}": negationDescription requires \`negation\` to be set (string or true).`);let t=g.trim();if(t.length===0)throw Error(`Invalid negationDescription for field "${e}": negationDescription must be a non-empty string.`);_=t}let v=typeof h==`string`?h:h===!0?`no-${o}`:void 0,y={name:e,cliName:o,alias:l,hiddenAlias:f,description:a,positional:n?.positional??!1,placeholder:n?.placeholder,env:n?.env,required:t.required,defaultValue:t.defaultValue,type:p,schema:t.schema,enumValues:t.enumValues,completion:n?.completion,prompt:n?.prompt,negation:h,negationDisplay:v,negationDescription:_,effect:n?.effect};return n&&`overrideBuiltinAlias`in n&&n.overrideBuiltinAlias===!0&&(y.overrideBuiltinAlias=!0),y}export{n as a,i,s as n,t as o,a as r,o as t};
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { $ as toKebabCase, A as LogEntry, B as RunResultSuccess, C as Command, D as GlobalCleanupContext, E as GlobalArgs, F as NonRunnableCommand, G as UnknownSubcommandHandler, H as SetupContext, I as PromptResolver, J as lazy, K as LazyCommand, L as RunCommandOptions, M as LogStream, N as Logger, O as GlobalSetupContext, P as MainOptions, Q as toCamelCase, R as RunResult, S as CollectedLogs, T as Example, U as SubCommandValue, V as RunnableCommand, W as SubCommandsRecord, X as ResolvedFieldMeta, Y as ExtractedFields, Z as UnknownKeysMode, _ as DynamicCompletionResult, a as CustomCompletion, b as ArgsSchema$1, c as PromptType, d as ExpandCompletion, et as InferSchemaOutput, f as ResolvedExpandCandidate, g as DynamicCompletionResolver, h as DynamicCompletionContext, i as CompletionType, j as LogLevel, k as IsEmpty, l as ValidateArgMeta, m as DynamicCompletionCandidate, n as ArgMeta, o as EffectContext, p as CompletionDirectiveMask, q as isLazyCommand, r as CompletionMeta, s as PromptMeta, t as ArgFn, tt as SchemaLike, u as ExpandCandidate, v as AnyCommand, w as CommandBase, x as CleanupContext, y as ArgSource, z as RunResultFailure } from "./arg-registry-B8QvBM_Q.js";
2
- import { C as CompletionResult, D as InternalArgsSchema, S as CompletionOptions, c as withCompletionCommand, l as GenerateBundledCompletionWorkerOptions, o as generateCompletion, p as generateBundledCompletionWorker, t as WithCompletionOptions, u as GenerateBundledCompletionWorkerResult } from "./index-CMb2xLiJ.js";
1
+ import { $ as toCamelCase, A as LogEntry, B as RunResultFailure, C as Command, D as GlobalCleanupContext, E as GlobalArgs, F as NonRunnableCommand, G as SubCommandsRecord, H as RunnableCommand, I as PromptResolver, J as isLazyCommand, K as UnknownSubcommandHandler, L as RunCommandOptions, M as LogStream, N as Logger, O as GlobalSetupContext, P as MainOptions, Q as UnknownKeysMode, R as RunInvocation, S as CollectedLogs, T as Example, U as SetupContext, V as RunResultSuccess, W as SubCommandValue, X as ExtractedFields, Y as lazy, Z as ResolvedFieldMeta, _ as DynamicCompletionResult, a as CustomCompletion, b as ArgsSchema$1, c as PromptType, d as ExpandCompletion, et as toKebabCase, f as ResolvedExpandCandidate, g as DynamicCompletionResolver, h as DynamicCompletionContext, i as CompletionType, j as LogLevel, k as IsEmpty, l as ValidateArgMeta, m as DynamicCompletionCandidate, n as ArgMeta, nt as SchemaLike, o as EffectContext, p as CompletionDirectiveMask, q as LazyCommand, r as CompletionMeta, s as PromptMeta, t as ArgFn, tt as InferSchemaOutput, u as ExpandCandidate, v as AnyCommand, w as CommandBase, x as CleanupContext, y as ArgSource, z as RunResult } from "./arg-registry-Be4GJADw.js";
2
+ import { _ as CompletionResult, g as CompletionOptions, i as GenerateBundledCompletionWorkerResult, n as withCompletionCommand, r as GenerateBundledCompletionWorkerOptions, t as WithCompletionOptions, x as InternalArgsSchema } from "./with-completion-command-xaVZtAga.js";
3
3
  import { z } from "zod";
4
4
  //#region ../core/src/core/schema-extractor.d.ts
5
5
  /**
@@ -243,25 +243,29 @@ type InferArgs<TArgsSchema> = TArgsSchema extends InternalArgsSchema<infer TInte
243
243
  */
244
244
  type MergedArgs<TLocalArgs, TGlobalArgs> = IsEmpty<TGlobalArgs> extends true ? TLocalArgs : TLocalArgs & WithCaseVariants<TGlobalArgs>;
245
245
  /**
246
- * Add the `$source` helper, which reports whether a given field's final
247
- * value came from an explicit CLI token, a `field.env` fallback, or
248
- * neither (schema default / `prompt` resolution).
246
+ * Add the `$source` and `$invocation` run-time metadata helpers.
249
247
  *
250
- * `name` is typed as a plain `string` (not `keyof T`) since the runtime
251
- * helper deliberately accepts either camelCase or kebab-case field names
252
- * (matching `createDualCaseProxy`'s dual-case access) and returns
253
- * `"default"` for anything it doesn't recognize. A `keyof T`-based type
254
- * would also be unsound for discriminated-union `args` schemas, where
255
- * narrowing `args` to one branch doesn't retroactively narrow `$source`'s
256
- * already-fixed parameter type.
248
+ * `$source` reports whether a given field's final value came from an
249
+ * explicit CLI token, a `field.env` fallback, or neither (schema default /
250
+ * `prompt` resolution). Its `name` parameter is typed as a plain `string`
251
+ * (not `keyof T`) since the runtime helper deliberately accepts either
252
+ * camelCase or kebab-case field names (matching `createDualCaseProxy`'s
253
+ * dual-case access) and returns `"default"` for anything it doesn't
254
+ * recognize. A `keyof T`-based type would also be unsound for
255
+ * discriminated-union `args` schemas, where narrowing `args` to one branch
256
+ * doesn't retroactively narrow `$source`'s already-fixed parameter type.
257
+ *
258
+ * `$invocation` reports the CLI name (canonical or alias) this command was
259
+ * invoked with.
257
260
  */
258
- type WithArgSource<T> = T & {
261
+ type WithRunMeta<T> = T & {
259
262
  $source?: (name: string) => ArgSource;
263
+ $invocation?: RunInvocation;
260
264
  };
261
265
  /**
262
266
  * Resolve merged args from schema and global args type
263
267
  */
264
- type ResolvedArgs<TArgsSchema, TGlobalArgs> = WithArgSource<MergedArgs<InferArgs<TArgsSchema>, TGlobalArgs>>;
268
+ type ResolvedArgs<TArgsSchema, TGlobalArgs> = WithRunMeta<MergedArgs<InferArgs<TArgsSchema>, TGlobalArgs>>;
265
269
  /**
266
270
  * Config for defining a command
267
271
  * @template TArgsSchema - The args schema type (from the CLI's schema library)
@@ -684,7 +688,7 @@ interface CommandValidationError {
684
688
  /** Path to the command (e.g., ["cli", "build", "watch"]) */
685
689
  commandPath: string[];
686
690
  /** Error type */
687
- type: "duplicate_field" | "duplicate_alias" | "invalid_alias" | "positional_config" | "reserved_alias" | "reserved_field_name" | "case_variant_collision" | "duplicate_negation" | "field_type_conflict";
691
+ type: "duplicate_field" | "duplicate_alias" | "invalid_alias" | "positional_config" | "reserved_alias" | "reserved_field_name" | "case_variant_collision" | "duplicate_negation" | "field_type_conflict" | "subcommand_key_name_mismatch";
688
692
  /** Error message */
689
693
  message: string;
690
694
  /** Related field name (if applicable) */
@@ -847,4 +851,4 @@ declare const defineCommand: DefineCommandFn<ArgsSchema>;
847
851
  declare const createDefineCommand: CreateDefineCommandFn<ArgsSchema>;
848
852
  declare const arg: ArgFn<z.ZodType>;
849
853
  //#endregion
850
- export { type AnyCommand, type ArgFn, type ArgMeta, type ArgSource, ArgsSchema, type BoundDefineCommandFn, type BuiltinOptionDescriptions, type CamelCase, CaseVariantCollisionError, type CleanupContext, type CollectedLogs, type Command, type CommandBase, type CommandContext, type CommandValidationError, type CommandValidationResult, type CompletionDirectiveMask, type CompletionMeta, type CompletionOptions, type CompletionResult, type CompletionType, type CreateDefineCommandFn, type CustomCompletion, type DefineCommandFn, DuplicateAliasError, DuplicateFieldError, DuplicateNegationError, type DynamicCompletionCandidate, type DynamicCompletionContext, type DynamicCompletionResolver, type DynamicCompletionResult, type EffectContext, type Example, type ExpandCandidate, type ExpandCompletion, type ExtractedFields, FieldTypeConflictError, type GenerateBundledCompletionWorkerOptions, type GenerateBundledCompletionWorkerResult, type GenerateCompileCacheShimOptions, type GenerateCompileCacheShimResult, type GlobalArgs, type GlobalCleanupContext, type GlobalSetupContext, type HelpOptions, type InferSchemaOutput, type KebabCase, type LazyCommand, type LogEntry, type LogLevel, type LogStream, type Logger, type MainOptions, type MergedArgs, type NonRunnableCommand, type ParsedArgv, type ParserOptions, PositionalConfigError, type PromptMeta, type PromptResolver, type PromptType, ReservedAliasError, ReservedFieldNameError, type ResolvedExpandCandidate, type ResolvedFieldMeta, type RunCommandOptions, type RunResult, type RunResultFailure, type RunResultSuccess, type RunnableCommand, type SchemaLike, type SetupContext, type SubCommandValue, type SubCommandsRecord, type UnknownKeysMode, type UnknownSubcommandHandler, type ValidateArgMeta, type ValidationError, type ValidationResult, type WithCaseVariants, type WithCompletionOptions, arg, createCompileCacheShimGenerator, createDefineCommand, createDualCaseProxy, defineCommand, extractFields, formatCommandValidationErrors, formatValidationErrors, generateBundledCompletionWorker, generateCompileCacheShim, generateCompletion, generateHelp, getUnknownKeysMode, isColorEnabled, isLazyCommand, lazy, logger, parseArgv, renderInline, renderMarkdown, runCommand, runMain, runPolittyCli, setColorEnabled, styles, symbols, toCamelCase, toKebabCase, validateCaseVariantCollisions, validateCommand, validateCrossSchemaCollisions, validateDuplicateAliases, validateDuplicateFields, validateDuplicateNegations, validatePositionalConfig, validateReservedAliases, validateReservedFieldNames, withCompletionCommand };
854
+ export { type AnyCommand, type ArgFn, type ArgMeta, type ArgSource, ArgsSchema, type BoundDefineCommandFn, type BuiltinOptionDescriptions, type CamelCase, CaseVariantCollisionError, type CleanupContext, type CollectedLogs, type Command, type CommandBase, type CommandContext, type CommandValidationError, type CommandValidationResult, type CompletionDirectiveMask, type CompletionMeta, type CompletionOptions, type CompletionResult, type CompletionType, type CreateDefineCommandFn, type CustomCompletion, type DefineCommandFn, DuplicateAliasError, DuplicateFieldError, DuplicateNegationError, type DynamicCompletionCandidate, type DynamicCompletionContext, type DynamicCompletionResolver, type DynamicCompletionResult, type EffectContext, type Example, type ExpandCandidate, type ExpandCompletion, type ExtractedFields, FieldTypeConflictError, type GenerateBundledCompletionWorkerOptions, type GenerateBundledCompletionWorkerResult, type GenerateCompileCacheShimOptions, type GenerateCompileCacheShimResult, type GlobalArgs, type GlobalCleanupContext, type GlobalSetupContext, type HelpOptions, type InferSchemaOutput, type KebabCase, type LazyCommand, type LogEntry, type LogLevel, type LogStream, type Logger, type MainOptions, type MergedArgs, type NonRunnableCommand, type ParsedArgv, type ParserOptions, PositionalConfigError, type PromptMeta, type PromptResolver, type PromptType, ReservedAliasError, ReservedFieldNameError, type ResolvedExpandCandidate, type ResolvedFieldMeta, type RunCommandOptions, type RunInvocation, type RunResult, type RunResultFailure, type RunResultSuccess, type RunnableCommand, type SchemaLike, type SetupContext, type SubCommandValue, type SubCommandsRecord, type UnknownKeysMode, type UnknownSubcommandHandler, type ValidateArgMeta, type ValidationError, type ValidationResult, type WithCaseVariants, type WithCompletionOptions, arg, createCompileCacheShimGenerator, createDefineCommand, createDualCaseProxy, defineCommand, extractFields, formatCommandValidationErrors, formatValidationErrors, generateCompileCacheShim, generateHelp, getUnknownKeysMode, isColorEnabled, isLazyCommand, lazy, logger, parseArgv, renderInline, renderMarkdown, runCommand, runMain, runPolittyCli, setColorEnabled, styles, symbols, toCamelCase, toKebabCase, validateCaseVariantCollisions, validateCommand, validateCrossSchemaCollisions, validateDuplicateAliases, validateDuplicateFields, validateDuplicateNegations, validatePositionalConfig, validateReservedAliases, validateReservedFieldNames, withCompletionCommand };
package/dist/index.js CHANGED
@@ -1,27 +1 @@
1
- import { i as toKebabCase, r as toCamelCase } from "./field-meta-DMy5BcRr.js";
2
- import { t as arg$1 } from "./register-DlGnMLIY.js";
3
- import { r as getUnknownKeysMode, t as extractFields } from "./schema-extractor-DMSozq40.js";
4
- import { n as createCompileCacheShimGenerator, t as runPolittyCli } from "./cli-main-D4kkrRfX.js";
5
- import { n as defineCommand$1, t as createDefineCommand$1 } from "./command-k-4yAz4J.js";
6
- import { C as ReservedFieldNameError, E as renderMarkdown, S as ReservedAliasError, T as renderInline, _ as DuplicateAliasError, a as parseArgv, b as FieldTypeConflictError, c as validateCommand, d as validateDuplicateFields, f as validateDuplicateNegations, g as CaseVariantCollisionError, h as validateReservedFieldNames, i as formatValidationErrors, l as validateCrossSchemaCollisions, m as validateReservedAliases, n as runMain, o as formatCommandValidationErrors, p as validatePositionalConfig, r as createDualCaseProxy, s as validateCaseVariantCollisions, t as runCommand, u as validateDuplicateAliases, v as DuplicateFieldError, w as generateHelp, x as PositionalConfigError, y as DuplicateNegationError } from "./runner-DAGvxV2P.js";
7
- import { o as isLazyCommand, s as lazy } from "./subcommand-router-Cskpofdk.js";
8
- import { a as symbols, i as styles, n as logger, r as setColorEnabled, t as isColorEnabled } from "./logger-i_bb-Jhc.js";
9
- import { a as generateCompletion, p as generateBundledCompletionWorker, s as withCompletionCommand } from "./completion-DW5qVc3l.js";
10
- import "./src-bYH2XCQ4.js";
11
-
12
- //#region src/index.ts
13
- /**
14
- * Generate compile-cache bin shims that import the cache helper from
15
- * `@politty/zod/compile-cache`.
16
- *
17
- * The specifier is this package's own name rather than something derived from
18
- * the caller's `package.json`: reaching this function means `@politty/zod` is
19
- * installed, so the shim it writes into your package can resolve it.
20
- */
21
- const generateCompileCacheShim = createCompileCacheShimGenerator("@politty/zod");
22
- const defineCommand = defineCommand$1;
23
- const createDefineCommand = createDefineCommand$1;
24
- const arg = arg$1;
25
-
26
- //#endregion
27
- export { CaseVariantCollisionError, DuplicateAliasError, DuplicateFieldError, DuplicateNegationError, FieldTypeConflictError, PositionalConfigError, ReservedAliasError, ReservedFieldNameError, arg, createCompileCacheShimGenerator, createDefineCommand, createDualCaseProxy, defineCommand, extractFields, formatCommandValidationErrors, formatValidationErrors, generateBundledCompletionWorker, generateCompileCacheShim, generateCompletion, generateHelp, getUnknownKeysMode, isColorEnabled, isLazyCommand, lazy, logger, parseArgv, renderInline, renderMarkdown, runCommand, runMain, runPolittyCli, setColorEnabled, styles, symbols, toCamelCase, toKebabCase, validateCaseVariantCollisions, validateCommand, validateCrossSchemaCollisions, validateDuplicateAliases, validateDuplicateFields, validateDuplicateNegations, validatePositionalConfig, validateReservedAliases, validateReservedFieldNames, withCompletionCommand };
1
+ import{i as e,r as t}from"./field-meta-COGya7xp.js";import{t as n}from"./register-C1WbbeYH.js";import{r,t as i}from"./schema-extractor-DU0Vuhbd.js";import{n as a,t as o}from"./cli-main-C8D_mKfv.js";import{n as s,t as c}from"./command-Mbdt0bmN.js";import{C as l,E as u,S as d,T as f,_ as p,a as m,b as h,c as g,d as _,f as v,g as y,h as b,i as x,l as S,m as C,n as w,o as T,p as E,r as D,s as O,t as k,u as A,v as j,w as M,x as N,y as P}from"./runner-uPmkI9Gb.js";import{o as F,s as I}from"./subcommand-router-D8GTMXYL.js";import{a as L,i as R,n as z,r as B,t as V}from"./logger-CJsyJ8sb.js";import{t as H}from"./with-completion-command-DDohm8U6.js";const U=a(`@politty/zod`),W=s,G=c,K=n;export{y as CaseVariantCollisionError,p as DuplicateAliasError,j as DuplicateFieldError,P as DuplicateNegationError,h as FieldTypeConflictError,N as PositionalConfigError,d as ReservedAliasError,l as ReservedFieldNameError,K as arg,a as createCompileCacheShimGenerator,G as createDefineCommand,D as createDualCaseProxy,W as defineCommand,i as extractFields,T as formatCommandValidationErrors,x as formatValidationErrors,U as generateCompileCacheShim,M as generateHelp,r as getUnknownKeysMode,V as isColorEnabled,F as isLazyCommand,I as lazy,z as logger,m as parseArgv,f as renderInline,u as renderMarkdown,k as runCommand,w as runMain,o as runPolittyCli,B as setColorEnabled,R as styles,L as symbols,t as toCamelCase,e as toKebabCase,O as validateCaseVariantCollisions,g as validateCommand,S as validateCrossSchemaCollisions,A as validateDuplicateAliases,_ as validateDuplicateFields,v as validateDuplicateNegations,E as validatePositionalConfig,C as validateReservedAliases,b as validateReservedFieldNames,H as withCompletionCommand};
@@ -0,0 +1 @@
1
+ const e={log:`stdout`,info:`stdout`,debug:`stdout`,warn:`stderr`,error:`stderr`},t=[`log`,`info`,`debug`,`warn`,`error`];function n(e){return e.map(e=>{if(e instanceof Error)return e.message;if(typeof e==`object`&&e)try{return JSON.stringify(e)}catch{return String(e)}return String(e)}).join(` `)}function r(r={}){let i=[],a=r.levels??t,o=r.passthrough??!0,s=null,c=(t,r)=>(...a)=>{i.push({message:n(a),timestamp:new Date,level:t,stream:e[t]}),o&&r.apply(console,a)};return{getLogs(){return{entries:[...i]}},start(){if(s===null){s={log:console.log,info:console.info,debug:console.debug,warn:console.warn,error:console.error};for(let e of a)console[e]=c(e,s[e])}},stop(){if(s!==null){for(let e of a)console[e]=s[e];s=null}}}}function i(...e){return{entries:e.flatMap(e=>e.entries).sort((e,t)=>e.timestamp.getTime()-t.timestamp.getTime())}}function a(){return{entries:[]}}export{a as n,i as r,r as t};
@@ -0,0 +1 @@
1
+ import{styleText as e}from"node:util";function t(){return process.env.NO_COLOR!==void 0||process.env.FORCE_COLOR===`0`||!process.env.FORCE_COLOR&&!!(process.env.CI||!process.stdout.isTTY)}let n=t();function r(e){n=!e}function i(){return!n}function a(...t){return r=>{if(n)return r;let i=r;for(let n of t)i=e(n,i);return i}}const o={success:a(`green`),error:a(`red`),warning:a(`yellow`),info:a(`cyan`),bold:a(`bold`),dim:a(`dim`),italic:a(`italic`),underline:a(`underline`),red:a(`red`),green:a(`green`),yellow:a(`yellow`),blue:a(`blue`),magenta:a(`magenta`),cyan:a(`cyan`),white:a(`white`),gray:a(`gray`),command:a(`bold`),commandName:a(`bold`,`underline`,`cyan`),option:a(`cyan`),optionName:a(`bold`),placeholder:a(`dim`),defaultValue:a(`dim`),required:a(`yellow`),description:e=>e,sectionHeader:a(`bold`,`underline`),version:a(`dim`)},s={success:o.green(`✓`),error:o.red(`✖`),warning:o.yellow(`⚠`),info:o.cyan(`ℹ`),bullet:o.gray(`•`),arrow:o.gray(`→`)},c={info(e){console.log(e)},success(e){console.log(`${s.success} ${o.success(e)}`)},warn(e){console.warn(`${s.warning} ${o.warning(e)}`)},error(e){console.error(`${s.error} ${o.error(e)}`)},log(e){console.log(e)},newline(){console.log(``)},debug(e){console.log(o.dim(e))}};export{s as a,o as i,c as n,r,i as t};
@@ -0,0 +1 @@
1
+ function e(e){let t=e.prompt;if(!t||t.enabled===!1)return null;let i=t.message??e.description??e.name,a=n(e,t),o=r(e,t,a);return{field:e,type:a===`select`&&!o?`text`:a,message:i,...o&&{choices:o}}}function t(e){return e!==void 0&&e.length>0}function n(e,n){return n.type?n.type===`file`||n.type===`directory`?`text`:n.type:t(n.choices)?`select`:e.completion?.type===`file`||e.completion?.type===`directory`?`text`:t(e.enumValues)?`select`:e.type===`boolean`?`confirm`:`text`}function r(e,n,r){if(t(n.choices))return n.choices.map(e=>typeof e==`string`?{label:e,value:e}:e);if(r===`select`&&t(e.enumValues))return e.enumValues.map(e=>({label:e,value:e}))}function i(t,n){let r=[];for(let i of t){if(n[i.name]!==void 0||i.type===`array`)continue;let t=e(i);t&&r.push(t)}return r}function a(){return!(!process.stdin.isTTY||!process.stdout.isTTY||process.env.CI||process.env.POLITTY_NO_PROMPT)}async function o(e,t,n){if(!(n.interactive??a()))return e;let r=n.adapter,i={...e};return t.schemaType===`discriminatedUnion`&&t.discriminator&&t.variants?await s(r,i,t):t.schemaType===`union`||t.schemaType===`xor`||await l(r,i,t.fields),i}async function s(t,n,r){let{discriminator:i,variants:a}=r;if(!i||!a)return;if(n[i]===void 0){let o=c(r.fields,a,i),s=o?e(o):null;if(s){let e=a.map(e=>e.discriminatorValue).filter(Boolean);e.length>0&&(s.type=`select`,s.choices=e.map(e=>({label:e,value:e}))),await u(t,n,s)}}let o=String(n[i]??``),s=a.find(e=>e.discriminatorValue===o);s&&await l(t,n,s.fields.filter(e=>e.name!==i))}function c(e,t,n){let r=e.find(e=>e.name===n);if(r?.prompt)return r;for(let e of t){let t=e.fields.find(e=>e.name===n);if(t?.prompt)return t}}async function l(e,t,n){let r=i(n,t);for(let n of r)await u(e,t,n)}async function u(e,t,n){let{message:r}=n,i;switch(n.type){case`text`:i=await e.text({message:r,placeholder:n.field.placeholder});break;case`password`:i=await e.password({message:r});break;case`confirm`:i=await e.confirm({message:r});break;case`select`:i=await e.select({message:r,options:n.choices??[]})}if(e.isCancelled(i))throw Error(`Prompt cancelled by user`);t[n.field.name]=i}export{e as i,a as n,i as r,o as t};
@@ -1,4 +1,4 @@
1
- import { I as PromptResolver } from "./arg-registry-B8QvBM_Q.js";
1
+ import { I as PromptResolver } from "./arg-registry-Be4GJADw.js";
2
2
  //#region ../core/src/prompt/clack/index.d.ts
3
3
  /**
4
4
  * Prompt resolver backed by @clack/prompts.
@@ -1,32 +1 @@
1
- import "./register-DlGnMLIY.js";
2
- import { t as promptMissingArgs } from "./prompt-BjIZThsH.js";
3
- import { confirm, isCancel, password, select, text } from "@clack/prompts";
4
-
5
- //#region ../core/src/prompt/clack/index.ts
6
- function createClackAdapter() {
7
- return {
8
- text: (config) => text({
9
- message: config.message,
10
- ...config.placeholder !== void 0 && { placeholder: config.placeholder }
11
- }),
12
- password: (config) => password(config),
13
- confirm: (config) => confirm(config),
14
- select: (config) => select(config),
15
- isCancelled: isCancel
16
- };
17
- }
18
- /**
19
- * Prompt resolver backed by @clack/prompts.
20
- *
21
- * @example
22
- * ```ts
23
- * import { runMain, defineCommand } from "politty";
24
- * import { prompt } from "politty/prompt/clack";
25
- *
26
- * runMain(cmd, { version: "1.0.0", prompt });
27
- * ```
28
- */
29
- const prompt = (rawArgs, extracted) => promptMissingArgs(rawArgs, extracted, { adapter: createClackAdapter() });
30
-
31
- //#endregion
32
- export { prompt };
1
+ import"./register-C1WbbeYH.js";import{t as e}from"./prompt-CqmGq1_N.js";import{confirm as t,isCancel as n,password as r,select as i,text as a}from"@clack/prompts";function o(){return{text:e=>a({message:e.message,...e.placeholder!==void 0&&{placeholder:e.placeholder}}),password:e=>r(e),confirm:e=>t(e),select:e=>i(e),isCancelled:n}}const s=(t,n)=>e(t,n,{adapter:o()});export{s as prompt};
@@ -1,4 +1,4 @@
1
- import { I as PromptResolver } from "./arg-registry-B8QvBM_Q.js";
1
+ import { I as PromptResolver } from "./arg-registry-Be4GJADw.js";
2
2
  //#region ../core/src/prompt/inquirer/index.d.ts
3
3
  /**
4
4
  * Prompt resolver backed by @inquirer/prompts.
@@ -1,47 +1 @@
1
- import "./register-DlGnMLIY.js";
2
- import { t as promptMissingArgs } from "./prompt-BjIZThsH.js";
3
- import { confirm, input, password, select } from "@inquirer/prompts";
4
-
5
- //#region ../core/src/prompt/inquirer/index.ts
6
- const cancelSymbol = Symbol("inquirer-cancel");
7
- async function wrapCancellation(fn) {
8
- try {
9
- return await fn();
10
- } catch (error) {
11
- if (error instanceof Error && error.name === "ExitPromptError") return cancelSymbol;
12
- throw error;
13
- }
14
- }
15
- function createInquirerAdapter() {
16
- return {
17
- text: (config) => wrapCancellation(() => input({
18
- message: config.message,
19
- ...config.placeholder !== void 0 && { default: config.placeholder }
20
- })),
21
- password: (config) => wrapCancellation(() => password({ message: config.message })),
22
- confirm: (config) => wrapCancellation(() => confirm({ message: config.message })),
23
- select: (config) => wrapCancellation(() => select({
24
- message: config.message,
25
- choices: config.options.map((o) => ({
26
- name: o.label,
27
- value: o.value
28
- }))
29
- })),
30
- isCancelled: (value) => value === cancelSymbol
31
- };
32
- }
33
- /**
34
- * Prompt resolver backed by @inquirer/prompts.
35
- *
36
- * @example
37
- * ```ts
38
- * import { runMain, defineCommand } from "politty";
39
- * import { prompt } from "politty/prompt/inquirer";
40
- *
41
- * runMain(cmd, { version: "1.0.0", prompt });
42
- * ```
43
- */
44
- const prompt = (rawArgs, extracted) => promptMissingArgs(rawArgs, extracted, { adapter: createInquirerAdapter() });
45
-
46
- //#endregion
47
- export { prompt };
1
+ import"./register-C1WbbeYH.js";import{t as e}from"./prompt-CqmGq1_N.js";import{confirm as t,input as n,password as r,select as i}from"@inquirer/prompts";const a=Symbol(`inquirer-cancel`);async function o(e){try{return await e()}catch(e){if(e instanceof Error&&e.name===`ExitPromptError`)return a;throw e}}function s(){return{text:e=>o(()=>n({message:e.message,...e.placeholder!==void 0&&{default:e.placeholder}})),password:e=>o(()=>r({message:e.message})),confirm:e=>o(()=>t({message:e.message})),select:e=>o(()=>i({message:e.message,choices:e.options.map(e=>({name:e.label,value:e.value}))})),isCancelled:e=>e===a}}const c=(t,n)=>e(t,n,{adapter:s()});export{c as prompt};
package/dist/prompt.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { X as ResolvedFieldMeta, Y as ExtractedFields } from "./arg-registry-B8QvBM_Q.js";
1
+ import { X as ExtractedFields, Z as ResolvedFieldMeta } from "./arg-registry-Be4GJADw.js";
2
2
  //#region ../core/src/prompt/types.d.ts
3
3
  /**
4
4
  * Resolved prompt configuration for a single field
package/dist/prompt.js CHANGED
@@ -1,4 +1 @@
1
- import "./register-DlGnMLIY.js";
2
- import { i as resolvePromptConfig, n as isInteractive, r as getFieldsToPrompt, t as promptMissingArgs } from "./prompt-BjIZThsH.js";
3
-
4
- export { getFieldsToPrompt, isInteractive, promptMissingArgs, resolvePromptConfig };
1
+ import"./register-C1WbbeYH.js";import{i as e,n as t,r as n,t as r}from"./prompt-CqmGq1_N.js";export{n as getFieldsToPrompt,t as isInteractive,r as promptMissingArgs,e as resolvePromptConfig};
@@ -0,0 +1 @@
1
+ import{n as e,o as t}from"./field-meta-COGya7xp.js";const n=new WeakMap;function r(e,t){return t&&n.set(e,t),e}function i(e){return n.get(e)}function a(e,t=new Set){if(t.has(e))return;t.add(e);let n=i(e);if(n)return n;if(typeof e.meta==`function`){let t=e.meta();if(t&&typeof t==`object`)return t}let r=e,s=r.def??r._def;if(s?.argMeta)return s.argMeta;if(s?.meta)return s.meta;let c=o(e);if(c===`optional`||c===`nullable`||c==="default"){let e=s?.innerType;if(e)return a(e,t)}if(c===`pipe`){let e=s?.in??s?.schema;if(e)return a(e,t)}}function o(e){let t=e;return t.def?.type??t._def?.type??t.type}function s(e){let t=c(e),n=(t.def??t._def)?.catchall;if(!n)return`strip`;let r=o(n);return r===`never`?`strict`:r===`unknown`||r===`any`?`passthrough`:`strip`}function c(e){let t=o(e),n=e,r=n.def??n._def;if(t===`optional`||t===`nullable`||t==="default"){let e=r?.innerType;if(e)return c(e)}if(t===`pipe`){let e=r?.in??r?.schema;if(e)return c(e)}return e}function l(e){switch(o(c(e))){case`string`:case`enum`:return`string`;case`number`:case`int`:return`number`;case`boolean`:return`boolean`;case`array`:return`array`;default:return`unknown`}}function u(e){let t=c(e),n=o(t),r=t,i=r.def??r._def;if(n===`enum`){let e=i?.entries;if(e&&typeof e==`object`)return Object.values(e);let t=i?.values;if(Array.isArray(t))return t;let n=r.options;if(Array.isArray(n))return n}if(n===`array`){let e=i?.element;if(e)return u(e)}if(n===`union`){let e=i?.options;if(Array.isArray(e)){let t=[];for(let n of e)if(o(n)===`literal`){let e=n.def??n._def,r=e?.value,i=e?.values,a=r??i?.[0];typeof a==`string`&&t.push(a)}if(t.length===e.length&&t.length>0)return t}}}function d(e){return!e.isOptional()}function f(e){let t=o(e),n=e,r=n.def??n._def;if(t==="default"){let e=r?.defaultValue;return typeof e==`function`?e():e}if(t===`optional`||t===`nullable`){let e=r?.innerType;if(e)return f(e)}if(t===`pipe`){let e=r?.in??r?.schema;if(e)return f(e)}}function p(e){if(e.description)return e.description;let t=o(e),n=e,r=n.def??n._def;if(t===`optional`||t===`nullable`||t==="default"){let e=r?.innerType;if(e)return p(e)}if(t===`pipe`){let e=r?.in??r?.schema;if(e)return p(e)}}function m(t,n){let r=a(n);return e(t,{argMeta:r,description:p(n),required:d(n),defaultValue:f(n),type:l(n),enumValues:u(n),schema:n})}function h(e){let t=e;return(t.def??t._def)?.shape??t.shape??{}}function g(e){let t=h(e);return Object.entries(t).map(([e,t])=>m(e,t))}function _(e){let t=e,n=t.def??t._def,r=n?.discriminator??``,i=n?.options??[],a=new Map,c=[];for(let e of i){let t=h(e),n=[],i=``,s=t[r];if(s){let e=o(s);if(e===`literal`){let e=s.def??s._def,t=e?.value,n=e?.values;i=String(t??n?.[0]??``)}else if(e===`enum`){let e=u(s);e&&e.length===1&&(i=e[0])}}for(let[e,r]of Object.entries(t)){let t=m(e,r);n.push(t),a.has(e)||a.set(e,t)}let l=p(e);c.push({discriminatorValue:i,fields:n,...l?{description:l}:{}})}let l=p(e);return{fields:Array.from(a.values()),schema:e,schemaType:`discriminatedUnion`,unknownKeysMode:s(e),discriminator:r,variants:c,...l?{description:l}:{}}}function v(e,t){let n=e,r=(n.def??n._def)?.options??[],i=new Map,a=[];for(let e of r){let t=x(e);a.push(t);for(let e of t.fields)i.has(e.name)||i.set(e.name,e)}let o=p(e);return{fields:Array.from(i.values()),schema:e,schemaType:t,unknownKeysMode:s(e),unionOptions:a,...o?{description:o}:{}}}function y(e){let t=e,n=t.def??t._def,r=n?.left,i=n?.right,a=new Map,o=e=>{if(!e)return;let t=x(e);for(let e of t.fields)a.has(e.name)||a.set(e.name,e)};o(r),o(i);let c=p(e);return{fields:Array.from(a.values()),schema:e,schemaType:`intersection`,unknownKeysMode:s(e),...c?{description:c}:{}}}const b=new WeakMap;function x(e){let t=b.get(e);if(t)return t;let n=e,r,i=o(n),a=n,c=a.def??a._def;switch(i){case`object`:{let t=p(n);r={fields:g(n),schema:e,schemaType:`object`,unknownKeysMode:s(n),...t?{description:t}:{}};break}case`union`:r=c?.discriminator?_(n):v(n,`union`);break;case`xor`:r=v(n,`xor`);break;case`intersection`:r=y(n);break;case`optional`:case`nullable`:case`default`:case`pipe`:{let t=c?.innerType??c?.in??c?.schema;if(t){let i=x(t),a=p(n);r={...i,schema:e,...a?{description:a}:{}};break}let i=p(n);r={fields:[],schema:e,schemaType:`object`,unknownKeysMode:s(n),...i?{description:i}:{}};break}default:{let t=p(n);r={fields:[],schema:e,schemaType:`object`,unknownKeysMode:s(n),...t?{description:t}:{}};break}}return b.set(e,r),r}function S(e){return e.issues.map(e=>({path:e.path.map(String),message:e.message,code:e.code,received:`received`in e?e.received:void 0,expected:`expected`in e?String(e.expected):void 0}))}function C(e,t){let n=t.safeParse(e);return n.success?{success:!0,data:n.data}:{success:!1,errors:S(n.error)}}t({vendor:`zod`,extractFields:x,resolveFieldMeta:(e,t)=>m(e,t),getUnknownKeysMode:e=>s(e),validate:C});export{r as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./runner-uPmkI9Gb.js";export{e as runCommand};
@@ -0,0 +1,29 @@
1
+ import{a as e,i as t,r as n,t as r}from"./field-meta-COGya7xp.js";import{n as i,o as a,s as o,t as s}from"./schema-extractor-DU0Vuhbd.js";import{n as c}from"./compile-cache-VuUbFWIo.js";import{n as l,r as u,t as d}from"./log-collector-hiFa3sNm.js";import{a as f,c as p,n as m,o as h,r as g,t as _}from"./subcommand-router-D8GTMXYL.js";import{a as v,i as y}from"./logger-CJsyJ8sb.js";import{stripVTControlCharacters as b}from"node:util";async function x(e,t,n={}){let r,i,a=n.captureLogs??!1?d():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 f=n.existingLogs??l(),p=a?.getLogs()??l(),m=u(f,p);return r?{success:!1,error:r,exitCode:1,logs:m}:{success:!0,result:i,exitCode:0,logs:m}}function S(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 C(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 w(e){let t=!1,n=!1,r=!1;for(let i of e){let e=i.codePointAt(0);if(e===65039){r=!0;continue}S(e)||(t=!0,C(e)&&(n=!0))}return t?n||r?2:1:0}const T=(()=>{try{return new Intl.Segmenter(`en`,{granularity:`grapheme`})}catch{return}})();function E(e){if(e.length===0)return 0;let t=e.includes(`\x1B`)||e.includes(`›`)?b(e):e,n=0;if(T)for(let{segment:e}of T.segment(t))n+=w(e);else for(let e of t)n+=w(e);return n}function D(e){let t=[],n=e.replace(/`([^`]+)`/g,(e,n)=>{let r=t.length;return t.push(y.cyan(n)),`\x00CODE${r}\x00`});return n=n.replace(/\*\*(.+?)\*\*/g,(e,t)=>y.bold(t)),n=n.replace(/__(.+?)__/g,(e,t)=>y.bold(t)),n=n.replace(/\*(.+?)\*/g,(e,t)=>y.italic(t)),n=n.replace(/(?<!\w)_(.+?)_(?!\w)/g,(e,t)=>y.italic(t)),n=n.replace(/\[([^\]]+)\]\(([^)]+)\)/g,(e,t,n)=>`${y.underline(t)} ${y.dim(`(${n})`)}`),n=n.replace(/\x00CODE(\d+)\x00/g,(e,n)=>t[Number(n)]),n}function O(e){return re(e.split(`
2
+ `)).map(ce).join(`
3
+
4
+ `)}const k=/^(#{1,6})\s+(.+)$/,A=/^(?:---+|\*\*\*+|___+)\s*$/,j=/^>\s?(.*)$/,M=/^-\s+(.+)$/,N=/^(\d+)[.)]\s+(.+)$/,ee=/^(`{3,}|~{3,})(\S*)\s*$/,te=/^\[!(NOTE|TIP|IMPORTANT|WARNING|CAUTION)\]\s*$/,P=/^\|(.+)\|$/,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(k);if(a){t.push({type:`heading`,level:a[1].length,content:a[2]}),n++;continue}if(A.test(r)){t.push({type:`hr`}),n++;continue}if(j.test(r)){let r=[];for(;n<e.length;){let t=e[n].match(j);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(M.test(r)){let r=[];for(;n<e.length;){let t=e[n].match(M);if(t)r.push(t[1]),n++;else break}t.push({type:`ul`,items:r});continue}let o=r.match(N);if(o){let r=Number(o[1]),i=[];for(;n<e.length;){let t=e[n].match(N);if(t)i.push(t[2]),n++;else break}t.push({type:`ol`,items:i,start:r});continue}if(P.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&&P.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()===``||k.test(t)||A.test(t)||j.test(t)||M.test(t)||N.test(t)||ee.test(t)||P.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=E(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:y.cyan},TIP:{icon:`💡`,label:`Tip`,styleFn:y.green},IMPORTANT:{icon:`❗`,label:`Important`,styleFn:y.magenta},WARNING:{icon:`⚠`,label:`Warning`,styleFn:y.yellow},CAUTION:{icon:`🔴`,label:`Caution`,styleFn:y.red}};function ce(e){switch(e.type){case`heading`:return y.green(y.bold(D(e.content)));case`hr`:return y.dim(`─`.repeat(40));case`blockquote`:{let t=y.dim(`│ `);return e.lines.map(e=>`${t}${D(e)}`).join(`
5
+ `)}case`alert`:{let{icon:t,label:n,styleFn:r}=se[e.alertType],i=r(y.bold(`│`))+` `,a=`${i}${r(t)} ${r(n)}`;return e.lines.length===0?a:`${a}\n${e.lines.map(e=>`${i}${D(e)}`).join(`
6
+ `)}`}case`ul`:return e.items.map(e=>`${y.dim(`•`)} ${D(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`${y.dim(`${i}.`)} ${D(t)}`}).join(`
8
+ `)}case`table`:{let t=e.headers.length,n=e.headers.map(e=>D(e)),r=e.rows.map(e=>Array.from({length:t},(t,n)=>D(e[n]??``))),i=n.map((e,t)=>{let n=E(e),i=r.map(e=>E(e[t]));return Math.max(n,...i)}),a=y.dim(`│`),o=y.dim(`┌─${i.map(e=>`─`.repeat(e)).join(`─┬─`)}─┐`),s=y.dim(`├─${i.map(e=>`─`.repeat(e)).join(`─┼─`)}─┤`),c=y.dim(`└─${i.map(e=>`─`.repeat(e)).join(`─┴─`)}─┘`);return[o,`${a} ${n.map((t,n)=>y.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=>` ${y.yellow(e)}`).join(`
10
+ `);case`paragraph`:return D(e.lines.join(` `))}}const F={help:`Show help`,helpAll:`Show help with all subcommand options`,version:`Show version`};function le(e){return!e.startsWith(`__`)}function I(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(y.commandName(r)),t?.globalExtracted?.fields.length&&n.push(y.placeholder(`[global options]`));let a=i(e);if(a){let t=a.fields.filter(e=>e.positional);a.fields.filter(e=>!e.positional).length>0&&n.push(y.placeholder(`[options]`)),e.subCommands&&I(e.subCommands).length>0&&(e.run?n.push(y.placeholder(`[command]`)):n.push(y.option(`<command>`)));for(let e of t)e.required?n.push(y.option(`<${e.name}>`)):n.push(y.placeholder(`[${e.name}]`))}else e.subCommands&&I(e.subCommands).length>0&&(e.run?n.push(y.placeholder(`[command]`)):n.push(y.option(`<command>`)));return n.join(` `)}function pe(e,t={},n){let a=[],o={help:t.help??F.help,helpAll:t.helpAll??F.helpAll,version:t.version??F.version},s=i(e),c=s?.fields.some(e=>e.overrideBuiltinAlias===!0&&r(e).includes(`h`))??!1,l=s?.fields.some(e=>e.overrideBuiltinAlias===!0&&r(e).includes(`H`))??!1;if(c?a.push(B(y.option(`--help`),o.help)):a.push(B(`${y.option(`-h`)}, ${y.option(`--help`)}`,o.help)),l?a.push(B(y.option(`--help-all`),o.helpAll)):a.push(B(`${y.option(`-H`)}, ${y.option(`--help-all`)}`,o.helpAll)),n?.rootVersion&&a.push(B(y.option(`--version`),o.version)),!s)return a.join(`
11
+ `);if(s.schemaType===`discriminatedUnion`&&s.discriminator)return me(s,e,a);if(s.schemaType===`union`&&s.unionOptions||s.schemaType===`xor`&&s.unionOptions)return he(s,e,a);let u=s.fields.filter(e=>!e.positional);for(let e of u){let t=R(e),n=e.description??``;e.defaultValue!==void 0&&(n+=` ${y.defaultValue(`(default: ${JSON.stringify(e.defaultValue)})`)}`),e.required&&(n+=` ${y.required(`(required)`)}`);let r=z(e.env);r&&(n+=` ${r}`),a.push(B(t,n));let i=L(e);i&&a.push(i)}return a.join(`
12
+ `)}function L(e,t=0,n=0){return!e.negationDisplay||!e.negationDescription?null:B(y.option(`--${e.negationDisplay}`),`${e.negationDescription} ${y.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=`${y.option(`--${r}`)} ${y.placeholder(`<${t}>`)}`,s=e.description??a.description??`Action to perform`;n.push(B(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=R(r),t=r.description??``;r.defaultValue!==void 0&&(t+=` ${y.defaultValue(`(default: ${JSON.stringify(r.defaultValue)})`)}`);let i=z(r.env);i&&(t+=` ${i}`),n.push(B(e,t));let a=L(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?`${y.dim(`When`)} ${y.option(r)}=${y.bold(e.discriminatorValue)}: ${e.description}`:`${y.dim(`When`)} ${y.option(r)}=${y.bold(e.discriminatorValue)}:`;n.push(i);for(let e of t){let t=R(e),r=e.description??``;e.defaultValue!==void 0&&(r+=` ${y.defaultValue(`(default: ${JSON.stringify(e.defaultValue)})`)}`),e.required&&(r+=` ${y.required(`(required)`)}`);let i=z(e.env);i&&(r+=` ${i}`),n.push(B(t,r,1));let a=L(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=R(r),t=r.description??``;r.defaultValue!==void 0&&(t+=` ${y.defaultValue(`(default: ${JSON.stringify(r.defaultValue)})`)}`);let i=z(r.env);i&&(t+=` ${i}`),n.push(B(e,t));let a=L(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(` ${y.bold(`${o}:`)}`);for(let e of a){let t=R(e),r=e.description??``;e.defaultValue!==void 0&&(r+=` ${y.defaultValue(`(default: ${JSON.stringify(e.defaultValue)})`)}`),e.required&&(r+=` ${y.required(`(required)`)}`);let i=z(e.env);i&&(r+=` ${i}`),n.push(B(t,r,1));let a=L(e,1);a&&n.push(a)}}else n.push(``),n.push(` ${y.bold(`${o}:`)}`),n.push(` ${y.dim(y.italic(`no options`))}`)}return n.join(`
14
+ `)}function R(e){let t=[];if(e.alias)for(let n of e.alias)n.length===1&&t.push(y.option(`-${n}`));let n=y.option(`--${e.cliName}`);if(e.type!==`boolean`){let t=e.placeholder??e.cliName.toUpperCase();n+=` ${y.placeholder(`<${t}>`)}`}if(t.push(n),e.alias){for(let n of e.alias)if(n.length>1){let r=y.option(`--${n}`);if(e.type!==`boolean`){let t=e.placeholder??e.cliName.toUpperCase();r+=` ${y.placeholder(`<${t}>`)}`}t.push(r)}}let r=t.join(`, `);return e.type===`boolean`&&e.negationDisplay&&!e.negationDescription?`${r} / ${y.option(`--${e.negationDisplay}`)}`:r}function z(e){if(!e)return``;let t=Array.isArray(e)?e:[e];return y.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 B(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=R(e),i=e.description??``;e.defaultValue!==void 0&&(i+=` ${y.defaultValue(`(default: ${JSON.stringify(e.defaultValue)})`)}`),e.required&&(i+=` ${y.required(`(required)`)}`);let a=z(e.env);return a&&(i+=` ${a}`),B(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=L(n);e&&t.push(e)}return t.join(`
17
+ `)}function xe(e,t){let n=[],r=i(e);if(r){let e=r.fields.filter(e=>!e.positional);for(let r of e){let e=R(r),i=r.description??``;r.defaultValue!==void 0&&(i+=` ${y.defaultValue(`(default: ${JSON.stringify(r.defaultValue)})`)}`);let a=z(r.env);a&&(i+=` ${a}`),n.push(B(e,i,t,2));let o=L(r,t,2);o&&n.push(o)}}return n}function Se(e,t,n){let r=[];for(let[i,a]of I(e)){let e=p(a),o=t?`${t} ${i}`:i,s=e?.description??``,c=e?.aliases,l=c&&c.length>0?`${o}, ${c.join(`, `)}`:o;if(r.push(B(y.command(l),s,n)),e){let t=xe(e,n+1);r.push(...t);let i=e.subCommands?Object.fromEntries(I(e.subCommands)):void 0;if(i&&Object.keys(i).length>0){let e=Se(i,o,n);r.push(...e)}}}return r}function V(e,t){let n=[],r=t.context,i=ue(e,r);if(i){let e=y.commandName(i);r?.rootName&&r.commandPath&&r.commandPath.length>0?r.rootVersion?e+=` ${y.version(`(${r.rootName} v${r.rootVersion})`)}`:e+=` ${y.version(`(${r.rootName})`)}`:r?.rootVersion&&(e+=` ${y.version(`v${r.rootVersion}`)}`),n.push(e)}r?.aliasFor&&n.push(y.dim(`Alias for ${y.commandName(r.aliasFor)}`)),e.description&&n.push(e.description),!r?.aliasFor&&e.aliases&&e.aliases.length>0&&n.push(`${y.sectionHeader(`Aliases:`)} ${e.aliases.map(e=>y.command(e)).join(`, `)}`),n.push(`${y.sectionHeader(`Usage:`)} ${fe(e,r)}`);let a=pe(e,t.descriptions,r);if(a&&n.push(`${y.sectionHeader(`Options:`)}\n${a}`),r?.globalExtracted?.fields.length&&n.push(`${y.sectionHeader(`Global Options:`)}\n${be(r.globalExtracted)}`),t.showSubcommands!==!1&&e.subCommands&&I(e.subCommands).length>0){let i=r?.commandPath?.join(` `)??``,a=Object.fromEntries(I(e.subCommands));if(t.showSubcommandOptions){let e=Se(a,i,0);n.push(`${y.sectionHeader(`Commands:`)}\n${e.join(`
18
+ `)}`)}else{let e=[];for(let[t,n]of Object.entries(a)){let r=p(n),a=r?.description??``,o=i?`${i} ${t}`:t,s=r?.aliases,c=s&&s.length>0?`${o}, ${s.join(`, `)}`:o;e.push(B(y.command(c),a))}n.push(`${y.sectionHeader(`Commands:`)}\n${e.join(`
19
+ `)}`)}}if(e.examples&&e.examples.length>0){let t=Ce(e.examples,r);n.push(`${y.sectionHeader(`Examples:`)}\n${t}`)}if(e.notes){let t=O(e.notes).split(`
20
+ `).map(e=>e===``?``:` ${e}`).join(`
21
+ `);n.push(`${y.sectionHeader(`Notes:`)}\n${t}`)}return`\n${n.join(`
22
+
23
+ `)}\n`}function Ce(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(` ${y.dim(t.desc).split(`
24
+ `).join(`
25
+ `)}`),n.push(` ${y.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 we=class extends Error{constructor(e){super(e),this.name=`PositionalConfigError`}},Te=class extends Error{constructor(e){super(e),this.name=`ReservedAliasError`}},Ee=class extends Error{constructor(e){super(e),this.name=`DuplicateFieldError`}},De=class extends Error{constructor(e){super(e),this.name=`DuplicateAliasError`}},H=class extends Error{constructor(e){super(e),this.name=`CaseVariantCollisionError`}},Oe=class extends Error{constructor(e){super(e),this.name=`DuplicateNegationError`}},ke=class extends Error{constructor(e){super(e),this.name=`ReservedFieldNameError`}},Ae=class extends Error{constructor(e){super(e),this.name=`FieldTypeConflictError`}};function je(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 Me(e,t){let r=[],i=new Map;for(let a of e.fields){let e=n(a.name),o=i.get(e);o&&o!==a.name&&r.push({commandPath:t,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 Ne(e,t){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,n,r)=>{(o.has(e)||s.has(e))&&i.push({commandPath:t,type:`duplicate_alias`,message:`Alias "${e}" for field "${n}" conflicts with existing field name or CLI name "${e}".`,field:n});let c=a.get(e);if(c&&c!==n){let a=r?` (derived camelCase variant)`:``;i.push({commandPath:t,type:`duplicate_alias`,message:`Duplicate alias "${e}"${a} detected. Both "${c}" and "${n}" use the same alias.`,field:n})}a.set(e,n)};for(let t of e.fields){let e=r(t);if(e.length!==0){for(let r of e)if(c(r,t.name,!1),r.length>1&&r.includes(`-`)){let e=n(r);e!==r&&!o.has(e)&&c(e,t.name,!0)}}}return i}function Pe(e,t){let i=[],a=new Map,o=(e,t,n)=>{a.has(e)||a.set(e,{field:t,kind:n})};for(let t of e.fields){if(o(t.name,t.name,`field name`),t.name.includes(`-`)){let e=n(t.name);e!==t.name&&o(e,t.name,`field name`)}if(t.cliName!==t.name&&o(t.cliName,t.name,`CLI name`),t.cliName.includes(`-`)){let e=n(t.cliName);e!==t.cliName&&o(e,t.name,`CLI name`)}for(let e of r(t))if(o(e,t.name,`alias`),e.length>1&&e.includes(`-`)){let r=n(e);r!==e&&o(r,t.name,`alias`)}if(t.type===`boolean`&&t.negation===!0){let e=`no-${t.cliName}`;o(e,t.name,`default negation`);let r=n(t.cliName),i=`no${r[0]?.toUpperCase()??``}${r.slice(1)}`;i!==e&&o(i,t.name,`default negation`)}}let s=new Map,c=(e,n,r)=>{let o=a.get(e);if(o){let a=r?` (derived camelCase variant)`:``,s=o.field===n?`the same field's own ${o.kind} "${e}"`:`${o.kind} "${e}" of field "${o.field}"`;i.push({commandPath:t,type:`duplicate_negation`,message:`Negation "${e}"${a} for field "${n}" conflicts with ${s}.`,field:n})}let c=s.get(e);if(c&&c!==n){let a=r?` (derived camelCase variant)`:``;i.push({commandPath:t,type:`duplicate_negation`,message:`Duplicate negation "${e}"${a} detected. Both "${c}" and "${n}" use the same negation name.`,field:n})}s.set(e,n)};for(let t of e.fields)if(typeof t.negation==`string`&&(c(t.negation,t.name,!1),t.negation.includes(`-`))){let e=n(t.negation);e!==t.negation&&c(e,t.name,!0)}return i}function Fe(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 Ie(e,t){let n=[];for(let i of e.fields)if(i.overrideBuiltinAlias!==!0)for(let e of r(i))(e===`h`||e===`H`)&&n.push({commandPath:t,type:`reserved_alias`,message:`Alias "${e}" is reserved for --${e===`h`?`help`:`help-all`}.`,field:i.name});return n}function Le(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 U(e){let t=je(e,[]);if(t.length>0)throw new Ee(`Duplicate field name "${t[0]?.field??`unknown`}" detected. Each field must have a unique name.`)}function W(e){let t=Ne(e,[]);if(t.length>0){let e=t[0];throw new De(e.message)}}function Re(e){let t=Fe(e,[]);if(t.length>0){let e=t[0];throw new we(e.message)}}function G(e,t){let n=Ie(e,[]);if(n.length>0){let t=n[0].field??`unknown`,i=e.fields.find(e=>e.name===t),a=(i?r(i):[]).find(e=>e===`h`||e===`H`)??`h`;throw new Te(`Alias "${a}" is reserved for --${a===`h`?`help`:`help-all`}. To override this, set { overrideBuiltinAlias: true } for "${t}" and keep the alias where it is currently defined (in alias or hiddenAlias).`)}}function K(e){let t=Le(e,[]);if(t.length>0){let e=t[0];throw new ke(e.message)}}function q(e){let t=Pe(e,[]);if(t.length>0){let e=t[0];throw new Oe(e.message)}}function J(e){let t=Me(e,[]);if(t.length>0){let e=t[0];throw new H(e.message)}}function ze(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 Be(e,t,r){let i=[],a=new Map;for(let t of e.fields)a.set(n(t.name),t);for(let e of t.fields){let t=n(e.name),o=a.get(t);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}ze(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 Ve(e,t){let n=Be(e,t,[])[0];if(n)throw n.type===`case_variant_collision`?new H(n.message):new Ae(n.message)}function He(e,t,n){return[...je(e,n),...Me(e,n),...Ne(e,n),...Pe(e,n),...Fe(e,n),...Ie(e,n),...Le(e,n)]}function Ue(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=h(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 We(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 Ge(e,t={}){let n=t.commandPath??[e.name],r=[],i=e.subCommands?Object.keys(e.subCommands).length>0:!1,a=t.globalArgs?s(t.globalArgs):void 0;if(e.args){let t=s(e.args);r.push(...He(t,i,n)),a&&r.push(...Be(a,t,n))}if(r.push(...Ue(e,n)),e.subCommands)for(let[i,a]of Object.entries(e.subCommands)){let e=await g(a);r.push(...We(i,e.name,n));let o=await Ge(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 Ke(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
+ `)}function qe(e){let t=e.indexOf(`=`);return t>=0?e.slice(2,t):e.slice(2)}function Je(e,t){let n=qe(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}}function Ye(e){return e===`true`||e!==`false`&&e}const Xe=/^-\.?\d/;function Ze(e){return Xe.test(e)}function Y(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=Je(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)?Ye(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(`-`)||Ze(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)?Ye(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(`-`)||Ze(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 X(e){let t=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&&t.set(l.cliName,l.name);for(let e of r(l))if(t.set(e,l.name),e.length>1&&e.includes(`-`)){let r=n(e);r!==e&&!o.has(r)&&!t.has(r)&&t.set(r,l.name)}let e=n(l.name);if(e!==l.name&&!o.has(e)&&!t.has(e)&&t.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=n(l.negation);e!==l.negation&&s.set(e,l.name)}}return{aliasMap:t,booleanFlags:i,arrayFlags:a,definedNames:o,negationMap:s,defaultNegationDisabledFields:c}}function Qe(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 Z(e){let{aliasMap:t=new Map,booleanFlags:n=new Set,definedNames:i=new Set,negationMap:a=new Map,defaultNegationDisabledFields:o=new Set}=X(e),s=new Set;for(let t of e.fields)for(let e of r(t))e.length===1&&s.add(e);return{aliasMap:t,booleanFlags:n,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 $e(e,t){let{resolvedName:n,withoutDashes:r,isNegated:i,isCustomNegation:a,isSuppressedNegation:o}=Je(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 et(e,t,n,r,i){return!e.includes(`=`)&&!i.has(t)&&!n&&r!==void 0&&!r.startsWith(`-`)}function Q(e,t,n,r,i,a){let o=e[t];return a.push(o),et(o,n,r,e[t+1],i)?(a.push(e[t+1]),2):1}function tt(e,t,n){let r=Z(n),i=new Set(t),a=[],o=[],s=0;for(;s<e.length;){let t=e[s];if(t===`--`||nt.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}=$e(t,r);if(l){s+=Q(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+=Q(e,s,t,!1,r.booleanFlags,a);continue}}break}break}return{subCommandIndex:-1,globalTokensBefore:a,tokensAfterSubcommand:[],suppressedTokens:o}}const nt=new Set([`--help`,`-h`,`--help-all`,`-H`,`--version`]);function rt(e,t,n={}){let r=n.stopOnSuppressedNegation===!0||t?.unknownKeysMode===`strict`,i=t?Z(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===`--`||nt.has(n))return-1;if(n.startsWith(`--`)){let{resolvedName:a,isNegated:o,isGlobal:s,isSuppressedNegation:c}=$e(n,i);if(s){et(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)){et(n,r,!1,e[t+1],i.booleanFlags)&&t++;continue}}return-1}return-1}function it(e,t){let n=rt(e,t);return n>=0?e[n]:void 0}function at(e,t,n={}){let i=_(t),a=[...i],o=a.length>0;if(o&&e.length>0){if(n.globalExtracted){let t=tt(e,a,n.globalExtracted);if(t.subCommandIndex>=0){let r=ot(t.globalTokensBefore,n.globalExtracted);return{helpRequested:!1,helpAllRequested:!1,versionRequested:!1,subCommand:e[t.subCommandIndex],remainingArgs:t.tokensAfterSubcommand,rawArgs:{},positionals:[],rest:[],unknownFlags:t.suppressedTokens,unknownGlobalFlags:t.suppressedTokens,rawGlobalArgs:r}}}else{let t=e[0];if(t&&!t.startsWith(`-`)&&i.has(t))return{helpRequested:!1,helpAllRequested:!1,versionRequested:!1,subCommand:t,remainingArgs:e.slice(1),rawArgs:{},positionals:[],rest:[],unknownFlags:[]}}}let c;t.args&&(c=s(t.args),n.skipValidation||(U(c),J(c),W(c),q(c),Re(c),G(c,o),K(c),n.globalExtracted&&Ve(n.globalExtracted,c)));let l=e,u,d=[];if(n.globalExtracted){let{separated:t,globalParsed:r,suppressedTokens:i}=st(e,n.globalExtracted,c);l=t,u=r,d=i}let f=e.indexOf(`--`),p=f>=0?e.slice(0,f):e,m=c?.fields.some(e=>e.overrideBuiltinAlias===!0&&r(e).includes(`H`))??!1,h=c?.fields.some(e=>e.overrideBuiltinAlias===!0&&r(e).includes(`h`))??!1,g=p.includes(`--help-all`)||!m&&p.includes(`-H`),v=!g&&(p.includes(`--help`)||!h&&p.includes(`-h`)),y=p.includes(`--version`);if(v||g||y)return{helpRequested:v,helpAllRequested:g,versionRequested:y,subCommand:void 0,remainingArgs:[],rawArgs:{},positionals:[],rest:[],unknownFlags:[],unknownGlobalFlags:d,rawGlobalArgs:u};if(!c){let e=l.indexOf(`--`);return{helpRequested:!1,helpAllRequested:!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 b=X(c),x=Y(l,b),S=Qe(x,c),C=new Set;for(let e of c.fields)if(e.env&&S[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){S[e.name]=t,C.add(e.name);break}}}let w=new Set(c.fields.map(e=>e.name)),T=new Set(c.fields.map(e=>e.cliName)),E=new Set;for(let e of c.fields)for(let t of r(e))E.add(t);if(n.globalExtracted)for(let e of n.globalExtracted.fields){w.add(e.name),T.add(e.cliName);for(let t of r(e))E.add(t)}let D=[];for(let e of Object.keys(x.options))!w.has(e)&&!T.has(e)&&!E.has(e)&&D.push(e);return{helpRequested:!1,helpAllRequested:!1,versionRequested:!1,subCommand:void 0,remainingArgs:[],rawArgs:S,positionals:x.positionals,rest:x.rest,unknownFlags:D,unknownGlobalFlags:d,extractedFields:c,rawGlobalArgs:u,envFallbackFields:C}}function ot(e,t){return e.length===0?{}:Qe(Y(e,X(t)),t)}function st(e,t,i){let a=Z(t),o=new Set(i?.fields.map(e=>e.name)??[]),s=new Set(i?.fields.map(e=>e.cliName)??[]),c=i?X(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 t of[e.cliName,...r(e)]){let e=`no-${t}`;d.add(e),d.add(n(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}=$e(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+=Q(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+=Q(e,t,n,!1,a.booleanFlags,f)-1;continue}}}p.push(n)}return{separated:p,globalParsed:ot(f,t),suppressedTokens:m}}function ct(t,n){return a(n)?o(t,n):e().validate(t,n)}function lt(e){return e.map(e=>`${e.path.length>0?`${e.path.join(`.`)}: `:``}${e.message}`).join(`
29
+ `)}function ut(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 dt(e,t){let n=Math.max(2,Math.floor(e.length/2));return t.map(t=>({candidate:t,distance:ut(e.toLowerCase(),t.toLowerCase())})).filter(({distance:e})=>e<=n).sort((e,t)=>e.distance-t.distance).map(({candidate:e})=>e).slice(0,3)}function ft(e,t){let n=dt(e.replace(/^-{1,2}/,``),t),r=`${y.warning(`Warning: Unknown option:`)} ${y.bold(e)}`;if(n.length>0){r+=`\n\n${y.info(`Did you mean?`)}`;for(let e of n)r+=`\n ${v.arrow} ${y.option(`--${e}`)}`}return r}function pt(e,t){return t&&e.stack?`${y.error(`Error:`)} ${e.message}\n\n${y.dim(e.stack)}`:`${y.error(`Error:`)} ${e.message}`}function $(e){return new Proxy(e,{get(e,r,i){if(typeof r==`string`){if(r in e)return Reflect.get(e,r,i);let a=n(r);if(a!==r&&a in e)return Reflect.get(e,a,i);let o=t(r);if(o!==r&&o in e)return Reflect.get(e,o,i)}return Reflect.get(e,r,i)},has(e,r){if(typeof r==`string`){if(r in e)return!0;let i=n(r);if(i!==r&&i in e)return!0;let a=t(r);if(a!==r&&a in e)return!0}return Reflect.has(e,r)}})}async function mt(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 ht={log:e=>console.log(e),error:e=>console.error(e),warn:e=>console.warn(e)};function gt(e,r){Object.defineProperty(e,"$source",{value:e=>r.get(e)??r.get(n(e))??r.get(t(e))??`default`,enumerable:!1})}function _t(e,t){Object.defineProperty(e,"$invocation",{value:t,enumerable:!1})}function vt(e,t){let n=t.commandPath?.at(-1)??e.name;return t.aliasFor?{name:n,aliasFor:t.aliasFor}:{name:n}}async function yt(e,t,n={}){let r=wt(n),i=n.captureLogs??!1,a=i?d():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()??l()}}a?.stop()}let o=await Ct(e,t,{...n,handleSignals:!1,_globalExtracted:r,_globalCleanup:n.cleanup,_existingLogs:a?.getLogs()});if(n.cleanup){let e=i?d():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:u(o.logs,e?.getLogs()??l())}}}e?.stop();let r=e?.getLogs()??l();if(r.entries.length>0)return{...o,logs:u(o.logs,r)}}return o}function bt(e,t,n){let r=it(t,n);return!r||!r.startsWith(`__`)?!1:Object.hasOwn(e.subCommands??{},r)}async function xt(e,t={}){if(t.compileCache!==!1&&c(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=s(t.globalArgs)}catch{}let i=t;if(bt(e,n,r)){let{setup:e,cleanup:n,prompt:r,globalArgs:a,...o}=t;i=o}let a=wt(i);if(i.onUnknownSubcommand&&!e.run&&!bt(e,n,r)){let t=_(e);if(t.size>0){let e=rt(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 St(),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 Ct(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??ht).error(pt(o.error,i.debug??!1)),i.cleanup){let e={error:o.success?void 0:o.error};try{await i.cleanup(e)}catch{}}await St(),process.exit(o.exitCode)}async function St(){await Promise.all([process.stdout,process.stderr].map(e=>e.writableLength>0?new Promise(t=>e.write(``,()=>t())):Promise.resolve()))}async function Ct(e,t,n={}){let r=n.logger??ht,i=n._context??{commandPath:[],rootName:e.name,globalExtracted:n._globalExtracted},a=n.captureLogs??!1?d():null;a?.start();let o=()=>{let e=n._existingLogs??l(),t=a?.getLogs()??l();return u(e,t)};try{let s=at(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=_(e);if(r.size>0){let e=rt(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 St(),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){let c=!1,l=m(e),u=_(e);if(l.length>0){let e=it(t,i.globalExtracted);e&&!u.has(e)&&(c=!0)}let d=V(e,{showSubcommands:n.showSubcommands??!0,showSubcommandOptions:s.helpAllRequested||n.showSubcommandOptions,context:i});if(r.log(d),a?.stop(),c){let e=it(t,i.globalExtracted)??``,n=dt(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(ft(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 f(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(qe(e)),d=t.slice(0,t.length-s.remainingArgs.length-1).filter(e=>!u(e));return Ct(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`),p=[...s.positionals,...s.rest],h=d?[]:p.slice(u.length),g=d?[]:s.positionals.slice(u.length);if(m(e).length>0&&!s.subCommand&&!e.run&&h.length===0){let t=V(e,{showSubcommands:n.showSubcommands??!0,context:i});return r.log(t),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(ft(e,t))}if(h.length>0){let t=_(e);if(t.size>0){let e=g.find(e=>!e.startsWith(`-`)&&!t.has(e));if(e){let n=dt(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${h.length>1?`s`:``}: ${h.join(`, `)}`),exitCode:1,logs:o()};if(n===`strip`)for(let e of h)(r.warn??r.error)(`Warning: Unexpected positional argument: ${e}`)}let v={},y=e.name===`__complete`,b=new Set(Object.keys(c)),S=new Set;if(n.globalArgs&&n._globalExtracted&&!y){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]=t,S.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=ct(c,n.globalArgs);if(!e.success)return a?.stop(),{success:!1,error:Error(lt(e.errors)),exitCode:1,logs:o()};v=e.data}if(!e.args){let t=new Map;for(let e of b)t.set(e,`cli`);for(let e of S)t.set(e,`env`);gt(v,t),_t(v,vt(e,i));let r=$(v);return n._globalExtracted&&!y&&await mt(r,n._globalExtracted,r),a?.stop(),await x(e,r,{handleSignals:n.handleSignals,captureLogs:n.captureLogs,existingLogs:o(),globalCleanup:n._globalCleanup})}let C=s.rawArgs,w=new Set;if(n.prompt&&s.extractedFields){let e=await n.prompt(C,s.extractedFields),t={...C};for(let[n,r]of Object.entries(e))r!==void 0&&(t[n]=r,w.add(n));C=t}let T=new Set;if(s.extractedFields)for(let e of s.extractedFields.fields)!(Object.hasOwn(s.rawArgs,e.name)||w.has(e.name))&&b.has(e.name)&&Object.hasOwn(v,e.name)&&(C={...C,[e.name]:v[e.name]},T.add(e.name));let E=ct(C,e.args);if(!E.success)return a?.stop(),{success:!1,error:Error(lt(E.errors)),exitCode:1,logs:o()};let D=$(E.data),O=$(v);n._globalExtracted&&!y&&await mt(O,n._globalExtracted,O),s.extractedFields&&!y&&await mt(D,s.extractedFields,O);let k={...O,...D},A=new Map;for(let e of b)A.set(e,`cli`);for(let e of S)A.set(e,`env`);let j=s.envFallbackFields??new Set;for(let e of s.extractedFields?.fields??[]){if(T.has(e.name)){A.set(e.name,`cli`);continue}let t=Object.hasOwn(s.rawArgs,e.name)||j.has(e.name);A.set(e.name,t?j.has(e.name)?`env`:`cli`:`default`)}gt(k,A),_t(k,vt(e,i));let M=$(k);return a?.stop(),await x(e,M,{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 wt(e){if(!e.globalArgs)return;let t=s(e.globalArgs);if(!e.skipValidation){U(t),J(t),W(t),q(t),G(t,!0),K(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,O as E,Te as S,D as T,De as _,Y as a,Ae as b,Ge as c,U as d,q as f,H as g,K as h,lt as i,Ve as l,G as m,xt as n,Ke as o,Re as p,$ as r,J as s,yt as t,W as u,Ee as v,V as w,we as x,Oe as y};
@@ -0,0 +1 @@
1
+ import{a as e,i as t}from"./schema-extractor-DU0Vuhbd.js";const n=t({shell:e.enum([`bash`,`zsh`,`fish`],{description:`Target shell for output formatting`}),args:e.stringArray({positional:!0,description:`Arguments to complete`})});export{n as t};
@@ -0,0 +1 @@
1
+ import{a as e,n as t}from"./field-meta-COGya7xp.js";const n=`__polittyInternalArgs`,r={string(e){return{kind:`string`,optional:!1,meta:e}},optionalString(e){return{kind:`string`,optional:!0,meta:e}},boolean(e){return{kind:`boolean`,optional:!1,defaultValue:!1,meta:e}},enum(e,t){return{kind:`enum`,enumValues:e,optional:!1,meta:t}},optionalEnum(e,t){return{kind:`enum`,enumValues:e,optional:!0,meta:t}},stringArray(e){return{kind:`string-array`,optional:!1,defaultValue:[],meta:e}},optionalStringArray(e){return{kind:`string-array`,optional:!0,meta:e}}};function i(e,t={}){return{[n]:!0,fields:e,unknownKeys:t.unknownKeys??`strip`}}function a(e){return typeof e==`object`&&!!e&&e[n]===!0}const o={string:`string`,boolean:`boolean`,enum:`string`,"string-array":`array`},s=new WeakMap;function c(e){let n=s.get(e);if(n)return n;let r={fields:Object.entries(e.fields).map(([e,n])=>t(e,{argMeta:n.meta,description:void 0,required:!n.optional&&n.defaultValue===void 0,defaultValue:n.defaultValue,type:o[n.kind],enumValues:n.enumValues?[...n.enumValues]:void 0,schema:n})),schema:e,schemaType:`object`,unknownKeysMode:e.unknownKeys};return s.set(e,r),r}function l(e){switch(e.kind){case`enum`:return`one of ${(e.enumValues??[]).map(e=>JSON.stringify(e)).join(` | `)}`;case`string-array`:return`array`;default:return e.kind}}function u(e){return e===null?`null`:Array.isArray(e)?`array`:typeof e}function d(e,t,n){return{path:[e],message:`Invalid input: expected ${l(t)}, received ${u(n)}`,code:`invalid_type`,received:n,expected:l(t)}}function f(e,t,n){switch(t.kind){case`string`:return typeof n==`string`?null:d(e,t,n);case`boolean`:return typeof n==`boolean`?null:d(e,t,n);case`enum`:return typeof n!=`string`||!(t.enumValues??[]).includes(n)?{path:[e],message:`Invalid option: expected ${l(t)}`,code:`invalid_value`,received:n,expected:l(t)}:null;case`string-array`:return!Array.isArray(n)||n.some(e=>typeof e!=`string`)?d(e,t,n):null}}function p(e,t){let n=[],r={};for(let[i,a]of Object.entries(t.fields)){let t=e[i];if(t===void 0){a.defaultValue===void 0?a.optional||n.push(d(i,a,void 0)):r[i]=Array.isArray(a.defaultValue)?[...a.defaultValue]:a.defaultValue;continue}let o=f(i,a,t);if(o){n.push(o);continue}r[i]=t}let i=new Set(Object.keys(t.fields)),a=Object.keys(e).filter(e=>!i.has(e));if(a.length>0){if(t.unknownKeys===`strict`)n.push({path:[],message:`Unrecognized key${a.length>1?`s`:``}: ${a.map(e=>JSON.stringify(e)).join(`, `)}`,code:`unrecognized_keys`});else if(t.unknownKeys===`passthrough`)for(let t of a)Object.defineProperty(r,t,{value:e[t],enumerable:!0,writable:!0,configurable:!0})}return n.length>0?{success:!1,errors:n}:{success:!0,data:r}}function m(t){return a(t)?t.unknownKeys:e().getUnknownKeysMode(t)}function h(t){return a(t)?c(t):e().extractFields(t)}function g(e){return e.args?h(e.args):null}export{r as a,i,g as n,a as o,m as r,p as s,h as t};
package/dist/skill.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Z as UnknownKeysMode, b as ArgsSchema, v as AnyCommand } from "./arg-registry-B8QvBM_Q.js";
1
+ import { Q as UnknownKeysMode, b as ArgsSchema, v as AnyCommand } from "./arg-registry-Be4GJADw.js";
2
2
  import { z } from "zod";
3
3
  //#region ../core/src/skill/types.d.ts
4
4
  /**