ccommand 1.0.83 → 1.0.85

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/dist/cli.js +27 -20
  2. package/dist/index.js +27 -20
  3. package/package.json +1 -1
package/dist/cli.js CHANGED
@@ -1,32 +1,39 @@
1
- "use strict";var Nt=Object.create;var ct=Object.defineProperty;var It=Object.getOwnPropertyDescriptor;var At=Object.getOwnPropertyNames;var qt=Object.getPrototypeOf,Gt=Object.prototype.hasOwnProperty;var Jt=(t,o,i,a)=>{if(o&&typeof o=="object"||typeof o=="function")for(let e of At(o))!Gt.call(t,e)&&e!==i&&ct(t,e,{get:()=>o[e],enumerable:!(a=It(o,e))||a.enumerable});return t};var p=(t,o,i)=>(i=t!=null?Nt(qt(t)):{},Jt(o||!t||!t.__esModule?ct(i,"default",{value:t,enumerable:!0}):i,t));var rt=require("fs"),zt=p(require("fs/promises")),Pt=p(require("path")),T=p(require("process")),l=p(require("@simon_he/colorize")),Wt=require("lazy-js-utils"),$=require("lazy-js-utils/node");var q="1.0.83";var G=p(require("process")),lt=p(require("@simon_he/colorize")),c=console.log,J="__ccommand__split",u=G.default.env.PI_Lang==="zh",W=130,ut=u?"\u5DF2\u53D6\u6D88...":"Cancelled...",Y=u?"\u5F53\u524D\u76EE\u5F55\u5E76\u672A\u627E\u5230package.json\u6587\u4EF6":"The current directory and not found package.json file",Z=u?"\u6B63\u5728\u4E3A\u60A8\u6267\u884C...":"is running for you...";function F(){return c((0,lt.default)({color:"yellow",text:ut})),G.default.exit()}var dt=require("child_process"),L=require("fs"),gt=p(require("fs/promises")),H=p(require("path")),ht=require("util"),M=p(require("@simon_he/colorize")),N=require("lazy-js-utils/node");var mt=require("fs"),B=p(require("fs/promises")),pt=p(require("process")),ft=p(require("@simon_he/colorize"));async function R(t){c((0,ft.default)({text:`${u?"\u5FEB\u6377\u6307\u4EE4":"shortcut command"}: ${t}`,color:"blue",bold:!0}));let o=`${pt.default.env.HOME}/.zsh_history`;try{if(!(0,mt.existsSync)(o))return;let i=await B.default.readFile(o,"utf8"),e=new Date().getTime()/1e3,s=`${i}: ${e.toFixed(0)}:0;${t}
2
- `,m=[];s.split(`
3
- `).forEach(w=>{let x=w.split(";").slice(1).join(";"),_=m.findIndex(z=>z.split(";").slice(1).join(";")===x);_!==-1&&m.splice(_,1),m.push(w)});let b=m.join(`
4
- `);await B.default.writeFile(o,b)}catch{}}var Zt=(0,ht.promisify)(dt.exec),D={};async function K(t){if(D[t]!==void 0)return D[t];try{return await Zt(`which ${t}`),D[t]=!0,!0}catch{return D[t]=!1,!1}}var j=null;async function Bt(){return j!==null||(await K("bun")?j="bun":await K("esno")?j="esno":await K("tsx")?j="tsx":j=null),j}async function yt(t,o,i,a){await R(`prun ${t}`);let{status:e}=await(0,N.jsShell)(o,{errorExit:!1,isLog:!1,stdio:"inherit"});c((0,M.default)({color:e===0?"green":"red",text:`
5
- "prun ${t}" ${e===0?i:a} ${e===0?"\u{1F389}":"\u274C"}`}))}async function V(t,o,i){let a=H.default.extname(t),e="node";if(a===".ts")if(j===null&&await Bt(),j)e=j;else{c((0,M.default)({text:u?`\u6CA1\u6709\u627E\u5230\u53EF\u4EE5\u76F4\u63A5\u6267\u884CTypeScript\u7684\u5DE5\u5177\uFF0C\u63A8\u8350\u5B89\u88C5\u4E0B\u5217\u5DE5\u5177\u4E4B\u4E00\uFF1A
1
+ "use strict";var Dt=Object.create;var dt=Object.defineProperty;var At=Object.getOwnPropertyDescriptor;var qt=Object.getOwnPropertyNames;var Gt=Object.getPrototypeOf,Jt=Object.prototype.hasOwnProperty;var Yt=(t,s,a,i)=>{if(s&&typeof s=="object"||typeof s=="function")for(let e of qt(s))!Jt.call(t,e)&&e!==a&&dt(t,e,{get:()=>s[e],enumerable:!(i=At(s,e))||i.enumerable});return t};var m=(t,s,a)=>(a=t!=null?Dt(Gt(t)):{},Yt(s||!t||!t.__esModule?dt(a,"default",{value:t,enumerable:!0}):a,t));var ut=require("fs"),Lt=m(require("fs/promises")),Ht=m(require("path")),D=m(require("process")),u=m(require("@simon_he/colorize")),Ot=require("lazy-js-utils"),b=require("lazy-js-utils/node");var V="1.0.85";var Q=m(require("process")),gt=m(require("@simon_he/colorize")),c=console.log,U="__ccommand__split",l=Q.default.env.PI_Lang==="zh",O=130,ht=l?"\u5DF2\u53D6\u6D88...":"Cancelled...",X=l?"\u5F53\u524D\u76EE\u5F55\u5E76\u672A\u627E\u5230package.json\u6587\u4EF6":"The current directory and not found package.json file",tt=l?"\u6B63\u5728\u4E3A\u60A8\u6267\u884C...":"is running for you...";function W(){return c((0,gt.default)({color:"yellow",text:ht})),Q.default.exit()}var $t=require("child_process"),T=require("fs"),xt=m(require("fs/promises")),J=m(require("path")),wt=require("util"),I=m(require("@simon_he/colorize")),Y=require("lazy-js-utils/node");var yt=require("fs"),et=m(require("fs/promises")),E=m(require("process")),A=m(require("@simon_he/colorize")),q=require("lazy-js-utils/node");async function M(t){c((0,A.default)({text:`${l?"\u5FEB\u6377\u6307\u4EE4":"shortcut command"}: ${t}`,color:"blue",bold:!0}));let a=(E.default.env.SHELL||"/bin/bash").split("/").pop()||"bash",i="",e="";switch(a){case"zsh":i=`${E.default.env.HOME}/.zsh_history`,e="zsh";break;case"bash":i=E.default.env.HISTFILE||`${E.default.env.HOME}/.bash_history`,e="bash";break;case"fish":i=`${E.default.env.HOME}/.local/share/fish/fish_history`,e="fish";break;default:i=E.default.env.HISTFILE||`${E.default.env.HOME}/.bash_history`,e="bash"}try{if(!(0,yt.existsSync)(i)){c((0,A.default)({text:`${l?`\u672A\u627E\u5230 ${a} \u5386\u53F2\u6587\u4EF6`:`${a} history file not found`}`,color:"yellow"}));return}let o=await et.default.readFile(i,"utf8"),k=Math.floor(new Date().getTime()/1e3),g="",y="";switch(e){case"zsh":g=`: ${k}:0;${t}`;break;case"fish":g=`- cmd: ${t}
2
+ when: ${k}`;break;case"bash":default:E.default.env.HISTTIMEFORMAT?g=`#${k}
3
+ ${t}`:g=t}e==="fish"?y=`${o+(o&&!o.endsWith(`
4
+ `)?`
5
+ `:"")+g}
6
+ `:y=`${o+(o&&!o.endsWith(`
7
+ `)?`
8
+ `:"")+g}
9
+ `;let j=[];y.split(`
10
+ `).forEach(p=>{let S="";e==="zsh"?S=p.split(";").slice(1).join(";"):e==="fish"?p.startsWith("- cmd: ")?S=p.substring(7):S=p:(p.startsWith("#"),S=p);let L=j.findIndex(v=>{let z="";return e==="zsh"?z=v.split(";").slice(1).join(";"):e==="fish"?v.startsWith("- cmd: ")?z=v.substring(7):z=v:(v.startsWith("#"),z=v),z===S});L!==-1&&j.splice(L,1),j.push(p)});let P=j.join(`
11
+ `);switch(await et.default.writeFile(i,P),a){case"zsh":await(0,q.jsShell)("zsh","inherit");break;case"bash":await(0,q.jsShell)("bash","inherit");break;case"fish":await(0,q.jsShell)("fish","inherit");break}}catch{c((0,A.default)({text:`${l?`\u274C \u6DFB\u52A0\u5230 ${a} \u5386\u53F2\u8BB0\u5F55\u5931\u8D25`:`\u274C Failed to add to ${a} history`}`,color:"red"}))}}var Bt=(0,wt.promisify)($t.exec),G={};async function nt(t){if(G[t]!==void 0)return G[t];try{return await Bt(`which ${t}`),G[t]=!0,!0}catch{return G[t]=!1,!1}}var _=null;async function Kt(){return _!==null||(await nt("bun")?_="bun":await nt("esno")?_="esno":await nt("tsx")?_="tsx":_=null),_}async function bt(t,s,a,i){await M(`prun ${t}`);let{status:e}=await(0,Y.jsShell)(s,{errorExit:!1,isLog:!1,stdio:"inherit"});c((0,I.default)({color:e===0?"green":"red",text:`
12
+ "prun ${t}" ${e===0?a:i} ${e===0?"\u{1F389}":"\u274C"}`}))}async function rt(t,s,a){let i=J.default.extname(t),e="node";if(i===".ts")if(_===null&&await Kt(),_)e=_;else{c((0,I.default)({text:l?`\u6CA1\u6709\u627E\u5230\u53EF\u4EE5\u76F4\u63A5\u6267\u884CTypeScript\u7684\u5DE5\u5177\uFF0C\u63A8\u8350\u5B89\u88C5\u4E0B\u5217\u5DE5\u5177\u4E4B\u4E00\uFF1A
6
13
  - npm install -g bun
7
14
  - npm install -g esno
8
15
  - npm install -g tsx`:`No TypeScript executor found. Recommend installing one of:
9
16
  - npm install -g bun
10
17
  - npm install -g esno
11
- - npm install -g tsx`,color:"yellow"}));return}let s=`${e} ${t}`;await yt(t,s,o,i)}async function $t(t,o,i){let a=[".js",".ts",".mjs",".cjs"],e=H.default.extname(t);if(e&&a.includes(e)&&(0,L.existsSync)(t))return await V(t,o,i),!0;if(!e)for(let s of a){let m=`${t}${s}`;if((0,L.existsSync)(m))return await V(m,o,i),!0}if((0,L.existsSync)(t)&&(await gt.default.stat(t)).isDirectory())for(let s of a){let m=H.default.join(t,`index${s}`);if((0,L.existsSync)(m))return await V(m,o,i),!0}return!1}async function xt(t,o,i){t.endsWith(".py")?await yt(t,`python ${t}`,o,i):t.endsWith(".rs")&&((await(0,N.jsShell)(`rustc ${t}`)).status===0?(await R(`prun ${t}`),await(0,N.jsShell)(`./${t.slice(0,t.length-3)}`,"inherit"),c((0,M.default)({color:"green",text:`
12
- "prun ${t}" ${o} \u{1F389}`}))):c((0,M.default)({color:"red",text:`
13
- command "prun ${t}" ${i} \u274C`})))}var C=p(require("@simon_he/colorize")),I=require("lazy-js-utils/node"),Q=console.log;async function wt(t){let{status:o}=await(0,I.jsShell)("gum -v","pipe");if(o!==0){Q((0,C.default)({color:"blue",text:t?"\u6B63\u5728\u4E3A\u60A8\u5B89\u88C5gum...":"install gum..."}));let{status:i}=await(0,I.jsShell)("brew install gum");if(i!==0){let{status:a}=await(0,I.jsShell)(`sudo mkdir -p /etc/apt/keyrings
18
+ - npm install -g tsx`,color:"yellow"}));return}let o=`${e} ${t}`;await bt(t,o,s,a)}async function kt(t,s,a){let i=[".js",".ts",".mjs",".cjs"],e=J.default.extname(t);if(e&&i.includes(e)&&(0,T.existsSync)(t))return await rt(t,s,a),!0;if(!e)for(let o of i){let d=`${t}${o}`;if((0,T.existsSync)(d))return await rt(d,s,a),!0}if((0,T.existsSync)(t)&&(await xt.default.stat(t)).isDirectory())for(let o of i){let d=J.default.join(t,`index${o}`);if((0,T.existsSync)(d))return await rt(d,s,a),!0}return!1}async function jt(t,s,a){t.endsWith(".py")?await bt(t,`python ${t}`,s,a):t.endsWith(".rs")&&((await(0,Y.jsShell)(`rustc ${t}`)).status===0?(await M(`prun ${t}`),await(0,Y.jsShell)(`./${t.slice(0,t.length-3)}`,"inherit"),c((0,I.default)({color:"green",text:`
19
+ "prun ${t}" ${s} \u{1F389}`}))):c((0,I.default)({color:"red",text:`
20
+ command "prun ${t}" ${a} \u274C`})))}var C=m(require("@simon_he/colorize")),Z=require("lazy-js-utils/node"),st=console.log;async function _t(t){let{status:s}=await(0,Z.jsShell)("gum -v","pipe");if(s!==0){st((0,C.default)({color:"blue",text:t?"\u6B63\u5728\u4E3A\u60A8\u5B89\u88C5gum...":"install gum..."}));let{status:a}=await(0,Z.jsShell)("brew install gum");if(a!==0){let{status:i}=await(0,Z.jsShell)(`sudo mkdir -p /etc/apt/keyrings
14
21
  curl -fsSL https://repo.charm.sh/apt/gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/charm.gpg
15
22
  echo "deb [signed-by=/etc/apt/keyrings/charm.gpg] https://repo.charm.sh/apt/ * *" | sudo tee /etc/apt/sources.list.d/charm.list
16
- sudo apt update && sudo apt install gum`);if(a!==0){let e=(await import("terminal-link")).default,s=e(t?"gum\u5B98\u7F51\u94FE\u63A5":"the official website of gum","https://github.com/charmbracelet/gum#installation");return Q((0,C.default)({color:"red",text:`${t?"gum\u5B89\u88C5\u5931\u8D25,\u4F60\u53EF\u4EE5\u81EA\u884C\u4ECE\u4EE5\u4E0B\u94FE\u63A5\u5B89\u88C5":"gum install error, you can install it yourself through"} ${(0,C.default)({color:"yellow",text:s,bold:!0})}`}))}}Q((0,C.default)({color:"green",text:t?"gum\u5B89\u88C5\u6210\u529F \u{1F389}":"gum install successfully \u{1F389}"}))}}var kt=p(require("fs/promises"));function bt(t){return new Promise(o=>{kt.default.readFile(t,"utf-8").then(i=>{let a=[];for(let e of i.matchAll(/.PHONY:\s*([\w\-]+)/g)){let s;if(!e||!(s=e[1]))continue;let m=new RegExp(`^${s}:[
23
+ sudo apt update && sudo apt install gum`);if(i!==0){let e=(await import("terminal-link")).default,o=e(t?"gum\u5B98\u7F51\u94FE\u63A5":"the official website of gum","https://github.com/charmbracelet/gum#installation");return st((0,C.default)({color:"red",text:`${t?"gum\u5B89\u88C5\u5931\u8D25,\u4F60\u53EF\u4EE5\u81EA\u884C\u4ECE\u4EE5\u4E0B\u94FE\u63A5\u5B89\u88C5":"gum install error, you can install it yourself through"} ${(0,C.default)({color:"yellow",text:o,bold:!0})}`}))}}st((0,C.default)({color:"green",text:t?"gum\u5B89\u88C5\u6210\u529F \u{1F389}":"gum install successfully \u{1F389}"}))}}var vt=m(require("fs/promises"));function Et(t){return new Promise(s=>{vt.default.readFile(t,"utf-8").then(a=>{let i=[];for(let e of a.matchAll(/.PHONY:\s*([\w\-]+)/g)){let o;if(!e||!(o=e[1]))continue;let d=new RegExp(`^${o}:[
17
24
  \\s]*([^
18
- \\\\;]+)`,"ms"),b=i.match(m);if(!b)continue;let w=`${b[1].trim()}...`;a.push({name:s,detail:w})}o(a)}).catch(o)})}var jt=p(require("process")),_t=p(require("@simon_he/colorize"));function vt(t){let o=t[0];return o?o.startsWith("--")?["","",t.join(" ")]:t[1]&&t[1].startsWith("--")?[o,"",t.slice(1).join(" ")]:[o,t[1],t.slice(2).join(" ")]:["","",""]}function U(t,o){let i=Object.keys(t),a=i.find(e=>e.startsWith(o));if(a)return a;try{let e=new RegExp(o.split("").join("[_-\\w$.:]*"));return i.find(s=>e.test(s))}catch(e){c((0,_t.default)({text:`${u?"\u6B63\u5219\u9519\u8BEF":"RegExp error"}: ${e}`,color:"red"})),jt.default.exit(1)}}var St=p(require("fs/promises")),X=p(require("path")),tt=p(require("process")),Et=p(require("fast-glob")),Ft=require("lazy-js-utils"),Rt=require("lazy-js-utils/node"),Kt=require("yamljs"),E=[],S=null;async function Vt(t){let o=t==="pnpm"?X.default.resolve(tt.default.cwd(),"pnpm-workspace.yaml"):X.default.resolve(tt.default.cwd(),"package.json");try{return await St.default.readFile(o,"utf-8")}catch{return""}}function Qt(t,o){if(t==="pnpm")return Kt.parse(o)?.packages||[];{let i=JSON.parse(o)?.workspaces;return(0,Ft.isPlainObject)(i)?i?.packages||[]:i||[]}}async function Ut(t){if(!t.length)return{};let o=await(0,Et.default)(t.map(a=>`${a}/package.json`),{dot:!0,ignore:["**/node_modules/**"]});return(await Promise.all(o.map(async a=>{let e=await(0,Rt.getPkg)(a);if(!e)return null;let{name:s,scripts:m}=e;return{name:s,scripts:m}}))).reduce((a,e)=>(!e||!e.name||!e.scripts||(a[e.name]=Object.keys(e.scripts).reduce((s,m)=>(m.startsWith("//")||(s[m]=e.scripts[m]),s),{})),a),{})}async function Xt(t){if(S)return S;let o=await Vt(t),i=Qt(t,o);return S=await Ut(i)||{},E=Object.keys(S).filter(a=>S[a]&&Object.keys(S[a]).length),S}async function O(t){return Xt(t)}var et=(0,Wt.memorizeFn)($.getPkg),nt={};async function Lt(t=T.default.argv.slice(2).join(" ")){await wt(u);debugger;let o=u?"\u5F53\u524D\u76EE\u5F55\u4E0D\u5B58\u5728\u4EFB\u4F55\u5B50\u76EE\u5F55":"The current directory does not have any subdirectories",i=u?"\u8FD0\u884C\u6210\u529F":"run successfully",a=u?"\u8FD0\u884C\u5931\u8D25":"run error",e=t?t.replace(/\s+/," ").split(" "):T.default.argv.slice(2);if(e[0]==="-v"||e[0]==="--version")return c((0,l.default)({text:u?`ccommand \u5F53\u524D\u7248\u672C: ${q}`:`ccommand Version: ${q}`,color:"green"}));if(e[0]==="-h"||e[0]==="--help"){let r=(await import("terminal-link")).default,n=r(u?"\u6253\u5F00\u4E00\u4E2A\u65B0\u7684\u95EE\u9898":"open an issue","https://github.com/Simon-He95/ccommand/issues"),f=r(u?"\u2728\u5E2E\u52A9\u70B9\u4E00\u4E2A\u661F\u661F":"\u2728star it","https://github.com/Simon-He95/ccommand");return c((0,l.default)({color:"white",text:`
19
- ${(0,l.default)({bold:!0,text:"Common Commands:",bgColor:"blue"})}
20
- ${(0,l.default)({text:`- ccommand -v \u67E5\u770B\u5F53\u524D\u7248\u672C
25
+ \\\\;]+)`,"ms"),k=a.match(d);if(!k)continue;let g=`${k[1].trim()}...`;i.push({name:o,detail:g})}s(i)}).catch(s)})}var St=m(require("process")),zt=m(require("@simon_he/colorize"));function Ft(t){let s=t[0];return s?s.startsWith("--")?["","",t.join(" ")]:t[1]&&t[1].startsWith("--")?[s,"",t.slice(1).join(" ")]:[s,t[1],t.slice(2).join(" ")]:["","",""]}function ot(t,s){let a=Object.keys(t),i=a.find(e=>e.startsWith(s));if(i)return i;try{let e=new RegExp(s.split("").join("[_-\\w$.:]*"));return a.find(o=>e.test(o))}catch(e){c((0,zt.default)({text:`${l?"\u6B63\u5219\u9519\u8BEF":"RegExp error"}: ${e}`,color:"red"})),St.default.exit(1)}}var Rt=m(require("fs/promises")),it=m(require("path")),at=m(require("process")),Wt=m(require("fast-glob")),Mt=require("lazy-js-utils"),Pt=require("lazy-js-utils/node"),Vt=require("yamljs"),R=[],F=null;async function Qt(t){let s=t==="pnpm"?it.default.resolve(at.default.cwd(),"pnpm-workspace.yaml"):it.default.resolve(at.default.cwd(),"package.json");try{return await Rt.default.readFile(s,"utf-8")}catch{return""}}function Ut(t,s){if(t==="pnpm")return Vt.parse(s)?.packages||[];{let a=JSON.parse(s)?.workspaces;return(0,Mt.isPlainObject)(a)?a?.packages||[]:a||[]}}async function Xt(t){if(!t.length)return{};let s=await(0,Wt.default)(t.map(i=>`${i}/package.json`),{dot:!0,ignore:["**/node_modules/**"]});return(await Promise.all(s.map(async i=>{let e=await(0,Pt.getPkg)(i);if(!e)return null;let{name:o,scripts:d}=e;return{name:o,scripts:d}}))).reduce((i,e)=>(!e||!e.name||!e.scripts||(i[e.name]=Object.keys(e.scripts).reduce((o,d)=>(d.startsWith("//")||(o[d]=e.scripts[d]),o),{})),i),{})}async function te(t){if(F)return F;let s=await Qt(t),a=Ut(t,s);return F=await Xt(a)||{},R=Object.keys(F).filter(i=>F[i]&&Object.keys(F[i]).length),F}async function N(t){return te(t)}var ct=(0,Ot.memorizeFn)(b.getPkg),lt={};async function Tt(t=D.default.argv.slice(2).join(" ")){await _t(l);let s=l?"\u5F53\u524D\u76EE\u5F55\u4E0D\u5B58\u5728\u4EFB\u4F55\u5B50\u76EE\u5F55":"The current directory does not have any subdirectories",a=l?"\u8FD0\u884C\u6210\u529F":"run successfully",i=l?"\u8FD0\u884C\u5931\u8D25":"run error",e=t?t.replace(/\s+/," ").split(" "):D.default.argv.slice(2);if(e[0]==="-v"||e[0]==="--version")return c((0,u.default)({text:l?`ccommand \u5F53\u524D\u7248\u672C: ${V}`:`ccommand Version: ${V}`,color:"green"}));if(e[0]==="-h"||e[0]==="--help"){let r=(await import("terminal-link")).default,n=r(l?"\u6253\u5F00\u4E00\u4E2A\u65B0\u7684\u95EE\u9898":"open an issue","https://github.com/Simon-He95/ccommand/issues"),h=r(l?"\u2728\u5E2E\u52A9\u70B9\u4E00\u4E2A\u661F\u661F":"\u2728star it","https://github.com/Simon-He95/ccommand");return c((0,u.default)({color:"white",text:`
26
+ ${(0,u.default)({bold:!0,text:"Common Commands:",bgColor:"blue"})}
27
+ ${(0,u.default)({text:`- ccommand -v \u67E5\u770B\u5F53\u524D\u7248\u672C
21
28
  - ccommand -help \u67E5\u770B\u5E2E\u52A9
22
29
  - ccommand \u6267\u884C\u5F53\u524Dpackage.json
23
30
  - ccommand find \u67E5\u627E\u5F53\u524Dworkspace\u7684\u6240\u6709\u76EE\u5F55
24
31
  `,color:"cyan"})}
25
- If you encounter any problems, you can ${(0,l.default)({color:"magenta",text:n})}.
26
- If you like it, please ${(0,l.default)({text:f,bold:!0,color:"cyan"})} `}))}else if(e[0]?.endsWith(".py")||e[0]?.endsWith(".rs")){await xt(e[0],i,a);return}let s;try{s=await(0,$.getPkgTool)()}catch{try{if(await zt.default.readFile(Pt.default.resolve(T.default.cwd(),"./Makefile"),"utf-8")){s="make";let f=await bt("./Makefile"),d=f.reduce((g,h)=>{let{name:v,detail:P}=h;return g[v]=P,g},{}),y="";if(t)y=U(d,t);else{let{result:g,status:h}=await(0,$.jsShell)(`echo "${f.map(v=>v.name).join(`
27
- `)}" | gum filter --placeholder=" \u{1F914}\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u6307\u4EE4"`,"pipe");if(h===W)return F();y=g}await A(y.trim(),"");return}else return c((0,l.default)({color:"red",text:Y}))}catch{if(e[0]!=="find")return c((0,l.default)({color:"red",text:Y}))}}let[m,b,w]=vt(e),x=m,_;if(e[0]==="find"){if(b)await O(s),x=E.filter(r=>r.includes(b))[0];else if(s==="yarn"){if(await O(s),!E.length)return c((0,l.default)({color:"yellow",text:o}));let{result:r,status:n}=await(0,$.jsShell)(`echo ${E.join(",")} | sed "s/,/\\n/g" | gum filter --placeholder=" \u{1F914}${u?"\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u76EE\u5F55":"Please select a directory to execute"}"`,["inherit","pipe","inherit"]);if(x=r,n===W)return F()}else if(s==="pnpm"){if(await O(s),!E.length)return c((0,l.default)({color:"yellow",text:o}));let{result:r,status:n}=await(0,$.jsShell)(`echo ${E.join(",")} | sed "s/,/\\n/g" | gum filter --placeholder=" \u{1F914}${u?"\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u76EE\u5F55":"Please select a directory to execute"}"`,["inherit","pipe","inherit"]);if(n===W)return F();x=r.trim()}else return c((0,l.default)({color:"red",text:u?"find\u6307\u4EE4\u53EA\u80FD\u652F\u6301\u5728yarn\u6216pnpm\u7684monorepo\u6A21\u5F0F\u4E0B\u4F7F\u7528":"find command only support yarn or pnpm"}));_=await it()}else{_=await it();try{let r=(await et("./package.json")||{})?.scripts;if(r&&r[e[0]]){await A(e[0],e.slice(1).join(" "));return}else if(r&&m){let n=U(r,e[0]);if(n){let f=e.slice(1).join(" ");await A(n,f);return}else{if(await $t(e[0],i,a))return;let d=`${m}.py`;if((0,rt.existsSync)(d)){c((0,l.default)({text:`\u{1F914} ${u?"\u627E\u5230Python\u6587\u4EF6":"Found Python file"}: ${d}`,color:"yellow"}));return}let y=`${m}.rs`;if((0,rt.existsSync)(y))return;c((0,l.default)({color:"red",text:`"${e[0]}" ${u?"\u5728\u5DE5\u4F5C\u533A\u3001\u5F53\u524D\u76EE\u5F55\u4E2D\u627E\u4E0D\u5230\u4EFB\u4F55\u53EF\u6267\u884C\u7684\u811A\u672C\u6216\u6587\u4EF6\uFF0C\u8BF7\u68C0\u67E5":"is not found in workspace, current directory or current scripts, please check"}`})),T.default.exit(1)}}}catch{}}if(!_)return c((0,l.default)({color:"red",text:u?"\u627E\u4E0D\u5230\u4EFB\u4F55\u53EF\u6267\u884C\u811A\u672C":"No scripts found"}));let z=[],k="";if(!b||e[0]==="find"&&(!e[2]||e[2].startsWith("--"))){let r=Object.keys(_).reduce((d,y)=>{let g=_[y];return z.push(y),d+=`"${y}: ${g.replace(/\\/g,"\\\\").replace(/(["`])/g,"\\$1")}"${J}`,d},""),{result:n,status:f}=await(0,$.jsShell)(`echo ${r} | sed "s/${J}/\\n/g" | gum filter --placeholder=" \u{1F914}\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u6307\u4EE4"`,{stdio:["inherit","pipe","inherit"],isLog:!1});if(f===W)return F();k=n.substring(0,n.indexOf(": "))}if(!b&&!k)return F();c((0,l.default)({text:`\u{1F914} ${Z} ${k}`,color:"magenta"}));let[Mt,ot]=await Dt(),Ct=Mt.replace(/\s+/g," "),{status:Ot,result:Tt=""}=await(0,$.jsShell)(Ct,{errorExit:!1,stdio:"inherit"});if(Ot===0)return c((0,l.default)({color:"green",text:`
28
- ${ot} \u{1F389}`}));if(Tt.includes("pnpm versions with respective Node.js version support")){c((0,l.default)({text:u?"\u6B63\u5728\u5C1D\u8BD5\u4F7F\u7528 npm \u518D\u6B21\u6267\u884C...":"Trying to use npm to run again...",color:"yellow"}));let{status:r}=await(0,$.jsShell)(`npm run ${k}${w?` -- ${w}`:""}`,"inherit");if(r===0)return c((0,l.default)({color:"green",text:`
29
- ${ot} \u{1F389}`}))}c((0,l.default)({color:"red",text:`
30
- command '${k}' ${a} \u274C`}));function st(r){return z.find(n=>n===r)??z.find(n=>r.startsWith(n))}async function Dt(){let r="",n="",f=s!=="yarn";s==="npm"?(n=w?` -- ${w}`:"",r=x?` --prefix ${x} `:" "):s==="pnpm"?(n=w?` ${w}`:"",r=x?` --filter ${x} `:" "):s==="yarn"?(n=w?` ${w}`:"",r=x?` workspace ${x} `:" "):s==="bun"&&(n=w?` ${w}`:"",r="");let d="",y="";if(n&&!n.startsWith(" --")){let at=n.split(" ").filter(Boolean);d=at[0],n=at.slice(1).join(" ")}let g=`${s}${f?" run":" "}${r} ${d||(k?st(k)||k:b)} ${Ht(n)?`-- ${n}`:n}`;k=`${d||(k?st(k):b)}`,e[0]==="find"?y=`pfind ${x} ${k} ${n}`.replace(/\s+/g," ").trim():y=`prun ${k} ${n}`.replace(/\s+/g," ").trim(),await R(y);let h=y.split(" "),v=h.slice(-1)[0];h[h.length-1]=`'${v}'`;let P=h.join(" ");return[g,P]}async function it(){try{let r=x||"root";if(nt[r])return nt[r];let n;return!x||s==="bun"||s==="npm"?n=(await et("./package.json"))?.scripts:(s==="pnpm"||s==="yarn")&&(n=(await O(s))[x]||(await et(`${x}/package.json`))?.scripts),n&&(nt[r]=n),n}catch{return null}}function Ht(r){return e[0]==="find",e[1]&&r}async function A(r,n){let f,d="",y=e[0]?.trim();switch(r&&y&&y!==r?c((0,l.default)({text:`\u{1F914} ${(0,l.default)({text:`'${e[0]}'`,color:"cyan"})} ${u?"\u81EA\u52A8\u7684\u4E3A\u60A8\u5339\u914D\u6210":"automatically match for you to"} ${(0,l.default)({text:`'${r}${n?` ${n}`:""}'`,color:"cyan"})} `,color:"yellow"})):r&&c((0,l.default)({text:`\u{1F914} ${Z} ${r}`,color:"magenta"})),s){case"npm":{let{status:g,result:h}=await(0,$.jsShell)(`npm run ${r}${n?` -- ${n}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});f=g,d=h;break}case"pnpm":{let{status:g,result:h=""}=await(0,$.jsShell)(`pnpm ${r}${n?` -- ${n}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});if(d=h,f=g,d.includes("pnpm versions with respective Node.js version support")){c((0,l.default)({text:u?"\u6B63\u5728\u5C1D\u8BD5\u4F7F\u7528 npm \u518D\u6B21\u6267\u884C...":"Trying to use npm to run again...",color:"yellow"}));let{status:v,result:P}=await(0,$.jsShell)(`npm run ${r}${n?` -- ${n}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});f=v,d=P}break}case"yarn":{let{status:g,result:h}=await(0,$.jsShell)(`yarn ${r}${n?` ${n}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});f=g,d=h;break}case"bun":{let{status:g,result:h}=await(0,$.jsShell)(`bun run ${r} ${n}`,{errorExit:!1,isLog:!1,stdio:"inherit"});f=g,d=h;break}case"make":{let{status:g,result:h}=await(0,$.jsShell)(`make ${r} ${n}`,{errorExit:!1,isLog:!1,stdio:"inherit"});f=g,d=h;break}}return f===0?(await R(`prun ${r}${n?` ${n}`:""}`),c((0,l.default)({color:"green",text:`
31
- prun '${r}${n?` ${n}`:""}' ${i} \u{1F389}`}))):c((0,l.default)({color:"red",text:`
32
- command ${(0,l.default)({bold:!0,color:"cyan",text:`'${r||e[0]}${n?` ${n}`:""}'`})} ${a} \u274C`}))}}Lt();
32
+ If you encounter any problems, you can ${(0,u.default)({color:"magenta",text:n})}.
33
+ If you like it, please ${(0,u.default)({text:h,bold:!0,color:"cyan"})} `}))}else if(e[0]?.endsWith(".py")||e[0]?.endsWith(".rs")){await jt(e[0],a,i);return}let o;try{o=await(0,b.getPkgTool)()}catch{try{if(await Lt.default.readFile(Ht.default.resolve(D.default.cwd(),"./Makefile"),"utf-8")){o="make";let n=await Et("./Makefile"),h=n.reduce(($,w)=>{let{name:x,detail:H}=w;return $[x]=H,$},{}),f="";if(t)f=ot(h,t);else{let{result:$,status:w}=await(0,b.jsShell)(`echo "${n.map(x=>x.name).join(`
34
+ `)}" | gum filter --placeholder=" \u{1F914}\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u6307\u4EE4"`,"pipe");if(w===O)return W();f=$}await B(f.trim(),"");return}else return c((0,u.default)({color:"red",text:X}))}catch{if(e[0]!=="find")return c((0,u.default)({color:"red",text:X}))}}let[d,k,g]=Ft(e),y=d,j;if(e[0]==="find"){if(k)await N(o),y=R.filter(r=>r.includes(k))[0];else if(o==="yarn"){if(await N(o),!R.length)return c((0,u.default)({color:"yellow",text:s}));let{result:r,status:n}=await(0,b.jsShell)(`echo ${R.join(",")} | sed "s/,/\\n/g" | gum filter --placeholder=" \u{1F914}${l?"\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u76EE\u5F55":"Please select a directory to execute"}"`,["inherit","pipe","inherit"]);if(y=r,n===O)return W()}else if(o==="pnpm"){if(await N(o),!R.length)return c((0,u.default)({color:"yellow",text:s}));let{result:r,status:n}=await(0,b.jsShell)(`echo ${R.join(",")} | sed "s/,/\\n/g" | gum filter --placeholder=" \u{1F914}${l?"\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u76EE\u5F55":"Please select a directory to execute"}"`,["inherit","pipe","inherit"]);if(n===O)return W();y=r.trim()}else return c((0,u.default)({color:"red",text:l?"find\u6307\u4EE4\u53EA\u80FD\u652F\u6301\u5728yarn\u6216pnpm\u7684monorepo\u6A21\u5F0F\u4E0B\u4F7F\u7528":"find command only support yarn or pnpm"}));j=await mt()}else{j=await mt();try{let r=(await ct("./package.json")||{})?.scripts;if(r&&r[e[0]]){await B(e[0],e.slice(1).join(" "));return}else if(r&&d){let n=ot(r,e[0]);if(n){let h=e.slice(1).join(" ");await B(n,h);return}else{if(await kt(e[0],a,i))return;let f=`${d}.py`;if((0,ut.existsSync)(f)){c((0,u.default)({text:`\u{1F914} ${l?"\u627E\u5230Python\u6587\u4EF6":"Found Python file"}: ${f}`,color:"yellow"}));return}let $=`${d}.rs`;if((0,ut.existsSync)($))return;c((0,u.default)({color:"red",text:`"${e[0]}" ${l?"\u5728\u5DE5\u4F5C\u533A\u3001\u5F53\u524D\u76EE\u5F55\u4E2D\u627E\u4E0D\u5230\u4EFB\u4F55\u53EF\u6267\u884C\u7684\u811A\u672C\u6216\u6587\u4EF6\uFF0C\u8BF7\u68C0\u67E5":"is not found in workspace, current directory or current scripts, please check"}`})),D.default.exit(1)}}}catch{}}if(!j)return c((0,u.default)({color:"red",text:l?"\u627E\u4E0D\u5230\u4EFB\u4F55\u53EF\u6267\u884C\u811A\u672C":"No scripts found"}));let P=[],p="";if(!k||e[0]==="find"&&(!e[2]||e[2].startsWith("--"))){let r=Object.keys(j).reduce((f,$)=>{let w=j[$];return P.push($),f+=`"${$}: ${w.replace(/\\/g,"\\\\").replace(/(["`])/g,"\\$1")}"${U}`,f},""),{result:n,status:h}=await(0,b.jsShell)(`echo ${r} | sed "s/${U}/\\n/g" | gum filter --placeholder=" \u{1F914}\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u6307\u4EE4"`,{stdio:["inherit","pipe","inherit"],isLog:!1});if(h===O)return W();p=n.substring(0,n.indexOf(": "))}if(!k&&!p)return W();c((0,u.default)({text:`\u{1F914} ${tt} ${p}`,color:"magenta"}));let[S,L]=await Ct(),v=S.replace(/\s+/g," "),{status:z,result:It=""}=await(0,b.jsShell)(v,{errorExit:!1,stdio:"inherit"});if(z===0)return c((0,u.default)({color:"green",text:`
35
+ ${L} \u{1F389}`}));if(It.includes("pnpm versions with respective Node.js version support")){c((0,u.default)({text:l?"\u6B63\u5728\u5C1D\u8BD5\u4F7F\u7528 npm \u518D\u6B21\u6267\u884C...":"Trying to use npm to run again...",color:"yellow"}));let{status:r}=await(0,b.jsShell)(`npm run ${p}${g?` -- ${g}`:""}`,"inherit");if(r===0)return c((0,u.default)({color:"green",text:`
36
+ ${L} \u{1F389}`}))}c((0,u.default)({color:"red",text:`
37
+ command '${p}' ${i} \u274C`}));function pt(r){return P.find(n=>n===r)??P.find(n=>r.startsWith(n))}async function Ct(){let r="",n="",h=o!=="yarn";o==="npm"?(n=g?` -- ${g}`:"",r=y?` --prefix ${y} `:" "):o==="pnpm"?(n=g?` ${g}`:"",r=y?` --filter ${y} `:" "):o==="yarn"?(n=g?` ${g}`:"",r=y?` workspace ${y} `:" "):o==="bun"&&(n=g?` ${g}`:"",r="");let f="",$="";if(n&&!n.startsWith(" --")){let ft=n.split(" ").filter(Boolean);f=ft[0],n=ft.slice(1).join(" ")}let w=`${o}${h?" run":" "}${r} ${f||(p?pt(p)||p:k)} ${Nt(n)?`-- ${n}`:n}`;p=`${f||(p?pt(p):k)}`,e[0]==="find"?$=`pfind ${y} ${p} ${n}`.replace(/\s+/g," ").trim():$=`prun ${p} ${n}`.replace(/\s+/g," ").trim(),await M($);let x=$.split(" "),H=x.slice(-1)[0];x[x.length-1]=`'${H}'`;let K=x.join(" ");return[w,K]}async function mt(){try{let r=y||"root";if(lt[r])return lt[r];let n;return!y||o==="bun"||o==="npm"?n=(await ct("./package.json"))?.scripts:(o==="pnpm"||o==="yarn")&&(n=(await N(o))[y]||(await ct(`${y}/package.json`))?.scripts),n&&(lt[r]=n),n}catch{return null}}function Nt(r){return e[0]==="find",e[1]&&r}async function B(r,n){let h,f="",$=e[0]?.trim();switch(r&&$&&$!==r?c((0,u.default)({text:`\u{1F914} ${(0,u.default)({text:`'${e[0]}'`,color:"cyan"})} ${l?"\u81EA\u52A8\u7684\u4E3A\u60A8\u5339\u914D\u6210":"automatically match for you to"} ${(0,u.default)({text:`'${r}${n?` ${n}`:""}'`,color:"cyan"})} `,color:"yellow"})):r&&c((0,u.default)({text:`\u{1F914} ${tt} ${r}`,color:"magenta"})),o){case"npm":{let{status:w,result:x}=await(0,b.jsShell)(`npm run ${r}${n?` -- ${n}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});h=w,f=x;break}case"pnpm":{let{status:w,result:x=""}=await(0,b.jsShell)(`pnpm run ${r}${n?` ${n}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});if(f=x,h=w,f.includes("pnpm versions with respective Node.js version support")){c((0,u.default)({text:l?"\u6B63\u5728\u5C1D\u8BD5\u4F7F\u7528 npm \u518D\u6B21\u6267\u884C...":"Trying to use npm to run again...",color:"yellow"}));let{status:H,result:K}=await(0,b.jsShell)(`npm run ${r}${n?` -- ${n}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});h=H,f=K}break}case"yarn":{let{status:w,result:x}=await(0,b.jsShell)(`yarn ${r}${n?` ${n}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});h=w,f=x;break}case"bun":{let{status:w,result:x}=await(0,b.jsShell)(`bun run ${r} ${n}`,{errorExit:!1,isLog:!1,stdio:"inherit"});h=w,f=x;break}case"make":{let{status:w,result:x}=await(0,b.jsShell)(`make ${r} ${n}`,{errorExit:!1,isLog:!1,stdio:"inherit"});h=w,f=x;break}}return h===0?(await M(`prun ${r}${n?` ${n}`:""}`),c((0,u.default)({color:"green",text:`
38
+ prun '${r}${n?` ${n}`:""}' ${a} \u{1F389}`}))):c((0,u.default)({color:"red",text:`
39
+ command ${(0,u.default)({bold:!0,color:"cyan",text:`'${r||e[0]}${n?` ${n}`:""}'`})} ${i} \u274C`}))}}Tt();
package/dist/index.js CHANGED
@@ -1,32 +1,39 @@
1
- "use strict";var It=Object.create;var D=Object.defineProperty;var At=Object.getOwnPropertyDescriptor;var qt=Object.getOwnPropertyNames;var Gt=Object.getPrototypeOf,Jt=Object.prototype.hasOwnProperty;var Yt=(t,r)=>{for(var s in r)D(t,s,{get:r[s],enumerable:!0})},lt=(t,r,s,a)=>{if(r&&typeof r=="object"||typeof r=="function")for(let e of qt(r))!Jt.call(t,e)&&e!==s&&D(t,e,{get:()=>r[e],enumerable:!(a=At(r,e))||a.enumerable});return t};var p=(t,r,s)=>(s=t!=null?It(Gt(t)):{},lt(r||!t||!t.__esModule?D(s,"default",{value:t,enumerable:!0}):s,t)),Zt=t=>lt(D({},"__esModule",{value:!0}),t);var ne={};Yt(ne,{ccommand:()=>Mt});module.exports=Zt(ne);var ot=require("fs"),Pt=p(require("fs/promises")),Wt=p(require("path")),T=p(require("process")),l=p(require("@simon_he/colorize")),Lt=require("lazy-js-utils"),x=require("lazy-js-utils/node");var G="1.0.83";var J=p(require("process")),ut=p(require("@simon_he/colorize")),c=console.log,Y="__ccommand__split",u=J.default.env.PI_Lang==="zh",W=130,mt=u?"\u5DF2\u53D6\u6D88...":"Cancelled...",Z=u?"\u5F53\u524D\u76EE\u5F55\u5E76\u672A\u627E\u5230package.json\u6587\u4EF6":"The current directory and not found package.json file",B=u?"\u6B63\u5728\u4E3A\u60A8\u6267\u884C...":"is running for you...";function F(){return c((0,ut.default)({color:"yellow",text:mt})),J.default.exit()}var gt=require("child_process"),L=require("fs"),ht=p(require("fs/promises")),N=p(require("path")),yt=require("util"),M=p(require("@simon_he/colorize")),I=require("lazy-js-utils/node");var pt=require("fs"),K=p(require("fs/promises")),ft=p(require("process")),dt=p(require("@simon_he/colorize"));async function R(t){c((0,dt.default)({text:`${u?"\u5FEB\u6377\u6307\u4EE4":"shortcut command"}: ${t}`,color:"blue",bold:!0}));let r=`${ft.default.env.HOME}/.zsh_history`;try{if(!(0,pt.existsSync)(r))return;let s=await K.default.readFile(r,"utf8"),e=new Date().getTime()/1e3,i=`${s}: ${e.toFixed(0)}:0;${t}
2
- `,m=[];i.split(`
3
- `).forEach(w=>{let $=w.split(";").slice(1).join(";"),_=m.findIndex(z=>z.split(";").slice(1).join(";")===$);_!==-1&&m.splice(_,1),m.push(w)});let b=m.join(`
4
- `);await K.default.writeFile(r,b)}catch{}}var Kt=(0,yt.promisify)(gt.exec),H={};async function V(t){if(H[t]!==void 0)return H[t];try{return await Kt(`which ${t}`),H[t]=!0,!0}catch{return H[t]=!1,!1}}var j=null;async function Vt(){return j!==null||(await V("bun")?j="bun":await V("esno")?j="esno":await V("tsx")?j="tsx":j=null),j}async function xt(t,r,s,a){await R(`prun ${t}`);let{status:e}=await(0,I.jsShell)(r,{errorExit:!1,isLog:!1,stdio:"inherit"});c((0,M.default)({color:e===0?"green":"red",text:`
5
- "prun ${t}" ${e===0?s:a} ${e===0?"\u{1F389}":"\u274C"}`}))}async function Q(t,r,s){let a=N.default.extname(t),e="node";if(a===".ts")if(j===null&&await Vt(),j)e=j;else{c((0,M.default)({text:u?`\u6CA1\u6709\u627E\u5230\u53EF\u4EE5\u76F4\u63A5\u6267\u884CTypeScript\u7684\u5DE5\u5177\uFF0C\u63A8\u8350\u5B89\u88C5\u4E0B\u5217\u5DE5\u5177\u4E4B\u4E00\uFF1A
1
+ "use strict";var At=Object.create;var A=Object.defineProperty;var qt=Object.getOwnPropertyDescriptor;var Gt=Object.getOwnPropertyNames;var Jt=Object.getPrototypeOf,Yt=Object.prototype.hasOwnProperty;var Zt=(t,s)=>{for(var o in s)A(t,o,{get:s[o],enumerable:!0})},gt=(t,s,o,a)=>{if(s&&typeof s=="object"||typeof s=="function")for(let e of Gt(s))!Yt.call(t,e)&&e!==o&&A(t,e,{get:()=>s[e],enumerable:!(a=qt(s,e))||a.enumerable});return t};var m=(t,s,o)=>(o=t!=null?At(Jt(t)):{},gt(s||!t||!t.__esModule?A(o,"default",{value:t,enumerable:!0}):o,t)),Bt=t=>gt(A({},"__esModule",{value:!0}),t);var re={};Zt(re,{ccommand:()=>It});module.exports=Bt(re);var pt=require("fs"),Ht=m(require("fs/promises")),Ot=m(require("path")),D=m(require("process")),u=m(require("@simon_he/colorize")),Tt=require("lazy-js-utils"),b=require("lazy-js-utils/node");var Q="1.0.85";var U=m(require("process")),ht=m(require("@simon_he/colorize")),c=console.log,X="__ccommand__split",l=U.default.env.PI_Lang==="zh",O=130,yt=l?"\u5DF2\u53D6\u6D88...":"Cancelled...",tt=l?"\u5F53\u524D\u76EE\u5F55\u5E76\u672A\u627E\u5230package.json\u6587\u4EF6":"The current directory and not found package.json file",et=l?"\u6B63\u5728\u4E3A\u60A8\u6267\u884C...":"is running for you...";function W(){return c((0,ht.default)({color:"yellow",text:yt})),U.default.exit()}var xt=require("child_process"),T=require("fs"),wt=m(require("fs/promises")),Y=m(require("path")),bt=require("util"),I=m(require("@simon_he/colorize")),Z=require("lazy-js-utils/node");var $t=require("fs"),nt=m(require("fs/promises")),E=m(require("process")),q=m(require("@simon_he/colorize")),G=require("lazy-js-utils/node");async function M(t){c((0,q.default)({text:`${l?"\u5FEB\u6377\u6307\u4EE4":"shortcut command"}: ${t}`,color:"blue",bold:!0}));let o=(E.default.env.SHELL||"/bin/bash").split("/").pop()||"bash",a="",e="";switch(o){case"zsh":a=`${E.default.env.HOME}/.zsh_history`,e="zsh";break;case"bash":a=E.default.env.HISTFILE||`${E.default.env.HOME}/.bash_history`,e="bash";break;case"fish":a=`${E.default.env.HOME}/.local/share/fish/fish_history`,e="fish";break;default:a=E.default.env.HISTFILE||`${E.default.env.HOME}/.bash_history`,e="bash"}try{if(!(0,$t.existsSync)(a)){c((0,q.default)({text:`${l?`\u672A\u627E\u5230 ${o} \u5386\u53F2\u6587\u4EF6`:`${o} history file not found`}`,color:"yellow"}));return}let i=await nt.default.readFile(a,"utf8"),k=Math.floor(new Date().getTime()/1e3),g="",y="";switch(e){case"zsh":g=`: ${k}:0;${t}`;break;case"fish":g=`- cmd: ${t}
2
+ when: ${k}`;break;case"bash":default:E.default.env.HISTTIMEFORMAT?g=`#${k}
3
+ ${t}`:g=t}e==="fish"?y=`${i+(i&&!i.endsWith(`
4
+ `)?`
5
+ `:"")+g}
6
+ `:y=`${i+(i&&!i.endsWith(`
7
+ `)?`
8
+ `:"")+g}
9
+ `;let j=[];y.split(`
10
+ `).forEach(p=>{let S="";e==="zsh"?S=p.split(";").slice(1).join(";"):e==="fish"?p.startsWith("- cmd: ")?S=p.substring(7):S=p:(p.startsWith("#"),S=p);let L=j.findIndex(v=>{let z="";return e==="zsh"?z=v.split(";").slice(1).join(";"):e==="fish"?v.startsWith("- cmd: ")?z=v.substring(7):z=v:(v.startsWith("#"),z=v),z===S});L!==-1&&j.splice(L,1),j.push(p)});let P=j.join(`
11
+ `);switch(await nt.default.writeFile(a,P),o){case"zsh":await(0,G.jsShell)("zsh","inherit");break;case"bash":await(0,G.jsShell)("bash","inherit");break;case"fish":await(0,G.jsShell)("fish","inherit");break}}catch{c((0,q.default)({text:`${l?`\u274C \u6DFB\u52A0\u5230 ${o} \u5386\u53F2\u8BB0\u5F55\u5931\u8D25`:`\u274C Failed to add to ${o} history`}`,color:"red"}))}}var Vt=(0,bt.promisify)(xt.exec),J={};async function rt(t){if(J[t]!==void 0)return J[t];try{return await Vt(`which ${t}`),J[t]=!0,!0}catch{return J[t]=!1,!1}}var _=null;async function Qt(){return _!==null||(await rt("bun")?_="bun":await rt("esno")?_="esno":await rt("tsx")?_="tsx":_=null),_}async function kt(t,s,o,a){await M(`prun ${t}`);let{status:e}=await(0,Z.jsShell)(s,{errorExit:!1,isLog:!1,stdio:"inherit"});c((0,I.default)({color:e===0?"green":"red",text:`
12
+ "prun ${t}" ${e===0?o:a} ${e===0?"\u{1F389}":"\u274C"}`}))}async function st(t,s,o){let a=Y.default.extname(t),e="node";if(a===".ts")if(_===null&&await Qt(),_)e=_;else{c((0,I.default)({text:l?`\u6CA1\u6709\u627E\u5230\u53EF\u4EE5\u76F4\u63A5\u6267\u884CTypeScript\u7684\u5DE5\u5177\uFF0C\u63A8\u8350\u5B89\u88C5\u4E0B\u5217\u5DE5\u5177\u4E4B\u4E00\uFF1A
6
13
  - npm install -g bun
7
14
  - npm install -g esno
8
15
  - npm install -g tsx`:`No TypeScript executor found. Recommend installing one of:
9
16
  - npm install -g bun
10
17
  - npm install -g esno
11
- - npm install -g tsx`,color:"yellow"}));return}let i=`${e} ${t}`;await xt(t,i,r,s)}async function $t(t,r,s){let a=[".js",".ts",".mjs",".cjs"],e=N.default.extname(t);if(e&&a.includes(e)&&(0,L.existsSync)(t))return await Q(t,r,s),!0;if(!e)for(let i of a){let m=`${t}${i}`;if((0,L.existsSync)(m))return await Q(m,r,s),!0}if((0,L.existsSync)(t)&&(await ht.default.stat(t)).isDirectory())for(let i of a){let m=N.default.join(t,`index${i}`);if((0,L.existsSync)(m))return await Q(m,r,s),!0}return!1}async function wt(t,r,s){t.endsWith(".py")?await xt(t,`python ${t}`,r,s):t.endsWith(".rs")&&((await(0,I.jsShell)(`rustc ${t}`)).status===0?(await R(`prun ${t}`),await(0,I.jsShell)(`./${t.slice(0,t.length-3)}`,"inherit"),c((0,M.default)({color:"green",text:`
12
- "prun ${t}" ${r} \u{1F389}`}))):c((0,M.default)({color:"red",text:`
13
- command "prun ${t}" ${s} \u274C`})))}var C=p(require("@simon_he/colorize")),A=require("lazy-js-utils/node"),U=console.log;async function kt(t){let{status:r}=await(0,A.jsShell)("gum -v","pipe");if(r!==0){U((0,C.default)({color:"blue",text:t?"\u6B63\u5728\u4E3A\u60A8\u5B89\u88C5gum...":"install gum..."}));let{status:s}=await(0,A.jsShell)("brew install gum");if(s!==0){let{status:a}=await(0,A.jsShell)(`sudo mkdir -p /etc/apt/keyrings
18
+ - npm install -g tsx`,color:"yellow"}));return}let i=`${e} ${t}`;await kt(t,i,s,o)}async function jt(t,s,o){let a=[".js",".ts",".mjs",".cjs"],e=Y.default.extname(t);if(e&&a.includes(e)&&(0,T.existsSync)(t))return await st(t,s,o),!0;if(!e)for(let i of a){let d=`${t}${i}`;if((0,T.existsSync)(d))return await st(d,s,o),!0}if((0,T.existsSync)(t)&&(await wt.default.stat(t)).isDirectory())for(let i of a){let d=Y.default.join(t,`index${i}`);if((0,T.existsSync)(d))return await st(d,s,o),!0}return!1}async function _t(t,s,o){t.endsWith(".py")?await kt(t,`python ${t}`,s,o):t.endsWith(".rs")&&((await(0,Z.jsShell)(`rustc ${t}`)).status===0?(await M(`prun ${t}`),await(0,Z.jsShell)(`./${t.slice(0,t.length-3)}`,"inherit"),c((0,I.default)({color:"green",text:`
19
+ "prun ${t}" ${s} \u{1F389}`}))):c((0,I.default)({color:"red",text:`
20
+ command "prun ${t}" ${o} \u274C`})))}var C=m(require("@simon_he/colorize")),B=require("lazy-js-utils/node"),ot=console.log;async function vt(t){let{status:s}=await(0,B.jsShell)("gum -v","pipe");if(s!==0){ot((0,C.default)({color:"blue",text:t?"\u6B63\u5728\u4E3A\u60A8\u5B89\u88C5gum...":"install gum..."}));let{status:o}=await(0,B.jsShell)("brew install gum");if(o!==0){let{status:a}=await(0,B.jsShell)(`sudo mkdir -p /etc/apt/keyrings
14
21
  curl -fsSL https://repo.charm.sh/apt/gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/charm.gpg
15
22
  echo "deb [signed-by=/etc/apt/keyrings/charm.gpg] https://repo.charm.sh/apt/ * *" | sudo tee /etc/apt/sources.list.d/charm.list
16
- sudo apt update && sudo apt install gum`);if(a!==0){let e=(await import("terminal-link")).default,i=e(t?"gum\u5B98\u7F51\u94FE\u63A5":"the official website of gum","https://github.com/charmbracelet/gum#installation");return U((0,C.default)({color:"red",text:`${t?"gum\u5B89\u88C5\u5931\u8D25,\u4F60\u53EF\u4EE5\u81EA\u884C\u4ECE\u4EE5\u4E0B\u94FE\u63A5\u5B89\u88C5":"gum install error, you can install it yourself through"} ${(0,C.default)({color:"yellow",text:i,bold:!0})}`}))}}U((0,C.default)({color:"green",text:t?"gum\u5B89\u88C5\u6210\u529F \u{1F389}":"gum install successfully \u{1F389}"}))}}var bt=p(require("fs/promises"));function jt(t){return new Promise(r=>{bt.default.readFile(t,"utf-8").then(s=>{let a=[];for(let e of s.matchAll(/.PHONY:\s*([\w\-]+)/g)){let i;if(!e||!(i=e[1]))continue;let m=new RegExp(`^${i}:[
23
+ sudo apt update && sudo apt install gum`);if(a!==0){let e=(await import("terminal-link")).default,i=e(t?"gum\u5B98\u7F51\u94FE\u63A5":"the official website of gum","https://github.com/charmbracelet/gum#installation");return ot((0,C.default)({color:"red",text:`${t?"gum\u5B89\u88C5\u5931\u8D25,\u4F60\u53EF\u4EE5\u81EA\u884C\u4ECE\u4EE5\u4E0B\u94FE\u63A5\u5B89\u88C5":"gum install error, you can install it yourself through"} ${(0,C.default)({color:"yellow",text:i,bold:!0})}`}))}}ot((0,C.default)({color:"green",text:t?"gum\u5B89\u88C5\u6210\u529F \u{1F389}":"gum install successfully \u{1F389}"}))}}var Et=m(require("fs/promises"));function St(t){return new Promise(s=>{Et.default.readFile(t,"utf-8").then(o=>{let a=[];for(let e of o.matchAll(/.PHONY:\s*([\w\-]+)/g)){let i;if(!e||!(i=e[1]))continue;let d=new RegExp(`^${i}:[
17
24
  \\s]*([^
18
- \\\\;]+)`,"ms"),b=s.match(m);if(!b)continue;let w=`${b[1].trim()}...`;a.push({name:i,detail:w})}r(a)}).catch(r)})}var _t=p(require("process")),vt=p(require("@simon_he/colorize"));function St(t){let r=t[0];return r?r.startsWith("--")?["","",t.join(" ")]:t[1]&&t[1].startsWith("--")?[r,"",t.slice(1).join(" ")]:[r,t[1],t.slice(2).join(" ")]:["","",""]}function X(t,r){let s=Object.keys(t),a=s.find(e=>e.startsWith(r));if(a)return a;try{let e=new RegExp(r.split("").join("[_-\\w$.:]*"));return s.find(i=>e.test(i))}catch(e){c((0,vt.default)({text:`${u?"\u6B63\u5219\u9519\u8BEF":"RegExp error"}: ${e}`,color:"red"})),_t.default.exit(1)}}var Et=p(require("fs/promises")),tt=p(require("path")),et=p(require("process")),Ft=p(require("fast-glob")),Rt=require("lazy-js-utils"),zt=require("lazy-js-utils/node"),Qt=require("yamljs"),E=[],S=null;async function Ut(t){let r=t==="pnpm"?tt.default.resolve(et.default.cwd(),"pnpm-workspace.yaml"):tt.default.resolve(et.default.cwd(),"package.json");try{return await Et.default.readFile(r,"utf-8")}catch{return""}}function Xt(t,r){if(t==="pnpm")return Qt.parse(r)?.packages||[];{let s=JSON.parse(r)?.workspaces;return(0,Rt.isPlainObject)(s)?s?.packages||[]:s||[]}}async function te(t){if(!t.length)return{};let r=await(0,Ft.default)(t.map(a=>`${a}/package.json`),{dot:!0,ignore:["**/node_modules/**"]});return(await Promise.all(r.map(async a=>{let e=await(0,zt.getPkg)(a);if(!e)return null;let{name:i,scripts:m}=e;return{name:i,scripts:m}}))).reduce((a,e)=>(!e||!e.name||!e.scripts||(a[e.name]=Object.keys(e.scripts).reduce((i,m)=>(m.startsWith("//")||(i[m]=e.scripts[m]),i),{})),a),{})}async function ee(t){if(S)return S;let r=await Ut(t),s=Xt(t,r);return S=await te(s)||{},E=Object.keys(S).filter(a=>S[a]&&Object.keys(S[a]).length),S}async function O(t){return ee(t)}var nt=(0,Lt.memorizeFn)(x.getPkg),rt={};async function Mt(t=T.default.argv.slice(2).join(" ")){await kt(u);debugger;let r=u?"\u5F53\u524D\u76EE\u5F55\u4E0D\u5B58\u5728\u4EFB\u4F55\u5B50\u76EE\u5F55":"The current directory does not have any subdirectories",s=u?"\u8FD0\u884C\u6210\u529F":"run successfully",a=u?"\u8FD0\u884C\u5931\u8D25":"run error",e=t?t.replace(/\s+/," ").split(" "):T.default.argv.slice(2);if(e[0]==="-v"||e[0]==="--version")return c((0,l.default)({text:u?`ccommand \u5F53\u524D\u7248\u672C: ${G}`:`ccommand Version: ${G}`,color:"green"}));if(e[0]==="-h"||e[0]==="--help"){let o=(await import("terminal-link")).default,n=o(u?"\u6253\u5F00\u4E00\u4E2A\u65B0\u7684\u95EE\u9898":"open an issue","https://github.com/Simon-He95/ccommand/issues"),f=o(u?"\u2728\u5E2E\u52A9\u70B9\u4E00\u4E2A\u661F\u661F":"\u2728star it","https://github.com/Simon-He95/ccommand");return c((0,l.default)({color:"white",text:`
19
- ${(0,l.default)({bold:!0,text:"Common Commands:",bgColor:"blue"})}
20
- ${(0,l.default)({text:`- ccommand -v \u67E5\u770B\u5F53\u524D\u7248\u672C
25
+ \\\\;]+)`,"ms"),k=o.match(d);if(!k)continue;let g=`${k[1].trim()}...`;a.push({name:i,detail:g})}s(a)}).catch(s)})}var zt=m(require("process")),Ft=m(require("@simon_he/colorize"));function Rt(t){let s=t[0];return s?s.startsWith("--")?["","",t.join(" ")]:t[1]&&t[1].startsWith("--")?[s,"",t.slice(1).join(" ")]:[s,t[1],t.slice(2).join(" ")]:["","",""]}function it(t,s){let o=Object.keys(t),a=o.find(e=>e.startsWith(s));if(a)return a;try{let e=new RegExp(s.split("").join("[_-\\w$.:]*"));return o.find(i=>e.test(i))}catch(e){c((0,Ft.default)({text:`${l?"\u6B63\u5219\u9519\u8BEF":"RegExp error"}: ${e}`,color:"red"})),zt.default.exit(1)}}var Wt=m(require("fs/promises")),at=m(require("path")),ct=m(require("process")),Mt=m(require("fast-glob")),Pt=require("lazy-js-utils"),Lt=require("lazy-js-utils/node"),Ut=require("yamljs"),R=[],F=null;async function Xt(t){let s=t==="pnpm"?at.default.resolve(ct.default.cwd(),"pnpm-workspace.yaml"):at.default.resolve(ct.default.cwd(),"package.json");try{return await Wt.default.readFile(s,"utf-8")}catch{return""}}function te(t,s){if(t==="pnpm")return Ut.parse(s)?.packages||[];{let o=JSON.parse(s)?.workspaces;return(0,Pt.isPlainObject)(o)?o?.packages||[]:o||[]}}async function ee(t){if(!t.length)return{};let s=await(0,Mt.default)(t.map(a=>`${a}/package.json`),{dot:!0,ignore:["**/node_modules/**"]});return(await Promise.all(s.map(async a=>{let e=await(0,Lt.getPkg)(a);if(!e)return null;let{name:i,scripts:d}=e;return{name:i,scripts:d}}))).reduce((a,e)=>(!e||!e.name||!e.scripts||(a[e.name]=Object.keys(e.scripts).reduce((i,d)=>(d.startsWith("//")||(i[d]=e.scripts[d]),i),{})),a),{})}async function ne(t){if(F)return F;let s=await Xt(t),o=te(t,s);return F=await ee(o)||{},R=Object.keys(F).filter(a=>F[a]&&Object.keys(F[a]).length),F}async function N(t){return ne(t)}var lt=(0,Tt.memorizeFn)(b.getPkg),ut={};async function It(t=D.default.argv.slice(2).join(" ")){await vt(l);let s=l?"\u5F53\u524D\u76EE\u5F55\u4E0D\u5B58\u5728\u4EFB\u4F55\u5B50\u76EE\u5F55":"The current directory does not have any subdirectories",o=l?"\u8FD0\u884C\u6210\u529F":"run successfully",a=l?"\u8FD0\u884C\u5931\u8D25":"run error",e=t?t.replace(/\s+/," ").split(" "):D.default.argv.slice(2);if(e[0]==="-v"||e[0]==="--version")return c((0,u.default)({text:l?`ccommand \u5F53\u524D\u7248\u672C: ${Q}`:`ccommand Version: ${Q}`,color:"green"}));if(e[0]==="-h"||e[0]==="--help"){let r=(await import("terminal-link")).default,n=r(l?"\u6253\u5F00\u4E00\u4E2A\u65B0\u7684\u95EE\u9898":"open an issue","https://github.com/Simon-He95/ccommand/issues"),h=r(l?"\u2728\u5E2E\u52A9\u70B9\u4E00\u4E2A\u661F\u661F":"\u2728star it","https://github.com/Simon-He95/ccommand");return c((0,u.default)({color:"white",text:`
26
+ ${(0,u.default)({bold:!0,text:"Common Commands:",bgColor:"blue"})}
27
+ ${(0,u.default)({text:`- ccommand -v \u67E5\u770B\u5F53\u524D\u7248\u672C
21
28
  - ccommand -help \u67E5\u770B\u5E2E\u52A9
22
29
  - ccommand \u6267\u884C\u5F53\u524Dpackage.json
23
30
  - ccommand find \u67E5\u627E\u5F53\u524Dworkspace\u7684\u6240\u6709\u76EE\u5F55
24
31
  `,color:"cyan"})}
25
- If you encounter any problems, you can ${(0,l.default)({color:"magenta",text:n})}.
26
- If you like it, please ${(0,l.default)({text:f,bold:!0,color:"cyan"})} `}))}else if(e[0]?.endsWith(".py")||e[0]?.endsWith(".rs")){await wt(e[0],s,a);return}let i;try{i=await(0,x.getPkgTool)()}catch{try{if(await Pt.default.readFile(Wt.default.resolve(T.default.cwd(),"./Makefile"),"utf-8")){i="make";let f=await jt("./Makefile"),d=f.reduce((g,h)=>{let{name:v,detail:P}=h;return g[v]=P,g},{}),y="";if(t)y=X(d,t);else{let{result:g,status:h}=await(0,x.jsShell)(`echo "${f.map(v=>v.name).join(`
27
- `)}" | gum filter --placeholder=" \u{1F914}\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u6307\u4EE4"`,"pipe");if(h===W)return F();y=g}await q(y.trim(),"");return}else return c((0,l.default)({color:"red",text:Z}))}catch{if(e[0]!=="find")return c((0,l.default)({color:"red",text:Z}))}}let[m,b,w]=St(e),$=m,_;if(e[0]==="find"){if(b)await O(i),$=E.filter(o=>o.includes(b))[0];else if(i==="yarn"){if(await O(i),!E.length)return c((0,l.default)({color:"yellow",text:r}));let{result:o,status:n}=await(0,x.jsShell)(`echo ${E.join(",")} | sed "s/,/\\n/g" | gum filter --placeholder=" \u{1F914}${u?"\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u76EE\u5F55":"Please select a directory to execute"}"`,["inherit","pipe","inherit"]);if($=o,n===W)return F()}else if(i==="pnpm"){if(await O(i),!E.length)return c((0,l.default)({color:"yellow",text:r}));let{result:o,status:n}=await(0,x.jsShell)(`echo ${E.join(",")} | sed "s/,/\\n/g" | gum filter --placeholder=" \u{1F914}${u?"\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u76EE\u5F55":"Please select a directory to execute"}"`,["inherit","pipe","inherit"]);if(n===W)return F();$=o.trim()}else return c((0,l.default)({color:"red",text:u?"find\u6307\u4EE4\u53EA\u80FD\u652F\u6301\u5728yarn\u6216pnpm\u7684monorepo\u6A21\u5F0F\u4E0B\u4F7F\u7528":"find command only support yarn or pnpm"}));_=await at()}else{_=await at();try{let o=(await nt("./package.json")||{})?.scripts;if(o&&o[e[0]]){await q(e[0],e.slice(1).join(" "));return}else if(o&&m){let n=X(o,e[0]);if(n){let f=e.slice(1).join(" ");await q(n,f);return}else{if(await $t(e[0],s,a))return;let d=`${m}.py`;if((0,ot.existsSync)(d)){c((0,l.default)({text:`\u{1F914} ${u?"\u627E\u5230Python\u6587\u4EF6":"Found Python file"}: ${d}`,color:"yellow"}));return}let y=`${m}.rs`;if((0,ot.existsSync)(y))return;c((0,l.default)({color:"red",text:`"${e[0]}" ${u?"\u5728\u5DE5\u4F5C\u533A\u3001\u5F53\u524D\u76EE\u5F55\u4E2D\u627E\u4E0D\u5230\u4EFB\u4F55\u53EF\u6267\u884C\u7684\u811A\u672C\u6216\u6587\u4EF6\uFF0C\u8BF7\u68C0\u67E5":"is not found in workspace, current directory or current scripts, please check"}`})),T.default.exit(1)}}}catch{}}if(!_)return c((0,l.default)({color:"red",text:u?"\u627E\u4E0D\u5230\u4EFB\u4F55\u53EF\u6267\u884C\u811A\u672C":"No scripts found"}));let z=[],k="";if(!b||e[0]==="find"&&(!e[2]||e[2].startsWith("--"))){let o=Object.keys(_).reduce((d,y)=>{let g=_[y];return z.push(y),d+=`"${y}: ${g.replace(/\\/g,"\\\\").replace(/(["`])/g,"\\$1")}"${Y}`,d},""),{result:n,status:f}=await(0,x.jsShell)(`echo ${o} | sed "s/${Y}/\\n/g" | gum filter --placeholder=" \u{1F914}\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u6307\u4EE4"`,{stdio:["inherit","pipe","inherit"],isLog:!1});if(f===W)return F();k=n.substring(0,n.indexOf(": "))}if(!b&&!k)return F();c((0,l.default)({text:`\u{1F914} ${B} ${k}`,color:"magenta"}));let[Ct,st]=await Ht(),Ot=Ct.replace(/\s+/g," "),{status:Tt,result:Dt=""}=await(0,x.jsShell)(Ot,{errorExit:!1,stdio:"inherit"});if(Tt===0)return c((0,l.default)({color:"green",text:`
28
- ${st} \u{1F389}`}));if(Dt.includes("pnpm versions with respective Node.js version support")){c((0,l.default)({text:u?"\u6B63\u5728\u5C1D\u8BD5\u4F7F\u7528 npm \u518D\u6B21\u6267\u884C...":"Trying to use npm to run again...",color:"yellow"}));let{status:o}=await(0,x.jsShell)(`npm run ${k}${w?` -- ${w}`:""}`,"inherit");if(o===0)return c((0,l.default)({color:"green",text:`
29
- ${st} \u{1F389}`}))}c((0,l.default)({color:"red",text:`
30
- command '${k}' ${a} \u274C`}));function it(o){return z.find(n=>n===o)??z.find(n=>o.startsWith(n))}async function Ht(){let o="",n="",f=i!=="yarn";i==="npm"?(n=w?` -- ${w}`:"",o=$?` --prefix ${$} `:" "):i==="pnpm"?(n=w?` ${w}`:"",o=$?` --filter ${$} `:" "):i==="yarn"?(n=w?` ${w}`:"",o=$?` workspace ${$} `:" "):i==="bun"&&(n=w?` ${w}`:"",o="");let d="",y="";if(n&&!n.startsWith(" --")){let ct=n.split(" ").filter(Boolean);d=ct[0],n=ct.slice(1).join(" ")}let g=`${i}${f?" run":" "}${o} ${d||(k?it(k)||k:b)} ${Nt(n)?`-- ${n}`:n}`;k=`${d||(k?it(k):b)}`,e[0]==="find"?y=`pfind ${$} ${k} ${n}`.replace(/\s+/g," ").trim():y=`prun ${k} ${n}`.replace(/\s+/g," ").trim(),await R(y);let h=y.split(" "),v=h.slice(-1)[0];h[h.length-1]=`'${v}'`;let P=h.join(" ");return[g,P]}async function at(){try{let o=$||"root";if(rt[o])return rt[o];let n;return!$||i==="bun"||i==="npm"?n=(await nt("./package.json"))?.scripts:(i==="pnpm"||i==="yarn")&&(n=(await O(i))[$]||(await nt(`${$}/package.json`))?.scripts),n&&(rt[o]=n),n}catch{return null}}function Nt(o){return e[0]==="find",e[1]&&o}async function q(o,n){let f,d="",y=e[0]?.trim();switch(o&&y&&y!==o?c((0,l.default)({text:`\u{1F914} ${(0,l.default)({text:`'${e[0]}'`,color:"cyan"})} ${u?"\u81EA\u52A8\u7684\u4E3A\u60A8\u5339\u914D\u6210":"automatically match for you to"} ${(0,l.default)({text:`'${o}${n?` ${n}`:""}'`,color:"cyan"})} `,color:"yellow"})):o&&c((0,l.default)({text:`\u{1F914} ${B} ${o}`,color:"magenta"})),i){case"npm":{let{status:g,result:h}=await(0,x.jsShell)(`npm run ${o}${n?` -- ${n}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});f=g,d=h;break}case"pnpm":{let{status:g,result:h=""}=await(0,x.jsShell)(`pnpm ${o}${n?` -- ${n}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});if(d=h,f=g,d.includes("pnpm versions with respective Node.js version support")){c((0,l.default)({text:u?"\u6B63\u5728\u5C1D\u8BD5\u4F7F\u7528 npm \u518D\u6B21\u6267\u884C...":"Trying to use npm to run again...",color:"yellow"}));let{status:v,result:P}=await(0,x.jsShell)(`npm run ${o}${n?` -- ${n}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});f=v,d=P}break}case"yarn":{let{status:g,result:h}=await(0,x.jsShell)(`yarn ${o}${n?` ${n}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});f=g,d=h;break}case"bun":{let{status:g,result:h}=await(0,x.jsShell)(`bun run ${o} ${n}`,{errorExit:!1,isLog:!1,stdio:"inherit"});f=g,d=h;break}case"make":{let{status:g,result:h}=await(0,x.jsShell)(`make ${o} ${n}`,{errorExit:!1,isLog:!1,stdio:"inherit"});f=g,d=h;break}}return f===0?(await R(`prun ${o}${n?` ${n}`:""}`),c((0,l.default)({color:"green",text:`
31
- prun '${o}${n?` ${n}`:""}' ${s} \u{1F389}`}))):c((0,l.default)({color:"red",text:`
32
- command ${(0,l.default)({bold:!0,color:"cyan",text:`'${o||e[0]}${n?` ${n}`:""}'`})} ${a} \u274C`}))}}0&&(module.exports={ccommand});
32
+ If you encounter any problems, you can ${(0,u.default)({color:"magenta",text:n})}.
33
+ If you like it, please ${(0,u.default)({text:h,bold:!0,color:"cyan"})} `}))}else if(e[0]?.endsWith(".py")||e[0]?.endsWith(".rs")){await _t(e[0],o,a);return}let i;try{i=await(0,b.getPkgTool)()}catch{try{if(await Ht.default.readFile(Ot.default.resolve(D.default.cwd(),"./Makefile"),"utf-8")){i="make";let n=await St("./Makefile"),h=n.reduce(($,w)=>{let{name:x,detail:H}=w;return $[x]=H,$},{}),f="";if(t)f=it(h,t);else{let{result:$,status:w}=await(0,b.jsShell)(`echo "${n.map(x=>x.name).join(`
34
+ `)}" | gum filter --placeholder=" \u{1F914}\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u6307\u4EE4"`,"pipe");if(w===O)return W();f=$}await K(f.trim(),"");return}else return c((0,u.default)({color:"red",text:tt}))}catch{if(e[0]!=="find")return c((0,u.default)({color:"red",text:tt}))}}let[d,k,g]=Rt(e),y=d,j;if(e[0]==="find"){if(k)await N(i),y=R.filter(r=>r.includes(k))[0];else if(i==="yarn"){if(await N(i),!R.length)return c((0,u.default)({color:"yellow",text:s}));let{result:r,status:n}=await(0,b.jsShell)(`echo ${R.join(",")} | sed "s/,/\\n/g" | gum filter --placeholder=" \u{1F914}${l?"\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u76EE\u5F55":"Please select a directory to execute"}"`,["inherit","pipe","inherit"]);if(y=r,n===O)return W()}else if(i==="pnpm"){if(await N(i),!R.length)return c((0,u.default)({color:"yellow",text:s}));let{result:r,status:n}=await(0,b.jsShell)(`echo ${R.join(",")} | sed "s/,/\\n/g" | gum filter --placeholder=" \u{1F914}${l?"\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u76EE\u5F55":"Please select a directory to execute"}"`,["inherit","pipe","inherit"]);if(n===O)return W();y=r.trim()}else return c((0,u.default)({color:"red",text:l?"find\u6307\u4EE4\u53EA\u80FD\u652F\u6301\u5728yarn\u6216pnpm\u7684monorepo\u6A21\u5F0F\u4E0B\u4F7F\u7528":"find command only support yarn or pnpm"}));j=await ft()}else{j=await ft();try{let r=(await lt("./package.json")||{})?.scripts;if(r&&r[e[0]]){await K(e[0],e.slice(1).join(" "));return}else if(r&&d){let n=it(r,e[0]);if(n){let h=e.slice(1).join(" ");await K(n,h);return}else{if(await jt(e[0],o,a))return;let f=`${d}.py`;if((0,pt.existsSync)(f)){c((0,u.default)({text:`\u{1F914} ${l?"\u627E\u5230Python\u6587\u4EF6":"Found Python file"}: ${f}`,color:"yellow"}));return}let $=`${d}.rs`;if((0,pt.existsSync)($))return;c((0,u.default)({color:"red",text:`"${e[0]}" ${l?"\u5728\u5DE5\u4F5C\u533A\u3001\u5F53\u524D\u76EE\u5F55\u4E2D\u627E\u4E0D\u5230\u4EFB\u4F55\u53EF\u6267\u884C\u7684\u811A\u672C\u6216\u6587\u4EF6\uFF0C\u8BF7\u68C0\u67E5":"is not found in workspace, current directory or current scripts, please check"}`})),D.default.exit(1)}}}catch{}}if(!j)return c((0,u.default)({color:"red",text:l?"\u627E\u4E0D\u5230\u4EFB\u4F55\u53EF\u6267\u884C\u811A\u672C":"No scripts found"}));let P=[],p="";if(!k||e[0]==="find"&&(!e[2]||e[2].startsWith("--"))){let r=Object.keys(j).reduce((f,$)=>{let w=j[$];return P.push($),f+=`"${$}: ${w.replace(/\\/g,"\\\\").replace(/(["`])/g,"\\$1")}"${X}`,f},""),{result:n,status:h}=await(0,b.jsShell)(`echo ${r} | sed "s/${X}/\\n/g" | gum filter --placeholder=" \u{1F914}\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u6307\u4EE4"`,{stdio:["inherit","pipe","inherit"],isLog:!1});if(h===O)return W();p=n.substring(0,n.indexOf(": "))}if(!k&&!p)return W();c((0,u.default)({text:`\u{1F914} ${et} ${p}`,color:"magenta"}));let[S,L]=await Nt(),v=S.replace(/\s+/g," "),{status:z,result:Ct=""}=await(0,b.jsShell)(v,{errorExit:!1,stdio:"inherit"});if(z===0)return c((0,u.default)({color:"green",text:`
35
+ ${L} \u{1F389}`}));if(Ct.includes("pnpm versions with respective Node.js version support")){c((0,u.default)({text:l?"\u6B63\u5728\u5C1D\u8BD5\u4F7F\u7528 npm \u518D\u6B21\u6267\u884C...":"Trying to use npm to run again...",color:"yellow"}));let{status:r}=await(0,b.jsShell)(`npm run ${p}${g?` -- ${g}`:""}`,"inherit");if(r===0)return c((0,u.default)({color:"green",text:`
36
+ ${L} \u{1F389}`}))}c((0,u.default)({color:"red",text:`
37
+ command '${p}' ${a} \u274C`}));function mt(r){return P.find(n=>n===r)??P.find(n=>r.startsWith(n))}async function Nt(){let r="",n="",h=i!=="yarn";i==="npm"?(n=g?` -- ${g}`:"",r=y?` --prefix ${y} `:" "):i==="pnpm"?(n=g?` ${g}`:"",r=y?` --filter ${y} `:" "):i==="yarn"?(n=g?` ${g}`:"",r=y?` workspace ${y} `:" "):i==="bun"&&(n=g?` ${g}`:"",r="");let f="",$="";if(n&&!n.startsWith(" --")){let dt=n.split(" ").filter(Boolean);f=dt[0],n=dt.slice(1).join(" ")}let w=`${i}${h?" run":" "}${r} ${f||(p?mt(p)||p:k)} ${Dt(n)?`-- ${n}`:n}`;p=`${f||(p?mt(p):k)}`,e[0]==="find"?$=`pfind ${y} ${p} ${n}`.replace(/\s+/g," ").trim():$=`prun ${p} ${n}`.replace(/\s+/g," ").trim(),await M($);let x=$.split(" "),H=x.slice(-1)[0];x[x.length-1]=`'${H}'`;let V=x.join(" ");return[w,V]}async function ft(){try{let r=y||"root";if(ut[r])return ut[r];let n;return!y||i==="bun"||i==="npm"?n=(await lt("./package.json"))?.scripts:(i==="pnpm"||i==="yarn")&&(n=(await N(i))[y]||(await lt(`${y}/package.json`))?.scripts),n&&(ut[r]=n),n}catch{return null}}function Dt(r){return e[0]==="find",e[1]&&r}async function K(r,n){let h,f="",$=e[0]?.trim();switch(r&&$&&$!==r?c((0,u.default)({text:`\u{1F914} ${(0,u.default)({text:`'${e[0]}'`,color:"cyan"})} ${l?"\u81EA\u52A8\u7684\u4E3A\u60A8\u5339\u914D\u6210":"automatically match for you to"} ${(0,u.default)({text:`'${r}${n?` ${n}`:""}'`,color:"cyan"})} `,color:"yellow"})):r&&c((0,u.default)({text:`\u{1F914} ${et} ${r}`,color:"magenta"})),i){case"npm":{let{status:w,result:x}=await(0,b.jsShell)(`npm run ${r}${n?` -- ${n}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});h=w,f=x;break}case"pnpm":{let{status:w,result:x=""}=await(0,b.jsShell)(`pnpm run ${r}${n?` ${n}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});if(f=x,h=w,f.includes("pnpm versions with respective Node.js version support")){c((0,u.default)({text:l?"\u6B63\u5728\u5C1D\u8BD5\u4F7F\u7528 npm \u518D\u6B21\u6267\u884C...":"Trying to use npm to run again...",color:"yellow"}));let{status:H,result:V}=await(0,b.jsShell)(`npm run ${r}${n?` -- ${n}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});h=H,f=V}break}case"yarn":{let{status:w,result:x}=await(0,b.jsShell)(`yarn ${r}${n?` ${n}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});h=w,f=x;break}case"bun":{let{status:w,result:x}=await(0,b.jsShell)(`bun run ${r} ${n}`,{errorExit:!1,isLog:!1,stdio:"inherit"});h=w,f=x;break}case"make":{let{status:w,result:x}=await(0,b.jsShell)(`make ${r} ${n}`,{errorExit:!1,isLog:!1,stdio:"inherit"});h=w,f=x;break}}return h===0?(await M(`prun ${r}${n?` ${n}`:""}`),c((0,u.default)({color:"green",text:`
38
+ prun '${r}${n?` ${n}`:""}' ${o} \u{1F389}`}))):c((0,u.default)({color:"red",text:`
39
+ command ${(0,u.default)({bold:!0,color:"cyan",text:`'${r||e[0]}${n?` ${n}`:""}'`})} ${a} \u274C`}))}}0&&(module.exports={ccommand});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ccommand",
3
- "version": "1.0.83",
3
+ "version": "1.0.85",
4
4
  "packageManager": "pnpm@6.35.1",
5
5
  "description": "ccommand",
6
6
  "author": "Simon He",