ccommand 1.0.64 → 1.0.65
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/cli.js +14 -14
- package/dist/index.js +14 -14
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
"use strict";var Se=Object.create;var ce=Object.defineProperty;var Me=Object.getOwnPropertyDescriptor;var Le=Object.getOwnPropertyNames;var Pe=Object.getPrototypeOf,Ae=Object.prototype.hasOwnProperty;var
|
|
1
|
+
"use strict";var Se=Object.create;var ce=Object.defineProperty;var Me=Object.getOwnPropertyDescriptor;var Le=Object.getOwnPropertyNames;var Pe=Object.getPrototypeOf,Ae=Object.prototype.hasOwnProperty;var U=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Ne=(e,t,r,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Le(t))!Ae.call(e,n)&&n!==r&&ce(e,n,{get:()=>t[n],enumerable:!(i=Me(t,n))||i.enumerable});return e};var I=(e,t,r)=>(r=e!=null?Se(Pe(e)):{},Ne(t||!e||!e.__esModule?ce(r,"default",{value:e,enumerable:!0}):r,e));var J=U((Ke,ue)=>{"use strict";ue.exports=(e,t=process.argv)=>{let r=e.startsWith("-")?"":e.length===1?"-":"--",i=t.indexOf(r+e),n=t.indexOf("--");return i!==-1&&(n===-1||i<n)}});var fe=U((Ue,me)=>{"use strict";var Fe=require("os"),pe=require("tty"),E=J(),{env:y}=process,v;E("no-color")||E("no-colors")||E("color=false")||E("color=never")?v=0:(E("color")||E("colors")||E("color=true")||E("color=always"))&&(v=1);"FORCE_COLOR"in y&&(y.FORCE_COLOR==="true"?v=1:y.FORCE_COLOR==="false"?v=0:v=y.FORCE_COLOR.length===0?1:Math.min(parseInt(y.FORCE_COLOR,10),3));function X(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function Q(e,t){if(v===0)return 0;if(E("color=16m")||E("color=full")||E("color=truecolor"))return 3;if(E("color=256"))return 2;if(e&&!t&&v===void 0)return 0;let r=v||0;if(y.TERM==="dumb")return r;if(process.platform==="win32"){let i=Fe.release().split(".");return Number(i[0])>=10&&Number(i[2])>=10586?Number(i[2])>=14931?3:2:1}if("CI"in y)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(i=>i in y)||y.CI_NAME==="codeship"?1:r;if("TEAMCITY_VERSION"in y)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(y.TEAMCITY_VERSION)?1:0;if(y.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in y){let i=parseInt((y.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(y.TERM_PROGRAM){case"iTerm.app":return i>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(y.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(y.TERM)||"COLORTERM"in y?1:r}function He(e){let t=Q(e,e&&e.isTTY);return X(t)}me.exports={supportsColor:He,stdout:X(Q(!0,pe.isatty(1))),stderr:X(Q(!0,pe.isatty(2)))}});var he=U((Je,ge)=>{"use strict";var ze=fe(),M=J();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 Z(e){let{env:t}=process;if("FORCE_HYPERLINK"in t)return!(t.FORCE_HYPERLINK.length>0&&parseInt(t.FORCE_HYPERLINK,10)===0);if(M("no-hyperlink")||M("no-hyperlinks")||M("hyperlink=false")||M("hyperlink=never"))return!1;if(M("hyperlink=true")||M("hyperlink=always")||"NETLIFY"in t)return!0;if(!ze.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:Z,stdout:Z(process.stdout),stderr:Z(process.stderr)}});var P=I(require("fs/promises")),Te=require("fs"),D=I(require("path")),u=require("lazy-js-utils"),Ee=I(require("fast-glob")),a=I(require("@simon_he/colorize"));var p="\x1B[",F="\x1B]",S="\x07",B=";",ae=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=ae?"\x1B7":p+"s";c.cursorRestorePosition=ae?"\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=S;c.link=(e,t)=>[F,"8",B,B,t,S,e,F,"8",B,B,S].join("");c.image=(e,t={})=>{let r=`${F}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")+S};c.iTerm={setCwd:(e=process.cwd())=>`${F}50;CurrentDir=${e}${S}`,annotation:(e,t={})=>{let r=`${F}1337;`,i=typeof t.x<"u",n=typeof t.y<"u";if((i||n)&&!(i&&n&&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+=(i?[e,t.length,t.x,t.y]:[t.length,e]).join("|"):r+=e,r+S}};var le=c;var G=I(he(),1);function O(e,t,{target:r="stdout",...i}={}){return G.default[r]?le.link(e,t):i.fallback===!1?e:typeof i.fallback=="function"?i.fallback(e,t):`${e} (\u200B${t}\u200B)`}O.isSupported=G.default.stdout;O.stderr=(e,t,r={})=>O(e,t,{target:"stderr",...r});O.stderr.isSupported=G.default.stderr;var ee="1.0.65";var H=I(require("@simon_he/colorize")),Y=require("lazy-js-utils");var te=console.log;function $e(e){let{status:t}=(0,Y.jsShell)("gum -v","pipe");if(t!==0){te((0,H.default)({color:"blue",text:e?"\u6B63\u5728\u4E3A\u60A8\u5B89\u88C5gum...":"install gum..."}));let{status:r}=(0,Y.jsShell)("brew install gum");if(r!==0){let{status:i}=(0,Y.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(i!==0){let n=
|
|
4
|
+
sudo apt update && sudo apt install gum`);if(i!==0){let n=O(e?"gum\u5B98\u7F51\u94FE\u63A5":"the official website of gum","https://github.com/charmbracelet/gum#installation");return te((0,H.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,H.default)({color:"yellow",text:n,bold:!0})}`}))}}te((0,H.default)({color:"green",text:e?"gum\u5B89\u88C5\u6210\u529F \u{1F389}":"gum install successfully \u{1F389}"}))}}var ye=I(require("fs/promises"));function we(e){return new Promise(t=>{ye.default.readFile(e,"utf-8").then(r=>{let i=[];for(let n of r.matchAll(/.PHONY:\s*([\w0-9\-]+)/g)){let l;if(!n||!(l=n[1]))continue;let x=new RegExp(`^${l}:[
|
|
5
5
|
\\s]*([^
|
|
6
|
-
\\\\;]+)`,"sm"),
|
|
6
|
+
\\\\;]+)`,"sm"),R=r.match(x);if(!R)continue;let d=`${R[1].trim()}...`;i.push({name:l,detail:d})}t(i)}).catch(t)})}var Be=require("yamljs"),L=[],j=null,m=console.log,ke="__ccommand__split",f=process.env.PI_Lang==="zh",W=130,Ge=f?"\u5DF2\u53D6\u6D88...":"Cancelled...",xe=f?"\u5F53\u524D\u76EE\u5F55\u5E76\u672A\u627E\u5230package.json\u6587\u4EF6":"The current directory and not found package.json file",Re=f?"\u6B63\u5728\u4E3A\u60A8\u6267\u884C...":"is running for you...";async function je(e){$e(f);let t=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",i=f?"\u8FD0\u884C\u5931\u8D25":"run error",n=e?e.replace(/\s+/," ").split(" "):process.argv.slice(2);if(n[0]==="-v"||n[0]==="--version")return m((0,a.default)({text:f?`ccommand \u5F53\u524D\u7248\u672C: ${ee}`:`ccommand Version: ${ee}`,color:"green"}));if(n[0]==="-h"||n[0]==="--help"){let s=O(f?"\u6253\u5F00\u4E00\u4E2A\u65B0\u7684\u95EE\u9898":"open an issue","https://github.com/Simon-He95/ccommand/issues"),o=O(f?"\u2728\u5E2E\u52A9\u70B9\u4E00\u4E2A\u661F\u661F":"\u2728star it","https://github.com/Simon-He95/ccommand");return m((0,a.default)({color:"white",text:`
|
|
7
7
|
${(0,a.default)({bold:!0,text:"Common Commands:",bgColor:"blue"})}
|
|
8
8
|
${(0,a.default)({text:`- ccommand -v \u67E5\u770B\u5F53\u524D\u7248\u672C
|
|
9
9
|
- ccommand -help \u67E5\u770B\u5E2E\u52A9
|
|
@@ -11,15 +11,15 @@
|
|
|
11
11
|
- ccommand find \u67E5\u627E\u5F53\u524Dworkspace\u7684\u6240\u6709\u76EE\u5F55
|
|
12
12
|
`,color:"cyan"})}
|
|
13
13
|
If you encounter any problems, you can ${(0,a.default)({color:"magenta",text:s})}.
|
|
14
|
-
If you like it, please ${(0,a.default)({text:o,bold:!0,color:"cyan"})} `}))}else if(n[0]?.endsWith(".rs")){let s=n[0];(0,u.jsShell)(`rustc ${s}`).status===0?(await
|
|
14
|
+
If you like it, please ${(0,a.default)({text:o,bold:!0,color:"cyan"})} `}))}else if(n[0]?.endsWith(".rs")){let s=n[0];(0,u.jsShell)(`rustc ${s}`).status===0?(await re(`prun ${s}`),(0,u.jsShell)(`./${s.slice(0,s.length-3)}`),m((0,a.default)({color:"green",text:`
|
|
15
15
|
"prun ${s}" ${r} \u{1F389}`}))):m((0,a.default)({color:"red",text:`
|
|
16
|
-
command ${(0,a.default)({bold:!0,color:"cyan",text:`"prun ${s}"`})} ${i} \u274C`}));return}let l;try{l=await(0,u.getPkgTool)()}catch{try{if(await
|
|
17
|
-
`)}" | gum filter --placeholder=" \u{1F914}\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u6307\u4EE4"`,"pipe");if(
|
|
18
|
-
${
|
|
19
|
-
${
|
|
20
|
-
command '${
|
|
21
|
-
prun '${s}${o?` ${o}`:""}' ${r} \u{1F389}`}))):m((0,a.default)({color:"red",text:`
|
|
22
|
-
command ${(0,a.default)({bold:!0,color:"cyan",text:`'${s||n[0]}${o?` ${o}`:""}'`})} ${i} \u274C`}))}}async function
|
|
23
|
-
`,
|
|
24
|
-
`).forEach(d=>{let
|
|
25
|
-
`);await
|
|
16
|
+
command ${(0,a.default)({bold:!0,color:"cyan",text:`"prun ${s}"`})} ${i} \u274C`}));return}let l;try{l=await(0,u.getPkgTool)()}catch{try{if(await P.default.readFile(D.default.resolve(process.cwd(),"./Makefile"),"utf-8")){l="make";let k=await we("./Makefile"),g=k.reduce((h,$)=>{let{name:C,detail:N}=$;return h[C]=N,h},{}),b="";if(e)b=be(g,e);else{let{result:h,status:$}=(0,u.jsShell)(`echo "${k.map(C=>C.name).join(`
|
|
17
|
+
`)}" | gum filter --placeholder=" \u{1F914}\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u6307\u4EE4"`,"pipe");if($===W)return V();b=h}await K(b.trim(),""),setTimeout(()=>{(0,u.jsShell)("zsh")},10);return}else return m((0,a.default)({color:"red",text:xe}))}catch{return m((0,a.default)({color:"red",text:xe}))}}let[x,R,d]=Ye(n),w=x,_;if(n[0]==="find"){if(R)await z(l),w=L.filter(s=>s.includes(R))[0];else if(l==="yarn"){if(await z(l),!L.length)return m((0,a.default)({color:"yellow",text:t}));let{result:s,status:o}=(0,u.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"}"`,"pipe");if(w=s,o===W)return V()}else if(l==="pnpm"){if(await z(l),!L.length)return m((0,a.default)({color:"yellow",text:t}));let{result:s,status:o}=(0,u.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"}"`,{stdio:"pipe",isLog:!0});if(o===W)return V();w=s.trim()}else return m((0,a.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"}));_=await oe()}else{if(_=await oe(),x&&j&&!j[x]||!j)try{let s=(await(0,u.getPkg)("./package.json")||{})?.scripts;if(s&&s[n[0]]){K(n[0],n.slice(1).join(" ")),setTimeout(()=>{(0,u.jsShell)("zsh")},10);return}else if(s&&x){let o=be(s,n[0]);o||(m((0,a.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,\u8BF7\u68C0\u67E5":"is not found in workspace, current directory or current scripts, please check"}`})),process.exit(1));let k=n.slice(1).join(" ");K(o,k),setTimeout(()=>{(0,u.jsShell)("zsh")},10);return}}catch{}j&&!j[n[0]]&&(m((0,a.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,\u8BF7\u68C0\u67E5":"is not found in workspace, current directory or current scripts, please check"}`})),process.exit())}if(!_)return m((0,a.default)({color:"red",text:f?"\u627E\u4E0D\u5230\u4EFB\u4F55\u53EF\u6267\u884C\u811A\u672C":"No scripts found"}));let A=[],T="";if(!R||n[0]==="find"&&(!n[2]||n[2].startsWith("--"))){let s=Object.keys(_).reduce((g,b)=>{let h=_[b];return A.push(b),g+=`"${b}: ${h.replace(/["`]/g,"\\$1")}"${ke}`,g},""),{result:o,status:k}=(0,u.jsShell)(`echo ${s} | sed "s/${ke}/\\n/g" | gum filter --placeholder=" \u{1F914}\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u6307\u4EE4"`,"pipe");if(k===W)return V();T=o.substring(0,o.indexOf(": "))}if(!R&&!T)return V();m((0,a.default)({text:`\u{1F914} ${Re} ${T}`,color:"magenta"}));let[Oe,ne]=await Ce(),_e=Oe.replace(/\s+/g," "),{status:ve,result:q}=(0,u.jsShell)(_e,{stdio:"pipe",errorExit:!1});if(ve===0)return setTimeout(()=>{(0,u.jsShell)("zsh")},10),m((0,a.default)({color:"green",text:`
|
|
18
|
+
${ne} \u{1F389}`}));if(q.includes("pnpm versions with respective Node.js version support")){m(q),m((0,a.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:s}=(0,u.jsShell)(`npm run ${T}${d?` -- ${d}`:""}`);if(s===0)return setTimeout(()=>{(0,u.jsShell)("zsh")},10),m((0,a.default)({color:"green",text:`
|
|
19
|
+
${ne} \u{1F389}`}))}else m(q);m((0,a.default)({color:"red",text:`
|
|
20
|
+
command '${T}' ${i} \u274C`}));function se(s){return A.find(o=>o===s)??A.find(o=>s.startsWith(o))}async function Ce(){let s="",o="",k=l!=="yarn";l==="npm"?(o=d?` -- ${d}`:"",s=w?` --prefix ${w} `:" "):l==="pnpm"?(o=d?` ${d}`:"",s=w?` --filter ${w} `:" "):l==="yarn"?(o=d?` ${d}`:"",s=w?` workspace ${w} `:" "):l==="bun"&&(o=d?` ${d}`:"",s="");let g="",b="";if(o&&!o.startsWith(" --")){let ie=o.split(" ").filter(Boolean);g=ie[0],o=ie.slice(1).join(" ")}let h=`${l}${k?" run":" "}${s} ${g||(T?se(T)||T:R)} ${Ie(o)?`-- ${o}`:o}`;T=`${g||(T?se(T):R)}`,n[0]==="find"?b=`pfind ${w} ${T} ${o}`.replace(/\s+/g," ").trim():b=`prun ${T} ${o}`.replace(/\s+/g," ").trim(),await re(b);let $=b.split(" "),C=$.slice(-1)[0];$[$.length-1]=`'${C}'`;let N=$.join(" ");return[h,N]}async function oe(){try{if(!w||l==="bun"||l==="npm")return(await(0,u.getPkg)("./package.json"))?.scripts;if(l==="pnpm")return(await z(l))[w]||(await(0,u.getPkg)(`${w}/package.json`))?.scripts;if(l==="yarn")return(await z(l))[w]||(await(0,u.getPkg)(`${w}/package.json`))?.scripts}catch{}}function Ie(s){return n[0]==="find",n[1]&&s}async function K(s,o){let k,g,b=n[0]?.trim();switch(s&&b&&b!==s?m((0,a.default)({text:`\u{1F914} ${(0,a.default)({text:`'${n[0]}'`,color:"cyan"})} ${f?"\u81EA\u52A8\u7684\u4E3A\u60A8\u5339\u914D\u6210":"automatically match for you to"} ${(0,a.default)({text:`'${s}${o?` ${o}`:""}'`,color:"cyan"})} `,color:"yellow"})):s&&m((0,a.default)({text:`\u{1F914} ${Re} ${s}`,color:"magenta"})),l){case"npm":{let{status:h,result:$}=(0,u.jsShell)(`npm run ${s}${o?` -- ${o}`:""}`);k=h,g=$;break}case"pnpm":{let{status:h,result:$}=(0,u.jsShell)(`pnpm run ${s}${o?` ${o}`:""}`,{stdio:"pipe",errorExit:!1});if(g=$,k=h,g.includes("pnpm versions with respective Node.js version support")){m(g),m((0,a.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:C,result:N}=(0,u.jsShell)(`npm run ${s}${o?` ${o}`:""}`);k=C,g=N}break}case"yarn":{let{status:h,result:$}=(0,u.jsShell)(`yarn ${s}${o?` ${o}`:""}`);k=h,g=$;break}case"bun":{let{status:h,result:$}=(0,u.jsShell)(`bun run ${s} ${o}`);k=h,g=$;break}case"make":{let{status:h,result:$}=(0,u.jsShell)(`make ${s} ${o}`);k=h,g=$;break}}return k===0?(await re(`prun ${s}${o?` ${o}`:""}`),m((0,a.default)({color:"green",text:`
|
|
21
|
+
prun '${s}${o?` ${o}`:""}' ${r} \u{1F389}`}))):(m(g),m((0,a.default)({color:"red",text:`
|
|
22
|
+
command ${(0,a.default)({bold:!0,color:"cyan",text:`'${s||n[0]}${o?` ${o}`:""}'`})} ${i} \u274C`})))}}async function z(e){if(j)return j;let t="";try{t=e==="pnpm"?await P.default.readFile(D.default.resolve(process.cwd(),"pnpm-workspace.yaml"),"utf-8"):await P.default.readFile(D.default.resolve(process.cwd(),"package.json"),"utf-8")}catch{}let r;if(e==="pnpm")r=Be.parse(t)?.packages||[];else{let i=JSON.parse(t)?.workspaces;(0,u.isPlainObject)(i)?r=i?.packages:r=i||[]}return j=await We(r)||{},L=Object.keys(j).filter(i=>j[i]&&Object.keys(j[i]).length),j}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 We(e){if(!e.length)return;let t=await(0,Ee.default)(e.map(r=>`${r}/package.json`),{dot:!0,ignore:["**/node_modules/**"]});return Promise.all(t.map(async r=>{let i=await(0,u.getPkg)(r);if(!i)return;let{name:n,scripts:l}=i;return{name:n,scripts:l}})).then(r=>r.reduce((i,n)=>{let{name:l,scripts:x}=n;return!l||!x||(i[l]=Object.keys(x).reduce((R,d)=>(d.startsWith("//")||(R[d]=x[d]),R),{})),i},{}))}function be(e,t){let r=Object.keys(e),i=r.find(n=>n.startsWith(t));if(i)return i;try{let n=new RegExp(t.split("").join("[_-\\w$.:]*"));return r.find(l=>n.test(l))}catch(n){m((0,a.default)({text:`${f?"\u6B63\u5219\u9519\u8BEF":"RegExp error"}: ${n}`,color:"red"})),process.exit(1)}}function V(){return m((0,a.default)({color:"yellow",text:Ge})),process.exit()}async function re(e){m((0,a.default)({text:`${f?"\u5FEB\u6377\u6307\u4EE4":"shortcut command"}: ${e}`,color:"blue",bold:!0}));let t=`${process.env.HOME}/.zsh_history`;try{if(!(0,Te.existsSync)(t))return;let r=await P.default.readFile(t,"utf8"),n=new Date().getTime()/1e3,l=`${r}: ${n.toFixed(0)}:0;${e}
|
|
23
|
+
`,x=[];l.split(`
|
|
24
|
+
`).forEach(d=>{let w=d.split(";").slice(1).join(";"),_=x.findIndex(A=>A.split(";").slice(1).join(";")===w);_!==-1&&x.splice(_,1),x.push(d)});let R=x.join(`
|
|
25
|
+
`);await P.default.writeFile(t,R)}catch{}}je();
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
"use strict";var Me=Object.create;var
|
|
1
|
+
"use strict";var Me=Object.create;var B=Object.defineProperty;var Le=Object.getOwnPropertyDescriptor;var Pe=Object.getOwnPropertyNames;var Ae=Object.getPrototypeOf,Ne=Object.prototype.hasOwnProperty;var J=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Fe=(e,t)=>{for(var r in t)B(e,r,{get:t[r],enumerable:!0})},ae=(e,t,r,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Pe(t))!Ne.call(e,n)&&n!==r&&B(e,n,{get:()=>t[n],enumerable:!(i=Le(t,n))||i.enumerable});return e};var I=(e,t,r)=>(r=e!=null?Me(Ae(e)):{},ae(t||!e||!e.__esModule?B(r,"default",{value:e,enumerable:!0}):r,e)),He=e=>ae(B({},"__esModule",{value:!0}),e);var X=J((Xe,pe)=>{"use strict";pe.exports=(e,t=process.argv)=>{let r=e.startsWith("-")?"":e.length===1?"-":"--",i=t.indexOf(r+e),n=t.indexOf("--");return i!==-1&&(n===-1||i<n)}});var de=J((Qe,fe)=>{"use strict";var ze=require("os"),me=require("tty"),E=X(),{env:y}=process,v;E("no-color")||E("no-colors")||E("color=false")||E("color=never")?v=0:(E("color")||E("colors")||E("color=true")||E("color=always"))&&(v=1);"FORCE_COLOR"in y&&(y.FORCE_COLOR==="true"?v=1:y.FORCE_COLOR==="false"?v=0:v=y.FORCE_COLOR.length===0?1:Math.min(parseInt(y.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(E("color=16m")||E("color=full")||E("color=truecolor"))return 3;if(E("color=256"))return 2;if(e&&!t&&v===void 0)return 0;let r=v||0;if(y.TERM==="dumb")return r;if(process.platform==="win32"){let i=ze.release().split(".");return Number(i[0])>=10&&Number(i[2])>=10586?Number(i[2])>=14931?3:2:1}if("CI"in y)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(i=>i in y)||y.CI_NAME==="codeship"?1:r;if("TEAMCITY_VERSION"in y)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(y.TEAMCITY_VERSION)?1:0;if(y.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in y){let i=parseInt((y.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(y.TERM_PROGRAM){case"iTerm.app":return i>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(y.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(y.TERM)||"COLORTERM"in y?1:r}function Ve(e){let t=Z(e,e&&e.isTTY);return Q(t)}fe.exports={supportsColor:Ve,stdout:Q(Z(!0,me.isatty(1))),stderr:Q(Z(!0,me.isatty(2)))}});var $e=J((Ze,he)=>{"use strict";var Be=de(),M=X();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 ee(e){let{env:t}=process;if("FORCE_HYPERLINK"in t)return!(t.FORCE_HYPERLINK.length>0&&parseInt(t.FORCE_HYPERLINK,10)===0);if(M("no-hyperlink")||M("no-hyperlinks")||M("hyperlink=false")||M("hyperlink=never"))return!1;if(M("hyperlink=true")||M("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=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:ee,stdout:ee(process.stdout),stderr:ee(process.stderr)}});var Ke={};Fe(Ke,{ccommand:()=>Oe});module.exports=He(Ke);var P=I(require("fs/promises")),Ee=require("fs"),q=I(require("path")),u=require("lazy-js-utils"),je=I(require("fast-glob")),a=I(require("@simon_he/colorize"));var p="\x1B[",F="\x1B]",S="\x07",G=";",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=S;c.link=(e,t)=>[F,"8",G,G,t,S,e,F,"8",G,G,S].join("");c.image=(e,t={})=>{let r=`${F}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")+S};c.iTerm={setCwd:(e=process.cwd())=>`${F}50;CurrentDir=${e}${S}`,annotation:(e,t={})=>{let r=`${F}1337;`,i=typeof t.x<"u",n=typeof t.y<"u";if((i||n)&&!(i&&n&&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+=(i?[e,t.length,t.x,t.y]:[t.length,e]).join("|"):r+=e,r+S}};var ue=c;var Y=I($e(),1);function O(e,t,{target:r="stdout",...i}={}){return Y.default[r]?ue.link(e,t):i.fallback===!1?e:typeof i.fallback=="function"?i.fallback(e,t):`${e} (\u200B${t}\u200B)`}O.isSupported=Y.default.stdout;O.stderr=(e,t,r={})=>O(e,t,{target:"stderr",...r});O.stderr.isSupported=Y.default.stderr;var te="1.0.65";var H=I(require("@simon_he/colorize")),W=require("lazy-js-utils");var re=console.log;function ye(e){let{status:t}=(0,W.jsShell)("gum -v","pipe");if(t!==0){re((0,H.default)({color:"blue",text:e?"\u6B63\u5728\u4E3A\u60A8\u5B89\u88C5gum...":"install gum..."}));let{status:r}=(0,W.jsShell)("brew install gum");if(r!==0){let{status:i}=(0,W.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(i!==0){let n=
|
|
4
|
+
sudo apt update && sudo apt install gum`);if(i!==0){let n=O(e?"gum\u5B98\u7F51\u94FE\u63A5":"the official website of gum","https://github.com/charmbracelet/gum#installation");return re((0,H.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,H.default)({color:"yellow",text:n,bold:!0})}`}))}}re((0,H.default)({color:"green",text:e?"gum\u5B89\u88C5\u6210\u529F \u{1F389}":"gum install successfully \u{1F389}"}))}}var we=I(require("fs/promises"));function ke(e){return new Promise(t=>{we.default.readFile(e,"utf-8").then(r=>{let i=[];for(let n of r.matchAll(/.PHONY:\s*([\w0-9\-]+)/g)){let l;if(!n||!(l=n[1]))continue;let x=new RegExp(`^${l}:[
|
|
5
5
|
\\s]*([^
|
|
6
|
-
\\\\;]+)`,"sm"),
|
|
6
|
+
\\\\;]+)`,"sm"),R=r.match(x);if(!R)continue;let d=`${R[1].trim()}...`;i.push({name:l,detail:d})}t(i)}).catch(t)})}var Ye=require("yamljs"),L=[],j=null,m=console.log,xe="__ccommand__split",f=process.env.PI_Lang==="zh",D=130,We=f?"\u5DF2\u53D6\u6D88...":"Cancelled...",Re=f?"\u5F53\u524D\u76EE\u5F55\u5E76\u672A\u627E\u5230package.json\u6587\u4EF6":"The current directory and not found package.json file",be=f?"\u6B63\u5728\u4E3A\u60A8\u6267\u884C...":"is running for you...";async function Oe(e){ye(f);let t=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",i=f?"\u8FD0\u884C\u5931\u8D25":"run error",n=e?e.replace(/\s+/," ").split(" "):process.argv.slice(2);if(n[0]==="-v"||n[0]==="--version")return m((0,a.default)({text:f?`ccommand \u5F53\u524D\u7248\u672C: ${te}`:`ccommand Version: ${te}`,color:"green"}));if(n[0]==="-h"||n[0]==="--help"){let s=O(f?"\u6253\u5F00\u4E00\u4E2A\u65B0\u7684\u95EE\u9898":"open an issue","https://github.com/Simon-He95/ccommand/issues"),o=O(f?"\u2728\u5E2E\u52A9\u70B9\u4E00\u4E2A\u661F\u661F":"\u2728star it","https://github.com/Simon-He95/ccommand");return m((0,a.default)({color:"white",text:`
|
|
7
7
|
${(0,a.default)({bold:!0,text:"Common Commands:",bgColor:"blue"})}
|
|
8
8
|
${(0,a.default)({text:`- ccommand -v \u67E5\u770B\u5F53\u524D\u7248\u672C
|
|
9
9
|
- ccommand -help \u67E5\u770B\u5E2E\u52A9
|
|
@@ -11,15 +11,15 @@
|
|
|
11
11
|
- ccommand find \u67E5\u627E\u5F53\u524Dworkspace\u7684\u6240\u6709\u76EE\u5F55
|
|
12
12
|
`,color:"cyan"})}
|
|
13
13
|
If you encounter any problems, you can ${(0,a.default)({color:"magenta",text:s})}.
|
|
14
|
-
If you like it, please ${(0,a.default)({text:o,bold:!0,color:"cyan"})} `}))}else if(n[0]?.endsWith(".rs")){let s=n[0];(0,u.jsShell)(`rustc ${s}`).status===0?(await
|
|
14
|
+
If you like it, please ${(0,a.default)({text:o,bold:!0,color:"cyan"})} `}))}else if(n[0]?.endsWith(".rs")){let s=n[0];(0,u.jsShell)(`rustc ${s}`).status===0?(await ne(`prun ${s}`),(0,u.jsShell)(`./${s.slice(0,s.length-3)}`),m((0,a.default)({color:"green",text:`
|
|
15
15
|
"prun ${s}" ${r} \u{1F389}`}))):m((0,a.default)({color:"red",text:`
|
|
16
|
-
command ${(0,a.default)({bold:!0,color:"cyan",text:`"prun ${s}"`})} ${i} \u274C`}));return}let l;try{l=await(0,u.getPkgTool)()}catch{try{if(await
|
|
17
|
-
`)}" | gum filter --placeholder=" \u{1F914}\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u6307\u4EE4"`,"pipe");if(
|
|
18
|
-
${
|
|
19
|
-
${
|
|
20
|
-
command '${
|
|
21
|
-
prun '${s}${o?` ${o}`:""}' ${r} \u{1F389}`}))):m((0,a.default)({color:"red",text:`
|
|
22
|
-
command ${(0,a.default)({bold:!0,color:"cyan",text:`'${s||n[0]}${o?` ${o}`:""}'`})} ${i} \u274C`}))}}async function
|
|
23
|
-
`,
|
|
24
|
-
`).forEach(d=>{let
|
|
25
|
-
`);await
|
|
16
|
+
command ${(0,a.default)({bold:!0,color:"cyan",text:`"prun ${s}"`})} ${i} \u274C`}));return}let l;try{l=await(0,u.getPkgTool)()}catch{try{if(await P.default.readFile(q.default.resolve(process.cwd(),"./Makefile"),"utf-8")){l="make";let k=await ke("./Makefile"),g=k.reduce((h,$)=>{let{name:C,detail:N}=$;return h[C]=N,h},{}),b="";if(e)b=Te(g,e);else{let{result:h,status:$}=(0,u.jsShell)(`echo "${k.map(C=>C.name).join(`
|
|
17
|
+
`)}" | gum filter --placeholder=" \u{1F914}\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u6307\u4EE4"`,"pipe");if($===D)return V();b=h}await U(b.trim(),""),setTimeout(()=>{(0,u.jsShell)("zsh")},10);return}else return m((0,a.default)({color:"red",text:Re}))}catch{return m((0,a.default)({color:"red",text:Re}))}}let[x,R,d]=De(n),w=x,_;if(n[0]==="find"){if(R)await z(l),w=L.filter(s=>s.includes(R))[0];else if(l==="yarn"){if(await z(l),!L.length)return m((0,a.default)({color:"yellow",text:t}));let{result:s,status:o}=(0,u.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"}"`,"pipe");if(w=s,o===D)return V()}else if(l==="pnpm"){if(await z(l),!L.length)return m((0,a.default)({color:"yellow",text:t}));let{result:s,status:o}=(0,u.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"}"`,{stdio:"pipe",isLog:!0});if(o===D)return V();w=s.trim()}else return m((0,a.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"}));_=await ie()}else{if(_=await ie(),x&&j&&!j[x]||!j)try{let s=(await(0,u.getPkg)("./package.json")||{})?.scripts;if(s&&s[n[0]]){U(n[0],n.slice(1).join(" ")),setTimeout(()=>{(0,u.jsShell)("zsh")},10);return}else if(s&&x){let o=Te(s,n[0]);o||(m((0,a.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,\u8BF7\u68C0\u67E5":"is not found in workspace, current directory or current scripts, please check"}`})),process.exit(1));let k=n.slice(1).join(" ");U(o,k),setTimeout(()=>{(0,u.jsShell)("zsh")},10);return}}catch{}j&&!j[n[0]]&&(m((0,a.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,\u8BF7\u68C0\u67E5":"is not found in workspace, current directory or current scripts, please check"}`})),process.exit())}if(!_)return m((0,a.default)({color:"red",text:f?"\u627E\u4E0D\u5230\u4EFB\u4F55\u53EF\u6267\u884C\u811A\u672C":"No scripts found"}));let A=[],T="";if(!R||n[0]==="find"&&(!n[2]||n[2].startsWith("--"))){let s=Object.keys(_).reduce((g,b)=>{let h=_[b];return A.push(b),g+=`"${b}: ${h.replace(/["`]/g,"\\$1")}"${xe}`,g},""),{result:o,status:k}=(0,u.jsShell)(`echo ${s} | sed "s/${xe}/\\n/g" | gum filter --placeholder=" \u{1F914}\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u6307\u4EE4"`,"pipe");if(k===D)return V();T=o.substring(0,o.indexOf(": "))}if(!R&&!T)return V();m((0,a.default)({text:`\u{1F914} ${be} ${T}`,color:"magenta"}));let[_e,se]=await Ie(),ve=_e.replace(/\s+/g," "),{status:Ce,result:K}=(0,u.jsShell)(ve,{stdio:"pipe",errorExit:!1});if(Ce===0)return setTimeout(()=>{(0,u.jsShell)("zsh")},10),m((0,a.default)({color:"green",text:`
|
|
18
|
+
${se} \u{1F389}`}));if(K.includes("pnpm versions with respective Node.js version support")){m(K),m((0,a.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:s}=(0,u.jsShell)(`npm run ${T}${d?` -- ${d}`:""}`);if(s===0)return setTimeout(()=>{(0,u.jsShell)("zsh")},10),m((0,a.default)({color:"green",text:`
|
|
19
|
+
${se} \u{1F389}`}))}else m(K);m((0,a.default)({color:"red",text:`
|
|
20
|
+
command '${T}' ${i} \u274C`}));function oe(s){return A.find(o=>o===s)??A.find(o=>s.startsWith(o))}async function Ie(){let s="",o="",k=l!=="yarn";l==="npm"?(o=d?` -- ${d}`:"",s=w?` --prefix ${w} `:" "):l==="pnpm"?(o=d?` ${d}`:"",s=w?` --filter ${w} `:" "):l==="yarn"?(o=d?` ${d}`:"",s=w?` workspace ${w} `:" "):l==="bun"&&(o=d?` ${d}`:"",s="");let g="",b="";if(o&&!o.startsWith(" --")){let ce=o.split(" ").filter(Boolean);g=ce[0],o=ce.slice(1).join(" ")}let h=`${l}${k?" run":" "}${s} ${g||(T?oe(T)||T:R)} ${Se(o)?`-- ${o}`:o}`;T=`${g||(T?oe(T):R)}`,n[0]==="find"?b=`pfind ${w} ${T} ${o}`.replace(/\s+/g," ").trim():b=`prun ${T} ${o}`.replace(/\s+/g," ").trim(),await ne(b);let $=b.split(" "),C=$.slice(-1)[0];$[$.length-1]=`'${C}'`;let N=$.join(" ");return[h,N]}async function ie(){try{if(!w||l==="bun"||l==="npm")return(await(0,u.getPkg)("./package.json"))?.scripts;if(l==="pnpm")return(await z(l))[w]||(await(0,u.getPkg)(`${w}/package.json`))?.scripts;if(l==="yarn")return(await z(l))[w]||(await(0,u.getPkg)(`${w}/package.json`))?.scripts}catch{}}function Se(s){return n[0]==="find",n[1]&&s}async function U(s,o){let k,g,b=n[0]?.trim();switch(s&&b&&b!==s?m((0,a.default)({text:`\u{1F914} ${(0,a.default)({text:`'${n[0]}'`,color:"cyan"})} ${f?"\u81EA\u52A8\u7684\u4E3A\u60A8\u5339\u914D\u6210":"automatically match for you to"} ${(0,a.default)({text:`'${s}${o?` ${o}`:""}'`,color:"cyan"})} `,color:"yellow"})):s&&m((0,a.default)({text:`\u{1F914} ${be} ${s}`,color:"magenta"})),l){case"npm":{let{status:h,result:$}=(0,u.jsShell)(`npm run ${s}${o?` -- ${o}`:""}`);k=h,g=$;break}case"pnpm":{let{status:h,result:$}=(0,u.jsShell)(`pnpm run ${s}${o?` ${o}`:""}`,{stdio:"pipe",errorExit:!1});if(g=$,k=h,g.includes("pnpm versions with respective Node.js version support")){m(g),m((0,a.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:C,result:N}=(0,u.jsShell)(`npm run ${s}${o?` ${o}`:""}`);k=C,g=N}break}case"yarn":{let{status:h,result:$}=(0,u.jsShell)(`yarn ${s}${o?` ${o}`:""}`);k=h,g=$;break}case"bun":{let{status:h,result:$}=(0,u.jsShell)(`bun run ${s} ${o}`);k=h,g=$;break}case"make":{let{status:h,result:$}=(0,u.jsShell)(`make ${s} ${o}`);k=h,g=$;break}}return k===0?(await ne(`prun ${s}${o?` ${o}`:""}`),m((0,a.default)({color:"green",text:`
|
|
21
|
+
prun '${s}${o?` ${o}`:""}' ${r} \u{1F389}`}))):(m(g),m((0,a.default)({color:"red",text:`
|
|
22
|
+
command ${(0,a.default)({bold:!0,color:"cyan",text:`'${s||n[0]}${o?` ${o}`:""}'`})} ${i} \u274C`})))}}async function z(e){if(j)return j;let t="";try{t=e==="pnpm"?await P.default.readFile(q.default.resolve(process.cwd(),"pnpm-workspace.yaml"),"utf-8"):await P.default.readFile(q.default.resolve(process.cwd(),"package.json"),"utf-8")}catch{}let r;if(e==="pnpm")r=Ye.parse(t)?.packages||[];else{let i=JSON.parse(t)?.workspaces;(0,u.isPlainObject)(i)?r=i?.packages:r=i||[]}return j=await qe(r)||{},L=Object.keys(j).filter(i=>j[i]&&Object.keys(j[i]).length),j}function De(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 qe(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 i=await(0,u.getPkg)(r);if(!i)return;let{name:n,scripts:l}=i;return{name:n,scripts:l}})).then(r=>r.reduce((i,n)=>{let{name:l,scripts:x}=n;return!l||!x||(i[l]=Object.keys(x).reduce((R,d)=>(d.startsWith("//")||(R[d]=x[d]),R),{})),i},{}))}function Te(e,t){let r=Object.keys(e),i=r.find(n=>n.startsWith(t));if(i)return i;try{let n=new RegExp(t.split("").join("[_-\\w$.:]*"));return r.find(l=>n.test(l))}catch(n){m((0,a.default)({text:`${f?"\u6B63\u5219\u9519\u8BEF":"RegExp error"}: ${n}`,color:"red"})),process.exit(1)}}function V(){return m((0,a.default)({color:"yellow",text:We})),process.exit()}async function ne(e){m((0,a.default)({text:`${f?"\u5FEB\u6377\u6307\u4EE4":"shortcut command"}: ${e}`,color:"blue",bold:!0}));let t=`${process.env.HOME}/.zsh_history`;try{if(!(0,Ee.existsSync)(t))return;let r=await P.default.readFile(t,"utf8"),n=new Date().getTime()/1e3,l=`${r}: ${n.toFixed(0)}:0;${e}
|
|
23
|
+
`,x=[];l.split(`
|
|
24
|
+
`).forEach(d=>{let w=d.split(";").slice(1).join(";"),_=x.findIndex(A=>A.split(";").slice(1).join(";")===w);_!==-1&&x.splice(_,1),x.push(d)});let R=x.join(`
|
|
25
|
+
`);await P.default.writeFile(t,R)}catch{}}0&&(module.exports={ccommand});
|