UNPKG

@ycmd/run

Version:

LSK.js CLI Creds is the easiest way to manage GitHub / Gitlab secrets and credentials

23 lines (20 loc) 5.9 kB
'use strict'; var err = require('@lsk4/err'); var utils = require('@ycmd/utils'); var helpers = require('@ycmd/helpers'); var promises = require('fs/promises'); var path = require('path'); var fishbird = require('fishbird'); var spawn = require('@ycmd/spawn'); var R=Object.defineProperty;var s=(t,r)=>R(t,"name",{value:r,configurable:!0});var P=s(async()=>{let t=process;t.lskrunDisableAutorun=!0;},"disableAutorun"),b=s(async()=>{let t=process;delete t.lskrunDisableAutorun;},"enableAutorun");var A=s(t=>{process;return async(o={})=>{let a={...await helpers.loadMainOptions(),...o};try{return await t(a)}catch(c){throw c}}},"wrapMain");var xt=s(t=>{let r,o=process,n=!o.lskrun&&!o.lskrunDisableAutorun,a=!1;if(typeof t=="function")r=t;else if(typeof t=="object"&&typeof t.main=="function")r=t.main,a=t.meta?utils.isExecutedFile(t.meta):n;else throw new err.Err("!main","Can't find main function");if(a){n||utils.log.warn("[exec]","Already executed",o.lskrun);let p={isAutorun:a,params:t};o.lskrun=p;}let c=A(r),g={...t,isAutorun:a,isWrapped:!0,main:c};if(a){let p={isAutorun:a,isFirstExec:n};g.res=c(p);}return g},"createCommand");async function S(t,r={}){let o=process,[n,...a]=t.trim().split(" ").filter(Boolean),{argv:c={}}=r,g=[...a,...r.args||[],...helpers.argvToArgs(c)],p=r.cwd||o.cwd(),h=r.ctx||o.pathexec?.rootRun?.ctx||{};h.stack||(h.stack=[]);let C=`${r.cmdName||"ycmd"} ${t} ${utils.joinArgs(g)}`;h.stack.unshift({command:C,options:r});let e=r.name||utils.getPackageName({cwd:p}),f=n.replace(/:/g,"-"),l=r.log||utils.createLogger({name:e}),u={name:f,exts:[".sh",".js",".cjs",".mjs",".ts",".cts",".mts"],nodemodules:1,local:1,script:f},i=utils.findPath(u);if(l.debug(`\u276F ${C}`),h.stack[0].filename=i,!i){let d=`Missing script: "${n}"`;throw new err.Err("YCMD_MISSING_SCRIPT",d,{data:{pathOptions:u,paths:utils.getPaths(u)}})}let m,M=[".sh",".ts",".cts",".mts"];try{if(M.some(N=>i.endsWith(N)))return l.trace(`\u276F\u276F exec ${utils.getShortPath(i)}`),m=await k(`${i} ${g.join(" ")}`),m;l.trace(`\u276F\u276F require ${utils.getShortPath(i)}`);let d=utils.undefault(await import(i)),$;if(typeof d=="function")$=d;else if(d?.run&&typeof d.run=="function")$=d.run;else if(d?.main&&typeof d.main=="function")$=d.main;else return l.warn(`[!incorrectExports] ${i}`),l.trace(`[!incorrectExports] ${i}`,{content:d}),null;$&&(m=await $({cwd:p,isRoot:utils.isWorkspaceRoot({cwd:p}),args:g,argv:c,options:r,ctx:h,log:l})),h.stack.shift();}catch(d){throw d}return m}s(S,"pathexec");async function k(t,r={}){let n=["lsk run","lsk","lsk4","ycmd"].find(e=>t.startsWith(`${e} `));if(n)return S(t.slice(`${n} `.length),{...r,cmdName:n});let{args:a=[],argv:c,...g}=r,{silence:p}=r,h="inherit";p==="all"?h=["inherit","ignore","ignore"]:p&&(h=["inherit","ignore","inherit"]);let w=[...a,...helpers.argvToArgs(c)];return await spawn.spawn(t,w,{shell:!0,stdio:h,...g})}s(k,"shell");var et=s(t=>t?.command||t?.handler||t?.main,"isCommand"),Yt=s(async t=>{let{exts:r}=t,o=t.cwd||process.cwd(),n=await utils.loadConfig({cwd:o,default:!0}),a=n?.config?.scripts,c=n?.path,g=c?path.resolve(c,".."):o,p=[];a?p=await utils.resolvePaths(a,{cwd:g}):(utils.log.warn("!config.scripts, use getPaths()"),p=(await utils.loadDefaultConfig({cwd:o})).scripts),utils.log.trace("[configPath]",c),utils.log.trace("[configDirPath]",g),utils.log.trace("[loadedConfig]",n),utils.log.trace("[scripts]",a),utils.log.trace("[dirs]",p),utils.log.trace("[short scripts]",p.map(e=>utils.getShortPath(e)));let h=await fishbird.map(p,async e=>{try{return (await promises.readdir(e)).filter(l=>(r||[]).some(u=>l.endsWith(u))).map(l=>({name:l.replace(/\.[^/.]+$/,""),path:`${e}/${l}`}))}catch{return []}}).then(e=>e.flat()),w={};h.forEach(e=>{w[e.name]||(w[e.name]=e);}),P(),await fishbird.map(Object.values(w),async e=>{let f=await promises.readFile(e.path),l=String(f).startsWith("#!/"),u=s(m=>String(f).includes(m),"has"),i=u("export default")&&u("createCommand")||u("export default {")||u("@YCMD-command");if(w[e.name].isExecutable=l,w[e.name].isSafeImport=i,i)try{let m=await import(e.path);w[e.name].fileContent=await(m.default||m),w[e.name].isImported=!0;}catch(m){w[e.name].importErr=m;}}),b();let C=Object.values(w).map(({name:e,fileContent:f,isExecutable:l,importErr:u})=>{let i=f?.command||"",m=f?.describe||"";if(m||(u?(m+=`!!! Error: ${err.Err.getCode(u)}`,utils.log.warn("importErr",u)):m+="??? Missed createCommand describe"),i||(i=e),et(f)){let{main:M,isWrapped:d}=f,{handler:$}=f;return !$&&M&&($=s(N=>{if(!d)throw utils.log.warn("NOT WTF isWrapped",N,e,f,l,u),new err.Err("!isWrapped","isWrapped");return M({argv:N})},"handler")),{...f,command:i,describe:m,handler:$}}return l?{command:i,describe:m,handler:async()=>k(`ycmd ${e} ${process.argv.slice(3).join(" ")}`)}:null});return utils.log.trace("[commands]",C.map(e=>String(e?.command).split(" ")[0])),C.filter(Boolean)},"findCommands");function W(t,r={}){let o=t,n=r.npmClient||"pnpm";if(n==="pnpm"){let a=process.env.PNPM_CONCURRENCY||4,c=a&&a!==4?` --workspace-concurrency=${a}`:"";return r.parallel&&(c+=" --parallel"),k(`pnpm -r${c} ${o}`,r)}throw new err.Err("LSK_NPM_CLIENT",`Unknown npmClient: ${n}`,{command:t,options:r,cmd:o})}s(W,"pnpmRecursive");async function Zt(t={cwd:process.cwd()}){let r=["lerna.json","pnpm-workspace.yaml"],{cwd:o=process.cwd()}=t,n=await utils.findFileUp(r,{cwd:o});return n?path.join(n,".."):null}s(Zt,"findMonorepoRoot");function sr(t,r={}){let o=t,n=r.npmClient||"pnpm";if(n==="pnpm")return W(`exec ${o}`,r);throw new err.Err("LSK_NPM_CLIENT",`Unknown npmClient: ${n}`,{command:t,options:r,cmd:o})}s(sr,"shellParallel"); exports.createCommand = xt; exports.disableAutorun = P; exports.enableAutorun = b; exports.findCommands = Yt; exports.findMonorepoRoot = Zt; exports.pathexec = S; exports.pnpmRecursive = W; exports.shell = k; exports.shellParallel = sr; //# sourceMappingURL=out.js.map //# sourceMappingURL=index.js.map