ccommand 1.0.84 → 1.0.86

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