@bomb.sh/tab 0.0.6 → 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/dist/bin/cli.js +3 -2
- package/package.json +1 -1
package/dist/bin/cli.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
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 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=me(B(e),N);if(!t)return{};let n={};return t.split(`,`).map(e=>e.trim()).filter(e=>e&&I.test(e)).forEach(e=>{n[e]=` `}),n.run=` `,n}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]);t&&a||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=!!c(`${t} ${e} complete --`,{encoding:`utf8`,stdio:[`pipe`,`pipe`,`ignore`],timeout:1e3}).trim();return Z(`${e} supports completions: ${n}`),n}catch(t){return Z(`Error checking completions for ${e}:`,t),!1}}async function qe(e,t,n){try{let r=`${t} ${e} complete -- ${n.map(e=>e.includes(` `)?`"${e}"`:e).join(` `)}`;Z(`Getting completions with command: ${r}`);let i=c(r,{encoding:`utf8`,stdio:[`pipe`,`pipe`,`ignore`],timeout:1e3}).trim().split(`
|
|
4
|
-
`).filter(Boolean)
|
|
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{};
|