ccommand 1.0.42 → 1.0.43

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/index.js CHANGED
@@ -1,16 +1,17 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var ke=require("module"),ne=require("fs/promises"),se=require("path"),l=require("lazy-js-utils"),oe=require("fast-glob"),ae=require("@simon_he/colorize"),ie=require("os"),ce=require("tty");function _(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var z=_(ne),U=_(se),le=_(oe),i=_(ae),fe=_(ie),de=_(ce),pe=require;const c="\x1B[",j="\x1B]",b="\x07",B=";",W=process.env.TERM_PROGRAM==="Apple_Terminal",a={};a.cursorTo=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");return typeof t!="number"?c+(e+1)+"G":c+(t+1)+";"+(e+1)+"H"},a.cursorMove=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");let u="";return e<0?u+=c+-e+"D":e>0&&(u+=c+e+"C"),t<0?u+=c+-t+"A":t>0&&(u+=c+t+"B"),u},a.cursorUp=(e=1)=>c+e+"A",a.cursorDown=(e=1)=>c+e+"B",a.cursorForward=(e=1)=>c+e+"C",a.cursorBackward=(e=1)=>c+e+"D",a.cursorLeft=c+"G",a.cursorSavePosition=W?"\x1B7":c+"s",a.cursorRestorePosition=W?"\x1B8":c+"u",a.cursorGetPosition=c+"6n",a.cursorNextLine=c+"E",a.cursorPrevLine=c+"F",a.cursorHide=c+"?25l",a.cursorShow=c+"?25h",a.eraseLines=e=>{let t="";for(let u=0;u<e;u++)t+=a.eraseLine+(u<e-1?a.cursorUp():"");return e&&(t+=a.cursorLeft),t},a.eraseEndLine=c+"K",a.eraseStartLine=c+"1K",a.eraseLine=c+"2K",a.eraseDown=c+"J",a.eraseUp=c+"1J",a.eraseScreen=c+"2J",a.scrollUp=c+"S",a.scrollDown=c+"T",a.clearScreen="\x1Bc",a.clearTerminal=process.platform==="win32"?`${a.eraseScreen}${c}0f`:`${a.eraseScreen}${c}3J${c}H`,a.beep=b,a.link=(e,t)=>[j,"8",B,B,t,b,e,j,"8",B,B,b].join(""),a.image=(e,t={})=>{let u=`${j}1337;File=inline=1`;return t.width&&(u+=`;width=${t.width}`),t.height&&(u+=`;height=${t.height}`),t.preserveAspectRatio===!1&&(u+=";preserveAspectRatio=0"),u+":"+e.toString("base64")+b},a.iTerm={setCwd:(e=process.cwd())=>`${j}50;CurrentDir=${e}${b}`,annotation:(e,t={})=>{let u=`${j}1337;`;const r=typeof t.x<"u",o=typeof t.y<"u";if((r||o)&&!(r&&o&&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,""),u+=t.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",t.length>0?u+=(r?[e,t.length,t.x,t.y]:[t.length,e]).join("|"):u+=e,u+b}};var K=(e,t=process.argv)=>{const u=e.startsWith("-")?"":e.length===1?"-":"--",r=t.indexOf(u+e),o=t.indexOf("--");return r!==-1&&(o===-1||r<o)};const me=fe.default,J=de.default,$=K,{env:f}=process;let R;$("no-color")||$("no-colors")||$("color=false")||$("color=never")?R=0:($("color")||$("colors")||$("color=true")||$("color=always"))&&(R=1),"FORCE_COLOR"in f&&(f.FORCE_COLOR==="true"?R=1:f.FORCE_COLOR==="false"?R=0:R=f.FORCE_COLOR.length===0?1:Math.min(parseInt(f.FORCE_COLOR,10),3));function D(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function P(e,t){if(R===0)return 0;if($("color=16m")||$("color=full")||$("color=truecolor"))return 3;if($("color=256"))return 2;if(e&&!t&&R===void 0)return 0;const u=R||0;if(f.TERM==="dumb")return u;if(process.platform==="win32"){const r=me.release().split(".");return Number(r[0])>=10&&Number(r[2])>=10586?Number(r[2])>=14931?3:2:1}if("CI"in f)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(r=>r in f)||f.CI_NAME==="codeship"?1:u;if("TEAMCITY_VERSION"in f)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(f.TEAMCITY_VERSION)?1:0;if(f.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in f){const r=parseInt((f.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(f.TERM_PROGRAM){case"iTerm.app":return r>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(f.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(f.TERM)||"COLORTERM"in f?1:u}function Ee(e){const t=P(e,e&&e.isTTY);return D(t)}var he={supportsColor:Ee,stdout:D(P(!0,J.isatty(1))),stderr:D(P(!0,J.isatty(2)))};const $e=he,T=K;function X(e){if(/^\d{3,4}$/.test(e)){const u=/(\d{1,2})(\d{2})/.exec(e);return{major:0,minor:parseInt(u[1],10),patch:parseInt(u[2],10)}}const t=(e||"").split(".").map(u=>parseInt(u,10));return{major:t[0],minor:t[1],patch:t[2]}}function M(e){const{env:t}=process;if("FORCE_HYPERLINK"in t)return!(t.FORCE_HYPERLINK.length>0&&parseInt(t.FORCE_HYPERLINK,10)===0);if(T("no-hyperlink")||T("no-hyperlinks")||T("hyperlink=false")||T("hyperlink=never"))return!1;if(T("hyperlink=true")||T("hyperlink=always")||"NETLIFY"in t)return!0;if(!$e.supportsColor(e)||e&&!e.isTTY||process.platform==="win32"||"CI"in t||"TEAMCITY_VERSION"in t)return!1;if("TERM_PROGRAM"in t){const u=X(t.TERM_PROGRAM_VERSION);switch(t.TERM_PROGRAM){case"iTerm.app":return u.major===3?u.minor>=1:u.major>3;case"WezTerm":return u.major>=20200620;case"vscode":return u.major>1||u.major===1&&u.minor>=72}}if("VTE_VERSION"in t){if(t.VTE_VERSION==="0.50.0")return!1;const u=X(t.VTE_VERSION);return u.major>0||u.minor>=50}return!1}var N={supportsHyperlink:M,stdout:M(process.stdout),stderr:M(process.stderr)};function k(e,t,{target:u="stdout",...r}={}){return N[u]?a.link(e,t):r.fallback===!1?e:typeof r.fallback=="function"?r.fallback(e,t):`${e} (\u200B${t}\u200B)`}k.isSupported=N.stdout,k.stderr=(e,t,u={})=>k(e,t,{target:"stderr",...u}),k.stderr.isSupported=N.stderr;var Q="1.0.42";const q=console.log;function ge(e){const{status:t}=l.jsShell("gum -v","pipe");if(t!==0){q(i.default({color:"blue",text:e?"\u6B63\u5728\u4E3A\u60A8\u5B89\u88C5gum...":"install gum..."}));const{status:u}=l.jsShell("brew install gum");if(u!==0){const{status:r}=l.jsShell(`sudo mkdir -p /etc/apt/keyrings
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var Ae=require("module"),fe=require("fs/promises"),de=require("path"),l=require("lazy-js-utils"),pe=require("fast-glob"),me=require("@simon_he/colorize"),he=require("os"),Ee=require("tty");function T(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var B=T(fe),J=T(de),$e=T(pe),c=T(me),ge=T(he),ye=T(Ee),we=require;const i="\x1B[",A="\x1B]",b="\x07",I=";",X=process.env.TERM_PROGRAM==="Apple_Terminal",a={};a.cursorTo=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");return typeof t!="number"?i+(e+1)+"G":i+(t+1)+";"+(e+1)+"H"},a.cursorMove=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");let r="";return e<0?r+=i+-e+"D":e>0&&(r+=i+e+"C"),t<0?r+=i+-t+"A":t>0&&(r+=i+t+"B"),r},a.cursorUp=(e=1)=>i+e+"A",a.cursorDown=(e=1)=>i+e+"B",a.cursorForward=(e=1)=>i+e+"C",a.cursorBackward=(e=1)=>i+e+"D",a.cursorLeft=i+"G",a.cursorSavePosition=X?"\x1B7":i+"s",a.cursorRestorePosition=X?"\x1B8":i+"u",a.cursorGetPosition=i+"6n",a.cursorNextLine=i+"E",a.cursorPrevLine=i+"F",a.cursorHide=i+"?25l",a.cursorShow=i+"?25h",a.eraseLines=e=>{let t="";for(let r=0;r<e;r++)t+=a.eraseLine+(r<e-1?a.cursorUp():"");return e&&(t+=a.cursorLeft),t},a.eraseEndLine=i+"K",a.eraseStartLine=i+"1K",a.eraseLine=i+"2K",a.eraseDown=i+"J",a.eraseUp=i+"1J",a.eraseScreen=i+"2J",a.scrollUp=i+"S",a.scrollDown=i+"T",a.clearScreen="\x1Bc",a.clearTerminal=process.platform==="win32"?`${a.eraseScreen}${i}0f`:`${a.eraseScreen}${i}3J${i}H`,a.beep=b,a.link=(e,t)=>[A,"8",I,I,t,b,e,A,"8",I,I,b].join(""),a.image=(e,t={})=>{let r=`${A}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")+b},a.iTerm={setCwd:(e=process.cwd())=>`${A}50;CurrentDir=${e}${b}`,annotation:(e,t={})=>{let r=`${A}1337;`;const u=typeof t.x<"u",o=typeof t.y<"u";if((u||o)&&!(u&&o&&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+=(u?[e,t.length,t.x,t.y]:[t.length,e]).join("|"):r+=e,r+b}};var Q=(e,t=process.argv)=>{const r=e.startsWith("-")?"":e.length===1?"-":"--",u=t.indexOf(r+e),o=t.indexOf("--");return u!==-1&&(o===-1||u<o)};const Fe=ge.default,Z=ye.default,$=Q,{env:f}=process;let _;$("no-color")||$("no-colors")||$("color=false")||$("color=never")?_=0:($("color")||$("colors")||$("color=true")||$("color=always"))&&(_=1),"FORCE_COLOR"in f&&(f.FORCE_COLOR==="true"?_=1:f.FORCE_COLOR==="false"?_=0:_=f.FORCE_COLOR.length===0?1:Math.min(parseInt(f.FORCE_COLOR,10),3));function M(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function N(e,t){if(_===0)return 0;if($("color=16m")||$("color=full")||$("color=truecolor"))return 3;if($("color=256"))return 2;if(e&&!t&&_===void 0)return 0;const r=_||0;if(f.TERM==="dumb")return r;if(process.platform==="win32"){const u=Fe.release().split(".");return Number(u[0])>=10&&Number(u[2])>=10586?Number(u[2])>=14931?3:2:1}if("CI"in f)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(u=>u in f)||f.CI_NAME==="codeship"?1:r;if("TEAMCITY_VERSION"in f)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(f.TEAMCITY_VERSION)?1:0;if(f.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in f){const u=parseInt((f.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(f.TERM_PROGRAM){case"iTerm.app":return u>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(f.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(f.TERM)||"COLORTERM"in f?1:r}function Ce(e){const t=N(e,e&&e.isTTY);return M(t)}var Re={supportsColor:Ce,stdout:M(N(!0,Z.isatty(1))),stderr:M(N(!0,Z.isatty(2)))};const _e=Re,j=Q;function ee(e){if(/^\d{3,4}$/.test(e)){const r=/(\d{1,2})(\d{2})/.exec(e);return{major:0,minor:parseInt(r[1],10),patch:parseInt(r[2],10)}}const t=(e||"").split(".").map(r=>parseInt(r,10));return{major:t[0],minor:t[1],patch:t[2]}}function q(e){const{env:t}=process;if("FORCE_HYPERLINK"in t)return!(t.FORCE_HYPERLINK.length>0&&parseInt(t.FORCE_HYPERLINK,10)===0);if(j("no-hyperlink")||j("no-hyperlinks")||j("hyperlink=false")||j("hyperlink=never"))return!1;if(j("hyperlink=true")||j("hyperlink=always")||"NETLIFY"in t)return!0;if(!_e.supportsColor(e)||e&&!e.isTTY||process.platform==="win32"||"CI"in t||"TEAMCITY_VERSION"in t)return!1;if("TERM_PROGRAM"in t){const r=ee(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;const r=ee(t.VTE_VERSION);return r.major>0||r.minor>=50}return!1}var V={supportsHyperlink:q,stdout:q(process.stdout),stderr:q(process.stderr)};function k(e,t,{target:r="stdout",...u}={}){return V[r]?a.link(e,t):u.fallback===!1?e:typeof u.fallback=="function"?u.fallback(e,t):`${e} (\u200B${t}\u200B)`}k.isSupported=V.stdout,k.stderr=(e,t,r={})=>k(e,t,{target:"stderr",...r}),k.stderr.isSupported=V.stderr;var te="1.0.43";const z=console.log;function ke(e){const{status:t}=l.jsShell("gum -v","pipe");if(t!==0){z(c.default({color:"blue",text:e?"\u6B63\u5728\u4E3A\u60A8\u5B89\u88C5gum...":"install gum..."}));const{status:r}=l.jsShell("brew install gum");if(r!==0){const{status:u}=l.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(r!==0){const o=k(e?"gum\u5B98\u7F51\u94FE\u63A5":"the official website of gum","https://github.com/charmbracelet/gum#installation");return q(i.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"} ${i.default({color:"yellow",text:o,bold:!0})}`}))}}q(i.default({color:"green",text:e?"gum\u5B89\u88C5\u6210\u529F \u{1F389}":"gum install successfully \u{1F389}"}))}}const ye=pe("yamljs");let A=[],g=null;const p=console.log,Z="__ccommand__split",d=process.env.PI_Lang==="zh",V=130,Fe=d?"\u5DF2\u53D6\u6D88...":"Cancelled...";async function ee(){ge(d);const e=d?"\u5F53\u524D\u76EE\u5F55\u4E0D\u5B58\u5728\u4EFB\u4F55\u5B50\u76EE\u5F55":"The current directory does not have any subdirectories",t=d?"\u8FD0\u884C\u6210\u529F":"run successfully",u=d?"\u8FD0\u884C\u5931\u8D25":"run error",r=process.argv.slice(2);if(r[0]==="-v"||r[0]==="--version")return p(i.default({text:d?`ccommand \u5F53\u524D\u7248\u672C: ${Q}`:`ccommand Version: ${Q}`,color:"green"}));if(r[0]==="-h"||r[0]==="--help"){const s=k(d?"\u6253\u5F00\u4E00\u4E2A\u65B0\u7684\u95EE\u9898":"open an issue","https://github.com/Simon-He95/ccommand/issues"),n=k(d?"\u2728\u5E2E\u52A9\u70B9\u4E00\u4E2A\u661F\u661F":"\u2728star it","https://github.com/Simon-He95/ccommand");return p(i.default({color:"white",text:`
5
- ${i.default({bold:!0,text:"Common Commands:",bgColor:"blue"})}
6
- ${i.default({text:`- ccommand -v \u67E5\u770B\u5F53\u524D\u7248\u672C
4
+ sudo apt update && sudo apt install gum`);if(u!==0){const o=k(e?"gum\u5B98\u7F51\u94FE\u63A5":"the official website of gum","https://github.com/charmbracelet/gum#installation");return z(c.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"} ${c.default({color:"yellow",text:o,bold:!0})}`}))}}z(c.default({color:"green",text:e?"gum\u5B89\u88C5\u6210\u529F \u{1F389}":"gum install successfully \u{1F389}"}))}}const Te=we("yamljs");let O=[],g=null;const p=console.log,re="__ccommand__split",d=process.env.PI_Lang==="zh",H=130,be=d?"\u5DF2\u53D6\u6D88...":"Cancelled...";async function ue(){ke(d);const e=d?"\u5F53\u524D\u76EE\u5F55\u4E0D\u5B58\u5728\u4EFB\u4F55\u5B50\u76EE\u5F55":"The current directory does not have any subdirectories",t=d?"\u8FD0\u884C\u6210\u529F":"run successfully",r=d?"\u8FD0\u884C\u5931\u8D25":"run error",u=process.argv.slice(2);if(u[0]==="-v"||u[0]==="--version")return p(c.default({text:d?`ccommand \u5F53\u524D\u7248\u672C: ${te}`:`ccommand Version: ${te}`,color:"green"}));if(u[0]==="-h"||u[0]==="--help"){const s=k(d?"\u6253\u5F00\u4E00\u4E2A\u65B0\u7684\u95EE\u9898":"open an issue","https://github.com/Simon-He95/ccommand/issues"),n=k(d?"\u2728\u5E2E\u52A9\u70B9\u4E00\u4E2A\u661F\u661F":"\u2728star it","https://github.com/Simon-He95/ccommand");return p(c.default({color:"white",text:`
5
+ ${c.default({bold:!0,text:"Common Commands:",bgColor:"blue"})}
6
+ ${c.default({text:`- ccommand -v \u67E5\u770B\u5F53\u524D\u7248\u672C
7
7
  - ccommand -help \u67E5\u770B\u5E2E\u52A9
8
8
  - ccommand \u6267\u884C\u5F53\u524Dpackage.json
9
9
  - ccommand find \u67E5\u627E\u5F53\u524Dworkspace\u7684\u6240\u6709\u76EE\u5F55
10
10
  `,color:"cyan"})}
11
- If you encounter any problems, you can ${i.default({color:"magenta",text:s})}.
12
- If you like it, please ${i.default({text:n,bold:!0,color:"cyan"})} `}))}const o=await l.getPkgTool(),[y,w,C]=we(r);let m=y,O;if(r[0]==="find"){if(w)await S(o),m=A.filter(s=>s.includes(w))[0];else if(o==="yarn"){if(await S(o),!A.length)return p(i.default({color:"yellow",text:e}));const{result:s,status:n}=l.jsShell(`echo ${A.join(",")} | sed "s/,/\\n/g" | gum filter --placeholder=" \u{1F914}${d?"\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u76EE\u5F55":"Please select a directory to execute"}"`,"pipe");if(m=s,n===V)return I()}else if(o==="pnpm"){if(await S(o),!A.length)return p(i.default({color:"yellow",text:e}));const{result:s,status:n}=l.jsShell(`echo ${A.join(",")} | sed "s/,/\\n/g" | gum filter --placeholder=" \u{1F914}${d?"\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u76EE\u5F55":"Please select a directory to execute"}"`,"pipe");if(n===V)return I();m=s.trim()}else return p(i.default({color:"red",text:d?"find\u6307\u4EE4\u53EA\u80FD\u652F\u6301\u5728yarn\u6216pnpm\u7684monorepo\u6A21\u5F0F\u4E0B\u4F7F\u7528":"find command only support yarn or pnpm"}));O=await H()}else{if(O=await H(),y&&g&&!g[y]||!g)try{const s=(await l.getPkg("./package.json")||{})?.scripts;if(s&&s[r[0]])return p(i.default({text:`${d?"ccommand\u6B63\u5728\u6267\u884C":"ccommand is executing"} ${i.default({color:"cyan",text:`'${r[0]}'`})} \u{1F914} `,color:"yellow"})),Y(r[0],r.slice(1).join(" "));if(s&&y){const n=Re(s,r[0]),F=r.slice(1).join(" ");return Y(n,F)}}catch{}g&&!g[r[0]]&&(p(i.default({color:"red",text:`"${r[0]}" ${d?"\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(!O)return p(i.default({color:"red",text:d?"\u627E\u4E0D\u5230\u4EFB\u4F55\u53EF\u6267\u884C\u811A\u672C":"No scripts found"}));const L=[];let h="";if(!w||r[0]==="find"&&(!r[2]||r[2].startsWith("--"))){const s=Object.keys(O).reduce((E,v)=>{const x=O[v];return L.push(v),E+=`"${v}: ${x.replace(/\"/g,"'")}"${Z}`,E},""),{result:n,status:F}=l.jsShell(`echo ${s} | sed "s/${Z}/\\n/g" | gum filter --placeholder=" \u{1F914}\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u6307\u4EE4"`,"pipe");if(F===V)return I();h=n.substring(0,n.indexOf(": "))}if(!w&&!h)return I();const{status:te}=await l.jsShell(re());if(te===0)return p(i.default({color:"green",text:`
13
- command '${(r[0]==="find"?r[2]:r[1])||h}' ${t} \u{1F389}`})),process.exit();p(i.default({color:"red",text:`
14
- command '${h}' ${u} \u274C`}));function G(s){return L.find(n=>n===s)??L.find(n=>s.startsWith(n))}function re(){let s="",n="";const F=o!=="yarn";o==="npm"?(n=C?` -- ${C}`:"",s=m?` --prefix ${m} `:" "):o==="pnpm"?(n=C?` ${C}`:"",s=m?` --filter ${m} `:" "):o==="yarn"?(n=C?` ${C}`:"",s=m?` workspace ${m} `:" "):o==="bun"&&(n=C?` ${C}`:"",s="");let E="";if(n&&!n.startsWith(" --")){const x=n.split(" ").filter(Boolean);E=x[0],n=x.slice(1).join(" ")}const v=`${o}${F?" run":" "}${s} ${E||(h?G(h)||h:w)} ${ue(n)?`-- ${n}`:n}`;return h=`${E||(h?G(h):w)}`,r[0]==="find"?p(i.default({text:`${d?"\u63D0\u793A":"tips"}: pfind ${m} ${h} ${n}`.replace(/\s+/g," "),color:"blue",bold:!0})):p(i.default({text:`${d?"\u63D0\u793A":"tips"}: prun ${h} ${n}`.replace(/\s+/g," "),color:"blue",bold:!0})),v}async function H(){try{if(!m||o==="bun"||o==="npm")return(await l.getPkg("./package.json"))?.scripts;if(o==="pnpm")return(await S(o))[m]||(await l.getPkg(`${m}/package.json`))?.scripts;if(o==="yarn")return(await S(o))[m]||(await l.getPkg(`${m}/package.json`))?.scripts}catch{}}function ue(s){return r[0]==="find",r[1]&&s}async function Y(s,n){let F;switch(s&&r[0]!==s&&p(i.default({text:`\u{1F914} ${i.default({text:`'${r[0]}'`,color:"cyan"})} ${d?"\u81EA\u52A8\u7684\u4E3A\u60A8\u5339\u914D\u6210":"automatically match for you to"} ${i.default({text:`'${s}${n?` ${n}`:""}'`,color:"cyan"})} `,color:"yellow"})),o){case"npm":{const{status:E}=l.jsShell(`npm run ${s}${n?` -- ${n}`:""}`);F=E;break}case"pnpm":{const{status:E}=l.jsShell(`pnpm run ${s}${n?` ${n}`:""}`);F=E;break}case"yarn":{const{status:E}=l.jsShell(`yarn ${s}${n?` ${n}`:""}`);F=E;break}case"bun":{const{status:E}=l.jsShell(`bun ${s} ${n}`);F=E;break}}return p(F===0?i.default({color:"green",text:`
15
- command '${s}${n?` ${n}`:""}' ${t} \u{1F389}`}):i.default({color:"red",text:`
16
- command ${i.default({bold:!0,color:"cyan",text:`'${s||r[0]}${n?` ${n}`:""}'`})} ${u} \u274C`}))}}async function S(e){if(g)return g;let t="";try{t=e==="pnpm"?await z.default.readFile(U.default.resolve(process.cwd(),"pnpm-workspace.yaml"),"utf-8"):await z.default.readFile(U.default.resolve(process.cwd(),"package.json"),"utf-8")}catch{}let u;if(e==="pnpm")u=ye.parse(t)?.packages||[];else{const r=JSON.parse(t)?.workspaces;l.isPlainObject(r)?u=r?.packages:u=r||[]}return g=await Ce(u)||{},A=Object.keys(g).filter(r=>g[r]&&Object.keys(g[r]).length),g}function we(e){const 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 Ce(e){if(!e.length)return;const t=await le.default(e.map(u=>`${u}/package.json`),{dot:!0,ignore:["**/node_modules/**"]});return Promise.all(t.map(async u=>{const r=await l.getPkg(u);if(!r)return;const{name:o,scripts:y}=r;return{name:o,scripts:y}})).then(u=>u.reduce((r,o)=>{const{name:y,scripts:w}=o;return!y||!w||(r[y]=w),r},{}))}function Re(e,t){const u=Object.keys(e),r=u.find(o=>o.startsWith(t));if(r)return r;try{const o=new RegExp(t.split("").join("[_-\\w$.:]*"));return u.find(y=>o.test(y))}catch(o){p(i.default({text:`${d?"\u6B63\u5219\u9519\u8BEF":"RegExp error"}: ${o}`,color:"red"})),process.exit(1)}}ee();function I(){return p(i.default({color:"yellow",text:Fe})),process.exit()}exports.ccommand=ee;
11
+ If you encounter any problems, you can ${c.default({color:"magenta",text:s})}.
12
+ If you like it, please ${c.default({text:n,bold:!0,color:"cyan"})} `}))}const o=await l.getPkgTool(),[E,F,R]=je(u);let m=E,v;if(u[0]==="find"){if(F)await S(o),m=O.filter(s=>s.includes(F))[0];else if(o==="yarn"){if(await S(o),!O.length)return p(c.default({color:"yellow",text:e}));const{result:s,status:n}=l.jsShell(`echo ${O.join(",")} | sed "s/,/\\n/g" | gum filter --placeholder=" \u{1F914}${d?"\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u76EE\u5F55":"Please select a directory to execute"}"`,"pipe");if(m=s,n===H)return L()}else if(o==="pnpm"){if(await S(o),!O.length)return p(c.default({color:"yellow",text:e}));const{result:s,status:n}=l.jsShell(`echo ${O.join(",")} | sed "s/,/\\n/g" | gum filter --placeholder=" \u{1F914}${d?"\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u76EE\u5F55":"Please select a directory to execute"}"`,"pipe");if(n===H)return L();m=s.trim()}else return p(c.default({color:"red",text:d?"find\u6307\u4EE4\u53EA\u80FD\u652F\u6301\u5728yarn\u6216pnpm\u7684monorepo\u6A21\u5F0F\u4E0B\u4F7F\u7528":"find command only support yarn or pnpm"}));v=await U()}else{if(v=await U(),E&&g&&!g[E]||!g)try{const s=(await l.getPkg("./package.json")||{})?.scripts;if(s&&s[u[0]]){p(c.default({text:`${d?"ccommand\u6B63\u5728\u6267\u884C":"ccommand is executing"} ${c.default({color:"cyan",text:`'${u[0]}'`})} \u{1F914} `,color:"yellow"})),W(u[0],u.slice(1).join(" ")),setTimeout(()=>{l.jsShell("zsh")},10);return}else if(s&&E){const n=ve(s,u[0]),w=u.slice(1).join(" ");W(n,w),setTimeout(()=>{l.jsShell("zsh")},10);return}}catch{}g&&!g[u[0]]&&(p(c.default({color:"red",text:`"${u[0]}" ${d?"\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(!v)return p(c.default({color:"red",text:d?"\u627E\u4E0D\u5230\u4EFB\u4F55\u53EF\u6267\u884C\u811A\u672C":"No scripts found"}));const D=[];let y="";if(!F||u[0]==="find"&&(!u[2]||u[2].startsWith("--"))){const s=Object.keys(v).reduce((h,C)=>{const P=v[C];return D.push(C),h+=`"${C}: ${P.replace(/\"/g,"'")}"${re}`,h},""),{result:n,status:w}=l.jsShell(`echo ${s} | sed "s/${re}/\\n/g" | gum filter --placeholder=" \u{1F914}\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u6307\u4EE4"`,"pipe");if(w===H)return L();y=n.substring(0,n.indexOf(": "))}if(!F&&!y)return L();const[ne,se]=await ae(),{status:oe}=await l.jsShell(ne);if(oe===0)return setTimeout(()=>{l.jsShell("zsh")},10),p(c.default({color:"green",text:`
13
+ ${se} \u{1F389}`}));p(c.default({color:"red",text:`
14
+ command '${y}' ${r} \u274C`}));function Y(s){return D.find(n=>n===s)??D.find(n=>s.startsWith(n))}async function ae(){let s="",n="";const w=o!=="yarn";o==="npm"?(n=R?` -- ${R}`:"",s=m?` --prefix ${m} `:" "):o==="pnpm"?(n=R?` ${R}`:"",s=m?` --filter ${m} `:" "):o==="yarn"?(n=R?` ${R}`:"",s=m?` workspace ${m} `:" "):o==="bun"&&(n=R?` ${R}`:"",s="");let h="",C="";if(n&&!n.startsWith(" --")){const K=n.split(" ").filter(Boolean);h=K[0],n=K.slice(1).join(" ")}const P=`${o}${w?" run":" "}${s} ${h||(y?Y(y)||y:F)} ${ie(n)?`-- ${n}`:n}`;y=`${h||(y?Y(y):F)}`,u[0]==="find"?(C=`pfind ${m} ${y} ${n}`.replace(/\s+/g," ").trim(),await G(C)):(C=`prun ${y} ${n}`.replace(/\s+/g," ").trim(),await G(C));const x=C.split(" "),ce=x.slice(-1)[0];x[x.length-1]=`'${ce}'`;const le=x.join(" ");return[P,le]}async function U(){try{if(!m||o==="bun"||o==="npm")return(await l.getPkg("./package.json"))?.scripts;if(o==="pnpm")return(await S(o))[m]||(await l.getPkg(`${m}/package.json`))?.scripts;if(o==="yarn")return(await S(o))[m]||(await l.getPkg(`${m}/package.json`))?.scripts}catch{}}function ie(s){return u[0]==="find",u[1]&&s}async function W(s,n){let w;switch(s&&u[0]!==s&&p(c.default({text:`\u{1F914} ${c.default({text:`'${u[0]}'`,color:"cyan"})} ${d?"\u81EA\u52A8\u7684\u4E3A\u60A8\u5339\u914D\u6210":"automatically match for you to"} ${c.default({text:`'${s}${n?` ${n}`:""}'`,color:"cyan"})} `,color:"yellow"})),o){case"npm":{const{status:h}=l.jsShell(`npm run ${s}${n?` -- ${n}`:""}`);w=h;break}case"pnpm":{const{status:h}=l.jsShell(`pnpm run ${s}${n?` ${n}`:""}`);w=h;break}case"yarn":{const{status:h}=l.jsShell(`yarn ${s}${n?` ${n}`:""}`);w=h;break}case"bun":{const{status:h}=l.jsShell(`bun ${s} ${n}`);w=h;break}}return w===0?(await G(`prun ${s}${n?` ${n}`:""}`),p(c.default({color:"green",text:`
15
+ prun '${s}${n?` ${n}`:""}' ${t} \u{1F389}`}))):p(c.default({color:"red",text:`
16
+ command ${c.default({bold:!0,color:"cyan",text:`'${s||u[0]}${n?` ${n}`:""}'`})} ${r} \u274C`}))}}async function S(e){if(g)return g;let t="";try{t=e==="pnpm"?await B.default.readFile(J.default.resolve(process.cwd(),"pnpm-workspace.yaml"),"utf-8"):await B.default.readFile(J.default.resolve(process.cwd(),"package.json"),"utf-8")}catch{}let r;if(e==="pnpm")r=Te.parse(t)?.packages||[];else{const u=JSON.parse(t)?.workspaces;l.isPlainObject(u)?r=u?.packages:r=u||[]}return g=await Oe(r)||{},O=Object.keys(g).filter(u=>g[u]&&Object.keys(g[u]).length),g}function je(e){const 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 Oe(e){if(!e.length)return;const t=await $e.default(e.map(r=>`${r}/package.json`),{dot:!0,ignore:["**/node_modules/**"]});return Promise.all(t.map(async r=>{const u=await l.getPkg(r);if(!u)return;const{name:o,scripts:E}=u;return{name:o,scripts:E}})).then(r=>r.reduce((u,o)=>{const{name:E,scripts:F}=o;return!E||!F||(u[E]=F),u},{}))}function ve(e,t){const r=Object.keys(e),u=r.find(o=>o.startsWith(t));if(u)return u;try{const o=new RegExp(t.split("").join("[_-\\w$.:]*"));return r.find(E=>o.test(E))}catch(o){p(c.default({text:`${d?"\u6B63\u5219\u9519\u8BEF":"RegExp error"}: ${o}`,color:"red"})),process.exit(1)}}ue();function L(){return p(c.default({color:"yellow",text:be})),process.exit()}async function G(e){p(c.default({text:`${d?"\u63D0\u793A":"tips"}: ${e}`,color:"blue",bold:!0}));const t=`${process.env.HOME}/.zsh_history`;try{const r=await B.default.readFile(t,"utf8"),o=new Date().getTime()/1e3,E=`${r}: ${o.toFixed(0)}:0;${e}
17
+ `;await B.default.writeFile(t,E)}catch{}}exports.ccommand=ue;
package/dist/index.mjs CHANGED
@@ -1,17 +1,18 @@
1
1
  #!/usr/bin/env node
2
- import{createRequire as ne}from"module";import q from"fs/promises";import z from"path";import{jsShell as F,getPkgTool as oe,getPkg as B,isPlainObject as se}from"lazy-js-utils";import ie from"fast-glob";import c from"@simon_he/colorize";import ce from"os";import ae from"tty";var le=ne(import.meta.url);const a="\x1B[",_="\x1B]",T="\x07",j=";",K=process.env.TERM_PROGRAM==="Apple_Terminal",i={};i.cursorTo=(e,r)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");return typeof r!="number"?a+(e+1)+"G":a+(r+1)+";"+(e+1)+"H"},i.cursorMove=(e,r)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");let u="";return e<0?u+=a+-e+"D":e>0&&(u+=a+e+"C"),r<0?u+=a+-r+"A":r>0&&(u+=a+r+"B"),u},i.cursorUp=(e=1)=>a+e+"A",i.cursorDown=(e=1)=>a+e+"B",i.cursorForward=(e=1)=>a+e+"C",i.cursorBackward=(e=1)=>a+e+"D",i.cursorLeft=a+"G",i.cursorSavePosition=K?"\x1B7":a+"s",i.cursorRestorePosition=K?"\x1B8":a+"u",i.cursorGetPosition=a+"6n",i.cursorNextLine=a+"E",i.cursorPrevLine=a+"F",i.cursorHide=a+"?25l",i.cursorShow=a+"?25h",i.eraseLines=e=>{let r="";for(let u=0;u<e;u++)r+=i.eraseLine+(u<e-1?i.cursorUp():"");return e&&(r+=i.cursorLeft),r},i.eraseEndLine=a+"K",i.eraseStartLine=a+"1K",i.eraseLine=a+"2K",i.eraseDown=a+"J",i.eraseUp=a+"1J",i.eraseScreen=a+"2J",i.scrollUp=a+"S",i.scrollDown=a+"T",i.clearScreen="\x1Bc",i.clearTerminal=process.platform==="win32"?`${i.eraseScreen}${a}0f`:`${i.eraseScreen}${a}3J${a}H`,i.beep=T,i.link=(e,r)=>[_,"8",j,j,r,T,e,_,"8",j,j,T].join(""),i.image=(e,r={})=>{let u=`${_}1337;File=inline=1`;return r.width&&(u+=`;width=${r.width}`),r.height&&(u+=`;height=${r.height}`),r.preserveAspectRatio===!1&&(u+=";preserveAspectRatio=0"),u+":"+e.toString("base64")+T},i.iTerm={setCwd:(e=process.cwd())=>`${_}50;CurrentDir=${e}${T}`,annotation:(e,r={})=>{let u=`${_}1337;`;const t=typeof r.x<"u",s=typeof r.y<"u";if((t||s)&&!(t&&s&&typeof r.length<"u"))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return e=e.replace(/\|/g,""),u+=r.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",r.length>0?u+=(t?[e,r.length,r.x,r.y]:[r.length,e]).join("|"):u+=e,u+T}};var U=(e,r=process.argv)=>{const u=e.startsWith("-")?"":e.length===1?"-":"--",t=r.indexOf(u+e),s=r.indexOf("--");return t!==-1&&(s===-1||t<s)};const fe=ce,J=ae,$=U,{env:l}=process;let R;$("no-color")||$("no-colors")||$("color=false")||$("color=never")?R=0:($("color")||$("colors")||$("color=true")||$("color=always"))&&(R=1),"FORCE_COLOR"in l&&(l.FORCE_COLOR==="true"?R=1:l.FORCE_COLOR==="false"?R=0:R=l.FORCE_COLOR.length===0?1:Math.min(parseInt(l.FORCE_COLOR,10),3));function D(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function M(e,r){if(R===0)return 0;if($("color=16m")||$("color=full")||$("color=truecolor"))return 3;if($("color=256"))return 2;if(e&&!r&&R===void 0)return 0;const u=R||0;if(l.TERM==="dumb")return u;if(process.platform==="win32"){const t=fe.release().split(".");return Number(t[0])>=10&&Number(t[2])>=10586?Number(t[2])>=14931?3:2:1}if("CI"in l)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(t=>t in l)||l.CI_NAME==="codeship"?1:u;if("TEAMCITY_VERSION"in l)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(l.TEAMCITY_VERSION)?1:0;if(l.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in l){const t=parseInt((l.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(l.TERM_PROGRAM){case"iTerm.app":return t>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(l.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(l.TERM)||"COLORTERM"in l?1:u}function pe(e){const r=M(e,e&&e.isTTY);return D(r)}var me={supportsColor:pe,stdout:D(M(!0,J.isatty(1))),stderr:D(M(!0,J.isatty(2)))};const de=me,A=U;function X(e){if(/^\d{3,4}$/.test(e)){const u=/(\d{1,2})(\d{2})/.exec(e);return{major:0,minor:parseInt(u[1],10),patch:parseInt(u[2],10)}}const r=(e||"").split(".").map(u=>parseInt(u,10));return{major:r[0],minor:r[1],patch:r[2]}}function P(e){const{env:r}=process;if("FORCE_HYPERLINK"in r)return!(r.FORCE_HYPERLINK.length>0&&parseInt(r.FORCE_HYPERLINK,10)===0);if(A("no-hyperlink")||A("no-hyperlinks")||A("hyperlink=false")||A("hyperlink=never"))return!1;if(A("hyperlink=true")||A("hyperlink=always")||"NETLIFY"in r)return!0;if(!de.supportsColor(e)||e&&!e.isTTY||process.platform==="win32"||"CI"in r||"TEAMCITY_VERSION"in r)return!1;if("TERM_PROGRAM"in r){const u=X(r.TERM_PROGRAM_VERSION);switch(r.TERM_PROGRAM){case"iTerm.app":return u.major===3?u.minor>=1:u.major>3;case"WezTerm":return u.major>=20200620;case"vscode":return u.major>1||u.major===1&&u.minor>=72}}if("VTE_VERSION"in r){if(r.VTE_VERSION==="0.50.0")return!1;const u=X(r.VTE_VERSION);return u.major>0||u.minor>=50}return!1}var N={supportsHyperlink:P,stdout:P(process.stdout),stderr:P(process.stderr)};function k(e,r,{target:u="stdout",...t}={}){return N[u]?i.link(e,r):t.fallback===!1?e:typeof t.fallback=="function"?t.fallback(e,r):`${e} (\u200B${r}\u200B)`}k.isSupported=N.stdout,k.stderr=(e,r,u={})=>k(e,r,{target:"stderr",...u}),k.stderr.isSupported=N.stderr;var Q="1.0.42";const V=console.log;function Ee(e){const{status:r}=F("gum -v","pipe");if(r!==0){V(c({color:"blue",text:e?"\u6B63\u5728\u4E3A\u60A8\u5B89\u88C5gum...":"install gum..."}));const{status:u}=F("brew install gum");if(u!==0){const{status:t}=F(`sudo mkdir -p /etc/apt/keyrings
2
+ import{createRequire as fe}from"module";import j from"fs/promises";import J from"path";import{jsShell as E,getPkgTool as pe,getPkg as x,isPlainObject as me}from"lazy-js-utils";import de from"fast-glob";import a from"@simon_he/colorize";import Ee from"os";import he from"tty";var $e=fe(import.meta.url);const c="\x1B[",B="\x1B]",O="\x07",S=";",X=process.env.TERM_PROGRAM==="Apple_Terminal",i={};i.cursorTo=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");return typeof t!="number"?c+(e+1)+"G":c+(t+1)+";"+(e+1)+"H"},i.cursorMove=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");let r="";return e<0?r+=c+-e+"D":e>0&&(r+=c+e+"C"),t<0?r+=c+-t+"A":t>0&&(r+=c+t+"B"),r},i.cursorUp=(e=1)=>c+e+"A",i.cursorDown=(e=1)=>c+e+"B",i.cursorForward=(e=1)=>c+e+"C",i.cursorBackward=(e=1)=>c+e+"D",i.cursorLeft=c+"G",i.cursorSavePosition=X?"\x1B7":c+"s",i.cursorRestorePosition=X?"\x1B8":c+"u",i.cursorGetPosition=c+"6n",i.cursorNextLine=c+"E",i.cursorPrevLine=c+"F",i.cursorHide=c+"?25l",i.cursorShow=c+"?25h",i.eraseLines=e=>{let t="";for(let r=0;r<e;r++)t+=i.eraseLine+(r<e-1?i.cursorUp():"");return e&&(t+=i.cursorLeft),t},i.eraseEndLine=c+"K",i.eraseStartLine=c+"1K",i.eraseLine=c+"2K",i.eraseDown=c+"J",i.eraseUp=c+"1J",i.eraseScreen=c+"2J",i.scrollUp=c+"S",i.scrollDown=c+"T",i.clearScreen="\x1Bc",i.clearTerminal=process.platform==="win32"?`${i.eraseScreen}${c}0f`:`${i.eraseScreen}${c}3J${c}H`,i.beep=O,i.link=(e,t)=>[B,"8",S,S,t,O,e,B,"8",S,S,O].join(""),i.image=(e,t={})=>{let r=`${B}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")+O},i.iTerm={setCwd:(e=process.cwd())=>`${B}50;CurrentDir=${e}${O}`,annotation:(e,t={})=>{let r=`${B}1337;`;const n=typeof t.x<"u",s=typeof t.y<"u";if((n||s)&&!(n&&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+=(n?[e,t.length,t.x,t.y]:[t.length,e]).join("|"):r+=e,r+O}};var Q=(e,t=process.argv)=>{const r=e.startsWith("-")?"":e.length===1?"-":"--",n=t.indexOf(r+e),s=t.indexOf("--");return n!==-1&&(s===-1||n<s)};const ge=Ee,Z=he,$=Q,{env:l}=process;let T;$("no-color")||$("no-colors")||$("color=false")||$("color=never")?T=0:($("color")||$("colors")||$("color=true")||$("color=always"))&&(T=1),"FORCE_COLOR"in l&&(l.FORCE_COLOR==="true"?T=1:l.FORCE_COLOR==="false"?T=0:T=l.FORCE_COLOR.length===0?1:Math.min(parseInt(l.FORCE_COLOR,10),3));function P(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function N(e,t){if(T===0)return 0;if($("color=16m")||$("color=full")||$("color=truecolor"))return 3;if($("color=256"))return 2;if(e&&!t&&T===void 0)return 0;const r=T||0;if(l.TERM==="dumb")return r;if(process.platform==="win32"){const n=ge.release().split(".");return Number(n[0])>=10&&Number(n[2])>=10586?Number(n[2])>=14931?3:2:1}if("CI"in l)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(n=>n in l)||l.CI_NAME==="codeship"?1:r;if("TEAMCITY_VERSION"in l)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(l.TEAMCITY_VERSION)?1:0;if(l.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in l){const n=parseInt((l.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(l.TERM_PROGRAM){case"iTerm.app":return n>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(l.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(l.TERM)||"COLORTERM"in l?1:r}function ye(e){const t=N(e,e&&e.isTTY);return P(t)}var we={supportsColor:ye,stdout:P(N(!0,Z.isatty(1))),stderr:P(N(!0,Z.isatty(2)))};const Fe=we,A=Q;function ee(e){if(/^\d{3,4}$/.test(e)){const r=/(\d{1,2})(\d{2})/.exec(e);return{major:0,minor:parseInt(r[1],10),patch:parseInt(r[2],10)}}const t=(e||"").split(".").map(r=>parseInt(r,10));return{major:t[0],minor:t[1],patch:t[2]}}function V(e){const{env:t}=process;if("FORCE_HYPERLINK"in t)return!(t.FORCE_HYPERLINK.length>0&&parseInt(t.FORCE_HYPERLINK,10)===0);if(A("no-hyperlink")||A("no-hyperlinks")||A("hyperlink=false")||A("hyperlink=never"))return!1;if(A("hyperlink=true")||A("hyperlink=always")||"NETLIFY"in t)return!0;if(!Fe.supportsColor(e)||e&&!e.isTTY||process.platform==="win32"||"CI"in t||"TEAMCITY_VERSION"in t)return!1;if("TERM_PROGRAM"in t){const r=ee(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;const r=ee(t.VTE_VERSION);return r.major>0||r.minor>=50}return!1}var H={supportsHyperlink:V,stdout:V(process.stdout),stderr:V(process.stderr)};function k(e,t,{target:r="stdout",...n}={}){return H[r]?i.link(e,t):n.fallback===!1?e:typeof n.fallback=="function"?n.fallback(e,t):`${e} (\u200B${t}\u200B)`}k.isSupported=H.stdout,k.stderr=(e,t,r={})=>k(e,t,{target:"stderr",...r}),k.stderr.isSupported=H.stderr;var te="1.0.43";const G=console.log;function Ce(e){const{status:t}=E("gum -v","pipe");if(t!==0){G(a({color:"blue",text:e?"\u6B63\u5728\u4E3A\u60A8\u5B89\u88C5gum...":"install gum..."}));const{status:r}=E("brew install gum");if(r!==0){const{status:n}=E(`sudo mkdir -p /etc/apt/keyrings
3
3
  curl -fsSL https://repo.charm.sh/apt/gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/charm.gpg
4
4
  echo "deb [signed-by=/etc/apt/keyrings/charm.gpg] https://repo.charm.sh/apt/ * *" | sudo tee /etc/apt/sources.list.d/charm.list
5
- sudo apt update && sudo apt install gum`);if(t!==0){const s=k(e?"gum\u5B98\u7F51\u94FE\u63A5":"the official website of gum","https://github.com/charmbracelet/gum#installation");return V(c({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"} ${c({color:"yellow",text:s,bold:!0})}`}))}}V(c({color:"green",text:e?"gum\u5B89\u88C5\u6210\u529F \u{1F389}":"gum install successfully \u{1F389}"}))}}const $e=le("yamljs");let b=[],h=null;const p=console.log,Z="__ccommand__split",f=process.env.PI_Lang==="zh",G=130,he=f?"\u5DF2\u53D6\u6D88...":"Cancelled...";async function ee(){Ee(f);const 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",u=f?"\u8FD0\u884C\u5931\u8D25":"run error",t=process.argv.slice(2);if(t[0]==="-v"||t[0]==="--version")return p(c({text:f?`ccommand \u5F53\u524D\u7248\u672C: ${Q}`:`ccommand Version: ${Q}`,color:"green"}));if(t[0]==="-h"||t[0]==="--help"){const o=k(f?"\u6253\u5F00\u4E00\u4E2A\u65B0\u7684\u95EE\u9898":"open an issue","https://github.com/Simon-He95/ccommand/issues"),n=k(f?"\u2728\u5E2E\u52A9\u70B9\u4E00\u4E2A\u661F\u661F":"\u2728star it","https://github.com/Simon-He95/ccommand");return p(c({color:"white",text:`
6
- ${c({bold:!0,text:"Common Commands:",bgColor:"blue"})}
7
- ${c({text:`- ccommand -v \u67E5\u770B\u5F53\u524D\u7248\u672C
5
+ sudo apt update && sudo apt install gum`);if(n!==0){const s=k(e?"gum\u5B98\u7F51\u94FE\u63A5":"the official website of gum","https://github.com/charmbracelet/gum#installation");return G(a({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"} ${a({color:"yellow",text:s,bold:!0})}`}))}}G(a({color:"green",text:e?"gum\u5B89\u88C5\u6210\u529F \u{1F389}":"gum install successfully \u{1F389}"}))}}const Re=$e("yamljs");let b=[],g=null;const p=console.log,re="__ccommand__split",f=process.env.PI_Lang==="zh",Y=130,Te=f?"\u5DF2\u53D6\u6D88...":"Cancelled...";async function ne(){Ce(f);const e=f?"\u5F53\u524D\u76EE\u5F55\u4E0D\u5B58\u5728\u4EFB\u4F55\u5B50\u76EE\u5F55":"The current directory does not have any subdirectories",t=f?"\u8FD0\u884C\u6210\u529F":"run successfully",r=f?"\u8FD0\u884C\u5931\u8D25":"run error",n=process.argv.slice(2);if(n[0]==="-v"||n[0]==="--version")return p(a({text:f?`ccommand \u5F53\u524D\u7248\u672C: ${te}`:`ccommand Version: ${te}`,color:"green"}));if(n[0]==="-h"||n[0]==="--help"){const o=k(f?"\u6253\u5F00\u4E00\u4E2A\u65B0\u7684\u95EE\u9898":"open an issue","https://github.com/Simon-He95/ccommand/issues"),u=k(f?"\u2728\u5E2E\u52A9\u70B9\u4E00\u4E2A\u661F\u661F":"\u2728star it","https://github.com/Simon-He95/ccommand");return p(a({color:"white",text:`
6
+ ${a({bold:!0,text:"Common Commands:",bgColor:"blue"})}
7
+ ${a({text:`- ccommand -v \u67E5\u770B\u5F53\u524D\u7248\u672C
8
8
  - ccommand -help \u67E5\u770B\u5E2E\u52A9
9
9
  - ccommand \u6267\u884C\u5F53\u524Dpackage.json
10
10
  - ccommand find \u67E5\u627E\u5F53\u524Dworkspace\u7684\u6240\u6709\u76EE\u5F55
11
11
  `,color:"cyan"})}
12
- If you encounter any problems, you can ${c({color:"magenta",text:o})}.
13
- If you like it, please ${c({text:n,bold:!0,color:"cyan"})} `}))}const s=await oe(),[g,w,C]=ge(t);let m=g,O;if(t[0]==="find"){if(w)await I(s),m=b.filter(o=>o.includes(w))[0];else if(s==="yarn"){if(await I(s),!b.length)return p(c({color:"yellow",text:e}));const{result:o,status:n}=F(`echo ${b.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(m=o,n===G)return S()}else if(s==="pnpm"){if(await I(s),!b.length)return p(c({color:"yellow",text:e}));const{result:o,status:n}=F(`echo ${b.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(n===G)return S();m=o.trim()}else return p(c({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"}));O=await Y()}else{if(O=await Y(),g&&h&&!h[g]||!h)try{const o=(await B("./package.json")||{})?.scripts;if(o&&o[t[0]])return p(c({text:`${f?"ccommand\u6B63\u5728\u6267\u884C":"ccommand is executing"} ${c({color:"cyan",text:`'${t[0]}'`})} \u{1F914} `,color:"yellow"})),W(t[0],t.slice(1).join(" "));if(o&&g){const n=Fe(o,t[0]),y=t.slice(1).join(" ");return W(n,y)}}catch{}h&&!h[t[0]]&&(p(c({color:"red",text:`"${t[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(!O)return p(c({color:"red",text:f?"\u627E\u4E0D\u5230\u4EFB\u4F55\u53EF\u6267\u884C\u811A\u672C":"No scripts found"}));const L=[];let E="";if(!w||t[0]==="find"&&(!t[2]||t[2].startsWith("--"))){const o=Object.keys(O).reduce((d,x)=>{const v=O[x];return L.push(x),d+=`"${x}: ${v.replace(/\"/g,"'")}"${Z}`,d},""),{result:n,status:y}=F(`echo ${o} | sed "s/${Z}/\\n/g" | gum filter --placeholder=" \u{1F914}\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u6307\u4EE4"`,"pipe");if(y===G)return S();E=n.substring(0,n.indexOf(": "))}if(!w&&!E)return S();const{status:re}=await F(te());if(re===0)return p(c({color:"green",text:`
14
- command '${(t[0]==="find"?t[2]:t[1])||E}' ${r} \u{1F389}`})),process.exit();p(c({color:"red",text:`
15
- command '${E}' ${u} \u274C`}));function H(o){return L.find(n=>n===o)??L.find(n=>o.startsWith(n))}function te(){let o="",n="";const y=s!=="yarn";s==="npm"?(n=C?` -- ${C}`:"",o=m?` --prefix ${m} `:" "):s==="pnpm"?(n=C?` ${C}`:"",o=m?` --filter ${m} `:" "):s==="yarn"?(n=C?` ${C}`:"",o=m?` workspace ${m} `:" "):s==="bun"&&(n=C?` ${C}`:"",o="");let d="";if(n&&!n.startsWith(" --")){const v=n.split(" ").filter(Boolean);d=v[0],n=v.slice(1).join(" ")}const x=`${s}${y?" run":" "}${o} ${d||(E?H(E)||E:w)} ${ue(n)?`-- ${n}`:n}`;return E=`${d||(E?H(E):w)}`,t[0]==="find"?p(c({text:`${f?"\u63D0\u793A":"tips"}: pfind ${m} ${E} ${n}`.replace(/\s+/g," "),color:"blue",bold:!0})):p(c({text:`${f?"\u63D0\u793A":"tips"}: prun ${E} ${n}`.replace(/\s+/g," "),color:"blue",bold:!0})),x}async function Y(){try{if(!m||s==="bun"||s==="npm")return(await B("./package.json"))?.scripts;if(s==="pnpm")return(await I(s))[m]||(await B(`${m}/package.json`))?.scripts;if(s==="yarn")return(await I(s))[m]||(await B(`${m}/package.json`))?.scripts}catch{}}function ue(o){return t[0]==="find",t[1]&&o}async function W(o,n){let y;switch(o&&t[0]!==o&&p(c({text:`\u{1F914} ${c({text:`'${t[0]}'`,color:"cyan"})} ${f?"\u81EA\u52A8\u7684\u4E3A\u60A8\u5339\u914D\u6210":"automatically match for you to"} ${c({text:`'${o}${n?` ${n}`:""}'`,color:"cyan"})} `,color:"yellow"})),s){case"npm":{const{status:d}=F(`npm run ${o}${n?` -- ${n}`:""}`);y=d;break}case"pnpm":{const{status:d}=F(`pnpm run ${o}${n?` ${n}`:""}`);y=d;break}case"yarn":{const{status:d}=F(`yarn ${o}${n?` ${n}`:""}`);y=d;break}case"bun":{const{status:d}=F(`bun ${o} ${n}`);y=d;break}}return p(y===0?c({color:"green",text:`
16
- command '${o}${n?` ${n}`:""}' ${r} \u{1F389}`}):c({color:"red",text:`
17
- command ${c({bold:!0,color:"cyan",text:`'${o||t[0]}${n?` ${n}`:""}'`})} ${u} \u274C`}))}}async function I(e){if(h)return h;let r="";try{r=e==="pnpm"?await q.readFile(z.resolve(process.cwd(),"pnpm-workspace.yaml"),"utf-8"):await q.readFile(z.resolve(process.cwd(),"package.json"),"utf-8")}catch{}let u;if(e==="pnpm")u=$e.parse(r)?.packages||[];else{const t=JSON.parse(r)?.workspaces;se(t)?u=t?.packages:u=t||[]}return h=await ye(u)||{},b=Object.keys(h).filter(t=>h[t]&&Object.keys(h[t]).length),h}function ge(e){const r=e[0];return r?r.startsWith("--")?["","",e.join(" ")]:e[1]&&e[1].startsWith("--")?[r,"",e.slice(1).join(" ")]:[r,e[1],e.slice(2).join(" ")]:["","",""]}async function ye(e){if(!e.length)return;const r=await ie(e.map(u=>`${u}/package.json`),{dot:!0,ignore:["**/node_modules/**"]});return Promise.all(r.map(async u=>{const t=await B(u);if(!t)return;const{name:s,scripts:g}=t;return{name:s,scripts:g}})).then(u=>u.reduce((t,s)=>{const{name:g,scripts:w}=s;return!g||!w||(t[g]=w),t},{}))}function Fe(e,r){const u=Object.keys(e),t=u.find(s=>s.startsWith(r));if(t)return t;try{const s=new RegExp(r.split("").join("[_-\\w$.:]*"));return u.find(g=>s.test(g))}catch(s){p(c({text:`${f?"\u6B63\u5219\u9519\u8BEF":"RegExp error"}: ${s}`,color:"red"})),process.exit(1)}}ee();function S(){return p(c({color:"yellow",text:he})),process.exit()}export{ee as ccommand};
12
+ If you encounter any problems, you can ${a({color:"magenta",text:o})}.
13
+ If you like it, please ${a({text:u,bold:!0,color:"cyan"})} `}))}const s=await pe(),[h,F,R]=ke(n);let m=h,_;if(n[0]==="find"){if(F)await I(s),m=b.filter(o=>o.includes(F))[0];else if(s==="yarn"){if(await I(s),!b.length)return p(a({color:"yellow",text:e}));const{result:o,status:u}=E(`echo ${b.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(m=o,u===Y)return L()}else if(s==="pnpm"){if(await I(s),!b.length)return p(a({color:"yellow",text:e}));const{result:o,status:u}=E(`echo ${b.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(u===Y)return L();m=o.trim()}else return p(a({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 q()}else{if(_=await q(),h&&g&&!g[h]||!g)try{const o=(await x("./package.json")||{})?.scripts;if(o&&o[n[0]]){p(a({text:`${f?"ccommand\u6B63\u5728\u6267\u884C":"ccommand is executing"} ${a({color:"cyan",text:`'${n[0]}'`})} \u{1F914} `,color:"yellow"})),K(n[0],n.slice(1).join(" ")),setTimeout(()=>{E("zsh")},10);return}else if(o&&h){const u=Ae(o,n[0]),w=n.slice(1).join(" ");K(u,w),setTimeout(()=>{E("zsh")},10);return}}catch{}g&&!g[n[0]]&&(p(a({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 p(a({color:"red",text:f?"\u627E\u4E0D\u5230\u4EFB\u4F55\u53EF\u6267\u884C\u811A\u672C":"No scripts found"}));const D=[];let y="";if(!F||n[0]==="find"&&(!n[2]||n[2].startsWith("--"))){const o=Object.keys(_).reduce((d,C)=>{const M=_[C];return D.push(C),d+=`"${C}: ${M.replace(/\"/g,"'")}"${re}`,d},""),{result:u,status:w}=E(`echo ${o} | sed "s/${re}/\\n/g" | gum filter --placeholder=" \u{1F914}\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u6307\u4EE4"`,"pipe");if(w===Y)return L();y=u.substring(0,u.indexOf(": "))}if(!F&&!y)return L();const[ue,oe]=await ie(),{status:se}=await E(ue);if(se===0)return setTimeout(()=>{E("zsh")},10),p(a({color:"green",text:`
14
+ ${oe} \u{1F389}`}));p(a({color:"red",text:`
15
+ command '${y}' ${r} \u274C`}));function W(o){return D.find(u=>u===o)??D.find(u=>o.startsWith(u))}async function ie(){let o="",u="";const w=s!=="yarn";s==="npm"?(u=R?` -- ${R}`:"",o=m?` --prefix ${m} `:" "):s==="pnpm"?(u=R?` ${R}`:"",o=m?` --filter ${m} `:" "):s==="yarn"?(u=R?` ${R}`:"",o=m?` workspace ${m} `:" "):s==="bun"&&(u=R?` ${R}`:"",o="");let d="",C="";if(u&&!u.startsWith(" --")){const U=u.split(" ").filter(Boolean);d=U[0],u=U.slice(1).join(" ")}const M=`${s}${w?" run":" "}${o} ${d||(y?W(y)||y:F)} ${ce(u)?`-- ${u}`:u}`;y=`${d||(y?W(y):F)}`,n[0]==="find"?(C=`pfind ${m} ${y} ${u}`.replace(/\s+/g," ").trim(),await z(C)):(C=`prun ${y} ${u}`.replace(/\s+/g," ").trim(),await z(C));const v=C.split(" "),ae=v.slice(-1)[0];v[v.length-1]=`'${ae}'`;const le=v.join(" ");return[M,le]}async function q(){try{if(!m||s==="bun"||s==="npm")return(await x("./package.json"))?.scripts;if(s==="pnpm")return(await I(s))[m]||(await x(`${m}/package.json`))?.scripts;if(s==="yarn")return(await I(s))[m]||(await x(`${m}/package.json`))?.scripts}catch{}}function ce(o){return n[0]==="find",n[1]&&o}async function K(o,u){let w;switch(o&&n[0]!==o&&p(a({text:`\u{1F914} ${a({text:`'${n[0]}'`,color:"cyan"})} ${f?"\u81EA\u52A8\u7684\u4E3A\u60A8\u5339\u914D\u6210":"automatically match for you to"} ${a({text:`'${o}${u?` ${u}`:""}'`,color:"cyan"})} `,color:"yellow"})),s){case"npm":{const{status:d}=E(`npm run ${o}${u?` -- ${u}`:""}`);w=d;break}case"pnpm":{const{status:d}=E(`pnpm run ${o}${u?` ${u}`:""}`);w=d;break}case"yarn":{const{status:d}=E(`yarn ${o}${u?` ${u}`:""}`);w=d;break}case"bun":{const{status:d}=E(`bun ${o} ${u}`);w=d;break}}return w===0?(await z(`prun ${o}${u?` ${u}`:""}`),p(a({color:"green",text:`
16
+ prun '${o}${u?` ${u}`:""}' ${t} \u{1F389}`}))):p(a({color:"red",text:`
17
+ command ${a({bold:!0,color:"cyan",text:`'${o||n[0]}${u?` ${u}`:""}'`})} ${r} \u274C`}))}}async function I(e){if(g)return g;let t="";try{t=e==="pnpm"?await j.readFile(J.resolve(process.cwd(),"pnpm-workspace.yaml"),"utf-8"):await j.readFile(J.resolve(process.cwd(),"package.json"),"utf-8")}catch{}let r;if(e==="pnpm")r=Re.parse(t)?.packages||[];else{const n=JSON.parse(t)?.workspaces;me(n)?r=n?.packages:r=n||[]}return g=await Oe(r)||{},b=Object.keys(g).filter(n=>g[n]&&Object.keys(g[n]).length),g}function ke(e){const 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 Oe(e){if(!e.length)return;const t=await de(e.map(r=>`${r}/package.json`),{dot:!0,ignore:["**/node_modules/**"]});return Promise.all(t.map(async r=>{const n=await x(r);if(!n)return;const{name:s,scripts:h}=n;return{name:s,scripts:h}})).then(r=>r.reduce((n,s)=>{const{name:h,scripts:F}=s;return!h||!F||(n[h]=F),n},{}))}function Ae(e,t){const r=Object.keys(e),n=r.find(s=>s.startsWith(t));if(n)return n;try{const s=new RegExp(t.split("").join("[_-\\w$.:]*"));return r.find(h=>s.test(h))}catch(s){p(a({text:`${f?"\u6B63\u5219\u9519\u8BEF":"RegExp error"}: ${s}`,color:"red"})),process.exit(1)}}ne();function L(){return p(a({color:"yellow",text:Te})),process.exit()}async function z(e){p(a({text:`${f?"\u63D0\u793A":"tips"}: ${e}`,color:"blue",bold:!0}));const t=`${process.env.HOME}/.zsh_history`;try{const r=await j.readFile(t,"utf8"),s=new Date().getTime()/1e3,h=`${r}: ${s.toFixed(0)}:0;${e}
18
+ `;await j.writeFile(t,h)}catch{}}export{ne as ccommand};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ccommand",
3
- "version": "1.0.42",
3
+ "version": "1.0.43",
4
4
  "packageManager": "pnpm@6.32.3",
5
5
  "description": "ccommand",
6
6
  "author": "Simon He",