@armit/common
Advanced tools
+8
-0
| # @armit/common | ||
| ## 0.0.9 | ||
| ### Patch Changes | ||
| - [`436e7bf`](https://github.com/armitjs/armit/commit/436e7bfe866125e27ad5c8f49adb7ef5492a625e) Thanks [@tianyingchun](https://github.com/tianyingchun)! - fix update notifer cache support for scoped package | ||
| - [`42d1302`](https://github.com/armitjs/armit/commit/42d13026d928e335d2c07137d27b81186cb83646) Thanks [@tianyingchun](https://github.com/tianyingchun)! - fix package search findParentDir issue | ||
| ## 0.0.8 | ||
@@ -4,0 +12,0 @@ |
+1
-1
@@ -438,3 +438,3 @@ import * as yargs from 'yargs'; | ||
| */ | ||
| declare const findParentDir: (currentFullPath: string, clue: string) => any; | ||
| declare const findParentDir: (currentFullPath: string, clue: string) => string | null; | ||
@@ -441,0 +441,0 @@ declare type PackageUpdate = { |
+11
-11
@@ -16,21 +16,21 @@ import we from 'yargs'; | ||
| import { pkgUpSync } from 'pkg-up'; | ||
| import ut from 'semver'; | ||
| import mt from 'os'; | ||
| import pt from 'https'; | ||
| import dt from 'semver'; | ||
| import gt from 'os'; | ||
| import ft from 'https'; | ||
| import pe from 'process'; | ||
| import { execa } from 'execa'; | ||
| import xt from 'cfonts'; | ||
| import Ct from 'cfonts'; | ||
| function ye(t,e=1){return Array.isArray(t)?e>0?t.reduce((r,o)=>r.concat(ye(o,e-1)),[]):t.slice():t}function At(t,e){return e==null?Array.from(new Set(t)):[...new Map(t.map(r=>[r[e],r])).values()]}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 xe=[{color:["red","underline"],name:"error",isError:!0},{color:["gray","bold"],name:"trace",isError:!1}],$=[...xe,{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 Se(t){return typeof t=="string"?t:JSON.stringify(t,null,2)}function T(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 j(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:c,showRelativeTimestamp:l,showTimestamp:f,showTimestampRelativeToLastLog:d,use24HourClock:B,contextColor:he}=this.data,g=new Date,S=T("COLOR",e.color),v=T("DECORATION",e.color),M=c,m="",b=[];if(o){let h=T("COLOR",he);b.push(" "+h(o.toUpperCase())+" ");}if(u&&b.push(S(" "+v(i?e.name.toUpperCase():e.name)+" ")),b.length&&(m+="["+b.join(":")+"] "),a||f){if(m+="[",a&&(m+=S(" "+v(`${R(g,M)+g.getDate()}d/${R(g,M)}${g.getFullYear()}y`)+" ")),a&&f&&(m+="|"),f){let h=g.getHours();m+=S(" "+v(`${B||!(h>=13||h===0)?h:Math.abs(h-12)}:${g.getMinutes()}:${g.getSeconds()}.${g.getMilliseconds()}`)+" "+(B?"":v(h>=13?"PM":"AM")+" "));}m+="]";}(a||f)&&(l||d)&&(m+=" "),(l||d)&&(m+="[",l&&(m+=j(g,this.startTime,v,S,"")),l&&d&&(m+="|"),d&&(m+=j(g,this.timeInLastLog,v,S,"+")),m+="]"),s&&(m+=` ${J.bold(">>")} `),m+=` ${r}`+(e.isError&&n?` | ||
| ${J.red(Se(n))} | ||
| function ye(t,e=1){return Array.isArray(t)?e>0?t.reduce((r,n)=>r.concat(ye(n,e-1)),[]):t.slice():t}function kt(t,e){return e==null?Array.from(new Set(t)):[...new Map(t.map(r=>[r[e],r])).values()]}function p(t){return t.length?e=>{let r=e;for(let n=0;n<t.length;n++)r=J[t[n]](r);return r}:e=>e}var xe=[{color:["red","underline"],name:"error",isError:!0},{color:["gray","bold"],name:"trace",isError:!1}],$=[...xe,{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 Se(t){return typeof t=="string"?t:JSON.stringify(t,null,2)}function T(t,e){let r=e.filter(n=>{let o=n==="strikethrough"||n==="underline";return t==="DECORATION"?o:!o});return p(r)}function y(t,e,r,n,o,i){let s=e.getTime()-r.getTime(),a=Math.floor(s/o);return s=s%o,a!==0?n(t+a+i)+" ":o===1?n(t+"0")+" ":""}function j(t,e,r,n,o){let i=" ";return i+=y(o,t,e,r,31536e6,"y"),i+=y(o,t,e,r,2592e6,"m"),i+=y(o,t,e,r,864e5,"d"),i+=y(o,t,e,r,36e5,"h"),i+=y(o,t,e,r,6e4,"min"),i+=y(o,t,e,r,1e3,"s"),i+=y(o,t,e,r,1,"ms"),n(i)}function R(t,e){return e=!e,e?"":`${t.getMonth()+1}m/`}var w=class{data;log;startTime;timeInLastLog;logMsg(e,r,n,o){let{capitalizeLevelName:i,showArrow:s,showDate:a,showLevelName:u,showMonthBeforeDay:c,showRelativeTimestamp:m,showTimestamp:f,showTimestampRelativeToLastLog:d,use24HourClock:B,contextColor:he}=this.data,g=new Date,S=T("COLOR",e.color),v=T("DECORATION",e.color),M=c,l="",b=[];if(n){let h=T("COLOR",he);b.push(" "+h(n.toUpperCase())+" ");}if(u&&b.push(S(" "+v(i?e.name.toUpperCase():e.name)+" ")),b.length&&(l+="["+b.join(":")+"] "),a||f){if(l+="[",a&&(l+=S(" "+v(`${R(g,M)+g.getDate()}d/${R(g,M)}${g.getFullYear()}y`)+" ")),a&&f&&(l+="|"),f){let h=g.getHours();l+=S(" "+v(`${B||!(h>=13||h===0)?h:Math.abs(h-12)}:${g.getMinutes()}:${g.getSeconds()}.${g.getMilliseconds()}`)+" "+(B?"":v(h>=13?"PM":"AM")+" "));}l+="]";}(a||f)&&(m||d)&&(l+=" "),(m||d)&&(l+="[",m&&(l+=j(g,this.startTime,v,S,"")),m&&d&&(l+="|"),d&&(l+=j(g,this.timeInLastLog,v,S,"+")),l+="]"),s&&(l+=` ${J.bold(">>")} `),l+=` ${r}`+(e.isError&&o?` | ||
| ${J.red(Se(o))} | ||
| `:` | ||
| `),(e.isError?process.stderr:process.stdout).write(m),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||{}),Ce="Armitjs",x=class{level=2;defaultContext=Ce;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)=>be(t,e);var U=new x({level:1}),Ae=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&&U.error(`Unknown command "${o.parsed.argv.$0}"`,t.group),U.error(n.message,t.group,n.stack),t.exitProcess!==!1&&process.exit(1);},Pe=()=>we().options({logLevel:{type:"string",default:"Info",choices:["Error","Warn","Info","Verbose","Debug"],describe:"What level of logs to report. "}}),I=t=>Pe().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(l),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"]},n={},o=[];this.startTime=new Date,this.timeInLastLog=this.startTime,this.data=Object.assign({},r,e);for(let i of e.levels){if(o.some(s=>s===i.name))throw new Error(`Duplicate level name "${i.name}".`);o=[...o,i.name],n={...n,[i.name]:(s,a,u)=>{this.logMsg(i,s,a,u);}};}this.log=n;}};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:$,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,n){this.level>=0&&this.terminal.log.error(this.ensureString(e),this.logContext(r),n);}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)=>be(t,e);var U=new x({level:1}),Ae=t=>(e,r,n)=>{var i;let o=r||new Error(e);typeof o=="string"&&(o=new Error(o)),((i=o.message)==null?void 0:i.includes("Did you mean"))&&n.parsed&&U.error(`Unknown command "${n.parsed.argv.$0}"`,t.group),U.error(o.message,t.group,o.stack),t.exitProcess!==!1&&process.exit(1);},Pe=()=>we().options({logLevel:{type:"string",default:"Info",choices:["Error","Warn","Info","Verbose","Debug"],describe:"What level of logs to report. "}}),I=t=>Pe().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(Ae(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),$t=(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. | ||
| `).fail(Ae(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),Ut=(t,...e)=>(t=e.reduce((r,n)=>r.command(n),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=I(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);}},It=t=>new D(t);var _=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.")}},Wt=(t,e,r)=>({...e,handler(o){let n=new r({...o,name:t});return n.handle.call(n)}});var z=V(De,{cacheKey:JSON.stringify}),Y=V(Le);function Te(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 De(t=[],e=[],r=[],o=process.cwd()){if(r.length===0){let c=Z(k(import.meta.url),"node_modules");c&&(r=[c]);}let i=t.filter(c=>typeof c=="string").map(c=>{let l;try{l=L.sync(P.resolve(o,c));}catch{try{l=L.sync(c,{basedir:o});}catch{return}}return {name:c,requirePath:l}}).filter(Boolean),s=r.flatMap(c=>{let l=P.resolve(o,c),f=P.resolve(l,"node_modules");if(!W(f)&&!W(l))throw new Error(`${c} does not exist or is not a directory`);return Y(f,e).map(d=>({name:d,requirePath:L.sync(d,{basedir:l})}))}),a=[...Te([...i,...s],"requirePath")],u=[];for(let c of a){let l=await import(c.requirePath);u.push({name:c.name,plugin:l.default||l});}return u}function Le(t,e){return globbySync(e,{cwd:t,expandDirectories:!1}).map(o=>P.dirname(o))}function W(t){try{return statSync(t).isDirectory()}catch{return !1}}var Qt=()=>{memClear(z),memClear(Y);},er=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 ar=async(t,e,r)=>{let o=await G(e,r),n=await G(t,r);return o===n};var mr=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 ur=(t,e={})=>{let r=e.ignore||[];return globbySync(t,{absolute:!0,dot:!0,unique:!0,...e,ignore:[...r,"**/__MACOSX/**","**/*.DS_Store"]})},X=(t,e={})=>{let r=e.ignore||[];return globby(t,{absolute:!0,dot:!0,unique:!0,...e,ignore:[...r,"**/__MACOSX/**","**/*.DS_Store"]})};var _e=t=>{rmSync(t,{force:!0,recursive:!0});},yr=(t,e={})=>{let r=globbySync(t,{dot:!1,absolute:!0,unique:!0,...e});for(let o of r)_e(o);return r};function K(t){let e=readFileSync(t,{encoding:"utf-8"});return JSON.parse(e)}var vr=(t,e)=>{writeFileSync(t,JSON.stringify(e,null,2),{encoding:"utf-8"});},xr=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 Ge(t,e,r="skip"){readdirSync(t).forEach(n=>{let i=""+t+"/"+n,s=""+e+"/"+n;lstatSync(i).isDirectory()?Ge(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})=>Xe.every(t,e,r);var rt=(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},Lr=async(t,e,r)=>{let o=await X(`${ee(t,!1)}/**/*.*`);await rt(o,e,r);},Hr=(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},Er=(t,e)=>new H(t).readFile(e);function Mr(){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 nt=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")},Rr=()=>re.randomBytes(4),$r=(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")}`},Fr=(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=nt(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 Vr=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(lt(t))};function lt(t){let e=t.split(/(\/|\\)/);return e.length?e[0].length?e:e.slice(1):e}var Gr=t=>{let e=oe(t);if(e)return K(e)};var gt=mt.homedir(),N=process.env.XDG_CONFIG_HOME||P.join(gt,".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}},ce=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)=>{pt.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 me=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(ce(t.name),i&&ut.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")),dt=Boolean(ge&&ge.endsWith("package.json")),ht=ft||dt,yt=Boolean(O&&O.startsWith("yarn")),ue=ht||yt;var uo=async t=>{if(!(!t.alwaysRun&&ue&&!t.shouldNotifyInNpmScript))try{let e=await me(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=I(this.options);}register(...e){return e.forEach(r=>{this.commands.push(r);}),this}parse(e,r){return this.program=this.commands.reduce((n,o)=>n.command(o),this.program),this.program.parse(e,this.options,r)}parseAsync(e,r){return this.program=this.commands.reduce((n,o)=>n.command(o),this.program),this.program.parseAsync(e,this.options,r).then(n=>n)}exitProcess(e,r){this.program.exit(e,r);}},qt=t=>new D(t);var _=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.")}},zt=(t,e,r)=>({...e,handler(n){let o=new r({...n,name:t});return o.handle.call(o)}});var z=V(De,{cacheKey:JSON.stringify}),Y=V(Le);function Te(t,e){let r=[],n=new Set;for(let o of t){let i=o[e];n.has(i)||(n.add(i),r.push(o));}return r}async function De(t=[],e=[],r=[],n=process.cwd()){if(r.length===0){let c=Z(k(import.meta.url),"node_modules");c&&(r=[c]);}let i=t.filter(c=>typeof c=="string").map(c=>{let m;try{m=L.sync(P.resolve(n,c));}catch{try{m=L.sync(c,{basedir:n});}catch{return}}return {name:c,requirePath:m}}).filter(Boolean),s=r.flatMap(c=>{let m=P.resolve(n,c),f=P.resolve(m,"node_modules");if(!W(f)&&!W(m))throw new Error(`${c} does not exist or is not a directory`);return Y(f,e).map(d=>({name:d,requirePath:L.sync(d,{basedir:m})}))}),a=[...Te([...i,...s],"requirePath")],u=[];for(let c of a){let m=await import(c.requirePath);u.push({name:c.name,plugin:m.default||m});}return u}function Le(t,e){return globbySync(e,{cwd:t,expandDirectories:!1}).map(n=>P.dirname(n))}function W(t){try{return statSync(t).isDirectory()}catch{return !1}}var tr=()=>{memClear(z),memClear(Y);},rr=z;var k=(t,e="")=>join(dirname(fileURLToPath(t)),e);function G(t,e){return new Promise(r=>{let n=re.createHash(e),o=createReadStream(t);o.on("error",()=>{r("");}),o.on("data",i=>{n.update(i);}),o.on("end",()=>{let i=n.digest("hex");r(i);});})}var mr=async(t,e,r)=>{let n=await G(e,r),o=await G(t,r);return n===o};var pr=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 dr=(t,e={})=>{let r=e.ignore||[];return globbySync(t,{absolute:!0,dot:!0,unique:!0,...e,ignore:[...r,"**/__MACOSX/**","**/*.DS_Store"]})},X=(t,e={})=>{let r=e.ignore||[];return globby(t,{absolute:!0,dot:!0,unique:!0,...e,ignore:[...r,"**/__MACOSX/**","**/*.DS_Store"]})};var _e=t=>{rmSync(t,{force:!0,recursive:!0});},xr=(t,e={})=>{let r=globbySync(t,{dot:!1,absolute:!0,unique:!0,...e});for(let n of r)_e(n);return r};function K(t){let e=readFileSync(t,{encoding:"utf-8"});return JSON.parse(e)}var Sr=(t,e)=>{writeFileSync(t,JSON.stringify(e,null,2),{encoding:"utf-8"});},Cr=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 Ge(t,e,r="skip"){readdirSync(t).forEach(o=>{let i=""+t+"/"+o,s=""+e+"/"+o;lstatSync(i).isDirectory()?Ge(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})=>Xe.every(t,e,r);var rt=(t,e,r)=>{let n=new H;for(let o of t){let i=relative(r.relativePathTo,o),s=readFileSync(o);n.addFile(i,s);}return n.writeZip(e),e},Er=async(t,e,r)=>{let n=await X(`${ee(t,!1)}/**/*.*`);await rt(n,e,r);},Nr=(t,e,r=["!**/__MACOSX/**","!**/*.DS_Store"])=>{let n=new H(t);return n.forEach(o=>{let i=join(e,o.entryName);!o.isDirectory&&te(i,r)&&n.extractEntryTo(o,dirname(i),!1,!0);}),e},Br=(t,e)=>new H(t).readFile(e);function jr(){return new Promise((t,e)=>{exec("git log --pretty=format:'%h' -n 1",(r,n)=>{if(r)return e(r);t(n.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"},n=e.find(i=>i.toUpperCase()===t);return {withSalt:n?n.startsWith("SS"):!1,cipher:r[t]||"UNKNOW"}},E=(t,e,r)=>{let n=r?Buffer.concat([Buffer.from(e,"utf8"),r]):e;return re.createHash(t).update(n).digest("base64")},Fr=()=>re.randomBytes(4),Ur=(t,e)=>{let r=typeof e=="string"?Buffer.from(e):e,n=E("SHA1",t,r);return `{SSHA}${Buffer.concat([Buffer.from(n,"base64"),r]).toString("base64")}`},Ir=(t,e)=>{let r=/^\{(\w+)\}/.exec(e);if(!r)throw new Error("no encryption found");let n=Buffer.from(e.replace(r[0],""),"base64"),o=r[1],i=ot(o);if(i.cipher==="UNKNOW")return Buffer.from(t,"utf8").toString("base64")===e;let s=Buffer.from(Uint8Array.prototype.slice.call(n,0,20)).toString("base64");if(i.withSalt){let a=Buffer.from(Uint8Array.prototype.slice.call(n,20));return s===E(i.cipher,t,a)}else return s===E(i.cipher,t)};var Yr=t=>packageDirectorySync(t),ne=t=>pkgUpSync(t),Z=(t,e)=>{function r(n){if(n.length===0)return null;let o=n.join("");return existsSync(join(o,e))?o:r(n.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 Kr=t=>{let e=ne(t);if(e)return K(e)};var ut=gt.homedir(),N=process.env.XDG_CONFIG_HOME||P.join(ut,".config","armit-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}},ce=t=>{let e=ie(t);mkdirSync(dirname(e),{recursive:!0}),C.writeFileSync(e,JSON.stringify({lastUpdateCheck:new Date().getTime()}));};var me=async(t,e)=>{let r=`https://registry.npmjs.org/-/package/${t}/dist-tags`;return new Promise((n,o)=>{ft.get(r,i=>{let s="";i.on("data",a=>s+=a),i.on("end",()=>{try{let u=JSON.parse(s)[e];u||o(new Error("Error getting version")),n(u);}catch{o(new Error("Could not parse version response"));}});}).on("error",i=>o(i));})};var le=async({pkg:t,updateCheckInterval:e=1e3*60*60*24,distTag:r="latest",alwaysRun:n})=>{se();let o=ae(t.name);if(n||!o||o<new Date().getTime()-e){let i=await me(t.name,r);if(ce(t.name),i&&dt.gt(i,t.version))return i}return !1};var ge=pe.env.npm_package_json,O=pe.env.npm_config_user_agent,ht=Boolean(O&&O.startsWith("npm")),yt=Boolean(ge&&ge.endsWith("package.json")),vt=ht||yt,xt=Boolean(O&&O.startsWith("yarn")),ue=vt||xt;var hn=async t=>{if(!(!t.alwaysRun&&ue&&!t.shouldNotifyInNpmScript))try{let e=await le(t);e&&console.log(p(["bold","cyan"])(`New version of ${t.pkg.name} available! | ||
| Current Version: ${t.pkg.version} | ||
| Latest Version: ${e}`));}catch{}};var vt=(t=process.cwd(),e)=>Object.assign({cwd:t,localDir:t,preferLocal:t},e),yo=(t,e,r,o)=>execa(t,r,vt(e,o)),vo=(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 Co=(t,e,r=!1)=>{xt.say(t,{...e,env:"node"},r);};var ko=(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 St=(t=process.cwd(),e)=>Object.assign({cwd:t,localDir:t,preferLocal:t},e),xn=(t,e,r,n)=>execa(t,r,St(e,n)),Sn=(t,e,r,n,...o)=>execa("node",(e==="commonjs"?["-r","ts-node/register","-r","tsconfig-paths/register"]:["--loader","ts-node/esm"]).concat(t,...o),{env:{TS_NODE_PROJECT:r},...n});var wn=(t,e,r=!1)=>{Ct.say(t,{...e,env:"node"},r);};var Tn=(t,e="fixture",r)=>{let n=k(t,e);mkdirSync(n,{recursive:!0});for(let[o,i]of Object.entries(r)){let s=join(n,o);mkdirSync(dirname(s),{recursive:!0}),writeFileSync(s,i||"hello"+Math.random());}return n}; | ||
| export { _ as AbstractHandler, D as CliMain, x as DefaultLogger, A as LogLevel, w as Terminal, $ as advancedLevels, ye as arrayFlatten, At as arrayUnique, xe as basicLevels, Qt as clearCache, It as createCli, Wt as createCommand, ko as createFixtureFiles, Rr as createSalt, I as createYargs, $t as createYargsSubCommands, ee as ensureSlash, vt as execaOpts, Er as extractFileFromZip, ar as fileCompare, X as fileWalk, ur as fileWalkSync, Z as findParentDir, oe as getClosestPackageFile, k as getDirname, Mr as getLastCommitHash, Gr as getPackageData, Vr as getPackageDir, F as getTerminalLink, mr as isDirectory, te as isPathMatch, Fr as ldapSHAVerify, $r as ldapSSHACreate, er as loadPlugins, Ge as mergeDirs, K as readJsonFromFile, _e as rmrfSync, yr as rmrfSyncByPattern, yo as runProgram, vo as runTsScript, Co as showBanner, p as terminalColor, Hr as unzip, uo as updateNotifier, xr as writeJsonToBuffer, vr as writeJsonToFile, Lr as zip, rt as zipFiles }; | ||
| export { _ as AbstractHandler, D as CliMain, x as DefaultLogger, A as LogLevel, w as Terminal, $ as advancedLevels, ye as arrayFlatten, kt as arrayUnique, xe as basicLevels, tr as clearCache, qt as createCli, zt as createCommand, Tn as createFixtureFiles, Fr as createSalt, I as createYargs, Ut as createYargsSubCommands, ee as ensureSlash, St as execaOpts, Br as extractFileFromZip, mr as fileCompare, X as fileWalk, dr as fileWalkSync, Z as findParentDir, ne as getClosestPackageFile, k as getDirname, jr as getLastCommitHash, Kr as getPackageData, Yr as getPackageDir, F as getTerminalLink, pr as isDirectory, te as isPathMatch, Ir as ldapSHAVerify, Ur as ldapSSHACreate, rr as loadPlugins, Ge as mergeDirs, K as readJsonFromFile, _e as rmrfSync, xr as rmrfSyncByPattern, xn as runProgram, Sn as runTsScript, wn as showBanner, p as terminalColor, Nr as unzip, hn as updateNotifier, Cr as writeJsonToBuffer, Sr as writeJsonToFile, Er as zip, rt as zipFiles }; | ||
| //# sourceMappingURL=index.js.map |
+1
-1
| { | ||
| "name": "@armit/common", | ||
| "version": "0.0.8", | ||
| "version": "0.0.9", | ||
| "homepage": "https://github.com/armitjs/armit", | ||
@@ -5,0 +5,0 @@ "repository": { |
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
124356
0.55%809
0.12%