ccommand 1.0.76 → 1.0.78

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 (3) hide show
  1. package/dist/cli.js +25 -25
  2. package/dist/index.js +25 -25
  3. package/package.json +2 -2
package/dist/cli.js CHANGED
@@ -1,32 +1,32 @@
1
- "use strict";var Se=Object.create;var ae=Object.defineProperty;var Me=Object.getOwnPropertyDescriptor;var Pe=Object.getOwnPropertyNames;var Ae=Object.getPrototypeOf,Fe=Object.prototype.hasOwnProperty;var J=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Ne=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of Pe(t))!Fe.call(e,s)&&s!==r&&ae(e,s,{get:()=>t[s],enumerable:!(o=Me(t,s))||o.enumerable});return e};var L=(e,t,r)=>(r=e!=null?Se(Ae(e)):{},Ne(t||!e||!e.__esModule?ae(r,"default",{value:e,enumerable:!0}):r,e));var X=J((Ue,ue)=>{"use strict";ue.exports=(e,t=process.argv)=>{let r=e.startsWith("-")?"":e.length===1?"-":"--",o=t.indexOf(r+e),s=t.indexOf("--");return o!==-1&&(s===-1||o<s)}});var me=J((Je,fe)=>{"use strict";var He=require("os"),pe=require("tty"),T=X(),{env:x}=process,v;T("no-color")||T("no-colors")||T("color=false")||T("color=never")?v=0:(T("color")||T("colors")||T("color=true")||T("color=always"))&&(v=1);"FORCE_COLOR"in x&&(x.FORCE_COLOR==="true"?v=1:x.FORCE_COLOR==="false"?v=0:v=x.FORCE_COLOR.length===0?1:Math.min(parseInt(x.FORCE_COLOR,10),3));function Q(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function Z(e,t){if(v===0)return 0;if(T("color=16m")||T("color=full")||T("color=truecolor"))return 3;if(T("color=256"))return 2;if(e&&!t&&v===void 0)return 0;let r=v||0;if(x.TERM==="dumb")return r;if(process.platform==="win32"){let o=He.release().split(".");return Number(o[0])>=10&&Number(o[2])>=10586?Number(o[2])>=14931?3:2:1}if("CI"in x)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(o=>o in x)||x.CI_NAME==="codeship"?1:r;if("TEAMCITY_VERSION"in x)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(x.TEAMCITY_VERSION)?1:0;if(x.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in x){let o=parseInt((x.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(x.TERM_PROGRAM){case"iTerm.app":return o>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(x.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(x.TERM)||"COLORTERM"in x?1:r}function Ve(e){let t=Z(e,e&&e.isTTY);return Q(t)}fe.exports={supportsColor:Ve,stdout:Q(Z(!0,pe.isatty(1))),stderr:Q(Z(!0,pe.isatty(2)))}});var he=J((Xe,ge)=>{"use strict";var Be=me(),S=X();function de(e){if(/^\d{3,4}$/.test(e)){let r=/(\d{1,2})(\d{2})/.exec(e);return{major:0,minor:parseInt(r[1],10),patch:parseInt(r[2],10)}}let t=(e||"").split(".").map(r=>parseInt(r,10));return{major:t[0],minor:t[1],patch:t[2]}}function ee(e){let{env:t}=process;if("FORCE_HYPERLINK"in t)return!(t.FORCE_HYPERLINK.length>0&&parseInt(t.FORCE_HYPERLINK,10)===0);if(S("no-hyperlink")||S("no-hyperlinks")||S("hyperlink=false")||S("hyperlink=never"))return!1;if(S("hyperlink=true")||S("hyperlink=always")||"NETLIFY"in t)return!0;if(!Be.supportsColor(e)||e&&!e.isTTY||process.platform==="win32"||"CI"in t||"TEAMCITY_VERSION"in t)return!1;if("TERM_PROGRAM"in t){let r=de(t.TERM_PROGRAM_VERSION);switch(t.TERM_PROGRAM){case"iTerm.app":return r.major===3?r.minor>=1:r.major>3;case"WezTerm":return r.major>=20200620;case"vscode":return r.major>1||r.major===1&&r.minor>=72}}if("VTE_VERSION"in t){if(t.VTE_VERSION==="0.50.0")return!1;let r=de(t.VTE_VERSION);return r.major>0||r.minor>=50}return!1}ge.exports={supportsHyperlink:ee,stdout:ee(process.stdout),stderr:ee(process.stderr)}});var A=L(require("fs/promises")),q=require("fs"),K=L(require("path")),f=require("lazy-js-utils/node"),Ee=require("lazy-js-utils"),Te=L(require("fast-glob")),a=L(require("@simon_he/colorize"));var p="\x1B[",H="\x1B]",I="\x07",G=";",ce=process.env.TERM_PROGRAM==="Apple_Terminal",c={};c.cursorTo=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");return typeof t!="number"?p+(e+1)+"G":p+(t+1)+";"+(e+1)+"H"};c.cursorMove=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");let r="";return e<0?r+=p+-e+"D":e>0&&(r+=p+e+"C"),t<0?r+=p+-t+"A":t>0&&(r+=p+t+"B"),r};c.cursorUp=(e=1)=>p+e+"A";c.cursorDown=(e=1)=>p+e+"B";c.cursorForward=(e=1)=>p+e+"C";c.cursorBackward=(e=1)=>p+e+"D";c.cursorLeft=p+"G";c.cursorSavePosition=ce?"\x1B7":p+"s";c.cursorRestorePosition=ce?"\x1B8":p+"u";c.cursorGetPosition=p+"6n";c.cursorNextLine=p+"E";c.cursorPrevLine=p+"F";c.cursorHide=p+"?25l";c.cursorShow=p+"?25h";c.eraseLines=e=>{let t="";for(let r=0;r<e;r++)t+=c.eraseLine+(r<e-1?c.cursorUp():"");return e&&(t+=c.cursorLeft),t};c.eraseEndLine=p+"K";c.eraseStartLine=p+"1K";c.eraseLine=p+"2K";c.eraseDown=p+"J";c.eraseUp=p+"1J";c.eraseScreen=p+"2J";c.scrollUp=p+"S";c.scrollDown=p+"T";c.clearScreen="\x1Bc";c.clearTerminal=process.platform==="win32"?`${c.eraseScreen}${p}0f`:`${c.eraseScreen}${p}3J${p}H`;c.beep=I;c.link=(e,t)=>[H,"8",G,G,t,I,e,H,"8",G,G,I].join("");c.image=(e,t={})=>{let r=`${H}1337;File=inline=1`;return t.width&&(r+=`;width=${t.width}`),t.height&&(r+=`;height=${t.height}`),t.preserveAspectRatio===!1&&(r+=";preserveAspectRatio=0"),r+":"+e.toString("base64")+I};c.iTerm={setCwd:(e=process.cwd())=>`${H}50;CurrentDir=${e}${I}`,annotation:(e,t={})=>{let r=`${H}1337;`,o=typeof t.x<"u",s=typeof t.y<"u";if((o||s)&&!(o&&s&&typeof t.length<"u"))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return e=e.replace(/\|/g,""),r+=t.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",t.length>0?r+=(o?[e,t.length,t.x,t.y]:[t.length,e]).join("|"):r+=e,r+I}};var le=c;var W=L(he(),1);function j(e,t,{target:r="stdout",...o}={}){return W.default[r]?le.link(e,t):o.fallback===!1?e:typeof o.fallback=="function"?o.fallback(e,t):`${e} (\u200B${t}\u200B)`}j.isSupported=W.default.stdout;j.stderr=(e,t,r={})=>j(e,t,{target:"stderr",...r});j.stderr.isSupported=W.default.stderr;var te="1.0.76";var V=L(require("@simon_he/colorize")),Y=require("lazy-js-utils/node");var re=console.log;async function $e(e){let{status:t}=await(0,Y.jsShell)("gum -v","pipe");if(t!==0){re((0,V.default)({color:"blue",text:e?"\u6B63\u5728\u4E3A\u60A8\u5B89\u88C5gum...":"install gum..."}));let{status:r}=await(0,Y.jsShell)("brew install gum");if(r!==0){let{status:o}=await(0,Y.jsShell)(`sudo mkdir -p /etc/apt/keyrings
1
+ "use strict";var se=Object.create;var xt=Object.defineProperty;var oe=Object.getOwnPropertyDescriptor;var ie=Object.getOwnPropertyNames;var ae=Object.getPrototypeOf,ce=Object.prototype.hasOwnProperty;var Q=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var le=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of ie(e))!ce.call(t,n)&&n!==r&&xt(t,n,{get:()=>e[n],enumerable:!(s=oe(e,n))||s.enumerable});return t};var k=(t,e,r)=>(r=t!=null?se(ae(t)):{},le(e||!t||!t.__esModule?xt(r,"default",{value:t,enumerable:!0}):r,t));var tt=Q((be,bt)=>{"use strict";bt.exports=(t,e=process.argv)=>{let r=t.startsWith("-")?"":t.length===1?"-":"--",s=e.indexOf(r+t),n=e.indexOf("--");return s!==-1&&(n===-1||s<n)}});var _t=Q((Ee,jt)=>{"use strict";var ue=require("os"),Et=require("tty"),j=tt(),{env:$}=process,S;j("no-color")||j("no-colors")||j("color=false")||j("color=never")?S=0:(j("color")||j("colors")||j("color=true")||j("color=always"))&&(S=1);"FORCE_COLOR"in $&&($.FORCE_COLOR==="true"?S=1:$.FORCE_COLOR==="false"?S=0:S=$.FORCE_COLOR.length===0?1:Math.min(parseInt($.FORCE_COLOR,10),3));function et(t){return t===0?!1:{level:t,hasBasic:!0,has256:t>=2,has16m:t>=3}}function rt(t,e){if(S===0)return 0;if(j("color=16m")||j("color=full")||j("color=truecolor"))return 3;if(j("color=256"))return 2;if(t&&!e&&S===void 0)return 0;let r=S||0;if($.TERM==="dumb")return r;if(process.platform==="win32"){let s=ue.release().split(".");return Number(s[0])>=10&&Number(s[2])>=10586?Number(s[2])>=14931?3:2:1}if("CI"in $)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(s=>s in $)||$.CI_NAME==="codeship"?1:r;if("TEAMCITY_VERSION"in $)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test($.TEAMCITY_VERSION)?1:0;if($.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in $){let s=parseInt(($.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch($.TERM_PROGRAM){case"iTerm.app":return s>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test($.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test($.TERM)||"COLORTERM"in $?1:r}function pe(t){let e=rt(t,t&&t.isTTY);return et(e)}jt.exports={supportsColor:pe,stdout:et(rt(!0,Et.isatty(1))),stderr:et(rt(!0,Et.isatty(2)))}});var Ct=Q((je,Ot)=>{"use strict";var fe=_t(),P=tt();function Tt(t){if(/^\d{3,4}$/.test(t)){let r=/(\d{1,2})(\d{2})/.exec(t);return{major:0,minor:parseInt(r[1],10),patch:parseInt(r[2],10)}}let e=(t||"").split(".").map(r=>parseInt(r,10));return{major:e[0],minor:e[1],patch:e[2]}}function nt(t){let{env:e}=process;if("FORCE_HYPERLINK"in e)return!(e.FORCE_HYPERLINK.length>0&&parseInt(e.FORCE_HYPERLINK,10)===0);if(P("no-hyperlink")||P("no-hyperlinks")||P("hyperlink=false")||P("hyperlink=never"))return!1;if(P("hyperlink=true")||P("hyperlink=always")||"NETLIFY"in e)return!0;if(!fe.supportsColor(t)||t&&!t.isTTY||process.platform==="win32"||"CI"in e||"TEAMCITY_VERSION"in e)return!1;if("TERM_PROGRAM"in e){let r=Tt(e.TERM_PROGRAM_VERSION);switch(e.TERM_PROGRAM){case"iTerm.app":return r.major===3?r.minor>=1:r.major>3;case"WezTerm":return r.major>=20200620;case"vscode":return r.major>1||r.major===1&&r.minor>=72}}if("VTE_VERSION"in e){if(e.VTE_VERSION==="0.50.0")return!1;let r=Tt(e.VTE_VERSION);return r.major>0||r.minor>=50}return!1}Ot.exports={supportsHyperlink:nt,stdout:nt(process.stdout),stderr:nt(process.stderr)}});var Jt=k(require("fs/promises")),gt=require("fs"),Ut=k(require("path")),d=require("lazy-js-utils/node"),p=k(require("@simon_he/colorize"));var u="\x1B[",V="\x1B]",M="\x07",Y=";",Rt=process.env.TERM_PROGRAM==="Apple_Terminal",c={};c.cursorTo=(t,e)=>{if(typeof t!="number")throw new TypeError("The `x` argument is required");return typeof e!="number"?u+(t+1)+"G":u+(e+1)+";"+(t+1)+"H"};c.cursorMove=(t,e)=>{if(typeof t!="number")throw new TypeError("The `x` argument is required");let r="";return t<0?r+=u+-t+"D":t>0&&(r+=u+t+"C"),e<0?r+=u+-e+"A":e>0&&(r+=u+e+"B"),r};c.cursorUp=(t=1)=>u+t+"A";c.cursorDown=(t=1)=>u+t+"B";c.cursorForward=(t=1)=>u+t+"C";c.cursorBackward=(t=1)=>u+t+"D";c.cursorLeft=u+"G";c.cursorSavePosition=Rt?"\x1B7":u+"s";c.cursorRestorePosition=Rt?"\x1B8":u+"u";c.cursorGetPosition=u+"6n";c.cursorNextLine=u+"E";c.cursorPrevLine=u+"F";c.cursorHide=u+"?25l";c.cursorShow=u+"?25h";c.eraseLines=t=>{let e="";for(let r=0;r<t;r++)e+=c.eraseLine+(r<t-1?c.cursorUp():"");return t&&(e+=c.cursorLeft),e};c.eraseEndLine=u+"K";c.eraseStartLine=u+"1K";c.eraseLine=u+"2K";c.eraseDown=u+"J";c.eraseUp=u+"1J";c.eraseScreen=u+"2J";c.scrollUp=u+"S";c.scrollDown=u+"T";c.clearScreen="\x1Bc";c.clearTerminal=process.platform==="win32"?`${c.eraseScreen}${u}0f`:`${c.eraseScreen}${u}3J${u}H`;c.beep=M;c.link=(t,e)=>[V,"8",Y,Y,e,M,t,V,"8",Y,Y,M].join("");c.image=(t,e={})=>{let r=`${V}1337;File=inline=1`;return e.width&&(r+=`;width=${e.width}`),e.height&&(r+=`;height=${e.height}`),e.preserveAspectRatio===!1&&(r+=";preserveAspectRatio=0"),r+":"+t.toString("base64")+M};c.iTerm={setCwd:(t=process.cwd())=>`${V}50;CurrentDir=${t}${M}`,annotation:(t,e={})=>{let r=`${V}1337;`,s=typeof e.x<"u",n=typeof e.y<"u";if((s||n)&&!(s&&n&&typeof e.length<"u"))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return t=t.replace(/\|/g,""),r+=e.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",e.length>0?r+=(s?[t,e.length,e.x,e.y]:[e.length,t]).join("|"):r+=t,r+M}};var kt=c;var q=k(Ct(),1);function T(t,e,{target:r="stdout",...s}={}){return q.default[r]?kt.link(t,e):s.fallback===!1?t:typeof s.fallback=="function"?s.fallback(t,e):`${t} (\u200B${e}\u200B)`}T.isSupported=q.default.stdout;T.stderr=(t,e,r={})=>T(t,e,{target:"stderr",...r});T.stderr.isSupported=q.default.stderr;var st="1.0.78";var W=k(require("@simon_he/colorize")),K=require("lazy-js-utils/node");var ot=console.log;async function St(t){let{status:e}=await(0,K.jsShell)("gum -v","pipe");if(e!==0){ot((0,W.default)({color:"blue",text:t?"\u6B63\u5728\u4E3A\u60A8\u5B89\u88C5gum...":"install gum..."}));let{status:r}=await(0,K.jsShell)("brew install gum");if(r!==0){let{status:s}=await(0,K.jsShell)(`sudo mkdir -p /etc/apt/keyrings
2
2
  curl -fsSL https://repo.charm.sh/apt/gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/charm.gpg
3
3
  echo "deb [signed-by=/etc/apt/keyrings/charm.gpg] https://repo.charm.sh/apt/ * *" | sudo tee /etc/apt/sources.list.d/charm.list
4
- sudo apt update && sudo apt install gum`);if(o!==0){let s=j(e?"gum\u5B98\u7F51\u94FE\u63A5":"the official website of gum","https://github.com/charmbracelet/gum#installation");return re((0,V.default)({color:"red",text:`${e?"gum\u5B89\u88C5\u5931\u8D25,\u4F60\u53EF\u4EE5\u81EA\u884C\u4ECE\u4EE5\u4E0B\u94FE\u63A5\u5B89\u88C5":"gum install error, you can install it yourself through"} ${(0,V.default)({color:"yellow",text:s,bold:!0})}`}))}}re((0,V.default)({color:"green",text:e?"gum\u5B89\u88C5\u6210\u529F \u{1F389}":"gum install successfully \u{1F389}"}))}}var ye=L(require("fs/promises"));function we(e){return new Promise(t=>{ye.default.readFile(e,"utf-8").then(r=>{let o=[];for(let s of r.matchAll(/.PHONY:\s*([\w0-9\-]+)/g)){let l;if(!s||!(l=s[1]))continue;let k=new RegExp(`^${l}:[
4
+ sudo apt update && sudo apt install gum`);if(s!==0){let n=T(t?"gum\u5B98\u7F51\u94FE\u63A5":"the official website of gum","https://github.com/charmbracelet/gum#installation");return ot((0,W.default)({color:"red",text:`${t?"gum\u5B89\u88C5\u5931\u8D25,\u4F60\u53EF\u4EE5\u81EA\u884C\u4ECE\u4EE5\u4E0B\u94FE\u63A5\u5B89\u88C5":"gum install error, you can install it yourself through"} ${(0,W.default)({color:"yellow",text:n,bold:!0})}`}))}}ot((0,W.default)({color:"green",text:t?"gum\u5B89\u88C5\u6210\u529F \u{1F389}":"gum install successfully \u{1F389}"}))}}var vt=k(require("fs/promises"));function It(t){return new Promise(e=>{vt.default.readFile(t,"utf-8").then(r=>{let s=[];for(let n of r.matchAll(/.PHONY:\s*([\w0-9\-]+)/g)){let a;if(!n||!(a=n[1]))continue;let m=new RegExp(`^${a}:[
5
5
  \\s]*([^
6
- \\\\;]+)`,"sm"),b=r.match(k);if(!b)continue;let $=`${b[1].trim()}...`;o.push({name:l,detail:$})}t(o)}).catch(t)})}var Ge=require("yamljs"),P=[],O=null,u=console.log,xe="__ccommand__split",g=process.env.PI_Lang==="zh",D=130,We=g?"\u5DF2\u53D6\u6D88...":"Cancelled...",ke=g?"\u5F53\u524D\u76EE\u5F55\u5E76\u672A\u627E\u5230package.json\u6587\u4EF6":"The current directory and not found package.json file",Re=g?"\u6B63\u5728\u4E3A\u60A8\u6267\u884C...":"is running for you...";async function je(e){await $e(g);let t=g?"\u5F53\u524D\u76EE\u5F55\u4E0D\u5B58\u5728\u4EFB\u4F55\u5B50\u76EE\u5F55":"The current directory does not have any subdirectories",r=g?"\u8FD0\u884C\u6210\u529F":"run successfully",o=g?"\u8FD0\u884C\u5931\u8D25":"run error",s=e?e.replace(/\s+/," ").split(" "):process.argv.slice(2);if(s[0]==="-v"||s[0]==="--version")return u((0,a.default)({text:g?`ccommand \u5F53\u524D\u7248\u672C: ${te}`:`ccommand Version: ${te}`,color:"green"}));if(s[0]==="-h"||s[0]==="--help"){let n=j(g?"\u6253\u5F00\u4E00\u4E2A\u65B0\u7684\u95EE\u9898":"open an issue","https://github.com/Simon-He95/ccommand/issues"),i=j(g?"\u2728\u5E2E\u52A9\u70B9\u4E00\u4E2A\u661F\u661F":"\u2728star it","https://github.com/Simon-He95/ccommand");return u((0,a.default)({color:"white",text:`
7
- ${(0,a.default)({bold:!0,text:"Common Commands:",bgColor:"blue"})}
8
- ${(0,a.default)({text:`- ccommand -v \u67E5\u770B\u5F53\u524D\u7248\u672C
6
+ \\\\;]+)`,"sm"),_=r.match(m);if(!_)continue;let b=`${_[1].trim()}...`;s.push({name:a,detail:b})}e(s)}).catch(e)})}var At=k(require("fs/promises")),D=require("fs"),U=k(require("path")),Nt=require("child_process"),Ht=require("util"),Z=require("lazy-js-utils/node"),G=k(require("@simon_he/colorize"));var lt=k(require("fs/promises")),Pt=require("fs"),Ft=k(require("@simon_he/colorize"));var Lt=k(require("@simon_he/colorize")),l=console.log,it="__ccommand__split",f=process.env.PI_Lang==="zh",B=130,Mt=f?"\u5DF2\u53D6\u6D88...":"Cancelled...",at=f?"\u5F53\u524D\u76EE\u5F55\u5E76\u672A\u627E\u5230package.json\u6587\u4EF6":"The current directory and not found package.json file",ct=f?"\u6B63\u5728\u4E3A\u60A8\u6267\u884C...":"is running for you...";function F(){return l((0,Lt.default)({color:"yellow",text:Mt})),process.exit()}async function A(t){l((0,Ft.default)({text:`${f?"\u5FEB\u6377\u6307\u4EE4":"shortcut command"}: ${t}`,color:"blue",bold:!0}));let e=`${process.env.HOME}/.zsh_history`;try{if(!(0,Pt.existsSync)(e))return;let r=await lt.default.readFile(e,"utf8"),n=new Date().getTime()/1e3,a=`${r}: ${n.toFixed(0)}:0;${t}
7
+ `,m=[];a.split(`
8
+ `).forEach(b=>{let w=b.split(";").slice(1).join(";"),C=m.findIndex(H=>H.split(";").slice(1).join(";")===w);C!==-1&&m.splice(C,1),m.push(b)});let _=m.join(`
9
+ `);await lt.default.writeFile(e,_)}catch{}}var de=(0,Ht.promisify)(Nt.exec),J={};async function ut(t){if(J[t]!==void 0)return J[t];try{return await de(`which ${t}`),J[t]=!0,!0}catch{return J[t]=!1,!1}}var O=null;async function ge(){return O!==null||(await ut("bun")?O="bun":await ut("esno")?O="esno":await ut("tsx")?O="tsx":O=null),O}async function zt(t,e,r,s){await A(`prun ${t}`);let{status:n}=await(0,Z.jsShell)(e,{errorExit:!1,isLog:!1,stdio:"inherit"});l((0,G.default)({color:n===0?"green":"red",text:`
10
+ "prun ${t}" ${n===0?r:s} ${n===0?"\u{1F389}":"\u274C"}`}))}async function pt(t,e,r){let s=U.default.extname(t),n="node";if(s===".ts")if(O===null&&await ge(),O)n=O;else{l((0,G.default)({text:f?`\u6CA1\u6709\u627E\u5230\u53EF\u4EE5\u76F4\u63A5\u6267\u884CTypeScript\u7684\u5DE5\u5177\uFF0C\u63A8\u8350\u5B89\u88C5\u4E0B\u5217\u5DE5\u5177\u4E4B\u4E00\uFF1A
11
+ - npm install -g bun
12
+ - npm install -g esno
13
+ - npm install -g tsx`:`No TypeScript executor found. Recommend installing one of:
14
+ - npm install -g bun
15
+ - npm install -g esno
16
+ - npm install -g tsx`,color:"yellow"}));return}let a=`${n} ${t}`;await zt(t,a,e,r)}async function Vt(t,e,r){let s=[".js",".ts",".mjs",".cjs"],n=U.default.extname(t);if(n&&s.includes(n)&&(0,D.existsSync)(t))return await pt(t,e,r),!0;if(!n)for(let a of s){let m=`${t}${a}`;if((0,D.existsSync)(m))return await pt(m,e,r),!0}if((0,D.existsSync)(t)&&(await At.default.stat(t)).isDirectory())for(let a of s){let m=U.default.join(t,`index${a}`);if((0,D.existsSync)(m))return await pt(m,e,r),!0}return!1}async function Wt(t,e,r){t.endsWith(".py")?await zt(t,`python ${t}`,e,r):t.endsWith(".rs")&&((await(0,Z.jsShell)(`rustc ${t}`)).status===0?(await A(`prun ${t}`),await(0,Z.jsShell)(`./${t.slice(0,t.length-3)}`,"inherit"),l((0,G.default)({color:"green",text:`
17
+ "prun ${t}" ${e} \u{1F389}`}))):l((0,G.default)({color:"red",text:`
18
+ command "prun ${t}" ${r} \u274C`})))}var Bt=k(require("fs/promises")),ft=k(require("path")),Dt=require("lazy-js-utils/node"),Gt=require("lazy-js-utils"),Yt=k(require("fast-glob")),he=require("yamljs"),L=[],I=null;async function ye(t){let e=t==="pnpm"?ft.default.resolve(process.cwd(),"pnpm-workspace.yaml"):ft.default.resolve(process.cwd(),"package.json");try{return await Bt.default.readFile(e,"utf-8")}catch{return""}}function $e(t,e){if(t==="pnpm")return he.parse(e)?.packages||[];{let r=JSON.parse(e)?.workspaces;return(0,Gt.isPlainObject)(r)?r?.packages||[]:r||[]}}async function we(t){if(!t.length)return{};let e=await(0,Yt.default)(t.map(s=>`${s}/package.json`),{dot:!0,ignore:["**/node_modules/**"]});return(await Promise.all(e.map(async s=>{let n=await(0,Dt.getPkg)(s);if(!n)return null;let{name:a,scripts:m}=n;return{name:a,scripts:m}}))).reduce((s,n)=>(!n||!n.name||!n.scripts||(s[n.name]=Object.keys(n.scripts).reduce((a,m)=>(m.startsWith("//")||(a[m]=n.scripts[m]),a),{})),s),{})}async function xe(t){if(I)return I;let e=await ye(t),r=$e(t,e);return I=await we(r)||{},L=Object.keys(I).filter(s=>I[s]&&Object.keys(I[s]).length),I}async function N(t){return xe(t)}var qt=k(require("@simon_he/colorize"));function Kt(t){let e=t[0];return e?e.startsWith("--")?["","",t.join(" ")]:t[1]&&t[1].startsWith("--")?[e,"",t.slice(1).join(" ")]:[e,t[1],t.slice(2).join(" ")]:["","",""]}function mt(t,e){let r=Object.keys(t),s=r.find(n=>n.startsWith(e));if(s)return s;try{let n=new RegExp(e.split("").join("[_-\\w$.:]*"));return r.find(a=>n.test(a))}catch(n){l((0,qt.default)({text:`${f?"\u6B63\u5219\u9519\u8BEF":"RegExp error"}: ${n}`,color:"red"})),process.exit(1)}}var dt=null;async function Zt(t){await St(f);let e=f?"\u5F53\u524D\u76EE\u5F55\u4E0D\u5B58\u5728\u4EFB\u4F55\u5B50\u76EE\u5F55":"The current directory does not have any subdirectories",r=f?"\u8FD0\u884C\u6210\u529F":"run successfully",s=f?"\u8FD0\u884C\u5931\u8D25":"run error",n=t?t.replace(/\s+/," ").split(" "):process.argv.slice(2);if(n[0]==="-v"||n[0]==="--version")return l((0,p.default)({text:f?`ccommand \u5F53\u524D\u7248\u672C: ${st}`:`ccommand Version: ${st}`,color:"green"}));if(n[0]==="-h"||n[0]==="--help"){let i=T(f?"\u6253\u5F00\u4E00\u4E2A\u65B0\u7684\u95EE\u9898":"open an issue","https://github.com/Simon-He95/ccommand/issues"),o=T(f?"\u2728\u5E2E\u52A9\u70B9\u4E00\u4E2A\u661F\u661F":"\u2728star it","https://github.com/Simon-He95/ccommand");return l((0,p.default)({color:"white",text:`
19
+ ${(0,p.default)({bold:!0,text:"Common Commands:",bgColor:"blue"})}
20
+ ${(0,p.default)({text:`- ccommand -v \u67E5\u770B\u5F53\u524D\u7248\u672C
9
21
  - ccommand -help \u67E5\u770B\u5E2E\u52A9
10
22
  - ccommand \u6267\u884C\u5F53\u524Dpackage.json
11
23
  - ccommand find \u67E5\u627E\u5F53\u524Dworkspace\u7684\u6240\u6709\u76EE\u5F55
12
24
  `,color:"cyan"})}
13
- If you encounter any problems, you can ${(0,a.default)({color:"magenta",text:n})}.
14
- If you like it, please ${(0,a.default)({text:i,bold:!0,color:"cyan"})} `}))}else if(s[0]?.endsWith(".rs")){let n=s[0];(await(0,f.jsShell)(`rustc ${n}`)).status===0?(await M(`prun ${n}`),await(0,f.jsShell)(`./${n.slice(0,n.length-3)}`,"inherit"),u((0,a.default)({color:"green",text:`
15
- "prun ${n}" ${r} \u{1F389}`}))):u((0,a.default)({color:"red",text:`
16
- command ${(0,a.default)({bold:!0,color:"cyan",text:`"prun ${n}"`})} ${o} \u274C`}));return}else if(s[0]?.endsWith(".py")){let n=s[0];await M(`prun ${n}`);let{status:i}=await(0,f.jsShell)(`python ${n}`,{errorExit:!1,isLog:!1,stdio:"inherit"});u(i===0?(0,a.default)({color:"green",text:`
17
- "prun ${n}" ${r} \u{1F389}`}):(0,a.default)({color:"red",text:`
18
- command ${(0,a.default)({bold:!0,color:"cyan",text:`"prun ${n}"`})} ${o} \u274C`}));return}let l;try{l=await(0,f.getPkgTool)()}catch{try{if(await A.default.readFile(K.default.resolve(process.cwd(),"./Makefile"),"utf-8")){l="make";let d=await we("./Makefile"),m=d.reduce((h,w)=>{let{name:C,detail:N}=w;return h[C]=N,h},{}),y="";if(e)y=be(m,e);else{let{result:h,status:w}=await(0,f.jsShell)(`echo "${d.map(C=>C.name).join(`
19
- `)}" | gum filter --placeholder=" \u{1F914}\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u6307\u4EE4"`,"pipe");if(w===D)return z();y=h}await U(y.trim(),"");return}else return u((0,a.default)({color:"red",text:ke}))}catch{if(s[0]!=="find")return u((0,a.default)({color:"red",text:ke}))}}let[k,b,$]=Ye(s),R=k,_;if(s[0]==="find"){if(b)await B(l),R=P.filter(n=>n.includes(b))[0];else if(l==="yarn"){if(await B(l),!P.length)return u((0,a.default)({color:"yellow",text:t}));let{result:n,status:i}=await(0,f.jsShell)(`echo ${P.join(",")} | sed "s/,/\\n/g" | gum filter --placeholder=" \u{1F914}${g?"\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u76EE\u5F55":"Please select a directory to execute"}"`,["inherit","pipe","inherit"]);if(R=n,i===D)return z()}else if(l==="pnpm"){if(await B(l),!P.length)return u((0,a.default)({color:"yellow",text:t}));let{result:n,status:i}=await(0,f.jsShell)(`echo ${P.join(",")} | sed "s/,/\\n/g" | gum filter --placeholder=" \u{1F914}${g?"\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u76EE\u5F55":"Please select a directory to execute"}"`,{stdio:"pipe",isLog:!0});if(i===D)return z();R=n.trim()}else return u((0,a.default)({color:"red",text:g?"find\u6307\u4EE4\u53EA\u80FD\u652F\u6301\u5728yarn\u6216pnpm\u7684monorepo\u6A21\u5F0F\u4E0B\u4F7F\u7528":"find command only support yarn or pnpm"}));_=await oe()}else if(_=await oe(),k&&O&&!O[k]||!O)try{let n=(await(0,f.getPkg)("./package.json")||{})?.scripts;if(n&&n[s[0]]){await U(s[0],s.slice(1).join(" "));return}else if(n&&k){let i=be(n,s[0]);if(i){let d=s.slice(1).join(" ");await U(i,d);return}else{let d=`${k}.py`;if((0,q.existsSync)(d)){u((0,a.default)({text:`\u{1F914} ${g?"\u627E\u5230Python\u6587\u4EF6":"Found Python file"}: ${d}`,color:"yellow"})),await M(`prun ${d}`);let{status:y}=await(0,f.jsShell)(`python ${d}`,{errorExit:!1,isLog:!1,stdio:"inherit"});u(y===0?(0,a.default)({color:"green",text:`
20
- "prun ${d}" ${r} \u{1F389}`}):(0,a.default)({color:"red",text:`
21
- command ${(0,a.default)({bold:!0,color:"cyan",text:`"prun ${d}"`})} ${o} \u274C`}));return}let m=`${k}.rs`;if((0,q.existsSync)(m)){u((0,a.default)({text:`\u{1F914} ${g?"\u627E\u5230Rust\u6587\u4EF6":"Found Rust file"}: ${m}`,color:"yellow"})),await M(`prun ${m}`);let{status:y}=await(0,f.jsShell)(`rustc ${m}`,{errorExit:!1,isLog:!1,stdio:"inherit"});if(y===0){let{status:h}=await(0,f.jsShell)(`./${s[0]}`,{errorExit:!1,isLog:!1,stdio:"inherit"});u(h===0?(0,a.default)({color:"green",text:`
22
- "prun ${m}" ${r} \u{1F389}`}):(0,a.default)({color:"red",text:`
23
- command ${(0,a.default)({bold:!0,color:"cyan",text:`"prun ${m}"`})} ${o} \u274C`}))}else u((0,a.default)({color:"red",text:`
24
- command ${(0,a.default)({bold:!0,color:"cyan",text:`"prun ${m}"`})} ${o} \u274C`}));return}u((0,a.default)({color:"red",text:`"${s[0]}" ${g?"\u5728\u5DE5\u4F5C\u533A\u3001\u5F53\u524D\u76EE\u5F55\u4E2D\u627E\u4E0D\u5230\u4EFB\u4F55\u53EF\u6267\u884C\u7684\u811A\u672C,\u8BF7\u68C0\u67E5":"is not found in workspace, current directory or current scripts, please check"}`})),process.exit(1)}}}catch{}if(!_)return u((0,a.default)({color:"red",text:g?"\u627E\u4E0D\u5230\u4EFB\u4F55\u53EF\u6267\u884C\u811A\u672C":"No scripts found"}));let F=[],E="";if(!b||s[0]==="find"&&(!s[2]||s[2].startsWith("--"))){let n=Object.keys(_).reduce((m,y)=>{let h=_[y];return F.push(y),m+=`"${y}: ${h.replace(/\\/g,"\\\\").replace(/(["`])/g,"\\$1")}"${xe}`,m},""),{result:i,status:d}=await(0,f.jsShell)(`echo ${n} | sed "s/${xe}/\\n/g" | gum filter --placeholder=" \u{1F914}\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u6307\u4EE4"`,{stdio:["inherit","pipe","inherit"],isLog:!1});if(d===D)return z();E=i.substring(0,i.indexOf(": "))}if(!b&&!E)return z();u((0,a.default)({text:`\u{1F914} ${Re} ${E}`,color:"magenta"}));let[Oe,ne]=await Le(),_e=Oe.replace(/\s+/g," "),{status:ve,result:Ce=""}=await(0,f.jsShell)(_e,{errorExit:!1,stdio:"inherit"});if(ve===0)return u((0,a.default)({color:"green",text:`
25
- ${ne} \u{1F389}`}));if(Ce.includes("pnpm versions with respective Node.js version support")){u((0,a.default)({text:g?"\u6B63\u5728\u5C1D\u8BD5\u4F7F\u7528 npm \u518D\u6B21\u6267\u884C...":"Trying to use npm to run again...",color:"yellow"}));let{status:n}=await(0,f.jsShell)(`npm run ${E}${$?` -- ${$}`:""}`,"inherit");if(n===0)return u((0,a.default)({color:"green",text:`
26
- ${ne} \u{1F389}`}))}u((0,a.default)({color:"red",text:`
27
- command '${E}' ${o} \u274C`}));function se(n){return F.find(i=>i===n)??F.find(i=>n.startsWith(i))}async function Le(){let n="",i="",d=l!=="yarn";l==="npm"?(i=$?` -- ${$}`:"",n=R?` --prefix ${R} `:" "):l==="pnpm"?(i=$?` ${$}`:"",n=R?` --filter ${R} `:" "):l==="yarn"?(i=$?` ${$}`:"",n=R?` workspace ${R} `:" "):l==="bun"&&(i=$?` ${$}`:"",n="");let m="",y="";if(i&&!i.startsWith(" --")){let ie=i.split(" ").filter(Boolean);m=ie[0],i=ie.slice(1).join(" ")}let h=`${l}${d?" run":" "}${n} ${m||(E?se(E)||E:b)} ${Ie(i)?`-- ${i}`:i}`;E=`${m||(E?se(E):b)}`,s[0]==="find"?y=`pfind ${R} ${E} ${i}`.replace(/\s+/g," ").trim():y=`prun ${E} ${i}`.replace(/\s+/g," ").trim(),await M(y);let w=y.split(" "),C=w.slice(-1)[0];w[w.length-1]=`'${C}'`;let N=w.join(" ");return[h,N]}async function oe(){try{if(!R||l==="bun"||l==="npm")return(await(0,f.getPkg)("./package.json"))?.scripts;if(l==="pnpm")return(await B(l))[R]||(await(0,f.getPkg)(`${R}/package.json`))?.scripts;if(l==="yarn")return(await B(l))[R]||(await(0,f.getPkg)(`${R}/package.json`))?.scripts}catch{}}function Ie(n){return s[0]==="find",s[1]&&n}async function U(n,i){let d,m="",y=s[0]?.trim();switch(n&&y&&y!==n?u((0,a.default)({text:`\u{1F914} ${(0,a.default)({text:`'${s[0]}'`,color:"cyan"})} ${g?"\u81EA\u52A8\u7684\u4E3A\u60A8\u5339\u914D\u6210":"automatically match for you to"} ${(0,a.default)({text:`'${n}${i?` ${i}`:""}'`,color:"cyan"})} `,color:"yellow"})):n&&u((0,a.default)({text:`\u{1F914} ${Re} ${n}`,color:"magenta"})),l){case"npm":{let{status:h,result:w}=await(0,f.jsShell)(`npm run ${n}${i?` -- ${i}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});d=h,m=w;break}case"pnpm":{let{status:h,result:w=""}=await(0,f.jsShell)(`pnpm run ${n}${i?` ${i}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});if(m=w,d=h,m.includes("pnpm versions with respective Node.js version support")){u((0,a.default)({text:g?"\u6B63\u5728\u5C1D\u8BD5\u4F7F\u7528 npm \u518D\u6B21\u6267\u884C...":"Trying to use npm to run again...",color:"yellow"}));let{status:C,result:N}=await(0,f.jsShell)(`npm run ${n}${i?` -- ${i}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});d=C,m=N}break}case"yarn":{let{status:h,result:w}=await(0,f.jsShell)(`yarn ${n}${i?` ${i}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});d=h,m=w;break}case"bun":{let{status:h,result:w}=await(0,f.jsShell)(`bun run ${n} ${i}`,{errorExit:!1,isLog:!1,stdio:"inherit"});d=h,m=w;break}case"make":{let{status:h,result:w}=await(0,f.jsShell)(`make ${n} ${i}`,{errorExit:!1,isLog:!1,stdio:"inherit"});d=h,m=w;break}}return d===0?(await M(`prun ${n}${i?` ${i}`:""}`),u((0,a.default)({color:"green",text:`
28
- prun '${n}${i?` ${i}`:""}' ${r} \u{1F389}`}))):u((0,a.default)({color:"red",text:`
29
- command ${(0,a.default)({bold:!0,color:"cyan",text:`'${n||s[0]}${i?` ${i}`:""}'`})} ${o} \u274C`}))}}async function B(e){if(O)return O;let t="";try{t=e==="pnpm"?await A.default.readFile(K.default.resolve(process.cwd(),"pnpm-workspace.yaml"),"utf-8"):await A.default.readFile(K.default.resolve(process.cwd(),"package.json"),"utf-8")}catch{}let r;if(e==="pnpm")r=Ge.parse(t)?.packages||[];else{let o=JSON.parse(t)?.workspaces;(0,Ee.isPlainObject)(o)?r=o?.packages:r=o||[]}return O=await De(r)||{},P=Object.keys(O).filter(o=>O[o]&&Object.keys(O[o]).length),O}function Ye(e){let t=e[0];return t?t.startsWith("--")?["","",e.join(" ")]:e[1]&&e[1].startsWith("--")?[t,"",e.slice(1).join(" ")]:[t,e[1],e.slice(2).join(" ")]:["","",""]}async function De(e){if(!e.length)return;let t=await(0,Te.default)(e.map(r=>`${r}/package.json`),{dot:!0,ignore:["**/node_modules/**"]});return Promise.all(t.map(async r=>{let o=await(0,f.getPkg)(r);if(!o)return;let{name:s,scripts:l}=o;return{name:s,scripts:l}})).then(r=>r.reduce((o,s)=>{let{name:l,scripts:k}=s;return!l||!k||(o[l]=Object.keys(k).reduce((b,$)=>($.startsWith("//")||(b[$]=k[$]),b),{})),o},{}))}function be(e,t){let r=Object.keys(e),o=r.find(s=>s.startsWith(t));if(o)return o;try{let s=new RegExp(t.split("").join("[_-\\w$.:]*"));return r.find(l=>s.test(l))}catch(s){u((0,a.default)({text:`${g?"\u6B63\u5219\u9519\u8BEF":"RegExp error"}: ${s}`,color:"red"})),process.exit(1)}}function z(){return u((0,a.default)({color:"yellow",text:We})),process.exit()}async function M(e){u((0,a.default)({text:`${g?"\u5FEB\u6377\u6307\u4EE4":"shortcut command"}: ${e}`,color:"blue",bold:!0}));let t=`${process.env.HOME}/.zsh_history`;try{if(!(0,q.existsSync)(t))return;let r=await A.default.readFile(t,"utf8"),s=new Date().getTime()/1e3,l=`${r}: ${s.toFixed(0)}:0;${e}
30
- `,k=[];l.split(`
31
- `).forEach($=>{let R=$.split(";").slice(1).join(";"),_=k.findIndex(F=>F.split(";").slice(1).join(";")===R);_!==-1&&k.splice(_,1),k.push($)});let b=k.join(`
32
- `);await A.default.writeFile(t,b)}catch{}}je();
25
+ If you encounter any problems, you can ${(0,p.default)({color:"magenta",text:i})}.
26
+ If you like it, please ${(0,p.default)({text:o,bold:!0,color:"cyan"})} `}))}else if(n[0]?.endsWith(".py")||n[0]?.endsWith(".rs")){await Wt(n[0],r,s);return}let a;try{a=await(0,d.getPkgTool)()}catch{try{if(await Jt.default.readFile(Ut.default.resolve(process.cwd(),"./Makefile"),"utf-8")){a="make";let x=await It("./Makefile"),g=x.reduce((h,y)=>{let{name:v,detail:z}=y;return h[v]=z,h},{}),R="";if(t)R=mt(g,t);else{let{result:h,status:y}=await(0,d.jsShell)(`echo "${x.map(v=>v.name).join(`
27
+ `)}" | gum filter --placeholder=" \u{1F914}\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u6307\u4EE4"`,"pipe");if(y===B)return F();R=h}await X(R.trim(),"");return}else return l((0,p.default)({color:"red",text:at}))}catch{if(n[0]!=="find")return l((0,p.default)({color:"red",text:at}))}}let[m,_,b]=Kt(n),w=m,C;if(n[0]==="find"){if(_)await N(a),w=L.filter(i=>i.includes(_))[0];else if(a==="yarn"){if(await N(a),!L.length)return l((0,p.default)({color:"yellow",text:e}));let{result:i,status:o}=await(0,d.jsShell)(`echo ${L.join(",")} | sed "s/,/\\n/g" | gum filter --placeholder=" \u{1F914}${f?"\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u76EE\u5F55":"Please select a directory to execute"}"`,["inherit","pipe","inherit"]);if(w=i,o===B)return F()}else if(a==="pnpm"){if(await N(a),!L.length)return l((0,p.default)({color:"yellow",text:e}));let{result:i,status:o}=await(0,d.jsShell)(`echo ${L.join(",")} | sed "s/,/\\n/g" | gum filter --placeholder=" \u{1F914}${f?"\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u76EE\u5F55":"Please select a directory to execute"}"`,["inherit","pipe","inherit"]);if(o===B)return F();w=i.trim()}else return l((0,p.default)({color:"red",text:f?"find\u6307\u4EE4\u53EA\u80FD\u652F\u6301\u5728yarn\u6216pnpm\u7684monorepo\u6A21\u5F0F\u4E0B\u4F7F\u7528":"find command only support yarn or pnpm"}));C=await $t()}else if(C=await $t(),m&&dt&&!dt[m]||!dt)try{let i=(await(0,d.getPkg)("./package.json")||{})?.scripts;if(i&&i[n[0]]){await X(n[0],n.slice(1).join(" "));return}else if(i&&m){let o=mt(i,n[0]);if(o){let x=n.slice(1).join(" ");await X(o,x);return}else{if(await Vt(n[0],r,s))return;let g=`${m}.py`;if((0,gt.existsSync)(g)){l((0,p.default)({text:`\u{1F914} ${f?"\u627E\u5230Python\u6587\u4EF6":"Found Python file"}: ${g}`,color:"yellow"}));return}let R=`${m}.rs`;if((0,gt.existsSync)(R))return;l((0,p.default)({color:"red",text:`"${n[0]}" ${f?"\u5728\u5DE5\u4F5C\u533A\u3001\u5F53\u524D\u76EE\u5F55\u4E2D\u627E\u4E0D\u5230\u4EFB\u4F55\u53EF\u6267\u884C\u7684\u811A\u672C\u6216\u6587\u4EF6\uFF0C\u8BF7\u68C0\u67E5":"is not found in workspace, current directory or current scripts, please check"}`})),process.exit(1)}}}catch{}if(!C)return l((0,p.default)({color:"red",text:f?"\u627E\u4E0D\u5230\u4EFB\u4F55\u53EF\u6267\u884C\u811A\u672C":"No scripts found"}));let H=[],E="";if(!_||n[0]==="find"&&(!n[2]||n[2].startsWith("--"))){let i=Object.keys(C).reduce((g,R)=>{let h=C[R];return H.push(R),g+=`"${R}: ${h.replace(/\\/g,"\\\\").replace(/(["`])/g,"\\$1")}"${it}`,g},""),{result:o,status:x}=await(0,d.jsShell)(`echo ${i} | sed "s/${it}/\\n/g" | gum filter --placeholder=" \u{1F914}\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u6307\u4EE4"`,{stdio:["inherit","pipe","inherit"],isLog:!1});if(x===B)return F();E=o.substring(0,o.indexOf(": "))}if(!_&&!E)return F();l((0,p.default)({text:`\u{1F914} ${ct} ${E}`,color:"magenta"}));let[Xt,ht]=await re(),Qt=Xt.replace(/\s+/g," "),{status:te,result:ee=""}=await(0,d.jsShell)(Qt,{errorExit:!1,stdio:"inherit"});if(te===0)return l((0,p.default)({color:"green",text:`
28
+ ${ht} \u{1F389}`}));if(ee.includes("pnpm versions with respective Node.js version support")){l((0,p.default)({text:f?"\u6B63\u5728\u5C1D\u8BD5\u4F7F\u7528 npm \u518D\u6B21\u6267\u884C...":"Trying to use npm to run again...",color:"yellow"}));let{status:i}=await(0,d.jsShell)(`npm run ${E}${b?` -- ${b}`:""}`,"inherit");if(i===0)return l((0,p.default)({color:"green",text:`
29
+ ${ht} \u{1F389}`}))}l((0,p.default)({color:"red",text:`
30
+ command '${E}' ${s} \u274C`}));function yt(i){return H.find(o=>o===i)??H.find(o=>i.startsWith(o))}async function re(){let i="",o="",x=a!=="yarn";a==="npm"?(o=b?` -- ${b}`:"",i=w?` --prefix ${w} `:" "):a==="pnpm"?(o=b?` ${b}`:"",i=w?` --filter ${w} `:" "):a==="yarn"?(o=b?` ${b}`:"",i=w?` workspace ${w} `:" "):a==="bun"&&(o=b?` ${b}`:"",i="");let g="",R="";if(o&&!o.startsWith(" --")){let wt=o.split(" ").filter(Boolean);g=wt[0],o=wt.slice(1).join(" ")}let h=`${a}${x?" run":" "}${i} ${g||(E?yt(E)||E:_)} ${ne(o)?`-- ${o}`:o}`;E=`${g||(E?yt(E):_)}`,n[0]==="find"?R=`pfind ${w} ${E} ${o}`.replace(/\s+/g," ").trim():R=`prun ${E} ${o}`.replace(/\s+/g," ").trim(),await A(R);let y=R.split(" "),v=y.slice(-1)[0];y[y.length-1]=`'${v}'`;let z=y.join(" ");return[h,z]}async function $t(){try{if(!w||a==="bun"||a==="npm")return(await(0,d.getPkg)("./package.json"))?.scripts;if(a==="pnpm")return(await N(a))[w]||(await(0,d.getPkg)(`${w}/package.json`))?.scripts;if(a==="yarn")return(await N(a))[w]||(await(0,d.getPkg)(`${w}/package.json`))?.scripts}catch{}}function ne(i){return n[0]==="find",n[1]&&i}async function X(i,o){let x,g="",R=n[0]?.trim();switch(i&&R&&R!==i?l((0,p.default)({text:`\u{1F914} ${(0,p.default)({text:`'${n[0]}'`,color:"cyan"})} ${f?"\u81EA\u52A8\u7684\u4E3A\u60A8\u5339\u914D\u6210":"automatically match for you to"} ${(0,p.default)({text:`'${i}${o?` ${o}`:""}'`,color:"cyan"})} `,color:"yellow"})):i&&l((0,p.default)({text:`\u{1F914} ${ct} ${i}`,color:"magenta"})),a){case"npm":{let{status:h,result:y}=await(0,d.jsShell)(`npm run ${i}${o?` -- ${o}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});x=h,g=y;break}case"pnpm":{let{status:h,result:y=""}=await(0,d.jsShell)(`pnpm run ${i}${o?` ${o}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});if(g=y,x=h,g.includes("pnpm versions with respective Node.js version support")){l((0,p.default)({text:f?"\u6B63\u5728\u5C1D\u8BD5\u4F7F\u7528 npm \u518D\u6B21\u6267\u884C...":"Trying to use npm to run again...",color:"yellow"}));let{status:v,result:z}=await(0,d.jsShell)(`npm run ${i}${o?` -- ${o}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});x=v,g=z}break}case"yarn":{let{status:h,result:y}=await(0,d.jsShell)(`yarn ${i}${o?` ${o}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});x=h,g=y;break}case"bun":{let{status:h,result:y}=await(0,d.jsShell)(`bun run ${i} ${o}`,{errorExit:!1,isLog:!1,stdio:"inherit"});x=h,g=y;break}case"make":{let{status:h,result:y}=await(0,d.jsShell)(`make ${i} ${o}`,{errorExit:!1,isLog:!1,stdio:"inherit"});x=h,g=y;break}}return x===0?(await A(`prun ${i}${o?` ${o}`:""}`),l((0,p.default)({color:"green",text:`
31
+ prun '${i}${o?` ${o}`:""}' ${r} \u{1F389}`}))):l((0,p.default)({color:"red",text:`
32
+ command ${(0,p.default)({bold:!0,color:"cyan",text:`'${i||n[0]}${o?` ${o}`:""}'`})} ${s} \u274C`}))}}Zt();
package/dist/index.js CHANGED
@@ -1,32 +1,32 @@
1
- "use strict";var Me=Object.create;var G=Object.defineProperty;var Pe=Object.getOwnPropertyDescriptor;var Ae=Object.getOwnPropertyNames;var Fe=Object.getPrototypeOf,Ne=Object.prototype.hasOwnProperty;var X=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),He=(e,t)=>{for(var r in t)G(e,r,{get:t[r],enumerable:!0})},ce=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of Ae(t))!Ne.call(e,s)&&s!==r&&G(e,s,{get:()=>t[s],enumerable:!(o=Pe(t,s))||o.enumerable});return e};var L=(e,t,r)=>(r=e!=null?Me(Fe(e)):{},ce(t||!e||!e.__esModule?G(r,"default",{value:e,enumerable:!0}):r,e)),Ve=e=>ce(G({},"__esModule",{value:!0}),e);var Q=X((Qe,pe)=>{"use strict";pe.exports=(e,t=process.argv)=>{let r=e.startsWith("-")?"":e.length===1?"-":"--",o=t.indexOf(r+e),s=t.indexOf("--");return o!==-1&&(s===-1||o<s)}});var de=X((Ze,me)=>{"use strict";var Be=require("os"),fe=require("tty"),T=Q(),{env:x}=process,v;T("no-color")||T("no-colors")||T("color=false")||T("color=never")?v=0:(T("color")||T("colors")||T("color=true")||T("color=always"))&&(v=1);"FORCE_COLOR"in x&&(x.FORCE_COLOR==="true"?v=1:x.FORCE_COLOR==="false"?v=0:v=x.FORCE_COLOR.length===0?1:Math.min(parseInt(x.FORCE_COLOR,10),3));function Z(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function ee(e,t){if(v===0)return 0;if(T("color=16m")||T("color=full")||T("color=truecolor"))return 3;if(T("color=256"))return 2;if(e&&!t&&v===void 0)return 0;let r=v||0;if(x.TERM==="dumb")return r;if(process.platform==="win32"){let o=Be.release().split(".");return Number(o[0])>=10&&Number(o[2])>=10586?Number(o[2])>=14931?3:2:1}if("CI"in x)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(o=>o in x)||x.CI_NAME==="codeship"?1:r;if("TEAMCITY_VERSION"in x)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(x.TEAMCITY_VERSION)?1:0;if(x.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in x){let o=parseInt((x.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(x.TERM_PROGRAM){case"iTerm.app":return o>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(x.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(x.TERM)||"COLORTERM"in x?1:r}function ze(e){let t=ee(e,e&&e.isTTY);return Z(t)}me.exports={supportsColor:ze,stdout:Z(ee(!0,fe.isatty(1))),stderr:Z(ee(!0,fe.isatty(2)))}});var $e=X((et,he)=>{"use strict";var Ge=de(),S=Q();function ge(e){if(/^\d{3,4}$/.test(e)){let r=/(\d{1,2})(\d{2})/.exec(e);return{major:0,minor:parseInt(r[1],10),patch:parseInt(r[2],10)}}let t=(e||"").split(".").map(r=>parseInt(r,10));return{major:t[0],minor:t[1],patch:t[2]}}function te(e){let{env:t}=process;if("FORCE_HYPERLINK"in t)return!(t.FORCE_HYPERLINK.length>0&&parseInt(t.FORCE_HYPERLINK,10)===0);if(S("no-hyperlink")||S("no-hyperlinks")||S("hyperlink=false")||S("hyperlink=never"))return!1;if(S("hyperlink=true")||S("hyperlink=always")||"NETLIFY"in t)return!0;if(!Ge.supportsColor(e)||e&&!e.isTTY||process.platform==="win32"||"CI"in t||"TEAMCITY_VERSION"in t)return!1;if("TERM_PROGRAM"in t){let r=ge(t.TERM_PROGRAM_VERSION);switch(t.TERM_PROGRAM){case"iTerm.app":return r.major===3?r.minor>=1:r.major>3;case"WezTerm":return r.major>=20200620;case"vscode":return r.major>1||r.major===1&&r.minor>=72}}if("VTE_VERSION"in t){if(t.VTE_VERSION==="0.50.0")return!1;let r=ge(t.VTE_VERSION);return r.major>0||r.minor>=50}return!1}he.exports={supportsHyperlink:te,stdout:te(process.stdout),stderr:te(process.stderr)}});var Ue={};He(Ue,{ccommand:()=>Oe});module.exports=Ve(Ue);var A=L(require("fs/promises")),K=require("fs"),U=L(require("path")),f=require("lazy-js-utils/node"),Te=require("lazy-js-utils"),je=L(require("fast-glob")),a=L(require("@simon_he/colorize"));var p="\x1B[",H="\x1B]",I="\x07",W=";",le=process.env.TERM_PROGRAM==="Apple_Terminal",c={};c.cursorTo=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");return typeof t!="number"?p+(e+1)+"G":p+(t+1)+";"+(e+1)+"H"};c.cursorMove=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");let r="";return e<0?r+=p+-e+"D":e>0&&(r+=p+e+"C"),t<0?r+=p+-t+"A":t>0&&(r+=p+t+"B"),r};c.cursorUp=(e=1)=>p+e+"A";c.cursorDown=(e=1)=>p+e+"B";c.cursorForward=(e=1)=>p+e+"C";c.cursorBackward=(e=1)=>p+e+"D";c.cursorLeft=p+"G";c.cursorSavePosition=le?"\x1B7":p+"s";c.cursorRestorePosition=le?"\x1B8":p+"u";c.cursorGetPosition=p+"6n";c.cursorNextLine=p+"E";c.cursorPrevLine=p+"F";c.cursorHide=p+"?25l";c.cursorShow=p+"?25h";c.eraseLines=e=>{let t="";for(let r=0;r<e;r++)t+=c.eraseLine+(r<e-1?c.cursorUp():"");return e&&(t+=c.cursorLeft),t};c.eraseEndLine=p+"K";c.eraseStartLine=p+"1K";c.eraseLine=p+"2K";c.eraseDown=p+"J";c.eraseUp=p+"1J";c.eraseScreen=p+"2J";c.scrollUp=p+"S";c.scrollDown=p+"T";c.clearScreen="\x1Bc";c.clearTerminal=process.platform==="win32"?`${c.eraseScreen}${p}0f`:`${c.eraseScreen}${p}3J${p}H`;c.beep=I;c.link=(e,t)=>[H,"8",W,W,t,I,e,H,"8",W,W,I].join("");c.image=(e,t={})=>{let r=`${H}1337;File=inline=1`;return t.width&&(r+=`;width=${t.width}`),t.height&&(r+=`;height=${t.height}`),t.preserveAspectRatio===!1&&(r+=";preserveAspectRatio=0"),r+":"+e.toString("base64")+I};c.iTerm={setCwd:(e=process.cwd())=>`${H}50;CurrentDir=${e}${I}`,annotation:(e,t={})=>{let r=`${H}1337;`,o=typeof t.x<"u",s=typeof t.y<"u";if((o||s)&&!(o&&s&&typeof t.length<"u"))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return e=e.replace(/\|/g,""),r+=t.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",t.length>0?r+=(o?[e,t.length,t.x,t.y]:[t.length,e]).join("|"):r+=e,r+I}};var ue=c;var Y=L($e(),1);function j(e,t,{target:r="stdout",...o}={}){return Y.default[r]?ue.link(e,t):o.fallback===!1?e:typeof o.fallback=="function"?o.fallback(e,t):`${e} (\u200B${t}\u200B)`}j.isSupported=Y.default.stdout;j.stderr=(e,t,r={})=>j(e,t,{target:"stderr",...r});j.stderr.isSupported=Y.default.stderr;var re="1.0.76";var V=L(require("@simon_he/colorize")),D=require("lazy-js-utils/node");var ne=console.log;async function ye(e){let{status:t}=await(0,D.jsShell)("gum -v","pipe");if(t!==0){ne((0,V.default)({color:"blue",text:e?"\u6B63\u5728\u4E3A\u60A8\u5B89\u88C5gum...":"install gum..."}));let{status:r}=await(0,D.jsShell)("brew install gum");if(r!==0){let{status:o}=await(0,D.jsShell)(`sudo mkdir -p /etc/apt/keyrings
1
+ "use strict";var oe=Object.create;var Y=Object.defineProperty;var ie=Object.getOwnPropertyDescriptor;var ae=Object.getOwnPropertyNames;var ce=Object.getPrototypeOf,le=Object.prototype.hasOwnProperty;var tt=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),ue=(t,e)=>{for(var r in e)Y(t,r,{get:e[r],enumerable:!0})},Rt=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of ae(e))!le.call(t,n)&&n!==r&&Y(t,n,{get:()=>e[n],enumerable:!(s=ie(e,n))||s.enumerable});return t};var k=(t,e,r)=>(r=t!=null?oe(ce(t)):{},Rt(e||!t||!t.__esModule?Y(r,"default",{value:t,enumerable:!0}):r,t)),pe=t=>Rt(Y({},"__esModule",{value:!0}),t);var et=tt((_e,Et)=>{"use strict";Et.exports=(t,e=process.argv)=>{let r=t.startsWith("-")?"":t.length===1?"-":"--",s=e.indexOf(r+t),n=e.indexOf("--");return s!==-1&&(n===-1||s<n)}});var Tt=tt((Te,_t)=>{"use strict";var fe=require("os"),jt=require("tty"),j=et(),{env:$}=process,S;j("no-color")||j("no-colors")||j("color=false")||j("color=never")?S=0:(j("color")||j("colors")||j("color=true")||j("color=always"))&&(S=1);"FORCE_COLOR"in $&&($.FORCE_COLOR==="true"?S=1:$.FORCE_COLOR==="false"?S=0:S=$.FORCE_COLOR.length===0?1:Math.min(parseInt($.FORCE_COLOR,10),3));function rt(t){return t===0?!1:{level:t,hasBasic:!0,has256:t>=2,has16m:t>=3}}function nt(t,e){if(S===0)return 0;if(j("color=16m")||j("color=full")||j("color=truecolor"))return 3;if(j("color=256"))return 2;if(t&&!e&&S===void 0)return 0;let r=S||0;if($.TERM==="dumb")return r;if(process.platform==="win32"){let s=fe.release().split(".");return Number(s[0])>=10&&Number(s[2])>=10586?Number(s[2])>=14931?3:2:1}if("CI"in $)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(s=>s in $)||$.CI_NAME==="codeship"?1:r;if("TEAMCITY_VERSION"in $)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test($.TEAMCITY_VERSION)?1:0;if($.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in $){let s=parseInt(($.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch($.TERM_PROGRAM){case"iTerm.app":return s>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test($.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test($.TERM)||"COLORTERM"in $?1:r}function me(t){let e=nt(t,t&&t.isTTY);return rt(e)}_t.exports={supportsColor:me,stdout:rt(nt(!0,jt.isatty(1))),stderr:rt(nt(!0,jt.isatty(2)))}});var St=tt((Oe,Ct)=>{"use strict";var de=Tt(),P=et();function Ot(t){if(/^\d{3,4}$/.test(t)){let r=/(\d{1,2})(\d{2})/.exec(t);return{major:0,minor:parseInt(r[1],10),patch:parseInt(r[2],10)}}let e=(t||"").split(".").map(r=>parseInt(r,10));return{major:e[0],minor:e[1],patch:e[2]}}function st(t){let{env:e}=process;if("FORCE_HYPERLINK"in e)return!(e.FORCE_HYPERLINK.length>0&&parseInt(e.FORCE_HYPERLINK,10)===0);if(P("no-hyperlink")||P("no-hyperlinks")||P("hyperlink=false")||P("hyperlink=never"))return!1;if(P("hyperlink=true")||P("hyperlink=always")||"NETLIFY"in e)return!0;if(!de.supportsColor(t)||t&&!t.isTTY||process.platform==="win32"||"CI"in e||"TEAMCITY_VERSION"in e)return!1;if("TERM_PROGRAM"in e){let r=Ot(e.TERM_PROGRAM_VERSION);switch(e.TERM_PROGRAM){case"iTerm.app":return r.major===3?r.minor>=1:r.major>3;case"WezTerm":return r.major>=20200620;case"vscode":return r.major>1||r.major===1&&r.minor>=72}}if("VTE_VERSION"in e){if(e.VTE_VERSION==="0.50.0")return!1;let r=Ot(e.VTE_VERSION);return r.major>0||r.minor>=50}return!1}Ct.exports={supportsHyperlink:st,stdout:st(process.stdout),stderr:st(process.stderr)}});var be={};ue(be,{ccommand:()=>Xt});module.exports=pe(be);var Ut=k(require("fs/promises")),ht=require("fs"),Zt=k(require("path")),d=require("lazy-js-utils/node"),p=k(require("@simon_he/colorize"));var u="\x1B[",V="\x1B]",M="\x07",q=";",kt=process.env.TERM_PROGRAM==="Apple_Terminal",c={};c.cursorTo=(t,e)=>{if(typeof t!="number")throw new TypeError("The `x` argument is required");return typeof e!="number"?u+(t+1)+"G":u+(e+1)+";"+(t+1)+"H"};c.cursorMove=(t,e)=>{if(typeof t!="number")throw new TypeError("The `x` argument is required");let r="";return t<0?r+=u+-t+"D":t>0&&(r+=u+t+"C"),e<0?r+=u+-e+"A":e>0&&(r+=u+e+"B"),r};c.cursorUp=(t=1)=>u+t+"A";c.cursorDown=(t=1)=>u+t+"B";c.cursorForward=(t=1)=>u+t+"C";c.cursorBackward=(t=1)=>u+t+"D";c.cursorLeft=u+"G";c.cursorSavePosition=kt?"\x1B7":u+"s";c.cursorRestorePosition=kt?"\x1B8":u+"u";c.cursorGetPosition=u+"6n";c.cursorNextLine=u+"E";c.cursorPrevLine=u+"F";c.cursorHide=u+"?25l";c.cursorShow=u+"?25h";c.eraseLines=t=>{let e="";for(let r=0;r<t;r++)e+=c.eraseLine+(r<t-1?c.cursorUp():"");return t&&(e+=c.cursorLeft),e};c.eraseEndLine=u+"K";c.eraseStartLine=u+"1K";c.eraseLine=u+"2K";c.eraseDown=u+"J";c.eraseUp=u+"1J";c.eraseScreen=u+"2J";c.scrollUp=u+"S";c.scrollDown=u+"T";c.clearScreen="\x1Bc";c.clearTerminal=process.platform==="win32"?`${c.eraseScreen}${u}0f`:`${c.eraseScreen}${u}3J${u}H`;c.beep=M;c.link=(t,e)=>[V,"8",q,q,e,M,t,V,"8",q,q,M].join("");c.image=(t,e={})=>{let r=`${V}1337;File=inline=1`;return e.width&&(r+=`;width=${e.width}`),e.height&&(r+=`;height=${e.height}`),e.preserveAspectRatio===!1&&(r+=";preserveAspectRatio=0"),r+":"+t.toString("base64")+M};c.iTerm={setCwd:(t=process.cwd())=>`${V}50;CurrentDir=${t}${M}`,annotation:(t,e={})=>{let r=`${V}1337;`,s=typeof e.x<"u",n=typeof e.y<"u";if((s||n)&&!(s&&n&&typeof e.length<"u"))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return t=t.replace(/\|/g,""),r+=e.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",e.length>0?r+=(s?[t,e.length,e.x,e.y]:[e.length,t]).join("|"):r+=t,r+M}};var bt=c;var K=k(St(),1);function T(t,e,{target:r="stdout",...s}={}){return K.default[r]?bt.link(t,e):s.fallback===!1?t:typeof s.fallback=="function"?s.fallback(t,e):`${t} (\u200B${e}\u200B)`}T.isSupported=K.default.stdout;T.stderr=(t,e,r={})=>T(t,e,{target:"stderr",...r});T.stderr.isSupported=K.default.stderr;var ot="1.0.78";var W=k(require("@simon_he/colorize")),J=require("lazy-js-utils/node");var it=console.log;async function vt(t){let{status:e}=await(0,J.jsShell)("gum -v","pipe");if(e!==0){it((0,W.default)({color:"blue",text:t?"\u6B63\u5728\u4E3A\u60A8\u5B89\u88C5gum...":"install gum..."}));let{status:r}=await(0,J.jsShell)("brew install gum");if(r!==0){let{status:s}=await(0,J.jsShell)(`sudo mkdir -p /etc/apt/keyrings
2
2
  curl -fsSL https://repo.charm.sh/apt/gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/charm.gpg
3
3
  echo "deb [signed-by=/etc/apt/keyrings/charm.gpg] https://repo.charm.sh/apt/ * *" | sudo tee /etc/apt/sources.list.d/charm.list
4
- sudo apt update && sudo apt install gum`);if(o!==0){let s=j(e?"gum\u5B98\u7F51\u94FE\u63A5":"the official website of gum","https://github.com/charmbracelet/gum#installation");return ne((0,V.default)({color:"red",text:`${e?"gum\u5B89\u88C5\u5931\u8D25,\u4F60\u53EF\u4EE5\u81EA\u884C\u4ECE\u4EE5\u4E0B\u94FE\u63A5\u5B89\u88C5":"gum install error, you can install it yourself through"} ${(0,V.default)({color:"yellow",text:s,bold:!0})}`}))}}ne((0,V.default)({color:"green",text:e?"gum\u5B89\u88C5\u6210\u529F \u{1F389}":"gum install successfully \u{1F389}"}))}}var we=L(require("fs/promises"));function xe(e){return new Promise(t=>{we.default.readFile(e,"utf-8").then(r=>{let o=[];for(let s of r.matchAll(/.PHONY:\s*([\w0-9\-]+)/g)){let l;if(!s||!(l=s[1]))continue;let k=new RegExp(`^${l}:[
4
+ sudo apt update && sudo apt install gum`);if(s!==0){let n=T(t?"gum\u5B98\u7F51\u94FE\u63A5":"the official website of gum","https://github.com/charmbracelet/gum#installation");return it((0,W.default)({color:"red",text:`${t?"gum\u5B89\u88C5\u5931\u8D25,\u4F60\u53EF\u4EE5\u81EA\u884C\u4ECE\u4EE5\u4E0B\u94FE\u63A5\u5B89\u88C5":"gum install error, you can install it yourself through"} ${(0,W.default)({color:"yellow",text:n,bold:!0})}`}))}}it((0,W.default)({color:"green",text:t?"gum\u5B89\u88C5\u6210\u529F \u{1F389}":"gum install successfully \u{1F389}"}))}}var It=k(require("fs/promises"));function Lt(t){return new Promise(e=>{It.default.readFile(t,"utf-8").then(r=>{let s=[];for(let n of r.matchAll(/.PHONY:\s*([\w0-9\-]+)/g)){let a;if(!n||!(a=n[1]))continue;let m=new RegExp(`^${a}:[
5
5
  \\s]*([^
6
- \\\\;]+)`,"sm"),b=r.match(k);if(!b)continue;let $=`${b[1].trim()}...`;o.push({name:l,detail:$})}t(o)}).catch(t)})}var Ye=require("yamljs"),P=[],O=null,u=console.log,ke="__ccommand__split",g=process.env.PI_Lang==="zh",q=130,De=g?"\u5DF2\u53D6\u6D88...":"Cancelled...",Re=g?"\u5F53\u524D\u76EE\u5F55\u5E76\u672A\u627E\u5230package.json\u6587\u4EF6":"The current directory and not found package.json file",be=g?"\u6B63\u5728\u4E3A\u60A8\u6267\u884C...":"is running for you...";async function Oe(e){await ye(g);let t=g?"\u5F53\u524D\u76EE\u5F55\u4E0D\u5B58\u5728\u4EFB\u4F55\u5B50\u76EE\u5F55":"The current directory does not have any subdirectories",r=g?"\u8FD0\u884C\u6210\u529F":"run successfully",o=g?"\u8FD0\u884C\u5931\u8D25":"run error",s=e?e.replace(/\s+/," ").split(" "):process.argv.slice(2);if(s[0]==="-v"||s[0]==="--version")return u((0,a.default)({text:g?`ccommand \u5F53\u524D\u7248\u672C: ${re}`:`ccommand Version: ${re}`,color:"green"}));if(s[0]==="-h"||s[0]==="--help"){let n=j(g?"\u6253\u5F00\u4E00\u4E2A\u65B0\u7684\u95EE\u9898":"open an issue","https://github.com/Simon-He95/ccommand/issues"),i=j(g?"\u2728\u5E2E\u52A9\u70B9\u4E00\u4E2A\u661F\u661F":"\u2728star it","https://github.com/Simon-He95/ccommand");return u((0,a.default)({color:"white",text:`
7
- ${(0,a.default)({bold:!0,text:"Common Commands:",bgColor:"blue"})}
8
- ${(0,a.default)({text:`- ccommand -v \u67E5\u770B\u5F53\u524D\u7248\u672C
6
+ \\\\;]+)`,"sm"),_=r.match(m);if(!_)continue;let b=`${_[1].trim()}...`;s.push({name:a,detail:b})}e(s)}).catch(e)})}var Nt=k(require("fs/promises")),D=require("fs"),Z=k(require("path")),Ht=require("child_process"),zt=require("util"),X=require("lazy-js-utils/node"),G=k(require("@simon_he/colorize"));var ut=k(require("fs/promises")),Ft=require("fs"),At=k(require("@simon_he/colorize"));var Mt=k(require("@simon_he/colorize")),l=console.log,at="__ccommand__split",f=process.env.PI_Lang==="zh",B=130,Pt=f?"\u5DF2\u53D6\u6D88...":"Cancelled...",ct=f?"\u5F53\u524D\u76EE\u5F55\u5E76\u672A\u627E\u5230package.json\u6587\u4EF6":"The current directory and not found package.json file",lt=f?"\u6B63\u5728\u4E3A\u60A8\u6267\u884C...":"is running for you...";function F(){return l((0,Mt.default)({color:"yellow",text:Pt})),process.exit()}async function A(t){l((0,At.default)({text:`${f?"\u5FEB\u6377\u6307\u4EE4":"shortcut command"}: ${t}`,color:"blue",bold:!0}));let e=`${process.env.HOME}/.zsh_history`;try{if(!(0,Ft.existsSync)(e))return;let r=await ut.default.readFile(e,"utf8"),n=new Date().getTime()/1e3,a=`${r}: ${n.toFixed(0)}:0;${t}
7
+ `,m=[];a.split(`
8
+ `).forEach(b=>{let w=b.split(";").slice(1).join(";"),C=m.findIndex(H=>H.split(";").slice(1).join(";")===w);C!==-1&&m.splice(C,1),m.push(b)});let _=m.join(`
9
+ `);await ut.default.writeFile(e,_)}catch{}}var he=(0,zt.promisify)(Ht.exec),U={};async function pt(t){if(U[t]!==void 0)return U[t];try{return await he(`which ${t}`),U[t]=!0,!0}catch{return U[t]=!1,!1}}var O=null;async function ye(){return O!==null||(await pt("bun")?O="bun":await pt("esno")?O="esno":await pt("tsx")?O="tsx":O=null),O}async function Vt(t,e,r,s){await A(`prun ${t}`);let{status:n}=await(0,X.jsShell)(e,{errorExit:!1,isLog:!1,stdio:"inherit"});l((0,G.default)({color:n===0?"green":"red",text:`
10
+ "prun ${t}" ${n===0?r:s} ${n===0?"\u{1F389}":"\u274C"}`}))}async function ft(t,e,r){let s=Z.default.extname(t),n="node";if(s===".ts")if(O===null&&await ye(),O)n=O;else{l((0,G.default)({text:f?`\u6CA1\u6709\u627E\u5230\u53EF\u4EE5\u76F4\u63A5\u6267\u884CTypeScript\u7684\u5DE5\u5177\uFF0C\u63A8\u8350\u5B89\u88C5\u4E0B\u5217\u5DE5\u5177\u4E4B\u4E00\uFF1A
11
+ - npm install -g bun
12
+ - npm install -g esno
13
+ - npm install -g tsx`:`No TypeScript executor found. Recommend installing one of:
14
+ - npm install -g bun
15
+ - npm install -g esno
16
+ - npm install -g tsx`,color:"yellow"}));return}let a=`${n} ${t}`;await Vt(t,a,e,r)}async function Wt(t,e,r){let s=[".js",".ts",".mjs",".cjs"],n=Z.default.extname(t);if(n&&s.includes(n)&&(0,D.existsSync)(t))return await ft(t,e,r),!0;if(!n)for(let a of s){let m=`${t}${a}`;if((0,D.existsSync)(m))return await ft(m,e,r),!0}if((0,D.existsSync)(t)&&(await Nt.default.stat(t)).isDirectory())for(let a of s){let m=Z.default.join(t,`index${a}`);if((0,D.existsSync)(m))return await ft(m,e,r),!0}return!1}async function Bt(t,e,r){t.endsWith(".py")?await Vt(t,`python ${t}`,e,r):t.endsWith(".rs")&&((await(0,X.jsShell)(`rustc ${t}`)).status===0?(await A(`prun ${t}`),await(0,X.jsShell)(`./${t.slice(0,t.length-3)}`,"inherit"),l((0,G.default)({color:"green",text:`
17
+ "prun ${t}" ${e} \u{1F389}`}))):l((0,G.default)({color:"red",text:`
18
+ command "prun ${t}" ${r} \u274C`})))}var Dt=k(require("fs/promises")),mt=k(require("path")),Gt=require("lazy-js-utils/node"),Yt=require("lazy-js-utils"),qt=k(require("fast-glob")),$e=require("yamljs"),L=[],I=null;async function we(t){let e=t==="pnpm"?mt.default.resolve(process.cwd(),"pnpm-workspace.yaml"):mt.default.resolve(process.cwd(),"package.json");try{return await Dt.default.readFile(e,"utf-8")}catch{return""}}function xe(t,e){if(t==="pnpm")return $e.parse(e)?.packages||[];{let r=JSON.parse(e)?.workspaces;return(0,Yt.isPlainObject)(r)?r?.packages||[]:r||[]}}async function Re(t){if(!t.length)return{};let e=await(0,qt.default)(t.map(s=>`${s}/package.json`),{dot:!0,ignore:["**/node_modules/**"]});return(await Promise.all(e.map(async s=>{let n=await(0,Gt.getPkg)(s);if(!n)return null;let{name:a,scripts:m}=n;return{name:a,scripts:m}}))).reduce((s,n)=>(!n||!n.name||!n.scripts||(s[n.name]=Object.keys(n.scripts).reduce((a,m)=>(m.startsWith("//")||(a[m]=n.scripts[m]),a),{})),s),{})}async function ke(t){if(I)return I;let e=await we(t),r=xe(t,e);return I=await Re(r)||{},L=Object.keys(I).filter(s=>I[s]&&Object.keys(I[s]).length),I}async function N(t){return ke(t)}var Kt=k(require("@simon_he/colorize"));function Jt(t){let e=t[0];return e?e.startsWith("--")?["","",t.join(" ")]:t[1]&&t[1].startsWith("--")?[e,"",t.slice(1).join(" ")]:[e,t[1],t.slice(2).join(" ")]:["","",""]}function dt(t,e){let r=Object.keys(t),s=r.find(n=>n.startsWith(e));if(s)return s;try{let n=new RegExp(e.split("").join("[_-\\w$.:]*"));return r.find(a=>n.test(a))}catch(n){l((0,Kt.default)({text:`${f?"\u6B63\u5219\u9519\u8BEF":"RegExp error"}: ${n}`,color:"red"})),process.exit(1)}}var gt=null;async function Xt(t){await vt(f);let e=f?"\u5F53\u524D\u76EE\u5F55\u4E0D\u5B58\u5728\u4EFB\u4F55\u5B50\u76EE\u5F55":"The current directory does not have any subdirectories",r=f?"\u8FD0\u884C\u6210\u529F":"run successfully",s=f?"\u8FD0\u884C\u5931\u8D25":"run error",n=t?t.replace(/\s+/," ").split(" "):process.argv.slice(2);if(n[0]==="-v"||n[0]==="--version")return l((0,p.default)({text:f?`ccommand \u5F53\u524D\u7248\u672C: ${ot}`:`ccommand Version: ${ot}`,color:"green"}));if(n[0]==="-h"||n[0]==="--help"){let i=T(f?"\u6253\u5F00\u4E00\u4E2A\u65B0\u7684\u95EE\u9898":"open an issue","https://github.com/Simon-He95/ccommand/issues"),o=T(f?"\u2728\u5E2E\u52A9\u70B9\u4E00\u4E2A\u661F\u661F":"\u2728star it","https://github.com/Simon-He95/ccommand");return l((0,p.default)({color:"white",text:`
19
+ ${(0,p.default)({bold:!0,text:"Common Commands:",bgColor:"blue"})}
20
+ ${(0,p.default)({text:`- ccommand -v \u67E5\u770B\u5F53\u524D\u7248\u672C
9
21
  - ccommand -help \u67E5\u770B\u5E2E\u52A9
10
22
  - ccommand \u6267\u884C\u5F53\u524Dpackage.json
11
23
  - ccommand find \u67E5\u627E\u5F53\u524Dworkspace\u7684\u6240\u6709\u76EE\u5F55
12
24
  `,color:"cyan"})}
13
- If you encounter any problems, you can ${(0,a.default)({color:"magenta",text:n})}.
14
- If you like it, please ${(0,a.default)({text:i,bold:!0,color:"cyan"})} `}))}else if(s[0]?.endsWith(".rs")){let n=s[0];(await(0,f.jsShell)(`rustc ${n}`)).status===0?(await M(`prun ${n}`),await(0,f.jsShell)(`./${n.slice(0,n.length-3)}`,"inherit"),u((0,a.default)({color:"green",text:`
15
- "prun ${n}" ${r} \u{1F389}`}))):u((0,a.default)({color:"red",text:`
16
- command ${(0,a.default)({bold:!0,color:"cyan",text:`"prun ${n}"`})} ${o} \u274C`}));return}else if(s[0]?.endsWith(".py")){let n=s[0];await M(`prun ${n}`);let{status:i}=await(0,f.jsShell)(`python ${n}`,{errorExit:!1,isLog:!1,stdio:"inherit"});u(i===0?(0,a.default)({color:"green",text:`
17
- "prun ${n}" ${r} \u{1F389}`}):(0,a.default)({color:"red",text:`
18
- command ${(0,a.default)({bold:!0,color:"cyan",text:`"prun ${n}"`})} ${o} \u274C`}));return}let l;try{l=await(0,f.getPkgTool)()}catch{try{if(await A.default.readFile(U.default.resolve(process.cwd(),"./Makefile"),"utf-8")){l="make";let d=await xe("./Makefile"),m=d.reduce((h,w)=>{let{name:C,detail:N}=w;return h[C]=N,h},{}),y="";if(e)y=Ee(m,e);else{let{result:h,status:w}=await(0,f.jsShell)(`echo "${d.map(C=>C.name).join(`
19
- `)}" | gum filter --placeholder=" \u{1F914}\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u6307\u4EE4"`,"pipe");if(w===q)return z();y=h}await J(y.trim(),"");return}else return u((0,a.default)({color:"red",text:Re}))}catch{if(s[0]!=="find")return u((0,a.default)({color:"red",text:Re}))}}let[k,b,$]=qe(s),R=k,_;if(s[0]==="find"){if(b)await B(l),R=P.filter(n=>n.includes(b))[0];else if(l==="yarn"){if(await B(l),!P.length)return u((0,a.default)({color:"yellow",text:t}));let{result:n,status:i}=await(0,f.jsShell)(`echo ${P.join(",")} | sed "s/,/\\n/g" | gum filter --placeholder=" \u{1F914}${g?"\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u76EE\u5F55":"Please select a directory to execute"}"`,["inherit","pipe","inherit"]);if(R=n,i===q)return z()}else if(l==="pnpm"){if(await B(l),!P.length)return u((0,a.default)({color:"yellow",text:t}));let{result:n,status:i}=await(0,f.jsShell)(`echo ${P.join(",")} | sed "s/,/\\n/g" | gum filter --placeholder=" \u{1F914}${g?"\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u76EE\u5F55":"Please select a directory to execute"}"`,{stdio:"pipe",isLog:!0});if(i===q)return z();R=n.trim()}else return u((0,a.default)({color:"red",text:g?"find\u6307\u4EE4\u53EA\u80FD\u652F\u6301\u5728yarn\u6216pnpm\u7684monorepo\u6A21\u5F0F\u4E0B\u4F7F\u7528":"find command only support yarn or pnpm"}));_=await ie()}else if(_=await ie(),k&&O&&!O[k]||!O)try{let n=(await(0,f.getPkg)("./package.json")||{})?.scripts;if(n&&n[s[0]]){await J(s[0],s.slice(1).join(" "));return}else if(n&&k){let i=Ee(n,s[0]);if(i){let d=s.slice(1).join(" ");await J(i,d);return}else{let d=`${k}.py`;if((0,K.existsSync)(d)){u((0,a.default)({text:`\u{1F914} ${g?"\u627E\u5230Python\u6587\u4EF6":"Found Python file"}: ${d}`,color:"yellow"})),await M(`prun ${d}`);let{status:y}=await(0,f.jsShell)(`python ${d}`,{errorExit:!1,isLog:!1,stdio:"inherit"});u(y===0?(0,a.default)({color:"green",text:`
20
- "prun ${d}" ${r} \u{1F389}`}):(0,a.default)({color:"red",text:`
21
- command ${(0,a.default)({bold:!0,color:"cyan",text:`"prun ${d}"`})} ${o} \u274C`}));return}let m=`${k}.rs`;if((0,K.existsSync)(m)){u((0,a.default)({text:`\u{1F914} ${g?"\u627E\u5230Rust\u6587\u4EF6":"Found Rust file"}: ${m}`,color:"yellow"})),await M(`prun ${m}`);let{status:y}=await(0,f.jsShell)(`rustc ${m}`,{errorExit:!1,isLog:!1,stdio:"inherit"});if(y===0){let{status:h}=await(0,f.jsShell)(`./${s[0]}`,{errorExit:!1,isLog:!1,stdio:"inherit"});u(h===0?(0,a.default)({color:"green",text:`
22
- "prun ${m}" ${r} \u{1F389}`}):(0,a.default)({color:"red",text:`
23
- command ${(0,a.default)({bold:!0,color:"cyan",text:`"prun ${m}"`})} ${o} \u274C`}))}else u((0,a.default)({color:"red",text:`
24
- command ${(0,a.default)({bold:!0,color:"cyan",text:`"prun ${m}"`})} ${o} \u274C`}));return}u((0,a.default)({color:"red",text:`"${s[0]}" ${g?"\u5728\u5DE5\u4F5C\u533A\u3001\u5F53\u524D\u76EE\u5F55\u4E2D\u627E\u4E0D\u5230\u4EFB\u4F55\u53EF\u6267\u884C\u7684\u811A\u672C,\u8BF7\u68C0\u67E5":"is not found in workspace, current directory or current scripts, please check"}`})),process.exit(1)}}}catch{}if(!_)return u((0,a.default)({color:"red",text:g?"\u627E\u4E0D\u5230\u4EFB\u4F55\u53EF\u6267\u884C\u811A\u672C":"No scripts found"}));let F=[],E="";if(!b||s[0]==="find"&&(!s[2]||s[2].startsWith("--"))){let n=Object.keys(_).reduce((m,y)=>{let h=_[y];return F.push(y),m+=`"${y}: ${h.replace(/\\/g,"\\\\").replace(/(["`])/g,"\\$1")}"${ke}`,m},""),{result:i,status:d}=await(0,f.jsShell)(`echo ${n} | sed "s/${ke}/\\n/g" | gum filter --placeholder=" \u{1F914}\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u6307\u4EE4"`,{stdio:["inherit","pipe","inherit"],isLog:!1});if(d===q)return z();E=i.substring(0,i.indexOf(": "))}if(!b&&!E)return z();u((0,a.default)({text:`\u{1F914} ${be} ${E}`,color:"magenta"}));let[_e,se]=await Ie(),ve=_e.replace(/\s+/g," "),{status:Ce,result:Le=""}=await(0,f.jsShell)(ve,{errorExit:!1,stdio:"inherit"});if(Ce===0)return u((0,a.default)({color:"green",text:`
25
- ${se} \u{1F389}`}));if(Le.includes("pnpm versions with respective Node.js version support")){u((0,a.default)({text:g?"\u6B63\u5728\u5C1D\u8BD5\u4F7F\u7528 npm \u518D\u6B21\u6267\u884C...":"Trying to use npm to run again...",color:"yellow"}));let{status:n}=await(0,f.jsShell)(`npm run ${E}${$?` -- ${$}`:""}`,"inherit");if(n===0)return u((0,a.default)({color:"green",text:`
26
- ${se} \u{1F389}`}))}u((0,a.default)({color:"red",text:`
27
- command '${E}' ${o} \u274C`}));function oe(n){return F.find(i=>i===n)??F.find(i=>n.startsWith(i))}async function Ie(){let n="",i="",d=l!=="yarn";l==="npm"?(i=$?` -- ${$}`:"",n=R?` --prefix ${R} `:" "):l==="pnpm"?(i=$?` ${$}`:"",n=R?` --filter ${R} `:" "):l==="yarn"?(i=$?` ${$}`:"",n=R?` workspace ${R} `:" "):l==="bun"&&(i=$?` ${$}`:"",n="");let m="",y="";if(i&&!i.startsWith(" --")){let ae=i.split(" ").filter(Boolean);m=ae[0],i=ae.slice(1).join(" ")}let h=`${l}${d?" run":" "}${n} ${m||(E?oe(E)||E:b)} ${Se(i)?`-- ${i}`:i}`;E=`${m||(E?oe(E):b)}`,s[0]==="find"?y=`pfind ${R} ${E} ${i}`.replace(/\s+/g," ").trim():y=`prun ${E} ${i}`.replace(/\s+/g," ").trim(),await M(y);let w=y.split(" "),C=w.slice(-1)[0];w[w.length-1]=`'${C}'`;let N=w.join(" ");return[h,N]}async function ie(){try{if(!R||l==="bun"||l==="npm")return(await(0,f.getPkg)("./package.json"))?.scripts;if(l==="pnpm")return(await B(l))[R]||(await(0,f.getPkg)(`${R}/package.json`))?.scripts;if(l==="yarn")return(await B(l))[R]||(await(0,f.getPkg)(`${R}/package.json`))?.scripts}catch{}}function Se(n){return s[0]==="find",s[1]&&n}async function J(n,i){let d,m="",y=s[0]?.trim();switch(n&&y&&y!==n?u((0,a.default)({text:`\u{1F914} ${(0,a.default)({text:`'${s[0]}'`,color:"cyan"})} ${g?"\u81EA\u52A8\u7684\u4E3A\u60A8\u5339\u914D\u6210":"automatically match for you to"} ${(0,a.default)({text:`'${n}${i?` ${i}`:""}'`,color:"cyan"})} `,color:"yellow"})):n&&u((0,a.default)({text:`\u{1F914} ${be} ${n}`,color:"magenta"})),l){case"npm":{let{status:h,result:w}=await(0,f.jsShell)(`npm run ${n}${i?` -- ${i}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});d=h,m=w;break}case"pnpm":{let{status:h,result:w=""}=await(0,f.jsShell)(`pnpm run ${n}${i?` ${i}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});if(m=w,d=h,m.includes("pnpm versions with respective Node.js version support")){u((0,a.default)({text:g?"\u6B63\u5728\u5C1D\u8BD5\u4F7F\u7528 npm \u518D\u6B21\u6267\u884C...":"Trying to use npm to run again...",color:"yellow"}));let{status:C,result:N}=await(0,f.jsShell)(`npm run ${n}${i?` -- ${i}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});d=C,m=N}break}case"yarn":{let{status:h,result:w}=await(0,f.jsShell)(`yarn ${n}${i?` ${i}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});d=h,m=w;break}case"bun":{let{status:h,result:w}=await(0,f.jsShell)(`bun run ${n} ${i}`,{errorExit:!1,isLog:!1,stdio:"inherit"});d=h,m=w;break}case"make":{let{status:h,result:w}=await(0,f.jsShell)(`make ${n} ${i}`,{errorExit:!1,isLog:!1,stdio:"inherit"});d=h,m=w;break}}return d===0?(await M(`prun ${n}${i?` ${i}`:""}`),u((0,a.default)({color:"green",text:`
28
- prun '${n}${i?` ${i}`:""}' ${r} \u{1F389}`}))):u((0,a.default)({color:"red",text:`
29
- command ${(0,a.default)({bold:!0,color:"cyan",text:`'${n||s[0]}${i?` ${i}`:""}'`})} ${o} \u274C`}))}}async function B(e){if(O)return O;let t="";try{t=e==="pnpm"?await A.default.readFile(U.default.resolve(process.cwd(),"pnpm-workspace.yaml"),"utf-8"):await A.default.readFile(U.default.resolve(process.cwd(),"package.json"),"utf-8")}catch{}let r;if(e==="pnpm")r=Ye.parse(t)?.packages||[];else{let o=JSON.parse(t)?.workspaces;(0,Te.isPlainObject)(o)?r=o?.packages:r=o||[]}return O=await Ke(r)||{},P=Object.keys(O).filter(o=>O[o]&&Object.keys(O[o]).length),O}function qe(e){let t=e[0];return t?t.startsWith("--")?["","",e.join(" ")]:e[1]&&e[1].startsWith("--")?[t,"",e.slice(1).join(" ")]:[t,e[1],e.slice(2).join(" ")]:["","",""]}async function Ke(e){if(!e.length)return;let t=await(0,je.default)(e.map(r=>`${r}/package.json`),{dot:!0,ignore:["**/node_modules/**"]});return Promise.all(t.map(async r=>{let o=await(0,f.getPkg)(r);if(!o)return;let{name:s,scripts:l}=o;return{name:s,scripts:l}})).then(r=>r.reduce((o,s)=>{let{name:l,scripts:k}=s;return!l||!k||(o[l]=Object.keys(k).reduce((b,$)=>($.startsWith("//")||(b[$]=k[$]),b),{})),o},{}))}function Ee(e,t){let r=Object.keys(e),o=r.find(s=>s.startsWith(t));if(o)return o;try{let s=new RegExp(t.split("").join("[_-\\w$.:]*"));return r.find(l=>s.test(l))}catch(s){u((0,a.default)({text:`${g?"\u6B63\u5219\u9519\u8BEF":"RegExp error"}: ${s}`,color:"red"})),process.exit(1)}}function z(){return u((0,a.default)({color:"yellow",text:De})),process.exit()}async function M(e){u((0,a.default)({text:`${g?"\u5FEB\u6377\u6307\u4EE4":"shortcut command"}: ${e}`,color:"blue",bold:!0}));let t=`${process.env.HOME}/.zsh_history`;try{if(!(0,K.existsSync)(t))return;let r=await A.default.readFile(t,"utf8"),s=new Date().getTime()/1e3,l=`${r}: ${s.toFixed(0)}:0;${e}
30
- `,k=[];l.split(`
31
- `).forEach($=>{let R=$.split(";").slice(1).join(";"),_=k.findIndex(F=>F.split(";").slice(1).join(";")===R);_!==-1&&k.splice(_,1),k.push($)});let b=k.join(`
32
- `);await A.default.writeFile(t,b)}catch{}}0&&(module.exports={ccommand});
25
+ If you encounter any problems, you can ${(0,p.default)({color:"magenta",text:i})}.
26
+ If you like it, please ${(0,p.default)({text:o,bold:!0,color:"cyan"})} `}))}else if(n[0]?.endsWith(".py")||n[0]?.endsWith(".rs")){await Bt(n[0],r,s);return}let a;try{a=await(0,d.getPkgTool)()}catch{try{if(await Ut.default.readFile(Zt.default.resolve(process.cwd(),"./Makefile"),"utf-8")){a="make";let x=await Lt("./Makefile"),g=x.reduce((h,y)=>{let{name:v,detail:z}=y;return h[v]=z,h},{}),R="";if(t)R=dt(g,t);else{let{result:h,status:y}=await(0,d.jsShell)(`echo "${x.map(v=>v.name).join(`
27
+ `)}" | gum filter --placeholder=" \u{1F914}\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u6307\u4EE4"`,"pipe");if(y===B)return F();R=h}await Q(R.trim(),"");return}else return l((0,p.default)({color:"red",text:ct}))}catch{if(n[0]!=="find")return l((0,p.default)({color:"red",text:ct}))}}let[m,_,b]=Jt(n),w=m,C;if(n[0]==="find"){if(_)await N(a),w=L.filter(i=>i.includes(_))[0];else if(a==="yarn"){if(await N(a),!L.length)return l((0,p.default)({color:"yellow",text:e}));let{result:i,status:o}=await(0,d.jsShell)(`echo ${L.join(",")} | sed "s/,/\\n/g" | gum filter --placeholder=" \u{1F914}${f?"\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u76EE\u5F55":"Please select a directory to execute"}"`,["inherit","pipe","inherit"]);if(w=i,o===B)return F()}else if(a==="pnpm"){if(await N(a),!L.length)return l((0,p.default)({color:"yellow",text:e}));let{result:i,status:o}=await(0,d.jsShell)(`echo ${L.join(",")} | sed "s/,/\\n/g" | gum filter --placeholder=" \u{1F914}${f?"\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u76EE\u5F55":"Please select a directory to execute"}"`,["inherit","pipe","inherit"]);if(o===B)return F();w=i.trim()}else return l((0,p.default)({color:"red",text:f?"find\u6307\u4EE4\u53EA\u80FD\u652F\u6301\u5728yarn\u6216pnpm\u7684monorepo\u6A21\u5F0F\u4E0B\u4F7F\u7528":"find command only support yarn or pnpm"}));C=await wt()}else if(C=await wt(),m&&gt&&!gt[m]||!gt)try{let i=(await(0,d.getPkg)("./package.json")||{})?.scripts;if(i&&i[n[0]]){await Q(n[0],n.slice(1).join(" "));return}else if(i&&m){let o=dt(i,n[0]);if(o){let x=n.slice(1).join(" ");await Q(o,x);return}else{if(await Wt(n[0],r,s))return;let g=`${m}.py`;if((0,ht.existsSync)(g)){l((0,p.default)({text:`\u{1F914} ${f?"\u627E\u5230Python\u6587\u4EF6":"Found Python file"}: ${g}`,color:"yellow"}));return}let R=`${m}.rs`;if((0,ht.existsSync)(R))return;l((0,p.default)({color:"red",text:`"${n[0]}" ${f?"\u5728\u5DE5\u4F5C\u533A\u3001\u5F53\u524D\u76EE\u5F55\u4E2D\u627E\u4E0D\u5230\u4EFB\u4F55\u53EF\u6267\u884C\u7684\u811A\u672C\u6216\u6587\u4EF6\uFF0C\u8BF7\u68C0\u67E5":"is not found in workspace, current directory or current scripts, please check"}`})),process.exit(1)}}}catch{}if(!C)return l((0,p.default)({color:"red",text:f?"\u627E\u4E0D\u5230\u4EFB\u4F55\u53EF\u6267\u884C\u811A\u672C":"No scripts found"}));let H=[],E="";if(!_||n[0]==="find"&&(!n[2]||n[2].startsWith("--"))){let i=Object.keys(C).reduce((g,R)=>{let h=C[R];return H.push(R),g+=`"${R}: ${h.replace(/\\/g,"\\\\").replace(/(["`])/g,"\\$1")}"${at}`,g},""),{result:o,status:x}=await(0,d.jsShell)(`echo ${i} | sed "s/${at}/\\n/g" | gum filter --placeholder=" \u{1F914}\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u6307\u4EE4"`,{stdio:["inherit","pipe","inherit"],isLog:!1});if(x===B)return F();E=o.substring(0,o.indexOf(": "))}if(!_&&!E)return F();l((0,p.default)({text:`\u{1F914} ${lt} ${E}`,color:"magenta"}));let[Qt,yt]=await ne(),te=Qt.replace(/\s+/g," "),{status:ee,result:re=""}=await(0,d.jsShell)(te,{errorExit:!1,stdio:"inherit"});if(ee===0)return l((0,p.default)({color:"green",text:`
28
+ ${yt} \u{1F389}`}));if(re.includes("pnpm versions with respective Node.js version support")){l((0,p.default)({text:f?"\u6B63\u5728\u5C1D\u8BD5\u4F7F\u7528 npm \u518D\u6B21\u6267\u884C...":"Trying to use npm to run again...",color:"yellow"}));let{status:i}=await(0,d.jsShell)(`npm run ${E}${b?` -- ${b}`:""}`,"inherit");if(i===0)return l((0,p.default)({color:"green",text:`
29
+ ${yt} \u{1F389}`}))}l((0,p.default)({color:"red",text:`
30
+ command '${E}' ${s} \u274C`}));function $t(i){return H.find(o=>o===i)??H.find(o=>i.startsWith(o))}async function ne(){let i="",o="",x=a!=="yarn";a==="npm"?(o=b?` -- ${b}`:"",i=w?` --prefix ${w} `:" "):a==="pnpm"?(o=b?` ${b}`:"",i=w?` --filter ${w} `:" "):a==="yarn"?(o=b?` ${b}`:"",i=w?` workspace ${w} `:" "):a==="bun"&&(o=b?` ${b}`:"",i="");let g="",R="";if(o&&!o.startsWith(" --")){let xt=o.split(" ").filter(Boolean);g=xt[0],o=xt.slice(1).join(" ")}let h=`${a}${x?" run":" "}${i} ${g||(E?$t(E)||E:_)} ${se(o)?`-- ${o}`:o}`;E=`${g||(E?$t(E):_)}`,n[0]==="find"?R=`pfind ${w} ${E} ${o}`.replace(/\s+/g," ").trim():R=`prun ${E} ${o}`.replace(/\s+/g," ").trim(),await A(R);let y=R.split(" "),v=y.slice(-1)[0];y[y.length-1]=`'${v}'`;let z=y.join(" ");return[h,z]}async function wt(){try{if(!w||a==="bun"||a==="npm")return(await(0,d.getPkg)("./package.json"))?.scripts;if(a==="pnpm")return(await N(a))[w]||(await(0,d.getPkg)(`${w}/package.json`))?.scripts;if(a==="yarn")return(await N(a))[w]||(await(0,d.getPkg)(`${w}/package.json`))?.scripts}catch{}}function se(i){return n[0]==="find",n[1]&&i}async function Q(i,o){let x,g="",R=n[0]?.trim();switch(i&&R&&R!==i?l((0,p.default)({text:`\u{1F914} ${(0,p.default)({text:`'${n[0]}'`,color:"cyan"})} ${f?"\u81EA\u52A8\u7684\u4E3A\u60A8\u5339\u914D\u6210":"automatically match for you to"} ${(0,p.default)({text:`'${i}${o?` ${o}`:""}'`,color:"cyan"})} `,color:"yellow"})):i&&l((0,p.default)({text:`\u{1F914} ${lt} ${i}`,color:"magenta"})),a){case"npm":{let{status:h,result:y}=await(0,d.jsShell)(`npm run ${i}${o?` -- ${o}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});x=h,g=y;break}case"pnpm":{let{status:h,result:y=""}=await(0,d.jsShell)(`pnpm run ${i}${o?` ${o}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});if(g=y,x=h,g.includes("pnpm versions with respective Node.js version support")){l((0,p.default)({text:f?"\u6B63\u5728\u5C1D\u8BD5\u4F7F\u7528 npm \u518D\u6B21\u6267\u884C...":"Trying to use npm to run again...",color:"yellow"}));let{status:v,result:z}=await(0,d.jsShell)(`npm run ${i}${o?` -- ${o}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});x=v,g=z}break}case"yarn":{let{status:h,result:y}=await(0,d.jsShell)(`yarn ${i}${o?` ${o}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});x=h,g=y;break}case"bun":{let{status:h,result:y}=await(0,d.jsShell)(`bun run ${i} ${o}`,{errorExit:!1,isLog:!1,stdio:"inherit"});x=h,g=y;break}case"make":{let{status:h,result:y}=await(0,d.jsShell)(`make ${i} ${o}`,{errorExit:!1,isLog:!1,stdio:"inherit"});x=h,g=y;break}}return x===0?(await A(`prun ${i}${o?` ${o}`:""}`),l((0,p.default)({color:"green",text:`
31
+ prun '${i}${o?` ${o}`:""}' ${r} \u{1F389}`}))):l((0,p.default)({color:"red",text:`
32
+ command ${(0,p.default)({bold:!0,color:"cyan",text:`'${i||n[0]}${o?` ${o}`:""}'`})} ${s} \u274C`}))}}0&&(module.exports={ccommand});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ccommand",
3
- "version": "1.0.76",
3
+ "version": "1.0.78",
4
4
  "packageManager": "pnpm@6.35.1",
5
5
  "description": "ccommand",
6
6
  "author": "Simon He",
@@ -52,7 +52,7 @@
52
52
  "@simon_he/colorize": "^0.0.1",
53
53
  "build": "^0.1.4",
54
54
  "fast-glob": "^3.3.3",
55
- "lazy-js-utils": "^0.1.32",
55
+ "lazy-js-utils": "^0.1.37",
56
56
  "yamljs": "^0.3.0"
57
57
  },
58
58
  "devDependencies": {