UNPKG

adastra-cli-kit

Version:

Adastra ✨ CLI Kit is a bunch of utils and modules that are shared across CLI apps like `create-adastra` and `adastra-cli` to have one source of truth for both these two packages. Its an internal private package not intended for external distribution.

7 lines (6 loc) 5.42 kB
import y from"chalk";import{get as F}from"https";import{exec as E}from"child_process";import{platform as H}from"os";import{erase as ce,cursor as le}from"sisteransi";var T=e=>{let t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PRZcf-ntqry=><~]))"].join("|"),r=new RegExp(t,"g");return typeof e=="string"?e.replace(r,""):e};var O={enabled:H()!=="win32"},R,K=()=>{O.enabled=!0},c=()=>!O.enabled,W=()=>{let e=t=>{t===0&&console.log(` ${y.bgCyan(y.black(" done "))} ${y.bold("Operation cancelled.")}`)};return process.on("beforeExit",e),()=>process.off("beforeExit",e)},u=async e=>await new Promise(t=>setTimeout(t,e)),l=(...e)=>(e=e.flat(1),e[Math.floor(e.length*Math.random())]),b=(e,t)=>Math.floor(Math.random()*(t-e+1)+e),q=async()=>await new Promise(e=>{if(R.length>0)return e(R);F("https://registry.npmjs.org/adastra-plugin/latest",t=>{let r="";t.on("data",n=>r+=n),t.on("end",()=>{let{version:n}=JSON.parse(r);R=n,e(n)})})}),J=async()=>await new Promise(e=>{E("git config user.name",{encoding:"utf-8"},(t,r)=>{if(r.trim().length>0)return e(r.split(" ")[0].trim());E("whoami",{encoding:"utf-8"},(n,o)=>o.trim().length>0?e(o.split(" ")[0].trim()):e("astronaut"))})}),L=(e,t,r)=>{let n=Math.max(r-T(e).length,0);switch(t){case"start":return e+" ".repeat(n);case"end":return" ".repeat(n)+e;case"center":return" ".repeat(Math.floor(n/2))+e+" ".repeat(Math.floor(n/2));default:return e}};import v from"chalk";import B from"ora";import{COLORS as s}from"adastra-branding";var j="\u25A0\u25B6",V=[...s.gradient,...[...s.gradient].reverse(),...s.gradient],D=async e=>await new Promise(t=>{setTimeout(t,e)});function X(){let e=[];for(let t=0;t<s.gradient.length*2;t++){let r=t+s.gradient.length-1;e.push(V.slice(t,r).map(n=>v.bgHex(n)(" ")).join(""))}return e}function Q(){let e=[];for(let t=1;t<=s.gradient.length;t++){let r=Array.from(new Array(Math.abs(s.gradient.length-t-1)),()=>" "),n=s.gradient.slice(0,t).map(o=>v.bgHex(o)(" "));e.push([...r,...n].join(""))}return e}async function k(e){let t=Q(),r=B({spinner:{interval:10,frames:t},text:`${j} ${e}`});return r.start(),await D((t.length-1)*r.interval),r.stop(),B({spinner:{interval:60,frames:X()},text:v.hex(s.yellowGreen)(`${j} ${e} `)}).start()}import Z from"readline";import m from"chalk";import ee from"moment";import h from"log-update";var N=(e,t)=>{if(!(e.meta&&e.name!=="escape")){if(e.ctrl){if(e.name==="a")return"first";if(e.name==="c"||e.name==="d")return"abort";if(e.name==="e")return"last";if(e.name==="g")return"reset"}if(t){if(e.name==="j")return"down";if(e.name==="k")return"up"}return e.name==="return"||e.name==="enter"?"submit":e.name==="backspace"?"delete":e.name==="delete"?"deleteForward":e.name==="abort"?"abort":e.name==="escape"?"exit":e.name==="tab"?"next":e.name==="pagedown"?"nextPage":e.name==="pageup"?"prevPage":e.name==="home"?"home":e.name==="end"?"end":e.name==="up"?"up":e.name==="down"?"down":e.name==="right"?"right":e.name==="left"?"left":!1}};import{COLORS as x,BRAND as _}from"adastra-branding";var te=async(e=[],{clear:t=!1}={})=>{let r=Z.createInterface({input:process.stdin,escapeCodeTimeout:50});Z.emitKeypressEvents(process.stdin,r);let n=0,o=!1,g=async()=>{process.stdin.off("keypress",g),process.stdin.isTTY&&process.stdin.setRawMode(!1),r.close(),o=!0,n<e.length-1?h.clear():t?h.clear():h.done()};process.stdin.isTTY&&process.stdin.setRawMode(!0),process.stdin.on("keypress",(p,f)=>{process.stdin.isTTY&&process.stdin.setRawMode(!0);let i=N(f,!0);if(i==="abort")return g(),process.exit(0);["up","down","left","right"].includes(i)||g()});let I=Array.isArray(e)?e:[e],$=c()?["\u2022","\u2022","o","o","\u2022","O","^","\u2022"]:["\u25CF","\u25CF","\u25CF","\u25CF","\u25CF","\u25CB","\u25CB","\u2022"],M=c()?["\u2022","O","*","o","o","\u2022","-"]:["\u2022","\u25CB","\u25A0","\u25AA","\u25AB","\u25AC","\u25AD","-","\u25CB"],S=c()?["\u2014","|"]:["\u2500","\u2502"],C=c()?["+","+","+","+"]:["\u256D","\u256E","\u2570","\u256F"],G=(p,{mouth:f=M[0],eye:i=$[0]}={})=>{let[a,d]=S,[A,w,P,U]=C,Y=a.repeat(3);return[`${A}${a.repeat(2)}${Y}${w}`,`${d} ${i} ${m.hex(x.yellowGreen)(f)} ${i} ${m.hex(x.yellowGreen).bold(_.mascot)}`,`${d}${" ".repeat(5)}${d} ${p}`,`${P}${a.repeat(5)}${U}`].join(` `)};for(let p of I){let f=Array.isArray(p)?p:p.split(" "),i=[],a=l($),d=0;for(let w of[""].concat(f)){w&&i.push(w);let P=l(M);d%7===0&&(a=l($)),n===1&&(a=a),h(` `+G(i.join(" "),{mouth:P,eye:a})),o||await u(b(50,150)),d++}o||await u(75);let A=` `+G(f.join(" "),{mouth:c()?"u":"\u25E1",eye:c()?"^":"\u25E0"});h(A),o||await u(b(1e3,1200)),n++}process.stdin.off("keypress",g),await u(75),g(),process.stdin.isTTY&&process.stdin.setRawMode(!1),process.stdin.removeAllListeners("keypress")},re=(e,t=m.bgHex(x.yellowGreen),r=m.whiteBright)=>t(` ${r(e)} `),ne=(e,t=m.hex(x.yellowGreen))=>t(e),oe=(e,t=x.yellowGreen)=>`${m.white(ee().format("hh:mm:ss"))} ${m.hex(t).bold(`[${_.name.toLowerCase()}]`)} ${e}`;import{nouns as z,adjectives as se}from"adastra-branding";var ie=()=>{let e=l(se),t=z.filter(n=>n[0]===e[0]),r=l(t.length>0?t:z);return`${e}-${r}`};export{L as align,ne as colored,c as enableAscii,K as forceUnicode,ie as generateProjectName,q as getAdastraVersion,J as getUserName,W as hookExit,re as label,k as loadWithRocketGradient,oe as prefixed,l as random,b as randomBetween,j as rocketAscii,te as say,u as sleep};