ccommand 1.0.80 → 1.0.81

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 +17 -17
  2. package/dist/index.js +18 -18
  3. package/package.json +2 -2
package/dist/cli.js CHANGED
@@ -1,21 +1,21 @@
1
- "use strict";var Ht=Object.create;var at=Object.defineProperty;var Nt=Object.getOwnPropertyDescriptor;var It=Object.getOwnPropertyNames;var Dt=Object.getPrototypeOf,At=Object.prototype.hasOwnProperty;var qt=(t,r,i,a)=>{if(r&&typeof r=="object"||typeof r=="function")for(let e of It(r))!At.call(t,e)&&e!==i&&at(t,e,{get:()=>r[e],enumerable:!(a=Nt(r,e))||a.enumerable});return t};var m=(t,r,i)=>(i=t!=null?Ht(Dt(t)):{},qt(r||!t||!t.__esModule?at(i,"default",{value:t,enumerable:!0}):i,t));var nt=require("fs"),Rt=m(require("fs/promises")),Pt=m(require("path")),D=m(require("process")),l=m(require("@simon_he/colorize")),f=require("lazy-js-utils/node");var q="1.0.80";var J=m(require("process")),ct=m(require("@simon_he/colorize")),c=console.log,Y="__ccommand__split",u=J.default.env.PI_Lang==="zh",L=130,lt=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,ct.default)({color:"yellow",text:lt})),J.default.exit()}var ft=require("child_process"),M=require("fs"),dt=m(require("fs/promises")),H=m(require("path")),gt=require("util"),C=m(require("@simon_he/colorize")),N=require("lazy-js-utils/node");var ut=require("fs"),G=m(require("fs/promises")),pt=m(require("process")),mt=m(require("@simon_he/colorize"));async function R(t){c((0,mt.default)({text:`${u?"\u5FEB\u6377\u6307\u4EE4":"shortcut command"}: ${t}`,color:"blue",bold:!0}));let r=`${pt.default.env.HOME}/.zsh_history`;try{if(!(0,ut.existsSync)(r))return;let i=await G.default.readFile(r,"utf8"),e=new Date().getTime()/1e3,s=`${i}: ${e.toFixed(0)}:0;${t}
2
- `,p=[];s.split(`
3
- `).forEach(w=>{let $=w.split(";").slice(1).join(";"),_=p.findIndex(z=>z.split(";").slice(1).join(";")===$);_!==-1&&p.splice(_,1),p.push(w)});let b=p.join(`
4
- `);await G.default.writeFile(r,b)}catch{}}var Yt=(0,gt.promisify)(ft.exec),T={};async function V(t){if(T[t]!==void 0)return T[t];try{return await Yt(`which ${t}`),T[t]=!0,!0}catch{return T[t]=!1,!1}}var j=null;async function Zt(){return j!==null||(await V("bun")?j="bun":await V("esno")?j="esno":await V("tsx")?j="tsx":j=null),j}async function ht(t,r,i,a){await R(`prun ${t}`);let{status:e}=await(0,N.jsShell)(r,{errorExit:!1,isLog:!1,stdio:"inherit"});c((0,C.default)({color:e===0?"green":"red",text:`
5
- "prun ${t}" ${e===0?i:a} ${e===0?"\u{1F389}":"\u274C"}`}))}async function K(t,r,i){let a=H.default.extname(t),e="node";if(a===".ts")if(j===null&&await Zt(),j)e=j;else{c((0,C.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 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")),D=p(require("process")),l=p(require("@simon_he/colorize")),Wt=require("lazy-js-utils"),$=require("lazy-js-utils/node");var G="1.0.81";var J=p(require("process")),lt=p(require("@simon_he/colorize")),c=console.log,Y="__ccommand__split",u=J.default.env.PI_Lang==="zh",L=130,ut=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,lt.default)({color:"yellow",text:ut})),J.default.exit()}var dt=require("child_process"),M=require("fs"),gt=p(require("fs/promises")),N=p(require("path")),ht=require("util"),C=p(require("@simon_he/colorize")),I=require("lazy-js-utils/node");var mt=require("fs"),K=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 K.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(P=>P.split(";").slice(1).join(";")===x);_!==-1&&m.splice(_,1),m.push(w)});let b=m.join(`
4
+ `);await K.default.writeFile(o,b)}catch{}}var Zt=(0,ht.promisify)(dt.exec),H={};async function V(t){if(H[t]!==void 0)return H[t];try{return await Zt(`which ${t}`),H[t]=!0,!0}catch{return H[t]=!1,!1}}var j=null;async function Bt(){return j!==null||(await V("bun")?j="bun":await V("esno")?j="esno":await V("tsx")?j="tsx":j=null),j}async function yt(t,o,i,a){await R(`prun ${t}`);let{status:e}=await(0,I.jsShell)(o,{errorExit:!1,isLog:!1,stdio:"inherit"});c((0,C.default)({color:e===0?"green":"red",text:`
5
+ "prun ${t}" ${e===0?i:a} ${e===0?"\u{1F389}":"\u274C"}`}))}async function Q(t,o,i){let a=N.default.extname(t),e="node";if(a===".ts")if(j===null&&await Bt(),j)e=j;else{c((0,C.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
6
6
  - npm install -g bun
7
7
  - npm install -g esno
8
8
  - npm install -g tsx`:`No TypeScript executor found. Recommend installing one of:
9
9
  - npm install -g bun
10
10
  - npm install -g esno
11
- - npm install -g tsx`,color:"yellow"}));return}let s=`${e} ${t}`;await ht(t,s,r,i)}async function yt(t,r,i){let a=[".js",".ts",".mjs",".cjs"],e=H.default.extname(t);if(e&&a.includes(e)&&(0,M.existsSync)(t))return await K(t,r,i),!0;if(!e)for(let s of a){let p=`${t}${s}`;if((0,M.existsSync)(p))return await K(p,r,i),!0}if((0,M.existsSync)(t)&&(await dt.default.stat(t)).isDirectory())for(let s of a){let p=H.default.join(t,`index${s}`);if((0,M.existsSync)(p))return await K(p,r,i),!0}return!1}async function $t(t,r,i){t.endsWith(".py")?await ht(t,`python ${t}`,r,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,C.default)({color:"green",text:`
12
- "prun ${t}" ${r} \u{1F389}`}))):c((0,C.default)({color:"red",text:`
13
- command "prun ${t}" ${i} \u274C`})))}var O=m(require("@simon_he/colorize")),I=require("lazy-js-utils/node"),Q=console.log;async function xt(t){let{status:r}=await(0,I.jsShell)("gum -v","pipe");if(r!==0){Q((0,O.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
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=N.default.extname(t);if(e&&a.includes(e)&&(0,M.existsSync)(t))return await Q(t,o,i),!0;if(!e)for(let s of a){let m=`${t}${s}`;if((0,M.existsSync)(m))return await Q(m,o,i),!0}if((0,M.existsSync)(t)&&(await gt.default.stat(t)).isDirectory())for(let s of a){let m=N.default.join(t,`index${s}`);if((0,M.existsSync)(m))return await Q(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,I.jsShell)(`rustc ${t}`)).status===0?(await R(`prun ${t}`),await(0,I.jsShell)(`./${t.slice(0,t.length-3)}`,"inherit"),c((0,C.default)({color:"green",text:`
12
+ "prun ${t}" ${o} \u{1F389}`}))):c((0,C.default)({color:"red",text:`
13
+ command "prun ${t}" ${i} \u274C`})))}var O=p(require("@simon_he/colorize")),A=require("lazy-js-utils/node"),U=console.log;async function wt(t){let{status:o}=await(0,A.jsShell)("gum -v","pipe");if(o!==0){U((0,O.default)({color:"blue",text:t?"\u6B63\u5728\u4E3A\u60A8\u5B89\u88C5gum...":"install gum..."}));let{status:i}=await(0,A.jsShell)("brew install gum");if(i!==0){let{status:a}=await(0,A.jsShell)(`sudo mkdir -p /etc/apt/keyrings
14
14
  curl -fsSL https://repo.charm.sh/apt/gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/charm.gpg
15
15
  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,O.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,O.default)({color:"yellow",text:s,bold:!0})}`}))}}Q((0,O.default)({color:"green",text:t?"gum\u5B89\u88C5\u6210\u529F \u{1F389}":"gum install successfully \u{1F389}"}))}}var wt=m(require("fs/promises"));function kt(t){return new Promise(r=>{wt.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 p=new RegExp(`^${s}:[
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 U((0,O.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,O.default)({color:"yellow",text:s,bold:!0})}`}))}}U((0,O.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}:[
17
17
  \\s]*([^
18
- \\\\;]+)`,"ms"),b=i.match(p);if(!b)continue;let w=`${b[1].trim()}...`;a.push({name:s,detail:w})}r(a)}).catch(r)})}var bt=m(require("process")),jt=m(require("@simon_he/colorize"));function _t(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 U(t,r){let i=Object.keys(t),a=i.find(e=>e.startsWith(r));if(a)return a;try{let e=new RegExp(r.split("").join("[_-\\w$.:]*"));return i.find(s=>e.test(s))}catch(e){c((0,jt.default)({text:`${u?"\u6B63\u5219\u9519\u8BEF":"RegExp error"}: ${e}`,color:"red"})),bt.default.exit(1)}}var vt=m(require("fs/promises")),X=m(require("path")),tt=m(require("process")),St=m(require("fast-glob")),Et=require("lazy-js-utils"),Ft=require("lazy-js-utils/node"),Bt=require("yamljs"),E=[],S=null;async function Gt(t){let r=t==="pnpm"?X.default.resolve(tt.default.cwd(),"pnpm-workspace.yaml"):X.default.resolve(tt.default.cwd(),"package.json");try{return await vt.default.readFile(r,"utf-8")}catch{return""}}function Vt(t,r){if(t==="pnpm")return Bt.parse(r)?.packages||[];{let i=JSON.parse(r)?.workspaces;return(0,Et.isPlainObject)(i)?i?.packages||[]:i||[]}}async function Kt(t){if(!t.length)return{};let r=await(0,St.default)(t.map(a=>`${a}/package.json`),{dot:!0,ignore:["**/node_modules/**"]});return(await Promise.all(r.map(async a=>{let e=await(0,Ft.getPkg)(a);if(!e)return null;let{name:s,scripts:p}=e;return{name:s,scripts:p}}))).reduce((a,e)=>(!e||!e.name||!e.scripts||(a[e.name]=Object.keys(e.scripts).reduce((s,p)=>(p.startsWith("//")||(s[p]=e.scripts[p]),s),{})),a),{})}async function Qt(t){if(S)return S;let r=await Gt(t),i=Vt(t,r);return S=await Kt(i)||{},E=Object.keys(S).filter(a=>S[a]&&Object.keys(S[a]).length),S}async function P(t){return Qt(t)}var et=null;async function zt(t){await xt(u);let r=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(" "):D.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 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"),d=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:`
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 X(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")),tt=p(require("path")),et=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"?tt.default.resolve(et.default.cwd(),"pnpm-workspace.yaml"):tt.default.resolve(et.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 T(t){return Xt(t)}var nt=(0,Wt.memorizeFn)($.getPkg),z={};async function Lt(t=D.default.argv.slice(2).join(" ")){await wt(u);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(" "):D.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 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
19
  ${(0,l.default)({bold:!0,text:"Common Commands:",bgColor:"blue"})}
20
20
  ${(0,l.default)({text:`- ccommand -v \u67E5\u770B\u5F53\u524D\u7248\u672C
21
21
  - ccommand -help \u67E5\u770B\u5E2E\u52A9
@@ -23,10 +23,10 @@ command "prun ${t}" ${i} \u274C`})))}var O=m(require("@simon_he/colorize")),I=re
23
23
  - ccommand find \u67E5\u627E\u5F53\u524Dworkspace\u7684\u6240\u6709\u76EE\u5F55
24
24
  `,color:"cyan"})}
25
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:d,bold:!0,color:"cyan"})} `}))}else if(e[0]?.endsWith(".py")||e[0]?.endsWith(".rs")){await $t(e[0],i,a);return}let s;try{s=await(0,f.getPkgTool)()}catch{try{if(await Rt.default.readFile(Pt.default.resolve(D.default.cwd(),"./Makefile"),"utf-8")){s="make";let d=await kt("./Makefile"),g=d.reduce((h,y)=>{let{name:v,detail:W}=y;return h[v]=W,h},{}),x="";if(t)x=U(g,t);else{let{result:h,status:y}=await(0,f.jsShell)(`echo "${d.map(v=>v.name).join(`
27
- `)}" | gum filter --placeholder=" \u{1F914}\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u6307\u4EE4"`,"pipe");if(y===L)return F();x=h}await A(x.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[p,b,w]=_t(e),$=p,_;if(e[0]==="find"){if(b)await P(s),$=E.filter(o=>o.includes(b))[0];else if(s==="yarn"){if(await P(s),!E.length)return c((0,l.default)({color:"yellow",text:r}));let{result:o,status:n}=await(0,f.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===L)return F()}else if(s==="pnpm"){if(await P(s),!E.length)return c((0,l.default)({color:"yellow",text:r}));let{result:o,status:n}=await(0,f.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===L)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 st()}else if(_=await st(),p&&et&&!et[p]||!et)try{let o=(await(0,f.getPkg)("./package.json")||{})?.scripts;if(o&&o[e[0]]){await A(e[0],e.slice(1).join(" "));return}else if(o&&p){let n=U(o,e[0]);if(n){let d=e.slice(1).join(" ");await A(n,d);return}else{if(await yt(e[0],i,a))return;let g=`${p}.py`;if((0,nt.existsSync)(g)){c((0,l.default)({text:`\u{1F914} ${u?"\u627E\u5230Python\u6587\u4EF6":"Found Python file"}: ${g}`,color:"yellow"}));return}let x=`${p}.rs`;if((0,nt.existsSync)(x))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"}`})),D.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((g,x)=>{let h=_[x];return z.push(x),g+=`"${x}: ${h.replace(/\\/g,"\\\\").replace(/(["`])/g,"\\$1")}"${Y}`,g},""),{result:n,status:d}=await(0,f.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(d===L)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[Wt,rt]=await Ot(),Lt=Wt.replace(/\s+/g," "),{status:Mt,result:Ct=""}=await(0,f.jsShell)(Lt,{errorExit:!1,stdio:"inherit"});if(Mt===0)return c((0,l.default)({color:"green",text:`
28
- ${rt} \u{1F389}`}));if(Ct.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,f.jsShell)(`npm run ${k}${w?` -- ${w}`:""}`,"inherit");if(o===0)return c((0,l.default)({color:"green",text:`
29
- ${rt} \u{1F389}`}))}c((0,l.default)({color:"red",text:`
30
- command '${k}' ${a} \u274C`}));function ot(o){return z.find(n=>n===o)??z.find(n=>o.startsWith(n))}async function Ot(){let o="",n="",d=s!=="yarn";s==="npm"?(n=w?` -- ${w}`:"",o=$?` --prefix ${$} `:" "):s==="pnpm"?(n=w?` ${w}`:"",o=$?` --filter ${$} `:" "):s==="yarn"?(n=w?` ${w}`:"",o=$?` workspace ${$} `:" "):s==="bun"&&(n=w?` ${w}`:"",o="");let g="",x="";if(n&&!n.startsWith(" --")){let it=n.split(" ").filter(Boolean);g=it[0],n=it.slice(1).join(" ")}let h=`${s}${d?" run":" "}${o} ${g||(k?ot(k)||k:b)} ${Tt(n)?`-- ${n}`:n}`;k=`${g||(k?ot(k):b)}`,e[0]==="find"?x=`pfind ${$} ${k} ${n}`.replace(/\s+/g," ").trim():x=`prun ${k} ${n}`.replace(/\s+/g," ").trim(),await R(x);let y=x.split(" "),v=y.slice(-1)[0];y[y.length-1]=`'${v}'`;let W=y.join(" ");return[h,W]}async function st(){try{if(!$||s==="bun"||s==="npm")return(await(0,f.getPkg)("./package.json"))?.scripts;if(s==="pnpm")return(await P(s))[$]||(await(0,f.getPkg)(`${$}/package.json`))?.scripts;if(s==="yarn")return(await P(s))[$]||(await(0,f.getPkg)(`${$}/package.json`))?.scripts}catch{}}function Tt(o){return e[0]==="find",e[1]&&o}async function A(o,n){let d,g="",x=e[0]?.trim();switch(o&&x&&x!==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"})),s){case"npm":{let{status:h,result:y}=await(0,f.jsShell)(`npm run ${o}${n?` -- ${n}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});d=h,g=y;break}case"pnpm":{let{status:h,result:y=""}=await(0,f.jsShell)(`pnpm run ${o}${n?` ${n}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});if(g=y,d=h,g.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:W}=await(0,f.jsShell)(`npm run ${o}${n?` -- ${n}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});d=v,g=W}break}case"yarn":{let{status:h,result:y}=await(0,f.jsShell)(`yarn ${o}${n?` ${n}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});d=h,g=y;break}case"bun":{let{status:h,result:y}=await(0,f.jsShell)(`bun run ${o} ${n}`,{errorExit:!1,isLog:!1,stdio:"inherit"});d=h,g=y;break}case"make":{let{status:h,result:y}=await(0,f.jsShell)(`make ${o} ${n}`,{errorExit:!1,isLog:!1,stdio:"inherit"});d=h,g=y;break}}return d===0?(await R(`prun ${o}${n?` ${n}`:""}`),c((0,l.default)({color:"green",text:`
31
- prun '${o}${n?` ${n}`:""}' ${i} \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`}))}}zt();
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(D.default.cwd(),"./Makefile"),"utf-8")){s="make";let f=await bt("./Makefile"),d=f.reduce((g,h)=>{let{name:v,detail:W}=h;return g[v]=W,g},{}),y="";if(t)y=X(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===L)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]=vt(e),x=m,_;if(e[0]==="find"){if(b)await T(s),x=E.filter(r=>r.includes(b))[0];else if(s==="yarn"){if(await T(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===L)return F()}else if(s==="pnpm"){if(await T(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===L)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 if(_=await it(),m&&z&&!z[m]||!z)try{let r=(await nt("./package.json")||{})?.scripts;if(r&&r[e[0]]){await q(e[0],e.slice(1).join(" "));return}else if(r&&m){let n=X(r,e[0]);if(n){let f=e.slice(1).join(" ");await q(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"}`})),D.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 P=[],k="";if(!b||e[0]==="find"&&(!e[2]||e[2].startsWith("--"))){let r=Object.keys(_).reduce((d,y)=>{let g=_[y];return P.push(y),d+=`"${y}: ${g.replace(/\\/g,"\\\\").replace(/(["`])/g,"\\$1")}"${Y}`,d},""),{result:n,status:f}=await(0,$.jsShell)(`echo ${r} | 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===L)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[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 P.find(n=>n===r)??P.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 W=h.join(" ");return[g,W]}async function it(){try{let r=x||"root";if(z[r])return z[r];let n;return!x||s==="bun"||s==="npm"?n=(await nt("./package.json"))?.scripts:(s==="pnpm"||s==="yarn")&&(n=(await T(s))[x]||(await nt(`${x}/package.json`))?.scripts),n&&(z[r]=n),n}catch{return null}}function Ht(r){return e[0]==="find",e[1]&&r}async function q(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} ${B} ${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:W}=await(0,$.jsShell)(`npm run ${r}${n?` -- ${n}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});f=v,d=W}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();
package/dist/index.js CHANGED
@@ -1,32 +1,32 @@
1
- "use strict";var Nt=Object.create;var T=Object.defineProperty;var It=Object.getOwnPropertyDescriptor;var Dt=Object.getOwnPropertyNames;var At=Object.getPrototypeOf,qt=Object.prototype.hasOwnProperty;var Jt=(t,n)=>{for(var s in n)T(t,s,{get:n[s],enumerable:!0})},ct=(t,n,s,a)=>{if(n&&typeof n=="object"||typeof n=="function")for(let e of Dt(n))!qt.call(t,e)&&e!==s&&T(t,e,{get:()=>n[e],enumerable:!(a=It(n,e))||a.enumerable});return t};var m=(t,n,s)=>(s=t!=null?Nt(At(t)):{},ct(n||!t||!t.__esModule?T(s,"default",{value:t,enumerable:!0}):s,t)),Yt=t=>ct(T({},"__esModule",{value:!0}),t);var te={};Jt(te,{ccommand:()=>Wt});module.exports=Yt(te);var rt=require("fs"),Pt=m(require("fs/promises")),zt=m(require("path")),A=m(require("process")),l=m(require("@simon_he/colorize")),f=require("lazy-js-utils/node");var J="1.0.80";var Y=m(require("process")),lt=m(require("@simon_he/colorize")),c=console.log,Z="__ccommand__split",u=Y.default.env.PI_Lang==="zh",L=130,ut=u?"\u5DF2\u53D6\u6D88...":"Cancelled...",B=u?"\u5F53\u524D\u76EE\u5F55\u5E76\u672A\u627E\u5230package.json\u6587\u4EF6":"The current directory and not found package.json file",G=u?"\u6B63\u5728\u4E3A\u60A8\u6267\u884C...":"is running for you...";function F(){return c((0,lt.default)({color:"yellow",text:ut})),Y.default.exit()}var dt=require("child_process"),M=require("fs"),gt=m(require("fs/promises")),N=m(require("path")),ht=require("util"),C=m(require("@simon_he/colorize")),I=require("lazy-js-utils/node");var pt=require("fs"),V=m(require("fs/promises")),mt=m(require("process")),ft=m(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 n=`${mt.default.env.HOME}/.zsh_history`;try{if(!(0,pt.existsSync)(n))return;let s=await V.default.readFile(n,"utf8"),e=new Date().getTime()/1e3,i=`${s}: ${e.toFixed(0)}:0;${t}
2
- `,p=[];i.split(`
3
- `).forEach(w=>{let $=w.split(";").slice(1).join(";"),_=p.findIndex(z=>z.split(";").slice(1).join(";")===$);_!==-1&&p.splice(_,1),p.push(w)});let b=p.join(`
4
- `);await V.default.writeFile(n,b)}catch{}}var Bt=(0,ht.promisify)(dt.exec),H={};async function K(t){if(H[t]!==void 0)return H[t];try{return await Bt(`which ${t}`),H[t]=!0,!0}catch{return H[t]=!1,!1}}var j=null;async function Gt(){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,n,s,a){await R(`prun ${t}`);let{status:e}=await(0,I.jsShell)(n,{errorExit:!1,isLog:!1,stdio:"inherit"});c((0,C.default)({color:e===0?"green":"red",text:`
5
- "prun ${t}" ${e===0?s:a} ${e===0?"\u{1F389}":"\u274C"}`}))}async function Q(t,n,s){let a=N.default.extname(t),e="node";if(a===".ts")if(j===null&&await Gt(),j)e=j;else{c((0,C.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 It=Object.create;var H=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)H(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&&H(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?H(s,"default",{value:t,enumerable:!0}):s,t)),Zt=t=>lt(H({},"__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")),D=p(require("process")),l=p(require("@simon_he/colorize")),Lt=require("lazy-js-utils"),x=require("lazy-js-utils/node");var J="1.0.81";var Y=p(require("process")),ut=p(require("@simon_he/colorize")),c=console.log,Z="__ccommand__split",u=Y.default.env.PI_Lang==="zh",L=130,mt=u?"\u5DF2\u53D6\u6D88...":"Cancelled...",B=u?"\u5F53\u524D\u76EE\u5F55\u5E76\u672A\u627E\u5230package.json\u6587\u4EF6":"The current directory and not found package.json file",K=u?"\u6B63\u5728\u4E3A\u60A8\u6267\u884C...":"is running for you...";function F(){return c((0,ut.default)({color:"yellow",text:mt})),Y.default.exit()}var gt=require("child_process"),M=require("fs"),ht=p(require("fs/promises")),I=p(require("path")),yt=require("util"),C=p(require("@simon_he/colorize")),A=require("lazy-js-utils/node");var pt=require("fs"),V=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 V.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(P=>P.split(";").slice(1).join(";")===$);_!==-1&&m.splice(_,1),m.push(w)});let b=m.join(`
4
+ `);await V.default.writeFile(r,b)}catch{}}var Kt=(0,yt.promisify)(gt.exec),N={};async function Q(t){if(N[t]!==void 0)return N[t];try{return await Kt(`which ${t}`),N[t]=!0,!0}catch{return N[t]=!1,!1}}var j=null;async function Vt(){return j!==null||(await Q("bun")?j="bun":await Q("esno")?j="esno":await Q("tsx")?j="tsx":j=null),j}async function xt(t,r,s,a){await R(`prun ${t}`);let{status:e}=await(0,A.jsShell)(r,{errorExit:!1,isLog:!1,stdio:"inherit"});c((0,C.default)({color:e===0?"green":"red",text:`
5
+ "prun ${t}" ${e===0?s:a} ${e===0?"\u{1F389}":"\u274C"}`}))}async function U(t,r,s){let a=I.default.extname(t),e="node";if(a===".ts")if(j===null&&await Vt(),j)e=j;else{c((0,C.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
6
6
  - npm install -g bun
7
7
  - npm install -g esno
8
8
  - npm install -g tsx`:`No TypeScript executor found. Recommend installing one of:
9
9
  - npm install -g bun
10
10
  - npm install -g esno
11
- - npm install -g tsx`,color:"yellow"}));return}let i=`${e} ${t}`;await yt(t,i,n,s)}async function $t(t,n,s){let a=[".js",".ts",".mjs",".cjs"],e=N.default.extname(t);if(e&&a.includes(e)&&(0,M.existsSync)(t))return await Q(t,n,s),!0;if(!e)for(let i of a){let p=`${t}${i}`;if((0,M.existsSync)(p))return await Q(p,n,s),!0}if((0,M.existsSync)(t)&&(await gt.default.stat(t)).isDirectory())for(let i of a){let p=N.default.join(t,`index${i}`);if((0,M.existsSync)(p))return await Q(p,n,s),!0}return!1}async function xt(t,n,s){t.endsWith(".py")?await yt(t,`python ${t}`,n,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,C.default)({color:"green",text:`
12
- "prun ${t}" ${n} \u{1F389}`}))):c((0,C.default)({color:"red",text:`
13
- command "prun ${t}" ${s} \u274C`})))}var O=m(require("@simon_he/colorize")),D=require("lazy-js-utils/node"),U=console.log;async function wt(t){let{status:n}=await(0,D.jsShell)("gum -v","pipe");if(n!==0){U((0,O.default)({color:"blue",text:t?"\u6B63\u5728\u4E3A\u60A8\u5B89\u88C5gum...":"install gum..."}));let{status:s}=await(0,D.jsShell)("brew install gum");if(s!==0){let{status:a}=await(0,D.jsShell)(`sudo mkdir -p /etc/apt/keyrings
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=I.default.extname(t);if(e&&a.includes(e)&&(0,M.existsSync)(t))return await U(t,r,s),!0;if(!e)for(let i of a){let m=`${t}${i}`;if((0,M.existsSync)(m))return await U(m,r,s),!0}if((0,M.existsSync)(t)&&(await ht.default.stat(t)).isDirectory())for(let i of a){let m=I.default.join(t,`index${i}`);if((0,M.existsSync)(m))return await U(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,A.jsShell)(`rustc ${t}`)).status===0?(await R(`prun ${t}`),await(0,A.jsShell)(`./${t.slice(0,t.length-3)}`,"inherit"),c((0,C.default)({color:"green",text:`
12
+ "prun ${t}" ${r} \u{1F389}`}))):c((0,C.default)({color:"red",text:`
13
+ command "prun ${t}" ${s} \u274C`})))}var O=p(require("@simon_he/colorize")),q=require("lazy-js-utils/node"),X=console.log;async function kt(t){let{status:r}=await(0,q.jsShell)("gum -v","pipe");if(r!==0){X((0,O.default)({color:"blue",text:t?"\u6B63\u5728\u4E3A\u60A8\u5B89\u88C5gum...":"install gum..."}));let{status:s}=await(0,q.jsShell)("brew install gum");if(s!==0){let{status:a}=await(0,q.jsShell)(`sudo mkdir -p /etc/apt/keyrings
14
14
  curl -fsSL https://repo.charm.sh/apt/gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/charm.gpg
15
15
  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,O.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,O.default)({color:"yellow",text:i,bold:!0})}`}))}}U((0,O.default)({color:"green",text:t?"gum\u5B89\u88C5\u6210\u529F \u{1F389}":"gum install successfully \u{1F389}"}))}}var kt=m(require("fs/promises"));function bt(t){return new Promise(n=>{kt.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 p=new RegExp(`^${i}:[
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 X((0,O.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,O.default)({color:"yellow",text:i,bold:!0})}`}))}}X((0,O.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}:[
17
17
  \\s]*([^
18
- \\\\;]+)`,"ms"),b=s.match(p);if(!b)continue;let w=`${b[1].trim()}...`;a.push({name:i,detail:w})}n(a)}).catch(n)})}var jt=m(require("process")),_t=m(require("@simon_he/colorize"));function vt(t){let n=t[0];return n?n.startsWith("--")?["","",t.join(" ")]:t[1]&&t[1].startsWith("--")?[n,"",t.slice(1).join(" ")]:[n,t[1],t.slice(2).join(" ")]:["","",""]}function X(t,n){let s=Object.keys(t),a=s.find(e=>e.startsWith(n));if(a)return a;try{let e=new RegExp(n.split("").join("[_-\\w$.:]*"));return s.find(i=>e.test(i))}catch(e){c((0,_t.default)({text:`${u?"\u6B63\u5219\u9519\u8BEF":"RegExp error"}: ${e}`,color:"red"})),jt.default.exit(1)}}var St=m(require("fs/promises")),tt=m(require("path")),et=m(require("process")),Et=m(require("fast-glob")),Ft=require("lazy-js-utils"),Rt=require("lazy-js-utils/node"),Vt=require("yamljs"),E=[],S=null;async function Kt(t){let n=t==="pnpm"?tt.default.resolve(et.default.cwd(),"pnpm-workspace.yaml"):tt.default.resolve(et.default.cwd(),"package.json");try{return await St.default.readFile(n,"utf-8")}catch{return""}}function Qt(t,n){if(t==="pnpm")return Vt.parse(n)?.packages||[];{let s=JSON.parse(n)?.workspaces;return(0,Ft.isPlainObject)(s)?s?.packages||[]:s||[]}}async function Ut(t){if(!t.length)return{};let n=await(0,Et.default)(t.map(a=>`${a}/package.json`),{dot:!0,ignore:["**/node_modules/**"]});return(await Promise.all(n.map(async a=>{let e=await(0,Rt.getPkg)(a);if(!e)return null;let{name:i,scripts:p}=e;return{name:i,scripts:p}}))).reduce((a,e)=>(!e||!e.name||!e.scripts||(a[e.name]=Object.keys(e.scripts).reduce((i,p)=>(p.startsWith("//")||(i[p]=e.scripts[p]),i),{})),a),{})}async function Xt(t){if(S)return S;let n=await Kt(t),s=Qt(t,n);return S=await Ut(s)||{},E=Object.keys(S).filter(a=>S[a]&&Object.keys(S[a]).length),S}async function P(t){return Xt(t)}var nt=null;async function Wt(t){await wt(u);let n=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(" "):A.default.argv.slice(2);if(e[0]==="-v"||e[0]==="--version")return c((0,l.default)({text:u?`ccommand \u5F53\u524D\u7248\u672C: ${J}`:`ccommand Version: ${J}`,color:"green"}));if(e[0]==="-h"||e[0]==="--help"){let o=(await import("terminal-link")).default,r=o(u?"\u6253\u5F00\u4E00\u4E2A\u65B0\u7684\u95EE\u9898":"open an issue","https://github.com/Simon-He95/ccommand/issues"),d=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:`
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 tt(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")),et=p(require("path")),nt=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"?et.default.resolve(nt.default.cwd(),"pnpm-workspace.yaml"):et.default.resolve(nt.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 T(t){return ee(t)}var rt=(0,Lt.memorizeFn)(x.getPkg),z={};async function Mt(t=D.default.argv.slice(2).join(" ")){await kt(u);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(" "):D.default.argv.slice(2);if(e[0]==="-v"||e[0]==="--version")return c((0,l.default)({text:u?`ccommand \u5F53\u524D\u7248\u672C: ${J}`:`ccommand Version: ${J}`,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
19
  ${(0,l.default)({bold:!0,text:"Common Commands:",bgColor:"blue"})}
20
20
  ${(0,l.default)({text:`- ccommand -v \u67E5\u770B\u5F53\u524D\u7248\u672C
21
21
  - ccommand -help \u67E5\u770B\u5E2E\u52A9
22
22
  - ccommand \u6267\u884C\u5F53\u524Dpackage.json
23
23
  - ccommand find \u67E5\u627E\u5F53\u524Dworkspace\u7684\u6240\u6709\u76EE\u5F55
24
24
  `,color:"cyan"})}
25
- If you encounter any problems, you can ${(0,l.default)({color:"magenta",text:r})}.
26
- If you like it, please ${(0,l.default)({text:d,bold:!0,color:"cyan"})} `}))}else if(e[0]?.endsWith(".py")||e[0]?.endsWith(".rs")){await xt(e[0],s,a);return}let i;try{i=await(0,f.getPkgTool)()}catch{try{if(await Pt.default.readFile(zt.default.resolve(A.default.cwd(),"./Makefile"),"utf-8")){i="make";let d=await bt("./Makefile"),g=d.reduce((h,y)=>{let{name:v,detail:W}=y;return h[v]=W,h},{}),x="";if(t)x=X(g,t);else{let{result:h,status:y}=await(0,f.jsShell)(`echo "${d.map(v=>v.name).join(`
27
- `)}" | gum filter --placeholder=" \u{1F914}\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u6307\u4EE4"`,"pipe");if(y===L)return F();x=h}await q(x.trim(),"");return}else return c((0,l.default)({color:"red",text:B}))}catch{if(e[0]!=="find")return c((0,l.default)({color:"red",text:B}))}}let[p,b,w]=vt(e),$=p,_;if(e[0]==="find"){if(b)await P(i),$=E.filter(o=>o.includes(b))[0];else if(i==="yarn"){if(await P(i),!E.length)return c((0,l.default)({color:"yellow",text:n}));let{result:o,status:r}=await(0,f.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,r===L)return F()}else if(i==="pnpm"){if(await P(i),!E.length)return c((0,l.default)({color:"yellow",text:n}));let{result:o,status:r}=await(0,f.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(r===L)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 it()}else if(_=await it(),p&&nt&&!nt[p]||!nt)try{let o=(await(0,f.getPkg)("./package.json")||{})?.scripts;if(o&&o[e[0]]){await q(e[0],e.slice(1).join(" "));return}else if(o&&p){let r=X(o,e[0]);if(r){let d=e.slice(1).join(" ");await q(r,d);return}else{if(await $t(e[0],s,a))return;let g=`${p}.py`;if((0,rt.existsSync)(g)){c((0,l.default)({text:`\u{1F914} ${u?"\u627E\u5230Python\u6587\u4EF6":"Found Python file"}: ${g}`,color:"yellow"}));return}let x=`${p}.rs`;if((0,rt.existsSync)(x))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"}`})),A.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((g,x)=>{let h=_[x];return z.push(x),g+=`"${x}: ${h.replace(/\\/g,"\\\\").replace(/(["`])/g,"\\$1")}"${Z}`,g},""),{result:r,status:d}=await(0,f.jsShell)(`echo ${o} | sed "s/${Z}/\\n/g" | gum filter --placeholder=" \u{1F914}\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u6307\u4EE4"`,{stdio:["inherit","pipe","inherit"],isLog:!1});if(d===L)return F();k=r.substring(0,r.indexOf(": "))}if(!b&&!k)return F();c((0,l.default)({text:`\u{1F914} ${G} ${k}`,color:"magenta"}));let[Lt,ot]=await Tt(),Mt=Lt.replace(/\s+/g," "),{status:Ct,result:Ot=""}=await(0,f.jsShell)(Mt,{errorExit:!1,stdio:"inherit"});if(Ct===0)return c((0,l.default)({color:"green",text:`
28
- ${ot} \u{1F389}`}));if(Ot.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,f.jsShell)(`npm run ${k}${w?` -- ${w}`:""}`,"inherit");if(o===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(o){return z.find(r=>r===o)??z.find(r=>o.startsWith(r))}async function Tt(){let o="",r="",d=i!=="yarn";i==="npm"?(r=w?` -- ${w}`:"",o=$?` --prefix ${$} `:" "):i==="pnpm"?(r=w?` ${w}`:"",o=$?` --filter ${$} `:" "):i==="yarn"?(r=w?` ${w}`:"",o=$?` workspace ${$} `:" "):i==="bun"&&(r=w?` ${w}`:"",o="");let g="",x="";if(r&&!r.startsWith(" --")){let at=r.split(" ").filter(Boolean);g=at[0],r=at.slice(1).join(" ")}let h=`${i}${d?" run":" "}${o} ${g||(k?st(k)||k:b)} ${Ht(r)?`-- ${r}`:r}`;k=`${g||(k?st(k):b)}`,e[0]==="find"?x=`pfind ${$} ${k} ${r}`.replace(/\s+/g," ").trim():x=`prun ${k} ${r}`.replace(/\s+/g," ").trim(),await R(x);let y=x.split(" "),v=y.slice(-1)[0];y[y.length-1]=`'${v}'`;let W=y.join(" ");return[h,W]}async function it(){try{if(!$||i==="bun"||i==="npm")return(await(0,f.getPkg)("./package.json"))?.scripts;if(i==="pnpm")return(await P(i))[$]||(await(0,f.getPkg)(`${$}/package.json`))?.scripts;if(i==="yarn")return(await P(i))[$]||(await(0,f.getPkg)(`${$}/package.json`))?.scripts}catch{}}function Ht(o){return e[0]==="find",e[1]&&o}async function q(o,r){let d,g="",x=e[0]?.trim();switch(o&&x&&x!==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}${r?` ${r}`:""}'`,color:"cyan"})} `,color:"yellow"})):o&&c((0,l.default)({text:`\u{1F914} ${G} ${o}`,color:"magenta"})),i){case"npm":{let{status:h,result:y}=await(0,f.jsShell)(`npm run ${o}${r?` -- ${r}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});d=h,g=y;break}case"pnpm":{let{status:h,result:y=""}=await(0,f.jsShell)(`pnpm run ${o}${r?` ${r}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});if(g=y,d=h,g.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:W}=await(0,f.jsShell)(`npm run ${o}${r?` -- ${r}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});d=v,g=W}break}case"yarn":{let{status:h,result:y}=await(0,f.jsShell)(`yarn ${o}${r?` ${r}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});d=h,g=y;break}case"bun":{let{status:h,result:y}=await(0,f.jsShell)(`bun run ${o} ${r}`,{errorExit:!1,isLog:!1,stdio:"inherit"});d=h,g=y;break}case"make":{let{status:h,result:y}=await(0,f.jsShell)(`make ${o} ${r}`,{errorExit:!1,isLog:!1,stdio:"inherit"});d=h,g=y;break}}return d===0?(await R(`prun ${o}${r?` ${r}`:""}`),c((0,l.default)({color:"green",text:`
31
- prun '${o}${r?` ${r}`:""}' ${s} \u{1F389}`}))):c((0,l.default)({color:"red",text:`
32
- command ${(0,l.default)({bold:!0,color:"cyan",text:`'${o||e[0]}${r?` ${r}`:""}'`})} ${a} \u274C`}))}}0&&(module.exports={ccommand});
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(D.default.cwd(),"./Makefile"),"utf-8")){i="make";let f=await jt("./Makefile"),d=f.reduce((g,h)=>{let{name:v,detail:W}=h;return g[v]=W,g},{}),y="";if(t)y=tt(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===L)return F();y=g}await G(y.trim(),"");return}else return c((0,l.default)({color:"red",text:B}))}catch{if(e[0]!=="find")return c((0,l.default)({color:"red",text:B}))}}let[m,b,w]=St(e),$=m,_;if(e[0]==="find"){if(b)await T(i),$=E.filter(o=>o.includes(b))[0];else if(i==="yarn"){if(await T(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===L)return F()}else if(i==="pnpm"){if(await T(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===L)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 if(_=await at(),m&&z&&!z[m]||!z)try{let o=(await rt("./package.json")||{})?.scripts;if(o&&o[e[0]]){await G(e[0],e.slice(1).join(" "));return}else if(o&&m){let n=tt(o,e[0]);if(n){let f=e.slice(1).join(" ");await G(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"}`})),D.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 P=[],k="";if(!b||e[0]==="find"&&(!e[2]||e[2].startsWith("--"))){let o=Object.keys(_).reduce((d,y)=>{let g=_[y];return P.push(y),d+=`"${y}: ${g.replace(/\\/g,"\\\\").replace(/(["`])/g,"\\$1")}"${Z}`,d},""),{result:n,status:f}=await(0,x.jsShell)(`echo ${o} | sed "s/${Z}/\\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===L)return F();k=n.substring(0,n.indexOf(": "))}if(!b&&!k)return F();c((0,l.default)({text:`\u{1F914} ${K} ${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 P.find(n=>n===o)??P.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 W=h.join(" ");return[g,W]}async function at(){try{let o=$||"root";if(z[o])return z[o];let n;return!$||i==="bun"||i==="npm"?n=(await rt("./package.json"))?.scripts:(i==="pnpm"||i==="yarn")&&(n=(await T(i))[$]||(await rt(`${$}/package.json`))?.scripts),n&&(z[o]=n),n}catch{return null}}function Nt(o){return e[0]==="find",e[1]&&o}async function G(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} ${K} ${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:W}=await(0,x.jsShell)(`npm run ${o}${n?` -- ${n}`:""}`,{errorExit:!1,isLog:!1,stdio:"inherit"});f=v,d=W}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});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ccommand",
3
- "version": "1.0.80",
3
+ "version": "1.0.81",
4
4
  "packageManager": "pnpm@6.35.1",
5
5
  "description": "ccommand",
6
6
  "author": "Simon He",
@@ -56,7 +56,7 @@
56
56
  "yamljs": "^0.3.0"
57
57
  },
58
58
  "devDependencies": {
59
- "@antfu/eslint-config": "^4.10.2",
59
+ "@antfu/eslint-config": "^4.11.0",
60
60
  "@types/node": "^17.0.45",
61
61
  "bumpp": "^8.2.1",
62
62
  "eslint": "^9.23.0",