@politty/zod 0.3.1 → 0.4.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 (42) hide show
  1. package/dist/{arg-registry-DdEs3jd0.d.ts → arg-registry-Dvi0co21.d.ts} +9 -2
  2. package/dist/argv-parser-DZQ0qnXG.js +1 -0
  3. package/dist/augment.d.ts +4 -2
  4. package/dist/cli-main-BX5IVgNq.js +1 -0
  5. package/dist/{cli-main-DWQYfxFO.js → cli-main-uRzr666k.js} +2 -2
  6. package/dist/cli-run-DtG5fM18.js +1 -0
  7. package/dist/cli.js +1 -1
  8. package/dist/completion-8frPuaX8.js +1 -0
  9. package/dist/completion-OvSe3W9y.js +116 -0
  10. package/dist/completion.d.ts +2 -2
  11. package/dist/completion.js +1 -1
  12. package/dist/docs.d.ts +1 -1
  13. package/dist/docs.js +47 -47
  14. package/dist/dynamic-4uRohypH.js +6 -0
  15. package/dist/dynamic-C5e2NuDv.js +1 -0
  16. package/dist/{field-meta-D7G8a7IG.js → field-meta-_l-FHbh7.js} +1 -1
  17. package/dist/index.d.ts +4 -2
  18. package/dist/index.js +1 -1
  19. package/dist/prompt-clack.d.ts +1 -1
  20. package/dist/prompt-clack.js +1 -1
  21. package/dist/prompt-inquirer.d.ts +1 -1
  22. package/dist/prompt-inquirer.js +1 -1
  23. package/dist/prompt.d.ts +1 -1
  24. package/dist/prompt.js +1 -1
  25. package/dist/{register-D0mDOOyc.js → register-BXOytPt7.js} +1 -1
  26. package/dist/runner-BTD1-gUd.js +30 -0
  27. package/dist/runner-BTF0HIGj.js +1 -0
  28. package/dist/{schema-ohwvrBGz.js → schema-DhMPssIJ.js} +1 -1
  29. package/dist/{schema-extractor-QpSHJvwI.js → schema-extractor-Du9ipDD4.js} +1 -1
  30. package/dist/skill.d.ts +3 -3
  31. package/dist/skill.js +2 -2
  32. package/dist/{with-completion-command-Bi7v_Wlq.d.ts → with-completion-command-BKHwbzEc.d.ts} +1 -1
  33. package/dist/{with-completion-command-CZ9qcezN.js → with-completion-command-CQcqFHq8.js} +2 -2
  34. package/package.json +2 -2
  35. package/dist/cli-main-X_a3vjMI.js +0 -1
  36. package/dist/cli-run-BfhO1D3b.js +0 -1
  37. package/dist/completion-CDwNvtfE.js +0 -1
  38. package/dist/completion-DwBjO-3Q.js +0 -116
  39. package/dist/dynamic-BBr42fJH.js +0 -1
  40. package/dist/dynamic-BK6Tq_FR.js +0 -6
  41. package/dist/runner-DPQ3GQA7.js +0 -1
  42. package/dist/runner-DtJbfhOs.js +0 -30
@@ -1,116 +0,0 @@
1
- import{t as e}from"./schema-extractor-QpSHJvwI.js";import{n as t}from"./command-tLHaJHe6.js";import{c as n}from"./subcommand-router-D8GTMXYL.js";import{a as r,i,n as a,o,r as s,s as c}from"./with-completion-command-CZ9qcezN.js";import{c as l,d as u,f as d,g as f,h as p,i as m,l as h,m as g,p as _,s as v,t as y,u as ee}from"./dynamic-BK6Tq_FR.js";import{existsSync as b,mkdirSync as x,readFileSync as S,realpathSync as C,renameSync as te,rmSync as ne,statSync as w,writeFileSync as re}from"node:fs";import{dirname as T,extname as ie,isAbsolute as ae,join as E,relative as oe,resolve as se}from"node:path";import{promisify as ce}from"node:util";import{execFile as le}from"node:child_process";function ue(e,t,n=[],r=!1){if(t.length===0)return;let i=de(e,n);for(let e of t)e.set(fe(e,i,r))}function de(e,t){let n=new Map,r=new Set;for(let t of[...e.options,...e.positionals])r.add(t.name);let i=(e,t)=>{for(let i of e){if(n.has(i.name)||t&&r.has(i.name))continue;let e=i.valueCompletion;e?.type===`choices`&&e.choices&&e.choices.length>0&&n.set(i.name,e.choices)}};return i([...e.options,...e.positionals],!1),i(t,!0),n}function fe(e,t,n=!1){let{spec:r}=e,i=r.dependsOn;if(i.length===0)throw Error(`Field "${e.describe}": completion.custom.expand.dependsOn must list at least one sibling arg.`);let a=[];for(let n of i){if(n===e.name)throw Error(`Field "${e.describe}": completion.custom.expand.dependsOn cannot reference the field itself ("${n}").`);let r=t.get(n);if(!r)throw Error(`Field "${e.describe}": completion.custom.expand.dependsOn references "${n}", which is not a sibling arg with a static \`choices\`/enum schema on the same command. Chaining expand specs is not supported.`);a.push([...r])}if(n)return{type:`expand`,dependsOn:i,table:[]};let o=[];for(let t of me(a)){let n={};i.forEach((e,r)=>{n[e]=t[r]});let a;try{a=r.enumerate(n)}catch(t){let r=t instanceof Error?t.message:String(t);throw Error(`Field "${e.describe}": completion.custom.expand.enumerate threw for deps=${JSON.stringify(n)}: ${r}`)}let s=pe(a);s.length!==0&&o.push({key:t,candidates:s})}return{type:`expand`,dependsOn:i,table:o}}function pe(e){let t=[],n=new Set;for(let r of e){let e=typeof r==`string`?r:r.value;if(n.has(e))continue;n.add(e);let i={value:e};typeof r!=`string`&&r.description!==void 0&&(i.description=r.description),t.push(i)}return t}function*me(e){if(e.length===0){yield[];return}let t=Array.from({length:e.length}).fill(0);for(;;){yield t.map((t,n)=>e[n][t]);let n=e.length-1;for(;n>=0&&(t[n]++,!(t[n]<e[n].length));)t[n]=0,n--;if(n<0)return}}function he(e,t,n,r){let i=v(e);if(i?.type===`pending-expand`){t.push({name:e.name,describe:n,set:r,spec:i.spec});return}i!==void 0&&r(i)}function D(e){return e.replace(/[^a-zA-Z0-9_]/g,`_`)}function O(e){let t=e.toUpperCase();return/^[A-Z_]/.test(t)?`${t}_BIN`:`_${t}_BIN`}function k(e,t,n){return`__${e}_expand_${t}__${D(n)}`}function ge(e,t){return[`__${e}_invoke_complete() {`,` local _shell="$1"; shift`,` "\${${O(e)}:-${t}}" __complete --shell "$_shell" -- "$@" 2>/dev/null`,`}`]}function A(e){return e.filter(e=>!e.name.startsWith(`__`))}function j(e){let t=[];for(let n of A(e))if(t.push({name:n.name,description:n.description}),n.aliases)for(let e of n.aliases)t.push({name:e,description:n.description});return t}function _e(e,t){let n=e.type===`boolean`&&e.negation===!0,r={name:e.name,cliName:e.cliName,alias:e.alias,negation:e.negationDisplay,negationDescription:e.negationDescription,description:e.description,takesValue:e.type!==`boolean`,valueType:e.type,required:e.required,defaultNegationAccepted:n};return he(e,t,`--${e.cliName}`,e=>{r.valueCompletion=e}),r}function ve(t){return t.args?e(t.args).fields.filter(e=>e.positional):[]}function ye(e,t){return e.filter(e=>!e.positional).map(e=>_e(e,t))}function be(e,t){return e.filter(e=>e.positional).map((e,n)=>{let r={name:e.name,cliName:e.cliName,position:n,description:e.description,required:e.required,variadic:e.type===`array`};return he(e,t,`<${e.cliName}>`,e=>{r.valueCompletion=e}),r})}function xe(t,r,i=[],a=!1){let o=[];if(r.subCommands)for(let[e,t]of Object.entries(r.subCommands)){let r=n(t);r?o.push(xe(e,r,i,a)):o.push({name:e,description:`(lazy loaded)`,subcommands:[],options:[],positionals:[]})}let s=[],c=r.args?e(r.args).fields:[],l={name:t,description:r.description,aliases:r.aliases,subcommands:o,options:ye(c,s),positionals:be(c,s)};return ue(l,s,i,a),l}function M(e,t,n){return e?`${e}${n}${t}`:t}function Se(e,t){let n=[t.name,...t.aliases??[]];return e.flatMap(e=>n.map(t=>M(e,t,`:`)))}function Ce(e,t){let n=[],r=A(e.subcommands).length>0;for(let i of e.options){if(!i.takesValue)continue;let a=r&&i.isGlobal===!0?h(i.cliName,i.alias):P(i,e.options);a.length!==0&&n.push({parentPath:t,tokens:a})}for(let r of A(e.subcommands))for(let e of[r.name,...r.aliases??[]])n.push(...Ce(r,M(t,e,`:`)));return n}function we(e,t){return Ce(e,t).map(e=>` ${e.tokens.map(t=>`${e.parentPath}:${t}`).join(`|`)}) return 0 ;;`)}function N(e,t=``,n=``){let r=[];for(let i of A(e.subcommands)){let e=M(n,D(i.name),`_`);for(let n of[i.name,...i.aliases??[]]){let a=M(t,n,`:`);r.push(...N(i,a,e)),r.push({pathStr:a,funcSuffix:e,lookupPattern:`${t}:${n}`})}}return r}function Te(e){return e.map(e=>` ${e.lookupPattern}) return 0 ;;`)}function Ee(e,t){return e.map(e=>` ${e.pathStr}) __${t}_complete_${e.funcSuffix} ;;`)}function De(e,t){let n=e.isGlobal?`_global_arg_values`:`_arg_values`;return t===`bash`?`${n}_${D(e.fieldName)}="$3"`:`${n}[${e.fieldName}]="$3"`}function Oe(e,t){let n=[];for(let r of e){if(r.isPositional||!r.optionTokens||r.optionTokens.length===0)continue;let e=r.pathStrs.flatMap(e=>r.optionTokens.map(t=>`${e}:${t}`)).join(`|`);n.push(` ${e}) ${De(r,t)} ;;`)}return n}function ke(e,t){let n=[];for(let r of e){if(!r.isPositional)continue;let e=r.pathStrs.map(e=>`${e}:${r.position}`).join(`|`);n.push(` ${e}) ${De(r,t)} ;;`)}return n}function Ae(e,t){let n=[];for(let r of e){if(r.optionTokens.length===0)continue;let e=r.pathStrs.flatMap(e=>r.optionTokens.map(t=>`${e}:${t}`)).join(`|`),i=D(r.fieldName),a=r.isGlobal?`_global_used_field_keys`:`_used_field_keys`,o=t===`bash`?`${a}_${i}`:`${a}[${i}]`,s=t===`bash`?`_global_arr_seen_${i}`:`_global_arr_seen[${i}]`,c=`${o}=" $_k "`,l=`${o}+=" $_k "`,u=`${s}=1`;n.push(` ${e})`),n.push(` if [[ "$3" == *=* ]]; then`),n.push(' local _k="${3%%=*}"'),r.isGlobal?(n.push(` if [[ -n "$_k" ]]; then`),n.push(` if [[ -z "\${${s}:-}" ]]; then`),n.push(` ${c}`),n.push(` ${u}`),n.push(` else`),n.push(` ${l}`),n.push(` fi`),n.push(` fi`)):n.push(` [[ -n "$_k" ]] && ${l}`),n.push(` fi`),n.push(` ;;`)}return n}function P(e,t){let n=h(e.cliName,e.alias);if(e.isGlobal===!0){let e=new Set;for(let n of t)if(n.isGlobal!==!0)for(let t of u(n.cliName,n.alias))e.add(t);return n.filter(t=>!e.has(t))}let r=ee(t);return r.size===0?n:n.filter(t=>!t.startsWith(`-`)||t.startsWith(`--`)||!r.has(t)?!0:e.alias?.includes(t.slice(1))===!0)}function je(e){let t=[];return Me(e,[],[``],[],`root`,t),t}function Me(e,t,n,r,i,a){let o=n[0];for(let s of e.options){let c=s.valueCompletion;if(c?.type===`expand`){let l=s.valueType===`array`;a.push({path:t,pathStr:o,pathStrs:n,intermediatePathStrs:r,funcSuffix:i,fieldName:s.name,isGlobal:s.isGlobal===!0,isPositional:!1,isArrayOption:l,optionTokens:l?P(s,e.options):[],vc:c})}}for(let s of e.positionals){let e=s.valueCompletion;e?.type===`expand`&&a.push({path:t,pathStr:o,pathStrs:n,intermediatePathStrs:r,funcSuffix:i,fieldName:s.name,isGlobal:!1,isPositional:!0,isArrayOption:!1,optionTokens:[],vc:e})}for(let o of A(e.subcommands))Me(o,[...t,o.name],Se(n,o),[...r,...n],i===`root`?D(o.name):`${i}_${D(o.name)}`,a)}function Ne(e,t,n=[]){let r=Pe(e),i=new Map,a=(e,t,n)=>{let r=i.get(e);r||(r={ref:t,pathStrs:[],seen:new Set},i.set(e,r));for(let e of n)r.seen.has(e)||(r.seen.add(e),r.pathStrs.push(e))},o=(e,t,n)=>{let i=new Map,a=(e,t)=>{if(t.length===0)return;let n=t.join(` `),r=i.get(n);r||(r={tokens:t,paths:[]},i.set(n,r)),r.paths.push(e)};for(let n of t){let t=r.get(n);if(!t)continue;let i=new Set;for(let e of t.options)if(e.isGlobal!==!0)for(let t of u(e.cliName,e.alias))i.add(t);a(n,e.filter(e=>!i.has(e)))}for(let t of n)a(t,e);return i},s=(e,t,n)=>{let r=h(t.cliName,t.alias),i=o(r,n.pathStrs,n.intermediatePathStrs);for(let[t,n]of i)a(`g::${e}::${t}`,{fieldName:e,isGlobal:!0,isPositional:!1,optionTokens:n.tokens},n.paths)};for(let e of t){let t=r.get(e.pathStr);if(t)for(let r of e.vc.dependsOn){if(e.isGlobal){let t=n.find(e=>e.name===r);if(!t)continue;s(r,t,e);continue}let i=t.positionals.findIndex(e=>e.name===r);if(i>=0){a(`lp::${e.pathStr}::${r}`,{fieldName:r,isGlobal:!1,isPositional:!0,position:i},e.pathStrs);continue}let o=t.options.find(e=>e.name===r);if(o){if(o.isGlobal===!0){s(r,o,e);continue}a(`lo::${e.pathStr}::${r}`,{fieldName:r,isGlobal:!1,isPositional:!1,optionTokens:P(o,t.options)},e.pathStrs)}}}let c=[];for(let e of i.values())e.pathStrs.length!==0&&c.push({...e.ref,pathStr:e.pathStrs[0],pathStrs:e.pathStrs});return c}function Pe(e){let t=new Map,n=(e,r)=>{for(let n of r)t.set(n,e);for(let t of A(e.subcommands))n(t,Se(r,t))};return n(e,[``]),t}function F(e){for(let t of e.options)if(t.valueCompletion?.type===`dynamic`)return!0;for(let t of e.positionals)if(t.valueCompletion?.type===`dynamic`)return!0;for(let t of e.subcommands)if(F(t))return!0;return!1}function Fe(e,t){let n=new Set(e.options.map(e=>e.name)),r=t.filter(e=>!n.has(e.name));e.options=[...e.options,...r];for(let n of e.subcommands)Fe(n,t)}function I(t,n,r,i=!1){let a=[];if(r){let t=[];a=ye(e(r).fields,t).map(e=>(e.isGlobal=!0,e)),ue({name:n,subcommands:[],options:a,positionals:[]},t,[],i)}let o=xe(n,t,a,i);return r?Fe(o,a):a=o.options,{command:o,programName:n,globalOptions:a}}function L(e){try{return Math.floor(w(e).mtimeMs/1e3).toString()}catch{return`0`}}function Ie(e){return e.replace(/\r?\n/g,` `)}function Le(e){if(!e||/[/\\\0]/.test(e))return null;let t=process.env.PATH??``;for(let n of t.split(`:`)){if(!n)continue;let t=E(n,e);try{if(w(t).isFile())return t}catch{}}return null}function R(e,t){return t||process.env[O(D(e))]||(Le(e)??process.argv[1]??``)}function z(e){let t=R(e.programName,e.binPath),n=[`# politty-completion-version: 1`,`# politty-bin-sig: ${L(t)}`,`# politty-bin-path: ${Ie(t)}`,`# program: ${e.programName}`];return e.programVersion&&n.push(`# program-version: ${e.programVersion}`),n.push(`# shell: ${e.shell}`),n}function Re(e){let{programName:t,binPath:n}=e,r=D(t),i=O(r),a=R(t,n),o=L(a),s=p(a),c=`__${r}_self_refresh`;return[`${c}() {`,` local _self _bin _sig`," _self=${BASH_SOURCE[0]:-}",` [[ -n "$_self" && -f "$_self" ]] || return 1`,` head -n 8 "$_self" 2>/dev/null | grep -qF "# politty-completion-version:" || return 1`,` head -n 8 "$_self" 2>/dev/null | grep -qxF "# program: ${t}" || return 1`,` head -n 8 "$_self" 2>/dev/null | grep -qxF "# shell: bash" || return 1`,` _bin="\${${i}:-$(type -P ${t} 2>/dev/null)}"`,` [[ -n "$_bin" ]] || return 1`,` _sig=${f(`$_bin`,{shell:`posix`})} || return 1`,` [[ "$_sig" != "${o}" || "$_bin" != ${s} ]] || return 1`,` "$_bin" __refresh-completion bash "$_self" --static 2>/dev/null || return 1`,` head -n 8 "$_self" 2>/dev/null | grep -qxF "# politty-bin-sig: $_sig" || return 1`,` head -n 8 "$_self" 2>/dev/null | grep -qxF "# politty-bin-path: $_bin" || return 1`,` source "$_self" 2>/dev/null || return 1`,` return 0`,`}`,`if ${c}; then`,` unset -f ${c}`,` return 0 2>/dev/null || true`,`else`,` unset -f ${c}`,`fi`,``]}function ze(e){let{programName:t,binPath:n}=e,r=D(t),i=O(r),a=`_${t}`,o=R(t,n),s=L(o),c=p(o),l=`__${r}_self_refresh`;return[`${l}() {`,` emulate -L zsh`,` setopt local_options no_aliases`,` local _self _bin _sig`,' _self="${(%):-%x}"',` [[ -n "$_self" && -f "$_self" ]] || return 1`,` head -n 8 "$_self" 2>/dev/null | grep -qF "# politty-completion-version:" || return 1`,` head -n 8 "$_self" 2>/dev/null | grep -qxF "# program: ${t}" || return 1`,` head -n 8 "$_self" 2>/dev/null | grep -qxF "# shell: zsh" || return 1`,` _bin="\${${i}:-$(whence -p ${t} 2>/dev/null)}"`,` [[ -n "$_bin" ]] || return 1`,` _sig=${f(`$_bin`,{shell:`posix`})} || return 1`,` [[ "$_sig" != "${s}" || "$_bin" != ${c} ]] || return 1`,` "$_bin" __refresh-completion zsh "$_self" --static 2>/dev/null || return 1`,` head -n 8 "$_self" 2>/dev/null | grep -qxF "# politty-bin-sig: $_sig" || return 1`,` head -n 8 "$_self" 2>/dev/null | grep -qxF "# politty-bin-path: $_bin" || return 1`,` source "$_self" 2>/dev/null || return 1`,` ${a} "$@"`,` return 0`,`}`,`if ${l} "$@"; then`,` unfunction ${l} 2>/dev/null`,` return 0 2>/dev/null || true`,`else`,` unfunction ${l} 2>/dev/null`,`fi`,``]}function Be(e){return e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`).replace(/\$/g,`\\$`).replace(/`/g,"\\`")}function Ve(e){let t=``,n=new TextEncoder().encode(e);for(let e of n)t+=e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122?String.fromCharCode(e):`_${e.toString(16).toUpperCase().padStart(2,`0`)}`;return t}function He(e,t,n,r){if(!e)return[];switch(e.type){case`expand`:{if(!r)throw Error(`bashValueLines: expand variant requires a location`);let e=k(n,r.funcSuffix,r.fieldName),i=[`local _enc_key='' _enc_v`];r.resolvedDeps.forEach((e,t)=>{let r=D(e.name),a=e.isGlobal?`_global_arg_values_${r}`:`_arg_values_${r}`;i.push(`_enc_v="\${${a}:-}"`),i.push(t===0?`_enc_key="$(__${n}_enc "$_enc_v")"`:`_enc_key+="_$(__${n}_enc "$_enc_v")"`)});let a=t?'"${_inline_prefix}${_c}"':`"$_c"`,o=r.isGlobal?`\${_global_used_field_keys_${D(r.fieldName)}:-}`:`\${_used_field_keys_${D(r.fieldName)}:-}`,s=r.isArrayOption?[` if [[ -n "$_ck" && " ${o} " == *" $_ck "* ]]; then continue; fi`]:[];return[`compopt +o default 2>/dev/null`,...i,`local _varname=${e}__\${_enc_key}`,'local _raw="${!_varname:-}"',`if [[ -n "$_raw" ]]; then`,` local -a _vals=()`,` local _line`,` while IFS= read -r _line; do _vals+=("$_line"); done <<< "$_raw"`,` local _c _ck _seen_keys=" " _had_key=0`,' for _c in "${_vals[@]}"; do',` [[ -z "$_c" ]] && continue`,` if [[ "$_c" == *=* ]]; then`,' _ck="${_c%%=*}"',...s,` if [[ "$_cur" != *=* ]]; then`,` [[ "$_seen_keys" == *" $_ck "* ]] && continue`,` _seen_keys+="$_ck "`,' _c="${_ck}="',` _had_key=1`,` elif [[ "$_c" != *=?* ]]; then`,` continue`,` fi`,` fi`,` [[ "$_c" == "$_cur"* ]] && COMPREPLY+=(${a})`,` done`,` if (( _had_key )); then compopt -o nospace 2>/dev/null; fi`,`fi`,'if (( ${#COMPREPLY[@]} == 0 )); then COMPREPLY=( "" ); fi']}case`dynamic`:return[`local _dyn_out`,`_dyn_out=$(__${n}_invoke_complete bash "\${_words[@]}")`,`__${n}_apply_dynamic_output "$_dyn_out"`];case`choices`:{let n=[`local -a _choices=(${e.choices.map(e=>`"${Be(e)}"`).join(` `)})`,`COMPREPLY=()`,'local _c; for _c in "${_choices[@]}"; do [[ "$_c" == "$_cur"* ]] && COMPREPLY+=("${_inline_prefix}${_c}"); done'];return t&&n.push(`compopt -o nospace`),n.push(`compopt +o default 2>/dev/null`),n}case`file`:return e.matcher?.length?Ue(e.matcher.map(e=>`[[ "\${_f##*/}" == ${e} ]]`).join(` || `)):e.extensions?.length?Ue(e.extensions.map(e=>`[[ "$_f" == *".${e}" ]]`).join(` || `)):[`COMPREPLY=($(compgen -P "$_inline_prefix" -f -- "$_cur"))`,`compopt -o filenames`];case`directory`:return[`COMPREPLY=($(compgen -P "$_inline_prefix" -d -- "$_cur"))`,`compopt -o filenames`];case`command`:return[`COMPREPLY=($(compgen -P "$_inline_prefix" -W "$(${e.shellCommand})" -- "$_cur"))`];case`none`:return[`compopt +o default 2>/dev/null`];case`runtime-expand`:return[]}}function B(e){return`unset $(compgen -v ${e} 2>/dev/null) 2>/dev/null`}function Ue(e){return[`local -a _all_entries=($(compgen -f -- "$_cur"))`,'for _f in "${_all_entries[@]}"; do',` if [[ -d "$_f" ]]; then`,' COMPREPLY+=("${_inline_prefix}$_f")',` elif ${e}; then`,' COMPREPLY+=("${_inline_prefix}$_f")',` fi`,`done`,`compopt -o filenames`,`compopt +o default 2>/dev/null`]}function We(e,t,n,r,i){let a=[];for(let o of e){if(!o.takesValue||!o.valueCompletion)continue;let s=He(o.valueCompletion,n,r,{funcSuffix:i,...d(o,e,t)});if(s.length===0)continue;let c=P(o,e);if(c.length!==0){a.push(` ${c.join(`|`)})`);for(let e of s)a.push(` ${e}`);a.push(` return ;;`)}}return a}function V(e,t,n,r=[]){if(e.length===0)return[];let i=[];i.push(` case "$_pos_count" in`);for(let a of e){a.variadic?i.push(` ${a.position}|*)`):i.push(` ${a.position})`);for(let o of He(a.valueCompletion,!1,t,{funcSuffix:n,..._(a,r,e)}))i.push(` ${o}`);i.push(` ;;`)}return i.push(` esac`),i}function Ge(e,t,n,r,i){let a=[`COMPREPLY=($(compgen -W "${e}" -- "$_cur"))`,`compopt +o default 2>/dev/null`];return t.length===0?a:[`local -a _sub_names=(${e})`,`local _sub_name _sub_match=0`,'for _sub_name in "${_sub_names[@]}"; do',` [[ "$_sub_name" == "$_cur"* ]] && _sub_match=1 && break`,`done`,`if (( _sub_match )); then`,...a.map(e=>` ${e}`),`else`,...V(t,n,r,i),`fi`]}function Ke(e,t,n,r){if(!e.some(e=>e.takesValue&&e.valueCompletion))return[];let i=[],a=We(e,t,!1,n,r);a.length>0&&(i.push(` if [[ -z "$_inline_prefix" ]]; then`),i.push(` case "$_prev" in`),i.push(...a),i.push(` esac`),i.push(` fi`));let o=We(e,t,!0,n,r);return o.length>0&&(i.push(` if [[ -n "$_inline_prefix" ]]; then`),i.push(' case "${_inline_prefix%=}" in'),i.push(...o),i.push(` esac`),i.push(` fi`)),i}function qe(e,t){let n=[];for(let r of e){if(r.valueType===`array`){n.push(` _avail+=(--${r.cliName})`);continue}let i=g(r.cliName,r.alias,r.negation,{isGlobal:r.isGlobal===!0,frameOptions:e}),a=`__${t}_not_used ${i.join(` `)}`,o=r.negation?[r.cliName,r.negation]:[r.cliName];for(let e of o)i.includes(`"--${e}"`)&&n.push(` ${a} && _avail+=(--${e})`)}return n.push(` if (( ! _any_opt_used )); then`),n.push(` _avail+=(--help --help-all --help-json)`),n.push(` fi`),n}function Je(e,t,n){let r=[...n,e.name],i=r.map(D).join(`_`),a=`__${t}_complete_${i}`,o=A(e.subcommands),s=[];for(let e of o)s.push(...Je(e,t,r));s.push(`${a}() {`),s.push(...Ke(e.options,e.positionals,t,i));let c=r.join(`:`);if(s.push(` if [[ -z "$_inline_prefix" ]] && __${t}_opt_takes_value "${c}" "$_prev"; then return; fi`),s.push(` if [[ -n "$_inline_prefix" ]] && __${t}_opt_takes_value "${c}" "\${_inline_prefix%=}"; then return; fi`),e.positionals.length>0?(s.push(` if (( _after_dd )); then`),s.push(...V(e.positionals,t,i,e.options).map(e=>` ${e}`)),s.push(` return`),s.push(` fi`)):s.push(` if (( _after_dd )); then return; fi`),s.push(` if [[ "$_cur" == -* ]]; then`),s.push(` local -a _avail=()`),s.push(...qe(e.options,t)),s.push(' COMPREPLY=($(compgen -W "${_avail[*]}" -- "$_cur"))'),s.push(` compopt +o default 2>/dev/null`),s.push(` return`),s.push(` fi`),o.length>0){let n=j(e.subcommands).map(e=>e.name).join(` `);s.push(...Ge(n,e.positionals,t,i,e.options).map(e=>` ${e}`))}else e.positionals.length>0&&s.push(...V(e.positionals,t,i,e.options));return s.push(`}`),s.push(``),s}function Ye(e,t){let{programName:n}=t,r=I(e,n,t.globalArgsSchema),i=D(n),a=t.staticWorker?`${i}_${D(t.staticWorker.functionSuffix)}`:i,o=t.staticWorker!==void 0,s=r.command,c=A(s.subcommands),u=je(s),d=Ne(s,u,r.globalOptions),f=[];f.push(...z({programName:n,shell:`bash`,binPath:t.binPath,programVersion:t.programVersion})),f.push(`# politty-completion-mode: ${o?`worker`:`static`}`),o&&f.push(`# politty-completion-worker: true`),f.push(`# Generated by politty`),f.push(``),o||f.push(...Re({programName:n,binPath:t.binPath}));let p=u.length>0,h=u.filter(e=>e.isArrayOption),g=h.length>0;p&&(f.push(`__${a}_enc() {`),f.push(` local LC_ALL=C`),f.push(` local _s=$1 _r='' _c _i`),f.push(" for (( _i=0; _i<${#_s}; _i++ )); do"),f.push(" _c=${_s:_i:1}"),f.push(` case "$_c" in`),f.push(` [a-zA-Z0-9]) _r+="$_c" ;;`),f.push(` *) printf -v _r '%s_%02X' "$_r" "'$_c" ;;`),f.push(` esac`),f.push(` done`),f.push(` printf '%s' "$_r"`),f.push(`}`),f.push(``));for(let e of u){let t=k(a,e.funcSuffix,e.fieldName);for(let n of e.vc.table){let e=n.key.map(Ve).join(`_`),r=n.candidates.map(e=>e.value).join(`
2
- `);f.push(`${t}__${e}=${l(r)}`)}f.push(``)}F(s)&&(f.push(...ge(a,n)),f.push(``),f.push(`__${a}_apply_dynamic_output() {`),f.push(` local _raw="$1"`),f.push(` COMPREPLY=()`),f.push(` local _directive=0`),f.push(` local -a _lines=()`),f.push(` local _line`),f.push(` while IFS= read -r _line; do _lines+=("$_line"); done <<< "$_raw"`),f.push(" local _last=$((${#_lines[@]} - 1))"),f.push(' if (( _last >= 0 )) && [[ "${_lines[$_last]}" =~ ^:[0-9]+$ ]]; then'),f.push(' _directive="${_lines[$_last]#:}"'),f.push(` unset '_lines[_last]'`),f.push(` fi`),f.push(' for _line in "${_lines[@]}"; do'),f.push(` [[ -z "$_line" ]] && continue`),f.push(` COMPREPLY+=("$_line")`),f.push(` done`),f.push(' local _ip="${_inline_prefix:-}"'),f.push(` if (( _directive & ${m.DirectoryCompletion} )); then`),f.push(` compopt +o default 2>/dev/null`),f.push(` compopt -o filenames 2>/dev/null`),f.push(` local _d`),f.push(' while IFS= read -r _d; do COMPREPLY+=("${_ip}${_d}"); done < <(compgen -d -- "$_cur")'),f.push(' if (( ${#COMPREPLY[@]} == 0 )); then COMPREPLY=( "" ); fi'),f.push(` elif (( _directive & ${m.FileCompletion} )); then`),f.push(' if (( ${#COMPREPLY[@]} > 0 )) || [[ -n "$_ip" ]]; then'),f.push(` compopt -o filenames 2>/dev/null`),f.push(` local _f`),f.push(' while IFS= read -r _f; do COMPREPLY+=("${_ip}${_f}"); done < <(compgen -f -- "$_cur")'),f.push(` else`),f.push(` compopt -o default 2>/dev/null`),f.push(` fi`),f.push(` else`),f.push(` if (( _directive & ${m.NoFileCompletion} )); then`),f.push(` compopt +o default 2>/dev/null`),f.push(' if (( ${#COMPREPLY[@]} == 0 )); then COMPREPLY=( "" ); fi'),f.push(` fi`),f.push(` fi`),f.push(` if (( _directive & ${m.NoSpace} )); then`),f.push(` compopt -o nospace 2>/dev/null`),f.push(` fi`),f.push(`}`),f.push(``)),f.push(`__${a}_not_used() {`),f.push(' for _u in "${_used_opts[@]}"; do'),f.push(` for _chk in "$@"; do`),f.push(` [[ "$_u" == "$_chk" ]] && return 1`),f.push(` done`),f.push(` done`),f.push(` return 0`),f.push(`}`),f.push(``),f.push(`__${a}_opt_takes_value() {`),f.push(` case "$1:$2" in`),f.push(...we(s,``)),f.push(` esac`),f.push(` return 1`),f.push(`}`),f.push(``),p&&(f.push(`__${a}_track_opt() {`),f.push(` case "$1:$2" in`),f.push(...Oe(d,`bash`)),f.push(` esac`),f.push(`}`),f.push(``),f.push(`__${a}_track_pos() {`),f.push(` case "$1:$2" in`),f.push(...ke(d,`bash`)),f.push(` esac`),f.push(`}`),f.push(``)),g&&(f.push(`__${a}_track_array_expand() {`),f.push(` case "$1:$2" in`),f.push(...Ae(h,`bash`)),f.push(` esac`),f.push(`}`),f.push(``));let _=N(s);_.length>0&&(f.push(`__${a}_is_subcmd() {`),f.push(` case "$1:$2" in`),f.push(...Te(_)),f.push(` esac`),f.push(` return 1`),f.push(`}`),f.push(``));for(let e of c)f.push(...Je(e,a,[]));if(f.push(`__${a}_complete_root() {`),f.push(...Ke(s.options,s.positionals,a,`root`)),f.push(` if [[ -z "$_inline_prefix" ]] && __${a}_opt_takes_value "" "$_prev"; then return; fi`),f.push(` if [[ -n "$_inline_prefix" ]] && __${a}_opt_takes_value "" "\${_inline_prefix%=}"; then return; fi`),s.positionals.length>0?(f.push(` if (( _after_dd )); then`),f.push(...V(s.positionals,a,`root`,s.options).map(e=>` ${e}`)),f.push(` return`),f.push(` fi`)):f.push(` if (( _after_dd )); then return; fi`),f.push(` if [[ "$_cur" == -* ]]; then`),f.push(` local -a _avail=()`),f.push(...qe(s.options,a)),f.push(' COMPREPLY=($(compgen -W "${_avail[*]}" -- "$_cur"))'),f.push(` compopt +o default 2>/dev/null`),c.length>0){f.push(` else`);let e=j(s.subcommands).map(e=>e.name).join(` `);f.push(...Ge(e,s.positionals,a,`root`,s.options).map(e=>` ${e}`))}else s.positionals.length>0&&(f.push(` else`),f.push(...V(s.positionals,a,`root`,s.options).map(e=>` ${e}`)));f.push(` fi`),f.push(`}`),f.push(``);let v=Ee(_,a).join(`
3
- `);f.push(`_${a}_completions() {`),f.push(` COMPREPLY=()`),f.push(``),f.push(` # Rejoin words split by '=' in COMP_WORDBREAKS`),f.push(` local -a _words=()`),f.push(` local _i=1`),f.push(` while (( _i <= COMP_CWORD )); do`),f.push(' if [[ "${COMP_WORDS[_i]}" == "=" && ${#_words[@]} -gt 0 ]]; then'),f.push(' _words[${#_words[@]}-1]+="=${COMP_WORDS[_i+1]:-}"'),f.push(` (( _i += 2 ))`),f.push(` else`),f.push(' _words+=("${COMP_WORDS[_i]}")'),f.push(` (( _i++ ))`),f.push(` fi`),f.push(` done`),f.push(``),f.push(` local _cur=""`),f.push(' (( ${#_words[@]} > 0 )) && _cur="${_words[${#_words[@]}-1]}"'),f.push(` local _inline_prefix=""`),f.push(``),f.push(` local _prev=""`),f.push(' (( ${#_words[@]} > 1 )) && _prev="${_words[${#_words[@]}-2]}"'),f.push(``),f.push(` local _subcmd="" _after_dd=0 _pos_count=0 _skip_next=0`),f.push(` local -a _used_opts=()`),f.push(` local _any_opt_used=0`),p&&(f.push(` ${B(`_arg_values_`)}`),f.push(` ${B(`_global_arg_values_`)}`)),g&&(f.push(` ${B(`_used_field_keys_`)}`),f.push(` ${B(`_global_used_field_keys_`)}`),f.push(` ${B(`_global_arr_seen_`)}`)),f.push(``),f.push(` local _j=0`),f.push(" while (( _j < ${#_words[@]} - 1 )); do"),f.push(' local _w="${_words[_j]}"'),f.push(` if (( _skip_next )); then _skip_next=0; (( _j++ )); continue; fi`),f.push(` if [[ "$_w" == "--" ]]; then _after_dd=1; (( _j++ )); continue; fi`);let y=p?`__${a}_track_pos "$_subcmd" "$_pos_count" "$_w"; `:``;f.push(` if (( _after_dd )); then ${y}(( _pos_count++ )); (( _j++ )); continue; fi`),f.push(` if [[ "$_w" == -*=* ]]; then`),f.push(' _used_opts+=("${_w%%=*}")'),f.push(` _any_opt_used=1`),p&&(f.push(` __${a}_track_opt "$_subcmd" "\${_w%%=*}" "\${_w#*=}"`),g&&f.push(` __${a}_track_array_expand "$_subcmd" "\${_w%%=*}" "\${_w#*=}"`)),f.push(` (( _j++ )); continue`),f.push(` fi`),f.push(` if [[ "$_w" == -* ]]; then`),f.push(` _used_opts+=("$_w")`),f.push(` _any_opt_used=1`),f.push(` if __${a}_opt_takes_value "$_subcmd" "$_w"; then`),f.push(' local _next="${_words[_j+1]:-}"'),f.push(` if [[ -n "$_next" && "$_next" != -* ]]; then _skip_next=1; fi`),p&&(f.push(` if (( _skip_next )); then`),f.push(` __${a}_track_opt "$_subcmd" "$_w" "$_next"`),g&&(f.push(" if (( _j + 2 < ${#_words[@]} )); then"),f.push(` __${a}_track_array_expand "$_subcmd" "$_w" "$_next"`),f.push(` fi`)),f.push(` fi`)),f.push(` fi`),f.push(` (( _j++ )); continue`),f.push(` fi`);let ee=g?`; ${B(`_arg_values_`)}; ${B(`_used_field_keys_`)}; ${B(`_global_arr_seen_`)}`:p?`; ${B(`_arg_values_`)}`:``,b=p?`__${a}_track_pos "$_subcmd" "$_pos_count" "$_w"; `:``;return _.length>0?f.push(` if __${a}_is_subcmd "$_subcmd" "$_w"; then _subcmd="\${_subcmd:+\${_subcmd}:}$_w"; _used_opts=(); _pos_count=0${ee}; else ${b}(( _pos_count++ )); fi`):(p&&f.push(` __${a}_track_pos "$_subcmd" "$_pos_count" "$_w"`),f.push(` (( _pos_count++ ))`)),f.push(` (( _j++ ))`),f.push(` done`),f.push(``),f.push(` if (( ! _after_dd )) && [[ "$_cur" == -*=* ]]; then`),f.push(' _inline_prefix="${_cur%%=*}="'),f.push(' _cur="${_cur#*=}"'),f.push(` fi`),f.push(``),f.push(` case "$_subcmd" in`),f.push(v),f.push(` *) __${a}_complete_root ;;`),f.push(` esac`),f.push(`}`),f.push(``),o||f.push(`complete -o default -F _${a}_completions ${n}`),f.push(``),{script:f.join(`
4
- `),shell:`bash`,installInstructions:`# To enable auto-refreshing bash completions, add this to your ~/.bashrc:
5
- eval "$(${n} completion bash --static)"
6
-
7
- # For faster shell startup, save the script instead:
8
- mkdir -p ~/.local/share/bash-completion/completions
9
- ${n} completion bash --static > ~/.local/share/bash-completion/completions/${n}
10
-
11
- # Then reload your shell or run:
12
- source ~/.bashrc`}}const Xe=ce(le),Ze={bash:`bash`,zsh:`zsh`,fish:`fish`},Qe=[`# politty-completion-version: 1`,`# politty-completion-mode: worker`,`# politty-completion-worker: true`];function $e(e){return Ze[e]}function et(e){return E(`dist`,`completion`,`${e}-worker.${$e(e)}`)}function tt(e){let t=Ze[e];return[`completion/${e}-worker.${t}`,`../completion/${e}-worker.${t}`,`dist/completion/${e}-worker.${t}`,`../dist/completion/${e}-worker.${t}`,`completion-worker.${e}`,`../completion-worker.${e}`]}function nt(e,t,n){if(n?.disabled)return[];let r=n?.relativePaths?.[t];return(r&&r.length>0?r:tt(t)).map(n=>n.replaceAll(`{shell}`,t).replaceAll(`{ext}`,Ze[t]).replaceAll(`{program}`,e))}function rt(e){try{let t=S(e,`utf8`),n=null;for(let e of t.split(`
13
- `)){let t=e.match(/^# cmd-shim-target=(.+)$/);t&&(n=t[1])}return n}catch{return null}}function H(e,t){if(!t)return;e.add(T(se(t)));try{e.add(T(C(t)))}catch{}let n=rt(t);n&&H(e,n)}function it(e){return S(e,`utf8`).split(`
14
- `,24).join(`
15
- `)}function at(e,t){return[...Qe,`# program: ${e}`,`# shell: ${t}`]}function ot(e,t,n){let r=e.split(`
16
- `).map(e=>e.trimEnd());return at(t,n).filter(e=>!r.includes(e))}function U(e,t,n){if(!b(e))throw Error(`Bundled completion worker does not exist: ${e}`);let r=ot(it(e),t,n);if(r.length>0)throw Error(`Invalid bundled completion worker ${e}: missing ${r.map(e=>JSON.stringify(e)).join(`, `)}`)}function st(e,t,n){try{return U(e,t,n),!0}catch{return!1}}function ct(e){let t=nt(e.programName,e.shell,e.bundledWorker);if(t.length===0)return null;let n=new Set;e.binPath!==void 0&&H(n,e.binPath),process.argv[1]&&H(n,process.argv[1]),H(n,R(e.programName,e.binPath));for(let n of t)if(ae(n)&&st(n,e.programName,e.shell))return n;for(let r of n)for(let n of t){if(ae(n))continue;let t=E(r,n);if(st(t,e.programName,e.shell))return t}return null}function W(e,t){return ae(e)?e:se(t,e)}function lt(e,t,n){let r=e.startsWith(`.`)||e.includes(`/`)||e.includes(`\\`)?W(e,n):e,i=ie(r).toLowerCase();return i===`.js`||i===`.mjs`||i===`.cjs`?{command:process.execPath,args:[r,...t]}:{command:r,args:[...t]}}async function ut(e,t,n){let r=lt(e,t,n.cwd);try{let{stdout:e,stderr:t}=await Xe(r.command,r.args,{cwd:n.cwd,env:{...process.env,...n.env},encoding:`utf8`,maxBuffer:10485760});return{stdout:e,stderr:t}}catch(e){let t=typeof e==`object`&&e&&`stderr`in e?String(e.stderr??``).trim():``,n=t?`\n${t}`:``;throw Error(`Command failed: ${r.command} ${r.args.join(` `)}${n}`,e instanceof Error?{cause:e}:void 0)}}function dt(e){let t=w(e);if(!t.isFile()||t.size===0)throw Error(`Generated bundled completion worker is empty: ${e}`);return t.size}function ft(e){return e<1024?`${e} B`:`${(e/1024).toFixed(1)} KiB`}function pt(e,t,n){let r=oe(n,e);console.log(`Generated bundled completion worker: ${r&&!r.startsWith(`..`)?r:e} (${ft(t)})`)}async function mt(e){let t=e.cwd??process.cwd(),n=W(e.outputPath??et(e.shell),t);x(T(n),{recursive:!0}),ne(n,{force:!0}),await ut(e.bin,[`__refresh-completion`,e.shell,n,`--static`,`--worker`],{cwd:t,env:e.env});let r=dt(n);U(n,e.programName,e.shell);let i;if(e.verify){let r=(await ut(e.bin,[`__completion-worker-path`,e.shell],{cwd:t,env:e.env})).stdout.split(/\r?\n/).map(e=>e.trim()).filter(Boolean);if(r.length!==1)throw Error(`Expected __completion-worker-path ${e.shell} to print exactly one path, got ${r.length}.`);i=W(r[0],t);let a=C(n),o=C(i);if(o!==a)throw Error(`Bundled completion worker path mismatch: generated ${a}, reported ${o}`)}return e.quiet||pt(n,r,t),{outputPath:n,size:r,...i!==void 0&&{reportedPath:i}}}function G(e){return p(`/${e}/node-compile-cache`)}function K(e){return e?p(`${e}/node-compile-cache`):void 0}function q(e,t){return e?p(`${e}/completion-worker.${t}`):void 0}function J(e,t){return p(`/${e}/completion-worker.${t}`)}function Y(e,t,n){return t?` ${e} ${t}`:` ${e} "\${XDG_CACHE_HOME:-$HOME/.cache}"${n}`}function ht(e,t){return e?` printf '%s\\n' ${e}`:[` set -l _cache_root "$XDG_CACHE_HOME"`,` test -n "$_cache_root"; or set _cache_root "$HOME/.cache"`,` printf '%s\\n' "$_cache_root"${t}`].join(`
17
- `)}function gt(e,t){return nt(e.programName,t,e.bundledWorker).map(p).join(` `)}function _t(e){return`"${e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`).replace(/\$/g,`\\$`)}"`}function vt(e){return nt(e.programName,`fish`,e.bundledWorker).map(_t).join(` `)}function yt(e){return e.bundledWorker?.queryCommand===!0&&!e.bundledWorker.disabled}function bt(e,t){let{programName:n}=t,r=D(n),i=`${r}_worker`,a=O(i),o=O(r),s=p(n),c=Y(`printf '%s\\n'`,K(t.cacheDir),G(n)),l=Y(`printf '%s\\n'`,q(t.cacheDir,`bash`),J(n,`bash`)),u=gt(t,`bash`),d=yt(t),h=[];return h.push(...z({programName:n,shell:`bash`,binPath:t.binPath,programVersion:t.programVersion})),h.push(`# Generated by politty`),h.push(`# politty-completion-mode: dispatcher`),h.push(``),h.push(`__${r}_resolve_bin() {`),h.push(` if [[ -n "\${${o}:-}" ]]; then`),h.push(` printf '%s\\n' "\${${o}}"`),h.push(` return 0`),h.push(` fi`),h.push(` type -P ${s} 2>/dev/null`),h.push(`}`),h.push(``),h.push(`__${r}_node_compile_cache_dir() {`),h.push(' if [[ -n "${NODE_COMPILE_CACHE:-}" ]]; then'),h.push(` printf '%s\\n' "$NODE_COMPILE_CACHE"`),h.push(` return 0`),h.push(` fi`),h.push(c),h.push(`}`),h.push(``),h.push(`__${r}_static_worker_path() {`),h.push(l),h.push(`}`),h.push(``),h.push(`__${r}_worker_file_sig() {`),h.push(` local _worker="$1" _sig`),h.push(` _sig=${f(`$_worker`,{shell:`posix`,withSize:!0})} || return 1`),h.push(` printf '%s\\n' "$_sig"`),h.push(`}`),h.push(``),h.push(`__${r}_is_worker_file() {`),h.push(` local _worker="$1" _head`),h.push(` [[ -f "$_worker" ]] || return 1`),h.push(` _head="$(head -n 24 "$_worker" 2>/dev/null)" || return 1`),h.push(` _head=$'\\n'"$_head"$'\\n'`),h.push(` [[ "$_head" == *$'\\n'"# politty-completion-version: 1"$'\\n'* ]] || return 1`),h.push(` [[ "$_head" == *$'\\n'"# program: ${n}"$'\\n'* ]] || return 1`),h.push(` [[ "$_head" == *$'\\n'"# shell: bash"$'\\n'* ]] || return 1`),h.push(` [[ "$_head" == *$'\\n'"# politty-completion-mode: worker"$'\\n'* ]] || return 1`),h.push(` [[ "$_head" == *$'\\n'"# politty-completion-worker: true"$'\\n'* ]] || return 1`),h.push(`}`),h.push(``),h.push(`__${r}_load_worker() {`),h.push(` local _worker="$1" _sig _key`),h.push(` __${r}_is_worker_file "$_worker" || return 1`),h.push(` _sig="$(__${r}_worker_file_sig "$_worker")" || return 1`),h.push(` _key="$_worker:$_sig"`),h.push(` if [[ "\${__${r}_loaded_worker_key:-}" != "$_key" ]]; then`),h.push(` source "$_worker" 2>/dev/null || return 1`),h.push(` __${r}_loaded_worker_key="$_key"`),h.push(` fi`),h.push(` declare -F _${i}_completions >/dev/null 2>&1`),h.push(`}`),h.push(``),h.push(`__${r}_realpath() {`),h.push(` local _path="$1" _dir _target _limit=0`),h.push(` while [[ -L "$_path" && $_limit -lt 40 ]]; do`),h.push(` _dir="$(cd -P "$(dirname "$_path")" 2>/dev/null && pwd)" || return 1`),h.push(` _target="$(readlink "$_path")" || return 1`),h.push(` if [[ "$_target" == /* ]]; then _path="$_target"; else _path="$_dir/$_target"; fi`),h.push(` (( _limit++ ))`),h.push(` done`),h.push(` _dir="$(cd -P "$(dirname "$_path")" 2>/dev/null && pwd)" || return 1`),h.push(` printf '%s\\n' "$_dir/$(basename "$_path")"`),h.push(`}`),h.push(``),h.push(`__${r}_worker_from_dir() {`),h.push(` local _dir="$1" _rel _candidate`),u.length>0&&(h.push(` for _rel in ${u}; do`),h.push(` [[ "$_rel" == /* ]] && _candidate="$_rel" || _candidate="$_dir/$_rel"`),h.push(` if __${r}_is_worker_file "$_candidate"; then`),h.push(` printf '%s\\n' "$_candidate"`),h.push(` return 0`),h.push(` fi`),h.push(` done`)),h.push(` return 1`),h.push(`}`),h.push(``),h.push(`__${r}_cmd_shim_target() {`),h.push(` sed -n 's/^# cmd-shim-target=//p' "$1" 2>/dev/null | tail -n 1`),h.push(`}`),h.push(``),h.push(`__${r}_bundled_worker_path() {`),h.push(' local _bin="$1" _node_compile_cache="${2:-}" _real _dir _target _reported'),h.push(` _real="$(__${r}_realpath "$_bin" 2>/dev/null)" || _real=""`),h.push(` if [[ -n "$_real" ]]; then`),h.push(` _dir="$(dirname "$_real")"`),h.push(` __${r}_worker_from_dir "$_dir" && return 0`),h.push(` fi`),h.push(` _dir="$(dirname "$_bin")"`),h.push(` __${r}_worker_from_dir "$_dir" && return 0`),h.push(` _target="$(__${r}_cmd_shim_target "$_bin")"`),h.push(` if [[ -n "$_target" ]]; then`),h.push(` _real="$(__${r}_realpath "$_target" 2>/dev/null)" || _real="$_target"`),h.push(` _dir="$(dirname "$_real")"`),h.push(` __${r}_worker_from_dir "$_dir" && return 0`),h.push(` fi`),d&&(h.push(` if [[ "\${__${r}_queried_bin:-}" == "$_bin" && -n "\${__${r}_queried_worker:-}" ]] && __${r}_is_worker_file "\${__${r}_queried_worker}"; then`),h.push(` printf '%s\\n' "\${__${r}_queried_worker}"`),h.push(` return 0`),h.push(` fi`),h.push(` _reported="$(NODE_COMPILE_CACHE="$_node_compile_cache" "$_bin" __completion-worker-path bash 2>/dev/null)" || _reported=""`),h.push(` if [[ -n "$_reported" ]] && __${r}_is_worker_file "$_reported"; then`),h.push(` __${r}_queried_bin="$_bin"`),h.push(` __${r}_queried_worker="$_reported"`),h.push(` printf '%s\\n' "$_reported"`),h.push(` return 0`),h.push(` fi`)),h.push(` return 1`),h.push(`}`),h.push(``),h.push(`__${r}_bin_sig() {`),h.push(` local _bin="$1" _sig`),h.push(` _sig=${f(`$_bin`,{shell:`posix`})} || return 1`),h.push(` printf '%s\\n' "$_sig"`),h.push(`}`),h.push(``),h.push(`__${r}_worker_matches_bin() {`),h.push(` local _worker="$1" _sig="$2" _bin="$3" _head`),h.push(` [[ -f "$_worker" ]] || return 1`),h.push(` _head="$(head -n 12 "$_worker" 2>/dev/null)" || return 1`),h.push(` grep -qxF "# politty-bin-sig: $_sig" <<< "$_head" || return 1`),h.push(` grep -qxF "# politty-bin-path: $_bin" <<< "$_head" || return 1`),h.push(`}`),h.push(``),h.push(`__${r}_apply_dynamic_output() {`),h.push(` local _raw="$1" _cur="$2" _inline_prefix="$3"`),h.push(` COMPREPLY=()`),h.push(` local _directive=0`),h.push(` local -a _lines=() _exts=() _matchers=()`),h.push(` local _line`),h.push(` while IFS= read -r _line; do _lines+=("$_line"); done <<< "$_raw"`),h.push(" local _last=$((${#_lines[@]} - 1))"),h.push(' if (( _last >= 0 )) && [[ "${_lines[$_last]}" == :[0-9]* ]]; then'),h.push(` local -a _meta=()`),h.push(` IFS=$'\\t' read -r -a _meta <<< "\${_lines[$_last]}"`),h.push(` unset '_lines[_last]'`),h.push(' _directive="${_meta[0]#:}"'),h.push(` local _m`),h.push(' for _m in "${_meta[@]:1}"; do'),h.push(` if [[ "$_m" == @ext:* ]]; then`),h.push(` IFS=',' read -r -a _exts <<< "\${_m#@ext:}"`),h.push(` elif [[ "$_m" == @matcher:* ]]; then`),h.push(` IFS=',' read -r -a _matchers <<< "\${_m#@matcher:}"`),h.push(` fi`),h.push(` done`),h.push(` fi`),h.push(' for _line in "${_lines[@]}"; do'),h.push(` [[ -z "$_line" ]] && continue`),h.push(` COMPREPLY+=("$_line")`),h.push(` done`),h.push(' local _ip="${_inline_prefix:-}"'),h.push(" if (( ${#_exts[@]} > 0 || ${#_matchers[@]} > 0 )); then"),h.push(` local _need_empty=0`),h.push(` compopt +o default 2>/dev/null || _need_empty=1`),h.push(` compopt -o filenames 2>/dev/null`),h.push(` local _f _ext _pat _base _ok`),h.push(` while IFS= read -r _f; do`),h.push(` if [[ -d "$_f" ]]; then`),h.push(' COMPREPLY+=("${_ip}${_f}")'),h.push(` continue`),h.push(` fi`),h.push(` _ok=0`),h.push(" if (( ${#_exts[@]} > 0 )); then"),h.push(' for _ext in "${_exts[@]}"; do'),h.push(` [[ -n "$_ext" && "$_f" == *."$_ext" ]] && _ok=1`),h.push(` done`),h.push(` fi`),h.push(" if (( ${#_matchers[@]} > 0 )); then"),h.push(' _base="${_f##*/}"'),h.push(' for _pat in "${_matchers[@]}"; do'),h.push(` [[ -n "$_pat" && "$_base" == $_pat ]] && _ok=1`),h.push(` done`),h.push(` fi`),h.push(' (( _ok )) && COMPREPLY+=("${_ip}${_f}")'),h.push(` done < <(compgen -f -- "$_cur")`),h.push(' if (( _need_empty && ${#COMPREPLY[@]} == 0 )); then COMPREPLY=( "" ); fi'),h.push(` elif (( _directive & ${m.DirectoryCompletion} )); then`),h.push(` local _need_empty=0`),h.push(` compopt +o default 2>/dev/null || _need_empty=1`),h.push(` compopt -o filenames 2>/dev/null`),h.push(` local _d`),h.push(' while IFS= read -r _d; do COMPREPLY+=("${_ip}${_d}"); done < <(compgen -d -- "$_cur")'),h.push(' if (( _need_empty && ${#COMPREPLY[@]} == 0 )); then COMPREPLY=( "" ); fi'),h.push(` elif (( _directive & ${m.FileCompletion} )); then`),h.push(` compopt -o filenames 2>/dev/null`),h.push(` local _p`),h.push(' while IFS= read -r _p; do COMPREPLY+=("${_ip}${_p}"); done < <(compgen -f -- "$_cur")'),h.push(` elif (( _directive & ${m.NoFileCompletion} )); then`),h.push(` local _need_empty=0`),h.push(` compopt +o default 2>/dev/null || _need_empty=1`),h.push(' if (( _need_empty && ${#COMPREPLY[@]} == 0 )); then COMPREPLY=( "" ); fi'),h.push(` fi`),h.push(` if (( _directive & ${m.NoSpace} )); then`),h.push(` compopt -o nospace 2>/dev/null`),h.push(` fi`),h.push(`}`),h.push(``),h.push(`_${r}_completions() {`),h.push(` COMPREPLY=()`),h.push(` local -a _words=()`),h.push(` local _i=1`),h.push(` while (( _i <= COMP_CWORD )); do`),h.push(' if [[ "${COMP_WORDS[_i]}" == "=" && ${#_words[@]} -gt 0 ]]; then'),h.push(' _words[${#_words[@]}-1]+="=${COMP_WORDS[_i+1]:-}"'),h.push(` (( _i += 2 ))`),h.push(` else`),h.push(' _words+=("${COMP_WORDS[_i]}")'),h.push(` (( _i++ ))`),h.push(` fi`),h.push(` done`),h.push(` local _cur="" _inline_prefix=""`),h.push(' (( ${#_words[@]} > 0 )) && _cur="${_words[${#_words[@]}-1]}"'),h.push(` local _after_dd=0 _di=0`),h.push(" while (( _di < ${#_words[@]} - 1 )); do"),h.push(' [[ "${_words[_di]}" == "--" ]] && { _after_dd=1; break; }'),h.push(` (( _di++ ))`),h.push(` done`),h.push(` if (( ! _after_dd )) && [[ "$_cur" == -*=* ]]; then`),h.push(' _inline_prefix="${_cur%%=*}="'),h.push(' _cur="${_cur#*=}"'),h.push(` fi`),h.push(` local _bin _out _node_compile_cache _worker _bundled_worker _sig`),h.push(` _bin="$(__${r}_resolve_bin)" || _bin=""`),h.push(` [[ -n "$_bin" ]] || return 0`),h.push(` _node_compile_cache="$(__${r}_node_compile_cache_dir)" || _node_compile_cache=""`),h.push(` _bundled_worker="$(__${r}_bundled_worker_path "$_bin" "$_node_compile_cache")" || _bundled_worker=""`),h.push(` if [[ -n "$_bundled_worker" ]] && __${r}_load_worker "$_bundled_worker"; then`),h.push(` NODE_COMPILE_CACHE="$_node_compile_cache" ${a}="$_bin" _${i}_completions`),h.push(` return 0`),h.push(` fi`),h.push(` _worker="$(__${r}_static_worker_path)" || _worker=""`),h.push(` _sig="$(__${r}_bin_sig "$_bin")" || _sig=""`),h.push(` if [[ -n "$_worker" && -n "$_sig" ]]; then`),h.push(` if ! __${r}_worker_matches_bin "$_worker" "$_sig" "$_bin"; then`),h.push(' mkdir -p "${_worker%/*}" 2>/dev/null'),h.push(` NODE_COMPILE_CACHE="$_node_compile_cache" ${o}="$_bin" "$_bin" __refresh-completion bash "$_worker" --static --worker 2>/dev/null`),h.push(` fi`),h.push(` if __${r}_worker_matches_bin "$_worker" "$_sig" "$_bin" && __${r}_load_worker "$_worker"; then`),h.push(` NODE_COMPILE_CACHE="$_node_compile_cache" ${a}="$_bin" _${i}_completions`),h.push(` return 0`),h.push(` fi`),h.push(` fi`),h.push(' _out=$(NODE_COMPILE_CACHE="$_node_compile_cache" "$_bin" __complete --shell bash -- "${_words[@]}" 2>/dev/null) || return 0'),h.push(` __${r}_apply_dynamic_output "$_out" "$_cur" "$_inline_prefix"`),h.push(`}`),h.push(``),h.push(`complete -o default -F _${r}_completions ${n}`),h.push(``),{script:h.join(`
18
- `),shell:`bash`,installInstructions:`# To enable dispatcher bash completions, add this to your ~/.bashrc:
19
- eval "$(${n} completion bash)"
20
-
21
- # To save the dispatcher script instead:
22
- mkdir -p ~/.local/share/bash-completion/completions
23
- ${n} completion bash > ~/.local/share/bash-completion/completions/${n}
24
-
25
- # To generate the older static script:
26
- ${n} completion bash --static`}}function xt(e,t){let{programName:n}=t,r=D(n),i=`${r}_worker`,a=O(i),o=O(r),s=p(n),c=`_${n}`,l=`"\${funcstack[1]:-}" == "${c}"`,u=Y(`print -r --`,K(t.cacheDir),G(n)),d=Y(`print -r --`,q(t.cacheDir,`zsh`),J(n,`zsh`)),h=gt(t,`zsh`),g=yt(t),_=[];return _.push(`#compdef ${n}`),_.push(...z({programName:n,shell:`zsh`,binPath:t.binPath,programVersion:t.programVersion})),_.push(`# Generated by politty`),_.push(`# politty-completion-mode: dispatcher`),_.push(``),_.push(`__${r}_resolve_bin() {`),_.push(` emulate -L zsh`),_.push(` setopt local_options no_aliases`),_.push(` if [[ -n "\${${o}:-}" ]]; then`),_.push(` print -r -- "\${${o}}"`),_.push(` return 0`),_.push(` fi`),_.push(` whence -p ${s} 2>/dev/null`),_.push(`}`),_.push(``),_.push(`__${r}_node_compile_cache_dir() {`),_.push(` emulate -L zsh`),_.push(` setopt local_options no_aliases`),_.push(' if [[ -n "${NODE_COMPILE_CACHE:-}" ]]; then'),_.push(` print -r -- "$NODE_COMPILE_CACHE"`),_.push(` return 0`),_.push(` fi`),_.push(u),_.push(`}`),_.push(``),_.push(`__${r}_static_worker_path() {`),_.push(` emulate -L zsh`),_.push(` setopt local_options no_aliases`),_.push(d),_.push(`}`),_.push(``),_.push(`__${r}_worker_file_sig() {`),_.push(` emulate -L zsh`),_.push(` setopt local_options no_aliases`),_.push(` local _worker="$1" _sig`),_.push(` _sig=${f(`$_worker`,{shell:`posix`,withSize:!0})} || return 1`),_.push(` print -r -- "$_sig"`),_.push(`}`),_.push(``),_.push(`__${r}_is_worker_file() {`),_.push(` emulate -L zsh`),_.push(` setopt local_options no_aliases`),_.push(` local _worker="$1" _head`),_.push(` [[ -f "$_worker" ]] || return 1`),_.push(` _head="$(<$_worker)" || return 1`),_.push(` _head=$'\\n'"$_head"$'\\n'`),_.push(` [[ "$_head" == *$'\\n'"# politty-completion-version: 1"$'\\n'* ]] || return 1`),_.push(` [[ "$_head" == *$'\\n'"# program: ${n}"$'\\n'* ]] || return 1`),_.push(` [[ "$_head" == *$'\\n'"# shell: zsh"$'\\n'* ]] || return 1`),_.push(` [[ "$_head" == *$'\\n'"# politty-completion-mode: worker"$'\\n'* ]] || return 1`),_.push(` [[ "$_head" == *$'\\n'"# politty-completion-worker: true"$'\\n'* ]] || return 1`),_.push(`}`),_.push(``),_.push(`__${r}_load_worker() {`),_.push(` emulate -L zsh`),_.push(` setopt local_options no_aliases`),_.push(` local _worker="$1" _sig _key`),_.push(` __${r}_is_worker_file "$_worker" || return 1`),_.push(` _sig="$(__${r}_worker_file_sig "$_worker")" || return 1`),_.push(` _key="$_worker:$_sig"`),_.push(` if [[ "\${__${r}_loaded_worker_key:-}" != "$_key" ]]; then`),_.push(` source "$_worker" 2>/dev/null || return 1`),_.push(` typeset -g __${r}_loaded_worker_key="$_key"`),_.push(` fi`),_.push(` (( $+functions[_${i}_completions] ))`),_.push(`}`),_.push(``),_.push(`__${r}_realpath() {`),_.push(` emulate -L zsh`),_.push(` setopt local_options no_aliases`),_.push(` local _path="$1"`),_.push(` [[ -n "$_path" ]] || return 1`),_.push(' print -r -- "${_path:A}"'),_.push(`}`),_.push(``),_.push(`__${r}_worker_from_dir() {`),_.push(` emulate -L zsh`),_.push(` setopt local_options no_aliases`),_.push(` local _dir="$1" _rel _candidate`),h.length>0&&(_.push(` for _rel in ${h}; do`),_.push(` [[ "$_rel" == /* ]] && _candidate="$_rel" || _candidate="$_dir/$_rel"`),_.push(` if __${r}_is_worker_file "$_candidate"; then`),_.push(` print -r -- "$_candidate"`),_.push(` return 0`),_.push(` fi`),_.push(` done`)),_.push(` return 1`),_.push(`}`),_.push(``),_.push(`__${r}_cmd_shim_target() {`),_.push(` emulate -L zsh`),_.push(` setopt local_options no_aliases`),_.push(` [[ -f "$1" ]] || return 0`),_.push(` local _l _t=""`),_.push(' for _l in "${(@f)$(<$1)}"; do'),_.push(' [[ "$_l" == "# cmd-shim-target="* ]] && _t="${_l#\\# cmd-shim-target=}"'),_.push(` done`),_.push(` [[ -n "$_t" ]] && print -r -- "$_t"`),_.push(`}`),_.push(``),_.push(`__${r}_bundled_worker_path() {`),_.push(` emulate -L zsh`),_.push(` setopt local_options no_aliases`),_.push(' local _bin="$1" _node_compile_cache="${2:-}" _real _dir _target _reported'),_.push(` _real="$(__${r}_realpath "$_bin" 2>/dev/null)" || _real=""`),_.push(` if [[ -n "$_real" ]]; then`),_.push(' _dir="${_real:h}"'),_.push(` __${r}_worker_from_dir "$_dir" && return 0`),_.push(` fi`),_.push(' _dir="${_bin:h}"'),_.push(` __${r}_worker_from_dir "$_dir" && return 0`),_.push(` _target="$(__${r}_cmd_shim_target "$_bin")"`),_.push(` if [[ -n "$_target" ]]; then`),_.push(` _real="$(__${r}_realpath "$_target" 2>/dev/null)" || _real="$_target"`),_.push(' _dir="${_real:h}"'),_.push(` __${r}_worker_from_dir "$_dir" && return 0`),_.push(` fi`),g&&(_.push(` if [[ "\${__${r}_queried_bin:-}" == "$_bin" && -n "\${__${r}_queried_worker:-}" ]] && __${r}_is_worker_file "\${__${r}_queried_worker}"; then`),_.push(` print -r -- "\${__${r}_queried_worker}"`),_.push(` return 0`),_.push(` fi`),_.push(` _reported="$(NODE_COMPILE_CACHE="$_node_compile_cache" "$_bin" __completion-worker-path zsh 2>/dev/null)" || _reported=""`),_.push(` if [[ -n "$_reported" ]] && __${r}_is_worker_file "$_reported"; then`),_.push(` typeset -g __${r}_queried_bin="$_bin"`),_.push(` typeset -g __${r}_queried_worker="$_reported"`),_.push(` print -r -- "$_reported"`),_.push(` return 0`),_.push(` fi`)),_.push(` return 1`),_.push(`}`),_.push(``),_.push(`__${r}_bin_sig() {`),_.push(` emulate -L zsh`),_.push(` setopt local_options no_aliases`),_.push(` local _bin="$1" _sig`),_.push(` _sig=${f(`$_bin`,{shell:`posix`})} || return 1`),_.push(` print -r -- "$_sig"`),_.push(`}`),_.push(``),_.push(`__${r}_worker_matches_bin() {`),_.push(` emulate -L zsh`),_.push(` setopt local_options no_aliases`),_.push(` local _worker="$1" _sig="$2" _bin="$3" _head`),_.push(` [[ -f "$_worker" ]] || return 1`),_.push(` _head=$'\\n'"$(<$_worker)"$'\\n'`),_.push(` [[ "$_head" == *$'\\n'"# politty-bin-sig: $_sig"$'\\n'* ]] || return 1`),_.push(` [[ "$_head" == *$'\\n'"# politty-bin-path: $_bin"$'\\n'* ]] || return 1`),_.push(`}`),_.push(``),_.push(`__${r}_cdescribe() {`),_.push(` _describe "$@" 2>/dev/null && return 0`),_.push(` shift`),_.push(` local _cd_arr="$1"`),_.push(` shift`),_.push(' local -a _cd_vals=("${(@)${(P)_cd_arr}%%:*}")'),_.push(` compadd "$@" -a _cd_vals 2>/dev/null`),_.push(` return 0`),_.push(`}`),_.push(``),_.push(`__${r}_add_path_candidate() {`),_.push(` compadd -f -- "$1" 2>/dev/null && return 0`),_.push(` print -r -- "$1"`),_.push(`}`),_.push(``),_.push(`__${r}_apply_dynamic_output() {`),_.push(` local _raw="$1"`),_.push(` local _directive=0`),_.push(` local -a _vals _lines _exts _matchers`),_.push(` local _meta`),_.push(' _lines=("${(@f)_raw}")'),_.push(` local _last=$#_lines`),_.push(' if (( _last >= 1 )) && [[ "${_lines[$_last]}" == :<->* ]]; then'),_.push(' local _dline="${_lines[$_last]}"'),_.push(` _lines[$_last]=()`),_.push(` local -a _dfields`),_.push(' _dfields=("${(@ps:\\t:)_dline}")'),_.push(' _directive="${_dfields[1]#:}"'),_.push(` local _m`),_.push(' for _m in "${(@)_dfields[2,-1]}"; do'),_.push(` if [[ "$_m" == @ext:* ]]; then`),_.push(' _meta="${_m#@ext:}"'),_.push(' _exts=("${(@s:,:)_meta}")'),_.push(` elif [[ "$_m" == @matcher:* ]]; then`),_.push(' _meta="${_m#@matcher:}"'),_.push(' _matchers=("${(@s:,:)_meta}")'),_.push(` fi`),_.push(` done`),_.push(` fi`),_.push(` local _l`),_.push(' for _l in "${_lines[@]}"; do'),_.push(` [[ -z "$_l" ]] && continue`),_.push(` _vals+=("$_l")`),_.push(` done`),_.push(" if (( ${#_vals[@]} > 0 )); then"),_.push(` if (( _directive & ${m.NoSpace} )); then`),_.push(` __${r}_cdescribe 'completions' _vals -S ''`),_.push(` else`),_.push(` __${r}_cdescribe 'completions' _vals`),_.push(` fi`),_.push(` fi`),_.push(" if (( ${#_exts[@]} > 0 || ${#_matchers[@]} > 0 )); then"),_.push(` setopt local_options null_glob`),_.push(' local _cur="${words[CURRENT]:-}" _dir _prefix _f _out _ext _pat'),_.push(` if [[ -z "$_cur" || "$_cur" != */* ]]; then`),_.push(` _dir="."`),_.push(` _prefix="$_cur"`),_.push(` elif [[ "$_cur" == */ ]]; then`),_.push(' _dir="${_cur%/}"'),_.push(` _prefix=""`),_.push(` else`),_.push(' _dir="${_cur%/*}"'),_.push(' _prefix="${_cur##*/}"'),_.push(` fi`),_.push(` for _f in "$_dir"/"$_prefix"*(N/); do`),_.push(' _out="${_f#./}"'),_.push(` __${r}_add_path_candidate "$_out"`),_.push(` done`),_.push(` for _f in "$_dir"/"$_prefix"*(N.); do`),_.push(' _out="${_f#./}"'),_.push(' for _ext in "${_exts[@]}"; do'),_.push(` [[ -n "$_ext" && "$_out" == *."$_ext" ]] && { __${r}_add_path_candidate "$_out"; break; }`),_.push(` done`),_.push(` done`),_.push(' for _pat in "${_matchers[@]}"; do'),_.push(` [[ -n "$_pat" ]] || continue`),_.push(' for _f in "$_dir"/${~_pat}(N.); do'),_.push(' _out="${_f#./}"'),_.push(` [[ "$_out" == "$_cur"* ]] && __${r}_add_path_candidate "$_out"`),_.push(` done`),_.push(` done`),_.push(` elif (( _directive & ${m.DirectoryCompletion} )); then`),_.push(` _files -/`),_.push(` elif (( _directive & ${m.FileCompletion} )); then`),_.push(` _files`),_.push(` elif (( \${#_vals[@]} == 0 )) && ! (( _directive & ${m.NoFileCompletion} )); then`),_.push(` _files`),_.push(` fi`),_.push(`}`),_.push(``),_.push(`${c}() {`),_.push(` emulate -L zsh`),_.push(` setopt local_options no_aliases`),_.push(` local _bin _out _node_compile_cache _worker _bundled_worker _sig`),_.push(` _bin="$(__${r}_resolve_bin)"`),_.push(` [[ -n "$_bin" ]] || return 1`),_.push(` _node_compile_cache="$(__${r}_node_compile_cache_dir)"`),_.push(` _bundled_worker="$(__${r}_bundled_worker_path "$_bin" "$_node_compile_cache")"`),_.push(` if [[ -n "$_bundled_worker" ]] && __${r}_load_worker "$_bundled_worker"; then`),_.push(` NODE_COMPILE_CACHE="$_node_compile_cache" ${a}="$_bin" _${i}_completions "$@"`),_.push(` return 0`),_.push(` fi`),_.push(` _worker="$(__${r}_static_worker_path)"`),_.push(` _sig="$(__${r}_bin_sig "$_bin")"`),_.push(` if [[ -n "$_worker" && -n "$_sig" ]]; then`),_.push(` if ! __${r}_worker_matches_bin "$_worker" "$_sig" "$_bin"; then`),_.push(' mkdir -p "${_worker%/*}" 2>/dev/null'),_.push(` NODE_COMPILE_CACHE="$_node_compile_cache" ${o}="$_bin" "$_bin" __refresh-completion zsh "$_worker" --static --worker 2>/dev/null`),_.push(` fi`),_.push(` if __${r}_worker_matches_bin "$_worker" "$_sig" "$_bin" && __${r}_load_worker "$_worker"; then`),_.push(` NODE_COMPILE_CACHE="$_node_compile_cache" ${a}="$_bin" _${i}_completions "$@"`),_.push(` return 0`),_.push(` fi`),_.push(` fi`),_.push(' _out=$(NODE_COMPILE_CACHE="$_node_compile_cache" "$_bin" __complete --shell zsh -- "${(@)words[2,CURRENT]}" 2>/dev/null) || return 1'),_.push(` __${r}_apply_dynamic_output "$_out"`),_.push(`}`),_.push(``),_.push(`zstyle ':completion:*:*:${n}:*' file-patterns '%p:globbed-files *(-/):directories'`),_.push(``),_.push(`if [[ ${l} ]]; then`),_.push(` ${c} "$@"`),_.push(`else`),_.push(` compdef ${c} ${n}`),_.push(`fi`),_.push(``),{script:_.join(`
27
- `),shell:`zsh`,installInstructions:`# To enable dispatcher zsh completions, add this to your ~/.zshrc after compinit:
28
- eval "$(${n} completion zsh)"
29
-
30
- # To save the dispatcher script in your fpath:
31
- mkdir -p ~/.zsh/completions
32
- ${n} completion zsh > ~/.zsh/completions/_${n}
33
-
34
- # Make sure your ~/.zshrc includes the fpath line before compinit:
35
- fpath=(~/.zsh/completions $fpath)
36
- autoload -Uz compinit && compinit
37
-
38
- # To generate the older static script:
39
- ${n} completion zsh --static`}}function St(e,t){let{programName:n}=t,r=D(n),i=`${r}_worker`,a=O(i),o=O(r),s=p(n),c=ht(K(t.cacheDir),G(n)),l=ht(q(t.cacheDir,`fish`),J(n,`fish`)),u=vt(t),d=yt(t),h=[];return h.push(...z({programName:n,shell:`fish`,binPath:t.binPath,programVersion:t.programVersion})),h.push(`# Generated by politty`),h.push(`# politty-completion-mode: dispatcher`),h.push(``),h.push(`function __${r}_resolve_bin`),h.push(` if set -q ${o}; and test -n "$${o}"`),h.push(` printf '%s\\n' "$${o}"`),h.push(` return 0`),h.push(` end`),h.push(` set -l _bin (command -v ${s})`),h.push(` test -n "$_bin"; and test -x "$_bin"; and not test -d "$_bin"; and printf '%s\\n' "$_bin"`),h.push(`end`),h.push(``),h.push(`function __${r}_node_compile_cache_dir`),h.push(` if set -q NODE_COMPILE_CACHE; and test -n "$NODE_COMPILE_CACHE"`),h.push(` printf '%s\\n' "$NODE_COMPILE_CACHE"`),h.push(` return 0`),h.push(` end`),h.push(c),h.push(`end`),h.push(``),h.push(`function __${r}_static_worker_path`),h.push(l),h.push(`end`),h.push(``),h.push(`function __${r}_worker_file_sig`),h.push(` set -l _worker $argv[1]`),h.push(` set -l _sig ${f(`$_worker`,{shell:`fish`,withSize:!0})}`),h.push(` test -n "$_sig"; and printf '%s\\n' "$_sig"`),h.push(`end`),h.push(``),h.push(`function __${r}_is_worker_file`),h.push(` set -l _worker $argv[1]`),h.push(` test -f "$_worker"; or return 1`),h.push(` set -l _head (head -n 24 "$_worker" 2>/dev/null)`),h.push(` string match -q -- "# politty-completion-version: 1" $_head; or return 1`),h.push(` string match -q -- "# program: ${n}" $_head; or return 1`),h.push(` string match -q -- "# shell: fish" $_head; or return 1`),h.push(` string match -q -- "# politty-completion-mode: worker" $_head; or return 1`),h.push(` string match -q -- "# politty-completion-worker: true" $_head; or return 1`),h.push(`end`),h.push(``),h.push(`function __${r}_load_worker`),h.push(` set -l _worker $argv[1]`),h.push(` __${r}_is_worker_file "$_worker"; or return 1`),h.push(` set -l _sig (__${r}_worker_file_sig "$_worker")`),h.push(` test -n "$_sig"; or return 1`),h.push(` set -l _key "$_worker:$_sig"`),h.push(` if not set -q __${r}_loaded_worker_key; or test "$__${r}_loaded_worker_key" != "$_key"`),h.push(` source "$_worker" 2>/dev/null; or return 1`),h.push(` set -g __${r}_loaded_worker_key "$_key"`),h.push(` end`),h.push(` functions -q __fish_${i}_complete`),h.push(`end`),h.push(``),h.push(`function __${r}_realpath`),h.push(` set -l _path $argv[1]`),h.push(` set -l _old_pwd (pwd)`),h.push(` set -l _limit 0`),h.push(` while test -L "$_path"; and test $_limit -lt 40`),h.push(` set -l _dir (dirname "$_path")`),h.push(` if not cd "$_dir" 2>/dev/null`),h.push(` cd "$_old_pwd" 2>/dev/null`),h.push(` return 1`),h.push(` end`),h.push(` set -l _absdir (pwd -P)`),h.push(` cd "$_old_pwd" 2>/dev/null`),h.push(` test -n "$_absdir"; or return 1`),h.push(` set -l _target (readlink "$_path")`),h.push(` test -n "$_target"; or return 1`),h.push(` if string match -q '/*' -- "$_target"`),h.push(` set _path "$_target"`),h.push(` else`),h.push(` set _path "$_absdir/$_target"`),h.push(` end`),h.push(` set _limit (math $_limit + 1)`),h.push(` end`),h.push(` set -l _dir (dirname "$_path")`),h.push(` if not cd "$_dir" 2>/dev/null`),h.push(` cd "$_old_pwd" 2>/dev/null`),h.push(` return 1`),h.push(` end`),h.push(` set -l _absdir (pwd -P)`),h.push(` cd "$_old_pwd" 2>/dev/null`),h.push(` test -n "$_absdir"; or return 1`),h.push(` set -l _base (basename "$_path")`),h.push(` printf '%s\\n' "$_absdir/$_base"`),h.push(`end`),h.push(``),h.push(`function __${r}_worker_from_dir`),h.push(` set -l _dir $argv[1]`),u.length>0&&(h.push(` for _rel in ${u}`),h.push(` if string match -q '/*' -- "$_rel"`),h.push(` set _candidate "$_rel"`),h.push(` else`),h.push(` set _candidate "$_dir/$_rel"`),h.push(` end`),h.push(` if __${r}_is_worker_file "$_candidate"`),h.push(` printf '%s\\n' "$_candidate"`),h.push(` return 0`),h.push(` end`),h.push(` end`)),h.push(` return 1`),h.push(`end`),h.push(``),h.push(`function __${r}_cmd_shim_target`),h.push(` sed -n 's/^# cmd-shim-target=//p' "$argv[1]" 2>/dev/null | tail -n 1`),h.push(`end`),h.push(``),h.push(`function __${r}_bundled_worker_path`),h.push(` set -l _bin $argv[1]`),h.push(` set -l _node_compile_cache $argv[2]`),h.push(` set -l _real (__${r}_realpath "$_bin" 2>/dev/null)`),h.push(` if test -n "$_real"`),h.push(` set -l _dir (dirname "$_real")`),h.push(` __${r}_worker_from_dir "$_dir"; and return 0`),h.push(` end`),h.push(` set -l _dir (dirname "$_bin")`),h.push(` __${r}_worker_from_dir "$_dir"; and return 0`),h.push(` set -l _target (__${r}_cmd_shim_target "$_bin")`),h.push(` if test -n "$_target"`),h.push(` set _real (__${r}_realpath "$_target" 2>/dev/null)`),h.push(` test -n "$_real"; or set _real "$_target"`),h.push(` set _dir (dirname "$_real")`),h.push(` __${r}_worker_from_dir "$_dir"; and return 0`),h.push(` end`),d&&(h.push(` if set -q __${r}_queried_bin; and test "$__${r}_queried_bin" = "$_bin"; and test -n "$__${r}_queried_worker"; and __${r}_is_worker_file "$__${r}_queried_worker"`),h.push(` printf '%s\\n' "$__${r}_queried_worker"`),h.push(` return 0`),h.push(` end`),h.push(` set -l _reported (env NODE_COMPILE_CACHE="$_node_compile_cache" "$_bin" __completion-worker-path fish 2>/dev/null)`),h.push(` if test -n "$_reported"; and __${r}_is_worker_file "$_reported"`),h.push(` set -g __${r}_queried_bin "$_bin"`),h.push(` set -g __${r}_queried_worker "$_reported"`),h.push(` printf '%s\\n' "$_reported"`),h.push(` return 0`),h.push(` end`)),h.push(` return 1`),h.push(`end`),h.push(``),h.push(`function __${r}_bin_sig`),h.push(` set -l _bin $argv[1]`),h.push(` set -l _sig ${f(`$_bin`,{shell:`fish`})}`),h.push(` test -n "$_sig"; and printf '%s\\n' "$_sig"`),h.push(`end`),h.push(``),h.push(`function __${r}_worker_matches_bin`),h.push(` set -l _worker $argv[1]`),h.push(` set -l _sig $argv[2]`),h.push(` set -l _bin $argv[3]`),h.push(` test -f "$_worker"; or return 1`),h.push(` set -l _head (head -n 12 "$_worker" 2>/dev/null)`),h.push(` contains -- "# politty-bin-sig: $_sig" $_head; or return 1`),h.push(` contains -- "# politty-bin-path: $_bin" $_head; or return 1`),h.push(`end`),h.push(``),h.push(`function __${r}_apply_dynamic_output`),h.push(` set -l _cur $argv[1]`),h.push(` set -l _directive 0`),h.push(` set -l _emitted 0`),h.push(` set -l _exts`),h.push(` set -l _matchers`),h.push(` set -l _lines`),h.push(` while read -l _l`),h.push(` set -a _lines $_l`),h.push(` end`),h.push(` set -l _n (count $_lines)`),h.push(` if test $_n -ge 1; and string match -qr '^:[0-9]+' -- $_lines[$_n]`),h.push(` set -l _fields (string split \\t -- $_lines[$_n])`),h.push(` set -e _lines[$_n]`),h.push(` set _directive (string sub -s 2 -- $_fields[1])`),h.push(` for _f in $_fields[2..-1]`),h.push(` if string match -q '@ext:*' -- $_f`),h.push(` set _exts (string split , -- (string sub -s 6 -- $_f))`),h.push(` else if string match -q '@matcher:*' -- $_f`),h.push(` set _matchers (string split , -- (string sub -s 10 -- $_f))`),h.push(` end`),h.push(` end`),h.push(` end`),h.push(` for _l in $_lines`),h.push(` if test -n "$_l"`),h.push(` printf '%s\\n' $_l`),h.push(` set _emitted 1`),h.push(` end`),h.push(` end`),h.push(` if test (count $_exts) -gt 0; or test (count $_matchers) -gt 0`),h.push(` __fish_complete_directories "$_cur"`),h.push(` set -l _dir ""`),h.push(` if string match -q '*/*' "$_cur"`),h.push(` set _dir (string replace -r '[^/]*$' '' "$_cur")`),h.push(` end`),h.push(` for _f in "$_cur"*`),h.push(` test -f "$_f"; or continue`),h.push(` for _ext in $_exts`),h.push(` if string match -q -- "*.$_ext" "$_f"`),h.push(` printf '%s\\n' "$_f"`),h.push(` break`),h.push(` end`),h.push(` end`),h.push(` end`),h.push(` for _pat in $_matchers`),h.push(` for _f in "$_dir"$_pat`),h.push(` test -f "$_f"; and string match -q "$_cur*" "$_f"; and printf '%s\\n' "$_f"`),h.push(` end`),h.push(` end`),h.push(` else if test (math "bitand($_directive, ${m.DirectoryCompletion})") -ne 0`),h.push(` __fish_complete_directories "$_cur"`),h.push(` else if test (math "bitand($_directive, ${m.FileCompletion})") -ne 0`),h.push(` __fish_complete_path "$_cur"`),h.push(` else if test $_emitted -eq 0; and test (math "bitand($_directive, ${m.NoFileCompletion})") -eq 0`),h.push(` __fish_complete_path "$_cur"`),h.push(` end`),h.push(`end`),h.push(``),h.push(`function __fish_${r}_complete`),h.push(` set -l _bin (__${r}_resolve_bin)`),h.push(` test -n "$_bin"; or return 0`),h.push(` set -l _node_compile_cache (__${r}_node_compile_cache_dir)`),h.push(` set -l _bundled_worker (__${r}_bundled_worker_path "$_bin" "$_node_compile_cache")`),h.push(` if test -n "$_bundled_worker"; and __${r}_load_worker "$_bundled_worker"`),h.push(` set -lx ${a} "$_bin"`),h.push(` set -lx NODE_COMPILE_CACHE "$_node_compile_cache"`),h.push(` __fish_${i}_complete`),h.push(` return 0`),h.push(` end`),h.push(` set -l _worker (__${r}_static_worker_path)`),h.push(` set -l _sig (__${r}_bin_sig "$_bin")`),h.push(` if test -n "$_worker"; and test -n "$_sig"`),h.push(` if not __${r}_worker_matches_bin "$_worker" "$_sig" "$_bin"`),h.push(` mkdir -p (dirname "$_worker") 2>/dev/null`),h.push(` env NODE_COMPILE_CACHE="$_node_compile_cache" ${o}="$_bin" $_bin __refresh-completion fish "$_worker" --static --worker 2>/dev/null`),h.push(` end`),h.push(` if __${r}_worker_matches_bin "$_worker" "$_sig" "$_bin"`),h.push(` if __${r}_load_worker "$_worker"`),h.push(` set -lx ${a} "$_bin"`),h.push(` set -lx NODE_COMPILE_CACHE "$_node_compile_cache"`),h.push(` __fish_${i}_complete`),h.push(` return 0`),h.push(` end`),h.push(` end`),h.push(` end`),h.push(` set -l _args (commandline -opc)`),h.push(` set -l _cur (commandline -ct)`),h.push(` if test (count $_args) -gt 0`),h.push(` set _args $_args[2..]`),h.push(` end`),h.push(` env NODE_COMPILE_CACHE="$_node_compile_cache" $_bin __complete --shell fish -- $_args "$_cur" 2>/dev/null | __${r}_apply_dynamic_output "$_cur"`),h.push(`end`),h.push(``),h.push(`complete -e -c ${n}`),h.push(`complete -c ${n} -f -a '(__fish_${r}_complete)'`),h.push(``),{script:h.join(`
40
- `),shell:`fish`,installInstructions:`# To enable dispatcher fish completions, run:
41
- ${n} completion fish --install
42
-
43
- # To generate the older static script:
44
- ${n} completion fish --static`}}function Ct(e,t){switch(I(e,t.programName,t.globalArgsSchema,!0),t.shell){case`bash`:return bt(e,t);case`zsh`:return xt(e,t);case`fish`:return St(e,t);default:throw Error(`Unsupported shell: ${t.shell}`)}}function X(e){return e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`).replace(/\$/g,`\\$`)}function wt(e){return e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`).replace(/\$/g,`\\$`).replace(/\*/g,`\\*`).replace(/\?/g,`\\?`).replace(/\[/g,`\\[`).replace(/]/g,`\\]`)}function Tt(e,t,n){if(!e)return[];switch(e.type){case`expand`:{if(!n)throw Error(`fishValueLines: expand variant requires a location`);let t=e=>{let t=D(e.name);return e.isGlobal?`$_global_arg_values_${t}`:`$_arg_values_${t}`},r=n.resolvedDeps.map(e=>`"${t(e)}"`).join(`\\x1f`),i=D(n.fieldName),a=n.isGlobal?`$_global_used_field_keys_${i}`:`$_used_field_keys_${i}`,o=[`switch ${r}`];for(let t of e.table){let e=t.key.map(e=>`"${wt(e)}"`).join(`\\x1f`);o.push(` case ${e}`);let r=[],i=[],s=new Set,c=(e,t)=>t?`printf '%s\\t%s\\n' "${X(e)}" "${X(t)}"`:`printf '%s\\n' "${X(e)}"`,l=(e,t)=>n.isArrayOption&&t.length>0?[` if not contains -- "${X(t)}" ${a}`,` ${e}`,` end`]:[` ${e}`];for(let e of t.candidates){let t=e.value.indexOf(`=`),n=t>0?e.value.slice(0,t):``,a=c(e.value,e.description);n.length>0&&e.value.length===t+1||i.push(...l(a,n)),n.length===0?r.push(` ${a}`):s.has(n)||(s.add(n),r.push(...l(c(`${n}=`,e.description),n)))}i.length!==r.length||i.some((e,t)=>e!==r[t])?(o.push(` if string match -q '*=*' -- "$_cur"`),o.push(...i),o.push(` else`),o.push(...r),o.push(` end`)):o.push(...i)}return o.push(`end`),o}case`dynamic`:return[`__${t}_invoke_complete fish $_args | __${t}_apply_dynamic_output "$_cur"`];case`choices`:return e.choices.map(e=>`echo "${X(e)}"`);case`file`:return e.matcher?.length?Et(e.matcher):e.extensions?.length?Dt(e.extensions):[`__fish_complete_path "$_cur"`];case`directory`:return[`__fish_complete_directories "$_cur"`];case`command`:return[`for _v in (${e.shellCommand})`,` echo "$_v"`,`end`];case`none`:return[];case`runtime-expand`:return[]}}function Et(e){return[`__fish_complete_directories "$_cur"`,`set -l _dir ""`,`if string match -q '*/*' "$_cur"`,` set _dir (string replace -r '[^/]*$' '' "$_cur")`,`end`,...e.flatMap(e=>[`for _f in "$_dir"${e}`,` test -f "$_f"; and string match -q "$_cur*" "$_f"; and echo "$_f"`,`end`])]}function Dt(e){let t=[];if(t.push(`__fish_complete_directories "$_cur"`),e.length>0){let n=e.map(e=>`string match -q -- "*.${e}" "$_f"`).join(`; or `);t.push(`for _f in "$_cur"*`),t.push(` test -f "$_f"; or continue`),t.push(` if ${n}`),t.push(` echo "$_f"`),t.push(` end`),t.push(`end`)}return t}function Ot(e,t,n){let r=[];for(let i of e){if(!i.takesValue||!i.valueCompletion)continue;let a=Tt(i.valueCompletion,n,d(i,e,t));if(a.length===0)continue;let o=P(i,e);if(o.length===0)continue;let s=o.map(e=>`test "$_prev" = "${e}"`).join(`; or `);r.push(` if ${s}`);for(let e of a)r.push(` ${e}`);r.push(` return`),r.push(` end`)}return r}function Z(e,t,n=[]){if(e.length===0)return[];let r=[];for(let i of e){let a=Tt(i.valueCompletion,t,_(i,n,e));if(a.length!==0){i.variadic?r.push(` if test $_pos_count -ge ${i.position}`):r.push(` if test $_pos_count -eq ${i.position}`);for(let e of a)r.push(` ${e}`);r.push(` return`),r.push(` end`)}}return r}function kt(e,t,n,r){let i=e.map(e=>`echo "${e.name}\t${X(e.description??``)}"`);return t.length===0?i:[`set -l _sub_match 0`,`for _sub_name in ${e.map(e=>`"${X(e.name)}"`).join(` `)}`,` test (string sub -l (string length -- "$_cur") -- "$_sub_name") = "$_cur"; and set _sub_match 1; and break`,`end`,`if test $_sub_match -eq 1`,...i.map(e=>` ${e}`),`else`,...Z(t,n,r),`end`]}function At(e,t){let n=[];for(let r of e){let i=X(r.description??``);if(r.valueType===`array`){n.push(` echo "--${r.cliName}\t${i}"`);continue}let a=g(r.cliName,r.alias,r.negation,{isGlobal:r.isGlobal===!0,frameOptions:e}),o=`__${t}_not_used ${a.join(` `)}`,s=r.negationDescription?X(r.negationDescription):i,c=[{name:r.cliName,desc:i}];r.negation&&c.push({name:r.negation,desc:s});for(let e of c)a.includes(`"--${e.name}"`)&&n.push(` ${o}; and echo "--${e.name}\t${e.desc}"`)}return n.push(` if test $_any_opt_used -eq 0`),n.push(` echo "--help Show help"`),n.push(` echo "--help-all Show help with all subcommand options"`),n.push(` echo "--help-json Show help as JSON"`),n.push(` end`),n}function jt(e,t,n){let r=[...n,e.name],i=`__${t}_complete_${r.map(D).join(`_`)}`,a=A(e.subcommands),o=[];for(let e of a)o.push(...jt(e,t,r));o.push(`function ${i} --no-scope-shadowing`),o.push(...Ot(e.options,e.positionals,t));let s=r.join(`:`);if(o.push(` if __${t}_opt_takes_value "${s}" "$_prev"; return; end`),e.positionals.length>0?(o.push(` if test $_after_dd -eq 1`),o.push(...Z(e.positionals,t,e.options).map(e=>` ${e}`)),o.push(` return`),o.push(` end`)):o.push(` if test $_after_dd -eq 1; return; end`),o.push(` if string match -q -- '-*' "$_cur"`),o.push(...At(e.options,t)),o.push(` return`),o.push(` end`),a.length>0){let n=j(e.subcommands);o.push(...kt(n,e.positionals,t,e.options).map(e=>` ${e}`))}else e.positionals.length>0&&o.push(...Z(e.positionals,t,e.options));return o.push(`end`),o.push(``),o}function Mt(e,t){let n=[];for(let r of Ce(e,t)){let e=r.tokens.map(e=>`"${r.parentPath}:${e}"`);n.push(` case ${e.join(` `)}`),n.push(` return 0`)}return n}function Nt(e,t){let{programName:n}=t,r=I(e,n,t.globalArgsSchema),i=D(n),a=t.staticWorker?`${i}_${D(t.staticWorker.functionSuffix)}`:i,o=t.staticWorker!==void 0,s=r.command,c=A(s.subcommands),l=je(s),u=Ne(s,l,r.globalOptions),d=l.length>0,p=l.filter(e=>e.isArrayOption),h=p.length>0,g=[];if(g.push(...z({programName:n,shell:`fish`,binPath:t.binPath,programVersion:t.programVersion})),g.push(`# politty-completion-mode: ${o?`worker`:`static`}`),o&&g.push(`# politty-completion-worker: true`),g.push(`# Generated by politty`),g.push(``),!o){let e=R(n,t.binPath),r=L(e),o=O(i),s=`__${a}_refresh_completion`;g.push(`function ${s} --no-scope-shadowing`),g.push(` set -l _bin $${o}`),g.push(` test -z "$_bin"; and set _bin (command -v ${n})`),g.push(` test -z "$_bin"; and return 1`),g.push(` set -l _sig ${f(`$_bin`,{shell:`fish`})}`),g.push(` test "$_sig" = "${r}"; and test "$_bin" = "${X(e)}"; and return 1`),g.push(` set -l _target (status current-filename)`),g.push(` test -n "$_target"; and test -f "$_target"; or return 1`),g.push(` "$_bin" __refresh-completion fish "$_target" --static 2>/dev/null`),g.push(` and source "$_target" 2>/dev/null`),g.push(` and return 0`),g.push(` return 1`),g.push(`end`),g.push(`${s}`),g.push(`set -l _politty_refreshed $status`),g.push(`functions -e ${s}`),g.push(`test $_politty_refreshed -eq 0; and return`),g.push(``)}if(F(s)&&(g.push(`function __${a}_invoke_complete`),g.push(` set -l _shell $argv[1]`),g.push(` set -l _argv $argv[2..]`),g.push(` set -l _bin ${n}`),g.push(` if set -q ${O(a)}`),g.push(` set _bin $${O(a)}`),g.push(` end`),g.push(` $_bin __complete --shell $_shell -- $_argv 2>/dev/null`),g.push(`end`),g.push(``),g.push(`function __${a}_apply_dynamic_output`),g.push(` set -l _cur $argv[1]`),g.push(` set -l _directive 0`),g.push(` set -l _emitted 0`),g.push(` set -l _prev ""`),g.push(` set -l _has_prev 0`),g.push(` while read -l _l`),g.push(` if test $_has_prev -eq 1`),g.push(` if test -n "$_prev"`),g.push(` printf '%s\\n' "$_prev"`),g.push(` set _emitted 1`),g.push(` end`),g.push(` end`),g.push(` set _prev $_l`),g.push(` set _has_prev 1`),g.push(` end`),g.push(` if test $_has_prev -eq 1`),g.push(` if string match -qr '^:[0-9]+$' -- $_prev`),g.push(` set _directive (string sub -s 2 -- $_prev)`),g.push(` else`),g.push(` if test -n "$_prev"`),g.push(` printf '%s\\n' "$_prev"`),g.push(` set _emitted 1`),g.push(` end`),g.push(` end`),g.push(` end`),g.push(` if test (math "bitand($_directive, ${m.DirectoryCompletion})") -ne 0`),g.push(` __fish_complete_directories "$_cur"`),g.push(` else if test (math "bitand($_directive, ${m.FileCompletion})") -ne 0`),g.push(` __fish_complete_path "$_cur"`),g.push(` else if test $_emitted -eq 0; and test (math "bitand($_directive, ${m.NoFileCompletion})") -eq 0`),g.push(` __fish_complete_path "$_cur"`),g.push(` end`),g.push(`end`),g.push(``)),g.push(`function __${a}_not_used --no-scope-shadowing`),g.push(` for _chk in $argv`),g.push(` if contains -- "$_chk" $_used_opts`),g.push(` return 1`),g.push(` end`),g.push(` end`),g.push(` return 0`),g.push(`end`),g.push(``),g.push(`function __${a}_opt_takes_value`),g.push(` switch "$argv[1]:$argv[2]"`),g.push(...Mt(s,``)),g.push(` end`),g.push(` return 1`),g.push(`end`),g.push(``),d){let e=e=>`${e.isGlobal?`_global_arg_values_`:`_arg_values_`}${D(e.fieldName)}`;g.push(`function __${a}_track_opt --no-scope-shadowing`),g.push(` switch "$argv[1]:$argv[2]"`);for(let t of u){if(t.isPositional||!t.optionTokens||t.optionTokens.length===0)continue;let n=t.pathStrs.flatMap(e=>t.optionTokens.map(t=>`"${e}:${t}"`)).join(` `);g.push(` case ${n}`),g.push(` set -g ${e(t)} "$argv[3]"`)}g.push(` end`),g.push(`end`),g.push(``),g.push(`function __${a}_track_pos --no-scope-shadowing`),g.push(` switch "$argv[1]:$argv[2]"`);for(let t of u){if(!t.isPositional)continue;let n=t.pathStrs.map(e=>`"${e}:${t.position}"`).join(` `);g.push(` case ${n}`),g.push(` set -g ${e(t)} "$argv[3]"`)}g.push(` end`),g.push(`end`),g.push(``)}if(h){g.push(`function __${a}_track_array_expand --no-scope-shadowing`),g.push(` switch "$argv[1]:$argv[2]"`);for(let e of p){if(e.optionTokens.length===0)continue;let t=e.pathStrs.flatMap(t=>e.optionTokens.map(e=>`"${t}:${e}"`)).join(` `),n=D(e.fieldName),r=e.isGlobal?`_global_used_field_keys_`:`_used_field_keys_`;g.push(` case ${t}`),g.push(` if string match -q '*=*' -- "$argv[3]"`),g.push(` set -l _k (string replace -r '=.*' '' -- "$argv[3]")`),g.push(` if test -n "$_k"`),e.isGlobal?(g.push(` if not set -q _global_arr_seen_${n}`),g.push(` set -g ${r}${n} "$_k"`),g.push(` set -g _global_arr_seen_${n} 1`),g.push(` else if not contains -- "$_k" $${r}${n}`),g.push(` set -ga ${r}${n} "$_k"`),g.push(` end`)):(g.push(` if not contains -- "$_k" $${r}${n}`),g.push(` set -ga ${r}${n} "$_k"`),g.push(` end`)),g.push(` end`),g.push(` end`)}g.push(` end`),g.push(`end`),g.push(``)}let _=N(s);if(_.length>0){g.push(`function __${a}_is_subcmd`),g.push(` switch "$argv[1]:$argv[2]"`);for(let e of _)g.push(` case "${e.lookupPattern}"`),g.push(` return 0`);g.push(` end`),g.push(` return 1`),g.push(`end`),g.push(``)}for(let e of c)g.push(...jt(e,a,[]));if(g.push(`function __${a}_complete_root --no-scope-shadowing`),g.push(...Ot(s.options,s.positionals,a)),g.push(` if __${a}_opt_takes_value "" "$_prev"; return; end`),s.positionals.length>0?(g.push(` if test $_after_dd -eq 1`),g.push(...Z(s.positionals,a,s.options).map(e=>` ${e}`)),g.push(` return`),g.push(` end`)):g.push(` if test $_after_dd -eq 1; return; end`),g.push(` if string match -q -- '-*' "$_cur"`),g.push(...At(s.options,a)),c.length>0){g.push(` else`);let e=j(s.subcommands);g.push(...kt(e,s.positionals,a,s.options).map(e=>` ${e}`))}else s.positionals.length>0&&(g.push(` else`),g.push(...Z(s.positionals,a,s.options)));if(g.push(` end`),g.push(`end`),g.push(``),g.push(`function __fish_${a}_complete`),g.push(` set -l _args (commandline -opc)`),g.push(` set -e _args[1]`),g.push(``),g.push(` set -l _ct (commandline -ct)`),g.push(` if test (count $_ct) -eq 0`),g.push(` set -a _args ""`),g.push(` else`),g.push(` set -a _args $_ct`),g.push(` end`),g.push(``),g.push(` set -l _cur ""`),g.push(` if test (count $_args) -gt 0`),g.push(` set _cur "$_args[-1]"`),g.push(` end`),g.push(``),g.push(` set -l _prev ""`),g.push(` if test (count $_args) -gt 1`),g.push(` set _prev "$_args[-2]"`),g.push(` end`),g.push(``),g.push(` set -l _subcmd "" ; set -l _after_dd 0 ; set -l _pos_count 0 ; set -l _skip_next 0`),g.push(` set -l _used_opts`),g.push(` set -l _any_opt_used 0`),g.push(``),d)for(let e of u)g.push(` set -e _arg_values_${D(e.fieldName)}`),g.push(` set -e _global_arg_values_${D(e.fieldName)}`);if(h)for(let e of p)g.push(` set -e _used_field_keys_${D(e.fieldName)}`),g.push(` set -e _global_used_field_keys_${D(e.fieldName)}`),g.push(` set -e _global_arr_seen_${D(e.fieldName)}`);g.push(` set -l _j 1`),g.push(` set -l _limit (math (count $_args) - 1)`),g.push(` while test $_j -le $_limit`),g.push(` set -l _w "$_args[$_j]"`),g.push(` if test $_skip_next -eq 1; set _skip_next 0; set _j (math $_j + 1); continue; end`),g.push(` if test "$_w" = "--"; set _after_dd 1; set _j (math $_j + 1); continue; end`);let v=d?`__${a}_track_pos "$_subcmd" "$_pos_count" "$_w"; `:``;if(g.push(` if test $_after_dd -eq 1; ${v}set _pos_count (math $_pos_count + 1); set _j (math $_j + 1); continue; end`),g.push(` if string match -q -- '-*=*' "$_w"`),g.push(` set -l _opt (string replace -r '=.*' '' -- "$_w")`),g.push(` set -a _used_opts "$_opt"`),g.push(` set _any_opt_used 1`),d&&(g.push(` set -l _val (string replace -r '^[^=]*=' '' -- "$_w")`),g.push(` __${a}_track_opt "$_subcmd" "$_opt" "$_val"`),h&&g.push(` __${a}_track_array_expand "$_subcmd" "$_opt" "$_val"`)),g.push(` set _j (math $_j + 1); continue`),g.push(` end`),g.push(` if string match -q -- '-*' "$_w"`),g.push(` set -a _used_opts "$_w"`),g.push(` set _any_opt_used 1`),g.push(` if __${a}_opt_takes_value "$_subcmd" "$_w"`),g.push(` set -l _next ""`),g.push(` set -l _next_idx (math $_j + 1)`),g.push(` if test $_next_idx -le (count $_args)`),g.push(` set _next "$_args[$_next_idx]"`),g.push(` end`),g.push(` if test -n "$_next"; and not string match -q -- '-*' "$_next"`),g.push(` set _skip_next 1`),d&&(g.push(` __${a}_track_opt "$_subcmd" "$_w" "$_next"`),h&&(g.push(` if test $_j -lt $_limit`),g.push(` __${a}_track_array_expand "$_subcmd" "$_w" "$_next"`),g.push(` end`))),g.push(` end`),g.push(` end`),g.push(` set _j (math $_j + 1); continue`),g.push(` end`),_.length>0){if(g.push(` if __${a}_is_subcmd "$_subcmd" "$_w"`),g.push(` test -n "$_subcmd"; and set _subcmd "$_subcmd:$_w"; or set _subcmd "$_w"`),g.push(` set _used_opts; set _pos_count 0`),d){for(let e of u)g.push(` set -e _arg_values_${D(e.fieldName)}`);if(h)for(let e of p)g.push(` set -e _used_field_keys_${D(e.fieldName)}`),g.push(` set -e _global_arr_seen_${D(e.fieldName)}`)}g.push(` else`),d&&g.push(` __${a}_track_pos "$_subcmd" "$_pos_count" "$_w"`),g.push(` set _pos_count (math $_pos_count + 1)`),g.push(` end`)}else d&&g.push(` __${a}_track_pos "$_subcmd" "$_pos_count" "$_w"`),g.push(` set _pos_count (math $_pos_count + 1)`);g.push(` set _j (math $_j + 1)`),g.push(` end`),g.push(``),g.push(` switch "$_subcmd"`);for(let e of _)g.push(` case "${e.pathStr}"; __${a}_complete_${e.funcSuffix}`);return g.push(` case '*'; __${a}_complete_root`),g.push(` end`),g.push(`end`),g.push(``),o||(g.push(`# Clear existing completions`),g.push(`complete -e -c ${n}`),g.push(``),g.push(`# Register completion`),g.push(`complete -c ${n} -f -a '(__fish_${a}_complete)'`)),g.push(``),{script:g.join(`
45
- `),shell:`fish`,installInstructions:`# To enable auto-refreshing fish completions, run:
46
- ${n} completion fish --install --static`}}function Pt(e,t){x(T(e),{recursive:!0});let n=`${e}.tmp.${process.pid}`;re(n,t),te(n,e)}function Ft(e,t){return nn(e.rootCommand,{shell:t,programName:e.programName,mode:e.completionMode??`dispatcher`,includeDescriptions:!0,...e.programVersion!==void 0&&{programVersion:e.programVersion},...e.binPath!==void 0&&{binPath:e.binPath},...e.cacheDir!==void 0&&{cacheDir:e.cacheDir},...e.globalArgsSchema!==void 0&&{globalArgsSchema:e.globalArgsSchema},...e.bundledWorker!==void 0&&{bundledWorker:e.bundledWorker},...e.staticWorker!==void 0&&{staticWorker:e.staticWorker}}).script}function It(e,t){let n=r(e.programName,t,e.cacheDir);return Pt(n,Ft(e,t)),n}function Lt(e){try{if(!b(e))return;let t=S(e,`utf8`).split(`
47
- `,10).join(`
48
- `).match(/^# politty-completion-mode: (dispatcher|static)$/m);return t?t[1]:void 0}catch{return}}function Rt(e){try{if(!b(e))return null;let t=S(e,`utf8`).split(`
49
- `,10).join(`
50
- `).match(/^# politty-bin-path: (.*)$/m);return t?t[1]:null}catch{return null}}function zt(e,t,n){try{if(!b(e))return!1;let r=S(e,`utf8`).split(`
51
- `,8).map(e=>e.trimEnd());return r.some(e=>/^# politty-completion-version: \S+$/.test(e))&&r.includes(`# program: ${t}`)&&r.includes(`# shell: ${n}`)}catch{return!1}}function Bt(e,t){try{let n=e.targetPath?b(e.targetPath)?C(e.targetPath):e.targetPath:r(e.programName,t,e.cacheDir);if(e.targetPath&&b(n)&&!zt(n,e.programName,t)||e.targetPath&&!b(n)&&!e.allowTargetCreate)return;let i=R(e.programName,e.binPath);if(!i)return;let a;try{a=Math.floor(w(i).mtimeMs/1e3).toString()}catch{return}if(o(n)===a&&Rt(n)===i)return;let s=e.completionMode??Lt(n)??(b(n)?`static`:`dispatcher`);Pt(n,Ft({...e,completionMode:s},t))}catch{}}function Vt(e,t,n){return t?p(`${t}/completion.${n}`):`"\${XDG_CACHE_HOME:-$HOME/.cache}/${e}/completion.${n}"`}function Ht(e){let t=D(e.programName),n=O(t),r=Vt(e.programName,e.cacheDir,`bash`);return`__${t}_load_completion() {
52
- local _bin _cache _sig _sig_hdr _path_hdr
53
- _bin="\${${n}:-$(type -P ${e.programName} 2>/dev/null)}"
54
- [[ -n "$_bin" ]] || return 0
55
- _cache=${r}
56
- _sig=$(stat -L -c '%Y' "$_bin" 2>/dev/null || stat -L -f '%m' "$_bin" 2>/dev/null) || return 0
57
- _sig_hdr="# politty-bin-sig: $_sig"
58
- _path_hdr="# politty-bin-path: $_bin"
59
- if [[ ! -f "$_cache" ]] || ! head -8 "$_cache" 2>/dev/null | grep -qxF "$_sig_hdr" || ! head -8 "$_cache" 2>/dev/null | grep -qxF "$_path_hdr"; then
60
- # Use the hidden __refresh-completion subcommand instead of
61
- # \`$_bin completion bash\`: the foreground completion command
62
- # is subject to user setup/cleanup/prompt and required
63
- # globalArgs validation, which can silently fail or block when
64
- # invoked from rc; runMain bypasses those for __-prefixed
65
- # internal subcommands.
66
- "$_bin" __refresh-completion bash 2>/dev/null
67
- fi
68
- # If regen failed but a stale cache survived from a previous run,
69
- # source it anyway — a stale completion is preferable to no
70
- # completion at all.
71
- [[ -f "$_cache" ]] || return 0
72
- # shellcheck disable=SC1090
73
- source "$_cache"
74
- }
75
- __${t}_load_completion
76
- unset -f __${t}_load_completion
77
- `}function Ut(e){let t=D(e.programName),n=O(t),r=Vt(e.programName,e.cacheDir,`zsh`);return`__${t}_load_completion() {
78
- emulate -L zsh
79
- setopt local_options no_aliases
80
- local _bin _cache _sig _sig_hdr _path_hdr
81
- _bin="\${${n}:-$(whence -p ${e.programName} 2>/dev/null)}"
82
- [[ -n "$_bin" ]] || return 0
83
- _cache=${r}
84
- _sig=$(stat -L -c '%Y' "$_bin" 2>/dev/null || stat -L -f '%m' "$_bin" 2>/dev/null) || return 0
85
- _sig_hdr="# politty-bin-sig: $_sig"
86
- _path_hdr="# politty-bin-path: $_bin"
87
- if [[ ! -f "$_cache" ]] || ! head -8 "$_cache" 2>/dev/null | grep -qxF "$_sig_hdr" || ! head -8 "$_cache" 2>/dev/null | grep -qxF "$_path_hdr"; then
88
- # See bash loader for why we use __refresh-completion instead
89
- # of \`$_bin completion zsh\`.
90
- "$_bin" __refresh-completion zsh 2>/dev/null
91
- fi
92
- # See bash loader: keep stale completion over no completion.
93
- [[ -f "$_cache" ]] || return 0
94
- source "$_cache"
95
- }
96
- __${t}_load_completion
97
- unfunction __${t}_load_completion
98
- `}function Wt(e){switch(e.shell){case`bash`:return Ht(e);case`zsh`:return Ut(e);case`fish`:throw Error("fish does not use an rc loader. Run `<program> completion fish --install` to write the self-refreshing autoload file instead.")}}function Q(e){return e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`).replace(/\$/g,`\\$`).replace(/`/g,"\\`").replace(/:/g,`\\:`)}function Gt(e){return e.replace(/\\/g,`\\\\`).replace(/:/g,`\\:`)}function Kt(e){return e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`).replace(/\$/g,`\\$`).replace(/`/g,"\\`")}function qt(e){return e.map(e=>`"${Kt(e)}"`).join(` `)}function Jt(e,t,n){let r=[`setopt local_options null_glob`,'local _cur="${words[CURRENT]:-}" _dir _prefix _f _out',`local -a ${t===`extensions`?`_exts`:`_matchers`}=(${qt(n)})`,`if [[ -z "$_cur" || "$_cur" != */* ]]; then`,` _dir="."`,` _prefix="$_cur"`,`elif [[ "$_cur" == */ ]]; then`,' _dir="${_cur%/}"',` _prefix=""`,`else`,' _dir="${_cur%/*}"',' _prefix="${_cur##*/}"',`fi`,`for _f in "$_dir"/"$_prefix"*(N/); do`,' _out="${_f#./}"',` __${e}_add_path_candidate "$_out"`,`done`];return t===`extensions`?(r.push(`local _ext`),r.push(`for _f in "$_dir"/"$_prefix"*(N.); do`),r.push(' _out="${_f#./}"'),r.push(' for _ext in "${_exts[@]}"; do'),r.push(` [[ -n "$_ext" && "$_out" == *."$_ext" ]] && { __${e}_add_path_candidate "$_out"; break; }`),r.push(` done`),r.push(`done`)):(r.push(`local _pat`),r.push('for _pat in "${_matchers[@]}"; do'),r.push(` [[ -n "$_pat" ]] || continue`),r.push(' for _f in "$_dir"/${~_pat}(N.); do'),r.push(' _out="${_f#./}"'),r.push(` [[ "$_out" == "$_cur"* ]] && __${e}_add_path_candidate "$_out"`),r.push(` done`),r.push(`done`)),r}function Yt(e,t,n){if(!e)return[];switch(e.type){case`expand`:{if(!n)throw Error(`zshValueLines: expand variant requires a location`);let e=k(t,n.funcSuffix,n.fieldName),r=n.resolvedDeps.map(e=>e.isGlobal?`"\${_global_arg_values[${e.name}]:-}"`:`"\${_arg_values[${e.name}]:-}"`).join(`$'\\x1f'`),i=D(n.fieldName),a=n.isGlobal?`\${_global_used_field_keys[${i}]:-}`:`\${_used_field_keys[${i}]:-}`,o=n.isArrayOption?[` if [[ -n "$_ck" && " ${a} " == *" $_ck "* ]]; then continue; fi`]:[];return[`local _key=${r}`,`local _raw="\${${e}[$_key]:-}"`,`if [[ -n "$_raw" ]]; then`,' local -a _candidates=("${(@f)_raw}")',` _vals=()`,` local _c _ck _cke _vp _seen_keys=" " _desc _has_eq=0 _tmp`,' for _c in "${_candidates[@]}"; do',` _tmp="\${_c//\\\\:/$'\\x01'}"`,' _vp="${_tmp%%:*}"',` if [[ "$_vp" == *=* ]]; then`,' _cke="${_c%%=*}"',' _ck="${_cke//\\\\:/:}"',...o,' if [[ "${words[CURRENT]}" != *=* ]]; then',` [[ "$_seen_keys" == *" $_ck "* ]] && continue`,` _seen_keys+="$_ck "`,` if [[ "$_tmp" == *:* ]]; then`,` _desc="\${\${_tmp#*:}//$'\\x01'/\\\\:}"`,' _c="${_cke}=:$_desc"',` else`,' _c="${_cke}="',` fi`,` _has_eq=1`,` else`,` [[ "$_vp" == *=?* ]] || continue`,` fi`,` fi`,` _vals+=("$_c")`,` done`,` if (( _has_eq )); then`,` __${t}_cdescribe 'completions' _vals -S ''`,` else`,` __${t}_cdescribe 'completions' _vals`,` fi`,`fi`]}case`dynamic`:return[`__${t}_apply_dynamic_output "$(__${t}_invoke_complete zsh "\${(@)words[2,CURRENT]}")"`];case`choices`:return[`_vals=(${e.choices.map(e=>`"${Q(e)}"`).join(` `)})`,`__${t}_cdescribe 'completions' _vals`];case`file`:return e.matcher?.length?Jt(t,`matchers`,e.matcher):e.extensions?.length?Jt(t,`extensions`,e.extensions):[`_files`];case`directory`:return[`_files -/`];case`command`:return[`_vals=("\${(@f)$(${e.shellCommand})}")`,`__${t}_cdescribe 'completions' _vals`];case`none`:return[];case`runtime-expand`:return[]}}function Xt(e,t,n,r){let i=[];for(let a of e){if(!a.takesValue||!a.valueCompletion)continue;let o=Yt(a.valueCompletion,n,{funcSuffix:r,...d(a,e,t)});if(o.length===0)continue;let s=P(a,e);if(s.length!==0){i.push(` ${s.join(`|`)})`);for(let e of o)i.push(` ${e}`);i.push(` return 0 ;;`)}}return i}function $(e,t,n,r=[]){if(e.length===0)return[];let i=[];i.push(` case "$_pos_count" in`);for(let a of e){a.variadic?i.push(` ${a.position}|*)`):i.push(` ${a.position})`);let o=Yt(a.valueCompletion,t,{funcSuffix:n,..._(a,r,e)});for(let e of o)i.push(` ${e}`);i.push(` ;;`)}return i.push(` esac`),i}function Zt(e,t,n,r,i){let a=[`local -a _subs=(${e.map(e=>{let t=e.description?`:${Q(e.description)}`:``;return`"${e.name}${t}"`}).join(` `)})`,`__${n}_cdescribe 'subcommands' _subs`];return t.length===0?a:[`local -a _sub_names=(${e.map(e=>`"${Kt(e.name)}"`).join(` `)})`,'local _cur_word="${words[CURRENT]:-}" _sub_name _sub_match=0','for _sub_name in "${_sub_names[@]}"; do',` [[ "$_sub_name" == "$_cur_word"* ]] && _sub_match=1 && break`,`done`,`if (( _sub_match )); then`,...a.map(e=>` ${e}`),`else`,...$(t,n,r,i),`fi`]}function Qt(e,t,n,r){if(!e.some(e=>e.takesValue&&e.valueCompletion))return[];let i=Xt(e,t,n,r);return i.length===0?[]:[' case "${words[CURRENT-1]}" in',...i,` esac`]}function $t(e,t){let n=[];for(let r of e){let i=r.description?`:${Q(r.description)}`:``;if(r.valueType===`array`){n.push(` _opts+=("--${r.cliName}${i}")`);continue}let a=g(r.cliName,r.alias,r.negation,{isGlobal:r.isGlobal===!0,frameOptions:e}),o=`__${t}_not_used ${a.join(` `)}`,s=r.negationDescription?`:${Q(r.negationDescription)}`:i,c=[{name:r.cliName,desc:i}];r.negation&&c.push({name:r.negation,desc:s});for(let e of c)a.includes(`"--${e.name}"`)&&n.push(` ${o} && _opts+=("--${e.name}${e.desc}")`)}return n.push(` if (( ! _any_opt_used )); then`),n.push(` _opts+=("--help:Show help")`),n.push(` _opts+=("--help-all:Show help with all subcommand options")`),n.push(` _opts+=("--help-json:Show help as JSON")`),n.push(` fi`),n}function en(e,t,n){let r=[...n,e.name],i=r.map(D).join(`_`),a=`__${t}_complete_${i}`,o=A(e.subcommands),s=[];for(let e of o)s.push(...en(e,t,r));s.push(`${a}() {`),s.push(` local -a _vals=()`),s.push(...Qt(e.options,e.positionals,t,i));let c=r.join(`:`);if(s.push(` if __${t}_opt_takes_value "${c}" "\${words[CURRENT-1]}"; then return 0; fi`),e.positionals.length>0?(s.push(` if (( _after_dd )); then`),s.push(...$(e.positionals,t,i,e.options).map(e=>` ${e}`)),s.push(` return 0`),s.push(` fi`)):s.push(` if (( _after_dd )); then return 0; fi`),s.push(' if [[ "${words[CURRENT]}" == -* ]]; then'),s.push(` local -a _opts=()`),s.push(...$t(e.options,t)),s.push(` __${t}_cdescribe 'options' _opts`),s.push(` return 0`),s.push(` fi`),o.length>0){let n=j(e.subcommands);s.push(...Zt(n,e.positionals,t,i,e.options).map(e=>` ${e}`))}else e.positionals.length>0&&s.push(...$(e.positionals,t,i,e.options));return s.push(`}`),s.push(``),s}function tn(e,t){let{programName:n}=t,r=I(e,n,t.globalArgsSchema),i=D(n),a=t.staticWorker?`${i}_${D(t.staticWorker.functionSuffix)}`:i,o=t.staticWorker!==void 0,s=o?`_${a}_completions`:`_${n}`,c=`"\${funcstack[1]:-}" == "${Kt(s)}"`,u=r.command,d=A(u.subcommands),f=je(u),p=Ne(u,f,r.globalOptions),h=f.length>0,g=f.filter(e=>e.isArrayOption),_=g.length>0,v=[];o||(v.push(`#compdef ${n}`),v.push(``)),v.push(...z({programName:n,shell:`zsh`,binPath:t.binPath,programVersion:t.programVersion})),v.push(`# politty-completion-mode: ${o?`worker`:`static`}`),o&&v.push(`# politty-completion-worker: true`),v.push(`# Generated by politty`),v.push(``),o||v.push(...ze({programName:n,binPath:t.binPath}));for(let e of f){let t=k(a,e.funcSuffix,e.fieldName);if(e.vc.table.length===0)v.push(`typeset -gA ${t}=()`);else{v.push(`typeset -gA ${t}=(`);for(let t of e.vc.table){let e=t.key.join(``),n=t.candidates.map(e=>{let t=Gt(e.value);return e.description?`${t}:${e.description}`:t}).join(`
99
- `);v.push(` ${l(e)} ${l(n)}`)}v.push(`)`)}v.push(``)}F(u)&&(v.push(...ge(a,n)),v.push(``),v.push(`__${a}_apply_dynamic_output() {`),v.push(` local _raw="$1"`),v.push(` local _directive=0`),v.push(` local -a _vals _lines`),v.push(' _lines=("${(@f)_raw}")'),v.push(` local _last=$#_lines`),v.push(' if (( _last >= 1 )) && [[ "${_lines[$_last]}" == :<-> ]]; then'),v.push(' _directive="${_lines[$_last]#:}"'),v.push(` _lines[$_last]=()`),v.push(` fi`),v.push(` local _l`),v.push(' for _l in "${_lines[@]}"; do'),v.push(` [[ -z "$_l" ]] && continue`),v.push(` _vals+=("$_l")`),v.push(` done`),v.push(" if (( ${#_vals[@]} > 0 )); then"),v.push(` if (( _directive & ${m.NoSpace} )); then`),v.push(` __${a}_cdescribe 'completions' _vals -S ''`),v.push(` else`),v.push(` __${a}_cdescribe 'completions' _vals`),v.push(` fi`),v.push(` fi`),v.push(` if (( _directive & ${m.DirectoryCompletion} )); then`),v.push(` _files -/`),v.push(` elif (( _directive & ${m.FileCompletion} )); then`),v.push(` _files`),v.push(` elif (( \${#_vals[@]} == 0 )) && ! (( _directive & ${m.NoFileCompletion} )); then`),v.push(` _files`),v.push(` fi`),v.push(`}`),v.push(``)),v.push(`__${a}_not_used() {`),v.push(` local _u _chk`),v.push(' for _u in "${_used_opts[@]}"; do'),v.push(` for _chk in "$@"; do`),v.push(` [[ "$_u" == "$_chk" ]] && return 1`),v.push(` done`),v.push(` done`),v.push(` return 0`),v.push(`}`),v.push(``),v.push(`__${a}_cdescribe() {`),v.push(` _describe "$@" 2>/dev/null && return 0`),v.push(` shift`),v.push(` local _cd_arr="$1"`),v.push(` shift`),v.push(' local -a _cd_vals=("${(@)${(P)_cd_arr}%%:*}")'),v.push(` compadd "$@" -a _cd_vals 2>/dev/null`),v.push(` return 0`),v.push(`}`),v.push(``),v.push(`__${a}_add_path_candidate() {`),v.push(` compadd -f -- "$1" 2>/dev/null && return 0`),v.push(` print -r -- "$1"`),v.push(`}`),v.push(``),v.push(`__${a}_opt_takes_value() {`),v.push(` case "$1:$2" in`),v.push(...we(u,``)),v.push(` esac`),v.push(` return 1`),v.push(`}`),v.push(``),h&&(v.push(`__${a}_track_opt() {`),v.push(` case "$1:$2" in`),v.push(...Oe(p,`zsh`)),v.push(` esac`),v.push(`}`),v.push(``),v.push(`__${a}_track_pos() {`),v.push(` case "$1:$2" in`),v.push(...ke(p,`zsh`)),v.push(` esac`),v.push(`}`),v.push(``)),_&&(v.push(`__${a}_track_array_expand() {`),v.push(` case "$1:$2" in`),v.push(...Ae(g,`zsh`)),v.push(` esac`),v.push(`}`),v.push(``));let y=N(u);y.length>0&&(v.push(`__${a}_is_subcmd() {`),v.push(` case "$1:$2" in`),v.push(...Te(y)),v.push(` esac`),v.push(` return 1`),v.push(`}`),v.push(``));for(let e of d)v.push(...en(e,a,[]));if(v.push(`__${a}_complete_root() {`),v.push(` local -a _vals=()`),v.push(...Qt(u.options,u.positionals,a,`root`)),v.push(` if __${a}_opt_takes_value "" "\${words[CURRENT-1]}"; then return 0; fi`),u.positionals.length>0?(v.push(` if (( _after_dd )); then`),v.push(...$(u.positionals,a,`root`,u.options).map(e=>` ${e}`)),v.push(` return 0`),v.push(` fi`)):v.push(` if (( _after_dd )); then return 0; fi`),v.push(' if [[ "${words[CURRENT]}" == -* ]]; then'),v.push(` local -a _opts=()`),v.push(...$t(u.options,a)),v.push(` __${a}_cdescribe 'options' _opts`),d.length>0){v.push(` else`);let e=j(u.subcommands);v.push(...Zt(e,u.positionals,a,`root`,u.options).map(e=>` ${e}`))}else u.positionals.length>0&&(v.push(` else`),v.push(...$(u.positionals,a,`root`,u.options).map(e=>` ${e}`)));v.push(` fi`),v.push(`}`),v.push(``);let ee=Ee(y,a).join(`
100
- `);v.push(`${s}() {`),v.push(" (( CURRENT )) || CURRENT=${#words}"),v.push(``),v.push(` local _subcmd="" _after_dd=0 _pos_count=0 _skip_next=0`),v.push(` local -a _used_opts=()`),v.push(` local _any_opt_used=0`),h&&(v.push(` local -A _arg_values=()`),v.push(` local -A _global_arg_values=()`)),_&&(v.push(` local -A _used_field_keys=()`),v.push(` local -A _global_used_field_keys=()`),v.push(` local -A _global_arr_seen=()`)),v.push(``),v.push(` local _j=2`),v.push(` while (( _j < CURRENT )); do`),v.push(' local _w="${words[_j]}"'),v.push(` if (( _skip_next )); then _skip_next=0; (( _j++ )); continue; fi`),v.push(` if [[ "$_w" == "--" ]]; then _after_dd=1; (( _j++ )); continue; fi`);let b=h?`__${a}_track_pos "$_subcmd" "$_pos_count" "$_w"; `:``;v.push(` if (( _after_dd )); then ${b}(( _pos_count++ )); (( _j++ )); continue; fi`),v.push(` if [[ "$_w" == -*=* ]]; then`),v.push(' _used_opts+=("${_w%%=*}")'),v.push(` _any_opt_used=1`),h&&(v.push(` __${a}_track_opt "$_subcmd" "\${_w%%=*}" "\${_w#*=}"`),_&&v.push(` __${a}_track_array_expand "$_subcmd" "\${_w%%=*}" "\${_w#*=}"`)),v.push(` (( _j++ )); continue`),v.push(` fi`),v.push(` if [[ "$_w" == -* ]]; then`),v.push(` _used_opts+=("$_w")`),v.push(` _any_opt_used=1`),v.push(` if __${a}_opt_takes_value "$_subcmd" "$_w"; then`),v.push(' local _next="${words[_j+1]:-}"'),v.push(` if [[ -n "$_next" && "$_next" != -* ]]; then _skip_next=1; fi`),h&&(v.push(` if (( _skip_next )); then`),v.push(` __${a}_track_opt "$_subcmd" "$_w" "$_next"`),_&&(v.push(` if (( _j + 1 < CURRENT )); then`),v.push(` __${a}_track_array_expand "$_subcmd" "$_w" "$_next"`),v.push(` fi`)),v.push(` fi`)),v.push(` fi`),v.push(` (( _j++ )); continue`),v.push(` fi`);let x=_?`; _arg_values=(); _used_field_keys=(); _global_arr_seen=()`:h?`; _arg_values=()`:``,S=h?`__${a}_track_pos "$_subcmd" "$_pos_count" "$_w"; `:``;return y.length>0?v.push(` if __${a}_is_subcmd "$_subcmd" "$_w"; then _subcmd="\${_subcmd:+\${_subcmd}:}$_w"; _used_opts=(); _pos_count=0${x}; else ${S}(( _pos_count++ )); fi`):(h&&v.push(` __${a}_track_pos "$_subcmd" "$_pos_count" "$_w"`),v.push(` (( _pos_count++ ))`)),v.push(` (( _j++ ))`),v.push(` done`),v.push(``),v.push(` case "$_subcmd" in`),v.push(ee),v.push(` *) __${a}_complete_root ;;`),v.push(` esac`),v.push(`}`),v.push(``),v.push(`zstyle ':completion:*:*:${n}:*' file-patterns '%p:globbed-files *(-/):directories'`),v.push(``),o||(v.push(`if [[ ${c} ]]; then`),v.push(` ${s} "$@"`),v.push(`else`),v.push(` compdef ${s} ${n}`),v.push(`fi`),v.push(``)),{script:v.join(`
101
- `),shell:`zsh`,installInstructions:`# To enable auto-refreshing zsh completions, add this to your ~/.zshrc after compinit:
102
- eval "$(${n} completion zsh --static)"
103
-
104
- # For faster shell startup, save the script in your fpath:
105
- mkdir -p ~/.zsh/completions
106
- ${n} completion zsh --static > ~/.zsh/completions/_${n}
107
-
108
- # Make sure your ~/.zshrc includes the fpath line before compinit:
109
- fpath=(~/.zsh/completions $fpath)
110
- autoload -Uz compinit && compinit
111
-
112
- # If ~/.zshrc already calls compinit, add only the fpath line before
113
- # the existing compinit call.
114
-
115
- # Then reload your shell or run:
116
- source ~/.zshrc`}}function nn(e,t){if(t.mode===`dispatcher`)return Ct(e,t);switch(t.shell){case`bash`:return Ye(e,t);case`zsh`:return tn(e,t);case`fish`:return Nt(e,t);default:throw Error(`Unsupported shell: ${t.shell}`)}}function rn(){return[`bash`,`zsh`,`fish`]}function an(e,t){console.error(``),console.error(`Configure zsh fpath with:`),console.error(``),console.error(` mkdir -p ~/.zsh/completions`),console.error(` ln -sf ${p(t)} ~/.zsh/completions/_${e}`),console.error(``),console.error(`Add only this block to your ~/.zshrc before compinit:`),console.error(``),console.error(` fpath=(~/.zsh/completions $fpath)`),console.error(` autoload -Uz compinit && compinit`)}function on(e,n,r,i={}){let o=n??e.name,{cacheDir:s,programVersion:l}=i,u={...s!==void 0&&{cacheDir:s},...l!==void 0&&{programVersion:l},...r!==void 0&&{globalArgsSchema:r},...i.bundledWorker!==void 0&&{bundledWorker:i.bundledWorker}},d={programName:o,...u},f={programName:o,...s!==void 0&&{cacheDir:s}};return e.subCommands?.__complete||(e.subCommands={...e.subCommands,__complete:y(e,o,r)}),e.subCommands?.[`__refresh-completion`]||(e.subCommands={...e.subCommands,"__refresh-completion":sn(e,o,u)}),e.subCommands?.[`__completion-worker-path`]||(e.subCommands={...e.subCommands,"__completion-worker-path":cn(o,u)}),t({name:`completion`,description:`Generate shell completion script`,args:a,run(t){let n=t.shell||c();if(!n){console.error(`Could not detect shell type. Please specify one of: bash, zsh, fish`),process.exitCode=1;return}if(t.static&&t.dispatcher)throw Error(`Choose only one completion mode: --dispatcher or --static.`);if(t.worker&&!t.static)throw Error("`--worker` requires `--static`.");if(t.worker&&(t.install||t.loader||t.instructions))throw Error("`--worker` can only print a worker artifact.");let a=t.static?`static`:`dispatcher`;if(t.install){let t;try{t=It({rootCommand:e,...d,completionMode:a},n)}catch(e){throw Error(`install failed: ${e instanceof Error?e.message:String(e)}`)}console.error(`installed: ${t}`),n===`bash`?(console.error(``),console.error(`Add to your ~/.${n}rc:`),console.error(``),console.error(Wt({...f,shell:n}).trim().replace(/^/gm,` `))):n===`zsh`&&an(o,t);return}if(t.loader){if(n===`fish`)throw Error("fish does not use an rc loader. Run `<program> completion fish --install` to write the self-refreshing autoload file instead.");process.stdout.write(Wt({...f,shell:n}));return}let u=nn(e,{shell:n,programName:o,mode:a,includeDescriptions:!0,...r!==void 0&&{globalArgsSchema:r},...l!==void 0&&{programVersion:l},...s!==void 0&&{cacheDir:s},...i.bundledWorker!==void 0&&{bundledWorker:i.bundledWorker},...t.worker&&{staticWorker:{functionSuffix:`worker`}}});t.instructions?console.log(u.installInstructions):console.log(u.script)}})}function sn(e,n,r={}){return t({name:`__refresh-completion`,description:`(internal) Refresh the on-disk completion cache if stale.`,args:s,run(t){Bt({rootCommand:e,programName:n,...r,completionMode:t.static||t.worker?`static`:void 0,...t.worker&&{staticWorker:{functionSuffix:`worker`}},...t.worker&&{allowTargetCreate:!0},...t.target!==void 0&&{targetPath:t.target}},t.shell)}})}function cn(e,n={}){return t({name:`__completion-worker-path`,description:`(internal) Print the bundled completion worker path when available.`,args:i,run(t){let r=ct({programName:e,shell:t.shell,...n.binPath!==void 0&&{binPath:n.binPath},...n.bundledWorker!==void 0&&{bundledWorker:n.bundledWorker}});if(!r)throw Error(`No bundled completion worker found for ${e} (${t.shell}).`);console.log(r)}})}export{rn as a,mt as c,ve as d,nn as i,U as l,cn as n,$e as o,sn as r,et as s,on as t,I as u};
@@ -1 +0,0 @@
1
- import{t as e}from"./dynamic-BK6Tq_FR.js";export{e as createDynamicCompleteCommand};
@@ -1,6 +0,0 @@
1
- import{i as e,n as t}from"./field-meta-D7G8a7IG.js";import{t as n}from"./schema-extractor-QpSHJvwI.js";import{n as r}from"./command-tLHaJHe6.js";import{c as i,i as a}from"./subcommand-router-D8GTMXYL.js";import{t as o}from"./schema-ohwvrBGz.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 ee(e,t){let n=T(t);for(let t of e)for(let e of T(t))if(n.has(e))return t}function te(e,t,n){let r=new Set;if(t.length===0)return r;let i=new Set,a=(e,t)=>{I(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=A(i),c=z(t,s);if(!c){if(P(t,s)){o++;continue}break}if(c.takesValue){if(j(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]=!L(c,s),r.add(c.name),o++}return r}function ne(e,t){return t.valueType===`array`?Array.isArray(e)?e:[e]:Array.isArray(e)?e.at(-1):e}function E(e,t){return t.length===0?e:[...e,...t]}function D(e,t){let n=t.length-1;if(!(n<0))return e>n?n:e}function O(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 re(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 ie(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 k(e){return e.startsWith(`-`)}function A(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 j(e){return e.includes(`=`)}function M(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 N(e,t,n){return e.defaultNegationAccepted===!0&&M(e,t,n)}function P(e,t){return e.some(e=>e.defaultNegationAccepted!==!0&&M(e,t.name,t.isLong))}function F(t,n){return t!==void 0&&t.includes(`-`)&&e(t)===n}function I(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 L(e,t){return t.isLong?e.negation!==void 0&&(e.negation===t.name||F(e.negation,t.name))?!0:N(e,t.name,t.isLong):!1}function R(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:F(e.cliName,t)||e.alias?.some(e=>F(e,t))?!0:F(e.negation,t)}function z(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&&R(e,t.name,t.isLong));if(r)return r}return e.find(e=>R(e,t.name,t.isLong))||e.find(e=>N(e,t.name,t.isLong))}function B(e,t,n){let r=t,i=[],a=n?w(n).map(e=>({...e,isGlobal:!0})):[],o=new Set,s=!1,c=0,l={},u=[],d={},f=new Set,p=0,m=new Set,h=e=>{o.add(e.cliName);for(let t of e.alias??[])o.add(t);e.negation&&o.add(e.negation),s=!0},g=(e,t)=>{I(e.isGlobal===!0?d:l,e,t,m)},_=(e,t)=>{let n=e.isGlobal===!0?d:l;n[e.name]=!L(e,t)},v=0,y=E(C(r),a),b=!1;for(;v<e.length-1;){let t=e[v];if(!b&&t===`--`){b=!0,v++;continue}if(!b&&t.startsWith(`-`)&&!t.startsWith(`--`)&&t.length>2&&!t.includes(`=`)){s=!0;let e=Array.from(t.slice(1)),n=y.filter(e=>e.isGlobal!==!0);for(let t of e){let e=z(n,{name:t,isLong:!1});e&&!e.takesValue&&(h(e),_(e,{name:t,isLong:!1}))}v++;continue}if(!b&&k(t)){s=!0;let n=A(t),r=z(y,n);if(r){if(h(r),r.takesValue){if(j(t)){let e=t.indexOf(`=`);g(r,t.slice(e+1))}else if(v+1<e.length-1){let t=e[v+1];k(t)||(g(r,t),v++)}}else _(r,n)}v++;continue}let n=b?null:ie(r,t);if(n){i.push(t);let s=C(r),h=e.slice(p,v);for(let e of te(h,a,d))f.add(e);r=n,y=E(C(r),a);for(let e of Object.keys(l)){let t=s.find(t=>t.name===e),n=a.find(t=>t.name===e)??(t?ee(a,t):void 0);n&&(f.has(n.name)||(d[n.name]=ne(l[e],n)))}o.clear(),c=0,l={},u=[],m=new Set,p=v+1,v++;continue}u.push(t),c++,v++}let x=e[e.length-1]??``,S=e[e.length-2]??``,T=O(r),M=re(r);for(let e=0;e<T.length;e++){let t=T[e];if(t.variadic){l[t.name]=u.slice(e);break}e<u.length&&(l[t.name]=u[e])}let N,P,F;if(!b&&S&&k(S)&&!j(S)){let e=z(y,A(S));e&&e.takesValue?(N=`option-value`,P=e):x.startsWith(`-`)?N=`option-name`:(N=V(x,M,T,c),N===`positional`&&(F=c))}else if(!b&&x.startsWith(`-`)&&j(x)){let e=z(y,A(x));e&&e.takesValue?(N=`option-value`,P=e):N=`option-name`}else!b&&x.startsWith(`-`)?N=`option-name`:(N=V(x,M,T,c,b),N===`positional`&&(F=c));let R=[];if(P){if(P.valueType===`array`){let e=(P.isGlobal===!0?d:l)[P.name];R=Array.isArray(e)?e.filter(e=>typeof e==`string`):[]}}else if(N===`positional`&&F!==void 0){let e=D(F,T);e!==void 0&&T[e]?.variadic&&(R=u.slice(e))}let B={...d,...l};return{subcommandPath:i,currentCommand:r,currentWord:x,previousWord:S,completionType:N,targetOption:P,positionalIndex:F,options:y,subcommands:M,positionals:T,usedOptions:o,hasAnyOptionBeenUsed:s,providedPositionalCount:c,parsedArgs:B,previousValues:R}}function V(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 H={Default:0,NoSpace:1,NoFileCompletion:2,FilterPrefix:4,KeepOrder:8,FileCompletion:16,DirectoryCompletion:32,Error:64};function U(e){if(!e.startsWith(`-`))return;let t=e.indexOf(`=`);if(!(t<=0))return e.slice(0,t+1)}async function W(e,t){switch(e.completionType){case`subcommand`:return ue(e);case`option-name`:return Y(e);case`option-value`:{let n=e.targetOption,r=n?U(e.currentWord):void 0;return X(r?{...e,currentWord:e.currentWord.slice(r.length)}:e,t,n?.name,n?.valueCompletion,void 0,n?.valueType===`array`)}case`positional`:{let n=G(e);return n?X(e,t,n.name,n.valueCompletion,n.description,!1):{candidates:[],directive:H.NoFileCompletion}}}}function G(e){let t=e.positionalIndex??0,n=D(t,e.positionals);if(n===void 0)return;let r=e.positionals[n];if(r)return n===t||r.variadic?r:void 0}function K(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 q(e){return e?.type===`choices`?e.choices:void 0}function J(e,t){let n=e.options.find(e=>e.name===t&&e.isGlobal!==!0);if(n)return q(n.valueCompletion);let r=e.positionals.find(e=>e.name===t);return q(r?r.valueCompletion:e.options.find(e=>e.name===t&&e.isGlobal===!0)?.valueCompletion)}function ae(e,t){let n=!t.includes(`=`),r=n?oe(e):se(e,t);return{candidates:r,hasEqSuffix:n&&r.some(e=>e.value.endsWith(`=`))}}function oe(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 se(e,t){let n=t.slice(0,t.indexOf(`=`)+1);return e.filter(e=>e.value!==n)}async function ce(e,t,n,r,i){let a=[],o=H.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|=H.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|=H.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|=H.FileCompletion)):o|=H.FileCompletion;break;case`directory`:o|=H.DirectoryCompletion;break;case`command`:e.shellCommand&&a.push(...K(e.shellCommand)),o|=H.NoFileCompletion;break;case`none`:o|=H.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??H.FilterPrefix|H.NoFileCompletion}catch{o=H.NoFileCompletion|H.Error}break;case`expand`:o|=H.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=J(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=H.NoFileCompletion|H.Error;break}o|=H.NoFileCompletion;break}}if(e.type===`dynamic`||e.type===`expand`||e.type===`runtime-expand`){let n=ae(e.type===`runtime-expand`&&i===!0?le(a,t.previousValues):a,t.currentWord);return n.hasEqSuffix&&(o|=H.NoSpace),{candidates:n.candidates,directive:o,fileExtensions:s,fileMatchers:c}}return{candidates:a,directive:o,fileExtensions:s,fileMatchers:c}}function le(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 ue(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=Y(e);t.push(...n.candidates)}return{candidates:t,directive:H.FilterPrefix|H.NoFileCompletion}}function Y(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.hasAnyOptionBeenUsed||t.push({value:`--help`,description:`Show help information`,type:`option`},{value:`--help-all`,description:`Show help with all subcommand options`,type:`option`},{value:`--help-json`,description:`Show help as JSON`,type:`option`}),{candidates:t,directive:H.FilterPrefix|H.NoFileCompletion}}function de(e,t,n){return{currentWord:e.currentWord,shell:t.shell,parsedArgs:fe(e.parsedArgs,n),previousValues:e.previousValues,subcommandPath:e.subcommandPath}}function fe(e,t){if(t===void 0||!(t in e))return e;let n={...e};return delete n[t],n}async function X(e,t,n,r,i,a){return r?ce(r,de(e,t,n),e,i,a):{candidates:[],directive:H.FilterPrefix}}function Z(e,t){switch(t.shell){case`bash`:return $(e,t);case`zsh`:return pe(e,t);case`fish`:return me(e,t)}}function Q(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 $(e,t){let n=((e.directive&H.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 Q(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 Q(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 Q(n,e),n.join(`
6
- `)}function he(e,t,n){return r({name:`__complete`,args:o,async run(t){let r=B(t.args,e,n),i=r.completionType===`option-value`&&r.targetOption?U(r.currentWord):void 0,a=i?r.currentWord.slice(i.length):r.currentWord,o=Z(await W(r,{shell:t.shell}),{shell:t.shell,currentWord:a,inlinePrefix:i});console.log(o)}})}function ge(e){return!!e.subCommands?.__complete}export{W as a,d as c,b as d,c as f,p as g,f as h,H as i,_ as l,y as m,ge as n,B as o,l as p,Z as r,x as s,he as t,v as u};
@@ -1 +0,0 @@
1
- import{t as e}from"./runner-DtJbfhOs.js";export{e as runCommand};
@@ -1,30 +0,0 @@
1
- import{a as e,i as t,n,o as r,t as i}from"./field-meta-D7G8a7IG.js";import{n as a,o,s,t as c}from"./schema-extractor-QpSHJvwI.js";import{n as l}from"./compile-cache-6u9hgeWu.js";import{n as u,r as d,t as f}from"./log-collector-DICKib75.js";import{a as p,c as m,n as h,o as g,r as _,t as v}from"./subcommand-router-D8GTMXYL.js";import{a as y,i as b}from"./logger-CoeDrmRr.js";import{stripVTControlCharacters as x}from"node:util";async function S(e,t,n={}){let r,i,a=n.captureLogs??!1?f():null;a?.start();let o={args:t},s={args:t,error:r},c;n.handleSignals&&(c=async t=>{c&&(process.off(`SIGINT`,c),process.off(`SIGTERM`,c));let r=Error(`Process interrupted`);if(s.error=r,e.cleanup)try{await e.cleanup(s)}catch(e){console.error(`Error during signal cleanup:`,e)}if(n.globalCleanup)try{await n.globalCleanup({error:r})}catch(e){console.error(`Error during global signal cleanup:`,e)}a?.stop(),process.stdout.writableNeedDrain&&await new Promise(e=>{let t=setTimeout(()=>{process.stdout.off(`drain`,n),e()},200),n=()=>{clearTimeout(t),e()};process.stdout.once(`drain`,n)}),process.exit(1)},process.on(`SIGINT`,c),process.on(`SIGTERM`,c));try{e.setup&&await e.setup(o),e.run&&(i=await e.run(t))}catch(e){r=e instanceof Error?e:Error(String(e))}finally{c&&(process.off(`SIGINT`,c),process.off(`SIGTERM`,c))}if(e.cleanup){s.error=r;try{await e.cleanup(s)}catch(e){r||=e instanceof Error?e:Error(String(e))}}a?.stop();let l=n.existingLogs??u(),p=a?.getLogs()??u(),m=d(l,p);return r?{success:!1,error:r,exitCode:1,logs:m}:{success:!0,result:i,exitCode:0,logs:m}}function C(e){return e<=31||e>=127&&e<=159||e>=768&&e<=879||e>=6832&&e<=6911||e>=7616&&e<=7679||e>=8400&&e<=8447||e>=65056&&e<=65071||e===8203||e>=8204&&e<=8207||e===65279||e>=65024&&e<=65039||e>=917760&&e<=917999}function w(e){return e>=4352&&e<=4447||e>=11904&&e<=12350||e>=12353&&e<=13311||e>=13312&&e<=19903||e>=19968&&e<=40959||e>=40960&&e<=42191||e>=43360&&e<=43391||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65135||e>=65280&&e<=65376||e>=65504&&e<=65510||e>=110592&&e<=110959||e>=127488&&e<=127569||e>=131072&&e<=262141||e>=9728&&e<=10175||e>=126976&&e<=129791}function T(e){let t=!1,n=!1,r=!1;for(let i of e){let e=i.codePointAt(0);if(e===65039){r=!0;continue}C(e)||(t=!0,w(e)&&(n=!0))}return t?n||r?2:1:0}const E=(()=>{try{return new Intl.Segmenter(`en`,{granularity:`grapheme`})}catch{return}})();function D(e){if(e.length===0)return 0;let t=e.includes(`\x1B`)||e.includes(`›`)?x(e):e,n=0;if(E)for(let{segment:e}of E.segment(t))n+=T(e);else for(let e of t)n+=T(e);return n}function O(e){let t=[],n=e.replace(/`([^`]+)`/g,(e,n)=>{let r=t.length;return t.push(b.cyan(n)),`\x00CODE${r}\x00`});return n=n.replace(/\*\*(.+?)\*\*/g,(e,t)=>b.bold(t)),n=n.replace(/__(.+?)__/g,(e,t)=>b.bold(t)),n=n.replace(/\*(.+?)\*/g,(e,t)=>b.italic(t)),n=n.replace(/(?<!\w)_(.+?)_(?!\w)/g,(e,t)=>b.italic(t)),n=n.replace(/\[([^\]]+)\]\(([^)]+)\)/g,(e,t,n)=>`${b.underline(t)} ${b.dim(`(${n})`)}`),n=n.replace(/\x00CODE(\d+)\x00/g,(e,n)=>t[Number(n)]),n}function k(e){return re(e.split(`
2
- `)).map(ce).join(`
3
-
4
- `)}const A=/^(#{1,6})\s+(.+)$/,j=/^(?:---+|\*\*\*+|___+)\s*$/,M=/^>\s?(.*)$/,N=/^-\s+(.+)$/,P=/^(\d+)[.)]\s+(.+)$/,ee=/^(`{3,}|~{3,})(\S*)\s*$/,te=/^\[!(NOTE|TIP|IMPORTANT|WARNING|CAUTION)\]\s*$/,F=/^\|(.+)\|$/,ne=/^\|(\s*:?-+:?\s*\|)+$/;function re(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(r.trim()===``){n++;continue}let i=r.match(ee);if(i){let r=i[1],a=i[2]??``,o=[];for(n++;n<e.length;){if(e[n].startsWith(r.charAt(0).repeat(r.length))&&e[n].trim()===r.charAt(0).repeat(Math.max(r.length,e[n].trim().length))){n++;break}o.push(e[n]),n++}t.push({type:`code`,lang:a,lines:o});continue}let a=r.match(A);if(a){t.push({type:`heading`,level:a[1].length,content:a[2]}),n++;continue}if(j.test(r)){t.push({type:`hr`}),n++;continue}if(M.test(r)){let r=[];for(;n<e.length;){let t=e[n].match(M);if(t)r.push(t[1]),n++;else break}if(r.length>0){let e=r[0].match(te);if(e){let n=r.slice(1).filter(e=>e!==``);t.push({type:`alert`,alertType:e[1],lines:n});continue}}t.push({type:`blockquote`,lines:r});continue}if(N.test(r)){let r=[];for(;n<e.length;){let t=e[n].match(N);if(t)r.push(t[1]),n++;else break}t.push({type:`ul`,items:r});continue}let o=r.match(P);if(o){let r=Number(o[1]),i=[];for(;n<e.length;){let t=e[n].match(P);if(t)i.push(t[2]),n++;else break}t.push({type:`ol`,items:i,start:r});continue}if(F.test(r)&&n+1<e.length&&ne.test(e[n+1])){let i=ie(r),a=ae(e[n+1]);n+=2;let o=[];for(;n<e.length&&F.test(e[n]);)o.push(ie(e[n])),n++;t.push({type:`table`,headers:i,alignments:a,rows:o});continue}let s=[];for(;n<e.length;){let t=e[n];if(t.trim()===``||A.test(t)||j.test(t)||M.test(t)||N.test(t)||P.test(t)||ee.test(t)||F.test(t)&&n+1<e.length&&ne.test(e[n+1]))break;s.push(t),n++}s.length>0&&t.push({type:`paragraph`,lines:s})}return t}function ie(e){return e.slice(1,-1).split(`|`).map(e=>e.trim())}function ae(e){return e.slice(1,-1).split(`|`).map(e=>{let t=e.trim();return t.startsWith(`:`)&&t.endsWith(`:`)?`center`:t.endsWith(`:`)?`right`:`left`})}function oe(e,t,n){let r=D(e),i=Math.max(0,t-r);if(n===`right`)return` `.repeat(i)+e;if(n===`center`){let t=Math.floor(i/2);return` `.repeat(t)+e+` `.repeat(i-t)}return e+` `.repeat(i)}const se={NOTE:{icon:`ℹ`,label:`Note`,styleFn:b.cyan},TIP:{icon:`💡`,label:`Tip`,styleFn:b.green},IMPORTANT:{icon:`❗`,label:`Important`,styleFn:b.magenta},WARNING:{icon:`⚠`,label:`Warning`,styleFn:b.yellow},CAUTION:{icon:`🔴`,label:`Caution`,styleFn:b.red}};function ce(e){switch(e.type){case`heading`:return b.green(b.bold(O(e.content)));case`hr`:return b.dim(`─`.repeat(40));case`blockquote`:{let t=b.dim(`│ `);return e.lines.map(e=>`${t}${O(e)}`).join(`
5
- `)}case`alert`:{let{icon:t,label:n,styleFn:r}=se[e.alertType],i=r(b.bold(`│`))+` `,a=`${i}${r(t)} ${r(n)}`;return e.lines.length===0?a:`${a}\n${e.lines.map(e=>`${i}${O(e)}`).join(`
6
- `)}`}case`ul`:return e.items.map(e=>`${b.dim(`•`)} ${O(e)}`).join(`
7
- `);case`ol`:{let t=e.start+e.items.length-1,n=String(t).length;return e.items.map((t,r)=>{let i=String(e.start+r).padStart(n,` `);return`${b.dim(`${i}.`)} ${O(t)}`}).join(`
8
- `)}case`table`:{let t=e.headers.length,n=e.headers.map(e=>O(e)),r=e.rows.map(e=>Array.from({length:t},(t,n)=>O(e[n]??``))),i=n.map((e,t)=>{let n=D(e),i=r.map(e=>D(e[t]));return Math.max(n,...i)}),a=b.dim(`│`),o=b.dim(`┌─${i.map(e=>`─`.repeat(e)).join(`─┬─`)}─┐`),s=b.dim(`├─${i.map(e=>`─`.repeat(e)).join(`─┼─`)}─┤`),c=b.dim(`└─${i.map(e=>`─`.repeat(e)).join(`─┴─`)}─┘`);return[o,`${a} ${n.map((t,n)=>b.bold(oe(t,i[n],e.alignments[n]??`left`))).join(` ${a} `)} ${a}`,s,...r.map(t=>{let n=t.map((t,n)=>oe(t,i[n],e.alignments[n]??`left`));return`${a} ${n.join(` ${a} `)} ${a}`}),c].join(`
9
- `)}case`code`:return e.lines.map(e=>` ${b.yellow(e)}`).join(`
10
- `);case`paragraph`:return O(e.lines.join(` `))}}const I={help:`Show help`,helpAll:`Show help with all subcommand options`,helpJson:`Show help as JSON`,version:`Show version`};function le(e){return!e.startsWith(`__`)}function L(e){return Object.entries(e).filter(([e])=>le(e))}function ue(e,t){return t?.rootName&&t.commandPath&&t.commandPath.length>0?t.commandPath.join(` `):e.name??`command`}function de(e,t){return t?.rootName&&t.commandPath&&t.commandPath.length>0?`${t.rootName} ${t.commandPath.join(` `)}`:e.name??`command`}function fe(e,t){let n=[],r=de(e,t);n.push(b.commandName(r)),t?.globalExtracted?.fields.length&&n.push(b.placeholder(`[global options]`));let i=a(e);if(i){let t=i.fields.filter(e=>e.positional);i.fields.filter(e=>!e.positional).length>0&&n.push(b.placeholder(`[options]`)),e.subCommands&&L(e.subCommands).length>0&&(e.run||e.defaultSubCommand?n.push(b.placeholder(`[command]`)):n.push(b.option(`<command>`)));for(let e of t)e.required?n.push(b.option(`<${e.name}>`)):n.push(b.placeholder(`[${e.name}]`))}else e.subCommands&&L(e.subCommands).length>0&&(e.run||e.defaultSubCommand?n.push(b.placeholder(`[command]`)):n.push(b.option(`<command>`)));return n.join(` `)}function pe(e,t){let n=`${b.dim(`When`)} ${b.option(e)}=${b.bold(t.discriminatorValue)}:`;return t.description?`${n} ${t.description}`:n}function me(e,t){return` ${b.bold(`${e.description??`Variant ${t+1}`}:`)}`}function he(e,t=0){let n=e.required?b.option(`<${e.name}>`):b.placeholder(`[${e.name}]`),r=[e.description,e.defaultValue===void 0?void 0:b.defaultValue(`(default: ${JSON.stringify(e.defaultValue)})`)].filter(Boolean).join(` `);return r?V(n,r,t):`${` `.repeat(t)} ${n}`}function ge(e){let t=a(e);if(!t)return``;let n=[];if(t.schemaType===`discriminatedUnion`&&t.discriminator){let e=t.discriminator;n=(t.variants??[]).map(t=>({label:pe(e,t),fields:t.fields}))}else(t.schemaType===`union`||t.schemaType===`xor`)&&t.unionOptions&&(n=t.unionOptions.map((e,t)=>({label:me(e,t),fields:e.fields})));let r=n.length>0?W(n):void 0,i=t.fields.filter(e=>e.positional&&(r===void 0||r.has(e.name))).map(e=>he(e));for(let e of n){let t=e.fields.filter(e=>e.positional&&!r?.has(e.name));t.length!==0&&i.push(``,e.label,...t.map(e=>he(e,1)))}return i.join(`
11
- `)}function _e(e,t={},r){let i=[],o={help:t.help??I.help,helpAll:t.helpAll??I.helpAll,helpJson:t.helpJson??I.helpJson,version:t.version??I.version},s=a(e),c=s?.fields.some(e=>e.overrideBuiltinAlias===!0&&n(e).includes(`h`))??!1,l=s?.fields.some(e=>e.overrideBuiltinAlias===!0&&n(e).includes(`H`))??!1;if(c?i.push(V(b.option(`--help`),o.help)):i.push(V(`${b.option(`-h`)}, ${b.option(`--help`)}`,o.help)),l?i.push(V(b.option(`--help-all`),o.helpAll)):i.push(V(`${b.option(`-H`)}, ${b.option(`--help-all`)}`,o.helpAll)),i.push(V(b.option(`--help-json`),o.helpJson)),r?.rootVersion&&i.push(V(b.option(`--version`),o.version)),!s)return i.join(`
12
- `);if(s.schemaType===`discriminatedUnion`&&s.discriminator)return ve(s,e,i);if(s.schemaType===`union`&&s.unionOptions||s.schemaType===`xor`&&s.unionOptions)return ye(s,e,i);let u=s.fields.filter(e=>!e.positional);for(let e of u){let t=z(e),n=e.description??``;e.defaultValue!==void 0&&(n+=` ${b.defaultValue(`(default: ${JSON.stringify(e.defaultValue)})`)}`),e.required&&(n+=` ${b.required(`(required)`)}`);let r=B(e.env);r&&(n+=` ${r}`),i.push(V(t,n));let a=R(e);a&&i.push(a)}return i.join(`
13
- `)}function R(e,t=0,n=0){return!e.negationDisplay||!e.negationDescription?null:V(b.option(`--${e.negationDisplay}`),`${e.negationDescription} ${b.dim(`(↔ --${e.cliName})`)}`,t,n)}function ve(e,t,n){let r=e.discriminator,i=e.variants??[],a=e.fields.find(e=>e.name===r);if(a&&!a.positional){let t=i.map(e=>e.discriminatorValue).join(`|`),o=`${b.option(`--${r}`)} ${b.placeholder(`<${t}>`)}`,s=e.description??a.description??`Action to perform`;n.push(V(o,s))}let o=new Set,s=new Set;for(let e of i)for(let t of e.fields)s.add(t.name);for(let e of s)e!==r&&i.every(t=>t.fields.some(t=>t.name===e))&&o.add(e);for(let t of o){let r=e.fields.find(e=>e.name===t);if(r&&!r.positional){let e=z(r),t=r.description??``;r.defaultValue!==void 0&&(t+=` ${b.defaultValue(`(default: ${JSON.stringify(r.defaultValue)})`)}`);let i=B(r.env);i&&(t+=` ${i}`),n.push(V(e,t));let a=R(r);a&&n.push(a)}}for(let e of i){let t=e.fields.filter(e=>e.name!==r&&!o.has(e.name)&&!e.positional);if(t.length>0){n.push(``),n.push(pe(r,e));for(let e of t){let t=z(e),r=e.description??``;e.defaultValue!==void 0&&(r+=` ${b.defaultValue(`(default: ${JSON.stringify(e.defaultValue)})`)}`),e.required&&(r+=` ${b.required(`(required)`)}`);let i=B(e.env);i&&(r+=` ${i}`),n.push(V(t,r,1));let a=R(e,1);a&&n.push(a)}}}return n.join(`
14
- `)}function ye(e,t,n){let r=e.unionOptions??[],i=new Set,a=new Set;for(let e of r)for(let t of e.fields)a.add(t.name);for(let e of a)r.every(t=>t.fields.some(t=>t.name===e))&&i.add(e);for(let t of i){let r=e.fields.find(e=>e.name===t);if(r&&!r.positional){let e=z(r),t=r.description??``;r.defaultValue!==void 0&&(t+=` ${b.defaultValue(`(default: ${JSON.stringify(r.defaultValue)})`)}`);let i=B(r.env);i&&(t+=` ${i}`),n.push(V(e,t));let a=R(r);a&&n.push(a)}}for(let e=0;e<r.length;e++){let t=r[e];if(!t)continue;let a=t.fields.filter(e=>!i.has(e.name)&&!e.positional),o=me(t,e);if(a.length>0){n.push(``),n.push(o);for(let e of a){let t=z(e),r=e.description??``;e.defaultValue!==void 0&&(r+=` ${b.defaultValue(`(default: ${JSON.stringify(e.defaultValue)})`)}`),e.required&&(r+=` ${b.required(`(required)`)}`);let i=B(e.env);i&&(r+=` ${i}`),n.push(V(t,r,1));let a=R(e,1);a&&n.push(a)}}else n.push(``),n.push(o),n.push(` ${b.dim(b.italic(`no options`))}`)}return n.join(`
15
- `)}function z(e){let t=[];if(e.alias)for(let n of e.alias)n.length===1&&t.push(b.option(`-${n}`));let n=b.option(`--${e.cliName}`);if(e.type!==`boolean`){let t=e.placeholder??e.cliName.toUpperCase();n+=` ${b.placeholder(`<${t}>`)}`}if(t.push(n),e.alias){for(let n of e.alias)if(n.length>1){let r=b.option(`--${n}`);if(e.type!==`boolean`){let t=e.placeholder??e.cliName.toUpperCase();r+=` ${b.placeholder(`<${t}>`)}`}t.push(r)}}let r=t.join(`, `);return e.type===`boolean`&&e.negationDisplay&&!e.negationDescription?`${r} / ${b.option(`--${e.negationDisplay}`)}`:r}function B(e){if(!e)return``;let t=Array.isArray(e)?e:[e];return b.dim(`[env: ${t.join(`, `)}]`)}function be(e){return e.replace(/\x1B\[[0-9;]*m/g,``)}function xe(e,t){let n=be(e).length,r=Math.max(0,t-n);return e+` `.repeat(r)}function Se(e,t){if(!e.includes(`
16
- `))return e;let n=` `.repeat(t);return e.split(`
17
- `).join(`\n${n}`)}function V(e,t,n=0,r=0){let i=` `.repeat(n),a=be(e).length,o=32-n*2+r,s=o+2+n*2,c=Se(t,s);return a>=o?`${i} ${e}\n${` `.repeat(s)}${c}`:`${i} ${xe(e,o)}${c}`}function Ce(e,t=0,n=0){let r=z(e),i=e.description??``;e.defaultValue!==void 0&&(i+=` ${b.defaultValue(`(default: ${JSON.stringify(e.defaultValue)})`)}`),e.required&&(i+=` ${b.required(`(required)`)}`);let a=B(e.env);return a&&(i+=` ${a}`),V(r,i,t,n)}function we(e){let t=[];for(let n of e.fields){if(n.positional)continue;t.push(Ce(n));let e=R(n);e&&t.push(e)}return t.join(`
18
- `)}function Te(e,t){let n=[],r=a(e);if(r){let e=r.fields.filter(e=>!e.positional);for(let r of e){let e=z(r),i=r.description??``;r.defaultValue!==void 0&&(i+=` ${b.defaultValue(`(default: ${JSON.stringify(r.defaultValue)})`)}`);let a=B(r.env);a&&(i+=` ${a}`),n.push(V(e,i,t,2));let o=R(r,t,2);o&&n.push(o)}}return n}function Ee(e,t,n){let r=[];for(let[i,a]of L(e)){let e=m(a),o=t?`${t} ${i}`:i,s=e?.description??``,c=e?.aliases,l=c&&c.length>0?`${o}, ${c.join(`, `)}`:o;if(r.push(V(b.command(l),s,n)),e){let t=Te(e,n+1);r.push(...t);let i=e.subCommands?Object.fromEntries(L(e.subCommands)):void 0;if(i&&Object.keys(i).length>0){let e=Ee(i,o,n);r.push(...e)}}}return r}function H(e,t){let n=[],r=t.context,i=ue(e,r);if(i){let e=b.commandName(i);r?.rootName&&r.commandPath&&r.commandPath.length>0?r.rootVersion?e+=` ${b.version(`(${r.rootName} v${r.rootVersion})`)}`:e+=` ${b.version(`(${r.rootName})`)}`:r?.rootVersion&&(e+=` ${b.version(`v${r.rootVersion}`)}`),n.push(e)}r?.aliasFor&&n.push(b.dim(`Alias for ${b.commandName(r.aliasFor)}`)),e.description&&n.push(e.description),!r?.aliasFor&&e.aliases&&e.aliases.length>0&&n.push(`${b.sectionHeader(`Aliases:`)} ${e.aliases.map(e=>b.command(e)).join(`, `)}`),n.push(`${b.sectionHeader(`Usage:`)} ${fe(e,r)}`);let a=ge(e);a&&n.push(`${b.sectionHeader(`Arguments:`)}\n${a}`);let o=_e(e,t.descriptions,r);if(o&&n.push(`${b.sectionHeader(`Options:`)}\n${o}`),r?.globalExtracted?.fields.length&&n.push(`${b.sectionHeader(`Global Options:`)}\n${we(r.globalExtracted)}`),t.showSubcommands!==!1&&e.subCommands&&L(e.subCommands).length>0){let i=r?.commandPath?.join(` `)??``,a=Object.fromEntries(L(e.subCommands));if(t.showSubcommandOptions){let e=Ee(a,i,0);n.push(`${b.sectionHeader(`Commands:`)}\n${e.join(`
19
- `)}`)}else{let e=[];for(let[t,n]of Object.entries(a)){let r=m(n),a=r?.description??``,o=i?`${i} ${t}`:t,s=r?.aliases,c=s&&s.length>0?`${o}, ${s.join(`, `)}`:o;e.push(V(b.command(c),a))}n.push(`${b.sectionHeader(`Commands:`)}\n${e.join(`
20
- `)}`)}}if(e.examples&&e.examples.length>0){let t=Oe(e.examples,r);n.push(`${b.sectionHeader(`Examples:`)}\n${t}`)}if(e.notes){let t=k(e.notes).split(`
21
- `).map(e=>e===``?``:` ${e}`).join(`
22
- `);n.push(`${b.sectionHeader(`Notes:`)}\n${t}`)}return`\n${n.join(`
23
-
24
- `)}\n`}function U(e){let t={name:e.name,cliName:e.cliName,positional:e.positional,required:e.required,type:e.type};return e.alias&&(t.alias=e.alias),e.description!==void 0&&(t.description=e.description),e.placeholder!==void 0&&(t.placeholder=e.placeholder),e.env!==void 0&&(t.env=e.env),e.defaultValue!==void 0&&(t.defaultValue=e.defaultValue),e.enumValues!==void 0&&(t.enumValues=e.enumValues),e.negation!==void 0&&(t.negation=e.negation),e.negationDisplay!==void 0&&(t.negationDisplay=e.negationDisplay),e.negationDescription!==void 0&&(t.negationDescription=e.negationDescription),t}function W(e,t){let n=new Set;for(let r of e)for(let e of r.fields)e.name!==t&&n.add(e.name);let r=new Set;for(let t of n)e.every(e=>e.fields.some(e=>e.name===t))&&r.add(t);return r}function De(e,t){let n=de(e,t),r=!!t?.globalExtracted?.fields.length,i=e.subCommands&&L(e.subCommands).length>0?e.run?`optional`:`required`:void 0,o=a(e);return{commandName:n,hasGlobalOptions:r,hasOptions:o?o.fields.some(e=>!e.positional):!1,subcommand:i,positionals:o?o.fields.filter(e=>e.positional).map(e=>({name:e.name,required:e.required})):[]}}function G(e,t={}){let n=t.context,r=n?.commandPath??[],i={help:t.descriptions?.help??I.help,helpAll:t.descriptions?.helpAll??I.helpAll,helpJson:t.descriptions?.helpJson??I.helpJson,...n?.rootVersion?{version:t.descriptions?.version??I.version}:{}},o=a(e),s,c=[],l=[],u,d,f;if(o){if(s=o.schemaType,c=o.fields.filter(e=>e.positional).map(U),o.schemaType===`discriminatedUnion`&&o.discriminator&&o.variants){let e=o.discriminator;u=e;let t=o.variants,n=W(t,e),r=o.fields.find(t=>t.name===e&&!t.positional),i=o.fields.filter(e=>!e.positional&&n.has(e.name));l=[...r?[{...U(r),description:o.description??r.description??`Action to perform`}]:[],...i.map(U)],d=t.map(t=>({discriminatorValue:t.discriminatorValue,description:t.description,fields:t.fields.filter(t=>t.name!==e&&!n.has(t.name)).map(U)}))}else if((o.schemaType===`union`||o.schemaType===`xor`)&&o.unionOptions){let e=o.unionOptions,t=W(e);l=o.fields.filter(e=>!e.positional&&t.has(e.name)).map(U),f=e.map(e=>({description:e.description,fields:e.fields.filter(e=>!t.has(e.name)).map(U)}))}else l=o.fields.filter(e=>!e.positional).map(U)}let p=n?.globalExtracted?.fields.length?n.globalExtracted.fields.filter(e=>!e.positional).map(U):void 0,h;if(e.subCommands){let i=L(e.subCommands);i.length>0&&(h=i.map(([i,a])=>{let o=m(a);if(!o)return{name:i,unresolved:!0};let s={commandPath:[...r,i],rootName:n?.rootName??e.name,rootVersion:n?.rootVersion,globalExtracted:n?.globalExtracted};return{name:i,aliases:o.aliases,data:G(o,{descriptions:t.descriptions,context:s})}}))}return{name:e.name??`command`,commandPath:r,rootName:n?.rootName,version:n?.rootVersion,aliasFor:n?.aliasFor,description:e.description,aliases:e.aliases,usage:De(e,n),builtinOptions:i,schemaType:s,positionals:c,options:l,discriminator:u,variants:d,unionOptions:f,globalOptions:p,subcommands:h,examples:e.examples,notes:e.notes}}function Oe(e,t){let n=[],r=t?.rootName?`${t.rootName} `:``,i=t?.commandPath?.join(` `)??``,a=i?`${r}${i} `:r;for(let t of e){if(n.push(` ${b.dim(t.desc).split(`
25
- `).join(`
26
- `)}`),n.push(` ${b.dim(`$`)} ${a}${t.cmd}`),t.output)for(let e of t.output.split(`
27
- `))n.push(` ${e}`);n.push(``)}return n.length>0&&n[n.length-1]===``&&n.pop(),n.join(`
28
- `)}var ke=class extends Error{constructor(e){super(e),this.name=`PositionalConfigError`}},Ae=class extends Error{constructor(e){super(e),this.name=`ReservedAliasError`}},je=class extends Error{constructor(e){super(e),this.name=`DuplicateFieldError`}},Me=class extends Error{constructor(e){super(e),this.name=`DuplicateAliasError`}},K=class extends Error{constructor(e){super(e),this.name=`CaseVariantCollisionError`}},Ne=class extends Error{constructor(e){super(e),this.name=`DuplicateNegationError`}},Pe=class extends Error{constructor(e){super(e),this.name=`ReservedFieldNameError`}},Fe=class extends Error{constructor(e){super(e),this.name=`DefaultSubCommandError`}},Ie=class extends Error{constructor(e){super(e),this.name=`FieldTypeConflictError`}};function Le(e,t){let n=[],r=new Map;for(let i of e.fields)r.has(i.name)&&n.push({commandPath:t,type:`duplicate_field`,message:`Duplicate field name "${i.name}" detected.`,field:i.name}),r.set(i.name,i.name);return n}function Re(e,n){let r=[],i=new Map;for(let a of e.fields){let e=t(a.name),o=i.get(e);o&&o!==a.name&&r.push({commandPath:n,type:`case_variant_collision`,message:`Fields "${o}" and "${a.name}" are case variants of each other and would collide.`,field:a.name}),i.set(e,a.name)}return r}function ze(e,r){let i=[],a=new Map,o=new Set(e.fields.map(e=>e.name)),s=new Set(e.fields.map(e=>e.cliName)),c=(e,t,n)=>{(o.has(e)||s.has(e))&&i.push({commandPath:r,type:`duplicate_alias`,message:`Alias "${e}" for field "${t}" conflicts with existing field name or CLI name "${e}".`,field:t});let c=a.get(e);if(c&&c!==t){let a=n?` (derived camelCase variant)`:``;i.push({commandPath:r,type:`duplicate_alias`,message:`Duplicate alias "${e}"${a} detected. Both "${c}" and "${t}" use the same alias.`,field:t})}a.set(e,t)};for(let r of e.fields){let e=n(r);if(e.length!==0){for(let n of e)if(c(n,r.name,!1),n.length>1&&n.includes(`-`)){let e=t(n);e!==n&&!o.has(e)&&c(e,r.name,!0)}}}return i}function Be(e,r){let i=[],a=new Map,o=(e,t,n)=>{a.has(e)||a.set(e,{field:t,kind:n})};for(let r of e.fields){if(o(r.name,r.name,`field name`),r.name.includes(`-`)){let e=t(r.name);e!==r.name&&o(e,r.name,`field name`)}if(r.cliName!==r.name&&o(r.cliName,r.name,`CLI name`),r.cliName.includes(`-`)){let e=t(r.cliName);e!==r.cliName&&o(e,r.name,`CLI name`)}for(let e of n(r))if(o(e,r.name,`alias`),e.length>1&&e.includes(`-`)){let n=t(e);n!==e&&o(n,r.name,`alias`)}if(r.type===`boolean`&&r.negation===!0){let e=`no-${r.cliName}`;o(e,r.name,`default negation`);let n=t(r.cliName),i=`no${n[0]?.toUpperCase()??``}${n.slice(1)}`;i!==e&&o(i,r.name,`default negation`)}}let s=new Map,c=(e,t,n)=>{let o=a.get(e);if(o){let a=n?` (derived camelCase variant)`:``,s=o.field===t?`the same field's own ${o.kind} "${e}"`:`${o.kind} "${e}" of field "${o.field}"`;i.push({commandPath:r,type:`duplicate_negation`,message:`Negation "${e}"${a} for field "${t}" conflicts with ${s}.`,field:t})}let c=s.get(e);if(c&&c!==t){let a=n?` (derived camelCase variant)`:``;i.push({commandPath:r,type:`duplicate_negation`,message:`Duplicate negation "${e}"${a} detected. Both "${c}" and "${t}" use the same negation name.`,field:t})}s.set(e,t)};for(let n of e.fields)if(typeof n.negation==`string`&&(c(n.negation,n.name,!1),n.negation.includes(`-`))){let e=t(n.negation);e!==n.negation&&c(e,n.name,!0)}return i}function Ve(e,t){let n=[],r=e.fields.filter(e=>e.positional),i=null,a=null;for(let e of r)i!==null&&n.push({commandPath:t,type:`positional_config`,message:`Positional argument "${e.name}" cannot follow array positional argument "${i}".`,field:e.name}),e.type===`array`&&a!==null&&n.push({commandPath:t,type:`positional_config`,message:`Array positional "${e.name}" cannot be used with optional positional "${a}" (ambiguous parsing).`,field:e.name}),a!==null&&e.required&&n.push({commandPath:t,type:`positional_config`,message:`Required positional "${e.name}" cannot follow optional positional "${a}".`,field:e.name}),e.type===`array`&&(i=e.name),e.required||(a=e.name);return n}function He(e,t){let r=[];for(let a of e.fields){if(a.overrideBuiltinAlias!==!0)for(let e of n(a))(e===`h`||e===`H`)&&r.push({commandPath:t,type:`reserved_alias`,message:`Alias "${e}" is reserved for --${e===`h`?`help`:`help-all`}. To override this, set { overrideBuiltinAlias: true } for "${a.name}" and keep the alias where it is currently defined (in alias or hiddenAlias).`,field:a.name});let e=new Set([a.cliName,...n(a)]);for(let n of e){if(!i.has(n))continue;let e=n===a.cliName;r.push({commandPath:t,type:`reserved_alias`,message:`${e?`Field "${a.name}"`:`Alias "${n}" for field "${a.name}"`} collides with the built-in --${n} option, which always takes precedence. Rename the field or its alias; this collision cannot be overridden.`,field:a.name})}}return r}function Ue(e,t){let n=[];for(let r of e.fields)r.name.startsWith(`$`)&&n.push({commandPath:t,type:`reserved_field_name`,message:`Field "${r.name}" starts with "$", which is reserved for framework-injected helpers (e.g. $source).`,field:r.name});return n}function q(e){let t=Le(e,[]);if(t.length>0)throw new je(`Duplicate field name "${t[0]?.field??`unknown`}" detected. Each field must have a unique name.`)}function We(e){let t=ze(e,[]);if(t.length>0){let e=t[0];throw new Me(e.message)}}function Ge(e){let t=Ve(e,[]);if(t.length>0){let e=t[0];throw new ke(e.message)}}function Ke(e,t){let n=He(e,[]);if(n.length>0)throw new Ae(n[0].message)}function qe(e){let t=Ue(e,[]);if(t.length>0){let e=t[0];throw new Pe(e.message)}}function Je(e){let t=Be(e,[]);if(t.length>0){let e=t[0];throw new Ne(e.message)}}function Ye(e){let t=Re(e,[]);if(t.length>0){let e=t[0];throw new K(e.message)}}function Xe(e,t){if(e.type!==t.type||e.positional!==t.positional)return!1;let n=e.enumValues,r=t.enumValues;if(!n&&!r)return!0;if(!n||!r)return!1;let i=new Set(n),a=new Set(r);if(i.size!==a.size)return!1;for(let e of i)if(!a.has(e))return!1;return!0}function Ze(e,n,r){let i=[],a=new Map;for(let n of e.fields)a.set(t(n.name),n);for(let e of n.fields){let n=t(e.name),o=a.get(n);if(o){if(o.name!==e.name){i.push({commandPath:r,type:`case_variant_collision`,message:`Global field "${o.name}" and command field "${e.name}" are case variants of each other and would collide.`,field:e.name});continue}Xe(o,e)||i.push({commandPath:r,type:`field_type_conflict`,message:`Global field "${o.name}" and command field "${e.name}" share the same name but have different definitions.`,field:e.name})}}return i}function Qe(e,t){let n=Ze(e,t,[])[0];if(n)throw n.type===`case_variant_collision`?new K(n.message):new Ie(n.message)}function $e(e,t,n){return[...Le(e,n),...Re(e,n),...ze(e,n),...Be(e,n),...Ve(e,n),...He(e,n),...Ue(e,n)]}function et(e,t){let n=e,r=[];if(n.defaultSubCommand===void 0)return r;n.run&&r.push({commandPath:t,type:`default_subcommand_conflict`,message:`Command "${n.name}" defines both "run" and "defaultSubCommand". Define only one.`});let i=e.subCommands?Object.keys(e.subCommands):[];return i.includes(n.defaultSubCommand)||r.push({commandPath:t,type:`default_subcommand_not_found`,message:`defaultSubCommand "${n.defaultSubCommand}" does not match any subCommands key of "${n.name}". Registered: ${i.length>0?i.join(`, `):`(none)`}.`,field:n.defaultSubCommand}),r}function tt(e){let t=et(e,[]);if(t.length>0)throw new Fe(t[0].message)}function nt(e,t){let n=[];if(!e.subCommands)return n;let r=new Map;for(let[t]of Object.entries(e.subCommands))r.set(t,t);for(let[i,a]of Object.entries(e.subCommands)){let e=g(a)?a.meta:typeof a==`function`?null:a;if(!e?.aliases)continue;let o=[...t,i];for(let t of e.aliases){if(!/^[a-zA-Z0-9][a-zA-Z0-9_-]*$/.test(t)){n.push({commandPath:o,type:`invalid_alias`,message:`Alias "${t}" is invalid. Aliases must start with an alphanumeric character and contain only alphanumeric characters, hyphens, or underscores.`,field:i});continue}if(t===i){n.push({commandPath:o,type:`duplicate_alias`,message:`Alias "${t}" conflicts with its own name.`,field:i});continue}let e=r.get(t);e?e===i?n.push({commandPath:o,type:`duplicate_alias`,message:`Alias "${t}" is duplicated within the alias list.`,field:i}):n.push({commandPath:o,type:`duplicate_alias`,message:`Alias "${t}" conflicts with existing subcommand or alias "${e}".`,field:i}):r.set(t,i)}}return n}function rt(e,t,n){return e===t?[]:[{commandPath:[...n,e],type:`subcommand_key_name_mismatch`,message:`Subcommand registered as "${e}" but its own name is "${t}".`,field:e}]}async function it(e,t={}){let n=t.commandPath??[e.name],r=[],i=e.subCommands?Object.keys(e.subCommands).length>0:!1,a=t.globalArgs?c(t.globalArgs):void 0;if(e.args){let t=c(e.args);r.push(...$e(t,i,n)),a&&r.push(...Ze(a,t,n))}if(r.push(...nt(e,n)),r.push(...et(e,n)),e.subCommands)for(let[i,a]of Object.entries(e.subCommands)){let e=await _(a);r.push(...rt(i,e.name,n));let o=await it(e,{commandPath:[...n,i],...t.globalArgs?{globalArgs:t.globalArgs}:{}});o.valid||r.push(...o.errors)}return r.length===0?{valid:!0}:{valid:!1,errors:r}}function at(e){if(e.length===0)return``;let t=[`Command definition errors:`];for(let n of e){let e=n.commandPath.join(` > `);t.push(` - [${e}] ${n.message}`)}return t.join(`
29
- `)}const ot=new Set([`1`,`t`,`T`,`TRUE`,`true`,`True`]),st=new Set([`0`,`f`,`F`,`FALSE`,`false`,`False`]);function ct(e){return ot.has(e)?!0:!st.has(e)&&e}function lt(e,t){return t===`boolean`?ct(e):e}function ut(e){let t=e.indexOf(`=`);return t>=0?e.slice(2,t):e.slice(2)}function dt(e,t){let n=ut(e);if(!e.includes(`=`)){let e=t.negationMap.get(n);if(e&&t.booleanFlags.has(e))return{resolvedName:e,withoutDashes:n,isNegated:!0,isCustomNegation:!0,isSuppressedNegation:!1}}let r=e.includes(`=`);if(!r&&n.startsWith(`no-`)){let e=n.slice(3);if(e===e.toLowerCase()){let r=t.aliasMap.get(e)??e;if(t.booleanFlags.has(r)){let e=t.aliasMap.get(n)??n;if(!t.definedNames.has(e))return t.defaultNegationDisabledFields.has(r)?{resolvedName:r,withoutDashes:n,isNegated:!1,isCustomNegation:!1,isSuppressedNegation:!0}:{resolvedName:r,withoutDashes:n,isNegated:!0,isCustomNegation:!1,isSuppressedNegation:!1}}}}if(!r&&n.length>2&&n.startsWith(`no`)&&/[A-Z]/.test(n[2])){let e=n[2].toLowerCase()+n.slice(3),r=t.aliasMap.get(e)??e;if(t.booleanFlags.has(r)){let e=t.aliasMap.get(n)??n;if(!t.definedNames.has(e))return t.defaultNegationDisabledFields.has(r)?{resolvedName:r,withoutDashes:n,isNegated:!1,isCustomNegation:!1,isSuppressedNegation:!0}:{resolvedName:r,withoutDashes:n,isNegated:!0,isCustomNegation:!1,isSuppressedNegation:!1}}}return{resolvedName:t.aliasMap.get(n)??n,withoutDashes:n,isNegated:!1,isCustomNegation:!1,isSuppressedNegation:!1}}const ft=/^-\.?\d/;function pt(e){return ft.test(e)}function mt(e,t={}){let{aliasMap:n=new Map,booleanFlags:r=new Set,arrayFlags:i=new Set,definedNames:a=new Set,negationMap:o=new Map,defaultNegationDisabledFields:s}=t,c={aliasMap:n,booleanFlags:r,definedNames:a,negationMap:o,defaultNegationDisabledFields:s??new Set(r)},l={options:{},positionals:[],rest:[]},u=0,d=!1,f=(e,t)=>{let r=n.get(e)??e;if(i.has(r)){let e=l.options[r];Array.isArray(e)?e.push(t):e===void 0?l.options[r]=[t]:l.options[r]=[e,t]}else l.options[r]=t};for(;u<e.length;){let t=e[u];if(d){l.rest.push(t),u++;continue}if(t===`--`){d=!0,u++;continue}if(t.startsWith(`--`)){let i=t.slice(2),a=dt(t,c);if(a.isSuppressedNegation){f(a.withoutDashes,!0),u++;continue}if(a.isNegated){f(a.resolvedName,!1),u++;continue}let o=i.indexOf(`=`);if(o!==-1){let e=i.slice(0,o),t=i.slice(o+1),a=n.get(e)??e;f(e,r.has(a)?ct(t):t),u++}else{let t=i,a=n.get(t)??t;if(r.has(a))f(t,!0),u++;else{let n=e[u+1];n!==void 0&&(!n.startsWith(`-`)||pt(n))?(f(t,n),u+=2):(f(t,!0),u++)}}continue}if(t.startsWith(`-`)&&t.length>1&&!t.startsWith(`--`)){let i=t.slice(1),a=i.indexOf(`=`);if(a!==-1){let e=i.slice(0,a),t=i.slice(a+1),o=n.get(e)??e;f(e,r.has(o)?ct(t):t),u++}else if(i.length===1){let t=i,a=n.get(t)??t;if(r.has(a))f(t,!0),u++;else{let n=e[u+1];n!==void 0&&(!n.startsWith(`-`)||pt(n))?(f(t,n),u+=2):(f(t,!0),u++)}}else{for(let e of i)f(e,!0);u++}continue}l.positionals.push(t),u++}return l}function J(e){let r=new Map,i=new Set,a=new Set,o=new Set,s=new Map,c=new Set;for(let t of e.fields)o.add(t.name);for(let l of e.fields){l.cliName!==l.name&&r.set(l.cliName,l.name);for(let e of n(l))if(r.set(e,l.name),e.length>1&&e.includes(`-`)){let n=t(e);n!==e&&!o.has(n)&&!r.has(n)&&r.set(n,l.name)}let e=t(l.name);if(e!==l.name&&!o.has(e)&&!r.has(e)&&r.set(e,l.name),l.type===`boolean`&&i.add(l.name),l.type===`array`&&a.add(l.name),l.type===`boolean`&&l.negation!==!0&&(c.add(l.name),typeof l.negation==`string`&&(s.set(l.negation,l.name),l.negation.includes(`-`)))){let e=t(l.negation);e!==l.negation&&s.set(e,l.name)}}return{aliasMap:r,booleanFlags:i,arrayFlags:a,definedNames:o,negationMap:s,defaultNegationDisabledFields:c}}function ht(e,t){let n={...e.options},r=t.fields.filter(e=>e.positional),i=e.rest.length>0?[...e.positionals,...e.rest]:e.positionals,a=0;for(let e of r){if(a>=i.length)break;if(e.type===`array`){n[e.name]=i.slice(a);break}n[e.name]=i[a],a++}return n}function gt(e){let{aliasMap:t=new Map,booleanFlags:r=new Set,definedNames:i=new Set,negationMap:a=new Map,defaultNegationDisabledFields:o=new Set}=J(e),s=new Set;for(let t of e.fields)for(let e of n(t))e.length===1&&s.add(e);return{aliasMap:t,booleanFlags:r,definedNames:i,flagNames:new Set(e.fields.map(e=>e.name)),cliNames:new Set(e.fields.map(e=>e.cliName)),aliases:s,negationMap:a,defaultNegationDisabledFields:o}}function _t(e,t){let{resolvedName:n,withoutDashes:r,isNegated:i,isCustomNegation:a,isSuppressedNegation:o}=dt(e,t);if(o)return{resolvedName:n,withoutDashes:r,isNegated:!1,isGlobal:!1,isSuppressedNegation:o};let s=i&&!a?r.startsWith(`no-`)?r.slice(3):r[2].toLowerCase()+r.slice(3):r;return{resolvedName:n,withoutDashes:r,isNegated:i,isGlobal:t.flagNames.has(n)||t.cliNames.has(r)||t.cliNames.has(s),isSuppressedNegation:!1}}function vt(e,t,n,r,i){return!e.includes(`=`)&&!i.has(t)&&!n&&r!==void 0&&!r.startsWith(`-`)}function Y(e,t,n,r,i,a){let o=e[t];return a.push(o),vt(o,n,r,e[t+1],i)?(a.push(e[t+1]),2):1}function yt(e,t,n){let r=gt(n),i=new Set(t),a=[],o=[],s=0;for(;s<e.length;){let t=e[s];if(t===`--`||bt.has(t))break;if(!t.startsWith(`-`)&&i.has(t))return{subCommandIndex:s,globalTokensBefore:a,tokensAfterSubcommand:e.slice(s+1),suppressedTokens:o};if(t.startsWith(`--`)){let{resolvedName:n,withoutDashes:i,isNegated:c,isGlobal:l,isSuppressedNegation:u}=_t(t,r);if(l){s+=Y(e,s,n,c,r.booleanFlags,a);continue}if(u){o.push(i),s++;continue}break}if(t.startsWith(`-`)&&t.length>1){let n=t.includes(`=`)?t.slice(1,t.indexOf(`=`)):t.slice(1);if(n.length===1){let t=r.aliasMap.get(n)??n;if(r.aliases.has(n)||r.flagNames.has(t)){s+=Y(e,s,t,!1,r.booleanFlags,a);continue}}break}break}return{subCommandIndex:-1,globalTokensBefore:a,tokensAfterSubcommand:[],suppressedTokens:o}}const bt=new Set([`--help`,`-h`,`--help-all`,`-H`,`--help-json`,`--version`]);function xt(e,t,n={}){let r=n.stopOnSuppressedNegation===!0||t?.unknownKeysMode===`strict`,i=t?gt(t):{aliasMap:new Map,booleanFlags:new Set,definedNames:new Set,flagNames:new Set,cliNames:new Set,aliases:new Set,negationMap:new Map,defaultNegationDisabledFields:new Set};for(let t=0;t<e.length;t++){let n=e[t];if(!n.startsWith(`-`))return t;if(n===`--`||bt.has(n))return-1;if(n.startsWith(`--`)){let{resolvedName:a,isNegated:o,isGlobal:s,isSuppressedNegation:c}=_t(n,i);if(s){vt(n,a,o,e[t+1],i.booleanFlags)&&t++;continue}if(c){if(r)return-1;continue}return-1}let a=n.includes(`=`)?n.slice(1,n.indexOf(`=`)):n.slice(1);if(a.length===1){let r=i.aliasMap.get(a)??a;if(i.aliases.has(a)||i.flagNames.has(r)){vt(n,r,!1,e[t+1],i.booleanFlags)&&t++;continue}}return-1}return-1}function X(e,t){let n=xt(e,t);return n>=0?e[n]:void 0}function St(e,t,r={}){let i=v(t),a=[...i],o=a.length>0;if(o&&e.length>0){if(r.globalExtracted){let t=yt(e,a,r.globalExtracted);if(t.subCommandIndex>=0){let n=Ct(t.globalTokensBefore,r.globalExtracted);return{helpRequested:!1,helpAllRequested:!1,helpJsonRequested:!1,versionRequested:!1,subCommand:e[t.subCommandIndex],remainingArgs:t.tokensAfterSubcommand,rawArgs:{},positionals:[],rest:[],unknownFlags:t.suppressedTokens,unknownGlobalFlags:t.suppressedTokens,rawGlobalArgs:n}}}else{let t=e[0];if(t&&!t.startsWith(`-`)&&i.has(t))return{helpRequested:!1,helpAllRequested:!1,helpJsonRequested:!1,versionRequested:!1,subCommand:t,remainingArgs:e.slice(1),rawArgs:{},positionals:[],rest:[],unknownFlags:[]}}}let s;t.args&&(s=c(t.args),r.skipValidation||(q(s),Ye(s),We(s),Je(s),Ge(s),Ke(s,o),qe(s),r.globalExtracted&&Qe(r.globalExtracted,s)));let l=e,u,d=[];if(r.globalExtracted){let{separated:t,globalParsed:n,suppressedTokens:i}=wt(e,r.globalExtracted,s);l=t,u=n,d=i}let f=e.indexOf(`--`),p=f>=0?e.slice(0,f):e,m=s?.fields.some(e=>e.overrideBuiltinAlias===!0&&n(e).includes(`H`))??!1,h=s?.fields.some(e=>e.overrideBuiltinAlias===!0&&n(e).includes(`h`))??!1,g=p.includes(`--help-all`)||!m&&p.includes(`-H`),_=p.includes(`--help-json`),y=!g&&!_&&(p.includes(`--help`)||!h&&p.includes(`-h`)),b=p.includes(`--version`);if(y||g||_||b)return{helpRequested:y,helpAllRequested:g,helpJsonRequested:_,versionRequested:b,subCommand:void 0,remainingArgs:[],rawArgs:{},positionals:[],rest:[],unknownFlags:[],unknownGlobalFlags:d,rawGlobalArgs:u};if(!s){let e=l.indexOf(`--`);return{helpRequested:!1,helpAllRequested:!1,helpJsonRequested:!1,versionRequested:!1,subCommand:void 0,remainingArgs:[],rawArgs:{},positionals:e>=0?l.slice(0,e):l,rest:e>=0?l.slice(e+1):[],unknownFlags:[],unknownGlobalFlags:d,rawGlobalArgs:u}}let x=J(s),S=mt(l,x),C=ht(S,s),w=new Set;for(let e of s.fields)if(e.env&&C[e.name]===void 0){let t=Array.isArray(e.env)?e.env:[e.env];for(let n of t){let t=process.env[n];if(t!==void 0){C[e.name]=lt(t,e.type),w.add(e.name);break}}}let T=new Set(s.fields.map(e=>e.name)),E=new Set(s.fields.map(e=>e.cliName)),D=new Set;for(let e of s.fields)for(let t of n(e))D.add(t);if(r.globalExtracted)for(let e of r.globalExtracted.fields){T.add(e.name),E.add(e.cliName);for(let t of n(e))D.add(t)}let O=[];for(let e of Object.keys(S.options))!T.has(e)&&!E.has(e)&&!D.has(e)&&O.push(e);return{helpRequested:!1,helpAllRequested:!1,helpJsonRequested:!1,versionRequested:!1,subCommand:void 0,remainingArgs:[],rawArgs:C,positionals:S.positionals,rest:S.rest,unknownFlags:O,unknownGlobalFlags:d,extractedFields:s,rawGlobalArgs:u,envFallbackFields:w}}function Ct(e,t){return e.length===0?{}:ht(mt(e,J(t)),t)}function wt(e,r,i){let a=gt(r),o=new Set(i?.fields.map(e=>e.name)??[]),s=new Set(i?.fields.map(e=>e.cliName)??[]),c=i?J(i):void 0,l=new Set(c?.aliasMap?.keys()??[]),u=new Set(c?.negationMap?.keys()??[]),d=new Set;for(let e of i?.fields??[])if(e.type===`boolean`&&e.negation===!0)for(let r of[e.cliName,...n(e)]){let e=`no-${r}`;d.add(e),d.add(t(e))}let f=[],p=[],m=[];for(let t=0;t<e.length;t++){let n=e[t];if(n===`--`){p.push(...e.slice(t));break}if(n.startsWith(`--`)){let{resolvedName:r,withoutDashes:i,isNegated:c,isGlobal:p,isSuppressedNegation:h}=_t(n,a),g=r,_=o.has(i)||o.has(g)||s.has(i)||s.has(g)||l.has(i)||l.has(g)||u.has(i)||u.has(g)||d.has(i);if(p&&!_){t+=Y(e,t,r,c,a.booleanFlags,f)-1;continue}if(h&&!_){m.push(i);continue}}else if(n.startsWith(`-`)&&n.length>1){let r=n.includes(`=`)?n.slice(1,n.indexOf(`=`)):n.slice(1);if(r.length===1){let n=a.aliasMap.get(r)??r;if((a.aliases.has(r)||a.flagNames.has(n))&&!l.has(r)){t+=Y(e,t,n,!1,a.booleanFlags,f)-1;continue}}}p.push(n)}return{separated:p,globalParsed:Ct(f,r),suppressedTokens:m}}function Tt(e,t){return o(t)?s(e,t):r().validate(e,t)}function Et(e){return e.map(e=>`${e.path.length>0?`${e.path.join(`.`)}: `:``}${e.message}`).join(`
30
- `)}function Dt(e,t){let n=[];for(let e=0;e<=t.length;e++)n[e]=[e];for(let t=0;t<=e.length;t++)n[0][t]=t;for(let r=1;r<=t.length;r++)for(let i=1;i<=e.length;i++)t.charAt(r-1)===e.charAt(i-1)?n[r][i]=n[r-1][i-1]:n[r][i]=Math.min(n[r-1][i-1]+1,n[r][i-1]+1,n[r-1][i]+1);return n[t.length][e.length]}function Ot(e,t){let n=Math.max(2,Math.floor(e.length/2));return t.map(t=>({candidate:t,distance:Dt(e.toLowerCase(),t.toLowerCase())})).filter(({distance:e})=>e<=n).sort((e,t)=>e.distance-t.distance).map(({candidate:e})=>e).slice(0,3)}function kt(e,t){let n=Ot(e.replace(/^-{1,2}/,``),t),r=`${b.warning(`Warning: Unknown option:`)} ${b.bold(e)}`;if(n.length>0){r+=`\n\n${b.info(`Did you mean?`)}`;for(let e of n)r+=`\n ${y.arrow} ${b.option(`--${e}`)}`}return r}function At(e,t){return t&&e.stack?`${b.error(`Error:`)} ${e.message}\n\n${b.dim(e.stack)}`:`${b.error(`Error:`)} ${e.message}`}function Z(n){return new Proxy(n,{get(n,r,i){if(typeof r==`string`){if(r in n)return Reflect.get(n,r,i);let a=t(r);if(a!==r&&a in n)return Reflect.get(n,a,i);let o=e(r);if(o!==r&&o in n)return Reflect.get(n,o,i)}return Reflect.get(n,r,i)},has(n,r){if(typeof r==`string`){if(r in n)return!0;let i=t(r);if(i!==r&&i in n)return!0;let a=e(r);if(a!==r&&a in n)return!0}return Reflect.has(n,r)}})}async function jt(e,t,n){for(let r of t.fields)r.effect&&await r.effect(e[r.name],{name:r.name,args:e,...n!=null&&{globalArgs:n}})}const Mt={log:e=>console.log(e),error:e=>console.error(e),warn:e=>console.warn(e)};function Nt(n,r){Object.defineProperty(n,"$source",{value:n=>r.get(n)??r.get(t(n))??r.get(e(n))??`default`,enumerable:!1})}function Pt(e,t){Object.defineProperty(e,"$invocation",{value:t,enumerable:!1})}function Ft(e,t){let n=t.commandPath?.at(-1)??e.name;return t.aliasFor?{name:n,aliasFor:t.aliasFor}:{name:n}}async function It(e,t,n={}){let r=zt(n),i=n.captureLogs??!1,a=i?f():null;if(n.setup){a?.start();try{await n.setup({})}catch(e){let t=e instanceof Error?e:Error(String(e));if(n.cleanup)try{await n.cleanup({error:t})}catch{}return a?.stop(),{success:!1,error:t,exitCode:1,logs:a?.getLogs()??u()}}a?.stop()}let o=await $(e,t,{...n,handleSignals:!1,_globalExtracted:r,_globalCleanup:n.cleanup,_existingLogs:a?.getLogs()});if(n.cleanup){let e=i?f():null;e?.start();let t={error:o.success?void 0:o.error};try{await n.cleanup(t)}catch(t){if(o.success){let n=t instanceof Error?t:Error(String(t));return e?.stop(),{success:!1,error:n,exitCode:1,logs:d(o.logs,e?.getLogs()??u())}}}e?.stop();let r=e?.getLogs()??u();if(r.entries.length>0)return{...o,logs:d(o.logs,r)}}return o}function Lt(e,t,n){let r=X(t,n);return!r||!r.startsWith(`__`)?!1:Object.hasOwn(e.subCommands??{},r)}async function Rt(e,t={}){if(t.compileCache!==!1&&l(typeof t.compileCache==`string`?{cacheDir:t.compileCache}:{programName:e.name}),e.runMainHook)try{e.runMainHook(process.argv.slice(2))}catch{}let n=process.argv.slice(2),r;if(t.globalArgs)try{r=c(t.globalArgs)}catch{}let i=t;if(Lt(e,n,r)){let{setup:e,cleanup:n,prompt:r,globalArgs:a,...o}=t;i=o}let a=zt(i);if(i.skipValidation||tt(e),i.onUnknownSubcommand&&!e.run&&!Lt(e,n,r)){let t=v(e);if(t.size>0){let e=xt(n,a,{stopOnSuppressedNegation:a?.unknownKeysMode!==`passthrough`}),r=e>=0?n[e]:void 0;if(r&&!t.has(r)){let t=n.slice(e+1),a=await i.onUnknownSubcommand({commandPath:[],name:r,args:t,precedingArgs:n.slice(0,e)});if(typeof a==`number`)return await Q(),process.exit(a)}}}if(i.setup)try{await i.setup({})}catch(e){let t=e instanceof Error?e:Error(String(e));if(i.cleanup)try{await i.cleanup({error:t})}catch{}process.exit(1)}let o=await $(e,n,{debug:i.debug,captureLogs:i.captureLogs,skipValidation:i.skipValidation,handleSignals:!0,logger:i.logger,globalArgs:i.globalArgs,prompt:i.prompt,onUnknownSubcommand:i.onUnknownSubcommand,_globalExtracted:a,_globalCleanup:i.cleanup,_context:{commandPath:[],rootName:e.name,rootVersion:i.version,globalExtracted:a}});if((i.displayErrors??!0)&&!o.success&&o.error&&(i.logger??Mt).error(At(o.error,i.debug??!1)),i.cleanup){let e={error:o.success?void 0:o.error};try{await i.cleanup(e)}catch{}}await Q(),process.exit(o.exitCode)}async function Q(){await Promise.all([process.stdout,process.stderr].map(e=>e.writableLength>0?new Promise(t=>e.write(``,()=>t())):Promise.resolve()))}async function $(e,t,n={}){let r=n.logger??Mt,i=n._context??{commandPath:[],rootName:e.name,globalExtracted:n._globalExtracted},a=n.captureLogs??!1?f():null;a?.start();let o=()=>{let e=n._existingLogs??u(),t=a?.getLogs()??u();return d(e,t)};try{n.skipValidation||tt(e);let s=St(t,e,{skipValidation:n.skipValidation,globalExtracted:n._globalExtracted}),c={...n._parsedGlobalArgs,...s.rawGlobalArgs},l=i.commandPath??[];if(n.onUnknownSubcommand&&!e.run&&l.length>0){let r=v(e);if(r.size>0){let e=xt(t,n._globalExtracted,{stopOnSuppressedNegation:n._globalExtracted?.unknownKeysMode!==`passthrough`}),i=e>=0?t[e]:void 0;if(i&&!r.has(i)){let r=t.slice(e+1),s=await n.onUnknownSubcommand({commandPath:l,name:i,args:r,precedingArgs:[...n._precedingArgs??[],...t.slice(0,e)]});if(typeof s==`number`){if(a?.stop(),n.handleSignals){if(n._globalCleanup)try{await n._globalCleanup({error:void 0})}catch{}await Q(),process.exit(s)}return s===0?{success:!0,result:void 0,exitCode:0,logs:o()}:{success:!1,error:Error(`Plugin "${[...l,i].join(` `)}" exited with code ${s}`),exitCode:s,logs:o()}}}}}if(s.helpRequested||s.helpAllRequested||s.helpJsonRequested){let c=!1,l=h(e),u=v(e);if(l.length>0){let e=X(t,i.globalExtracted);e&&!u.has(e)&&(c=!0)}if(s.helpJsonRequested){let t=G(e,{context:i});r.log(JSON.stringify(t))}else{let t=H(e,{showSubcommands:n.showSubcommands??!0,showSubcommandOptions:s.helpAllRequested||n.showSubcommandOptions,context:i});r.log(t)}if(a?.stop(),c){let e=X(t,i.globalExtracted)??``,n=Ot(e,[...u]),r=n.length>0?` Did you mean: ${n.join(`, `)}?`:``;return{success:!1,error:Error(`Unknown subcommand: ${e}${r?`.${r}`:``}`),exitCode:1,logs:o()}}return{success:!0,result:void 0,exitCode:0,logs:o()}}if(s.unknownGlobalFlags&&s.unknownGlobalFlags.length>0){let e=i.globalExtracted?.unknownKeysMode??`strip`;if(e===`strict`)return a?.stop(),{success:!1,error:Error(`Unknown flags: ${s.unknownGlobalFlags.join(`, `)}`),exitCode:1,logs:o()};if(e===`strip`){let e=i.globalExtracted?.fields.map(e=>e.name)??[];for(let t of s.unknownGlobalFlags)r.error(kt(t,e))}}if(s.versionRequested){let e=i.rootVersion;return e&&r.log(e),a?.stop(),{success:!0,result:void 0,exitCode:0,logs:o()}}if(s.subCommand){let r=await p(e,s.subCommand);if(r){let e={commandPath:[...i.commandPath??[],s.subCommand],rootName:i.rootName,rootVersion:i.rootVersion,globalExtracted:i.globalExtracted,aliasFor:r.aliasFor};a?.stop();let l=new Set(n._globalExtracted?.unknownKeysMode===`passthrough`?[]:s.unknownGlobalFlags??[]),u=e=>e.startsWith(`--`)&&l.has(ut(e)),d=t.slice(0,t.length-s.remainingArgs.length-1).filter(e=>!u(e));return $(r.command,s.remainingArgs,{...n,_context:e,_existingLogs:o(),_parsedGlobalArgs:c,_precedingArgs:[...n._precedingArgs??[],...d]})}}let u=s.extractedFields?.fields.filter(e=>e.positional)??[],d=u.some(e=>e.type===`array`),f=[...s.positionals,...s.rest],m=d?[]:f.slice(u.length),g=d?[]:s.positionals.slice(u.length);if(h(e).length>0&&!s.subCommand&&!e.run&&m.length===0){if(e.defaultSubCommand&&s.unknownFlags.length===0){let r=e.subCommands?.[e.defaultSubCommand];if(r){let l=await _(r),u={commandPath:[...i.commandPath??[],e.defaultSubCommand],rootName:i.rootName,rootVersion:i.rootVersion,globalExtracted:i.globalExtracted};a?.stop();let d=new Set(n._globalExtracted?.unknownKeysMode===`passthrough`?[]:s.unknownGlobalFlags??[]),f=e=>e.startsWith(`--`)&&d.has(ut(e)),p=t.filter(e=>!f(e));return $(l,[],{...n,_context:u,_existingLogs:o(),_parsedGlobalArgs:c,_precedingArgs:[...n._precedingArgs??[],...p]})}}let l=H(e,{showSubcommands:n.showSubcommands??!0,context:i});return r.log(l),a?.stop(),{success:!0,result:void 0,exitCode:0,logs:o()}}if(s.unknownFlags.length>0){let e=s.extractedFields?.unknownKeysMode??`strip`,t=s.extractedFields?.fields.map(e=>e.name)??[];if(e===`strict`)return a?.stop(),{success:!1,error:Error(`Unknown flags: ${s.unknownFlags.join(`, `)}`),exitCode:1,logs:o()};if(e===`strip`)for(let e of s.unknownFlags)r.error(kt(e,t))}if(m.length>0){let t=v(e);if(t.size>0){let e=g.find(e=>!e.startsWith(`-`)&&!t.has(e));if(e){let n=Ot(e,[...t]),r=n.length>0?` Did you mean: ${n.join(`, `)}?`:``;return a?.stop(),{success:!1,error:Error(`Unknown subcommand: ${e}${r?`.${r}`:``}`),exitCode:1,logs:o()}}}let n=s.extractedFields?.unknownKeysMode??`strip`;if(n===`strict`)return a?.stop(),{success:!1,error:Error(`Unexpected positional argument${m.length>1?`s`:``}: ${m.join(`, `)}`),exitCode:1,logs:o()};if(n===`strip`)for(let e of m)(r.warn??r.error)(`Warning: Unexpected positional argument: ${e}`)}let y={},b=e.name===`__complete`,x=new Set(Object.keys(c)),C=new Set;if(n.globalArgs&&n._globalExtracted&&!b){for(let e of n._globalExtracted.fields)if(e.env&&c[e.name]===void 0){let t=Array.isArray(e.env)?e.env:[e.env];for(let n of t){let t=process.env[n];if(t!==void 0){c[e.name]=lt(t,e.type),C.add(e.name);break}}}if(n.prompt){let e=await n.prompt(c,n._globalExtracted);for(let[t,n]of Object.entries(e))n!==void 0&&(c[t]=n)}let e=Tt(c,n.globalArgs);if(!e.success)return a?.stop(),{success:!1,error:Error(Et(e.errors)),exitCode:1,logs:o()};y=e.data}if(!e.args){let t=new Map;for(let e of x)t.set(e,`cli`);for(let e of C)t.set(e,`env`);Nt(y,t),Pt(y,Ft(e,i));let r=Z(y);return n._globalExtracted&&!b&&await jt(r,n._globalExtracted,r),a?.stop(),await S(e,r,{handleSignals:n.handleSignals,captureLogs:n.captureLogs,existingLogs:o(),globalCleanup:n._globalCleanup})}let w=s.rawArgs,T=new Set;if(n.prompt&&s.extractedFields){let e=await n.prompt(w,s.extractedFields),t={...w};for(let[n,r]of Object.entries(e))r!==void 0&&(t[n]=r,T.add(n));w=t}let E=new Set;if(s.extractedFields)for(let e of s.extractedFields.fields)!(Object.hasOwn(s.rawArgs,e.name)||T.has(e.name))&&x.has(e.name)&&Object.hasOwn(y,e.name)&&(w={...w,[e.name]:y[e.name]},E.add(e.name));let D=Tt(w,e.args);if(!D.success)return a?.stop(),{success:!1,error:Error(Et(D.errors)),exitCode:1,logs:o()};let O=Z(D.data),k=new Map;for(let e of x)k.set(e,`cli`);for(let e of C)k.set(e,`env`);Nt(y,k),Pt(y,Ft(e,i));let A=Z(y);n._globalExtracted&&!b&&await jt(A,n._globalExtracted,A),s.extractedFields&&!b&&await jt(O,s.extractedFields,A);let j={...A,...O},M=new Map(k),N=s.envFallbackFields??new Set;for(let e of s.extractedFields?.fields??[]){if(E.has(e.name)){M.set(e.name,`cli`);continue}let t=Object.hasOwn(s.rawArgs,e.name)||N.has(e.name);M.set(e.name,t?N.has(e.name)?`env`:`cli`:`default`)}Nt(j,M),Pt(j,Ft(e,i));let P=Z(j);return a?.stop(),await S(e,P,{handleSignals:n.handleSignals,captureLogs:n.captureLogs,existingLogs:o(),globalCleanup:n._globalCleanup})}catch(e){let t=e instanceof Error?e:Error(String(e));return a?.stop(),{success:!1,error:t,exitCode:1,logs:o()}}}function zt(e){if(!e.globalArgs)return;let t=c(e.globalArgs);if(!e.skipValidation){q(t),Ye(t),We(t),Je(t),Ke(t,!0),qe(t);let e=t.fields.filter(e=>e.positional).map(e=>e.name);if(e.length>0)throw Error(`Global options schema must not contain positional arguments. Found: ${e.join(`, `)}`)}return t}export{ke as C,G as D,H as E,O,Ie as S,Pe as T,K as _,mt as a,je as b,it as c,We as d,q as f,qe as g,Ke as h,Et as i,k,Qe as l,Ge as m,Rt as n,at as o,Je as p,Z as r,Ye as s,It as t,tt as u,Fe as v,Ae as w,Ne as x,Me as y};