@bomb.sh/tab 0.0.5 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/bin/cli.js +4 -3
- package/dist/cac-BL-zAXTG.js +1 -0
- package/dist/cac.js +1 -1
- package/dist/citty.js +1 -1
- package/dist/commander.js +1 -1
- package/dist/{t-BDEAdEmc.js → t-CMPXbmTJ.js} +21 -21
- package/dist/t.js +1 -1
- package/package.json +1 -4
- package/dist/cac-NlDEuVbb.js +0 -1
package/README.md
CHANGED
|
@@ -6,6 +6,8 @@ Shell autocompletions are largely missing in the JavaScript CLI ecosystem. tab p
|
|
|
6
6
|
|
|
7
7
|
Additionally, tab supports autocompletions for `pnpm`, `npm`, `yarn`, and `bun`.
|
|
8
8
|
|
|
9
|
+
Modern CLI libraries like [Gunshi](https://github.com/kazupon/gunshi) include tab completion natively in their core.
|
|
10
|
+
|
|
9
11
|
As CLI tooling authors, if we can spare our users a second or two by not checking documentation or writing the `-h` flag, we're doing them a huge favor. The unconscious mind loves hitting the [TAB] key and always expects feedback. When nothing happens, it breaks the user's flow - a frustration apparent across the whole JavaScript CLI tooling ecosystem.
|
|
10
12
|
|
|
11
13
|
tab solves this complexity by providing autocompletions that work consistently across `zsh`, `bash`, `fish`, and `powershell`.
|
package/dist/bin/cli.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{RootCommand as e,script as t}from"../t-
|
|
3
|
-
`).map(e=>e.trim()).filter(e=>e.startsWith(`-`)).map(e=>e.substring(1).trim()).filter(e=>e&&!e.startsWith(`#`)):[]}catch{return[]}}function ee(){try{let e=JSON.parse(s(`package.json`,`utf8`));return Object.keys(e.scripts||{})}catch{return[]}}function te(){try{let e=JSON.parse(s(`package.json`,`utf8`)),t={...e.dependencies,...e.devDependencies,...e.peerDependencies,...e.optionalDependencies};return Object.keys(t)}catch{return[]}}const ne=async e=>{ee().forEach(t=>{let n=t.replace(/:/g,`\\:`);e(n,` `)})},u=async e=>{te().forEach(t=>e(t,``))},re=a(o.exec),{execSync:ie}=o,d={workspace(e){l().forEach(t=>e(t,`Workspace pattern: ${t}`))}};function f(e,t,n,r){e._lazyCommand=t,e._optionsLoaded=!1;let i=e.options;e.optionsRaw=i,Object.defineProperty(e,`options`,{get(){return this._optionsLoaded||(this._optionsLoaded=!0,r(this,this._lazyCommand)),i},configurable:!0})}function p(e,t,n){[`remove`,`rm`,`uninstall`,`un`,`update`,`up`].includes(t)&&e.argument(`package`,u),[`run`,`run-script`].includes(t)&&e.argument(`script`,ne,!0)}async function m(e,t={}){try{let{stdout:n}=await re(e,{encoding:`utf8`,timeout:500,maxBuffer:4*1024*1024,...t});return n}catch(e){return e instanceof Error&&`stdout`in e?e.stdout:``}}function h(e,t={}){try{return ie(e,{encoding:`utf8`,timeout:500,...t})}catch(e){return e?.stdout?e.stdout:``}}function g(e){return t=>e.forEach(e=>t(e,` `))}const ae=/\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])/g,_=/^\s+([a-z][a-z\s,-]*?)\s{2,}(\S.*)$/i,v=/^\s*(?:-(?<short>[A-Za-z]),\s*)?--(?<long>[a-z0-9-]+)(?<val>\s+(?:<[^>]+>|\[[^\]]+\]))?\s{2,}(?<desc>\S.*)$/i,oe=/^\s*(?:-[A-Za-z],\s*)?--[a-z0-9-]+/i,y=e=>e.replace(ae,``),b=e=>(e.match(/^\s*/)||[``])[0].length,x=e=>e.split(`,`).map(e=>e.trim()).filter(Boolean),se=/^\s*Options:/i,ce=/(?:levels?|options?|values?)[^:]*:\s*([^.]+)/i,le=/\r?\n/,ue=/[,\s]+/,S=/^\s*(?:-\w,?\s*)?--(\w+(?:-\w+)*)\s+(\w+(?:-\w+)*)\s+(.+)$/,C=/^\s*-\w,?\s*--\w+(?:,\s*--(\w+(?:-\w+)*)\s+(\w+(?:-\w+)*))?\s+(.+)$/,w=/^\s{20,}/,T=/^\s*[A-Z][^:]*:\s*$/;function E(e){return y(e).split(le)}function de(e){let t=1/0;for(let n of e){let e=n.match(_);if(!e)continue;let r=n.indexOf(e[2]);r>=0&&r<t&&(t=r)}return t}function fe(e,t){let n=1/0;for(let r of e){let e=r.match(v);if(!e||t&&e.groups?.val)continue;let i=r.indexOf(e.groups.desc);i>=0&&i<n&&(n=i)}return n}function D(e,t){let n=E(e),r=[];for(let e=0;e<n.length;e++){let i=n[e],a=i.match(S);if(a){let[,i,o,s]=a;if(i===t){let t=s.trim(),i=e+1;for(;i<n.length;){let e=n[i],r=w.test(e),a=S.test(e)||C.test(e),o=!e.trim()||T.test(e);if(r&&!a&&!o)t+=` `+e.trim(),i++;else break}r.push({value:o,desc:t})}}let o=i.match(C);if(o){let[,i,a,s]=o;if(i===t&&a){let t=s.trim(),i=e+1;for(;i<n.length;){let e=n[i],r=w.test(e),a=S.test(e)||C.test(e),o=!e.trim()||T.test(e);if(r&&!a&&!o)t+=` `+e.trim(),i++;else break}r.push({value:a,desc:t})}}}if(r.length)return r;for(let e=0;e<n.length;e++){let r=n[e];if(r.includes(`--${t}`)||r.includes(`${t}:`))for(let t=e;t<Math.min(e+3,n.length);t++){let e=n[t].match(ce);if(e)return e[1].split(ue).map(e=>e.trim()).filter(e=>e&&!e.includes(`(`)&&!e.includes(`)`)).map(e=>({value:e,desc:`Log level: ${e}`}))}}return[]}const O={...d,loglevel(e){let t=D(h(`pnpm install --help`),`loglevel`);t.length?t.forEach(({value:t,desc:n})=>e(t,n)):g([`debug`,`info`,`warn`,`error`,`silent`])(e)},reporter(e){let t=D(h(`pnpm install --help`),`reporter`);t.length?t.forEach(({value:t,desc:n})=>e(t,n)):g([`default`,`append-only`,`ndjson`,`silent`])(e)},filter(e){e(`.`,`Current working directory`),e(`!<selector>`,`Exclude packages matching selector`),l().forEach(t=>{e(t,`Workspace pattern: ${t}`),e(`${t}...`,`Include dependencies of ${t}`)}),e(`@*/*`,`All scoped packages`),e(`...<pattern>`,`Include dependencies of pattern`),e(`<pattern>...`,`Include dependents of pattern`)}};function pe(e){let t=E(e),n=de(t);if(!Number.isFinite(n))return{};let r=null,i=new Map,a=()=>{if(!r)return;let e=r.desc.trim();for(let t of r.names)i.set(t,e);r=null};for(let e of t){if(se.test(e))break;let t=e.match(_);if(t){a(),r={names:x(t[1]),desc:t[2].trim()};continue}r&&b(e)>=n&&e.trim()&&(r.desc+=` `+e.trim())}return a(),Object.fromEntries(i)}async function k(){let e=await m(`pnpm --help`);return e?pe(e):{}}function A(e,{flagsOnly:t=!0}={}){let n=E(e),r=fe(n,t);if(!Number.isFinite(r))return[];let i=[],a=null,o=()=>{a&&=(a.desc=a.desc.trim(),i.push(a),null)};for(let e of n){let n=e.match(v);if(n){if(t&&n.groups?.val)continue;o(),a={short:n.groups?.short||void 0,long:n.groups.long,desc:n.groups.desc.trim()};continue}if(a){let t=b(e),n=oe.test(e);t>=r&&e.trim()&&!n&&(a.desc+=` `+e.trim())}}return o(),i}function j(e,t){let n=h(`pnpm ${t} --help`);if(!n)return;let r=A(n,{flagsOnly:!1});for(let{long:t,short:n,desc:i}of r){if(e.optionsRaw?.get?.(t))continue;let r=O[t];r?e.option(t,i,r,n):e.option(t,i,n)}for(let[t,r]of Object.entries(O))e.optionsRaw?.get?.(t)||D(n,t).length>0&&e.option(t,` `,r)}async function M(e){try{let t=await k();for(let[n,r]of Object.entries(t)){let t=e.command(n,r);p(t,n,`pnpm`),f(t,n,`pnpm`,j)}}catch{}}const N=/^All commands:\s*$/i,P=/^Options:\s*$/i,F=/^(aliases|run|more)/i,I=/^[a-z][a-z0-9-]*$/,L=/(?:\[)?(?:-([a-z])\|)?--([a-z][a-z0-9-]+)(?:\s+<[^>]+>)?(?:\])?/gi,R=/<[^>]+>/,z=/^\s/;function B(e){return y(e).split(/\r?\n/)}function me(e,t){let n=e.findIndex(e=>t.test(e.trim()));if(n===-1)return``;let r=``;for(let t=n+1;t<e.length;t++){let n=e[t];if(!z.test(n)&&n.trim()&&!n.includes(`,`))break;z.test(n)&&(r+=` `+n.trim())}return r}const V=(e,t=()=>` `)=>n=>e.forEach(e=>n(e,t(e))),he={...d,loglevel:g([`silent`,`error`,`warn`,`notice`,`http`,`info`,`verbose`,`silly`]),"install-strategy":V([`hoisted`,`nested`,`shallow`,`linked`],()=>` `),omit:V([`dev`,`optional`,`peer`],()=>` `),include:V([`prod`,`dev`,`optional`,`peer`],()=>` `)};function ge(e){let t=B(e),n=me(t,N);if(!n)return{};let r={};return n.split(`,`).map(e=>e.trim()).filter(e=>e&&I.test(e)).forEach(e=>{r[e]=` `}),r.run=` `,r}async function _e(){let e=await m(`npm --help`);return e?ge(e):{}}function ve(e,{flagsOnly:t=!0}={}){let n=B(e),r=n.findIndex(e=>P.test(e.trim()));if(r===-1)return[];let i=[];for(let e of n.slice(r+1)){let n=e.trim();if(F.test(n))break;let r=e.matchAll(L);for(let e of r){let n=e[1]||void 0,r=e[2],a=R.test(e[0]);if(t&&a)continue;i.push({short:n,long:r,desc:` `})}}return i}function ye(e,t){let n=h(`npm ${t} --help`);if(!n)return;let r=ve(n,{flagsOnly:!1});for(let{long:t,short:n,desc:i}of r){if(e.optionsRaw?.get?.(t))continue;let r=he[t];r?e.option(t,i,r,n):e.option(t,i,n)}}async function be(e){try{let t=await _e();for(let[n,r]of Object.entries(t)){let t=e.command(n,r);p(t,n,`npm`),f(t,n,`npm`,ye)}}catch{}}const xe=/^\s*Options:\s*$/i,Se=/^\s*Commands:\s*$/i,H=/^(Run `yarn help|Visit https:\/\/)/i,Ce=/\r?\n/,we=/^\s*(?:-([a-zA-Z]),?\s*)?--([a-z][a-z0-9-]*)(?:\s+<[^>]+>|\s+\[[^\]]+\])?\s+(.+)$/,Te=/^\s*-\s+([a-z][a-z0-9-]*(?:\s*\/\s*[a-z][a-zA-Z]*)*)/;function U(e){return y(e).split(Ce)}function W(e,t){for(let n=0;n<e.length;n++)if(t.test(e[n].trim()))return n+1;return-1}const Ee={...d,emoji(e){e(`true`,` `),e(`false`,` `)},production(e){e(`true`,` `),e(`false`,` `)},"scripts-prepend-node-path"(e){e(`true`,` `),e(`false`,` `)}};function De(e){let t=U(e),n={},r=W(t,Se);if(r===-1)return n;for(let e=r;e<t.length;e++){let r=t[e];if(H.test(r))break;if(!r.trim())continue;let i=r.match(Te);if(i){let[,e]=i,t=e.split(/\s*\/\s*/),r=t[0].trim();if(r){n[r]=``;for(let e=1;e<t.length;e++){let r=t[e].trim();r&&(n[r]=``)}}}}return n}async function Oe(){let e=await m(`yarn --help`);return e?De(e):{}}function ke(e,{flagsOnly:t=!0}={}){let n=U(e),r=[],i=W(n,xe);if(i===-1)return r;for(let e=i;e<n.length;e++){let i=n[e];if(H.test(i.trim()))break;let a=i.match(we);if(!a)continue;let[,o,s,c]=a,l=i.includes(`<`)||i.includes(`[`);t&&l||r.push({short:o||void 0,long:s,desc:c.trim()})}return r}function Ae(e,t){let n=h(`yarn ${t} --help`);if(!n)return;let r=ke(n,{flagsOnly:!1});for(let{long:t,short:n,desc:i}of r){if(e.optionsRaw?.get?.(t))continue;let r=Ee[t];r?e.option(t,i,r,n):e.option(t,i,n)}}async function je(e){try{let t=await Oe();for(let[n,r]of Object.entries(t)){let t=e.command(n,r);p(t,n,`yarn`),f(t,n,`yarn`,Ae)}}catch{}}const Me=/^Commands:\s*$/i,G=/^Flags:\s*$/i,Ne=/^(Examples|Full documentation|Learn more)/i,K=/^[a-z][a-z0-9-]*$/,Pe=/^\s*(?:-([a-zA-Z]),?\s*)?--([a-z][a-z0-9-]*)(?:=<[^>]+>)?\s+(.+)$/,Fe=/^ ([a-z][a-z0-9-]*)\s+(.+)$/,Ie=/^\s{12,}([a-z][a-z0-9-]*)\s+(.+)$/,Le=/^\s+[a-z]/,Re=/\s{2,}/,q=/^[A-Z]/,ze=/\r?\n/;function J(e){return y(e).split(ze)}function Y(e,t){for(let n=0;n<e.length;n++)if(t.test(e[n].trim()))return n+1;return-1}const Be={...d,backend(e){e(`clonefile`,` `),e(`hardlink`,` `),e(`symlink`,` `),e(`copyfile`,` `)},linker(e){e(`isolated`,` `),e(`hoisted`,` `)},omit(e){e(`dev`,` `),e(`optional`,` `),e(`peer`,` `)},shell(e){e(`bun`,` `),e(`system`,` `)},"unhandled-rejections"(e){e(`strict`,` `),e(`throw`,` `),e(`warn`,` `),e(`none`,` `),e(`warn-with-error-code`,` `)}};function Ve(e){let t=J(e),n=Y(t,Me);if(n===-1)return{};let r={};for(let e=n;e<t.length;e++){let n=t[e];if(G.test(n.trim())||n.trim()===``&&e+1<t.length&&!t[e+1].match(Le))break;if(!n.trim())continue;let i=n.match(Fe);if(i){let[,e,t]=i;if(K.test(e)){let n=t.split(Re),i=n[n.length-1];if(i&&q.test(i))r[e]=i.trim();else if(n.length>1){for(let t of n)if(q.test(t)){r[e]=t.trim();break}}}}let a=n.match(Ie);if(a){let[,e,t]=a;K.test(e)&&(r[e]=t.trim())}}return r}async function He(){let e=await m(`bun --help`);return e?Ve(e):{}}function Ue(e,{flagsOnly:t=!0}={}){let n=J(e),r=[],i=Y(n,G);if(i===-1)return r;for(let e=i;e<n.length;e++){let i=n[e];if(Ne.test(i.trim()))break;let a=i.match(Pe);if(!a)continue;let[,o,s,c]=a,l=i.includes(`=<`);t&&l||r.push({short:o||void 0,long:s,desc:c.trim()})}return r}function We(e,t){let n=h(`bun ${t} --help`);if(!n)return;let r=Ue(n,{flagsOnly:!1});for(let{long:t,short:n,desc:i}of r){if(e.optionsRaw?.get?.(t))continue;let r=Be[t];r?e.option(t,i,r,n):e.option(t,i,n)}}async function X(e){try{let t=await He();for(let[n,r]of Object.entries(t)){let t=e.command(n,r);p(t,n,`bun`),f(t,n,`bun`,We)}}catch{}}async function Ge(e,t){switch(e){case`pnpm`:await M(t);break;case`npm`:await be(t);break;case`yarn`:await je(t);break;case`bun`:await X(t);break;default:break}}function Z(...e){process.env.DEBUG&&console.error(`[DEBUG]`,...e)}async function Ke(e,t){try{Z(`Checking if ${e} has completions via ${t}`);let n=`${t} ${e} complete --`,r=!!c(n,{encoding:`utf8`,stdio:[`pipe`,`pipe`,`ignore`],timeout:1e3}).trim();return Z(`${e} supports completions: ${r}`),r}catch(t){return Z(`Error checking completions for ${e}:`,t),!1}}async function qe(e,t,n){try{let r=n.map(e=>e.includes(` `)?`"${e}"`:e),i=`${t} ${e} complete -- ${r.join(` `)}`;Z(`Getting completions with command: ${i}`);let a=c(i,{encoding:`utf8`,stdio:[`pipe`,`pipe`,`ignore`],timeout:1e3}).trim().split(`
|
|
4
|
-
`).filter(Boolean)
|
|
2
|
+
import{RootCommand as e,script as t}from"../t-CMPXbmTJ.js";import"../shared-CDiJt0Dj.js";import{tab as n}from"../cac-BL-zAXTG.js";import r from"cac";import{readFileSync as i}from"node:fs";import{promisify as a}from"node:util";import o from"node:child_process";import{readFileSync as s}from"fs";import{execSync as c}from"child_process";function l(){try{let e;try{e=i(`pnpm-workspace.yaml`,`utf8`)}catch{e=i(`pnpm-workspace.yml`,`utf8`)}let t=e.match(/packages:\s*\n((?:\s*-\s*.+\n?)*)/);return t?t[1].split(`
|
|
3
|
+
`).map(e=>e.trim()).filter(e=>e.startsWith(`-`)).map(e=>e.substring(1).trim()).filter(e=>e&&!e.startsWith(`#`)):[]}catch{return[]}}function ee(){try{let e=JSON.parse(s(`package.json`,`utf8`));return Object.keys(e.scripts||{})}catch{return[]}}function te(){try{let e=JSON.parse(s(`package.json`,`utf8`)),t={...e.dependencies,...e.devDependencies,...e.peerDependencies,...e.optionalDependencies};return Object.keys(t)}catch{return[]}}const ne=async e=>{ee().forEach(t=>{e(t.replace(/:/g,`\\:`),` `)})},u=async e=>{te().forEach(t=>e(t,``))},re=a(o.exec),{execSync:ie}=o,d={workspace(e){l().forEach(t=>e(t,`Workspace pattern: ${t}`))}};function f(e,t,n,r){e._lazyCommand=t,e._optionsLoaded=!1;let i=e.options;e.optionsRaw=i,Object.defineProperty(e,`options`,{get(){return this._optionsLoaded||(this._optionsLoaded=!0,r(this,this._lazyCommand)),i},configurable:!0})}function p(e,t,n){[`remove`,`rm`,`uninstall`,`un`,`update`,`up`].includes(t)&&e.argument(`package`,u),[`run`,`run-script`].includes(t)&&e.argument(`script`,ne,!0)}async function m(e,t={}){try{let{stdout:n}=await re(e,{encoding:`utf8`,timeout:500,maxBuffer:4*1024*1024,...t});return n}catch(e){return e instanceof Error&&`stdout`in e?e.stdout:``}}function h(e,t={}){try{return ie(e,{encoding:`utf8`,timeout:500,...t})}catch(e){return e?.stdout?e.stdout:``}}function g(e){return t=>e.forEach(e=>t(e,` `))}const ae=/\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])/g,_=/^\s+([a-z][a-z\s,-]*?)\s{2,}(\S.*)$/i,v=/^\s*(?:-(?<short>[A-Za-z]),\s*)?--(?<long>[a-z0-9-]+)(?<val>\s+(?:<[^>]+>|\[[^\]]+\]))?\s{2,}(?<desc>\S.*)$/i,oe=/^\s*(?:-[A-Za-z],\s*)?--[a-z0-9-]+/i,y=e=>e.replace(ae,``),b=e=>(e.match(/^\s*/)||[``])[0].length,x=e=>e.split(`,`).map(e=>e.trim()).filter(Boolean),se=/^\s*Options:/i,ce=/(?:levels?|options?|values?)[^:]*:\s*([^.]+)/i,le=/\r?\n/,ue=/[,\s]+/,S=/^\s*(?:-\w,?\s*)?--(\w+(?:-\w+)*)\s+(\w+(?:-\w+)*)\s+(.+)$/,C=/^\s*-\w,?\s*--\w+(?:,\s*--(\w+(?:-\w+)*)\s+(\w+(?:-\w+)*))?\s+(.+)$/,w=/^\s{20,}/,T=/^\s*[A-Z][^:]*:\s*$/;function E(e){return y(e).split(le)}function de(e){let t=1/0;for(let n of e){let e=n.match(_);if(!e)continue;let r=n.indexOf(e[2]);r>=0&&r<t&&(t=r)}return t}function fe(e,t){let n=1/0;for(let r of e){let e=r.match(v);if(!e||t&&e.groups?.val)continue;let i=r.indexOf(e.groups.desc);i>=0&&i<n&&(n=i)}return n}function D(e,t){let n=E(e),r=[];for(let e=0;e<n.length;e++){let i=n[e],a=i.match(S);if(a){let[,i,o,s]=a;if(i===t){let t=s.trim(),i=e+1;for(;i<n.length;){let e=n[i],r=w.test(e),a=S.test(e)||C.test(e),o=!e.trim()||T.test(e);if(r&&!a&&!o)t+=` `+e.trim(),i++;else break}r.push({value:o,desc:t})}}let o=i.match(C);if(o){let[,i,a,s]=o;if(i===t&&a){let t=s.trim(),i=e+1;for(;i<n.length;){let e=n[i],r=w.test(e),a=S.test(e)||C.test(e),o=!e.trim()||T.test(e);if(r&&!a&&!o)t+=` `+e.trim(),i++;else break}r.push({value:a,desc:t})}}}if(r.length)return r;for(let e=0;e<n.length;e++){let r=n[e];if(r.includes(`--${t}`)||r.includes(`${t}:`))for(let t=e;t<Math.min(e+3,n.length);t++){let e=n[t].match(ce);if(e)return e[1].split(ue).map(e=>e.trim()).filter(e=>e&&!e.includes(`(`)&&!e.includes(`)`)).map(e=>({value:e,desc:`Log level: ${e}`}))}}return[]}const O={...d,loglevel(e){let t=D(h(`pnpm install --help`),`loglevel`);t.length?t.forEach(({value:t,desc:n})=>e(t,n)):g([`debug`,`info`,`warn`,`error`,`silent`])(e)},reporter(e){let t=D(h(`pnpm install --help`),`reporter`);t.length?t.forEach(({value:t,desc:n})=>e(t,n)):g([`default`,`append-only`,`ndjson`,`silent`])(e)},filter(e){e(`.`,`Current working directory`),e(`!<selector>`,`Exclude packages matching selector`),l().forEach(t=>{e(t,`Workspace pattern: ${t}`),e(`${t}...`,`Include dependencies of ${t}`)}),e(`@*/*`,`All scoped packages`),e(`...<pattern>`,`Include dependencies of pattern`),e(`<pattern>...`,`Include dependents of pattern`)}};function k(e){let t=E(e),n=de(t);if(!Number.isFinite(n))return{};let r=null,i=new Map,a=()=>{if(!r)return;let e=r.desc.trim();for(let t of r.names)i.set(t,e);r=null};for(let e of t){if(se.test(e))break;let t=e.match(_);if(t){a(),r={names:x(t[1]),desc:t[2].trim()};continue}r&&b(e)>=n&&e.trim()&&(r.desc+=` `+e.trim())}return a(),Object.fromEntries(i)}async function A(){let e=await m(`pnpm --help`);return e?k(e):{}}function j(e,{flagsOnly:t=!0}={}){let n=E(e),r=fe(n,t);if(!Number.isFinite(r))return[];let i=[],a=null,o=()=>{a&&=(a.desc=a.desc.trim(),i.push(a),null)};for(let e of n){let n=e.match(v);if(n){if(t&&n.groups?.val)continue;o(),a={short:n.groups?.short||void 0,long:n.groups.long,desc:n.groups.desc.trim()};continue}if(a){let t=b(e),n=oe.test(e);t>=r&&e.trim()&&!n&&(a.desc+=` `+e.trim())}}return o(),i}function M(e,t){let n=h(`pnpm ${t} --help`);if(!n)return;let r=j(n,{flagsOnly:!1});for(let{long:t,short:n,desc:i}of r){if(e.optionsRaw?.get?.(t))continue;let r=O[t];r?e.option(t,i,r,n):e.option(t,i,n)}for(let[t,r]of Object.entries(O))e.optionsRaw?.get?.(t)||D(n,t).length>0&&e.option(t,` `,r)}async function N(e){try{let t=await A();for(let[n,r]of Object.entries(t)){let t=e.command(n,r);p(t,n,`pnpm`),f(t,n,`pnpm`,M)}}catch{}}const P=/^All commands:\s*$/i,F=/^Options:\s*$/i,I=/^(aliases|run|more)/i,L=/^[a-z][a-z0-9-]*$/,R=/(?:\[)?(?:-([a-z])\|)?--([a-z][a-z0-9-]+)(?:\s+<[^>]+>)?(?:\])?/gi,z=/<[^>]+>/,B=/^\s/;function V(e){return y(e).split(/\r?\n/)}function pe(e,t){let n=e.findIndex(e=>t.test(e.trim()));if(n===-1)return``;let r=``;for(let t=n+1;t<e.length;t++){let n=e[t];if(!B.test(n)&&n.trim()&&!n.includes(`,`))break;B.test(n)&&(r+=` `+n.trim())}return r}const H=(e,t=()=>` `)=>n=>e.forEach(e=>n(e,t(e))),me={...d,loglevel:g([`silent`,`error`,`warn`,`notice`,`http`,`info`,`verbose`,`silly`]),"install-strategy":H([`hoisted`,`nested`,`shallow`,`linked`],()=>` `),omit:H([`dev`,`optional`,`peer`],()=>` `),include:H([`prod`,`dev`,`optional`,`peer`],()=>` `)};function he(e){let t=pe(V(e),P);if(!t)return{};let n={};return t.split(`,`).map(e=>e.trim()).filter(e=>e&&L.test(e)).forEach(e=>{n[e]=` `}),n.run=` `,n}async function ge(){let e=await m(`npm --help`);return e?he(e):{}}function _e(e,{flagsOnly:t=!0}={}){let n=V(e),r=n.findIndex(e=>F.test(e.trim()));if(r===-1)return[];let i=[];for(let e of n.slice(r+1)){let n=e.trim();if(I.test(n))break;let r=e.matchAll(R);for(let e of r){let n=e[1]||void 0,r=e[2],a=z.test(e[0]);t&&a||i.push({short:n,long:r,desc:` `})}}return i}function ve(e,t){let n=h(`npm ${t} --help`);if(!n)return;let r=_e(n,{flagsOnly:!1});for(let{long:t,short:n,desc:i}of r){if(e.optionsRaw?.get?.(t))continue;let r=me[t];r?e.option(t,i,r,n):e.option(t,i,n)}}async function ye(e){try{let t=await ge();for(let[n,r]of Object.entries(t)){let t=e.command(n,r);p(t,n,`npm`),f(t,n,`npm`,ve)}}catch{}}const be=/^\s*Options:\s*$/i,xe=/^\s*Commands:\s*$/i,U=/^(Run `yarn help|Visit https:\/\/)/i,Se=/\r?\n/,Ce=/^\s*(?:-([a-zA-Z]),?\s*)?--([a-z][a-z0-9-]*)(?:\s+<[^>]+>|\s+\[[^\]]+\])?\s+(.+)$/,we=/^\s*-\s+([a-z][a-z0-9-]*(?:\s*\/\s*[a-z][a-zA-Z]*)*)/;function W(e){return y(e).split(Se)}function G(e,t){for(let n=0;n<e.length;n++)if(t.test(e[n].trim()))return n+1;return-1}const Te={...d,emoji(e){e(`true`,` `),e(`false`,` `)},production(e){e(`true`,` `),e(`false`,` `)},"scripts-prepend-node-path"(e){e(`true`,` `),e(`false`,` `)}};function Ee(e){let t=W(e),n={},r=G(t,xe);if(r===-1)return n;for(let e=r;e<t.length;e++){let r=t[e];if(U.test(r))break;if(!r.trim())continue;let i=r.match(we);if(i){let[,e]=i,t=e.split(/\s*\/\s*/),r=t[0].trim();if(r){n[r]=``;for(let e=1;e<t.length;e++){let r=t[e].trim();r&&(n[r]=``)}}}}return n}async function De(){let e=await m(`yarn --help`);return e?Ee(e):{}}function Oe(e,{flagsOnly:t=!0}={}){let n=W(e),r=[],i=G(n,be);if(i===-1)return r;for(let e=i;e<n.length;e++){let i=n[e];if(U.test(i.trim()))break;let a=i.match(Ce);if(!a)continue;let[,o,s,c]=a,l=i.includes(`<`)||i.includes(`[`);t&&l||r.push({short:o||void 0,long:s,desc:c.trim()})}return r}function ke(e,t){let n=h(`yarn ${t} --help`);if(!n)return;let r=Oe(n,{flagsOnly:!1});for(let{long:t,short:n,desc:i}of r){if(e.optionsRaw?.get?.(t))continue;let r=Te[t];r?e.option(t,i,r,n):e.option(t,i,n)}}async function Ae(e){try{let t=await De();for(let[n,r]of Object.entries(t)){let t=e.command(n,r);p(t,n,`yarn`),f(t,n,`yarn`,ke)}}catch{}}const je=/^Commands:\s*$/i,K=/^Flags:\s*$/i,Me=/^(Examples|Full documentation|Learn more)/i,q=/^[a-z][a-z0-9-]*$/,Ne=/^\s*(?:-([a-zA-Z]),?\s*)?--([a-z][a-z0-9-]*)(?:=<[^>]+>)?\s+(.+)$/,Pe=/^ ([a-z][a-z0-9-]*)\s+(.+)$/,Fe=/^\s{12,}([a-z][a-z0-9-]*)\s+(.+)$/,Ie=/^\s+[a-z]/,Le=/\s{2,}/,J=/^[A-Z]/,Re=/\r?\n/;function Y(e){return y(e).split(Re)}function X(e,t){for(let n=0;n<e.length;n++)if(t.test(e[n].trim()))return n+1;return-1}const ze={...d,backend(e){e(`clonefile`,` `),e(`hardlink`,` `),e(`symlink`,` `),e(`copyfile`,` `)},linker(e){e(`isolated`,` `),e(`hoisted`,` `)},omit(e){e(`dev`,` `),e(`optional`,` `),e(`peer`,` `)},shell(e){e(`bun`,` `),e(`system`,` `)},"unhandled-rejections"(e){e(`strict`,` `),e(`throw`,` `),e(`warn`,` `),e(`none`,` `),e(`warn-with-error-code`,` `)}};function Be(e){let t=Y(e),n=X(t,je);if(n===-1)return{};let r={};for(let e=n;e<t.length;e++){let n=t[e];if(K.test(n.trim())||n.trim()===``&&e+1<t.length&&!t[e+1].match(Ie))break;if(!n.trim())continue;let i=n.match(Pe);if(i){let[,e,t]=i;if(q.test(e)){let n=t.split(Le),i=n[n.length-1];if(i&&J.test(i))r[e]=i.trim();else if(n.length>1){for(let t of n)if(J.test(t)){r[e]=t.trim();break}}}}let a=n.match(Fe);if(a){let[,e,t]=a;q.test(e)&&(r[e]=t.trim())}}return r}async function Ve(){let e=await m(`bun --help`);return e?Be(e):{}}function He(e,{flagsOnly:t=!0}={}){let n=Y(e),r=[],i=X(n,K);if(i===-1)return r;for(let e=i;e<n.length;e++){let i=n[e];if(Me.test(i.trim()))break;let a=i.match(Ne);if(!a)continue;let[,o,s,c]=a,l=i.includes(`=<`);t&&l||r.push({short:o||void 0,long:s,desc:c.trim()})}return r}function Ue(e,t){let n=h(`bun ${t} --help`);if(!n)return;let r=He(n,{flagsOnly:!1});for(let{long:t,short:n,desc:i}of r){if(e.optionsRaw?.get?.(t))continue;let r=ze[t];r?e.option(t,i,r,n):e.option(t,i,n)}}async function Z(e){try{let t=await Ve();for(let[n,r]of Object.entries(t)){let t=e.command(n,r);p(t,n,`bun`),f(t,n,`bun`,Ue)}}catch{}}async function We(e,t){switch(e){case`pnpm`:await N(t);break;case`npm`:await ye(t);break;case`yarn`:await Ae(t);break;case`bun`:await Z(t);break;default:break}}function Ge(...e){process.env.DEBUG&&console.error(`[DEBUG]`,...e)}async function Ke(e,t){try{if(c(`${e} complete --`,{encoding:`utf8`,stdio:[`pipe`,`pipe`,`ignore`],timeout:1e3}).trim())return!0}catch{}try{return!!c(`${t} ${e} complete --`,{encoding:`utf8`,stdio:[`pipe`,`pipe`,`ignore`],timeout:1e3}).trim()}catch{return!1}}async function qe(e,t,n){let r=n.map(e=>e.includes(` `)?`"${e}"`:e);try{let t=c(`${e} complete -- ${r.join(` `)}`,{encoding:`utf8`,stdio:[`pipe`,`pipe`,`ignore`],timeout:1e3});if(t.trim())return t.trim().split(`
|
|
4
|
+
`).filter(Boolean)}catch{}try{return c(`${t} ${e} complete -- ${r.join(` `)}`,{encoding:`utf8`,stdio:[`pipe`,`pipe`,`ignore`],timeout:1e3}).trim().split(`
|
|
5
|
+
`).filter(Boolean)}catch{return[]}}var Je=class extends e{packageManager;constructor(e){super(),this.packageManager=e}stripPackageManagerCommands(e){return e.length===0?e:[`exec`,`x`,`run`,`dlx`].includes(e[0])?e.slice(1):e}async parse(e){let t=this.stripPackageManagerCommands(e);if(t.length>=1&&t[0].trim()!==``){let e=t[0];if(![...this.commands.keys()].includes(e)&&await Ke(e,this.packageManager)){let n=t.slice(1),r=await qe(e,this.packageManager,n);if(r.length>0){Ge(`Returning ${r.length} completions for ${e}`);for(let e of r)if(!e.startsWith(`:`))if(e.includes(` `)){let[t,n]=e.split(` `);console.log(`${t}\t${n}`)}else console.log(e);console.log(`:4`);return}}}return super.parse(e)}};const Q=[`npm`,`pnpm`,`yarn`,`bun`],$=[`zsh`,`bash`,`fish`,`powershell`];async function Ye(){let e=r(`tab`),t=process.argv.slice(2);if(t.length>=2&&t[1]===`complete`){let e=t[0];Q.includes(e)||(console.error(`Error: Unsupported package manager "${e}"`),console.error(`Supported package managers: ${Q.join(`, `)}`),process.exit(1));let n=process.argv.indexOf(`--`);if(n!==-1){let t=new Je(e);await We(e,t);let r=process.argv.slice(n+1);await t.parse(r),process.exit(0)}else console.error(`Error: Expected '--' followed by command to complete`),console.error(`Example: ${e} exec @bomb.sh/tab ${e} complete -- command-to-complete`),process.exit(1)}e.command(`<packageManager> <shell>`,`Generate shell completion script for a package manager`).action(async(e,t)=>{Q.includes(e)||(console.error(`Error: Unsupported package manager "${e}"`),console.error(`Supported package managers: ${Q.join(`, `)}`),process.exit(1)),$.includes(t)||(console.error(`Error: Unsupported shell "${t}"`),console.error(`Supported shells: ${$.join(`, `)}`),process.exit(1)),Xe(e,t)}),n(e),e.parse()}function Xe(e,n){t(n,e,process.env.npm_config_user_agent?`npx --yes @bomb.sh/tab ${e}`:`node ${process.argv[1]} ${e}`)}Ye().catch(console.error);export{};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{generate as e,generate$1 as t,generate$2 as n,generate$3 as r,t_default as i}from"./t-CMPXbmTJ.js";import{assertDoubleDashes as a}from"./shared-CDiJt0Dj.js";const o=process.execPath,s=process.argv.slice(1),c=f(o),l=s.map(f),u=`${c} ${process.execArgv.map(f).join(` `)} ${l[0]}`,d=/<[^>]+>|\[[^\]]+\]/;function f(e){return e.includes(` `)?`'${e}'`:e}async function p(c,l){for(let e of[c.globalCommand,...c.commands]){if(e.name===`complete`)continue;let t=(e.rawName.match(/\[.*?\]|<.*?>/g)||[]).map(e=>e.startsWith(`[`)),n=e.name===`@@global@@`,r=n?l:l?.subCommands?.[e.name],a=n?``:e.name,o=n?i:i.command(a,e.description||``);if(o){let n=(e.rawName.match(/<([^>]+)>|\[\.\.\.([^\]]+)\]/g)||[]).map(e=>e.startsWith(`<`)&&e.endsWith(`>`)?e.slice(1,-1):e.startsWith(`[...`)&&e.endsWith(`]`)?e.slice(4,-1):e);t.forEach((e,t)=>{let i=n[t]||`arg${t}`,a=r?.args?.[i];a?o.argument(i,a,e):o.argument(i,void 0,e)})}for(let t of[...c.globalCommand.options,...e.options]){let e=t.rawName.match(/^-([a-zA-Z]), --/)?.[1],a=t.name,s=n?i:o;if(s){let n=r?.options?.[a],i=t.required||d.test(t.rawName);n?e?s.option(a,t.description||``,n,e):s.option(a,t.description||``,n):i?e?s.option(a,t.description||``,async()=>[],e):s.option(a,t.description||``,async()=>[]):e?s.option(a,t.description||``,e):s.option(a,t.description||``)}}}return c.command(`complete [shell]`).action(async(l,d)=>{switch(l){case`zsh`:{let e=r(c.name,u);console.log(e);break}case`bash`:{let e=n(c.name,u);console.log(e);break}case`fish`:{let e=t(c.name,u);console.log(e);break}case`powershell`:{let t=e(c.name,u);console.log(t);break}default:{a(c.name);let e=d[`--`]||[];return c.showHelpOnExit=!1,c.unsetMatchedCommand(),c.parse([o,s[0],...e],{run:!1}),i.parse(e)}}}),i}export{p as tab};
|
package/dist/cac.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./t-
|
|
1
|
+
import"./t-CMPXbmTJ.js";import"./shared-CDiJt0Dj.js";import{tab as e}from"./cac-BL-zAXTG.js";export{e as default};
|
package/dist/citty.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{generate as e,generate$1 as t,generate$2 as n,generate$3 as r,t_default as i}from"./t-
|
|
1
|
+
import{generate as e,generate$1 as t,generate$2 as n,generate$3 as r,t_default as i}from"./t-CMPXbmTJ.js";import{assertDoubleDashes as a}from"./shared-CDiJt0Dj.js";import{defineCommand as o}from"citty";async function s(e){let t=[],n=[];for(let[r,i]of Object.entries(e))if(i.type===`positional`){let e=i;n.push({name:r,description:e.description,isOptional:!e.required,isVariadic:r.startsWith(`[...`)||r.startsWith(`<...`)})}else{let e={name:`--${r}`,description:i.description||``,isRequired:i.required};`alias`in i&&i.alias&&(Array.isArray(i.alias)?i.alias:[i.alias]).forEach(n=>{t.push({...e,name:`-${n}`})}),t.push(e)}return{options:t,args:n}}async function c(e,t=``){let n=await Promise.resolve(e.meta),r=await Promise.resolve(e.subCommands);if(!n||!n.name)throw Error(`Command meta or name is missing`);let i={name:t?`${t} ${n.name}`:n.name,description:n.description||``};if(e.args){let{options:t,args:n}=await s(await Promise.resolve(e.args));t.length>0&&(i.options=t),n.length>0&&(i.args=n)}return r&&(i.subcommands=await Promise.all(Object.entries(r).map(async([e,t])=>c(await Promise.resolve(t),i.name)))),i}async function l(e){let t=await c(e);return JSON.stringify(t,null,2)}function u(e){return e.includes(` `)?`'${e}'`:e}const d=process.execPath,f=process.argv.slice(1),p=u(d),m=f.map(u),h=`${p} ${process.execArgv.map(u).join(` `)} ${m[0]}`;function g(e){return e.args&&Object.values(e.args).some(e=>e.type===`positional`)}async function _(e,t,n){for(let[r,a]of Object.entries(e)){let e=await y(a),o=await y(e.meta),s=await y(e.subCommands),c=n?.[r];if(!o||typeof o?.description!=`string`)throw Error(`Invalid meta or missing description.`);let l=g(e),u=t?`${t} ${r}`:r,d=i.command(u,o.description);if(l&&e.args)for(let[t,n]of Object.entries(e.args)){let e=n;if(e.type===`positional`){let n=e.required===!1,r=c?.args?.[t];r?d.argument(t,r,n):d.argument(t,void 0,n)}}if(s&&await _(s,u,c?.subCommands),e.args)for(let[t,n]of Object.entries(e.args)){let e=n,r=typeof e==`object`&&`alias`in e?Array.isArray(e.alias)?e.alias[0]:e.alias:void 0,i=c?.options?.[t];i?r?d.option(t,e.description??``,i,r):d.option(t,e.description??``,i):r?d.option(t,e.description??``,r):d.option(t,e.description??``)}}}async function v(s,c){let u=await y(s.meta);if(!u)throw Error(`Invalid meta.`);let d=u.name;if(!d)throw Error(`Invalid meta or missing name.`);let f=await y(s.subCommands);if(g(s)&&s.args)for(let[e,t]of Object.entries(s.args)){let n=t;if(n.type===`positional`){let t=n.required===!1,r=c?.args?.[e];r?i.argument(e,r,t):i.argument(e,void 0,t)}}if(f&&await _(f,void 0,c?.subCommands),s.args)for(let[e,t]of Object.entries(s.args)){let n=t,r=typeof n==`object`&&`alias`in n?Array.isArray(n.alias)?n.alias[0]:n.alias:void 0,a=c?.options?.[e];a?r?i.option(e,n.description??``,a,r):i.option(e,n.description??``,a):r?i.option(e,n.description??``,r):i.option(e,n.description??``)}let p=o({meta:{name:`complete`,description:`Generate shell completion scripts`},args:{shell:{type:`positional`,description:`Shell type (zsh, bash, fish, powershell, fig)`,required:!1}},async run(o){let c=o.rawArgs[0];switch(c===`--`&&(c=void 0),c){case`zsh`:{let e=r(d,h);console.log(e);break}case`bash`:{let e=n(d,h);console.log(e);break}case`fish`:{let e=t(d,h);console.log(e);break}case`powershell`:{let t=e(d,h);console.log(t);break}case`fig`:{let e=await l(s);console.log(e);break}default:{a(d);let e=o.rawArgs.slice(o.rawArgs.indexOf(`--`)+1);return i.parse(e)}}}});return f?f.complete=p:s.subCommands={complete:p},i}async function y(e){return e instanceof Function?await e():await e}export{v as default};
|
package/dist/commander.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{generate as e,generate$1 as t,generate$2 as n,generate$3 as r,t_default as i}from"./t-
|
|
1
|
+
import{generate as e,generate$1 as t,generate$2 as n,generate$3 as r,t_default as i}from"./t-CMPXbmTJ.js";import{assertDoubleDashes as a}from"./shared-CDiJt0Dj.js";const o=process.execPath,s=process.argv.slice(1),c=d(o),l=s.map(d),u=`${c} ${process.execArgv.map(d).join(` `)} ${l[0]}`;function d(e){return e.includes(` `)?`'${e}'`:e}function f(o){let s=o.name();p(o,s),m(o,s),o.command(`complete [shell]`).description(`Generate shell completion scripts`).action(async i=>{switch(i){case`zsh`:{let e=r(s,u);console.log(e);break}case`bash`:{let e=n(s,u);console.log(e);break}case`fish`:{let e=t(s,u);console.log(e);break}case`powershell`:{let t=e(s,u);console.log(t);break}case`debug`:{let e=new Map;h(o,``,e),console.log(`Collected commands:`);for(let[t,n]of e.entries())console.log(`- ${t||`<root>`}: ${n.description()||`No description`}`);break}default:console.error(`Unknown shell: ${i}`),console.error(`Supported shells: zsh, bash, fish, powershell`),process.exit(1)}});let c=o.parse.bind(o);return o.parse=function(e,t){let n=e||process.argv,r=n.findIndex(e=>e===`complete`),l=n.findIndex(e=>e===`--`);if(r!==-1&&l!==-1&&l>r){let e=n.slice(l+1);return a(s),i.parse(e),o}return c(e,t)},i}function p(e,t){for(let t of e.options){let e=t.flags,n=e.match(/^-([a-zA-Z]), --/)?.[1],r=e.match(/--([a-zA-Z0-9-]+)/)?.[1];r&&(n?i.option(r,t.description||``,n):i.option(r,t.description||``))}}function m(e,t){let n=new Map;h(e,``,n);for(let[e,t]of n.entries()){if(e===``)continue;let n=i.command(e,t.description()||``);for(let e of t.options){let t=e.flags,r=t.match(/^-([a-zA-Z]), --/)?.[1],i=t.match(/--([a-zA-Z0-9-]+)/)?.[1];i&&(r?n.option(i,e.description||``,r):n.option(i,e.description||``))}}}function h(e,t,n){n.set(t,e);for(let r of e.commands)r.name()!==`complete`&&h(r,t?`${t} ${r.name()}`:r.name(),n)}export{f as default};
|
|
@@ -212,15 +212,15 @@ _${e}() {
|
|
|
212
212
|
if [ "\${funcstack[1]}" = "_${e}" ]; then
|
|
213
213
|
_${e}
|
|
214
214
|
fi
|
|
215
|
-
`}function n(e,t){let n=e.replace(/[-:]/g,`_`)
|
|
215
|
+
`}function n(e,t){let n=e.replace(/[-:]/g,`_`);return`# bash completion for ${e}
|
|
216
216
|
|
|
217
217
|
# Define shell completion directives
|
|
218
|
-
readonly ShellCompDirectiveError=${
|
|
219
|
-
readonly ShellCompDirectiveNoSpace=${
|
|
220
|
-
readonly ShellCompDirectiveNoFileComp=${
|
|
221
|
-
readonly ShellCompDirectiveFilterFileExt=${
|
|
222
|
-
readonly ShellCompDirectiveFilterDirs=${
|
|
223
|
-
readonly ShellCompDirectiveKeepOrder=${
|
|
218
|
+
readonly ShellCompDirectiveError=${a.ShellCompDirectiveError}
|
|
219
|
+
readonly ShellCompDirectiveNoSpace=${a.ShellCompDirectiveNoSpace}
|
|
220
|
+
readonly ShellCompDirectiveNoFileComp=${a.ShellCompDirectiveNoFileComp}
|
|
221
|
+
readonly ShellCompDirectiveFilterFileExt=${a.ShellCompDirectiveFilterFileExt}
|
|
222
|
+
readonly ShellCompDirectiveFilterDirs=${a.ShellCompDirectiveFilterDirs}
|
|
223
|
+
readonly ShellCompDirectiveKeepOrder=${a.ShellCompDirectiveKeepOrder}
|
|
224
224
|
|
|
225
225
|
# Function to debug completion
|
|
226
226
|
__${n}_debug() {
|
|
@@ -313,15 +313,15 @@ __${n}_complete() {
|
|
|
313
313
|
|
|
314
314
|
# Register completion function
|
|
315
315
|
complete -F __${n}_complete ${e}
|
|
316
|
-
`}function r(e,t){let n=e.replace(/[-:]/g,`_`)
|
|
316
|
+
`}function r(e,t){let n=e.replace(/[-:]/g,`_`);return`# fish completion for ${e} -*- shell-script -*-
|
|
317
317
|
|
|
318
318
|
# Define shell completion directives
|
|
319
|
-
set -l ShellCompDirectiveError ${
|
|
320
|
-
set -l ShellCompDirectiveNoSpace ${
|
|
321
|
-
set -l ShellCompDirectiveNoFileComp ${
|
|
322
|
-
set -l ShellCompDirectiveFilterFileExt ${
|
|
323
|
-
set -l ShellCompDirectiveFilterDirs ${
|
|
324
|
-
set -l ShellCompDirectiveKeepOrder ${
|
|
319
|
+
set -l ShellCompDirectiveError ${a.ShellCompDirectiveError}
|
|
320
|
+
set -l ShellCompDirectiveNoSpace ${a.ShellCompDirectiveNoSpace}
|
|
321
|
+
set -l ShellCompDirectiveNoFileComp ${a.ShellCompDirectiveNoFileComp}
|
|
322
|
+
set -l ShellCompDirectiveFilterFileExt ${a.ShellCompDirectiveFilterFileExt}
|
|
323
|
+
set -l ShellCompDirectiveFilterDirs ${a.ShellCompDirectiveFilterDirs}
|
|
324
|
+
set -l ShellCompDirectiveKeepOrder ${a.ShellCompDirectiveKeepOrder}
|
|
325
325
|
|
|
326
326
|
function __${n}_debug
|
|
327
327
|
set -l file "$BASH_COMP_DEBUG_FILE"
|
|
@@ -462,7 +462,7 @@ end
|
|
|
462
462
|
|
|
463
463
|
# Set up the completion for the ${e} command
|
|
464
464
|
complete -c ${e} -f -a "(eval __${n}_perform_completion)"
|
|
465
|
-
`}function i(e,t,n=!1){let r=e.replace(/[-:]/g,`_`)
|
|
465
|
+
`}function i(e,t,n=!1){let r=e.replace(/[-:]/g,`_`);return`# powershell completion for ${e} -*- shell-script -*-
|
|
466
466
|
|
|
467
467
|
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
|
|
468
468
|
function __${e}_debug {
|
|
@@ -500,12 +500,12 @@ complete -c ${e} -f -a "(eval __${n}_perform_completion)"
|
|
|
500
500
|
}
|
|
501
501
|
__${e}_debug "Truncated command: $Command"
|
|
502
502
|
|
|
503
|
-
$ShellCompDirectiveError=${
|
|
504
|
-
$ShellCompDirectiveNoSpace=${
|
|
505
|
-
$ShellCompDirectiveNoFileComp=${
|
|
506
|
-
$ShellCompDirectiveFilterFileExt=${
|
|
507
|
-
$ShellCompDirectiveFilterDirs=${
|
|
508
|
-
$ShellCompDirectiveKeepOrder=${
|
|
503
|
+
$ShellCompDirectiveError=${a.ShellCompDirectiveError}
|
|
504
|
+
$ShellCompDirectiveNoSpace=${a.ShellCompDirectiveNoSpace}
|
|
505
|
+
$ShellCompDirectiveNoFileComp=${a.ShellCompDirectiveNoFileComp}
|
|
506
|
+
$ShellCompDirectiveFilterFileExt=${a.ShellCompDirectiveFilterFileExt}
|
|
507
|
+
$ShellCompDirectiveFilterDirs=${a.ShellCompDirectiveFilterDirs}
|
|
508
|
+
$ShellCompDirectiveKeepOrder=${a.ShellCompDirectiveKeepOrder}
|
|
509
509
|
|
|
510
510
|
# Prepare the command to request completions for the program.
|
|
511
511
|
# Split the command at the first space to separate the program and arguments.
|
package/dist/t.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Argument as e,Command as t,Option as n,RootCommand as r,ShellCompDirective as i,script as a,t_default as o}from"./t-
|
|
1
|
+
import{Argument as e,Command as t,Option as n,RootCommand as r,ShellCompDirective as i,script as a,t_default as o}from"./t-CMPXbmTJ.js";export{e as Argument,t as Command,n as Option,r as RootCommand,i as ShellCompDirective,o as default,a as script};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bomb.sh/tab",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.7",
|
|
4
4
|
"main": "./dist/t.js",
|
|
5
5
|
"types": "./dist/t.d.ts",
|
|
6
6
|
"type": "module",
|
|
@@ -43,9 +43,6 @@
|
|
|
43
43
|
"typescript-eslint": "^8.40.0",
|
|
44
44
|
"vitest": "^2.1.3"
|
|
45
45
|
},
|
|
46
|
-
"dependencies": {
|
|
47
|
-
"mri": "^1.2.0"
|
|
48
|
-
},
|
|
49
46
|
"peerDependencies": {
|
|
50
47
|
"cac": "^6.7.14",
|
|
51
48
|
"citty": "^0.1.6",
|
package/dist/cac-NlDEuVbb.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{generate as e,generate$1 as t,generate$2 as n,generate$3 as r,t_default as i}from"./t-BDEAdEmc.js";import{assertDoubleDashes as a}from"./shared-CDiJt0Dj.js";const o=process.execPath,s=process.argv.slice(1),c=p(o),l=s.map(p),u=process.execArgv.map(p),d=`${c} ${u.join(` `)} ${l[0]}`,f=/<[^>]+>|\[[^\]]+\]/;function p(e){return e.includes(` `)?`'${e}'`:e}async function m(c,l){for(let e of[c.globalCommand,...c.commands]){if(e.name===`complete`)continue;let t=(e.rawName.match(/\[.*?\]|<.*?>/g)||[]).map(e=>e.startsWith(`[`)),n=e.name===`@@global@@`,r=n?l:l?.subCommands?.[e.name],a=n?``:e.name,o=n?i:i.command(a,e.description||``);if(o){let n=(e.rawName.match(/<([^>]+)>|\[\.\.\.([^\]]+)\]/g)||[]).map(e=>e.startsWith(`<`)&&e.endsWith(`>`)?e.slice(1,-1):e.startsWith(`[...`)&&e.endsWith(`]`)?e.slice(4,-1):e);t.forEach((e,t)=>{let i=n[t]||`arg${t}`,a=r?.args?.[i];a?o.argument(i,a,e):o.argument(i,void 0,e)})}for(let t of[...c.globalCommand.options,...e.options]){let e=t.rawName.match(/^-([a-zA-Z]), --/)?.[1],a=t.name,s=n?i:o;if(s){let n=r?.options?.[a],i=t.required||f.test(t.rawName);n?e?s.option(a,t.description||``,n,e):s.option(a,t.description||``,n):i?e?s.option(a,t.description||``,async()=>[],e):s.option(a,t.description||``,async()=>[]):e?s.option(a,t.description||``,e):s.option(a,t.description||``)}}}return c.command(`complete [shell]`).action(async(l,u)=>{switch(l){case`zsh`:{let e=r(c.name,d);console.log(e);break}case`bash`:{let e=n(c.name,d);console.log(e);break}case`fish`:{let e=t(c.name,d);console.log(e);break}case`powershell`:{let t=e(c.name,d);console.log(t);break}default:{a(c.name);let e=u[`--`]||[];return c.showHelpOnExit=!1,c.unsetMatchedCommand(),c.parse([o,s[0],...e],{run:!1}),i.parse(e)}}}),i}export{m as tab};
|