@armit/common
Advanced tools
+6
-0
| # @armit/common | ||
| ## 0.0.7 | ||
| ### Patch Changes | ||
| - [`4cd6b14`](https://github.com/armitjs/armit/commit/4cd6b142223e1b6de75555ebe745c4fea220e383) Thanks [@tianyingchun](https://github.com/tianyingchun)! - improve package search typing constraint | ||
| ## 0.0.6 | ||
@@ -4,0 +10,0 @@ |
+9
-9
| import * as yargs from 'yargs'; | ||
| import { Argv, CommandModule, ParseCallback, Arguments } from 'yargs'; | ||
| import { PackageJson } from 'type-fest'; | ||
| import { PackageJson, SetRequired } from 'type-fest'; | ||
| import { Options } from 'globby'; | ||
@@ -154,7 +154,7 @@ import { Options as Options$1 } from 'micromatch'; | ||
| setDefaultContext(defaultContext: string): void; | ||
| error(message: string, context?: string, trace?: string | undefined): void; | ||
| warn(message: string, context?: string): void; | ||
| info(message: string, context?: string): void; | ||
| verbose(message: string, context?: string): void; | ||
| debug(message: string, context?: string): void; | ||
| error(message: string | object, context?: string, trace?: string | undefined): void; | ||
| warn(message: string | object, context?: string): void; | ||
| info(message: string | object, context?: string): void; | ||
| verbose(message: string | object, context?: string): void; | ||
| debug(message: string | object, context?: string): void; | ||
| private logContext; | ||
@@ -405,3 +405,3 @@ private ensureString; | ||
| */ | ||
| declare const getPackageData: (options?: Options$2) => PackageJson | undefined; | ||
| declare const getPackageData: (options: SetRequired<Options$2, 'cwd'>) => PackageJson | undefined; | ||
@@ -412,3 +412,3 @@ /** | ||
| */ | ||
| declare const getPackageDir: (options?: Options$2) => string | undefined; | ||
| declare const getPackageDir: (options: SetRequired<Options$2, 'cwd'>) => string | undefined; | ||
| /** | ||
@@ -418,3 +418,3 @@ * Find the closest package.json file | ||
| */ | ||
| declare const getClosestPackageFile: (options?: Options$2) => string | undefined; | ||
| declare const getClosestPackageFile: (options: SetRequired<Options$2, 'cwd'>) => string | undefined; | ||
| /** | ||
@@ -421,0 +421,0 @@ * Finds the first parent directory that contains a given file or directory. |
+10
-10
| import be from 'yargs'; | ||
| import M from 'picocolors'; | ||
| import Se from 'terminal-link'; | ||
| import S, { statSync, rmSync, readFileSync, writeFileSync, readdirSync, lstatSync, existsSync, mkdirSync, createReadStream } from 'fs'; | ||
| import j from 'picocolors'; | ||
| import Ce from 'terminal-link'; | ||
| import C, { statSync, rmSync, readFileSync, writeFileSync, readdirSync, lstatSync, existsSync, mkdirSync, createReadStream } from 'fs'; | ||
| import P, { join, dirname, relative } from 'path'; | ||
| import { globbySync, globby } from 'globby'; | ||
| import q, { memClear } from 'mem'; | ||
| import V, { memClear } from 'mem'; | ||
| import T from 'resolve'; | ||
@@ -23,14 +23,14 @@ import { fileURLToPath } from 'url'; | ||
| function p(t){return t.length?e=>{let r=e;for(let o=0;o<t.length;o++)r=M[t[o]](r);return r}:e=>e}var ve=[{color:["red","underline"],name:"error",isError:!0},{color:["gray","bold"],name:"trace",isError:!1}],R=[...ve,{color:["gray","bold","italic","underline"],isError:!1,name:"debug"},{color:["bgRed","white","bold","italic"],isError:!0,name:"fatal"},{color:["blue","bold"],isError:!1,name:"info"},{color:["yellow","dim","underline"],isError:!0,name:"warn"}];function xe(t){return typeof t=="string"?t:JSON.stringify(t,null,2)}function L(t,e){let r=e.filter(o=>{let n=o==="strikethrough"||o==="underline";return t==="DECORATION"?n:!n});return p(r)}function y(t,e,r,o,n,i){let s=e.getTime()-r.getTime(),a=Math.floor(s/n);return s=s%n,a!==0?o(t+a+i)+" ":n===1?o(t+"0")+" ":""}function $(t,e,r,o,n){let i=" ";return i+=y(n,t,e,r,31536e6,"y"),i+=y(n,t,e,r,2592e6,"m"),i+=y(n,t,e,r,864e5,"d"),i+=y(n,t,e,r,36e5,"h"),i+=y(n,t,e,r,6e4,"min"),i+=y(n,t,e,r,1e3,"s"),i+=y(n,t,e,r,1,"ms"),o(i)}function j(t,e){return e=!e,e?"":`${t.getMonth()+1}m/`}var w=class{data;log;startTime;timeInLastLog;logMsg(e,r,o,n){let{capitalizeLevelName:i,showArrow:s,showDate:a,showLevelName:f,showMonthBeforeDay:m,showRelativeTimestamp:l,showTimestamp:u,showTimestampRelativeToLastLog:d,use24HourClock:B,contextColor:he}=this.data,g=new Date,C=L("COLOR",e.color),v=L("DECORATION",e.color),J=m,c="",b=[];if(o){let h=L("COLOR",he);b.push(" "+h(o.toUpperCase())+" ");}if(f&&b.push(C(" "+v(i?e.name.toUpperCase():e.name)+" ")),b.length&&(c+="["+b.join(":")+"] "),a||u){if(c+="[",a&&(c+=C(" "+v(`${j(g,J)+g.getDate()}d/${j(g,J)}${g.getFullYear()}y`)+" ")),a&&u&&(c+="|"),u){let h=g.getHours();c+=C(" "+v(`${B||!(h>=13||h===0)?h:Math.abs(h-12)}:${g.getMinutes()}:${g.getSeconds()}.${g.getMilliseconds()}`)+" "+(B?"":v(h>=13?"PM":"AM")+" "));}c+="]";}(a||u)&&(l||d)&&(c+=" "),(l||d)&&(c+="[",l&&(c+=$(g,this.startTime,v,C,"")),l&&d&&(c+="|"),d&&(c+=$(g,this.timeInLastLog,v,C,"+")),c+="]"),s&&(c+=` ${M.bold(">>")} `),c+=` ${r}`+(e.isError&&n?` | ||
| ${M.red(xe(n))} | ||
| function p(t){return t.length?e=>{let r=e;for(let o=0;o<t.length;o++)r=j[t[o]](r);return r}:e=>e}var ve=[{color:["red","underline"],name:"error",isError:!0},{color:["gray","bold"],name:"trace",isError:!1}],$=[...ve,{color:["gray","bold","italic","underline"],isError:!1,name:"debug"},{color:["bgRed","white","bold","italic"],isError:!0,name:"fatal"},{color:["blue","bold"],isError:!1,name:"info"},{color:["yellow","dim","underline"],isError:!0,name:"warn"}];function xe(t){return typeof t=="string"?t:JSON.stringify(t,null,2)}function L(t,e){let r=e.filter(o=>{let n=o==="strikethrough"||o==="underline";return t==="DECORATION"?n:!n});return p(r)}function y(t,e,r,o,n,i){let s=e.getTime()-r.getTime(),a=Math.floor(s/n);return s=s%n,a!==0?o(t+a+i)+" ":n===1?o(t+"0")+" ":""}function M(t,e,r,o,n){let i=" ";return i+=y(n,t,e,r,31536e6,"y"),i+=y(n,t,e,r,2592e6,"m"),i+=y(n,t,e,r,864e5,"d"),i+=y(n,t,e,r,36e5,"h"),i+=y(n,t,e,r,6e4,"min"),i+=y(n,t,e,r,1e3,"s"),i+=y(n,t,e,r,1,"ms"),o(i)}function R(t,e){return e=!e,e?"":`${t.getMonth()+1}m/`}var w=class{data;log;startTime;timeInLastLog;logMsg(e,r,o,n){let{capitalizeLevelName:i,showArrow:s,showDate:a,showLevelName:u,showMonthBeforeDay:m,showRelativeTimestamp:l,showTimestamp:f,showTimestampRelativeToLastLog:d,use24HourClock:B,contextColor:he}=this.data,g=new Date,S=L("COLOR",e.color),v=L("DECORATION",e.color),J=m,c="",b=[];if(o){let h=L("COLOR",he);b.push(" "+h(o.toUpperCase())+" ");}if(u&&b.push(S(" "+v(i?e.name.toUpperCase():e.name)+" ")),b.length&&(c+="["+b.join(":")+"] "),a||f){if(c+="[",a&&(c+=S(" "+v(`${R(g,J)+g.getDate()}d/${R(g,J)}${g.getFullYear()}y`)+" ")),a&&f&&(c+="|"),f){let h=g.getHours();c+=S(" "+v(`${B||!(h>=13||h===0)?h:Math.abs(h-12)}:${g.getMinutes()}:${g.getSeconds()}.${g.getMilliseconds()}`)+" "+(B?"":v(h>=13?"PM":"AM")+" "));}c+="]";}(a||f)&&(l||d)&&(c+=" "),(l||d)&&(c+="[",l&&(c+=M(g,this.startTime,v,S,"")),l&&d&&(c+="|"),d&&(c+=M(g,this.timeInLastLog,v,S,"+")),c+="]"),s&&(c+=` ${j.bold(">>")} `),c+=` ${r}`+(e.isError&&n?` | ||
| ${j.red(xe(n))} | ||
| `:` | ||
| `),(e.isError?process.stderr:process.stdout).write(c),this.timeInLastLog=g;}constructor(e){let r={capitalizeLevelName:!0,showArrow:!1,showDate:!1,showLevelName:!1,showMonthBeforeDay:!1,showRelativeTimestamp:!1,showTimestamp:!0,showTimestampRelativeToLastLog:!0,use24HourClock:!1,contextColor:["bold","magenta"]},o={},n=[];this.startTime=new Date,this.timeInLastLog=this.startTime,this.data=Object.assign({},r,e);for(let i of e.levels){if(n.some(s=>s===i.name))throw new Error(`Duplicate level name "${i.name}".`);n=[...n,i.name],o={...o,[i.name]:(s,a,f)=>{this.logMsg(i,s,a,f);}};}this.log=o;}};var A=(i=>(i[i.Error=0]="Error",i[i.Warn=1]="Warn",i[i.Info=2]="Info",i[i.Verbose=3]="Verbose",i[i.Debug=4]="Debug",i))(A||{}),Ce="Armitjs",x=class{level=2;defaultContext=Ce;terminal=new w({levels:R,showLevelName:!0});constructor(e){this.level=e&&e.level!=null?e.level:2;}setLevel(e){this.level=e;}setDefaultContext(e){this.defaultContext=e;}error(e,r,o){this.level>=0&&this.terminal.log.error(this.ensureString(e),this.logContext(r),o);}warn(e,r){this.level>=1&&this.terminal.log.warn(this.ensureString(e),this.logContext(r));}info(e,r){this.level>=2&&this.terminal.log.info(this.ensureString(e),this.logContext(r));}verbose(e,r){this.level>=3&&this.terminal.log.trace(this.ensureString(e),this.logContext(r));}debug(e,r){this.level>=4&&this.terminal.log.debug(this.ensureString(e),r);}logContext(e){return e||this.defaultContext}ensureString(e){return typeof e=="string"?e:JSON.stringify(e,null,2)}};var F=(t,e)=>Se(t,e);var I=new x({level:1}),we=t=>(e,r,o)=>{var i;let n=r||new Error(e);typeof n=="string"&&(n=new Error(n)),((i=n.message)==null?void 0:i.includes("Did you mean"))&&o.parsed&&I.error(`Unknown command "${o.parsed.argv.$0}"`,t.group),I.error(n.message,t.group,n.stack),t.exitProcess!==!1&&process.exit(1);},Ae=()=>be().options({logLevel:{type:"string",default:"Info",choices:["Error","Warn","Info","Verbose","Debug"],describe:"What level of logs to report. "}}),U=t=>Ae().group(["help","version","logLevel"],"Globals: ").usage("Usage: $0 <command> [options]").recommendCommands().demandCommand(1,`${p(["bgBlack","red"])("ERR!")} ${p(["bold","red"])(` A command is required. Pass --help to see all available commands and options. | ||
| `),(e.isError?process.stderr:process.stdout).write(c),this.timeInLastLog=g;}constructor(e){let r={capitalizeLevelName:!0,showArrow:!1,showDate:!1,showLevelName:!1,showMonthBeforeDay:!1,showRelativeTimestamp:!1,showTimestamp:!0,showTimestampRelativeToLastLog:!0,use24HourClock:!1,contextColor:["bold","magenta"]},o={},n=[];this.startTime=new Date,this.timeInLastLog=this.startTime,this.data=Object.assign({},r,e);for(let i of e.levels){if(n.some(s=>s===i.name))throw new Error(`Duplicate level name "${i.name}".`);n=[...n,i.name],o={...o,[i.name]:(s,a,u)=>{this.logMsg(i,s,a,u);}};}this.log=o;}};var A=(i=>(i[i.Error=0]="Error",i[i.Warn=1]="Warn",i[i.Info=2]="Info",i[i.Verbose=3]="Verbose",i[i.Debug=4]="Debug",i))(A||{}),Se="Armitjs",x=class{level=2;defaultContext=Se;terminal=new w({levels:$,showLevelName:!0});constructor(e){this.level=e&&e.level!=null?e.level:2;}setLevel(e){this.level=e;}setDefaultContext(e){this.defaultContext=e;}error(e,r,o){this.level>=0&&this.terminal.log.error(this.ensureString(e),this.logContext(r),o);}warn(e,r){this.level>=1&&this.terminal.log.warn(this.ensureString(e),this.logContext(r));}info(e,r){this.level>=2&&this.terminal.log.info(this.ensureString(e),this.logContext(r));}verbose(e,r){this.level>=3&&this.terminal.log.trace(this.ensureString(e),this.logContext(r));}debug(e,r){this.level>=4&&this.terminal.log.debug(this.ensureString(e),r);}logContext(e){return e||this.defaultContext}ensureString(e){return typeof e=="string"?e:JSON.stringify(e,null,2)}};var F=(t,e)=>Ce(t,e);var I=new x({level:1}),we=t=>(e,r,o)=>{var i;let n=r||new Error(e);typeof n=="string"&&(n=new Error(n)),((i=n.message)==null?void 0:i.includes("Did you mean"))&&o.parsed&&I.error(`Unknown command "${o.parsed.argv.$0}"`,t.group),I.error(n.message,t.group,n.stack),t.exitProcess!==!1&&process.exit(1);},Ae=()=>be().options({logLevel:{type:"string",default:"Info",choices:["Error","Warn","Info","Verbose","Debug"],describe:"What level of logs to report. "}}),U=t=>Ae().group(["help","version","logLevel"],"Globals: ").usage("Usage: $0 <command> [options]").recommendCommands().demandCommand(1,`${p(["bgBlack","red"])("ERR!")} ${p(["bold","red"])(` A command is required. Pass --help to see all available commands and options. | ||
| `)} | ||
| `).fail(we(t)).exitProcess(t.exitProcess!==!1).locale("en").updateStrings({command:p(["cyan"])("command")}).strict().alias("h","help").alias("l","logLevel").alias("v","version").epilog(`Copyright 2022 ${F(p(["bold","magenta"])(t.group),"https://github.com/armitjs/armit")} `).wrap(null),Jt=(t,...e)=>(t=e.reduce((r,o)=>r.command(o),t),t.demandCommand(1,`${p(["bgBlack","red"])("ERR!")} ${p(["bold","red"])(` A sub-command is required. Pass --help to see all available sub-commands and options. | ||
| `)} | ||
| `));var D=class{options;commands=[];program;constructor(e){this.options=e,this.program=U(this.options);}register(...e){return e.forEach(r=>{this.commands.push(r);}),this}parse(e,r){return this.program=this.commands.reduce((o,n)=>o.command(n),this.program),this.program.parse(e,this.options,r)}parseAsync(e,r){return this.program=this.commands.reduce((o,n)=>o.command(n),this.program),this.program.parseAsync(e,this.options,r).then(o=>o)}exitProcess(e,r){this.program.exit(e,r);}},jt=t=>new D(t);var W=class{constructor(e){this.args=e;this.initialize(e),this.pluginName=e.name,this.packageJson=e.packageJson,this.logger.setDefaultContext(e.name);}logger=new x({level:1});pluginName;packageJson;initialize(e){this.logger.setLevel(A[e.logLevel]);}get cliPackageJson(){return this.packageJson}get name(){return this.pluginName}handle(){throw new Error("Method not implemented.")}},It=(t,e,r)=>({...e,handler(o){let n=new r({...o,name:t});return n.handle.call(n)}});var z=q(Le,{cacheKey:JSON.stringify}),Y=q(De);function Oe(t,e){let r=[],o=new Set;for(let n of t){let i=n[e];o.has(i)||(o.add(i),r.push(n));}return r}async function Le(t=[],e=[],r=[],o=process.cwd()){if(r.length===0){let m=Z(k(import.meta.url),"node_modules");m&&(r=[m]);}let i=t.filter(m=>typeof m=="string").map(m=>{let l;try{l=T.sync(P.resolve(o,m));}catch{try{l=T.sync(m,{basedir:o});}catch{return}}return {name:m,requirePath:l}}).filter(Boolean),s=r.flatMap(m=>{let l=P.resolve(o,m),u=P.resolve(l,"node_modules");if(!V(u)&&!V(l))throw new Error(`${m} does not exist or is not a directory`);return Y(u,e).map(d=>({name:d,requirePath:T.sync(d,{basedir:l})}))}),a=[...Oe([...i,...s],"requirePath")],f=[];for(let m of a){let l=await import(m.requirePath);f.push({name:m.name,plugin:l.default||l});}return f}function De(t,e){return globbySync(e,{cwd:t,expandDirectories:!1}).map(o=>P.dirname(o))}function V(t){try{return statSync(t).isDirectory()}catch{return !1}}var Zt=()=>{memClear(z),memClear(Y);},Gt=z;var k=(t,e="")=>join(dirname(fileURLToPath(t)),e);function G(t,e){return new Promise(r=>{let o=re.createHash(e),n=createReadStream(t);n.on("error",()=>{r("");}),n.on("data",i=>{o.update(i);}),n.on("end",()=>{let i=o.digest("hex");r(i);});})}var or=async(t,e,r)=>{let o=await G(e,r),n=await G(t,r);return o===n};var sr=t=>{if(typeof t!="string")throw new Error("expected path to be a string");try{return statSync(t).isDirectory()}catch(e){if((e==null?void 0:e.code)==="ENOENT")return !1;throw e}};var lr=(t,e={})=>globbySync(t,{absolute:!0,dot:!1,unique:!0,...e}),K=(t,e={})=>globby(t,{absolute:!0,dot:!1,unique:!0,...e});var Ue=t=>{rmSync(t,{force:!0,recursive:!0});},fr=(t,e={})=>{let r=globbySync(t,{dot:!1,absolute:!0,unique:!0,...e});for(let o of r)Ue(o);return r};function X(t){let e=readFileSync(t,{encoding:"utf-8"});return JSON.parse(e)}var ur=(t,e)=>{writeFileSync(t,JSON.stringify(e,null,2),{encoding:"utf-8"});},dr=t=>Buffer.from(JSON.stringify(t,null,2),"utf-8");function Q(t,e){mkdirSync(t.split("/").slice(0,-1).join("/"),{mode:493,recursive:!0}),writeFileSync(t,readFileSync(e));}function Ze(t,e,r="skip"){readdirSync(t).forEach(n=>{let i=""+t+"/"+n,s=""+e+"/"+n;lstatSync(i).isDirectory()?Ze(i,s,r):existsSync(s)?r==="overwrite"?Q(s,i):r==="skip"&&console.log(`${s} exists, skipping...`):Q(s,i);});}var ee=(t,e=!1)=>{if(typeof t!="string")throw new TypeError("input must be a string");return t=t.replace(/\/$/,""),e?t+"/":t},te=(t,e,r={dot:!0})=>Ge.every(t,e,r);var tt=(t,e,r)=>{let o=new H;for(let n of t){let i=relative(r.relativePathTo,n),s=readFileSync(n);o.addFile(i,s);}return o.writeZip(e),e},kr=async(t,e,r)=>{let o=await K(`${ee(t,!1)}/**/*.*`);await tt(o,e,r);},Or=(t,e,r=["!**/__MACOSX/**","!**/*.DS_Store"])=>{let o=new H(t);return o.forEach(n=>{let i=join(e,n.entryName);!n.isDirectory&&te(i,r)&&o.extractEntryTo(n,dirname(i),!1,!0);}),e},Lr=(t,e)=>new H(t).readFile(e);function Hr(){return new Promise((t,e)=>{exec("git log --pretty=format:'%h' -n 1",(r,o)=>{if(r)return e(r);t(o.replace(/'/g,""));});})}var ot=t=>{let e=["SHA","SHA256","SHA384","SHA512","SSHA","SSHA256","SSHA384","SSHA512"],r={SHA:"sha1",SHA256:"sha256",SHA384:"sha384",SHA512:"sha512",SSHA:"sha1",SSHA256:"sha256",SSHA384:"sha384",SSHA512:"sha512"},o=e.find(i=>i.toUpperCase()===t);return {withSalt:o?o.startsWith("SS"):!1,cipher:r[t]||"UNKNOW"}},E=(t,e,r)=>{let o=r?Buffer.concat([Buffer.from(e,"utf8"),r]):e;return re.createHash(t).update(o).digest("base64")},Br=()=>re.randomBytes(4),Jr=(t,e)=>{let r=typeof e=="string"?Buffer.from(e):e,o=E("SHA1",t,r);return `{SSHA}${Buffer.concat([Buffer.from(o,"base64"),r]).toString("base64")}`},Mr=(t,e)=>{let r=/^\{(\w+)\}/.exec(e);if(!r)throw new Error("no encryption found");let o=Buffer.from(e.replace(r[0],""),"base64"),n=r[1],i=ot(n);if(i.cipher==="UNKNOW")return Buffer.from(t,"utf8").toString("base64")===e;let s=Buffer.from(Uint8Array.prototype.slice.call(o,0,20)).toString("base64");if(i.withSalt){let a=Buffer.from(Uint8Array.prototype.slice.call(o,20));return s===E(i.cipher,t,a)}else return s===E(i.cipher,t)};var Ur=t=>packageDirectorySync(t),oe=t=>pkgUpSync(t),Z=(t,e)=>{function r(o){if(o.length===0)return null;let n=o.join("");return existsSync(join(n,e))?n:r(o.slice(0,-1))}return r(mt(t))};function mt(t){let e=t.split(/(\/|\\)/);return e.length?e[0].length?e:e.slice(1):e}var qr=t=>{let e=oe(t);if(e)return X(e)};var ct=lt.homedir(),N=process.env.XDG_CONFIG_HOME||P.join(ct,".config","simple-update-notifier"),ie=t=>P.join(N,`${t}.json`),se=()=>{S.existsSync(N)||S.mkdirSync(N,{recursive:!0});},ae=t=>{let e=ie(t);try{return S.existsSync(e)?JSON.parse(S.readFileSync(e,"utf8")).lastUpdateCheck:void 0}catch{return}},me=t=>{let e=ie(t);S.writeFileSync(e,JSON.stringify({lastUpdateCheck:new Date().getTime()}));};var le=async(t,e)=>{let r=`https://registry.npmjs.org/-/package/${t}/dist-tags`;return new Promise((o,n)=>{gt.get(r,i=>{let s="";i.on("data",a=>s+=a),i.on("end",()=>{try{let f=JSON.parse(s)[e];f||n(new Error("Error getting version")),o(f);}catch{n(new Error("Could not parse version response"));}});}).on("error",i=>n(i));})};var ce=async({pkg:t,updateCheckInterval:e=1e3*60*60*24,distTag:r="latest",alwaysRun:o})=>{se();let n=ae(t.name);if(o||!n||n<new Date().getTime()-e){let i=await le(t.name,r);if(me(t.name),i&&pt.gt(i,t.version))return i}return !1};var ge=pe.env.npm_package_json,O=pe.env.npm_config_user_agent,ft=Boolean(O&&O.startsWith("npm")),ut=Boolean(ge&&ge.endsWith("package.json")),dt=ft||ut,ht=Boolean(O&&O.startsWith("yarn")),fe=dt||ht;var lo=async t=>{if(!(!t.alwaysRun&&fe&&!t.shouldNotifyInNpmScript))try{let e=await ce(t);e&&console.log(p(["bold","cyan"])(`New version of ${t.pkg.name} available! | ||
| `));var D=class{options;commands=[];program;constructor(e){this.options=e,this.program=U(this.options);}register(...e){return e.forEach(r=>{this.commands.push(r);}),this}parse(e,r){return this.program=this.commands.reduce((o,n)=>o.command(n),this.program),this.program.parse(e,this.options,r)}parseAsync(e,r){return this.program=this.commands.reduce((o,n)=>o.command(n),this.program),this.program.parseAsync(e,this.options,r).then(o=>o)}exitProcess(e,r){this.program.exit(e,r);}},Rt=t=>new D(t);var q=class{constructor(e){this.args=e;this.initialize(e),this.pluginName=e.name,this.packageJson=e.packageJson,this.logger.setDefaultContext(e.name),this.logger.debug(this.cliPackageJson);}logger=new x({level:1});pluginName;packageJson;initialize(e){this.logger.setLevel(A[e.logLevel]);}get cliPackageJson(){return this.packageJson}get name(){return this.pluginName}handle(){throw new Error("Method not implemented.")}},It=(t,e,r)=>({...e,handler(o){let n=new r({...o,name:t});return n.handle.call(n)}});var z=V(Le,{cacheKey:JSON.stringify}),Y=V(De);function Oe(t,e){let r=[],o=new Set;for(let n of t){let i=n[e];o.has(i)||(o.add(i),r.push(n));}return r}async function Le(t=[],e=[],r=[],o=process.cwd()){if(r.length===0){let m=Z(k(import.meta.url),"node_modules");m&&(r=[m]);}let i=t.filter(m=>typeof m=="string").map(m=>{let l;try{l=T.sync(P.resolve(o,m));}catch{try{l=T.sync(m,{basedir:o});}catch{return}}return {name:m,requirePath:l}}).filter(Boolean),s=r.flatMap(m=>{let l=P.resolve(o,m),f=P.resolve(l,"node_modules");if(!_(f)&&!_(l))throw new Error(`${m} does not exist or is not a directory`);return Y(f,e).map(d=>({name:d,requirePath:T.sync(d,{basedir:l})}))}),a=[...Oe([...i,...s],"requirePath")],u=[];for(let m of a){let l=await import(m.requirePath);u.push({name:m.name,plugin:l.default||l});}return u}function De(t,e){return globbySync(e,{cwd:t,expandDirectories:!1}).map(o=>P.dirname(o))}function _(t){try{return statSync(t).isDirectory()}catch{return !1}}var Zt=()=>{memClear(z),memClear(Y);},Gt=z;var k=(t,e="")=>join(dirname(fileURLToPath(t)),e);function G(t,e){return new Promise(r=>{let o=re.createHash(e),n=createReadStream(t);n.on("error",()=>{r("");}),n.on("data",i=>{o.update(i);}),n.on("end",()=>{let i=o.digest("hex");r(i);});})}var or=async(t,e,r)=>{let o=await G(e,r),n=await G(t,r);return o===n};var sr=t=>{if(typeof t!="string")throw new Error("expected path to be a string");try{return statSync(t).isDirectory()}catch(e){if((e==null?void 0:e.code)==="ENOENT")return !1;throw e}};var lr=(t,e={})=>globbySync(t,{absolute:!0,dot:!1,unique:!0,...e}),K=(t,e={})=>globby(t,{absolute:!0,dot:!1,unique:!0,...e});var Ue=t=>{rmSync(t,{force:!0,recursive:!0});},ur=(t,e={})=>{let r=globbySync(t,{dot:!1,absolute:!0,unique:!0,...e});for(let o of r)Ue(o);return r};function X(t){let e=readFileSync(t,{encoding:"utf-8"});return JSON.parse(e)}var fr=(t,e)=>{writeFileSync(t,JSON.stringify(e,null,2),{encoding:"utf-8"});},dr=t=>Buffer.from(JSON.stringify(t,null,2),"utf-8");function Q(t,e){mkdirSync(t.split("/").slice(0,-1).join("/"),{mode:493,recursive:!0}),writeFileSync(t,readFileSync(e));}function Ze(t,e,r="skip"){readdirSync(t).forEach(n=>{let i=""+t+"/"+n,s=""+e+"/"+n;lstatSync(i).isDirectory()?Ze(i,s,r):existsSync(s)?r==="overwrite"?Q(s,i):r==="skip"&&console.log(`${s} exists, skipping...`):Q(s,i);});}var ee=(t,e=!1)=>{if(typeof t!="string")throw new TypeError("input must be a string");return t=t.replace(/\/$/,""),e?t+"/":t},te=(t,e,r={dot:!0})=>Ge.every(t,e,r);var tt=(t,e,r)=>{let o=new H;for(let n of t){let i=relative(r.relativePathTo,n),s=readFileSync(n);o.addFile(i,s);}return o.writeZip(e),e},kr=async(t,e,r)=>{let o=await K(`${ee(t,!1)}/**/*.*`);await tt(o,e,r);},Or=(t,e,r=["!**/__MACOSX/**","!**/*.DS_Store"])=>{let o=new H(t);return o.forEach(n=>{let i=join(e,n.entryName);!n.isDirectory&&te(i,r)&&o.extractEntryTo(n,dirname(i),!1,!0);}),e},Lr=(t,e)=>new H(t).readFile(e);function Hr(){return new Promise((t,e)=>{exec("git log --pretty=format:'%h' -n 1",(r,o)=>{if(r)return e(r);t(o.replace(/'/g,""));});})}var ot=t=>{let e=["SHA","SHA256","SHA384","SHA512","SSHA","SSHA256","SSHA384","SSHA512"],r={SHA:"sha1",SHA256:"sha256",SHA384:"sha384",SHA512:"sha512",SSHA:"sha1",SSHA256:"sha256",SSHA384:"sha384",SSHA512:"sha512"},o=e.find(i=>i.toUpperCase()===t);return {withSalt:o?o.startsWith("SS"):!1,cipher:r[t]||"UNKNOW"}},E=(t,e,r)=>{let o=r?Buffer.concat([Buffer.from(e,"utf8"),r]):e;return re.createHash(t).update(o).digest("base64")},Br=()=>re.randomBytes(4),Jr=(t,e)=>{let r=typeof e=="string"?Buffer.from(e):e,o=E("SHA1",t,r);return `{SSHA}${Buffer.concat([Buffer.from(o,"base64"),r]).toString("base64")}`},jr=(t,e)=>{let r=/^\{(\w+)\}/.exec(e);if(!r)throw new Error("no encryption found");let o=Buffer.from(e.replace(r[0],""),"base64"),n=r[1],i=ot(n);if(i.cipher==="UNKNOW")return Buffer.from(t,"utf8").toString("base64")===e;let s=Buffer.from(Uint8Array.prototype.slice.call(o,0,20)).toString("base64");if(i.withSalt){let a=Buffer.from(Uint8Array.prototype.slice.call(o,20));return s===E(i.cipher,t,a)}else return s===E(i.cipher,t)};var Ur=t=>packageDirectorySync(t),oe=t=>pkgUpSync(t),Z=(t,e)=>{function r(o){if(o.length===0)return null;let n=o.join("");return existsSync(join(n,e))?n:r(o.slice(0,-1))}return r(mt(t))};function mt(t){let e=t.split(/(\/|\\)/);return e.length?e[0].length?e:e.slice(1):e}var Vr=t=>{let e=oe(t);if(e)return X(e)};var ct=lt.homedir(),N=process.env.XDG_CONFIG_HOME||P.join(ct,".config","simple-update-notifier"),ie=t=>P.join(N,`${t}.json`),se=()=>{C.existsSync(N)||C.mkdirSync(N,{recursive:!0});},ae=t=>{let e=ie(t);try{return C.existsSync(e)?JSON.parse(C.readFileSync(e,"utf8")).lastUpdateCheck:void 0}catch{return}},me=t=>{let e=ie(t);C.writeFileSync(e,JSON.stringify({lastUpdateCheck:new Date().getTime()}));};var le=async(t,e)=>{let r=`https://registry.npmjs.org/-/package/${t}/dist-tags`;return new Promise((o,n)=>{gt.get(r,i=>{let s="";i.on("data",a=>s+=a),i.on("end",()=>{try{let u=JSON.parse(s)[e];u||n(new Error("Error getting version")),o(u);}catch{n(new Error("Could not parse version response"));}});}).on("error",i=>n(i));})};var ce=async({pkg:t,updateCheckInterval:e=1e3*60*60*24,distTag:r="latest",alwaysRun:o})=>{se();let n=ae(t.name);if(o||!n||n<new Date().getTime()-e){let i=await le(t.name,r);if(me(t.name),i&&pt.gt(i,t.version))return i}return !1};var ge=pe.env.npm_package_json,O=pe.env.npm_config_user_agent,ut=Boolean(O&&O.startsWith("npm")),ft=Boolean(ge&&ge.endsWith("package.json")),dt=ut||ft,ht=Boolean(O&&O.startsWith("yarn")),ue=dt||ht;var lo=async t=>{if(!(!t.alwaysRun&&ue&&!t.shouldNotifyInNpmScript))try{let e=await ce(t);e&&console.log(p(["bold","cyan"])(`New version of ${t.pkg.name} available! | ||
| Current Version: ${t.pkg.version} | ||
| Latest Version: ${e}`));}catch{}};var yt=(t=process.cwd(),e)=>Object.assign({cwd:t,localDir:t,preferLocal:t},e),po=(t,e,r,o)=>execa(t,r,yt(e,o)),fo=(t,e,r,o,...n)=>execa("node",(e==="commonjs"?["-r","ts-node/register","-r","tsconfig-paths/register"]:["--loader","ts-node/esm"]).concat(t,...n),{env:{TS_NODE_PROJECT:r},...o});var yo=(t,e,r=!1)=>{vt.say(t,{...e,env:"node"},r);};var bo=(t,e="fixture",r)=>{let o=k(t,e);mkdirSync(o,{recursive:!0});for(let[n,i]of Object.entries(r)){let s=join(o,n);mkdirSync(dirname(s),{recursive:!0}),writeFileSync(s,i||"hello"+Math.random());}return o}; | ||
| Latest Version: ${e}`));}catch{}};var yt=(t=process.cwd(),e)=>Object.assign({cwd:t,localDir:t,preferLocal:t},e),po=(t,e,r,o)=>execa(t,r,yt(e,o)),uo=(t,e,r,o,...n)=>execa("node",(e==="commonjs"?["-r","ts-node/register","-r","tsconfig-paths/register"]:["--loader","ts-node/esm"]).concat(t,...n),{env:{TS_NODE_PROJECT:r},...o});var yo=(t,e,r=!1)=>{vt.say(t,{...e,env:"node"},r);};var bo=(t,e="fixture",r)=>{let o=k(t,e);mkdirSync(o,{recursive:!0});for(let[n,i]of Object.entries(r)){let s=join(o,n);mkdirSync(dirname(s),{recursive:!0}),writeFileSync(s,i||"hello"+Math.random());}return o}; | ||
| export { W as AbstractHandler, D as CliMain, x as DefaultLogger, A as LogLevel, w as Terminal, R as advancedLevels, ve as basicLevels, Zt as clearCache, jt as createCli, It as createCommand, bo as createFixtureFiles, Br as createSalt, U as createYargs, Jt as createYargsSubCommands, ee as ensureSlash, yt as execaOpts, Lr as extractFileFromZip, or as fileCompare, K as fileWalk, lr as fileWalkSync, Z as findParentDir, oe as getClosestPackageFile, k as getDirname, Hr as getLastCommitHash, qr as getPackageData, Ur as getPackageDir, F as getTerminalLink, sr as isDirectory, te as isPathMatch, Mr as ldapSHAVerify, Jr as ldapSSHACreate, Gt as loadPlugins, Ze as mergeDirs, X as readJsonFromFile, Ue as rmrfSync, fr as rmrfSyncByPattern, po as runProgram, fo as runTsScript, yo as showBanner, p as terminalColor, Or as unzip, lo as updateNotifier, dr as writeJsonToBuffer, ur as writeJsonToFile, kr as zip, tt as zipFiles }; | ||
| export { q as AbstractHandler, D as CliMain, x as DefaultLogger, A as LogLevel, w as Terminal, $ as advancedLevels, ve as basicLevels, Zt as clearCache, Rt as createCli, It as createCommand, bo as createFixtureFiles, Br as createSalt, U as createYargs, Jt as createYargsSubCommands, ee as ensureSlash, yt as execaOpts, Lr as extractFileFromZip, or as fileCompare, K as fileWalk, lr as fileWalkSync, Z as findParentDir, oe as getClosestPackageFile, k as getDirname, Hr as getLastCommitHash, Vr as getPackageData, Ur as getPackageDir, F as getTerminalLink, sr as isDirectory, te as isPathMatch, jr as ldapSHAVerify, Jr as ldapSSHACreate, Gt as loadPlugins, Ze as mergeDirs, X as readJsonFromFile, Ue as rmrfSync, ur as rmrfSyncByPattern, po as runProgram, uo as runTsScript, yo as showBanner, p as terminalColor, Or as unzip, lo as updateNotifier, dr as writeJsonToBuffer, fr as writeJsonToFile, kr as zip, tt as zipFiles }; | ||
| //# sourceMappingURL=index.js.map |
+2
-2
| { | ||
| "name": "@armit/common", | ||
| "version": "0.0.6", | ||
| "version": "0.0.7", | ||
| "homepage": "https://github.com/armitjs/armit", | ||
@@ -59,3 +59,3 @@ "repository": { | ||
| "devDependencies": { | ||
| "@armit/eslint-config-bases": "^0.0.5", | ||
| "@armit/eslint-config-bases": "^0.0.6", | ||
| "@types/adm-zip": "0.5.0", | ||
@@ -62,0 +62,0 @@ "@types/micromatch": "4.0.2", |
Sorry, the diff of this file is too big to display
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Shell access
Supply chain riskThis module accesses the system shell. Accessing the system shell increases the risk of executing arbitrary code.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Shell access
Supply chain riskThis module accesses the system shell. Accessing the system shell increases the risk of executing arbitrary code.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
120006
0.53%12
-7.69%