@politty/zod 0.1.2 → 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 (52) hide show
  1. package/README.md +31 -0
  2. package/dist/augment.js +1 -1
  3. package/dist/cli-main-C8D_mKfv.js +2 -0
  4. package/dist/cli-main-ClQaGXB3.js +1 -0
  5. package/dist/cli-run-BFXIag27.js +1 -0
  6. package/dist/cli.js +1 -15
  7. package/dist/command-Mbdt0bmN.js +1 -0
  8. package/dist/compile-cache-VuUbFWIo.js +1 -0
  9. package/dist/compile-cache.js +1 -3
  10. package/dist/completion-D8DMrPqg.js +116 -0
  11. package/dist/completion-DUMcvXkT.js +1 -0
  12. package/dist/completion.d.ts +86 -6
  13. package/dist/completion.js +1 -4
  14. package/dist/docs.js +84 -3063
  15. package/dist/dynamic-CMtee4tD.js +1 -0
  16. package/dist/dynamic-CrnlveHj.js +6 -0
  17. package/dist/field-meta-COGya7xp.js +1 -0
  18. package/dist/index.d.ts +2 -2
  19. package/dist/index.js +1 -27
  20. package/dist/log-collector-hiFa3sNm.js +1 -0
  21. package/dist/logger-CJsyJ8sb.js +1 -0
  22. package/dist/prompt-CqmGq1_N.js +1 -0
  23. package/dist/prompt-clack.js +1 -32
  24. package/dist/prompt-inquirer.js +1 -47
  25. package/dist/prompt.js +1 -4
  26. package/dist/register-C1WbbeYH.js +1 -0
  27. package/dist/runner-C_wCXh6X.js +1 -0
  28. package/dist/runner-uPmkI9Gb.js +29 -0
  29. package/dist/schema-BiUP_KyV.js +1 -0
  30. package/dist/schema-extractor-DU0Vuhbd.js +1 -0
  31. package/dist/skill.js +2 -1837
  32. package/dist/subcommand-router-D8GTMXYL.js +1 -0
  33. package/dist/with-completion-command-DDohm8U6.js +3 -0
  34. package/dist/{index-B4NylQOW.d.ts → with-completion-command-xaVZtAga.d.ts} +3 -74
  35. package/package.json +3 -3
  36. package/dist/cli-main-CAa5KwCo.js +0 -314
  37. package/dist/cli-main-DIRMduj1.js +0 -3
  38. package/dist/cli-run-B--tZW_I.js +0 -8
  39. package/dist/command-k-4yAz4J.js +0 -42
  40. package/dist/compile-cache-BC65o7MH.js +0 -103
  41. package/dist/completion-Ot2qpNNw.js +0 -5616
  42. package/dist/field-meta-CO38jOvl.js +0 -148
  43. package/dist/log-collector-CoUkLVJB.js +0 -114
  44. package/dist/logger-i_bb-Jhc.js +0 -133
  45. package/dist/prompt-BjIZThsH.js +0 -169
  46. package/dist/register-DdcsbNwM.js +0 -440
  47. package/dist/runner-Bz3arOqh.js +0 -3051
  48. package/dist/runner-Cs-Mz9JN.js +0 -3
  49. package/dist/schema-extractor-CVNDs07l.js +0 -250
  50. package/dist/src-D4QGGgW1.js +0 -6
  51. package/dist/src-DhQVU2hG.js +0 -12
  52. 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
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 { 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-B4NylQOW.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
  /**
@@ -851,4 +851,4 @@ declare const defineCommand: DefineCommandFn<ArgsSchema>;
851
851
  declare const createDefineCommand: CreateDefineCommandFn<ArgsSchema>;
852
852
  declare const arg: ArgFn<z.ZodType>;
853
853
  //#endregion
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, 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-CO38jOvl.js";
2
- import { t as arg$1 } from "./register-DdcsbNwM.js";
3
- import { r as getUnknownKeysMode, t as extractFields } from "./schema-extractor-CVNDs07l.js";
4
- import { n as createCompileCacheShimGenerator, t as runPolittyCli } from "./cli-main-CAa5KwCo.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-Bz3arOqh.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-Ot2qpNNw.js";
10
- import "./src-D4QGGgW1.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,32 +1 @@
1
- import "./register-DdcsbNwM.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,47 +1 @@
1
- import "./register-DdcsbNwM.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.js CHANGED
@@ -1,4 +1 @@
1
- import "./register-DdcsbNwM.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};