ccommand 1.0.43 → 1.0.45

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,17 +1,17 @@
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
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var Se=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),i=T(me),ge=T(he),ye=T(Ee),we=require;const c="\x1B[",A="\x1B]",j="\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"?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 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},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=X?"\x1B7":c+"s",a.cursorRestorePosition=X?"\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 r=0;r<e;r++)t+=a.eraseLine+(r<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=j,a.link=(e,t)=>[A,"8",I,I,t,j,e,A,"8",I,I,j].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")+j},a.iTerm={setCwd:(e=process.cwd())=>`${A}50;CurrentDir=${e}${j}`,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+j}};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 k;$("no-color")||$("no-colors")||$("color=false")||$("color=never")?k=0:($("color")||$("colors")||$("color=true")||$("color=always"))&&(k=1),"FORCE_COLOR"in f&&(f.FORCE_COLOR==="true"?k=1:f.FORCE_COLOR==="false"?k=0:k=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(k===0)return 0;if($("color=16m")||$("color=full")||$("color=truecolor"))return 3;if($("color=256"))return 2;if(e&&!t&&k===void 0)return 0;const r=k||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 ke=Re,b=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(b("no-hyperlink")||b("no-hyperlinks")||b("hyperlink=false")||b("hyperlink=never"))return!1;if(b("hyperlink=true")||b("hyperlink=always")||"NETLIFY"in t)return!0;if(!ke.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 _(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)`}_.isSupported=V.stdout,_.stderr=(e,t,r={})=>_(e,t,{target:"stderr",...r}),_.stderr.isSupported=V.stderr;var te="1.0.45";const z=console.log;function _e(e){const{status:t}=l.jsShell("gum -v","pipe");if(t!==0){z(i.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(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
4
+ sudo apt update && sudo apt install gum`);if(u!==0){const o=_(e?"gum\u5B98\u7F51\u94FE\u63A5":"the official website of gum","https://github.com/charmbracelet/gum#installation");return z(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})}`}))}}z(i.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,je=d?"\u5DF2\u53D6\u6D88...":"Cancelled...",be=d?"\u5F53\u524D\u76EE\u5F55\u5E76\u672A\u627E\u5230package.json\u6587\u4EF6":"The current directory and not found package.json file";async function ue(){_e(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(i.default({text:d?`ccommand \u5F53\u524D\u7248\u672C: ${te}`:`ccommand Version: ${te}`,color:"green"}));if(u[0]==="-h"||u[0]==="--help"){const s=_(d?"\u6253\u5F00\u4E00\u4E2A\u65B0\u7684\u95EE\u9898":"open an issue","https://github.com/Simon-He95/ccommand/issues"),n=_(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
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 ${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}
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"})} `}))}let o;try{o=await l.getPkgTool()}catch{return p(i.default({color:"red",text:be}))}const[E,F,R]=Oe(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(i.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(i.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(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"}));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(i.default({text:`${d?"ccommand\u6B63\u5728\u6267\u884C":"ccommand is executing"} ${i.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=Ae(s,u[0]),w=u.slice(1).join(" ");W(n,w),setTimeout(()=>{l.jsShell("zsh")},10);return}}catch{}g&&!g[u[0]]&&(p(i.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(i.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(i.default({color:"green",text:`
13
+ ${se} \u{1F389}`}));p(i.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(i.default({text:`\u{1F914} ${i.default({text:`'${u[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: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(i.default({color:"green",text:`
15
+ prun '${s}${n?` ${n}`:""}' ${t} \u{1F389}`}))):p(i.default({color:"red",text:`
16
+ command ${i.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 ve(r)||{},O=Object.keys(g).filter(u=>g[u]&&Object.keys(g[u]).length),g}function Oe(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 ve(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 Ae(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(i.default({text:`${d?"\u6B63\u5219\u9519\u8BEF":"RegExp error"}: ${o}`,color:"red"})),process.exit(1)}}ue();function L(){return p(i.default({color:"yellow",text:je})),process.exit()}async function G(e){p(i.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
17
  `;await B.default.writeFile(t,E)}catch{}}exports.ccommand=ue;
package/dist/index.mjs CHANGED
@@ -1,18 +1,18 @@
1
1
  #!/usr/bin/env node
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
2
+ import{createRequire as fe}from"module";import v from"fs/promises";import J from"path";import{jsShell as E,getPkgTool as pe,getPkg as _,isPlainObject as me}from"lazy-js-utils";import de from"fast-glob";import c from"@simon_he/colorize";import Ee from"os";import he from"tty";var $e=fe(import.meta.url);const a="\x1B[",B="\x1B]",A="\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"?a+(e+1)+"G":a+(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+=a+-e+"D":e>0&&(r+=a+e+"C"),t<0?r+=a+-t+"A":t>0&&(r+=a+t+"B"),r},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=X?"\x1B7":a+"s",i.cursorRestorePosition=X?"\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 t="";for(let r=0;r<e;r++)t+=i.eraseLine+(r<e-1?i.cursorUp():"");return e&&(t+=i.cursorLeft),t},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=A,i.link=(e,t)=>[B,"8",S,S,t,A,e,B,"8",S,S,A].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")+A},i.iTerm={setCwd:(e=process.cwd())=>`${B}50;CurrentDir=${e}${A}`,annotation:(e,t={})=>{let r=`${B}1337;`;const u=typeof t.x<"u",s=typeof t.y<"u";if((u||s)&&!(u&&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+=(u?[e,t.length,t.x,t.y]:[t.length,e]).join("|"):r+=e,r+A}};var Q=(e,t=process.argv)=>{const r=e.startsWith("-")?"":e.length===1?"-":"--",u=t.indexOf(r+e),s=t.indexOf("--");return u!==-1&&(s===-1||u<s)};const ge=Ee,Z=he,$=Q,{env:l}=process;let k;$("no-color")||$("no-colors")||$("color=false")||$("color=never")?k=0:($("color")||$("colors")||$("color=true")||$("color=always"))&&(k=1),"FORCE_COLOR"in l&&(l.FORCE_COLOR==="true"?k=1:l.FORCE_COLOR==="false"?k=0:k=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(k===0)return 0;if($("color=16m")||$("color=full")||$("color=truecolor"))return 3;if($("color=256"))return 2;if(e&&!t&&k===void 0)return 0;const r=k||0;if(l.TERM==="dumb")return r;if(process.platform==="win32"){const u=ge.release().split(".");return Number(u[0])>=10&&Number(u[2])>=10586?Number(u[2])>=14931?3:2:1}if("CI"in l)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(u=>u 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 u=parseInt((l.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(l.TERM_PROGRAM){case"iTerm.app":return u>=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 Fe={supportsColor:ye,stdout:P(N(!0,Z.isatty(1))),stderr:P(N(!0,Z.isatty(2)))};const we=Fe,O=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(O("no-hyperlink")||O("no-hyperlinks")||O("hyperlink=false")||O("hyperlink=never"))return!1;if(O("hyperlink=true")||O("hyperlink=always")||"NETLIFY"in t)return!0;if(!we.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 T(e,t,{target:r="stdout",...u}={}){return H[r]?i.link(e,t):u.fallback===!1?e:typeof u.fallback=="function"?u.fallback(e,t):`${e} (\u200B${t}\u200B)`}T.isSupported=H.stdout,T.stderr=(e,t,r={})=>T(e,t,{target:"stderr",...r}),T.stderr.isSupported=H.stderr;var te="1.0.45";const G=console.log;function Ce(e){const{status:t}=E("gum -v","pipe");if(t!==0){G(c({color:"blue",text:e?"\u6B63\u5728\u4E3A\u60A8\u5B89\u88C5gum...":"install gum..."}));const{status:r}=E("brew install gum");if(r!==0){const{status:u}=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(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
5
+ sudo apt update && sudo apt install gum`);if(u!==0){const s=T(e?"gum\u5B98\u7F51\u94FE\u63A5":"the official website of gum","https://github.com/charmbracelet/gum#installation");return G(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})}`}))}}G(c({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,ke=f?"\u5DF2\u53D6\u6D88...":"Cancelled...",Te=f?"\u5F53\u524D\u76EE\u5F55\u5E76\u672A\u627E\u5230package.json\u6587\u4EF6":"The current directory and not found package.json file";async function ue(){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",u=process.argv.slice(2);if(u[0]==="-v"||u[0]==="--version")return p(c({text:f?`ccommand \u5F53\u524D\u7248\u672C: ${te}`:`ccommand Version: ${te}`,color:"green"}));if(u[0]==="-h"||u[0]==="--help"){const o=T(f?"\u6253\u5F00\u4E00\u4E2A\u65B0\u7684\u95EE\u9898":"open an issue","https://github.com/Simon-He95/ccommand/issues"),n=T(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
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 ${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};
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"})} `}))}let s;try{s=await pe()}catch{return p(c({color:"red",text:Te}))}const[h,w,R]=Ae(u);let m=h,x;if(u[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}=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,n===Y)return D()}else if(s==="pnpm"){if(await I(s),!b.length)return p(c({color:"yellow",text:e}));const{result:o,status:n}=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(n===Y)return D();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"}));x=await q()}else{if(x=await q(),h&&g&&!g[h]||!g)try{const o=(await _("./package.json")||{})?.scripts;if(o&&o[u[0]]){p(c({text:`${f?"ccommand\u6B63\u5728\u6267\u884C":"ccommand is executing"} ${c({color:"cyan",text:`'${u[0]}'`})} \u{1F914} `,color:"yellow"})),K(u[0],u.slice(1).join(" ")),setTimeout(()=>{E("zsh")},10);return}else if(o&&h){const n=be(o,u[0]),F=u.slice(1).join(" ");K(n,F),setTimeout(()=>{E("zsh")},10);return}}catch{}g&&!g[u[0]]&&(p(c({color:"red",text:`"${u[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(!x)return p(c({color:"red",text:f?"\u627E\u4E0D\u5230\u4EFB\u4F55\u53EF\u6267\u884C\u811A\u672C":"No scripts found"}));const L=[];let y="";if(!w||u[0]==="find"&&(!u[2]||u[2].startsWith("--"))){const o=Object.keys(x).reduce((d,C)=>{const M=x[C];return L.push(C),d+=`"${C}: ${M.replace(/\"/g,"'")}"${re}`,d},""),{result:n,status:F}=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(F===Y)return D();y=n.substring(0,n.indexOf(": "))}if(!w&&!y)return D();const[ne,oe]=await ie(),{status:se}=await E(ne);if(se===0)return setTimeout(()=>{E("zsh")},10),p(c({color:"green",text:`
14
+ ${oe} \u{1F389}`}));p(c({color:"red",text:`
15
+ command '${y}' ${r} \u274C`}));function W(o){return L.find(n=>n===o)??L.find(n=>o.startsWith(n))}async function ie(){let o="",n="";const F=s!=="yarn";s==="npm"?(n=R?` -- ${R}`:"",o=m?` --prefix ${m} `:" "):s==="pnpm"?(n=R?` ${R}`:"",o=m?` --filter ${m} `:" "):s==="yarn"?(n=R?` ${R}`:"",o=m?` workspace ${m} `:" "):s==="bun"&&(n=R?` ${R}`:"",o="");let d="",C="";if(n&&!n.startsWith(" --")){const U=n.split(" ").filter(Boolean);d=U[0],n=U.slice(1).join(" ")}const M=`${s}${F?" run":" "}${o} ${d||(y?W(y)||y:w)} ${ce(n)?`-- ${n}`:n}`;y=`${d||(y?W(y):w)}`,u[0]==="find"?(C=`pfind ${m} ${y} ${n}`.replace(/\s+/g," ").trim(),await z(C)):(C=`prun ${y} ${n}`.replace(/\s+/g," ").trim(),await z(C));const j=C.split(" "),ae=j.slice(-1)[0];j[j.length-1]=`'${ae}'`;const le=j.join(" ");return[M,le]}async function q(){try{if(!m||s==="bun"||s==="npm")return(await _("./package.json"))?.scripts;if(s==="pnpm")return(await I(s))[m]||(await _(`${m}/package.json`))?.scripts;if(s==="yarn")return(await I(s))[m]||(await _(`${m}/package.json`))?.scripts}catch{}}function ce(o){return u[0]==="find",u[1]&&o}async function K(o,n){let F;switch(o&&u[0]!==o&&p(c({text:`\u{1F914} ${c({text:`'${u[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}=E(`npm run ${o}${n?` -- ${n}`:""}`);F=d;break}case"pnpm":{const{status:d}=E(`pnpm run ${o}${n?` ${n}`:""}`);F=d;break}case"yarn":{const{status:d}=E(`yarn ${o}${n?` ${n}`:""}`);F=d;break}case"bun":{const{status:d}=E(`bun ${o} ${n}`);F=d;break}}return F===0?(await z(`prun ${o}${n?` ${n}`:""}`),p(c({color:"green",text:`
16
+ prun '${o}${n?` ${n}`:""}' ${t} \u{1F389}`}))):p(c({color:"red",text:`
17
+ command ${c({bold:!0,color:"cyan",text:`'${o||u[0]}${n?` ${n}`:""}'`})} ${r} \u274C`}))}}async function I(e){if(g)return g;let t="";try{t=e==="pnpm"?await v.readFile(J.resolve(process.cwd(),"pnpm-workspace.yaml"),"utf-8"):await v.readFile(J.resolve(process.cwd(),"package.json"),"utf-8")}catch{}let r;if(e==="pnpm")r=Re.parse(t)?.packages||[];else{const u=JSON.parse(t)?.workspaces;me(u)?r=u?.packages:r=u||[]}return g=await Oe(r)||{},b=Object.keys(g).filter(u=>g[u]&&Object.keys(g[u]).length),g}function Ae(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 u=await _(r);if(!u)return;const{name:s,scripts:h}=u;return{name:s,scripts:h}})).then(r=>r.reduce((u,s)=>{const{name:h,scripts:w}=s;return!h||!w||(u[h]=w),u},{}))}function be(e,t){const r=Object.keys(e),u=r.find(s=>s.startsWith(t));if(u)return u;try{const s=new RegExp(t.split("").join("[_-\\w$.:]*"));return r.find(h=>s.test(h))}catch(s){p(c({text:`${f?"\u6B63\u5219\u9519\u8BEF":"RegExp error"}: ${s}`,color:"red"})),process.exit(1)}}ue();function D(){return p(c({color:"yellow",text:ke})),process.exit()}async function z(e){p(c({text:`${f?"\u63D0\u793A":"tips"}: ${e}`,color:"blue",bold:!0}));const t=`${process.env.HOME}/.zsh_history`;try{const r=await v.readFile(t,"utf8"),s=new Date().getTime()/1e3,h=`${r}: ${s.toFixed(0)}:0;${e}
18
+ `;await v.writeFile(t,h)}catch{}}export{ue as ccommand};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ccommand",
3
- "version": "1.0.43",
3
+ "version": "1.0.45",
4
4
  "packageManager": "pnpm@6.32.3",
5
5
  "description": "ccommand",
6
6
  "author": "Simon He",
@@ -33,7 +33,6 @@
33
33
  "dist"
34
34
  ],
35
35
  "scripts": {
36
- "postinstall": "simple-git-hooks",
37
36
  "build": "pkgroll --minify",
38
37
  "dev": "pkgroll --watch",
39
38
  "play": "pnpm run -C playground dev",
@@ -77,10 +76,6 @@
77
76
  "vite": "^3.0.2",
78
77
  "vitest": "^0.13.1"
79
78
  },
80
- "simple-git-hooks": {
81
- "pre-commit": "pnpm exec lint-staged --concurrent false",
82
- "commit-msg": "pnpm exec tsx scripts/verifyCommit.ts $1"
83
- },
84
79
  "lint-staged": {
85
80
  "*": [
86
81
  "prettier --write --cache --ignore-unknown"