@conterra/vuln-scan 1.0.9 → 1.0.10

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 (2) hide show
  1. package/dist/vuln-scan.js +10 -10
  2. package/package.json +1 -1
package/dist/vuln-scan.js CHANGED
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
- "use strict";var mi=Object.create;var $t=Object.defineProperty;var pi=Object.getOwnPropertyDescriptor;var di=Object.getOwnPropertyNames;var yi=Object.getPrototypeOf,hi=Object.prototype.hasOwnProperty;var g=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Si=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of di(e))!hi.call(t,i)&&i!==r&&$t(t,i,{get:()=>e[i],enumerable:!(n=pi(e,i))||n.enumerable});return t};var Oe=(t,e,r)=>(r=t!=null?mi(yi(t)):{},Si(e||!t||!t.__esModule?$t(r,"default",{value:t,enumerable:!0}):r,t));var T=g(ut=>{"use strict";ut.fromCallback=function(t){return Object.defineProperty(function(...e){if(typeof e[e.length-1]=="function")t.apply(this,e);else return new Promise((r,n)=>{e.push((i,o)=>i!=null?n(i):r(o)),t.apply(this,e)})},"name",{value:t.name})};ut.fromPromise=function(t){return Object.defineProperty(function(...e){let r=e[e.length-1];if(typeof r!="function")return t.apply(this,e);e.pop(),t.apply(this,e).then(n=>r(null,n),r)},"name",{value:t.name})}});var qt=g((Ta,Bt)=>{var te=require("constants"),xi=process.cwd,Te=null,Pi=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){return Te||(Te=xi.call(process)),Te};try{process.cwd()}catch{}typeof process.chdir=="function"&&(ft=process.chdir,process.chdir=function(t){Te=null,ft.call(process,t)},Object.setPrototypeOf&&Object.setPrototypeOf(process.chdir,ft));var ft;Bt.exports=Li;function Li(t){te.hasOwnProperty("O_SYMLINK")&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)&&e(t),t.lutimes||r(t),t.chown=o(t.chown),t.fchown=o(t.fchown),t.lchown=o(t.lchown),t.chmod=n(t.chmod),t.fchmod=n(t.fchmod),t.lchmod=n(t.lchmod),t.chownSync=s(t.chownSync),t.fchownSync=s(t.fchownSync),t.lchownSync=s(t.lchownSync),t.chmodSync=i(t.chmodSync),t.fchmodSync=i(t.fchmodSync),t.lchmodSync=i(t.lchmodSync),t.stat=c(t.stat),t.fstat=c(t.fstat),t.lstat=c(t.lstat),t.statSync=p(t.statSync),t.fstatSync=p(t.fstatSync),t.lstatSync=p(t.lstatSync),t.chmod&&!t.lchmod&&(t.lchmod=function(a,m,u){u&&process.nextTick(u)},t.lchmodSync=function(){}),t.chown&&!t.lchown&&(t.lchown=function(a,m,u,l){l&&process.nextTick(l)},t.lchownSync=function(){}),Pi==="win32"&&(t.rename=typeof t.rename!="function"?t.rename:(function(a){function m(u,l,d){var y=Date.now(),S=0;a(u,l,function w(D){if(D&&(D.code==="EACCES"||D.code==="EPERM"||D.code==="EBUSY")&&Date.now()-y<6e4){setTimeout(function(){t.stat(l,function(b,G){b&&b.code==="ENOENT"?a(u,l,w):d(D)})},S),S<100&&(S+=10);return}d&&d(D)})}return Object.setPrototypeOf&&Object.setPrototypeOf(m,a),m})(t.rename)),t.read=typeof t.read!="function"?t.read:(function(a){function m(u,l,d,y,S,w){var D;if(w&&typeof w=="function"){var b=0;D=function(G,R,rt){if(G&&G.code==="EAGAIN"&&b<10)return b++,a.call(t,u,l,d,y,S,D);w.apply(this,arguments)}}return a.call(t,u,l,d,y,S,D)}return Object.setPrototypeOf&&Object.setPrototypeOf(m,a),m})(t.read),t.readSync=typeof t.readSync!="function"?t.readSync:(function(a){return function(m,u,l,d,y){for(var S=0;;)try{return a.call(t,m,u,l,d,y)}catch(w){if(w.code==="EAGAIN"&&S<10){S++;continue}throw w}}})(t.readSync);function e(a){a.lchmod=function(m,u,l){a.open(m,te.O_WRONLY|te.O_SYMLINK,u,function(d,y){if(d){l&&l(d);return}a.fchmod(y,u,function(S){a.close(y,function(w){l&&l(S||w)})})})},a.lchmodSync=function(m,u){var l=a.openSync(m,te.O_WRONLY|te.O_SYMLINK,u),d=!0,y;try{y=a.fchmodSync(l,u),d=!1}finally{if(d)try{a.closeSync(l)}catch{}else a.closeSync(l)}return y}}function r(a){te.hasOwnProperty("O_SYMLINK")&&a.futimes?(a.lutimes=function(m,u,l,d){a.open(m,te.O_SYMLINK,function(y,S){if(y){d&&d(y);return}a.futimes(S,u,l,function(w){a.close(S,function(D){d&&d(w||D)})})})},a.lutimesSync=function(m,u,l){var d=a.openSync(m,te.O_SYMLINK),y,S=!0;try{y=a.futimesSync(d,u,l),S=!1}finally{if(S)try{a.closeSync(d)}catch{}else a.closeSync(d)}return y}):a.futimes&&(a.lutimes=function(m,u,l,d){d&&process.nextTick(d)},a.lutimesSync=function(){})}function n(a){return a&&function(m,u,l){return a.call(t,m,u,function(d){f(d)&&(d=null),l&&l.apply(this,arguments)})}}function i(a){return a&&function(m,u){try{return a.call(t,m,u)}catch(l){if(!f(l))throw l}}}function o(a){return a&&function(m,u,l,d){return a.call(t,m,u,l,function(y){f(y)&&(y=null),d&&d.apply(this,arguments)})}}function s(a){return a&&function(m,u,l){try{return a.call(t,m,u,l)}catch(d){if(!f(d))throw d}}}function c(a){return a&&function(m,u,l){typeof u=="function"&&(l=u,u=null);function d(y,S){S&&(S.uid<0&&(S.uid+=4294967296),S.gid<0&&(S.gid+=4294967296)),l&&l.apply(this,arguments)}return u?a.call(t,m,u,d):a.call(t,m,d)}}function p(a){return a&&function(m,u){var l=u?a.call(t,m,u):a.call(t,m);return l&&(l.uid<0&&(l.uid+=4294967296),l.gid<0&&(l.gid+=4294967296)),l}}function f(a){if(!a||a.code==="ENOSYS")return!0;var m=!process.getuid||process.getuid()!==0;return!!(m&&(a.code==="EINVAL"||a.code==="EPERM"))}}});var Gt=g((ja,Xt)=>{var Ut=require("stream").Stream;Xt.exports=Ei;function Ei(t){return{ReadStream:e,WriteStream:r};function e(n,i){if(!(this instanceof e))return new e(n,i);Ut.call(this);var o=this;this.path=n,this.fd=null,this.readable=!0,this.paused=!1,this.flags="r",this.mode=438,this.bufferSize=64*1024,i=i||{};for(var s=Object.keys(i),c=0,p=s.length;c<p;c++){var f=s[c];this[f]=i[f]}if(this.encoding&&this.setEncoding(this.encoding),this.start!==void 0){if(typeof this.start!="number")throw TypeError("start must be a Number");if(this.end===void 0)this.end=1/0;else if(typeof this.end!="number")throw TypeError("end must be a Number");if(this.start>this.end)throw new Error("start must be <= end");this.pos=this.start}if(this.fd!==null){process.nextTick(function(){o._read()});return}t.open(this.path,this.flags,this.mode,function(a,m){if(a){o.emit("error",a),o.readable=!1;return}o.fd=m,o.emit("open",m),o._read()})}function r(n,i){if(!(this instanceof r))return new r(n,i);Ut.call(this),this.path=n,this.fd=null,this.writable=!0,this.flags="w",this.encoding="binary",this.mode=438,this.bytesWritten=0,i=i||{};for(var o=Object.keys(i),s=0,c=o.length;s<c;s++){var p=o[s];this[p]=i[p]}if(this.start!==void 0){if(typeof this.start!="number")throw TypeError("start must be a Number");if(this.start<0)throw new Error("start must be >= zero");this.pos=this.start}this.busy=!1,this._queue=[],this.fd===null&&(this._open=t.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush())}}});var Wt=g((Ia,Jt)=>{"use strict";Jt.exports=Oi;var ki=Object.getPrototypeOf||function(t){return t.__proto__};function Oi(t){if(t===null||typeof t!="object")return t;if(t instanceof Object)var e={__proto__:ki(t)};else var e=Object.create(null);return Object.getOwnPropertyNames(t).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}});var fe=g((Fa,dt)=>{var k=require("fs"),Di=qt(),Ci=Gt(),Ti=Wt(),je=require("util"),N,Fe;typeof Symbol=="function"&&typeof Symbol.for=="function"?(N=Symbol.for("graceful-fs.queue"),Fe=Symbol.for("graceful-fs.previous")):(N="___graceful-fs.queue",Fe="___graceful-fs.previous");function ji(){}function Qt(t,e){Object.defineProperty(t,N,{get:function(){return e}})}var ae=ji;je.debuglog?ae=je.debuglog("gfs4"):/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&(ae=function(){var t=je.format.apply(je,arguments);t="GFS4: "+t.split(/\n/).join(`
3
- GFS4: `),console.error(t)});k[N]||(Ht=global[N]||[],Qt(k,Ht),k.close=(function(t){function e(r,n){return t.call(k,r,function(i){i||Yt(),typeof n=="function"&&n.apply(this,arguments)})}return Object.defineProperty(e,Fe,{value:t}),e})(k.close),k.closeSync=(function(t){function e(r){t.apply(k,arguments),Yt()}return Object.defineProperty(e,Fe,{value:t}),e})(k.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&process.on("exit",function(){ae(k[N]),require("assert").equal(k[N].length,0)}));var Ht;global[N]||Qt(global,k[N]);dt.exports=mt(Ti(k));process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!k.__patched&&(dt.exports=mt(k),k.__patched=!0);function mt(t){Di(t),t.gracefulify=mt,t.createReadStream=R,t.createWriteStream=rt;var e=t.readFile;t.readFile=r;function r(h,v,x){return typeof v=="function"&&(x=v,v=null),I(h,v,x);function I(F,C,E,O){return e(F,C,function(P){P&&(P.code==="EMFILE"||P.code==="ENFILE")?ue([I,[F,C,E],P,O||Date.now(),Date.now()]):typeof E=="function"&&E.apply(this,arguments)})}}var n=t.writeFile;t.writeFile=i;function i(h,v,x,I){return typeof x=="function"&&(I=x,x=null),F(h,v,x,I);function F(C,E,O,P,M){return n(C,E,O,function(L){L&&(L.code==="EMFILE"||L.code==="ENFILE")?ue([F,[C,E,O,P],L,M||Date.now(),Date.now()]):typeof P=="function"&&P.apply(this,arguments)})}}var o=t.appendFile;o&&(t.appendFile=s);function s(h,v,x,I){return typeof x=="function"&&(I=x,x=null),F(h,v,x,I);function F(C,E,O,P,M){return o(C,E,O,function(L){L&&(L.code==="EMFILE"||L.code==="ENFILE")?ue([F,[C,E,O,P],L,M||Date.now(),Date.now()]):typeof P=="function"&&P.apply(this,arguments)})}}var c=t.copyFile;c&&(t.copyFile=p);function p(h,v,x,I){return typeof x=="function"&&(I=x,x=0),F(h,v,x,I);function F(C,E,O,P,M){return c(C,E,O,function(L){L&&(L.code==="EMFILE"||L.code==="ENFILE")?ue([F,[C,E,O,P],L,M||Date.now(),Date.now()]):typeof P=="function"&&P.apply(this,arguments)})}}var f=t.readdir;t.readdir=m;var a=/^v[0-5]\./;function m(h,v,x){typeof v=="function"&&(x=v,v=null);var I=a.test(process.version)?function(E,O,P,M){return f(E,F(E,O,P,M))}:function(E,O,P,M){return f(E,O,F(E,O,P,M))};return I(h,v,x);function F(C,E,O,P){return function(M,L){M&&(M.code==="EMFILE"||M.code==="ENFILE")?ue([I,[C,E,O],M,P||Date.now(),Date.now()]):(L&&L.sort&&L.sort(),typeof O=="function"&&O.call(this,M,L))}}}if(process.version.substr(0,4)==="v0.8"){var u=Ci(t);w=u.ReadStream,b=u.WriteStream}var l=t.ReadStream;l&&(w.prototype=Object.create(l.prototype),w.prototype.open=D);var d=t.WriteStream;d&&(b.prototype=Object.create(d.prototype),b.prototype.open=G),Object.defineProperty(t,"ReadStream",{get:function(){return w},set:function(h){w=h},enumerable:!0,configurable:!0}),Object.defineProperty(t,"WriteStream",{get:function(){return b},set:function(h){b=h},enumerable:!0,configurable:!0});var y=w;Object.defineProperty(t,"FileReadStream",{get:function(){return y},set:function(h){y=h},enumerable:!0,configurable:!0});var S=b;Object.defineProperty(t,"FileWriteStream",{get:function(){return S},set:function(h){S=h},enumerable:!0,configurable:!0});function w(h,v){return this instanceof w?(l.apply(this,arguments),this):w.apply(Object.create(w.prototype),arguments)}function D(){var h=this;he(h.path,h.flags,h.mode,function(v,x){v?(h.autoClose&&h.destroy(),h.emit("error",v)):(h.fd=x,h.emit("open",x),h.read())})}function b(h,v){return this instanceof b?(d.apply(this,arguments),this):b.apply(Object.create(b.prototype),arguments)}function G(){var h=this;he(h.path,h.flags,h.mode,function(v,x){v?(h.destroy(),h.emit("error",v)):(h.fd=x,h.emit("open",x))})}function R(h,v){return new t.ReadStream(h,v)}function rt(h,v){return new t.WriteStream(h,v)}var nt=t.open;t.open=he;function he(h,v,x,I){return typeof x=="function"&&(I=x,x=null),F(h,v,x,I);function F(C,E,O,P,M){return nt(C,E,O,function(L,ga){L&&(L.code==="EMFILE"||L.code==="ENFILE")?ue([F,[C,E,O,P],L,M||Date.now(),Date.now()]):typeof P=="function"&&P.apply(this,arguments)})}}return t}function ue(t){ae("ENQUEUE",t[0].name,t[1]),k[N].push(t),pt()}var Ie;function Yt(){for(var t=Date.now(),e=0;e<k[N].length;++e)k[N][e].length>2&&(k[N][e][3]=t,k[N][e][4]=t);pt()}function pt(){if(clearTimeout(Ie),Ie=void 0,k[N].length!==0){var t=k[N].shift(),e=t[0],r=t[1],n=t[2],i=t[3],o=t[4];if(i===void 0)ae("RETRY",e.name,r),e.apply(null,r);else if(Date.now()-i>=6e4){ae("TIMEOUT",e.name,r);var s=r.pop();typeof s=="function"&&s.call(null,n)}else{var c=Date.now()-o,p=Math.max(o-i,1),f=Math.min(p*1.2,100);c>=f?(ae("RETRY",e.name,r),e.apply(null,r.concat([i]))):k[N].push(t)}Ie===void 0&&(Ie=setTimeout(pt,0))}}});var $=g(z=>{"use strict";var Kt=T().fromCallback,A=fe(),Ii=["access","appendFile","chmod","chown","close","copyFile","cp","fchmod","fchown","fdatasync","fstat","fsync","ftruncate","futimes","glob","lchmod","lchown","lutimes","link","lstat","mkdir","mkdtemp","open","opendir","readdir","readFile","readlink","realpath","rename","rm","rmdir","stat","statfs","symlink","truncate","unlink","utimes","writeFile"].filter(t=>typeof A[t]=="function");Object.assign(z,A);Ii.forEach(t=>{z[t]=Kt(A[t])});z.exists=function(t,e){return typeof e=="function"?A.exists(t,e):new Promise(r=>A.exists(t,r))};z.read=function(t,e,r,n,i,o){return typeof o=="function"?A.read(t,e,r,n,i,o):new Promise((s,c)=>{A.read(t,e,r,n,i,(p,f,a)=>{if(p)return c(p);s({bytesRead:f,buffer:a})})})};z.write=function(t,e,...r){return typeof r[r.length-1]=="function"?A.write(t,e,...r):new Promise((n,i)=>{A.write(t,e,...r,(o,s,c)=>{if(o)return i(o);n({bytesWritten:s,buffer:c})})})};z.readv=function(t,e,...r){return typeof r[r.length-1]=="function"?A.readv(t,e,...r):new Promise((n,i)=>{A.readv(t,e,...r,(o,s,c)=>{if(o)return i(o);n({bytesRead:s,buffers:c})})})};z.writev=function(t,e,...r){return typeof r[r.length-1]=="function"?A.writev(t,e,...r):new Promise((n,i)=>{A.writev(t,e,...r,(o,s,c)=>{if(o)return i(o);n({bytesWritten:s,buffers:c})})})};typeof A.realpath.native=="function"?z.realpath.native=Kt(A.realpath.native):process.emitWarning("fs.realpath.native is not a function. Is fs being monkey-patched?","Warning","fs-extra-WARN0003")});var Zt=g((Na,zt)=>{"use strict";var Fi=require("path");zt.exports.checkPath=function(e){if(process.platform==="win32"&&/[<>:"|?*]/.test(e.replace(Fi.parse(e).root,""))){let n=new Error(`Path contains invalid characters: ${e}`);throw n.code="EINVAL",n}}});var nr=g((Ra,yt)=>{"use strict";var er=$(),{checkPath:tr}=Zt(),rr=t=>{let e={mode:511};return typeof t=="number"?t:{...e,...t}.mode};yt.exports.makeDir=async(t,e)=>(tr(t),er.mkdir(t,{mode:rr(e),recursive:!0}));yt.exports.makeDirSync=(t,e)=>(tr(t),er.mkdirSync(t,{mode:rr(e),recursive:!0}))});var W=g((Va,ir)=>{"use strict";var Mi=T().fromPromise,{makeDir:Ni,makeDirSync:ht}=nr(),St=Mi(Ni);ir.exports={mkdirs:St,mkdirsSync:ht,mkdirp:St,mkdirpSync:ht,ensureDir:St,ensureDirSync:ht}});var re=g((Aa,sr)=>{"use strict";var Ri=T().fromPromise,or=$();function Vi(t){return or.access(t).then(()=>!0).catch(()=>!1)}sr.exports={pathExists:Ri(Vi),pathExistsSync:or.existsSync}});var gt=g(($a,ar)=>{"use strict";var me=$(),Ai=T().fromPromise;async function $i(t,e,r){let n=await me.open(t,"r+"),i=null;try{await me.futimes(n,e,r)}finally{try{await me.close(n)}catch(o){i=o}}if(i)throw i}function _i(t,e,r){let n=me.openSync(t,"r+");return me.futimesSync(n,e,r),me.closeSync(n)}ar.exports={utimesMillis:Ai($i),utimesMillisSync:_i}});var ce=g((_a,fr)=>{"use strict";var pe=$(),j=require("path"),cr=T().fromPromise;function Bi(t,e,r){let n=r.dereference?i=>pe.stat(i,{bigint:!0}):i=>pe.lstat(i,{bigint:!0});return Promise.all([n(t),n(e).catch(i=>{if(i.code==="ENOENT")return null;throw i})]).then(([i,o])=>({srcStat:i,destStat:o}))}function qi(t,e,r){let n,i=r.dereference?s=>pe.statSync(s,{bigint:!0}):s=>pe.lstatSync(s,{bigint:!0}),o=i(t);try{n=i(e)}catch(s){if(s.code==="ENOENT")return{srcStat:o,destStat:null};throw s}return{srcStat:o,destStat:n}}async function Ui(t,e,r,n){let{srcStat:i,destStat:o}=await Bi(t,e,n);if(o){if(ge(i,o)){let s=j.basename(t),c=j.basename(e);if(r==="move"&&s!==c&&s.toLowerCase()===c.toLowerCase())return{srcStat:i,destStat:o,isChangingCase:!0};throw new Error("Source and destination must not be the same.")}if(i.isDirectory()&&!o.isDirectory())throw new Error(`Cannot overwrite non-directory '${e}' with directory '${t}'.`);if(!i.isDirectory()&&o.isDirectory())throw new Error(`Cannot overwrite directory '${e}' with non-directory '${t}'.`)}if(i.isDirectory()&&vt(t,e))throw new Error(Me(t,e,r));return{srcStat:i,destStat:o}}function Xi(t,e,r,n){let{srcStat:i,destStat:o}=qi(t,e,n);if(o){if(ge(i,o)){let s=j.basename(t),c=j.basename(e);if(r==="move"&&s!==c&&s.toLowerCase()===c.toLowerCase())return{srcStat:i,destStat:o,isChangingCase:!0};throw new Error("Source and destination must not be the same.")}if(i.isDirectory()&&!o.isDirectory())throw new Error(`Cannot overwrite non-directory '${e}' with directory '${t}'.`);if(!i.isDirectory()&&o.isDirectory())throw new Error(`Cannot overwrite directory '${e}' with non-directory '${t}'.`)}if(i.isDirectory()&&vt(t,e))throw new Error(Me(t,e,r));return{srcStat:i,destStat:o}}async function lr(t,e,r,n){let i=j.resolve(j.dirname(t)),o=j.resolve(j.dirname(r));if(o===i||o===j.parse(o).root)return;let s;try{s=await pe.stat(o,{bigint:!0})}catch(c){if(c.code==="ENOENT")return;throw c}if(ge(e,s))throw new Error(Me(t,r,n));return lr(t,e,o,n)}function ur(t,e,r,n){let i=j.resolve(j.dirname(t)),o=j.resolve(j.dirname(r));if(o===i||o===j.parse(o).root)return;let s;try{s=pe.statSync(o,{bigint:!0})}catch(c){if(c.code==="ENOENT")return;throw c}if(ge(e,s))throw new Error(Me(t,r,n));return ur(t,e,o,n)}function ge(t,e){return e.ino!==void 0&&e.dev!==void 0&&e.ino===t.ino&&e.dev===t.dev}function vt(t,e){let r=j.resolve(t).split(j.sep).filter(i=>i),n=j.resolve(e).split(j.sep).filter(i=>i);return r.every((i,o)=>n[o]===i)}function Me(t,e,r){return`Cannot ${r} '${t}' to a subdirectory of itself, '${e}'.`}fr.exports={checkPaths:cr(Ui),checkPathsSync:Xi,checkParentPaths:cr(lr),checkParentPathsSync:ur,isSrcSubdir:vt,areIdentical:ge}});var pr=g((Ba,mr)=>{"use strict";async function Gi(t,e){let r=[];for await(let n of t)r.push(e(n).then(()=>null,i=>i??new Error("unknown error")));await Promise.all(r.map(n=>n.then(i=>{if(i!==null)throw i})))}mr.exports={asyncIteratorConcurrentProcess:Gi}});var gr=g((qa,Sr)=>{"use strict";var V=$(),ve=require("path"),{mkdirs:Ji}=W(),{pathExists:Wi}=re(),{utimesMillis:Hi}=gt(),we=ce(),{asyncIteratorConcurrentProcess:Yi}=pr();async function Qi(t,e,r={}){typeof r=="function"&&(r={filter:r}),r.clobber="clobber"in r?!!r.clobber:!0,r.overwrite="overwrite"in r?!!r.overwrite:r.clobber,r.preserveTimestamps&&process.arch==="ia32"&&process.emitWarning(`Using the preserveTimestamps option in 32-bit node is not recommended;
2
+ "use strict";var pi=Object.create;var $t=Object.defineProperty;var di=Object.getOwnPropertyDescriptor;var yi=Object.getOwnPropertyNames;var hi=Object.getPrototypeOf,Si=Object.prototype.hasOwnProperty;var g=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var gi=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of yi(e))!Si.call(t,i)&&i!==r&&$t(t,i,{get:()=>e[i],enumerable:!(n=di(e,i))||n.enumerable});return t};var Oe=(t,e,r)=>(r=t!=null?pi(hi(t)):{},gi(e||!t||!t.__esModule?$t(r,"default",{value:t,enumerable:!0}):r,t));var T=g(ut=>{"use strict";ut.fromCallback=function(t){return Object.defineProperty(function(...e){if(typeof e[e.length-1]=="function")t.apply(this,e);else return new Promise((r,n)=>{e.push((i,o)=>i!=null?n(i):r(o)),t.apply(this,e)})},"name",{value:t.name})};ut.fromPromise=function(t){return Object.defineProperty(function(...e){let r=e[e.length-1];if(typeof r!="function")return t.apply(this,e);e.pop(),t.apply(this,e).then(n=>r(null,n),r)},"name",{value:t.name})}});var qt=g((ja,Bt)=>{var te=require("constants"),Pi=process.cwd,Te=null,Li=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){return Te||(Te=Pi.call(process)),Te};try{process.cwd()}catch{}typeof process.chdir=="function"&&(ft=process.chdir,process.chdir=function(t){Te=null,ft.call(process,t)},Object.setPrototypeOf&&Object.setPrototypeOf(process.chdir,ft));var ft;Bt.exports=Ei;function Ei(t){te.hasOwnProperty("O_SYMLINK")&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)&&e(t),t.lutimes||r(t),t.chown=o(t.chown),t.fchown=o(t.fchown),t.lchown=o(t.lchown),t.chmod=n(t.chmod),t.fchmod=n(t.fchmod),t.lchmod=n(t.lchmod),t.chownSync=s(t.chownSync),t.fchownSync=s(t.fchownSync),t.lchownSync=s(t.lchownSync),t.chmodSync=i(t.chmodSync),t.fchmodSync=i(t.fchmodSync),t.lchmodSync=i(t.lchmodSync),t.stat=c(t.stat),t.fstat=c(t.fstat),t.lstat=c(t.lstat),t.statSync=p(t.statSync),t.fstatSync=p(t.fstatSync),t.lstatSync=p(t.lstatSync),t.chmod&&!t.lchmod&&(t.lchmod=function(a,m,u){u&&process.nextTick(u)},t.lchmodSync=function(){}),t.chown&&!t.lchown&&(t.lchown=function(a,m,u,l){l&&process.nextTick(l)},t.lchownSync=function(){}),Li==="win32"&&(t.rename=typeof t.rename!="function"?t.rename:(function(a){function m(u,l,d){var y=Date.now(),S=0;a(u,l,function w(D){if(D&&(D.code==="EACCES"||D.code==="EPERM"||D.code==="EBUSY")&&Date.now()-y<6e4){setTimeout(function(){t.stat(l,function(b,G){b&&b.code==="ENOENT"?a(u,l,w):d(D)})},S),S<100&&(S+=10);return}d&&d(D)})}return Object.setPrototypeOf&&Object.setPrototypeOf(m,a),m})(t.rename)),t.read=typeof t.read!="function"?t.read:(function(a){function m(u,l,d,y,S,w){var D;if(w&&typeof w=="function"){var b=0;D=function(G,R,rt){if(G&&G.code==="EAGAIN"&&b<10)return b++,a.call(t,u,l,d,y,S,D);w.apply(this,arguments)}}return a.call(t,u,l,d,y,S,D)}return Object.setPrototypeOf&&Object.setPrototypeOf(m,a),m})(t.read),t.readSync=typeof t.readSync!="function"?t.readSync:(function(a){return function(m,u,l,d,y){for(var S=0;;)try{return a.call(t,m,u,l,d,y)}catch(w){if(w.code==="EAGAIN"&&S<10){S++;continue}throw w}}})(t.readSync);function e(a){a.lchmod=function(m,u,l){a.open(m,te.O_WRONLY|te.O_SYMLINK,u,function(d,y){if(d){l&&l(d);return}a.fchmod(y,u,function(S){a.close(y,function(w){l&&l(S||w)})})})},a.lchmodSync=function(m,u){var l=a.openSync(m,te.O_WRONLY|te.O_SYMLINK,u),d=!0,y;try{y=a.fchmodSync(l,u),d=!1}finally{if(d)try{a.closeSync(l)}catch{}else a.closeSync(l)}return y}}function r(a){te.hasOwnProperty("O_SYMLINK")&&a.futimes?(a.lutimes=function(m,u,l,d){a.open(m,te.O_SYMLINK,function(y,S){if(y){d&&d(y);return}a.futimes(S,u,l,function(w){a.close(S,function(D){d&&d(w||D)})})})},a.lutimesSync=function(m,u,l){var d=a.openSync(m,te.O_SYMLINK),y,S=!0;try{y=a.futimesSync(d,u,l),S=!1}finally{if(S)try{a.closeSync(d)}catch{}else a.closeSync(d)}return y}):a.futimes&&(a.lutimes=function(m,u,l,d){d&&process.nextTick(d)},a.lutimesSync=function(){})}function n(a){return a&&function(m,u,l){return a.call(t,m,u,function(d){f(d)&&(d=null),l&&l.apply(this,arguments)})}}function i(a){return a&&function(m,u){try{return a.call(t,m,u)}catch(l){if(!f(l))throw l}}}function o(a){return a&&function(m,u,l,d){return a.call(t,m,u,l,function(y){f(y)&&(y=null),d&&d.apply(this,arguments)})}}function s(a){return a&&function(m,u,l){try{return a.call(t,m,u,l)}catch(d){if(!f(d))throw d}}}function c(a){return a&&function(m,u,l){typeof u=="function"&&(l=u,u=null);function d(y,S){S&&(S.uid<0&&(S.uid+=4294967296),S.gid<0&&(S.gid+=4294967296)),l&&l.apply(this,arguments)}return u?a.call(t,m,u,d):a.call(t,m,d)}}function p(a){return a&&function(m,u){var l=u?a.call(t,m,u):a.call(t,m);return l&&(l.uid<0&&(l.uid+=4294967296),l.gid<0&&(l.gid+=4294967296)),l}}function f(a){if(!a||a.code==="ENOSYS")return!0;var m=!process.getuid||process.getuid()!==0;return!!(m&&(a.code==="EINVAL"||a.code==="EPERM"))}}});var Gt=g((Ia,Xt)=>{var Ut=require("stream").Stream;Xt.exports=ki;function ki(t){return{ReadStream:e,WriteStream:r};function e(n,i){if(!(this instanceof e))return new e(n,i);Ut.call(this);var o=this;this.path=n,this.fd=null,this.readable=!0,this.paused=!1,this.flags="r",this.mode=438,this.bufferSize=64*1024,i=i||{};for(var s=Object.keys(i),c=0,p=s.length;c<p;c++){var f=s[c];this[f]=i[f]}if(this.encoding&&this.setEncoding(this.encoding),this.start!==void 0){if(typeof this.start!="number")throw TypeError("start must be a Number");if(this.end===void 0)this.end=1/0;else if(typeof this.end!="number")throw TypeError("end must be a Number");if(this.start>this.end)throw new Error("start must be <= end");this.pos=this.start}if(this.fd!==null){process.nextTick(function(){o._read()});return}t.open(this.path,this.flags,this.mode,function(a,m){if(a){o.emit("error",a),o.readable=!1;return}o.fd=m,o.emit("open",m),o._read()})}function r(n,i){if(!(this instanceof r))return new r(n,i);Ut.call(this),this.path=n,this.fd=null,this.writable=!0,this.flags="w",this.encoding="binary",this.mode=438,this.bytesWritten=0,i=i||{};for(var o=Object.keys(i),s=0,c=o.length;s<c;s++){var p=o[s];this[p]=i[p]}if(this.start!==void 0){if(typeof this.start!="number")throw TypeError("start must be a Number");if(this.start<0)throw new Error("start must be >= zero");this.pos=this.start}this.busy=!1,this._queue=[],this.fd===null&&(this._open=t.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush())}}});var Wt=g((Fa,Jt)=>{"use strict";Jt.exports=Di;var Oi=Object.getPrototypeOf||function(t){return t.__proto__};function Di(t){if(t===null||typeof t!="object")return t;if(t instanceof Object)var e={__proto__:Oi(t)};else var e=Object.create(null);return Object.getOwnPropertyNames(t).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}});var fe=g((Ma,dt)=>{var k=require("fs"),Ci=qt(),Ti=Gt(),ji=Wt(),je=require("util"),N,Fe;typeof Symbol=="function"&&typeof Symbol.for=="function"?(N=Symbol.for("graceful-fs.queue"),Fe=Symbol.for("graceful-fs.previous")):(N="___graceful-fs.queue",Fe="___graceful-fs.previous");function Ii(){}function Qt(t,e){Object.defineProperty(t,N,{get:function(){return e}})}var ae=Ii;je.debuglog?ae=je.debuglog("gfs4"):/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&(ae=function(){var t=je.format.apply(je,arguments);t="GFS4: "+t.split(/\n/).join(`
3
+ GFS4: `),console.error(t)});k[N]||(Ht=global[N]||[],Qt(k,Ht),k.close=(function(t){function e(r,n){return t.call(k,r,function(i){i||Yt(),typeof n=="function"&&n.apply(this,arguments)})}return Object.defineProperty(e,Fe,{value:t}),e})(k.close),k.closeSync=(function(t){function e(r){t.apply(k,arguments),Yt()}return Object.defineProperty(e,Fe,{value:t}),e})(k.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&process.on("exit",function(){ae(k[N]),require("assert").equal(k[N].length,0)}));var Ht;global[N]||Qt(global,k[N]);dt.exports=mt(ji(k));process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!k.__patched&&(dt.exports=mt(k),k.__patched=!0);function mt(t){Ci(t),t.gracefulify=mt,t.createReadStream=R,t.createWriteStream=rt;var e=t.readFile;t.readFile=r;function r(h,v,x){return typeof v=="function"&&(x=v,v=null),I(h,v,x);function I(F,C,E,O){return e(F,C,function(P){P&&(P.code==="EMFILE"||P.code==="ENFILE")?ue([I,[F,C,E],P,O||Date.now(),Date.now()]):typeof E=="function"&&E.apply(this,arguments)})}}var n=t.writeFile;t.writeFile=i;function i(h,v,x,I){return typeof x=="function"&&(I=x,x=null),F(h,v,x,I);function F(C,E,O,P,M){return n(C,E,O,function(L){L&&(L.code==="EMFILE"||L.code==="ENFILE")?ue([F,[C,E,O,P],L,M||Date.now(),Date.now()]):typeof P=="function"&&P.apply(this,arguments)})}}var o=t.appendFile;o&&(t.appendFile=s);function s(h,v,x,I){return typeof x=="function"&&(I=x,x=null),F(h,v,x,I);function F(C,E,O,P,M){return o(C,E,O,function(L){L&&(L.code==="EMFILE"||L.code==="ENFILE")?ue([F,[C,E,O,P],L,M||Date.now(),Date.now()]):typeof P=="function"&&P.apply(this,arguments)})}}var c=t.copyFile;c&&(t.copyFile=p);function p(h,v,x,I){return typeof x=="function"&&(I=x,x=0),F(h,v,x,I);function F(C,E,O,P,M){return c(C,E,O,function(L){L&&(L.code==="EMFILE"||L.code==="ENFILE")?ue([F,[C,E,O,P],L,M||Date.now(),Date.now()]):typeof P=="function"&&P.apply(this,arguments)})}}var f=t.readdir;t.readdir=m;var a=/^v[0-5]\./;function m(h,v,x){typeof v=="function"&&(x=v,v=null);var I=a.test(process.version)?function(E,O,P,M){return f(E,F(E,O,P,M))}:function(E,O,P,M){return f(E,O,F(E,O,P,M))};return I(h,v,x);function F(C,E,O,P){return function(M,L){M&&(M.code==="EMFILE"||M.code==="ENFILE")?ue([I,[C,E,O],M,P||Date.now(),Date.now()]):(L&&L.sort&&L.sort(),typeof O=="function"&&O.call(this,M,L))}}}if(process.version.substr(0,4)==="v0.8"){var u=Ti(t);w=u.ReadStream,b=u.WriteStream}var l=t.ReadStream;l&&(w.prototype=Object.create(l.prototype),w.prototype.open=D);var d=t.WriteStream;d&&(b.prototype=Object.create(d.prototype),b.prototype.open=G),Object.defineProperty(t,"ReadStream",{get:function(){return w},set:function(h){w=h},enumerable:!0,configurable:!0}),Object.defineProperty(t,"WriteStream",{get:function(){return b},set:function(h){b=h},enumerable:!0,configurable:!0});var y=w;Object.defineProperty(t,"FileReadStream",{get:function(){return y},set:function(h){y=h},enumerable:!0,configurable:!0});var S=b;Object.defineProperty(t,"FileWriteStream",{get:function(){return S},set:function(h){S=h},enumerable:!0,configurable:!0});function w(h,v){return this instanceof w?(l.apply(this,arguments),this):w.apply(Object.create(w.prototype),arguments)}function D(){var h=this;he(h.path,h.flags,h.mode,function(v,x){v?(h.autoClose&&h.destroy(),h.emit("error",v)):(h.fd=x,h.emit("open",x),h.read())})}function b(h,v){return this instanceof b?(d.apply(this,arguments),this):b.apply(Object.create(b.prototype),arguments)}function G(){var h=this;he(h.path,h.flags,h.mode,function(v,x){v?(h.destroy(),h.emit("error",v)):(h.fd=x,h.emit("open",x))})}function R(h,v){return new t.ReadStream(h,v)}function rt(h,v){return new t.WriteStream(h,v)}var nt=t.open;t.open=he;function he(h,v,x,I){return typeof x=="function"&&(I=x,x=null),F(h,v,x,I);function F(C,E,O,P,M){return nt(C,E,O,function(L,va){L&&(L.code==="EMFILE"||L.code==="ENFILE")?ue([F,[C,E,O,P],L,M||Date.now(),Date.now()]):typeof P=="function"&&P.apply(this,arguments)})}}return t}function ue(t){ae("ENQUEUE",t[0].name,t[1]),k[N].push(t),pt()}var Ie;function Yt(){for(var t=Date.now(),e=0;e<k[N].length;++e)k[N][e].length>2&&(k[N][e][3]=t,k[N][e][4]=t);pt()}function pt(){if(clearTimeout(Ie),Ie=void 0,k[N].length!==0){var t=k[N].shift(),e=t[0],r=t[1],n=t[2],i=t[3],o=t[4];if(i===void 0)ae("RETRY",e.name,r),e.apply(null,r);else if(Date.now()-i>=6e4){ae("TIMEOUT",e.name,r);var s=r.pop();typeof s=="function"&&s.call(null,n)}else{var c=Date.now()-o,p=Math.max(o-i,1),f=Math.min(p*1.2,100);c>=f?(ae("RETRY",e.name,r),e.apply(null,r.concat([i]))):k[N].push(t)}Ie===void 0&&(Ie=setTimeout(pt,0))}}});var $=g(z=>{"use strict";var Kt=T().fromCallback,A=fe(),Fi=["access","appendFile","chmod","chown","close","copyFile","cp","fchmod","fchown","fdatasync","fstat","fsync","ftruncate","futimes","glob","lchmod","lchown","lutimes","link","lstat","mkdir","mkdtemp","open","opendir","readdir","readFile","readlink","realpath","rename","rm","rmdir","stat","statfs","symlink","truncate","unlink","utimes","writeFile"].filter(t=>typeof A[t]=="function");Object.assign(z,A);Fi.forEach(t=>{z[t]=Kt(A[t])});z.exists=function(t,e){return typeof e=="function"?A.exists(t,e):new Promise(r=>A.exists(t,r))};z.read=function(t,e,r,n,i,o){return typeof o=="function"?A.read(t,e,r,n,i,o):new Promise((s,c)=>{A.read(t,e,r,n,i,(p,f,a)=>{if(p)return c(p);s({bytesRead:f,buffer:a})})})};z.write=function(t,e,...r){return typeof r[r.length-1]=="function"?A.write(t,e,...r):new Promise((n,i)=>{A.write(t,e,...r,(o,s,c)=>{if(o)return i(o);n({bytesWritten:s,buffer:c})})})};z.readv=function(t,e,...r){return typeof r[r.length-1]=="function"?A.readv(t,e,...r):new Promise((n,i)=>{A.readv(t,e,...r,(o,s,c)=>{if(o)return i(o);n({bytesRead:s,buffers:c})})})};z.writev=function(t,e,...r){return typeof r[r.length-1]=="function"?A.writev(t,e,...r):new Promise((n,i)=>{A.writev(t,e,...r,(o,s,c)=>{if(o)return i(o);n({bytesWritten:s,buffers:c})})})};typeof A.realpath.native=="function"?z.realpath.native=Kt(A.realpath.native):process.emitWarning("fs.realpath.native is not a function. Is fs being monkey-patched?","Warning","fs-extra-WARN0003")});var Zt=g((Ra,zt)=>{"use strict";var Mi=require("path");zt.exports.checkPath=function(e){if(process.platform==="win32"&&/[<>:"|?*]/.test(e.replace(Mi.parse(e).root,""))){let n=new Error(`Path contains invalid characters: ${e}`);throw n.code="EINVAL",n}}});var nr=g((Va,yt)=>{"use strict";var er=$(),{checkPath:tr}=Zt(),rr=t=>{let e={mode:511};return typeof t=="number"?t:{...e,...t}.mode};yt.exports.makeDir=async(t,e)=>(tr(t),er.mkdir(t,{mode:rr(e),recursive:!0}));yt.exports.makeDirSync=(t,e)=>(tr(t),er.mkdirSync(t,{mode:rr(e),recursive:!0}))});var W=g((Aa,ir)=>{"use strict";var Ni=T().fromPromise,{makeDir:Ri,makeDirSync:ht}=nr(),St=Ni(Ri);ir.exports={mkdirs:St,mkdirsSync:ht,mkdirp:St,mkdirpSync:ht,ensureDir:St,ensureDirSync:ht}});var re=g(($a,sr)=>{"use strict";var Vi=T().fromPromise,or=$();function Ai(t){return or.access(t).then(()=>!0).catch(()=>!1)}sr.exports={pathExists:Vi(Ai),pathExistsSync:or.existsSync}});var gt=g((_a,ar)=>{"use strict";var me=$(),$i=T().fromPromise;async function _i(t,e,r){let n=await me.open(t,"r+"),i=null;try{await me.futimes(n,e,r)}finally{try{await me.close(n)}catch(o){i=o}}if(i)throw i}function Bi(t,e,r){let n=me.openSync(t,"r+");return me.futimesSync(n,e,r),me.closeSync(n)}ar.exports={utimesMillis:$i(_i),utimesMillisSync:Bi}});var ce=g((Ba,fr)=>{"use strict";var pe=$(),j=require("path"),cr=T().fromPromise;function qi(t,e,r){let n=r.dereference?i=>pe.stat(i,{bigint:!0}):i=>pe.lstat(i,{bigint:!0});return Promise.all([n(t),n(e).catch(i=>{if(i.code==="ENOENT")return null;throw i})]).then(([i,o])=>({srcStat:i,destStat:o}))}function Ui(t,e,r){let n,i=r.dereference?s=>pe.statSync(s,{bigint:!0}):s=>pe.lstatSync(s,{bigint:!0}),o=i(t);try{n=i(e)}catch(s){if(s.code==="ENOENT")return{srcStat:o,destStat:null};throw s}return{srcStat:o,destStat:n}}async function Xi(t,e,r,n){let{srcStat:i,destStat:o}=await qi(t,e,n);if(o){if(ge(i,o)){let s=j.basename(t),c=j.basename(e);if(r==="move"&&s!==c&&s.toLowerCase()===c.toLowerCase())return{srcStat:i,destStat:o,isChangingCase:!0};throw new Error("Source and destination must not be the same.")}if(i.isDirectory()&&!o.isDirectory())throw new Error(`Cannot overwrite non-directory '${e}' with directory '${t}'.`);if(!i.isDirectory()&&o.isDirectory())throw new Error(`Cannot overwrite directory '${e}' with non-directory '${t}'.`)}if(i.isDirectory()&&vt(t,e))throw new Error(Me(t,e,r));return{srcStat:i,destStat:o}}function Gi(t,e,r,n){let{srcStat:i,destStat:o}=Ui(t,e,n);if(o){if(ge(i,o)){let s=j.basename(t),c=j.basename(e);if(r==="move"&&s!==c&&s.toLowerCase()===c.toLowerCase())return{srcStat:i,destStat:o,isChangingCase:!0};throw new Error("Source and destination must not be the same.")}if(i.isDirectory()&&!o.isDirectory())throw new Error(`Cannot overwrite non-directory '${e}' with directory '${t}'.`);if(!i.isDirectory()&&o.isDirectory())throw new Error(`Cannot overwrite directory '${e}' with non-directory '${t}'.`)}if(i.isDirectory()&&vt(t,e))throw new Error(Me(t,e,r));return{srcStat:i,destStat:o}}async function lr(t,e,r,n){let i=j.resolve(j.dirname(t)),o=j.resolve(j.dirname(r));if(o===i||o===j.parse(o).root)return;let s;try{s=await pe.stat(o,{bigint:!0})}catch(c){if(c.code==="ENOENT")return;throw c}if(ge(e,s))throw new Error(Me(t,r,n));return lr(t,e,o,n)}function ur(t,e,r,n){let i=j.resolve(j.dirname(t)),o=j.resolve(j.dirname(r));if(o===i||o===j.parse(o).root)return;let s;try{s=pe.statSync(o,{bigint:!0})}catch(c){if(c.code==="ENOENT")return;throw c}if(ge(e,s))throw new Error(Me(t,r,n));return ur(t,e,o,n)}function ge(t,e){return e.ino!==void 0&&e.dev!==void 0&&e.ino===t.ino&&e.dev===t.dev}function vt(t,e){let r=j.resolve(t).split(j.sep).filter(i=>i),n=j.resolve(e).split(j.sep).filter(i=>i);return r.every((i,o)=>n[o]===i)}function Me(t,e,r){return`Cannot ${r} '${t}' to a subdirectory of itself, '${e}'.`}fr.exports={checkPaths:cr(Xi),checkPathsSync:Gi,checkParentPaths:cr(lr),checkParentPathsSync:ur,isSrcSubdir:vt,areIdentical:ge}});var pr=g((qa,mr)=>{"use strict";async function Ji(t,e){let r=[];for await(let n of t)r.push(e(n).then(()=>null,i=>i??new Error("unknown error")));await Promise.all(r.map(n=>n.then(i=>{if(i!==null)throw i})))}mr.exports={asyncIteratorConcurrentProcess:Ji}});var gr=g((Ua,Sr)=>{"use strict";var V=$(),ve=require("path"),{mkdirs:Wi}=W(),{pathExists:Hi}=re(),{utimesMillis:Yi}=gt(),we=ce(),{asyncIteratorConcurrentProcess:Qi}=pr();async function Ki(t,e,r={}){typeof r=="function"&&(r={filter:r}),r.clobber="clobber"in r?!!r.clobber:!0,r.overwrite="overwrite"in r?!!r.overwrite:r.clobber,r.preserveTimestamps&&process.arch==="ia32"&&process.emitWarning(`Using the preserveTimestamps option in 32-bit node is not recommended;
4
4
 
5
- see https://github.com/jprichardson/node-fs-extra/issues/269`,"Warning","fs-extra-WARN0001");let{srcStat:n,destStat:i}=await we.checkPaths(t,e,"copy",r);if(await we.checkParentPaths(t,n,e,"copy"),!await yr(t,e,r))return;let s=ve.dirname(e);await Wi(s)||await Ji(s),await hr(i,t,e,r)}async function yr(t,e,r){return r.filter?r.filter(t,e):!0}async function hr(t,e,r,n){let o=await(n.dereference?V.stat:V.lstat)(e);if(o.isDirectory())return eo(o,t,e,r,n);if(o.isFile()||o.isCharacterDevice()||o.isBlockDevice())return Ki(o,t,e,r,n);if(o.isSymbolicLink())return to(t,e,r,n);throw o.isSocket()?new Error(`Cannot copy a socket file: ${e}`):o.isFIFO()?new Error(`Cannot copy a FIFO pipe: ${e}`):new Error(`Unknown file: ${e}`)}async function Ki(t,e,r,n,i){if(!e)return dr(t,r,n,i);if(i.overwrite)return await V.unlink(n),dr(t,r,n,i);if(i.errorOnExist)throw new Error(`'${n}' already exists`)}async function dr(t,e,r,n){if(await V.copyFile(e,r),n.preserveTimestamps){zi(t.mode)&&await Zi(r,t.mode);let i=await V.stat(e);await Hi(r,i.atime,i.mtime)}return V.chmod(r,t.mode)}function zi(t){return(t&128)===0}function Zi(t,e){return V.chmod(t,e|128)}async function eo(t,e,r,n,i){e||await V.mkdir(n),await Yi(await V.opendir(r),async o=>{let s=ve.join(r,o.name),c=ve.join(n,o.name);if(await yr(s,c,i)){let{destStat:f}=await we.checkPaths(s,c,"copy",i);await hr(f,s,c,i)}}),e||await V.chmod(n,t.mode)}async function to(t,e,r,n){let i=await V.readlink(e);if(n.dereference&&(i=ve.resolve(process.cwd(),i)),!t)return V.symlink(i,r);let o=null;try{o=await V.readlink(r)}catch(s){if(s.code==="EINVAL"||s.code==="UNKNOWN")return V.symlink(i,r);throw s}if(n.dereference&&(o=ve.resolve(process.cwd(),o)),we.isSrcSubdir(i,o))throw new Error(`Cannot copy '${i}' to a subdirectory of itself, '${o}'.`);if(we.isSrcSubdir(o,i))throw new Error(`Cannot overwrite '${o}' with '${i}'.`);return await V.unlink(r),V.symlink(i,r)}Sr.exports=Qi});var Pr=g((Ua,xr)=>{"use strict";var _=fe(),be=require("path"),ro=W().mkdirsSync,no=gt().utimesMillisSync,xe=ce();function io(t,e,r){typeof r=="function"&&(r={filter:r}),r=r||{},r.clobber="clobber"in r?!!r.clobber:!0,r.overwrite="overwrite"in r?!!r.overwrite:r.clobber,r.preserveTimestamps&&process.arch==="ia32"&&process.emitWarning(`Using the preserveTimestamps option in 32-bit node is not recommended;
5
+ see https://github.com/jprichardson/node-fs-extra/issues/269`,"Warning","fs-extra-WARN0001");let{srcStat:n,destStat:i}=await we.checkPaths(t,e,"copy",r);if(await we.checkParentPaths(t,n,e,"copy"),!await yr(t,e,r))return;let s=ve.dirname(e);await Hi(s)||await Wi(s),await hr(i,t,e,r)}async function yr(t,e,r){return r.filter?r.filter(t,e):!0}async function hr(t,e,r,n){let o=await(n.dereference?V.stat:V.lstat)(e);if(o.isDirectory())return to(o,t,e,r,n);if(o.isFile()||o.isCharacterDevice()||o.isBlockDevice())return zi(o,t,e,r,n);if(o.isSymbolicLink())return ro(t,e,r,n);throw o.isSocket()?new Error(`Cannot copy a socket file: ${e}`):o.isFIFO()?new Error(`Cannot copy a FIFO pipe: ${e}`):new Error(`Unknown file: ${e}`)}async function zi(t,e,r,n,i){if(!e)return dr(t,r,n,i);if(i.overwrite)return await V.unlink(n),dr(t,r,n,i);if(i.errorOnExist)throw new Error(`'${n}' already exists`)}async function dr(t,e,r,n){if(await V.copyFile(e,r),n.preserveTimestamps){Zi(t.mode)&&await eo(r,t.mode);let i=await V.stat(e);await Yi(r,i.atime,i.mtime)}return V.chmod(r,t.mode)}function Zi(t){return(t&128)===0}function eo(t,e){return V.chmod(t,e|128)}async function to(t,e,r,n,i){e||await V.mkdir(n),await Qi(await V.opendir(r),async o=>{let s=ve.join(r,o.name),c=ve.join(n,o.name);if(await yr(s,c,i)){let{destStat:f}=await we.checkPaths(s,c,"copy",i);await hr(f,s,c,i)}}),e||await V.chmod(n,t.mode)}async function ro(t,e,r,n){let i=await V.readlink(e);if(n.dereference&&(i=ve.resolve(process.cwd(),i)),!t)return V.symlink(i,r);let o=null;try{o=await V.readlink(r)}catch(s){if(s.code==="EINVAL"||s.code==="UNKNOWN")return V.symlink(i,r);throw s}if(n.dereference&&(o=ve.resolve(process.cwd(),o)),we.isSrcSubdir(i,o))throw new Error(`Cannot copy '${i}' to a subdirectory of itself, '${o}'.`);if(we.isSrcSubdir(o,i))throw new Error(`Cannot overwrite '${o}' with '${i}'.`);return await V.unlink(r),V.symlink(i,r)}Sr.exports=Ki});var Pr=g((Xa,xr)=>{"use strict";var _=fe(),be=require("path"),no=W().mkdirsSync,io=gt().utimesMillisSync,xe=ce();function oo(t,e,r){typeof r=="function"&&(r={filter:r}),r=r||{},r.clobber="clobber"in r?!!r.clobber:!0,r.overwrite="overwrite"in r?!!r.overwrite:r.clobber,r.preserveTimestamps&&process.arch==="ia32"&&process.emitWarning(`Using the preserveTimestamps option in 32-bit node is not recommended;
6
6
 
7
- see https://github.com/jprichardson/node-fs-extra/issues/269`,"Warning","fs-extra-WARN0002");let{srcStat:n,destStat:i}=xe.checkPathsSync(t,e,"copy",r);if(xe.checkParentPathsSync(t,n,e,"copy"),r.filter&&!r.filter(t,e))return;let o=be.dirname(e);return _.existsSync(o)||ro(o),vr(i,t,e,r)}function vr(t,e,r,n){let o=(n.dereference?_.statSync:_.lstatSync)(e);if(o.isDirectory())return fo(o,t,e,r,n);if(o.isFile()||o.isCharacterDevice()||o.isBlockDevice())return oo(o,t,e,r,n);if(o.isSymbolicLink())return yo(t,e,r,n);throw o.isSocket()?new Error(`Cannot copy a socket file: ${e}`):o.isFIFO()?new Error(`Cannot copy a FIFO pipe: ${e}`):new Error(`Unknown file: ${e}`)}function oo(t,e,r,n,i){return e?so(t,r,n,i):wr(t,r,n,i)}function so(t,e,r,n){if(n.overwrite)return _.unlinkSync(r),wr(t,e,r,n);if(n.errorOnExist)throw new Error(`'${r}' already exists`)}function wr(t,e,r,n){return _.copyFileSync(e,r),n.preserveTimestamps&&ao(t.mode,e,r),wt(r,t.mode)}function ao(t,e,r){return co(t)&&lo(r,t),uo(e,r)}function co(t){return(t&128)===0}function lo(t,e){return wt(t,e|128)}function wt(t,e){return _.chmodSync(t,e)}function uo(t,e){let r=_.statSync(t);return no(e,r.atime,r.mtime)}function fo(t,e,r,n,i){return e?br(r,n,i):mo(t.mode,r,n,i)}function mo(t,e,r,n){return _.mkdirSync(r),br(e,r,n),wt(r,t)}function br(t,e,r){let n=_.opendirSync(t);try{let i;for(;(i=n.readSync())!==null;)po(i.name,t,e,r)}finally{n.closeSync()}}function po(t,e,r,n){let i=be.join(e,t),o=be.join(r,t);if(n.filter&&!n.filter(i,o))return;let{destStat:s}=xe.checkPathsSync(i,o,"copy",n);return vr(s,i,o,n)}function yo(t,e,r,n){let i=_.readlinkSync(e);if(n.dereference&&(i=be.resolve(process.cwd(),i)),t){let o;try{o=_.readlinkSync(r)}catch(s){if(s.code==="EINVAL"||s.code==="UNKNOWN")return _.symlinkSync(i,r);throw s}if(n.dereference&&(o=be.resolve(process.cwd(),o)),xe.isSrcSubdir(i,o))throw new Error(`Cannot copy '${i}' to a subdirectory of itself, '${o}'.`);if(xe.isSrcSubdir(o,i))throw new Error(`Cannot overwrite '${o}' with '${i}'.`);return ho(i,r)}else return _.symlinkSync(i,r)}function ho(t,e){return _.unlinkSync(e),_.symlinkSync(t,e)}xr.exports=io});var Ne=g((Xa,Lr)=>{"use strict";var So=T().fromPromise;Lr.exports={copy:So(gr()),copySync:Pr()}});var Pe=g((Ga,kr)=>{"use strict";var Er=fe(),go=T().fromCallback;function vo(t,e){Er.rm(t,{recursive:!0,force:!0},e)}function wo(t){Er.rmSync(t,{recursive:!0,force:!0})}kr.exports={remove:go(vo),removeSync:wo}});var Mr=g((Ja,Fr)=>{"use strict";var bo=T().fromPromise,Cr=$(),Tr=require("path"),jr=W(),Ir=Pe(),Or=bo(async function(e){let r;try{r=await Cr.readdir(e)}catch{return jr.mkdirs(e)}return Promise.all(r.map(n=>Ir.remove(Tr.join(e,n))))});function Dr(t){let e;try{e=Cr.readdirSync(t)}catch{return jr.mkdirsSync(t)}e.forEach(r=>{r=Tr.join(t,r),Ir.removeSync(r)})}Fr.exports={emptyDirSync:Dr,emptydirSync:Dr,emptyDir:Or,emptydir:Or}});var Ar=g((Wa,Vr)=>{"use strict";var xo=T().fromPromise,Nr=require("path"),Z=$(),Rr=W();async function Po(t){let e;try{e=await Z.stat(t)}catch{}if(e&&e.isFile())return;let r=Nr.dirname(t),n=null;try{n=await Z.stat(r)}catch(i){if(i.code==="ENOENT"){await Rr.mkdirs(r),await Z.writeFile(t,"");return}else throw i}n.isDirectory()?await Z.writeFile(t,""):await Z.readdir(r)}function Lo(t){let e;try{e=Z.statSync(t)}catch{}if(e&&e.isFile())return;let r=Nr.dirname(t);try{Z.statSync(r).isDirectory()||Z.readdirSync(r)}catch(n){if(n&&n.code==="ENOENT")Rr.mkdirsSync(r);else throw n}Z.writeFileSync(t,"")}Vr.exports={createFile:xo(Po),createFileSync:Lo}});var Ur=g((Ha,qr)=>{"use strict";var Eo=T().fromPromise,$r=require("path"),ne=$(),_r=W(),{pathExists:ko}=re(),{areIdentical:Br}=ce();async function Oo(t,e){let r;try{r=await ne.lstat(e)}catch{}let n;try{n=await ne.lstat(t)}catch(s){throw s.message=s.message.replace("lstat","ensureLink"),s}if(r&&Br(n,r))return;let i=$r.dirname(e);await ko(i)||await _r.mkdirs(i),await ne.link(t,e)}function Do(t,e){let r;try{r=ne.lstatSync(e)}catch{}try{let o=ne.lstatSync(t);if(r&&Br(o,r))return}catch(o){throw o.message=o.message.replace("lstat","ensureLink"),o}let n=$r.dirname(e);return ne.existsSync(n)||_r.mkdirsSync(n),ne.linkSync(t,e)}qr.exports={createLink:Eo(Oo),createLinkSync:Do}});var Gr=g((Ya,Xr)=>{"use strict";var ie=require("path"),Le=$(),{pathExists:Co}=re(),To=T().fromPromise;async function jo(t,e){if(ie.isAbsolute(t)){try{await Le.lstat(t)}catch(o){throw o.message=o.message.replace("lstat","ensureSymlink"),o}return{toCwd:t,toDst:t}}let r=ie.dirname(e),n=ie.join(r,t);if(await Co(n))return{toCwd:n,toDst:t};try{await Le.lstat(t)}catch(o){throw o.message=o.message.replace("lstat","ensureSymlink"),o}return{toCwd:t,toDst:ie.relative(r,t)}}function Io(t,e){if(ie.isAbsolute(t)){if(!Le.existsSync(t))throw new Error("absolute srcpath does not exist");return{toCwd:t,toDst:t}}let r=ie.dirname(e),n=ie.join(r,t);if(Le.existsSync(n))return{toCwd:n,toDst:t};if(!Le.existsSync(t))throw new Error("relative srcpath does not exist");return{toCwd:t,toDst:ie.relative(r,t)}}Xr.exports={symlinkPaths:To(jo),symlinkPathsSync:Io}});var Hr=g((Qa,Wr)=>{"use strict";var Jr=$(),Fo=T().fromPromise;async function Mo(t,e){if(e)return e;let r;try{r=await Jr.lstat(t)}catch{return"file"}return r&&r.isDirectory()?"dir":"file"}function No(t,e){if(e)return e;let r;try{r=Jr.lstatSync(t)}catch{return"file"}return r&&r.isDirectory()?"dir":"file"}Wr.exports={symlinkType:Fo(Mo),symlinkTypeSync:No}});var zr=g((Ka,Kr)=>{"use strict";var Ro=T().fromPromise,Yr=require("path"),H=$(),{mkdirs:Vo,mkdirsSync:Ao}=W(),{symlinkPaths:$o,symlinkPathsSync:_o}=Gr(),{symlinkType:Bo,symlinkTypeSync:qo}=Hr(),{pathExists:Uo}=re(),{areIdentical:Qr}=ce();async function Xo(t,e,r){let n;try{n=await H.lstat(e)}catch{}if(n&&n.isSymbolicLink()){let[c,p]=await Promise.all([H.stat(t),H.stat(e)]);if(Qr(c,p))return}let i=await $o(t,e);t=i.toDst;let o=await Bo(i.toCwd,r),s=Yr.dirname(e);return await Uo(s)||await Vo(s),H.symlink(t,e,o)}function Go(t,e,r){let n;try{n=H.lstatSync(e)}catch{}if(n&&n.isSymbolicLink()){let c=H.statSync(t),p=H.statSync(e);if(Qr(c,p))return}let i=_o(t,e);t=i.toDst,r=qo(i.toCwd,r);let o=Yr.dirname(e);return H.existsSync(o)||Ao(o),H.symlinkSync(t,e,r)}Kr.exports={createSymlink:Ro(Xo),createSymlinkSync:Go}});var an=g((za,sn)=>{"use strict";var{createFile:Zr,createFileSync:en}=Ar(),{createLink:tn,createLinkSync:rn}=Ur(),{createSymlink:nn,createSymlinkSync:on}=zr();sn.exports={createFile:Zr,createFileSync:en,ensureFile:Zr,ensureFileSync:en,createLink:tn,createLinkSync:rn,ensureLink:tn,ensureLinkSync:rn,createSymlink:nn,createSymlinkSync:on,ensureSymlink:nn,ensureSymlinkSync:on}});var Re=g((Za,cn)=>{function Jo(t,{EOL:e=`
8
- `,finalEOL:r=!0,replacer:n=null,spaces:i}={}){let o=r?e:"";return JSON.stringify(t,n,i).replace(/\n/g,e)+o}function Wo(t){return Buffer.isBuffer(t)&&(t=t.toString("utf8")),t.replace(/^\uFEFF/,"")}cn.exports={stringify:Jo,stripBom:Wo}});var mn=g((ec,fn)=>{var de;try{de=fe()}catch{de=require("fs")}var Ve=T(),{stringify:ln,stripBom:un}=Re();async function Ho(t,e={}){typeof e=="string"&&(e={encoding:e});let r=e.fs||de,n="throws"in e?e.throws:!0,i=await Ve.fromCallback(r.readFile)(t,e);i=un(i);let o;try{o=JSON.parse(i,e?e.reviver:null)}catch(s){if(n)throw s.message=`${t}: ${s.message}`,s;return null}return o}var Yo=Ve.fromPromise(Ho);function Qo(t,e={}){typeof e=="string"&&(e={encoding:e});let r=e.fs||de,n="throws"in e?e.throws:!0;try{let i=r.readFileSync(t,e);return i=un(i),JSON.parse(i,e.reviver)}catch(i){if(n)throw i.message=`${t}: ${i.message}`,i;return null}}async function Ko(t,e,r={}){let n=r.fs||de,i=ln(e,r);await Ve.fromCallback(n.writeFile)(t,i,r)}var zo=Ve.fromPromise(Ko);function Zo(t,e,r={}){let n=r.fs||de,i=ln(e,r);return n.writeFileSync(t,i,r)}fn.exports={readFile:Yo,readFileSync:Qo,writeFile:zo,writeFileSync:Zo}});var dn=g((tc,pn)=>{"use strict";var Ae=mn();pn.exports={readJson:Ae.readFile,readJsonSync:Ae.readFileSync,writeJson:Ae.writeFile,writeJsonSync:Ae.writeFileSync}});var $e=g((rc,Sn)=>{"use strict";var es=T().fromPromise,bt=$(),yn=require("path"),hn=W(),ts=re().pathExists;async function rs(t,e,r="utf-8"){let n=yn.dirname(t);return await ts(n)||await hn.mkdirs(n),bt.writeFile(t,e,r)}function ns(t,...e){let r=yn.dirname(t);bt.existsSync(r)||hn.mkdirsSync(r),bt.writeFileSync(t,...e)}Sn.exports={outputFile:es(rs),outputFileSync:ns}});var vn=g((nc,gn)=>{"use strict";var{stringify:is}=Re(),{outputFile:os}=$e();async function ss(t,e,r={}){let n=is(e,r);await os(t,n,r)}gn.exports=ss});var bn=g((ic,wn)=>{"use strict";var{stringify:as}=Re(),{outputFileSync:cs}=$e();function ls(t,e,r){let n=as(e,r);cs(t,n,r)}wn.exports=ls});var Pn=g((oc,xn)=>{"use strict";var us=T().fromPromise,B=dn();B.outputJson=us(vn());B.outputJsonSync=bn();B.outputJSON=B.outputJson;B.outputJSONSync=B.outputJsonSync;B.writeJSON=B.writeJson;B.writeJSONSync=B.writeJsonSync;B.readJSON=B.readJson;B.readJSONSync=B.readJsonSync;xn.exports=B});var Dn=g((sc,On)=>{"use strict";var fs=$(),Ln=require("path"),{copy:ms}=Ne(),{remove:kn}=Pe(),{mkdirp:ps}=W(),{pathExists:ds}=re(),En=ce();async function ys(t,e,r={}){let n=r.overwrite||r.clobber||!1,{srcStat:i,isChangingCase:o=!1}=await En.checkPaths(t,e,"move",r);await En.checkParentPaths(t,i,e,"move");let s=Ln.dirname(e);return Ln.parse(s).root!==s&&await ps(s),hs(t,e,n,o)}async function hs(t,e,r,n){if(!n){if(r)await kn(e);else if(await ds(e))throw new Error("dest already exists.")}try{await fs.rename(t,e)}catch(i){if(i.code!=="EXDEV")throw i;await Ss(t,e,r)}}async function Ss(t,e,r){return await ms(t,e,{overwrite:r,errorOnExist:!0,preserveTimestamps:!0}),kn(t)}On.exports=ys});var Fn=g((ac,In)=>{"use strict";var Tn=fe(),Pt=require("path"),gs=Ne().copySync,jn=Pe().removeSync,vs=W().mkdirpSync,Cn=ce();function ws(t,e,r){r=r||{};let n=r.overwrite||r.clobber||!1,{srcStat:i,isChangingCase:o=!1}=Cn.checkPathsSync(t,e,"move",r);return Cn.checkParentPathsSync(t,i,e,"move"),bs(e)||vs(Pt.dirname(e)),xs(t,e,n,o)}function bs(t){let e=Pt.dirname(t);return Pt.parse(e).root===e}function xs(t,e,r,n){if(n)return xt(t,e,r);if(r)return jn(e),xt(t,e,r);if(Tn.existsSync(e))throw new Error("dest already exists.");return xt(t,e,r)}function xt(t,e,r){try{Tn.renameSync(t,e)}catch(n){if(n.code!=="EXDEV")throw n;return Ps(t,e,r)}}function Ps(t,e,r){return gs(t,e,{overwrite:r,errorOnExist:!0,preserveTimestamps:!0}),jn(t)}In.exports=ws});var Nn=g((cc,Mn)=>{"use strict";var Ls=T().fromPromise;Mn.exports={move:Ls(Dn()),moveSync:Fn()}});var Vn=g((lc,Rn)=>{"use strict";Rn.exports={...$(),...Ne(),...Mr(),...an(),...Pn(),...W(),...Nn(),...$e(),...re(),...Pe()}});var An=g(_e=>{"use strict";Object.defineProperty(_e,"__esModule",{value:!0});_e.EXTENSIONS_LANGUAGES=void 0;_e.EXTENSIONS_LANGUAGES={1:"Groff",2:"Groff",3:"Groff",4:"Groff",5:"Groff",6:"Groff",7:"Groff",8:"Groff",9:"Groff",abap:"ABAP",asc:"Public Key",ash:"AGS Script",ampl:"AMPL",mod:"XML",g4:"ANTLR",apib:"API Blueprint",apl:"APL",dyalog:"APL",asp:"ASP",asax:"ASP",ascx:"ASP",ashx:"ASP",asmx:"ASP",aspx:"ASP",axd:"ASP",dats:"ATS",hats:"ATS",sats:"ATS",as:"ActionScript",adb:"Ada",ada:"Ada",ads:"Ada",agda:"Agda",als:"Alloy",apacheconf:"ApacheConf",vhost:"Nginx",cls:"Visual Basic",applescript:"AppleScript",scpt:"AppleScript",arc:"Arc",ino:"Arduino",asciidoc:"AsciiDoc",adoc:"AsciiDoc",aj:"AspectJ",asm:"Assembly",a51:"Assembly",inc:"SourcePawn",nasm:"Assembly",aug:"Augeas",ahk:"AutoHotkey",ahkl:"AutoHotkey",au3:"AutoIt",awk:"Awk",auk:"Awk",gawk:"Awk",mawk:"Awk",nawk:"Awk",bat:"Batchfile",cmd:"Batchfile",befunge:"Befunge",bison:"Bison",bb:"BlitzBasic",decls:"BlitzBasic",bmx:"BlitzMax",bsv:"Bluespec",boo:"Boo",b:"Limbo",bf:"HyPhy",brs:"Brightscript",bro:"Bro",c:"C",cats:"C",h:"Objective-C",idc:"C",w:"C",cs:"Smalltalk",cake:"CoffeeScript",cshtml:"C#",csx:"C#",cpp:"C++","c++":"C++",cc:"C++",cp:"Component Pascal",cxx:"C++","h++":"C++",hh:"Hack",hpp:"C++",hxx:"C++",inl:"C++",ipp:"C++",tcc:"C++",tpp:"C++","c-objdump":"C-ObjDump",chs:"C2hs Haskell",clp:"CLIPS",cmake:"CMake","cmake.in":"CMake",cob:"COBOL",cbl:"COBOL",ccp:"COBOL",cobol:"COBOL",cpy:"COBOL",css:"CSS",csv:"CSV",capnp:"Cap'n Proto",mss:"CartoCSS",ceylon:"Ceylon",chpl:"Chapel",ch:"xBase",ck:"ChucK",cirru:"Cirru",clw:"Clarion",icl:"Clean",dcl:"Clean",click:"Click",clj:"Clojure",boot:"Clojure",cl2:"Clojure",cljc:"Clojure",cljs:"Clojure","cljs.hl":"Clojure",cljscm:"Clojure",cljx:"Clojure",hic:"Clojure",coffee:"CoffeeScript",_coffee:"CoffeeScript",cjsx:"CoffeeScript",cson:"CoffeeScript",iced:"CoffeeScript",cfm:"ColdFusion",cfml:"ColdFusion",cfc:"ColdFusion CFC",lisp:"NewLisp",asd:"Common Lisp",cl:"OpenCL",l:"PicoLisp",lsp:"NewLisp",ny:"Common Lisp",podsl:"Common Lisp",sexp:"Common Lisp",cps:"Component Pascal",coq:"Coq",v:"Verilog",cppobjdump:"Cpp-ObjDump","c++-objdump":"Cpp-ObjDump","c++objdump":"Cpp-ObjDump","cpp-objdump":"Cpp-ObjDump","cxx-objdump":"Cpp-ObjDump",creole:"Creole",cr:"Crystal",feature:"Cucumber",cu:"Cuda",cuh:"Cuda",cy:"Cycript",pyx:"Cython",pxd:"Cython",pxi:"Cython",d:"Makefile",di:"D","d-objdump":"D-ObjDump",com:"DIGITAL Command Language",dm:"DM",zone:"DNS Zone",arpa:"DNS Zone",darcspatch:"Darcs Patch",dpatch:"Darcs Patch",dart:"Dart",diff:"Diff",patch:"Diff",dockerfile:"Dockerfile",djs:"Dogescript",dylan:"Dylan",dyl:"Dylan",intr:"Dylan",lid:"Dylan",E:"E",ecl:"ECLiPSe",eclxml:"ECL",sch:"KiCad",brd:"KiCad",epj:"Ecere Projects",e:"Eiffel",ex:"Elixir",exs:"Elixir",elm:"Elm",el:"Emacs Lisp",emacs:"Emacs Lisp","emacs.desktop":"Emacs Lisp",em:"EmberScript",emberscript:"EmberScript",erl:"Erlang",es:"JavaScript",escript:"Erlang",hrl:"Erlang",xrl:"Erlang",yrl:"Erlang",fs:"GLSL",fsi:"F#",fsx:"F#",fx:"HLSL",flux:"FLUX",f90:"FORTRAN",f:"Forth",f03:"FORTRAN",f08:"FORTRAN",f77:"FORTRAN",f95:"FORTRAN",for:"Forth",fpp:"FORTRAN",factor:"Factor",fy:"Fancy",fancypack:"Fancy",fan:"Fantom","eam.fs":"Formatted",fth:"Forth","4th":"Forth",forth:"Forth",fr:"Text",frt:"Forth",ftl:"FreeMarker",g:"GAP",gco:"G-code",gcode:"G-code",gms:"GAMS",gap:"GAP",gd:"GDScript",gi:"GAP",tst:"Scilab",s:"GAS",ms:"MAXScript",glsl:"GLSL",fp:"GLSL",frag:"JavaScript",frg:"GLSL",fsh:"GLSL",fshader:"GLSL",geo:"GLSL",geom:"GLSL",glslv:"GLSL",gshader:"GLSL",shader:"GLSL",vert:"GLSL",vrx:"GLSL",vsh:"GLSL",vshader:"GLSL",gml:"XML",kid:"Genshi",ebuild:"Gentoo Ebuild",eclass:"Gentoo Eclass",po:"Gettext Catalog",pot:"Gettext Catalog",glf:"Glyph",gp:"Gnuplot",gnu:"Gnuplot",gnuplot:"Gnuplot",plot:"Gnuplot",plt:"Gnuplot",go:"Go",golo:"Golo",gs:"JavaScript",gst:"Gosu",gsx:"Gosu",vark:"Gosu",grace:"Grace",gradle:"Gradle",gf:"Grammatical Framework",graphql:"GraphQL",dot:"Graphviz (DOT)",gv:"Graphviz (DOT)",man:"Groff","1in":"Groff","1m":"Groff","1x":"Groff","3in":"Groff","3m":"Groff","3qt":"Groff","3x":"Groff",me:"Groff",n:"Nemerle",rno:"Groff",roff:"Groff",groovy:"Groovy",grt:"Groovy",gtpl:"Groovy",gvy:"Groovy",gsp:"Groovy Server Pages",hcl:"HCL",tf:"HCL",hlsl:"HLSL",fxh:"HLSL",hlsli:"HLSL",html:"HTML",htm:"HTML","html.hl":"HTML",st:"Smalltalk",xht:"HTML",xhtml:"HTML",mustache:"HTML+Django",jinja:"HTML+Django",eex:"HTML+EEX",erb:"HTML+ERB","erb.deface":"HTML+ERB",phtml:"HTML+PHP",http:"HTTP",php:"PHP",haml:"Haml","haml.deface":"Haml",handlebars:"Handlebars",hbs:"Handlebars",hb:"Harbour",hs:"Haskell",hsc:"Haskell",hx:"Haxe",hxsl:"Haxe",hy:"Hy",pro:"QMake",dlm:"IDL",ipf:"IGOR Pro",ini:"INI",cfg:"INI",prefs:"INI",properties:"INI",irclog:"IRC log",weechatlog:"IRC log",idr:"Idris",lidr:"Idris",ni:"Inform 7",i7x:"Inform 7",iss:"Inno Setup",io:"Io",ik:"Ioke",thy:"Isabelle",ijs:"J",flex:"JFlex",jflex:"JFlex",json:"JSON",geojson:"JSON",lock:"JSON",topojson:"JSON",json5:"JSON5",jsonld:"JSONLD",jq:"JSONiq",jsx:"JSX",jade:"Jade",j:"Objective-J",java:"Java",jsp:"Java Server Pages",js:"JavaScript",_js:"JavaScript",bones:"JavaScript",es6:"JavaScript",jake:"JavaScript",jsb:"JavaScript",jscad:"JavaScript",jsfl:"JavaScript",jsm:"JavaScript",jss:"JavaScript",njs:"JavaScript",pac:"JavaScript",sjs:"JavaScript",ssjs:"JavaScript","sublime-build":"JavaScript","sublime-commands":"JavaScript","sublime-completions":"JavaScript","sublime-keymap":"JavaScript","sublime-macro":"JavaScript","sublime-menu":"JavaScript","sublime-mousemap":"JavaScript","sublime-project":"JavaScript","sublime-settings":"JavaScript","sublime-theme":"JavaScript","sublime-workspace":"JavaScript",sublime_metrics:"JavaScript",sublime_session:"JavaScript",xsjs:"JavaScript",xsjslib:"JavaScript",jl:"Julia",ipynb:"Jupyter Notebook",krl:"KRL",kicad_pcb:"KiCad",kit:"Kit",kt:"Kotlin",ktm:"Kotlin",kts:"Kotlin",lfe:"LFE",ll:"LLVM",lol:"LOLCODE",lsl:"LSL",lslp:"LSL",lvproj:"LabVIEW",lasso:"Lasso",las:"Lasso",lasso8:"Lasso",lasso9:"Lasso",ldml:"Lasso",latte:"Latte",lean:"Lean",hlean:"Lean",less:"Less",lex:"Lex",ly:"LilyPond",ily:"LilyPond",m:"Objective-C",ld:"Linker Script",lds:"Linker Script",liquid:"Liquid",lagda:"Literate Agda",litcoffee:"Literate CoffeeScript",lhs:"Literate Haskell",ls:"LoomScript",_ls:"LiveScript",xm:"Logos",x:"Logos",xi:"Logos",lgt:"Logtalk",logtalk:"Logtalk",lookml:"LookML",lua:"Lua",fcgi:"Shell",nse:"Lua",pd_lua:"Lua",rbxs:"Lua",wlua:"Lua",mumps:"M",m4:"M4Sugar",mcr:"MAXScript",mtml:"MTML",muf:"MUF",mak:"Makefile",mk:"Makefile",mkfile:"Makefile",mako:"Mako",mao:"Mako",md:"Markdown",markdown:"Markdown",mkd:"Markdown",mkdn:"Markdown",mkdown:"Markdown",ron:"Markdown",mask:"Mask",mathematica:"Mathematica",cdf:"Mathematica",ma:"Mathematica",mt:"Mathematica",nb:"Text",nbp:"Mathematica",wl:"Mathematica",wlt:"Mathematica",matlab:"Matlab",maxpat:"Max",maxhelp:"Max",maxproj:"Max",mxt:"Max",pat:"Max",mediawiki:"MediaWiki",wiki:"MediaWiki",moo:"Moocode",metal:"Metal",minid:"MiniD",druby:"Mirah",duby:"Mirah",mir:"Mirah",mirah:"Mirah",mo:"Modelica",mms:"Module Management System",mmk:"Module Management System",monkey:"Monkey",moon:"MoonScript",myt:"Myghty",ncl:"Text",nl:"NewLisp",nsi:"NSIS",nsh:"NSIS",axs:"NetLinx",axi:"NetLinx","axs.erb":"NetLinx+ERB","axi.erb":"NetLinx+ERB",nlogo:"NetLogo",nginxconf:"Nginx",nim:"Nimrod",nimrod:"Nimrod",ninja:"Ninja",nit:"Nit",nix:"Nix",nu:"Nu",numpy:"NumPy",numpyw:"NumPy",numsc:"NumPy",ml:"OCaml",eliom:"OCaml",eliomi:"OCaml",ml4:"OCaml",mli:"OCaml",mll:"OCaml",mly:"OCaml",objdump:"ObjDump",mm:"XML",sj:"Objective-J",omgrofl:"Omgrofl",opa:"Opa",opal:"Opal",opencl:"OpenCL",p:"OpenEdge ABL",scad:"OpenSCAD",org:"Org",ox:"Ox",oxh:"Ox",oxo:"Ox",oxygene:"Oxygene",oz:"Oz",pwn:"PAWN",aw:"PHP",ctp:"PHP",php3:"PHP",php4:"PHP",php5:"PHP",phps:"PHP",phpt:"PHP",pls:"PLSQL",pck:"PLSQL",pkb:"PLSQL",pks:"PLSQL",plb:"PLSQL",plsql:"PLSQL",sql:"SQLPL",pov:"POV-Ray SDL",pan:"Pan",psc:"Papyrus",parrot:"Parrot",pasm:"Parrot Assembly",pir:"Parrot Internal Representation",pas:"Pascal",dfm:"Pascal",dpr:"Pascal",lpr:"Pascal",pp:"Puppet",pl:"Prolog",al:"Perl",cgi:"Shell",perl:"Perl",ph:"Perl",plx:"Perl",pm:"Perl6",pod:"Pod",psgi:"Perl",t:"Turing","6pl":"Perl6","6pm":"Perl6",nqp:"Perl6",p6:"Perl6",p6l:"Perl6",p6m:"Perl6",pl6:"Perl6",pm6:"Perl6",pkl:"Pickle",pig:"PigLatin",pike:"Pike",pmod:"Pike",pogo:"PogoScript",pony:"Pony",ps:"PostScript",eps:"PostScript",ps1:"PowerShell",psd1:"PowerShell",psm1:"PowerShell",pde:"Processing",prolog:"Prolog",yap:"Prolog",spin:"Propeller Spin",proto:"Protocol Buffer",pub:"Public Key",pd:"Pure Data",pb:"PureBasic",pbi:"PureBasic",purs:"PureScript",py:"Python",bzl:"Python",gyp:"Python",lmi:"Python",pyde:"Python",pyp:"Python",pyt:"Python",pyw:"Python",rpy:"Ren'Py",tac:"Python",wsgi:"Python",xpy:"Python",pytb:"Python traceback",qml:"QML",qbs:"QML",pri:"QMake",r:"Rebol",rd:"R",rsx:"R",raml:"RAML",rdoc:"RDoc",rbbas:"REALbasic",rbfrm:"REALbasic",rbmnu:"REALbasic",rbres:"REALbasic",rbtbar:"REALbasic",rbuistate:"REALbasic",rhtml:"RHTML",rmd:"RMarkdown",rkt:"Racket",rktd:"Racket",rktl:"Racket",scrbl:"Racket",rl:"Ragel in Ruby Host",raw:"Raw token data",reb:"Rebol",r2:"Rebol",r3:"Rebol",rebol:"Rebol",red:"Red",reds:"Red",cw:"Redcode",rs:"Rust",rsh:"RenderScript",robot:"RobotFramework",rg:"Rouge",rb:"Ruby",builder:"Ruby",gemspec:"Ruby",god:"Ruby",irbrc:"Ruby",jbuilder:"Ruby",mspec:"Ruby",pluginspec:"XML",podspec:"Ruby",rabl:"Ruby",rake:"Ruby",rbuild:"Ruby",rbw:"Ruby",rbx:"Ruby",ru:"Ruby",ruby:"Ruby",thor:"Ruby",watchr:"Ruby","rs.in":"Rust",sas:"SAS",scss:"SCSS",smt2:"SMT",smt:"SMT",sparql:"SPARQL",rq:"SPARQL",sqf:"SQF",hqf:"SQF",cql:"SQL",ddl:"SQL",prc:"SQL",tab:"SQL",udf:"SQL",viw:"SQL",db2:"SQLPL",ston:"STON",svg:"SVG",sage:"Sage",sagews:"Sage",sls:"Scheme",sass:"Sass",scala:"Scala",sbt:"Scala",sc:"SuperCollider",scaml:"Scaml",scm:"Scheme",sld:"Scheme",sps:"Scheme",ss:"Scheme",sci:"Scilab",sce:"Scilab",self:"Self",sh:"Shell",bash:"Shell",bats:"Shell",command:"Shell",ksh:"Shell","sh.in":"Shell",tmux:"Shell",tool:"Shell",zsh:"Shell","sh-session":"ShellSession",shen:"Shen",sl:"Slash",slim:"Slim",smali:"Smali",tpl:"Smarty",sp:"SourcePawn",sma:"SourcePawn",nut:"Squirrel",stan:"Stan",ML:"Standard ML",fun:"Standard ML",sig:"Standard ML",sml:"Standard ML",do:"Stata",ado:"Stata",doh:"Stata",ihlp:"Stata",mata:"Stata",matah:"Stata",sthlp:"Stata",styl:"Stylus",scd:"SuperCollider",swift:"Swift",sv:"SystemVerilog",svh:"SystemVerilog",vh:"SystemVerilog",toml:"TOML",txl:"TXL",tcl:"Tcl",adp:"Tcl",tm:"Tcl",tcsh:"Tcsh",csh:"Tcsh",tex:"TeX",aux:"TeX",bbx:"TeX",bib:"TeX",cbx:"TeX",dtx:"TeX",ins:"TeX",lbx:"TeX",ltx:"TeX",mkii:"TeX",mkiv:"TeX",mkvi:"TeX",sty:"TeX",toc:"TeX",tea:"Tea",txt:"Text",no:"Text",textile:"Textile",thrift:"Thrift",tu:"Turing",ttl:"Turtle",twig:"Twig",ts:"TypeScript",tsx:"TypeScript",upc:"Unified Parallel C",anim:"Unity3D Asset",asset:"Unity3D Asset",mat:"Unity3D Asset",meta:"Unity3D Asset",prefab:"Unity3D Asset",unity:"Unity3D Asset",uno:"Uno",uc:"UnrealScript",ur:"UrWeb",urs:"UrWeb",vcl:"VCL",vhdl:"VHDL",vhd:"VHDL",vhf:"VHDL",vhi:"VHDL",vho:"VHDL",vhs:"VHDL",vht:"VHDL",vhw:"VHDL",vala:"Vala",vapi:"Vala",veo:"Verilog",vim:"VimL",vb:"Visual Basic",bas:"Visual Basic",frm:"Visual Basic",frx:"Visual Basic",vba:"Visual Basic",vbhtml:"Visual Basic",vbs:"Visual Basic",volt:"Volt",vue:"Vue",owl:"Web Ontology Language",webidl:"WebIDL",x10:"X10",xc:"XC",xml:"XML",ant:"XML",axml:"XML",ccxml:"XML",clixml:"XML",cproject:"XML",csl:"XML",csproj:"XML",ct:"XML",dita:"XML",ditamap:"XML",ditaval:"XML","dll.config":"XML",dotsettings:"XML",filters:"XML",fsproj:"XML",fxml:"XML",glade:"XML",grxml:"XML",iml:"XML",ivy:"XML",jelly:"XML",jsproj:"XML",kml:"XML",launch:"XML",mdpolicy:"XML",mxml:"XML",nproj:"XML",nuspec:"XML",odd:"XML",osm:"XML",plist:"XML",props:"XML",ps1xml:"XML",psc1:"XML",pt:"XML",rdf:"XML",rss:"XML",scxml:"XML",srdf:"XML",storyboard:"XML",stTheme:"XML","sublime-snippet":"XML",targets:"XML",tmCommand:"XML",tml:"XML",tmLanguage:"XML",tmPreferences:"XML",tmSnippet:"XML",tmTheme:"XML",ui:"XML",urdf:"XML",ux:"XML",vbproj:"XML",vcxproj:"XML",vssettings:"XML",vxml:"XML",wsdl:"XML",wsf:"XML",wxi:"XML",wxl:"XML",wxs:"XML",x3d:"XML",xacro:"XML",xaml:"XML",xib:"XML",xlf:"XML",xliff:"XML",xmi:"XML","xml.dist":"XML",xproj:"XML",xsd:"XML",xul:"XML",zcml:"XML","xsp-config":"XPages","xsp.metadata":"XPages",xpl:"XProc",xproc:"XProc",xquery:"XQuery",xq:"XQuery",xql:"XQuery",xqm:"XQuery",xqy:"XQuery",xs:"XS",xslt:"XSLT",xsl:"XSLT",xojo_code:"Xojo",xojo_menu:"Xojo",xojo_report:"Xojo",xojo_script:"Xojo",xojo_toolbar:"Xojo",xojo_window:"Xojo",xtend:"Xtend",yml:"YAML",reek:"YAML",rviz:"YAML","sublime-syntax":"YAML",syntax:"YAML",yaml:"YAML","yaml-tmlanguage":"YAML",yang:"YANG",y:"Yacc",yacc:"Yacc",yy:"Yacc",zep:"Zephir",zimpl:"Zimpl",zmpl:"Zimpl",zpl:"Zimpl",desktop:"desktop","desktop.in":"desktop",ec:"eC",eh:"eC",edn:"edn",fish:"fish",mu:"mupad",nc:"nesC",ooc:"ooc",rst:"reStructuredText",rest:"reStructuredText","rest.txt":"reStructuredText","rst.txt":"reStructuredText",wisp:"wisp",prg:"xBase",prw:"xBase"}});var Ee=g(Lt=>{"use strict";Object.defineProperty(Lt,"__esModule",{value:!0});Lt.setOptionValues=Es;function Es(t,e){for(let r of Object.keys(t))t[r]!==void 0&&(e[r]=t[r]);return e}});var _n=g(Y=>{"use strict";var ks=Y&&Y.__createBinding||(Object.create?(function(t,e,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,i)}):(function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]})),Os=Y&&Y.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),Ds=Y&&Y.__importStar||(function(){var t=function(e){return t=Object.getOwnPropertyNames||function(r){var n=[];for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(n[n.length]=i);return n},t(e)};return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var n=t(e),i=0;i<n.length;i++)n[i]!=="default"&&ks(r,e,n[i]);return Os(r,e),r}})();Object.defineProperty(Y,"__esModule",{value:!0});Y.SarifBuilder=void 0;var $n=Ds(Vn()),Cs=An(),Ts=Ee(),Et=class{constructor(e={}){this.log={$schema:"http://json.schemastore.org/sarif-2.1.0.json",version:"2.1.0",runs:[]},(0,Ts.setOptionValues)(e,this.log)}addRun(e){this.log.runs.push(e.run)}generateSarifFileSync(e){let r=this.buildSarifJsonString();$n.writeFileSync(e,r,"utf8")}async generateSarifFile(e){let r=this.buildSarifJsonString();await $n.writeFile(e,r,"utf8")}buildSarifOutput(){return this.log.runs=this.log.runs.map(e=>this.completeRunFields(e)),this.log}buildSarifJsonString(e={indent:!1}){this.buildSarifOutput();let r=e.indent?JSON.stringify(this.log,null,2):JSON.stringify(this.log);if(r.includes("SARIF_BUILDER_INVALID"))throw new Error("Your SARIF log is invalid, please solve SARIF_BUILDER_INVALID messages");return r}completeRunFields(e){var r,n,i,o,s,c;e.artifacts=e.artifacts||[];let p=new Set(e.artifacts.map(m=>{var u;return(u=m?.location)===null||u===void 0?void 0:u.uri}).filter(Boolean));for(let m of e.results||[])for(let u of m.locations||[]){let l=(n=(r=u?.physicalLocation)===null||r===void 0?void 0:r.artifactLocation)===null||n===void 0?void 0:n.uri;if(l&&!p.has(l)){let d=l.lastIndexOf("."),y=d!==-1?l.slice(d+1):"",S=Cs.EXTENSIONS_LANGUAGES[y]||"unknown";e.artifacts.push({sourceLanguage:S,location:{uri:l}}),p.add(l)}}let f=new Map;e.artifacts.forEach((m,u)=>{var l;let d=(l=m?.location)===null||l===void 0?void 0:l.uri;d&&f.set(d,u)});let a=new Map;(((o=(i=e?.tool)===null||i===void 0?void 0:i.driver)===null||o===void 0?void 0:o.rules)||[]).forEach((m,u)=>{a.set(m.id,u)});for(let m of e.results||[]){if(m.ruleId){let u=a.get(m.ruleId);u!==void 0&&(m.ruleIndex=u)}if(m.locations)for(let u of m.locations){let l=(c=(s=u?.physicalLocation)===null||s===void 0?void 0:s.artifactLocation)===null||c===void 0?void 0:c.uri;if(l){let d=f.get(l);d!==void 0&&(u.physicalLocation.artifactLocation.index=d)}}}return e}};Y.SarifBuilder=Et});var Bn=g(Be=>{"use strict";Object.defineProperty(Be,"__esModule",{value:!0});Be.SarifResultBuilder=void 0;var js=Ee(),kt=class{constructor(e={}){this.result={level:"error",message:{},ruleId:"SARIF_BUILDER_INVALID: Please send the rule Id ruleId property, or call setRuleId(ruleId)"},(0,js.setOptionValues)(e,this.result)}initSimple(e){if(this.setLevel(e.level),this.setMessageText(e.messageText),this.setRuleId(e.ruleId),e.fileUri&&this.setLocationArtifactUri({uri:e.fileUri}),e.startLine!==null&&e.startLine!==void 0){let r={startLine:e.startLine,startColumn:e.startColumn||1,endLine:e.endLine||e.startLine,endColumn:e.endColumn||1};if(e.startLine===0||e.startColumn===0||e.endLine===0||e.endColumn===0)throw new Error("Region limit can not be 0 (minimum line 1 or column 1) in "+JSON.stringify(e));this.setLocationRegion(r)}return this}setLevel(e){this.result.level=e}setMessageText(e){this.result.message.text=e}setRuleId(e){this.result.ruleId=e}setLocationRegion(e){this.manageInitPhysicalLocation(),this.result.locations[0].physicalLocation.region=e}setLocationArtifactUri(e){this.manageInitPhysicalLocation(),this.result.locations[0].physicalLocation.artifactLocation=e}manageInitLocation(){var e,r;!((r=(e=this.result)===null||e===void 0?void 0:e.locations)===null||r===void 0)&&r.length||(this.result.locations=[{}])}manageInitPhysicalLocation(){this.manageInitLocation(),!this.result.locations[0].physicalLocation&&(this.result.locations[0].physicalLocation={})}};Be.SarifResultBuilder=kt});var qn=g(qe=>{"use strict";Object.defineProperty(qe,"__esModule",{value:!0});qe.SarifRuleBuilder=void 0;var Is=Ee(),Ot=class{constructor(e={}){this.rule={id:"SARIF_BUILDER_INVALID: Please send the rule identifier in id property, or call setRuleId(ruleId)",shortDescription:{text:"SARIF_BUILDER_INVALID: Please send the rule text in shortDescription.text property, or call setShortDescriptionText(text)"}},(0,Is.setOptionValues)(e,this.rule)}initSimple(e){return this.setRuleId(e.ruleId),e.shortDescriptionText&&this.setShortDescriptionText(e.shortDescriptionText),e.fullDescriptionText&&this.setFullDescriptionText(e.fullDescriptionText),e.helpUri&&this.setHelpUri(e.helpUri),this}setRuleId(e){this.rule.id=e}setShortDescriptionText(e){this.rule.shortDescription.text=e}setFullDescriptionText(e){this.rule.fullDescription=this.rule.fullDescription||{text:""},this.rule.fullDescription.text=e}setHelpUri(e){this.rule.helpUri=e}};qe.SarifRuleBuilder=Ot});var Un=g(Ue=>{"use strict";Object.defineProperty(Ue,"__esModule",{value:!0});Ue.SarifRunBuilder=void 0;var Fs=Ee(),Dt=class{constructor(e={}){this.run={tool:{driver:{name:process.env.npm_package_name||"SARIF_BUILDER_INVALID: Please send the tool name in tool.driver.name property, or call setToolName(name)",rules:[]}},results:[]},(0,Fs.setOptionValues)(e,this.run)}initSimple(e){return this.setToolDriverName(e.toolDriverName),this.setToolDriverVersion(e.toolDriverVersion),e.url&&this.setToolDriverUri(e.url),this}addRule(e){this.run.tool.driver.rules.push(e.rule)}addResult(e){this.run.results.push(e.result)}setToolDriverName(e){this.run.tool.driver.name=e}setToolDriverVersion(e){this.run.tool.driver.version=e}setToolDriverUri(e){this.run.tool.driver.informationUri=e}};Ue.SarifRunBuilder=Dt});var Xn=g(Q=>{"use strict";Object.defineProperty(Q,"__esModule",{value:!0});Q.SarifResultBuilder=Q.SarifRuleBuilder=Q.SarifRunBuilder=Q.SarifBuilder=void 0;var Ms=_n();Object.defineProperty(Q,"SarifBuilder",{enumerable:!0,get:function(){return Ms.SarifBuilder}});var Ns=Bn();Object.defineProperty(Q,"SarifResultBuilder",{enumerable:!0,get:function(){return Ns.SarifResultBuilder}});var Rs=qn();Object.defineProperty(Q,"SarifRuleBuilder",{enumerable:!0,get:function(){return Rs.SarifRuleBuilder}});var Vs=Un();Object.defineProperty(Q,"SarifRunBuilder",{enumerable:!0,get:function(){return Vs.SarifRunBuilder}})});var Jn=g((Sc,Gn)=>{"use strict";var As=/["'&<>]/;Gn.exports=$s;function $s(t){var e=""+t,r=As.exec(e);if(!r)return e;var n,i="",o=0,s=0;for(o=r.index;o<e.length;o++){switch(e.charCodeAt(o)){case 34:n="&quot;";break;case 38:n="&amp;";break;case 39:n="&#39;";break;case 60:n="&lt;";break;case 62:n="&gt;";break;default:continue}s!==o&&(i+=e.substring(s,o)),s=o+1,i+=n}return s!==o?i+e.substring(s,o):i}});var tt=require("zx"),le=require("fs/promises");var U={UNKNOWN:0,LOW:1,MEDIUM:2,HIGH:3,CRITICAL:4};var De=class{constructor(e){this.depProvider=e}depProvider;allById=new Map;getAllVulnIds(){return new Set(this.allById.keys())}getAllVulnerabilitiesSortedBySeverity(){let e=Array.from(this.allById.values());return e.sort((r,n)=>{let i=_t(r.severity,n.severity);return i===0?r.id.localeCompare(n.id):-i}),e}addVulnerability(e,r){let n=e.id,i=this.allById,o=e;if(!i.has(n))i.set(n,e),o=e;else{let s=i.get(n);s.title=s.title||e.title,s.severity=gi(s.severity,e.severity),s.scannerSeverity[r]=e.severity,s.detectedBy=it(s.detectedBy,r),s.components=it(s.components,e.components[0]),s.refs=it(s.refs,e.refs[0]),o=s}o.componentTree=o.components?.map(s=>this.depProvider.findUsagesOfComponent(s))}enhanceWithVexData(e){let r=[];for(let n of this.allById.values()){let i=e.newestVulnerabilityStatement(n.id);if(!i){r.push({id:n.id,severity:n.severity,title:n.title,description:n.description,components:n.components??[],componentTree:n.componentTree??[],refs:n.refs});continue}n.vexStatement=i}return{unmatchedVulnerabilities:r}}};function gi(t,e){return _t(t,e)>0?t:e}function _t(t,e){return U[t]-U[e]}function it(t,e){return e?Array.from(new Set([...t,e]).values()):t}var Ce=Oe(require("path"));var q=require("fs/promises"),ot=require("path");async function X(t){try{return await se(t)?JSON.parse(await(0,q.readFile)(t,{encoding:"utf-8"})):void 0}catch(e){throw new Error(`Error reading JSON file ${t}: ${e}`,{cause:e})}}async function st(t,e){let r=JSON.stringify(e,null,4)+`
9
- `,n=await vi(t,r);await(0,q.writeFile)(t,n,{encoding:"utf-8"})}function J(t){return t?t.replace(/\?.*$/,""):""}async function se(t){try{return await(0,q.access)(t,q.constants.F_OK),!0}catch{return!1}}async function at(t){let e=(0,ot.resolve)(t),r=await(0,q.readdir)(e,{withFileTypes:!0});for(let n of r){let i=(0,ot.resolve)(n.parentPath,n.name);n.isDirectory()?await at(i):await(0,q.rm)(i)}await(0,q.rmdir)(e)}async function Se(t,e){let r=e?.user&&e?.pw?{Authorization:`Basic ${Buffer.from(`${e.user}:${e.pw}`).toString("base64")}`}:{},n=await fetch(t,{headers:r});if(!n.ok){let i="";try{i=await n.text()}catch(o){i=`${o}`}throw new Error(`Failed to fetch: ${t}: ${n.status} - ${n.statusText}: ${i}`)}return n}async function vi(t,e){let r=await bi();if(!r)return e;let n=await r.resolveConfig(t);return n?await r.format(e,{...n,filepath:t}):e}var wi;function bi(){return wi??=import("prettier").catch(()=>{})}var ct;async function lt(t){if(ct)return ct;let e="https://repository.conterra.de/repository/maven-mirror-ct",r=ee(t.workingDir,"input/vex"),n=ee(t.workingDir,"output"),i=ee(t.workingDir,"cache"),o=["grype","trivy","ossindex"],s=ee(t.workingDir,"vuln-scan-conf.json"),c=await X(s);if(!c)throw new Error(`Missing project configuration file '${s}'`);let p=c.findNoLongerDetectedVulnerabilitiesOnlyForSnapshots??!1;return ct={projectConfigFileLocation:s,onNewVulnerabilities:c.onNewVulnerabilities??(c.failOnNewVulnerabilities?"fail":"warn"),onNoLongerDetectedVulnerabilities:c.onNoLongerDetectedVulnerabilities??"ignore",reportNoLongerDetectedVulnerabilities:c.reportNoLongerDetectedVulnerabilities??!0,consoleReport:c.consoleReport||"BY_PROJECT_DETAILED",createSubDirsForProject:c.createSubDirsForProject??!0,mavenRepo:c.mavenRepo??e,vexUrls:c.vexUrls??[],vexDir:ee(t.workingDir,c.vexDir)??r,outDir:ee(t.workingDir,c.outDir)??n,cacheDir:ee(t.workingDir,c.cacheDir)??i,scanners:(c.scanners??o).map(f=>{if(typeof f!="string")throw new Error(`Invalid scanner name '${f}' in configuration file '${s}'`);let a=f.split("@");if(a.length>2)throw new Error(`Invalid scanner name '${f}' in configuration file '${s}'`);let m=a[0],u=a[1]??"";return{name:m,version:u}}),projects:(c.projects??[]).map(f=>{let a=f;if(!a.name)throw new Error("Project name is missing on entry:"+JSON.stringify(a));if(!a.version)throw new Error("Project version is missing on entry:"+JSON.stringify(a));if(!a.purl)throw new Error("Project purl is missing on entry:"+JSON.stringify(a));return a.purlAliases||(a.purlAliases=[]),a.enabled==null&&(a.enabled=!0),a.silent==null&&(a.silent=!1),a.minimumSeverity||(a.minimumSeverity="UNKNOWN"),a.sbomFile?{...a,sbomFile:ee(t.workingDir,a.sbomFile)}:(a.detectNoLongerUsedVulnerabilities=p?a.purl.endsWith("-SNAPSHOT"):!0,f)})}}function ee(t,e){if(e)return Ce.default.isAbsolute(e)?e:(0,Ce.resolve)(t,e)}var oe=Oe(Xn());var Yn=Oe(Jn());function Ge(t,e=""){return Wn(t,e,new Set,new Set)}function Wn(t,e="",r,n){let i=`${e}- ${t.purl}`;if(r.has(t.purl))return i+=" (cycle detected)",i;if(n.has(t.purl))return i+=" (deduplicated)",i;n.add(t.purl),r.add(t.purl);let o=r.size===1;for(let s of t.usedBy){let c=Wn(s,e+(o?" ":" "),r,n);c!==""&&(i+=`
10
- `,i+=c)}return r.delete(t.purl),i}var Xe=class t{constructor(e){this.sbom=e;for(let r of this.sbom.components||[]){let n={purl:J(r.purl),usedBy:[]};n.purl&&(this.purlToComponent.has(n.purl)||(this.purlToComponent.set(n.purl,n),this.sbomRefToComponent.set(r["bom-ref"],n)))}for(let r of this.sbom.dependencies||[]){let n=this.sbomRefToComponent.get(r.ref);if(n)for(let i of r.dependsOn||[]){let o=this.sbomRefToComponent.get(i);o&&!o.usedBy.includes(n)&&o.usedBy.push(n)}}}sbom;static createForSbom(e){return new t(e)}sbomRefToComponent=new Map;purlToComponent=new Map;findUsagesOfComponent(e){if(!this.sbom)return{purl:e,usedBy:[]};let r=this.purlToComponent.get(e);return r?Hn(r):{purl:e,usedBy:[]}}};function Hn(t,e=new Set){let r={purl:t.purl,usedBy:[]};if(e.has(t.purl))return r;e.add(t.purl);for(let n of t.usedBy){let i=Hn(n,new Set(e));r.usedBy.push(i)}return r}function Qn(t,e){let r=new oe.SarifRunBuilder().initSimple({toolDriverName:`${e.name}@${e.version}`,toolDriverVersion:"0.0.1"}),n=new Date().toISOString().split("T")[0];r.run.tool.driver.fullDescription={text:`Security Scan from ${n}`},r.run.tool.driver.properties={"microsoft/qualityDomain":`Security Scan from ${n}`};for(let o of t){let s=Bs(o.severity),c=o.id,p=_s(o.refs),f=new oe.SarifRuleBuilder().initSimple({ruleId:c,shortDescriptionText:o.title,fullDescriptionText:o.description,helpUri:p}),a=o.vexStatement,m,u="new",l="";a?(m=[{kind:"external",status:"accepted"}],u="updated",l=`--- INVESTIGATED (${a.status}) --- `,a.status==="under_investigation"&&(m[0].status="underReview",l="--- UNDER INVESTIGATION --- ")):U[e.minimumSeverity]>U[o.severity]?(m=[{kind:"external",status:"accepted"}],u="updated",l=`--- BELOW MINIMUM SEVERITY '${e.minimumSeverity}' ---`):e.silent&&(m=[{kind:"external",status:"accepted"}],u="updated",l="--- PROJECT SILENT ---"),Object.assign(f.rule,{name:`${l}[${o.severity}] - ${o.title.replace(`[${c}]`,"")}`,messageStrings:{default:{text:o.description,markdown:qs(o,p,l)}},properties:{severity:o.severity,scanners:o.scannerSeverity,links:o.refs,tags:["cve","vulnerability","security",`severity_${o.severity.toLowerCase()}`]}}),r.addRule(f);for(let d of o.components){let y=new oe.SarifResultBuilder().initSimple({ruleId:c,level:s,messageText:`${c} [${o.severity}] - ${d}`});y.result.message.id="default",y.result.locations=[{logicalLocations:[{fullyQualifiedName:d}]}],y.result.baselineState=u,y.result.suppressions=m,r.addResult(y)}}let i=new oe.SarifBuilder;return i.addRun(r),i.buildSarifOutput()}function _s(t){for(let e of t)if(e.startsWith("https://nvd.nist.gov"))return e;return t[0]}function Bs(t){switch(t){case"CRITICAL":return"error";case"HIGH":return"error";case"MEDIUM":return"warning";case"LOW":return"warning";default:return"note"}}function qs(t,e,r){let n=t.vexStatement,i=n?`
7
+ see https://github.com/jprichardson/node-fs-extra/issues/269`,"Warning","fs-extra-WARN0002");let{srcStat:n,destStat:i}=xe.checkPathsSync(t,e,"copy",r);if(xe.checkParentPathsSync(t,n,e,"copy"),r.filter&&!r.filter(t,e))return;let o=be.dirname(e);return _.existsSync(o)||no(o),vr(i,t,e,r)}function vr(t,e,r,n){let o=(n.dereference?_.statSync:_.lstatSync)(e);if(o.isDirectory())return mo(o,t,e,r,n);if(o.isFile()||o.isCharacterDevice()||o.isBlockDevice())return so(o,t,e,r,n);if(o.isSymbolicLink())return ho(t,e,r,n);throw o.isSocket()?new Error(`Cannot copy a socket file: ${e}`):o.isFIFO()?new Error(`Cannot copy a FIFO pipe: ${e}`):new Error(`Unknown file: ${e}`)}function so(t,e,r,n,i){return e?ao(t,r,n,i):wr(t,r,n,i)}function ao(t,e,r,n){if(n.overwrite)return _.unlinkSync(r),wr(t,e,r,n);if(n.errorOnExist)throw new Error(`'${r}' already exists`)}function wr(t,e,r,n){return _.copyFileSync(e,r),n.preserveTimestamps&&co(t.mode,e,r),wt(r,t.mode)}function co(t,e,r){return lo(t)&&uo(r,t),fo(e,r)}function lo(t){return(t&128)===0}function uo(t,e){return wt(t,e|128)}function wt(t,e){return _.chmodSync(t,e)}function fo(t,e){let r=_.statSync(t);return io(e,r.atime,r.mtime)}function mo(t,e,r,n,i){return e?br(r,n,i):po(t.mode,r,n,i)}function po(t,e,r,n){return _.mkdirSync(r),br(e,r,n),wt(r,t)}function br(t,e,r){let n=_.opendirSync(t);try{let i;for(;(i=n.readSync())!==null;)yo(i.name,t,e,r)}finally{n.closeSync()}}function yo(t,e,r,n){let i=be.join(e,t),o=be.join(r,t);if(n.filter&&!n.filter(i,o))return;let{destStat:s}=xe.checkPathsSync(i,o,"copy",n);return vr(s,i,o,n)}function ho(t,e,r,n){let i=_.readlinkSync(e);if(n.dereference&&(i=be.resolve(process.cwd(),i)),t){let o;try{o=_.readlinkSync(r)}catch(s){if(s.code==="EINVAL"||s.code==="UNKNOWN")return _.symlinkSync(i,r);throw s}if(n.dereference&&(o=be.resolve(process.cwd(),o)),xe.isSrcSubdir(i,o))throw new Error(`Cannot copy '${i}' to a subdirectory of itself, '${o}'.`);if(xe.isSrcSubdir(o,i))throw new Error(`Cannot overwrite '${o}' with '${i}'.`);return So(i,r)}else return _.symlinkSync(i,r)}function So(t,e){return _.unlinkSync(e),_.symlinkSync(t,e)}xr.exports=oo});var Ne=g((Ga,Lr)=>{"use strict";var go=T().fromPromise;Lr.exports={copy:go(gr()),copySync:Pr()}});var Pe=g((Ja,kr)=>{"use strict";var Er=fe(),vo=T().fromCallback;function wo(t,e){Er.rm(t,{recursive:!0,force:!0},e)}function bo(t){Er.rmSync(t,{recursive:!0,force:!0})}kr.exports={remove:vo(wo),removeSync:bo}});var Mr=g((Wa,Fr)=>{"use strict";var xo=T().fromPromise,Cr=$(),Tr=require("path"),jr=W(),Ir=Pe(),Or=xo(async function(e){let r;try{r=await Cr.readdir(e)}catch{return jr.mkdirs(e)}return Promise.all(r.map(n=>Ir.remove(Tr.join(e,n))))});function Dr(t){let e;try{e=Cr.readdirSync(t)}catch{return jr.mkdirsSync(t)}e.forEach(r=>{r=Tr.join(t,r),Ir.removeSync(r)})}Fr.exports={emptyDirSync:Dr,emptydirSync:Dr,emptyDir:Or,emptydir:Or}});var Ar=g((Ha,Vr)=>{"use strict";var Po=T().fromPromise,Nr=require("path"),Z=$(),Rr=W();async function Lo(t){let e;try{e=await Z.stat(t)}catch{}if(e&&e.isFile())return;let r=Nr.dirname(t),n=null;try{n=await Z.stat(r)}catch(i){if(i.code==="ENOENT"){await Rr.mkdirs(r),await Z.writeFile(t,"");return}else throw i}n.isDirectory()?await Z.writeFile(t,""):await Z.readdir(r)}function Eo(t){let e;try{e=Z.statSync(t)}catch{}if(e&&e.isFile())return;let r=Nr.dirname(t);try{Z.statSync(r).isDirectory()||Z.readdirSync(r)}catch(n){if(n&&n.code==="ENOENT")Rr.mkdirsSync(r);else throw n}Z.writeFileSync(t,"")}Vr.exports={createFile:Po(Lo),createFileSync:Eo}});var Ur=g((Ya,qr)=>{"use strict";var ko=T().fromPromise,$r=require("path"),ne=$(),_r=W(),{pathExists:Oo}=re(),{areIdentical:Br}=ce();async function Do(t,e){let r;try{r=await ne.lstat(e)}catch{}let n;try{n=await ne.lstat(t)}catch(s){throw s.message=s.message.replace("lstat","ensureLink"),s}if(r&&Br(n,r))return;let i=$r.dirname(e);await Oo(i)||await _r.mkdirs(i),await ne.link(t,e)}function Co(t,e){let r;try{r=ne.lstatSync(e)}catch{}try{let o=ne.lstatSync(t);if(r&&Br(o,r))return}catch(o){throw o.message=o.message.replace("lstat","ensureLink"),o}let n=$r.dirname(e);return ne.existsSync(n)||_r.mkdirsSync(n),ne.linkSync(t,e)}qr.exports={createLink:ko(Do),createLinkSync:Co}});var Gr=g((Qa,Xr)=>{"use strict";var ie=require("path"),Le=$(),{pathExists:To}=re(),jo=T().fromPromise;async function Io(t,e){if(ie.isAbsolute(t)){try{await Le.lstat(t)}catch(o){throw o.message=o.message.replace("lstat","ensureSymlink"),o}return{toCwd:t,toDst:t}}let r=ie.dirname(e),n=ie.join(r,t);if(await To(n))return{toCwd:n,toDst:t};try{await Le.lstat(t)}catch(o){throw o.message=o.message.replace("lstat","ensureSymlink"),o}return{toCwd:t,toDst:ie.relative(r,t)}}function Fo(t,e){if(ie.isAbsolute(t)){if(!Le.existsSync(t))throw new Error("absolute srcpath does not exist");return{toCwd:t,toDst:t}}let r=ie.dirname(e),n=ie.join(r,t);if(Le.existsSync(n))return{toCwd:n,toDst:t};if(!Le.existsSync(t))throw new Error("relative srcpath does not exist");return{toCwd:t,toDst:ie.relative(r,t)}}Xr.exports={symlinkPaths:jo(Io),symlinkPathsSync:Fo}});var Hr=g((Ka,Wr)=>{"use strict";var Jr=$(),Mo=T().fromPromise;async function No(t,e){if(e)return e;let r;try{r=await Jr.lstat(t)}catch{return"file"}return r&&r.isDirectory()?"dir":"file"}function Ro(t,e){if(e)return e;let r;try{r=Jr.lstatSync(t)}catch{return"file"}return r&&r.isDirectory()?"dir":"file"}Wr.exports={symlinkType:Mo(No),symlinkTypeSync:Ro}});var zr=g((za,Kr)=>{"use strict";var Vo=T().fromPromise,Yr=require("path"),H=$(),{mkdirs:Ao,mkdirsSync:$o}=W(),{symlinkPaths:_o,symlinkPathsSync:Bo}=Gr(),{symlinkType:qo,symlinkTypeSync:Uo}=Hr(),{pathExists:Xo}=re(),{areIdentical:Qr}=ce();async function Go(t,e,r){let n;try{n=await H.lstat(e)}catch{}if(n&&n.isSymbolicLink()){let[c,p]=await Promise.all([H.stat(t),H.stat(e)]);if(Qr(c,p))return}let i=await _o(t,e);t=i.toDst;let o=await qo(i.toCwd,r),s=Yr.dirname(e);return await Xo(s)||await Ao(s),H.symlink(t,e,o)}function Jo(t,e,r){let n;try{n=H.lstatSync(e)}catch{}if(n&&n.isSymbolicLink()){let c=H.statSync(t),p=H.statSync(e);if(Qr(c,p))return}let i=Bo(t,e);t=i.toDst,r=Uo(i.toCwd,r);let o=Yr.dirname(e);return H.existsSync(o)||$o(o),H.symlinkSync(t,e,r)}Kr.exports={createSymlink:Vo(Go),createSymlinkSync:Jo}});var an=g((Za,sn)=>{"use strict";var{createFile:Zr,createFileSync:en}=Ar(),{createLink:tn,createLinkSync:rn}=Ur(),{createSymlink:nn,createSymlinkSync:on}=zr();sn.exports={createFile:Zr,createFileSync:en,ensureFile:Zr,ensureFileSync:en,createLink:tn,createLinkSync:rn,ensureLink:tn,ensureLinkSync:rn,createSymlink:nn,createSymlinkSync:on,ensureSymlink:nn,ensureSymlinkSync:on}});var Re=g((ec,cn)=>{function Wo(t,{EOL:e=`
8
+ `,finalEOL:r=!0,replacer:n=null,spaces:i}={}){let o=r?e:"";return JSON.stringify(t,n,i).replace(/\n/g,e)+o}function Ho(t){return Buffer.isBuffer(t)&&(t=t.toString("utf8")),t.replace(/^\uFEFF/,"")}cn.exports={stringify:Wo,stripBom:Ho}});var mn=g((tc,fn)=>{var de;try{de=fe()}catch{de=require("fs")}var Ve=T(),{stringify:ln,stripBom:un}=Re();async function Yo(t,e={}){typeof e=="string"&&(e={encoding:e});let r=e.fs||de,n="throws"in e?e.throws:!0,i=await Ve.fromCallback(r.readFile)(t,e);i=un(i);let o;try{o=JSON.parse(i,e?e.reviver:null)}catch(s){if(n)throw s.message=`${t}: ${s.message}`,s;return null}return o}var Qo=Ve.fromPromise(Yo);function Ko(t,e={}){typeof e=="string"&&(e={encoding:e});let r=e.fs||de,n="throws"in e?e.throws:!0;try{let i=r.readFileSync(t,e);return i=un(i),JSON.parse(i,e.reviver)}catch(i){if(n)throw i.message=`${t}: ${i.message}`,i;return null}}async function zo(t,e,r={}){let n=r.fs||de,i=ln(e,r);await Ve.fromCallback(n.writeFile)(t,i,r)}var Zo=Ve.fromPromise(zo);function es(t,e,r={}){let n=r.fs||de,i=ln(e,r);return n.writeFileSync(t,i,r)}fn.exports={readFile:Qo,readFileSync:Ko,writeFile:Zo,writeFileSync:es}});var dn=g((rc,pn)=>{"use strict";var Ae=mn();pn.exports={readJson:Ae.readFile,readJsonSync:Ae.readFileSync,writeJson:Ae.writeFile,writeJsonSync:Ae.writeFileSync}});var $e=g((nc,Sn)=>{"use strict";var ts=T().fromPromise,bt=$(),yn=require("path"),hn=W(),rs=re().pathExists;async function ns(t,e,r="utf-8"){let n=yn.dirname(t);return await rs(n)||await hn.mkdirs(n),bt.writeFile(t,e,r)}function is(t,...e){let r=yn.dirname(t);bt.existsSync(r)||hn.mkdirsSync(r),bt.writeFileSync(t,...e)}Sn.exports={outputFile:ts(ns),outputFileSync:is}});var vn=g((ic,gn)=>{"use strict";var{stringify:os}=Re(),{outputFile:ss}=$e();async function as(t,e,r={}){let n=os(e,r);await ss(t,n,r)}gn.exports=as});var bn=g((oc,wn)=>{"use strict";var{stringify:cs}=Re(),{outputFileSync:ls}=$e();function us(t,e,r){let n=cs(e,r);ls(t,n,r)}wn.exports=us});var Pn=g((sc,xn)=>{"use strict";var fs=T().fromPromise,B=dn();B.outputJson=fs(vn());B.outputJsonSync=bn();B.outputJSON=B.outputJson;B.outputJSONSync=B.outputJsonSync;B.writeJSON=B.writeJson;B.writeJSONSync=B.writeJsonSync;B.readJSON=B.readJson;B.readJSONSync=B.readJsonSync;xn.exports=B});var Dn=g((ac,On)=>{"use strict";var ms=$(),Ln=require("path"),{copy:ps}=Ne(),{remove:kn}=Pe(),{mkdirp:ds}=W(),{pathExists:ys}=re(),En=ce();async function hs(t,e,r={}){let n=r.overwrite||r.clobber||!1,{srcStat:i,isChangingCase:o=!1}=await En.checkPaths(t,e,"move",r);await En.checkParentPaths(t,i,e,"move");let s=Ln.dirname(e);return Ln.parse(s).root!==s&&await ds(s),Ss(t,e,n,o)}async function Ss(t,e,r,n){if(!n){if(r)await kn(e);else if(await ys(e))throw new Error("dest already exists.")}try{await ms.rename(t,e)}catch(i){if(i.code!=="EXDEV")throw i;await gs(t,e,r)}}async function gs(t,e,r){return await ps(t,e,{overwrite:r,errorOnExist:!0,preserveTimestamps:!0}),kn(t)}On.exports=hs});var Fn=g((cc,In)=>{"use strict";var Tn=fe(),Pt=require("path"),vs=Ne().copySync,jn=Pe().removeSync,ws=W().mkdirpSync,Cn=ce();function bs(t,e,r){r=r||{};let n=r.overwrite||r.clobber||!1,{srcStat:i,isChangingCase:o=!1}=Cn.checkPathsSync(t,e,"move",r);return Cn.checkParentPathsSync(t,i,e,"move"),xs(e)||ws(Pt.dirname(e)),Ps(t,e,n,o)}function xs(t){let e=Pt.dirname(t);return Pt.parse(e).root===e}function Ps(t,e,r,n){if(n)return xt(t,e,r);if(r)return jn(e),xt(t,e,r);if(Tn.existsSync(e))throw new Error("dest already exists.");return xt(t,e,r)}function xt(t,e,r){try{Tn.renameSync(t,e)}catch(n){if(n.code!=="EXDEV")throw n;return Ls(t,e,r)}}function Ls(t,e,r){return vs(t,e,{overwrite:r,errorOnExist:!0,preserveTimestamps:!0}),jn(t)}In.exports=bs});var Nn=g((lc,Mn)=>{"use strict";var Es=T().fromPromise;Mn.exports={move:Es(Dn()),moveSync:Fn()}});var Vn=g((uc,Rn)=>{"use strict";Rn.exports={...$(),...Ne(),...Mr(),...an(),...Pn(),...W(),...Nn(),...$e(),...re(),...Pe()}});var An=g(_e=>{"use strict";Object.defineProperty(_e,"__esModule",{value:!0});_e.EXTENSIONS_LANGUAGES=void 0;_e.EXTENSIONS_LANGUAGES={1:"Groff",2:"Groff",3:"Groff",4:"Groff",5:"Groff",6:"Groff",7:"Groff",8:"Groff",9:"Groff",abap:"ABAP",asc:"Public Key",ash:"AGS Script",ampl:"AMPL",mod:"XML",g4:"ANTLR",apib:"API Blueprint",apl:"APL",dyalog:"APL",asp:"ASP",asax:"ASP",ascx:"ASP",ashx:"ASP",asmx:"ASP",aspx:"ASP",axd:"ASP",dats:"ATS",hats:"ATS",sats:"ATS",as:"ActionScript",adb:"Ada",ada:"Ada",ads:"Ada",agda:"Agda",als:"Alloy",apacheconf:"ApacheConf",vhost:"Nginx",cls:"Visual Basic",applescript:"AppleScript",scpt:"AppleScript",arc:"Arc",ino:"Arduino",asciidoc:"AsciiDoc",adoc:"AsciiDoc",aj:"AspectJ",asm:"Assembly",a51:"Assembly",inc:"SourcePawn",nasm:"Assembly",aug:"Augeas",ahk:"AutoHotkey",ahkl:"AutoHotkey",au3:"AutoIt",awk:"Awk",auk:"Awk",gawk:"Awk",mawk:"Awk",nawk:"Awk",bat:"Batchfile",cmd:"Batchfile",befunge:"Befunge",bison:"Bison",bb:"BlitzBasic",decls:"BlitzBasic",bmx:"BlitzMax",bsv:"Bluespec",boo:"Boo",b:"Limbo",bf:"HyPhy",brs:"Brightscript",bro:"Bro",c:"C",cats:"C",h:"Objective-C",idc:"C",w:"C",cs:"Smalltalk",cake:"CoffeeScript",cshtml:"C#",csx:"C#",cpp:"C++","c++":"C++",cc:"C++",cp:"Component Pascal",cxx:"C++","h++":"C++",hh:"Hack",hpp:"C++",hxx:"C++",inl:"C++",ipp:"C++",tcc:"C++",tpp:"C++","c-objdump":"C-ObjDump",chs:"C2hs Haskell",clp:"CLIPS",cmake:"CMake","cmake.in":"CMake",cob:"COBOL",cbl:"COBOL",ccp:"COBOL",cobol:"COBOL",cpy:"COBOL",css:"CSS",csv:"CSV",capnp:"Cap'n Proto",mss:"CartoCSS",ceylon:"Ceylon",chpl:"Chapel",ch:"xBase",ck:"ChucK",cirru:"Cirru",clw:"Clarion",icl:"Clean",dcl:"Clean",click:"Click",clj:"Clojure",boot:"Clojure",cl2:"Clojure",cljc:"Clojure",cljs:"Clojure","cljs.hl":"Clojure",cljscm:"Clojure",cljx:"Clojure",hic:"Clojure",coffee:"CoffeeScript",_coffee:"CoffeeScript",cjsx:"CoffeeScript",cson:"CoffeeScript",iced:"CoffeeScript",cfm:"ColdFusion",cfml:"ColdFusion",cfc:"ColdFusion CFC",lisp:"NewLisp",asd:"Common Lisp",cl:"OpenCL",l:"PicoLisp",lsp:"NewLisp",ny:"Common Lisp",podsl:"Common Lisp",sexp:"Common Lisp",cps:"Component Pascal",coq:"Coq",v:"Verilog",cppobjdump:"Cpp-ObjDump","c++-objdump":"Cpp-ObjDump","c++objdump":"Cpp-ObjDump","cpp-objdump":"Cpp-ObjDump","cxx-objdump":"Cpp-ObjDump",creole:"Creole",cr:"Crystal",feature:"Cucumber",cu:"Cuda",cuh:"Cuda",cy:"Cycript",pyx:"Cython",pxd:"Cython",pxi:"Cython",d:"Makefile",di:"D","d-objdump":"D-ObjDump",com:"DIGITAL Command Language",dm:"DM",zone:"DNS Zone",arpa:"DNS Zone",darcspatch:"Darcs Patch",dpatch:"Darcs Patch",dart:"Dart",diff:"Diff",patch:"Diff",dockerfile:"Dockerfile",djs:"Dogescript",dylan:"Dylan",dyl:"Dylan",intr:"Dylan",lid:"Dylan",E:"E",ecl:"ECLiPSe",eclxml:"ECL",sch:"KiCad",brd:"KiCad",epj:"Ecere Projects",e:"Eiffel",ex:"Elixir",exs:"Elixir",elm:"Elm",el:"Emacs Lisp",emacs:"Emacs Lisp","emacs.desktop":"Emacs Lisp",em:"EmberScript",emberscript:"EmberScript",erl:"Erlang",es:"JavaScript",escript:"Erlang",hrl:"Erlang",xrl:"Erlang",yrl:"Erlang",fs:"GLSL",fsi:"F#",fsx:"F#",fx:"HLSL",flux:"FLUX",f90:"FORTRAN",f:"Forth",f03:"FORTRAN",f08:"FORTRAN",f77:"FORTRAN",f95:"FORTRAN",for:"Forth",fpp:"FORTRAN",factor:"Factor",fy:"Fancy",fancypack:"Fancy",fan:"Fantom","eam.fs":"Formatted",fth:"Forth","4th":"Forth",forth:"Forth",fr:"Text",frt:"Forth",ftl:"FreeMarker",g:"GAP",gco:"G-code",gcode:"G-code",gms:"GAMS",gap:"GAP",gd:"GDScript",gi:"GAP",tst:"Scilab",s:"GAS",ms:"MAXScript",glsl:"GLSL",fp:"GLSL",frag:"JavaScript",frg:"GLSL",fsh:"GLSL",fshader:"GLSL",geo:"GLSL",geom:"GLSL",glslv:"GLSL",gshader:"GLSL",shader:"GLSL",vert:"GLSL",vrx:"GLSL",vsh:"GLSL",vshader:"GLSL",gml:"XML",kid:"Genshi",ebuild:"Gentoo Ebuild",eclass:"Gentoo Eclass",po:"Gettext Catalog",pot:"Gettext Catalog",glf:"Glyph",gp:"Gnuplot",gnu:"Gnuplot",gnuplot:"Gnuplot",plot:"Gnuplot",plt:"Gnuplot",go:"Go",golo:"Golo",gs:"JavaScript",gst:"Gosu",gsx:"Gosu",vark:"Gosu",grace:"Grace",gradle:"Gradle",gf:"Grammatical Framework",graphql:"GraphQL",dot:"Graphviz (DOT)",gv:"Graphviz (DOT)",man:"Groff","1in":"Groff","1m":"Groff","1x":"Groff","3in":"Groff","3m":"Groff","3qt":"Groff","3x":"Groff",me:"Groff",n:"Nemerle",rno:"Groff",roff:"Groff",groovy:"Groovy",grt:"Groovy",gtpl:"Groovy",gvy:"Groovy",gsp:"Groovy Server Pages",hcl:"HCL",tf:"HCL",hlsl:"HLSL",fxh:"HLSL",hlsli:"HLSL",html:"HTML",htm:"HTML","html.hl":"HTML",st:"Smalltalk",xht:"HTML",xhtml:"HTML",mustache:"HTML+Django",jinja:"HTML+Django",eex:"HTML+EEX",erb:"HTML+ERB","erb.deface":"HTML+ERB",phtml:"HTML+PHP",http:"HTTP",php:"PHP",haml:"Haml","haml.deface":"Haml",handlebars:"Handlebars",hbs:"Handlebars",hb:"Harbour",hs:"Haskell",hsc:"Haskell",hx:"Haxe",hxsl:"Haxe",hy:"Hy",pro:"QMake",dlm:"IDL",ipf:"IGOR Pro",ini:"INI",cfg:"INI",prefs:"INI",properties:"INI",irclog:"IRC log",weechatlog:"IRC log",idr:"Idris",lidr:"Idris",ni:"Inform 7",i7x:"Inform 7",iss:"Inno Setup",io:"Io",ik:"Ioke",thy:"Isabelle",ijs:"J",flex:"JFlex",jflex:"JFlex",json:"JSON",geojson:"JSON",lock:"JSON",topojson:"JSON",json5:"JSON5",jsonld:"JSONLD",jq:"JSONiq",jsx:"JSX",jade:"Jade",j:"Objective-J",java:"Java",jsp:"Java Server Pages",js:"JavaScript",_js:"JavaScript",bones:"JavaScript",es6:"JavaScript",jake:"JavaScript",jsb:"JavaScript",jscad:"JavaScript",jsfl:"JavaScript",jsm:"JavaScript",jss:"JavaScript",njs:"JavaScript",pac:"JavaScript",sjs:"JavaScript",ssjs:"JavaScript","sublime-build":"JavaScript","sublime-commands":"JavaScript","sublime-completions":"JavaScript","sublime-keymap":"JavaScript","sublime-macro":"JavaScript","sublime-menu":"JavaScript","sublime-mousemap":"JavaScript","sublime-project":"JavaScript","sublime-settings":"JavaScript","sublime-theme":"JavaScript","sublime-workspace":"JavaScript",sublime_metrics:"JavaScript",sublime_session:"JavaScript",xsjs:"JavaScript",xsjslib:"JavaScript",jl:"Julia",ipynb:"Jupyter Notebook",krl:"KRL",kicad_pcb:"KiCad",kit:"Kit",kt:"Kotlin",ktm:"Kotlin",kts:"Kotlin",lfe:"LFE",ll:"LLVM",lol:"LOLCODE",lsl:"LSL",lslp:"LSL",lvproj:"LabVIEW",lasso:"Lasso",las:"Lasso",lasso8:"Lasso",lasso9:"Lasso",ldml:"Lasso",latte:"Latte",lean:"Lean",hlean:"Lean",less:"Less",lex:"Lex",ly:"LilyPond",ily:"LilyPond",m:"Objective-C",ld:"Linker Script",lds:"Linker Script",liquid:"Liquid",lagda:"Literate Agda",litcoffee:"Literate CoffeeScript",lhs:"Literate Haskell",ls:"LoomScript",_ls:"LiveScript",xm:"Logos",x:"Logos",xi:"Logos",lgt:"Logtalk",logtalk:"Logtalk",lookml:"LookML",lua:"Lua",fcgi:"Shell",nse:"Lua",pd_lua:"Lua",rbxs:"Lua",wlua:"Lua",mumps:"M",m4:"M4Sugar",mcr:"MAXScript",mtml:"MTML",muf:"MUF",mak:"Makefile",mk:"Makefile",mkfile:"Makefile",mako:"Mako",mao:"Mako",md:"Markdown",markdown:"Markdown",mkd:"Markdown",mkdn:"Markdown",mkdown:"Markdown",ron:"Markdown",mask:"Mask",mathematica:"Mathematica",cdf:"Mathematica",ma:"Mathematica",mt:"Mathematica",nb:"Text",nbp:"Mathematica",wl:"Mathematica",wlt:"Mathematica",matlab:"Matlab",maxpat:"Max",maxhelp:"Max",maxproj:"Max",mxt:"Max",pat:"Max",mediawiki:"MediaWiki",wiki:"MediaWiki",moo:"Moocode",metal:"Metal",minid:"MiniD",druby:"Mirah",duby:"Mirah",mir:"Mirah",mirah:"Mirah",mo:"Modelica",mms:"Module Management System",mmk:"Module Management System",monkey:"Monkey",moon:"MoonScript",myt:"Myghty",ncl:"Text",nl:"NewLisp",nsi:"NSIS",nsh:"NSIS",axs:"NetLinx",axi:"NetLinx","axs.erb":"NetLinx+ERB","axi.erb":"NetLinx+ERB",nlogo:"NetLogo",nginxconf:"Nginx",nim:"Nimrod",nimrod:"Nimrod",ninja:"Ninja",nit:"Nit",nix:"Nix",nu:"Nu",numpy:"NumPy",numpyw:"NumPy",numsc:"NumPy",ml:"OCaml",eliom:"OCaml",eliomi:"OCaml",ml4:"OCaml",mli:"OCaml",mll:"OCaml",mly:"OCaml",objdump:"ObjDump",mm:"XML",sj:"Objective-J",omgrofl:"Omgrofl",opa:"Opa",opal:"Opal",opencl:"OpenCL",p:"OpenEdge ABL",scad:"OpenSCAD",org:"Org",ox:"Ox",oxh:"Ox",oxo:"Ox",oxygene:"Oxygene",oz:"Oz",pwn:"PAWN",aw:"PHP",ctp:"PHP",php3:"PHP",php4:"PHP",php5:"PHP",phps:"PHP",phpt:"PHP",pls:"PLSQL",pck:"PLSQL",pkb:"PLSQL",pks:"PLSQL",plb:"PLSQL",plsql:"PLSQL",sql:"SQLPL",pov:"POV-Ray SDL",pan:"Pan",psc:"Papyrus",parrot:"Parrot",pasm:"Parrot Assembly",pir:"Parrot Internal Representation",pas:"Pascal",dfm:"Pascal",dpr:"Pascal",lpr:"Pascal",pp:"Puppet",pl:"Prolog",al:"Perl",cgi:"Shell",perl:"Perl",ph:"Perl",plx:"Perl",pm:"Perl6",pod:"Pod",psgi:"Perl",t:"Turing","6pl":"Perl6","6pm":"Perl6",nqp:"Perl6",p6:"Perl6",p6l:"Perl6",p6m:"Perl6",pl6:"Perl6",pm6:"Perl6",pkl:"Pickle",pig:"PigLatin",pike:"Pike",pmod:"Pike",pogo:"PogoScript",pony:"Pony",ps:"PostScript",eps:"PostScript",ps1:"PowerShell",psd1:"PowerShell",psm1:"PowerShell",pde:"Processing",prolog:"Prolog",yap:"Prolog",spin:"Propeller Spin",proto:"Protocol Buffer",pub:"Public Key",pd:"Pure Data",pb:"PureBasic",pbi:"PureBasic",purs:"PureScript",py:"Python",bzl:"Python",gyp:"Python",lmi:"Python",pyde:"Python",pyp:"Python",pyt:"Python",pyw:"Python",rpy:"Ren'Py",tac:"Python",wsgi:"Python",xpy:"Python",pytb:"Python traceback",qml:"QML",qbs:"QML",pri:"QMake",r:"Rebol",rd:"R",rsx:"R",raml:"RAML",rdoc:"RDoc",rbbas:"REALbasic",rbfrm:"REALbasic",rbmnu:"REALbasic",rbres:"REALbasic",rbtbar:"REALbasic",rbuistate:"REALbasic",rhtml:"RHTML",rmd:"RMarkdown",rkt:"Racket",rktd:"Racket",rktl:"Racket",scrbl:"Racket",rl:"Ragel in Ruby Host",raw:"Raw token data",reb:"Rebol",r2:"Rebol",r3:"Rebol",rebol:"Rebol",red:"Red",reds:"Red",cw:"Redcode",rs:"Rust",rsh:"RenderScript",robot:"RobotFramework",rg:"Rouge",rb:"Ruby",builder:"Ruby",gemspec:"Ruby",god:"Ruby",irbrc:"Ruby",jbuilder:"Ruby",mspec:"Ruby",pluginspec:"XML",podspec:"Ruby",rabl:"Ruby",rake:"Ruby",rbuild:"Ruby",rbw:"Ruby",rbx:"Ruby",ru:"Ruby",ruby:"Ruby",thor:"Ruby",watchr:"Ruby","rs.in":"Rust",sas:"SAS",scss:"SCSS",smt2:"SMT",smt:"SMT",sparql:"SPARQL",rq:"SPARQL",sqf:"SQF",hqf:"SQF",cql:"SQL",ddl:"SQL",prc:"SQL",tab:"SQL",udf:"SQL",viw:"SQL",db2:"SQLPL",ston:"STON",svg:"SVG",sage:"Sage",sagews:"Sage",sls:"Scheme",sass:"Sass",scala:"Scala",sbt:"Scala",sc:"SuperCollider",scaml:"Scaml",scm:"Scheme",sld:"Scheme",sps:"Scheme",ss:"Scheme",sci:"Scilab",sce:"Scilab",self:"Self",sh:"Shell",bash:"Shell",bats:"Shell",command:"Shell",ksh:"Shell","sh.in":"Shell",tmux:"Shell",tool:"Shell",zsh:"Shell","sh-session":"ShellSession",shen:"Shen",sl:"Slash",slim:"Slim",smali:"Smali",tpl:"Smarty",sp:"SourcePawn",sma:"SourcePawn",nut:"Squirrel",stan:"Stan",ML:"Standard ML",fun:"Standard ML",sig:"Standard ML",sml:"Standard ML",do:"Stata",ado:"Stata",doh:"Stata",ihlp:"Stata",mata:"Stata",matah:"Stata",sthlp:"Stata",styl:"Stylus",scd:"SuperCollider",swift:"Swift",sv:"SystemVerilog",svh:"SystemVerilog",vh:"SystemVerilog",toml:"TOML",txl:"TXL",tcl:"Tcl",adp:"Tcl",tm:"Tcl",tcsh:"Tcsh",csh:"Tcsh",tex:"TeX",aux:"TeX",bbx:"TeX",bib:"TeX",cbx:"TeX",dtx:"TeX",ins:"TeX",lbx:"TeX",ltx:"TeX",mkii:"TeX",mkiv:"TeX",mkvi:"TeX",sty:"TeX",toc:"TeX",tea:"Tea",txt:"Text",no:"Text",textile:"Textile",thrift:"Thrift",tu:"Turing",ttl:"Turtle",twig:"Twig",ts:"TypeScript",tsx:"TypeScript",upc:"Unified Parallel C",anim:"Unity3D Asset",asset:"Unity3D Asset",mat:"Unity3D Asset",meta:"Unity3D Asset",prefab:"Unity3D Asset",unity:"Unity3D Asset",uno:"Uno",uc:"UnrealScript",ur:"UrWeb",urs:"UrWeb",vcl:"VCL",vhdl:"VHDL",vhd:"VHDL",vhf:"VHDL",vhi:"VHDL",vho:"VHDL",vhs:"VHDL",vht:"VHDL",vhw:"VHDL",vala:"Vala",vapi:"Vala",veo:"Verilog",vim:"VimL",vb:"Visual Basic",bas:"Visual Basic",frm:"Visual Basic",frx:"Visual Basic",vba:"Visual Basic",vbhtml:"Visual Basic",vbs:"Visual Basic",volt:"Volt",vue:"Vue",owl:"Web Ontology Language",webidl:"WebIDL",x10:"X10",xc:"XC",xml:"XML",ant:"XML",axml:"XML",ccxml:"XML",clixml:"XML",cproject:"XML",csl:"XML",csproj:"XML",ct:"XML",dita:"XML",ditamap:"XML",ditaval:"XML","dll.config":"XML",dotsettings:"XML",filters:"XML",fsproj:"XML",fxml:"XML",glade:"XML",grxml:"XML",iml:"XML",ivy:"XML",jelly:"XML",jsproj:"XML",kml:"XML",launch:"XML",mdpolicy:"XML",mxml:"XML",nproj:"XML",nuspec:"XML",odd:"XML",osm:"XML",plist:"XML",props:"XML",ps1xml:"XML",psc1:"XML",pt:"XML",rdf:"XML",rss:"XML",scxml:"XML",srdf:"XML",storyboard:"XML",stTheme:"XML","sublime-snippet":"XML",targets:"XML",tmCommand:"XML",tml:"XML",tmLanguage:"XML",tmPreferences:"XML",tmSnippet:"XML",tmTheme:"XML",ui:"XML",urdf:"XML",ux:"XML",vbproj:"XML",vcxproj:"XML",vssettings:"XML",vxml:"XML",wsdl:"XML",wsf:"XML",wxi:"XML",wxl:"XML",wxs:"XML",x3d:"XML",xacro:"XML",xaml:"XML",xib:"XML",xlf:"XML",xliff:"XML",xmi:"XML","xml.dist":"XML",xproj:"XML",xsd:"XML",xul:"XML",zcml:"XML","xsp-config":"XPages","xsp.metadata":"XPages",xpl:"XProc",xproc:"XProc",xquery:"XQuery",xq:"XQuery",xql:"XQuery",xqm:"XQuery",xqy:"XQuery",xs:"XS",xslt:"XSLT",xsl:"XSLT",xojo_code:"Xojo",xojo_menu:"Xojo",xojo_report:"Xojo",xojo_script:"Xojo",xojo_toolbar:"Xojo",xojo_window:"Xojo",xtend:"Xtend",yml:"YAML",reek:"YAML",rviz:"YAML","sublime-syntax":"YAML",syntax:"YAML",yaml:"YAML","yaml-tmlanguage":"YAML",yang:"YANG",y:"Yacc",yacc:"Yacc",yy:"Yacc",zep:"Zephir",zimpl:"Zimpl",zmpl:"Zimpl",zpl:"Zimpl",desktop:"desktop","desktop.in":"desktop",ec:"eC",eh:"eC",edn:"edn",fish:"fish",mu:"mupad",nc:"nesC",ooc:"ooc",rst:"reStructuredText",rest:"reStructuredText","rest.txt":"reStructuredText","rst.txt":"reStructuredText",wisp:"wisp",prg:"xBase",prw:"xBase"}});var Ee=g(Lt=>{"use strict";Object.defineProperty(Lt,"__esModule",{value:!0});Lt.setOptionValues=ks;function ks(t,e){for(let r of Object.keys(t))t[r]!==void 0&&(e[r]=t[r]);return e}});var _n=g(Y=>{"use strict";var Os=Y&&Y.__createBinding||(Object.create?(function(t,e,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,i)}):(function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]})),Ds=Y&&Y.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),Cs=Y&&Y.__importStar||(function(){var t=function(e){return t=Object.getOwnPropertyNames||function(r){var n=[];for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(n[n.length]=i);return n},t(e)};return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var n=t(e),i=0;i<n.length;i++)n[i]!=="default"&&Os(r,e,n[i]);return Ds(r,e),r}})();Object.defineProperty(Y,"__esModule",{value:!0});Y.SarifBuilder=void 0;var $n=Cs(Vn()),Ts=An(),js=Ee(),Et=class{constructor(e={}){this.log={$schema:"http://json.schemastore.org/sarif-2.1.0.json",version:"2.1.0",runs:[]},(0,js.setOptionValues)(e,this.log)}addRun(e){this.log.runs.push(e.run)}generateSarifFileSync(e){let r=this.buildSarifJsonString();$n.writeFileSync(e,r,"utf8")}async generateSarifFile(e){let r=this.buildSarifJsonString();await $n.writeFile(e,r,"utf8")}buildSarifOutput(){return this.log.runs=this.log.runs.map(e=>this.completeRunFields(e)),this.log}buildSarifJsonString(e={indent:!1}){this.buildSarifOutput();let r=e.indent?JSON.stringify(this.log,null,2):JSON.stringify(this.log);if(r.includes("SARIF_BUILDER_INVALID"))throw new Error("Your SARIF log is invalid, please solve SARIF_BUILDER_INVALID messages");return r}completeRunFields(e){var r,n,i,o,s,c;e.artifacts=e.artifacts||[];let p=new Set(e.artifacts.map(m=>{var u;return(u=m?.location)===null||u===void 0?void 0:u.uri}).filter(Boolean));for(let m of e.results||[])for(let u of m.locations||[]){let l=(n=(r=u?.physicalLocation)===null||r===void 0?void 0:r.artifactLocation)===null||n===void 0?void 0:n.uri;if(l&&!p.has(l)){let d=l.lastIndexOf("."),y=d!==-1?l.slice(d+1):"",S=Ts.EXTENSIONS_LANGUAGES[y]||"unknown";e.artifacts.push({sourceLanguage:S,location:{uri:l}}),p.add(l)}}let f=new Map;e.artifacts.forEach((m,u)=>{var l;let d=(l=m?.location)===null||l===void 0?void 0:l.uri;d&&f.set(d,u)});let a=new Map;(((o=(i=e?.tool)===null||i===void 0?void 0:i.driver)===null||o===void 0?void 0:o.rules)||[]).forEach((m,u)=>{a.set(m.id,u)});for(let m of e.results||[]){if(m.ruleId){let u=a.get(m.ruleId);u!==void 0&&(m.ruleIndex=u)}if(m.locations)for(let u of m.locations){let l=(c=(s=u?.physicalLocation)===null||s===void 0?void 0:s.artifactLocation)===null||c===void 0?void 0:c.uri;if(l){let d=f.get(l);d!==void 0&&(u.physicalLocation.artifactLocation.index=d)}}}return e}};Y.SarifBuilder=Et});var Bn=g(Be=>{"use strict";Object.defineProperty(Be,"__esModule",{value:!0});Be.SarifResultBuilder=void 0;var Is=Ee(),kt=class{constructor(e={}){this.result={level:"error",message:{},ruleId:"SARIF_BUILDER_INVALID: Please send the rule Id ruleId property, or call setRuleId(ruleId)"},(0,Is.setOptionValues)(e,this.result)}initSimple(e){if(this.setLevel(e.level),this.setMessageText(e.messageText),this.setRuleId(e.ruleId),e.fileUri&&this.setLocationArtifactUri({uri:e.fileUri}),e.startLine!==null&&e.startLine!==void 0){let r={startLine:e.startLine,startColumn:e.startColumn||1,endLine:e.endLine||e.startLine,endColumn:e.endColumn||1};if(e.startLine===0||e.startColumn===0||e.endLine===0||e.endColumn===0)throw new Error("Region limit can not be 0 (minimum line 1 or column 1) in "+JSON.stringify(e));this.setLocationRegion(r)}return this}setLevel(e){this.result.level=e}setMessageText(e){this.result.message.text=e}setRuleId(e){this.result.ruleId=e}setLocationRegion(e){this.manageInitPhysicalLocation(),this.result.locations[0].physicalLocation.region=e}setLocationArtifactUri(e){this.manageInitPhysicalLocation(),this.result.locations[0].physicalLocation.artifactLocation=e}manageInitLocation(){var e,r;!((r=(e=this.result)===null||e===void 0?void 0:e.locations)===null||r===void 0)&&r.length||(this.result.locations=[{}])}manageInitPhysicalLocation(){this.manageInitLocation(),!this.result.locations[0].physicalLocation&&(this.result.locations[0].physicalLocation={})}};Be.SarifResultBuilder=kt});var qn=g(qe=>{"use strict";Object.defineProperty(qe,"__esModule",{value:!0});qe.SarifRuleBuilder=void 0;var Fs=Ee(),Ot=class{constructor(e={}){this.rule={id:"SARIF_BUILDER_INVALID: Please send the rule identifier in id property, or call setRuleId(ruleId)",shortDescription:{text:"SARIF_BUILDER_INVALID: Please send the rule text in shortDescription.text property, or call setShortDescriptionText(text)"}},(0,Fs.setOptionValues)(e,this.rule)}initSimple(e){return this.setRuleId(e.ruleId),e.shortDescriptionText&&this.setShortDescriptionText(e.shortDescriptionText),e.fullDescriptionText&&this.setFullDescriptionText(e.fullDescriptionText),e.helpUri&&this.setHelpUri(e.helpUri),this}setRuleId(e){this.rule.id=e}setShortDescriptionText(e){this.rule.shortDescription.text=e}setFullDescriptionText(e){this.rule.fullDescription=this.rule.fullDescription||{text:""},this.rule.fullDescription.text=e}setHelpUri(e){this.rule.helpUri=e}};qe.SarifRuleBuilder=Ot});var Un=g(Ue=>{"use strict";Object.defineProperty(Ue,"__esModule",{value:!0});Ue.SarifRunBuilder=void 0;var Ms=Ee(),Dt=class{constructor(e={}){this.run={tool:{driver:{name:process.env.npm_package_name||"SARIF_BUILDER_INVALID: Please send the tool name in tool.driver.name property, or call setToolName(name)",rules:[]}},results:[]},(0,Ms.setOptionValues)(e,this.run)}initSimple(e){return this.setToolDriverName(e.toolDriverName),this.setToolDriverVersion(e.toolDriverVersion),e.url&&this.setToolDriverUri(e.url),this}addRule(e){this.run.tool.driver.rules.push(e.rule)}addResult(e){this.run.results.push(e.result)}setToolDriverName(e){this.run.tool.driver.name=e}setToolDriverVersion(e){this.run.tool.driver.version=e}setToolDriverUri(e){this.run.tool.driver.informationUri=e}};Ue.SarifRunBuilder=Dt});var Xn=g(Q=>{"use strict";Object.defineProperty(Q,"__esModule",{value:!0});Q.SarifResultBuilder=Q.SarifRuleBuilder=Q.SarifRunBuilder=Q.SarifBuilder=void 0;var Ns=_n();Object.defineProperty(Q,"SarifBuilder",{enumerable:!0,get:function(){return Ns.SarifBuilder}});var Rs=Bn();Object.defineProperty(Q,"SarifResultBuilder",{enumerable:!0,get:function(){return Rs.SarifResultBuilder}});var Vs=qn();Object.defineProperty(Q,"SarifRuleBuilder",{enumerable:!0,get:function(){return Vs.SarifRuleBuilder}});var As=Un();Object.defineProperty(Q,"SarifRunBuilder",{enumerable:!0,get:function(){return As.SarifRunBuilder}})});var Jn=g((gc,Gn)=>{"use strict";var $s=/["'&<>]/;Gn.exports=_s;function _s(t){var e=""+t,r=$s.exec(e);if(!r)return e;var n,i="",o=0,s=0;for(o=r.index;o<e.length;o++){switch(e.charCodeAt(o)){case 34:n="&quot;";break;case 38:n="&amp;";break;case 39:n="&#39;";break;case 60:n="&lt;";break;case 62:n="&gt;";break;default:continue}s!==o&&(i+=e.substring(s,o)),s=o+1,i+=n}return s!==o?i+e.substring(s,o):i}});var tt=require("zx"),le=require("fs/promises");var U={UNKNOWN:0,LOW:1,MEDIUM:2,HIGH:3,CRITICAL:4};var De=class{constructor(e){this.depProvider=e}depProvider;allById=new Map;getAllVulnIds(){return new Set(this.allById.keys())}getAllVulnerabilitiesSortedBySeverity(){let e=Array.from(this.allById.values());return e.sort((r,n)=>{let i=_t(r.severity,n.severity);return i===0?r.id.localeCompare(n.id):-i}),e}addVulnerability(e,r){let n=e.id,i=this.allById,o=e;if(!i.has(n))i.set(n,e),o=e;else{let s=i.get(n);s.title=s.title||e.title,s.severity=vi(s.severity,e.severity),s.scannerSeverity[r]=e.severity,s.detectedBy=it(s.detectedBy,r),s.components=it(s.components,e.components[0]),s.refs=it(s.refs,e.refs[0]),o=s}o.componentTree=o.components?.map(s=>this.depProvider.findUsagesOfComponent(s))}enhanceWithVexData(e){let r=[];for(let n of this.allById.values()){let i=e.newestVulnerabilityStatement(n.id);if(!i){r.push({id:n.id,severity:n.severity,title:n.title,description:n.description,components:n.components??[],componentTree:n.componentTree??[],refs:n.refs});continue}n.vexStatement=i}return{unmatchedVulnerabilities:r}}};function vi(t,e){return _t(t,e)>0?t:e}function _t(t,e){return U[t]-U[e]}function it(t,e){return e?Array.from(new Set([...t,e]).values()):t}var Ce=Oe(require("path"));var q=require("fs/promises"),ot=require("path");async function X(t){try{return await se(t)?JSON.parse(await(0,q.readFile)(t,{encoding:"utf-8"})):void 0}catch(e){throw new Error(`Error reading JSON file ${t}: ${e}`,{cause:e})}}async function st(t,e){let r=JSON.stringify(e,null,4)+`
9
+ `,n=await wi(t,r);await(0,q.writeFile)(t,n,{encoding:"utf-8"})}function J(t){return t?t.replace(/\?.*$/,""):""}async function se(t){try{return await(0,q.access)(t,q.constants.F_OK),!0}catch{return!1}}async function at(t){let e=(0,ot.resolve)(t),r=await(0,q.readdir)(e,{withFileTypes:!0});for(let n of r){let i=(0,ot.resolve)(n.parentPath,n.name);n.isDirectory()?await at(i):await(0,q.rm)(i)}await(0,q.rmdir)(e)}async function Se(t,e){let r=e?.user&&e?.pw?{Authorization:`Basic ${Buffer.from(`${e.user}:${e.pw}`).toString("base64")}`}:{},n=await fetch(t,{headers:r});if(!n.ok){let i="";try{i=await n.text()}catch(o){i=`${o}`}throw new Error(`Failed to fetch: ${t}: ${n.status} - ${n.statusText}: ${i}`)}return n}async function wi(t,e){let r=await xi();if(!r)return e;let n=await r.resolveConfig(t);return n?await r.format(e,{...n,filepath:t}):e}var bi;function xi(){return bi??=import("prettier").catch(()=>{})}var ct;async function lt(t){if(ct)return ct;let e="https://repository.conterra.de/repository/maven-mirror-ct",r=ee(t.workingDir,"input/vex"),n=ee(t.workingDir,"output"),i=ee(t.workingDir,"cache"),o=["grype","trivy","ossindex"],s=ee(t.workingDir,"vuln-scan-conf.json"),c=await X(s);if(!c)throw new Error(`Missing project configuration file '${s}'`);let p=c.findNoLongerDetectedVulnerabilitiesOnlyForSnapshots??!1;return ct={projectConfigFileLocation:s,onNewVulnerabilities:c.onNewVulnerabilities??(c.failOnNewVulnerabilities?"fail":"warn"),onNoLongerDetectedVulnerabilities:c.onNoLongerDetectedVulnerabilities??"ignore",reportNoLongerDetectedVulnerabilities:c.reportNoLongerDetectedVulnerabilities??!0,consoleReport:c.consoleReport||"BY_PROJECT_DETAILED",createSubDirsForProject:c.createSubDirsForProject??!0,mavenRepo:c.mavenRepo??e,vexUrls:c.vexUrls??[],vexDir:ee(t.workingDir,c.vexDir)??r,outDir:ee(t.workingDir,c.outDir)??n,cacheDir:ee(t.workingDir,c.cacheDir)??i,scanners:(c.scanners??o).map(f=>{if(typeof f!="string")throw new Error(`Invalid scanner name '${f}' in configuration file '${s}'`);let a=f.split("@");if(a.length>2)throw new Error(`Invalid scanner name '${f}' in configuration file '${s}'`);let m=a[0],u=a[1]??"";return{name:m,version:u}}),projects:(c.projects??[]).map(f=>{let a=f;if(!a.name)throw new Error("Project name is missing on entry:"+JSON.stringify(a));if(!a.version)throw new Error("Project version is missing on entry:"+JSON.stringify(a));if(!a.purl)throw new Error("Project purl is missing on entry:"+JSON.stringify(a));return a.purlAliases||(a.purlAliases=[]),a.enabled==null&&(a.enabled=!0),a.silent==null&&(a.silent=!1),a.minimumSeverity||(a.minimumSeverity="UNKNOWN"),a.sbomFile?{...a,sbomFile:ee(t.workingDir,a.sbomFile)}:(a.detectNoLongerUsedVulnerabilities=p?a.purl.endsWith("-SNAPSHOT"):!0,f)})}}function ee(t,e){if(e)return Ce.default.isAbsolute(e)?e:(0,Ce.resolve)(t,e)}var oe=Oe(Xn());var Yn=Oe(Jn());function Ge(t,e=""){return Wn(t,e,new Set,new Set)}function Wn(t,e="",r,n){let i=`${e}- ${t.purl}`;if(r.has(t.purl))return i+=" (cycle detected)",i;if(n.has(t.purl))return i+=" (deduplicated)",i;n.add(t.purl),r.add(t.purl);let o=r.size===1;for(let s of t.usedBy){let c=Wn(s,e+(o?" ":" "),r,n);c!==""&&(i+=`
10
+ `,i+=c)}return r.delete(t.purl),i}var Xe=class t{constructor(e){this.sbom=e;for(let r of this.sbom.components||[]){let n={purl:J(r.purl),usedBy:[]};n.purl&&(this.purlToComponent.has(n.purl)||(this.purlToComponent.set(n.purl,n),this.sbomRefToComponent.set(r["bom-ref"],n)))}for(let r of this.sbom.dependencies||[]){let n=this.sbomRefToComponent.get(r.ref);if(n)for(let i of r.dependsOn||[]){let o=this.sbomRefToComponent.get(i);o&&!o.usedBy.includes(n)&&o.usedBy.push(n)}}}sbom;static createForSbom(e){return new t(e)}sbomRefToComponent=new Map;purlToComponent=new Map;findUsagesOfComponent(e){if(!this.sbom)return{purl:e,usedBy:[]};let r=this.purlToComponent.get(e);return r?Hn(r):{purl:e,usedBy:[]}}};function Hn(t,e=new Set){let r={purl:t.purl,usedBy:[]};if(e.has(t.purl))return r;e.add(t.purl);for(let n of t.usedBy){let i=Hn(n,new Set(e));r.usedBy.push(i)}return r}function Qn(t,e){let r=new oe.SarifRunBuilder().initSimple({toolDriverName:`${e.name}@${e.version}`,toolDriverVersion:"0.0.1"}),n=new Date().toISOString().split("T")[0];r.run.tool.driver.fullDescription={text:`Security Scan from ${n}`},r.run.tool.driver.properties={"microsoft/qualityDomain":`Security Scan from ${n}`};for(let o of t){let s=qs(o.severity),c=o.id,p=Bs(o.refs),f=new oe.SarifRuleBuilder().initSimple({ruleId:c,shortDescriptionText:o.title,fullDescriptionText:o.description,helpUri:p}),a=o.vexStatement,m,u="new",l="";a?(m=[{kind:"external",status:"accepted"}],u="updated",l=`--- INVESTIGATED (${a.status}) --- `,a.status==="under_investigation"&&(m[0].status="underReview",l="--- UNDER INVESTIGATION --- ")):U[e.minimumSeverity]>U[o.severity]?(m=[{kind:"external",status:"accepted"}],u="updated",l=`--- BELOW MINIMUM SEVERITY '${e.minimumSeverity}' ---`):e.silent&&(m=[{kind:"external",status:"accepted"}],u="updated",l="--- PROJECT SILENT ---"),Object.assign(f.rule,{name:`${l}[${o.severity}] - ${o.title.replace(`[${c}]`,"")}`,messageStrings:{default:{text:o.description,markdown:Us(o,p,l)}},properties:{severity:o.severity,scanners:o.scannerSeverity,links:o.refs,tags:["cve","vulnerability","security",`severity_${o.severity.toLowerCase()}`]}}),r.addRule(f);for(let d of o.components){let y=new oe.SarifResultBuilder().initSimple({ruleId:c,level:s,messageText:`${c} [${o.severity}] - ${d}`});y.result.message.id="default",y.result.locations=[{logicalLocations:[{fullyQualifiedName:d}]}],y.result.baselineState=u,y.result.suppressions=m,r.addResult(y)}}let i=new oe.SarifBuilder;return i.addRun(r),i.buildSarifOutput()}function Bs(t){for(let e of t)if(e.startsWith("https://nvd.nist.gov"))return e;return t[0]}function qs(t){switch(t){case"CRITICAL":return"error";case"HIGH":return"error";case"MEDIUM":return"warning";case"LOW":return"warning";default:return"note"}}function Us(t,e,r){let n=t.vexStatement,i=n?`
11
11
  ${r}
12
12
  ${n.justification??""}
13
13
  ${n.impact_statement??""}
@@ -35,9 +35,9 @@ Usage tree:
35
35
  ${t.componentTree?.map(o=>Ge(o)).join(`
36
36
  `)}
37
37
  \`\`\`
38
- `}var We=require("fs/promises");async function Kn(t,e,r){if("sbomFile"in t)return await(0,We.copyFile)(t.sbomFile,e),t.sbomFile=e,t;let n=await r.downloadArtifact(t.sbomMavenCoordinates);return await(0,We.writeFile)(e,n),{...t,sbomFile:e}}var Je=class{constructor(e,r){this.repo=e;this.authn=r}repo;authn;async downloadArtifact(e){let r=this.toArtifactInfo(e);if(this.isSnapshotVersion(r.version)&&!r.timestamp){let o=await this.fetchLatestSnapshotTimestamp(r);r={...r,timestamp:o}}let n=this.toArtifactUrl(r),i=await Se(n,this.authn);return Buffer.from(await i.arrayBuffer())}async fetchLatestSnapshotTimestamp(e){let r=`${this.toArtifactBaseUrl(e)}/maven-metadata.xml`,i=await(await Se(r,this.authn)).text();return Us(i,e)}toArtifactUrl(e){let r=this.toArtifactBaseUrl(e),n=this.isSnapshotVersion(e.version)&&e.timestamp?e.version.replace(/SNAPSHOT$/,e.timestamp):e.version;return`${r}/${e.artifactId}-${n}-${e.classifier}.${e.extension}`}toArtifactBaseUrl(e){return`${this.repo}/${e.groupId.replace(/\./g,"/")}/${e.artifactId}/${e.version}`}isSnapshotVersion(e){return e.endsWith("-SNAPSHOT")}toArtifactInfo(e){let r=e.split(":");return{groupId:r[0],artifactId:r[1],version:r[2],classifier:r[3],extension:"json"}}};function Us(t,e){if(e.classifier&&e.extension){let i=t.match(new RegExp(`<snapshotVersion>\\s*<classifier>${e.classifier}</classifier>\\s*<extension>${e.extension}</extension>\\s*<value>([^<]+)</value>\\s*<updated>[^<]+</updated>\\s*</snapshotVersion>`)),o=e.version.replace(/SNAPSHOT$/,"");if(i?.[1])return i[1].replace(o,"")}let r=t.match(/<timestamp>([^<]+)<\/timestamp>/),n=t.match(/<buildNumber>([^<]+)<\/buildNumber>/);if(!r||!n)throw new Error(`Failed to get timestamp and build number from ${t} for artifact '${e.artifactId}'`);return`${r[1]}-${n[1]}`}var He=require("fs/promises"),Ct=require("path");var Tt=class{constructor(e){this.location=e}location;async read(){let e=await X(this.location);if(!e)throw new Error("Invalid VEX file");return e}async write(e){await st(this.location,e)}async delete(){await(0,He.unlink)(this.location)}};async function Ye(t,e){for(let r of await(0,He.readdir)(t,{withFileTypes:!0}))r.name.endsWith(".json")?await e(new Tt((0,Ct.resolve)(r.parentPath,r.name))):r.isDirectory()&&await Ye((0,Ct.resolve)(r.parentPath,r.name),e)}function It(t){let e=t.vulnerability.name;return new Set([e,...t.vulnerability.aliases??[]])}var ye=class t{statements=[];filteredToProducts=[];static async fromUrl(e,r,n=new t){let o=await(await Se(e,r)).json();return n.add(o),n}static async fromFiles(e,r=new t){return await Ye(e,async n=>{let i=await n.read();r.add(i)}),r}add(e){Gs(e);let r=e.timestamp;for(let n of e.statements){n.timestamp=n.timestamp??r;let i=Date.parse(n.timestamp),o=n.vulnerability.name,s=It(n),c=new Set(n.products?.map(f=>f["@id"]).filter(f=>!!f)??[]),p=new jt(i,o,s,c,n);this.statements.push(p)}this.sortStatementsByTimestampNewestFirst()}filterByProduct(e){if(this.assertCorrectProductId(e),this.filteredToProducts.length)return this;let r=new t;return r.filteredToProducts=e.slice(0),r.statements=this.statements.filter(n=>n.matchesAtLeastOneProduct(e)),r}findNotMatchingVulnerabilities(e,r){let n=this.filterByProduct(r??this.filteredToProducts),i=new Set;for(let o of n.statements)i.add(o.vulnName);for(let o of e)i.delete(o);return Array.from(i)}newestVulnerabilityStatement(e,r){let n=this.filterByProduct(r??this.filteredToProducts);for(let i of n.statements)if(i.matchesVulnerability(e))return this.reduceToProductInformation(i,n.filteredToProducts[0])}toVexFileForProduct(e){let r=this.filterByProduct(e??this.filteredToProducts),n=r.statements.map(i=>this.reduceToProductInformation(i,r.filteredToProducts[0]));return this.toVexFile(n)}toVexFile(e){let r=e.filter(i=>i.status!=="under_investigation");if(r.length===0)return;this.sortVexStatementsByTimestampNewestFirst(r);let n=r[0].timestamp;return{"@context":"https://openvex.dev/ns/v0.2.0","@id":"https://openvex.dev/docs/public/vex-fc763e6eb63bfbcda20b7cbbddd4e9f8feaaa317fe8d8a6f51a5663a1180343e",author:"conterra",timestamp:n,last_updated:n,version:1,statements:r}}assertCorrectProductId(e){if(!e||e.length===0)throw new Error("Product ID must be provided");if(this.filteredToProducts.length&&!Xs(this.filteredToProducts,e))throw new Error("Cannot filter to a different product")}reduceToProductInformation(e,r){let n={timestamp:new Date(e.timestamp).toISOString(),...e.statement};if(!r)return n;let i=n.products?.filter(o=>o["@id"]===r);return i?.length||(i=[{"@id":r}]),{...n,products:i}}sortStatementsByTimestampNewestFirst(){this.statements.sort((e,r)=>r.timestamp-e.timestamp)}sortVexStatementsByTimestampNewestFirst(e){e.sort((r,n)=>Date.parse(n.timestamp)-Date.parse(r.timestamp))}};function Xs(t,e){return t.length===e.length&&t.every((r,n)=>r===e[n])}var jt=class{constructor(e,r,n,i,o){this.timestamp=e;this.vulnName=r;this.vulnAliases=n;this.products=i;this.statement=o}timestamp;vulnName;vulnAliases;products;statement;matchesProduct(e){return this.products.has(e)}matchesAtLeastOneProduct(e){return e.some(this.matchesProduct.bind(this))}matchesVulnerability(e){return this.vulnAliases.has(e)}};function Gs(t){if(t?.["@context"]!=="https://openvex.dev/ns/v0.2.0")throw new Error("Invalid VEX file format")}var Ke=require("path"),zn=require("fs/promises");var Qe=class{constructor(e,r,n){this.project=e;this.outputDir=r;this.useSubDirForProject=n}project;outputDir;useSubDirForProject;async lookupOutputFileForWriting(e){let r=this.useSubDirForProject?`${this.project.name}-${this.project.version}`:"",n=`${this.project.name}-${this.project.version}-`,i=this.getFileSuffix(e),o=(0,Ke.resolve)(this.outputDir,r,`${n}${i}`),s=(0,Ke.dirname)(o);return await se(s)||await(0,zn.mkdir)(s,{recursive:!0}),o}getFileSuffix(e){switch(e){case"grype-results":return"scan-grype-results.json";case"trivy-results":return"scan-trivy-results.json";case"ossindex-results":return"scan-ossindex-results.json";case"aggregate-results":return"scan-aggregate-results.json";case"aggregated-sarif-results":return"scan-aggregated-results.sarif.json";case"project-cyclonedx-sbom-file":return"sbom.cdx.json";case"project-openvex-file":return"openvex.vex.json";default:throw new Error(`Unknown output file key: ${e}`)}}};var Ft=require("zx");var ze=require("path"),Zn="anchore/grype";async function ei(t,e,r){r&&console.log(`Initializing Grype DB in cache directory: ${e}`);let n=`${Zn}:${t||"latest"}`,i=await Ft.$`docker run --rm -v '${e}:/tmp/.cache' -e GRYPE_DB_CACHE_DIR=/tmp/.cache -e TMPDIR=/tmp ${n} db update`.nothrow();if(i.stdout&&console.log(` Grype DB Update: ${i.stdout}`),i.stderr&&console.log(` Grype DB Update error: ${i.stderr}`),i.exitCode!==0)throw new Error(`Grype DB update failed with exit code ${i.exitCode}: ${i.stderr}`)}async function ti(t,e,r,n,i,o,s){let c=(0,ze.dirname)(r),p=(0,ze.basename)(r),f=[];o||f.push("--quiet");let a=`${Zn}:${t||"latest"}`,m=`${e}:/tmp/.cache`,u=`${c}:/tmp/output`,l=`${n.sbomFile}:/tmp/input.json`,d=`/tmp/output/${p}`,y=await Ft.$`docker run --rm -v ${m} -v ${u} -v ${l} -e GRYPE_DB_CACHE_DIR=/tmp/.cache -e TMPDIR=/tmp -e GRYPE_DB_AUTO_UPDATE=false ${a} sbom:/tmp/input.json -o json --file ${d} --by-cve ${f}`.nothrow();if(y.stdout&&s(` Scan log: ${y.stdout}`),y.stderr&&s(` Scan error: ${y.stderr}`),y.exitCode!==0)throw new Error(`Grype scan failed with exit code ${y.exitCode}: ${y.stderr}`);s(` Grype output file: ${r}`);try{let S=await X(r);Js(i,S)}catch(S){throw new Error(`Grype scan results could not be read from '${r}': ${S}`,{cause:S})}}function Js(t,e){if(e)for(let r of e.matches){let n=Ws(r);t.addVulnerability(n,"grype")}}function Ws(t){let e=t.vulnerability,r=e.id,n=J(t.artifact.purl),i=J(e.dataSource),o=Hs(e.severity);return{id:r,severity:o,scannerSeverity:{grype:o},title:"",description:e.description,components:[n],detectedBy:["grype"],refs:[i]}}function Hs(t){switch(t){case"Negligible":return"LOW";case"Low":return"LOW";case"Medium":return"MEDIUM";case"High":return"HIGH";case"Critical":return"CRITICAL";default:return"UNKNOWN"}}var ri=require("fs/promises"),Nt=class{components=new Map;clear(){this.components.clear()}has(e){return this.components.has(e)}update(e,r){for(let n of r)this.components.set(J(n.coordinates),n);for(let n of e)this.components.has(n)||this.components.set(n,{coordinates:n,description:"",reference:"",vulnerabilities:[]})}read(e){let r=[];for(let n of e){let i=this.components.get(n);i&&r.push(i)}return r}},Mt=new Nt;async function ni(t,e,r,n="https://api.guide.sonatype.com",i,o,s){try{let c={},p="";r.user&&r.token&&(c.Authorization=`Basic ${Buffer.from(`${r.user}:${r.token}`).toString("base64")}`,p="/authorized");let f=`${n}/api/v3${p}/component-report`,a=await Ys(e.sbomFile),m=new Set(a.map(y=>y.purl.replace(/\?.*$/,"")));ta(m);let u=Array.from(m),l=u.filter(y=>!Mt.has(y));o&&s(` Sonatype OssIndex will analyze ${l.length} packages for project ${e.name}, cache hit for ${u.length-l.length} packages.`);for(let y=0;y<l.length;y+=128){let S=l.slice(y,y+128),w=JSON.stringify({coordinates:S});o&&s(` Sonatype OssIndex request ${f} with body: ${w}`);let b=await(await fetch(f,{method:"POST",headers:{...c,"Content-Type":"application/vnd.ossindex.component-report-request.v1+json"},body:w})).json();Array.isArray(b)?Mt.update(S,b):s(` Sonatype OssIndex Error: ${b.code} - ${b.message}`)}let d=Mt.read(u).filter(y=>y.vulnerabilities.length>0);await(0,ri.writeFile)(t,JSON.stringify(d,null,2)),s(` Sonatype OssIndex output file: ${t}`),zs(i,d)}catch(c){throw new Error(`Sonatype OSS Index scan failed: ${c}`,{cause:c})}}async function Ys(t){return(await X(t)).components.filter(r=>Qs(r)&&!Ks(r))}function Qs(t){return!!t.purl}function Ks(t){return t.group?t.group.startsWith("de.conterra")||t.group.startsWith("org.n52.security"):!1}function zs(t,e){if(e)for(let r of e)for(let n of r.vulnerabilities){let i=Zs(n,r.coordinates);t.addVulnerability(i,"ossindex")}}function Zs(t,e){let r=t.cve||t.id,n=J(e),i=J(t.reference),o=ea(t.cvssScore);return{id:r,severity:o,scannerSeverity:{ossindex:o},title:t.title,description:t.description,components:[n],detectedBy:["ossindex"],refs:i?[i]:[]}}function ea(t){return t===0?"UNKNOWN":t<4?"LOW":t<7?"MEDIUM":t<9?"HIGH":"CRITICAL"}function ta(t){let e=Array.from(t);for(let r of e){let n=r.replace(/(@[^-]+)-.*$/g,"$1");t.add(n)}}var Rt=require("zx");var Ze=require("path"),ii="aquasec/trivy";async function oi(t,e,r,n){let i=[];r&&(i.push("-e"),i.push(`GITHUB_TOKEN=${r}`));let o=[];o.push("--db-repository"),o.push("public.ecr.aws/aquasecurity/trivy-db,aquasec/trivy-db,ghcr.io/aquasecurity/trivy-db"),n||o.push("--quiet");let s=`${ii}:${t||"0.70.0"}`,c=await Rt.$`docker run --rm -v '${e}:/.cache' ${i} ${s} ${o} --cache-dir '/.cache' sbom --download-db-only`.nothrow();if(!c.stdout&&!c.stderr&&console.log(" Trivy DB Update: finished"),c.stdout&&console.log(` Trivy DB Update: ${c.stdout}`),c.stderr&&console.log(` Trivy DB Update error: ${c.stderr}`),c.exitCode!==0)throw new Error(`Trivy DB update failed with exit code ${c.exitCode}: ${c.stderr}`)}async function si(t,e,r,n,i,o,s){let c=(0,Ze.dirname)(r),p=(0,Ze.basename)(r),f=[];o||f.push("--quiet");let a=`${ii}:${t||"0.69.3"}`,m=`${e}:/.cache`,u=`${c}:/tmp/output`,l=`${n.sbomFile}:/tmp/input.json`,d=`/tmp/output/${p}`,y=await Rt.$`docker run --rm -v ${m} -v ${u} -v ${l} ${a} sbom --cache-dir '/.cache' --format json --output ${d} ${f} --skip-db-update /tmp/input.json`.nothrow();if(y.stdout&&s(` Scan log: ${y.stdout}`),y.stderr&&s(` Scan error: ${y.stderr}`),y.exitCode!==0)throw new Error(`Trivy scan failed with exit code ${y.exitCode}: ${y.stderr}`);s(` Trivy output file: ${r}`);try{let S=await X(r);ra(i,S)}catch(S){throw new Error(`Trivy scan results could not be read from '${r}': ${S}`,{cause:S})}}function ra(t,e){if(e){for(let r of e.Results??[])if(r.Vulnerabilities)for(let n of r.Vulnerabilities){let i=na(n);t.addVulnerability(i,"trivy")}}}function na(t){let e=t.VulnerabilityID,r=J(t.PkgIdentifier.PURL),n=J(t.PrimaryURL),i=ia(t.Severity);return{id:e,severity:i,scannerSeverity:{trivy:i},title:t.Title,description:t.Description,components:[r],detectedBy:["trivy"],refs:[n]}}function ia(t){switch(t){case"UNKNOWN":case"LOW":case"MEDIUM":case"HIGH":case"CRITICAL":return t;default:return"UNKNOWN"}}var et=class{constructor(e,r,n){this.scanners=e;this.cacheDir=r;this.options=n}scanners;cacheDir;options;async init(e){let r=[];for(let n of this.scanners)switch(n.name){case"grype":r.push(ei(n.version,this.cacheDir,e));break;case"trivy":r.push(oi(n.version,this.cacheDir,this.options.trivyGithubToken,e));break;case"ossindex":continue}await Promise.all(r)}async scanProject(e,r,n,i,o){let s=[];for(let c of this.scanners)s.push(this.scanProjectBy(c,e,r,this.cacheDir,n,this.options.ossIndexBaseUrl,this.options.ossIndexApiUser,this.options.ossIndexApiToken,i,o));await Promise.all(s)}async scanProjectBy(e,r,n,i,o,s,c,p,f,a){switch(e.name){case"grype":return ti(e.version,i,await n.lookupOutputFileForWriting("grype-results"),r,o,f,a);case"trivy":return si(e.version,i,await n.lookupOutputFileForWriting("trivy-results"),r,o,f,a);case"ossindex":return ni(await n.lookupOutputFileForWriting("ossindex-results"),r,{user:c,token:p},s,o,f,a)}}};async function ai(t,e,r){await Ye(t,async n=>{let i=await n.read(),o=!1,s=i.statements,c=[];for(let p of s){if(r&&!It(p).has(r)||!p.products)continue;let f=p.products.findIndex(a=>a["@id"]===e);f!==-1&&(p.products.splice(f,1),o=!0,p.products.length===0&&c.push(p))}if(o){for(let p of c){let f=s.indexOf(p);s.splice(f,1)}if(s.length===0){console.info(`Remove ${e} from ${n.location} and delete file.`),await n.delete();return}console.info(`Remove ${e} from ${n.location}`),await n.write(i)}})}var ke=require("fs/promises"),Vt=require("path");async function li(t,e){let{orderBy:r,reportNoLongerDetectedVulnerabilities:n,reportCveDetails:i,outputDirectory:o}={orderBy:"CVE",reportNoLongerDetectedVulnerabilities:!0,reportCveDetails:!1,...e},s=!1,c=!1,p=!1,f=new Map,a=new Map,m=new Map,u=new Map,l=new Map,d=[],y=new Map;for(let b of t.values()){let G=b.project,R=`${G.name}@${G.version}`;if(b.error&&(s=!0,d.push({project:R,error:b.error})),G.silent)continue;let nt=U[G.minimumSeverity],he=b.newVulns.filter(h=>nt<=U[h.severity]);for(let h of he){if(c=!0,!f.has(h.id))f.set(h.id,{id:h.id,title:h.title,severity:h.severity,description:h.description,components:h.components,refs:h.refs});else{let v=f.get(h.id);la(v,h)}a.has(h.id)||a.set(h.id,[]),u.has(R)||u.set(R,[]),y.has(R)||y.set(R,new Map),u.get(R).push(h.id),a.get(h.id).push(R);for(let v of h.componentTree)v.purl&&(y.get(R).has(v.purl)||y.get(R).set(v.purl,v))}for(let h of b.noLongerDetectedVulns)p=!0,m.has(h)||m.set(h,[]),l.has(R)||l.set(R,[]),l.get(R).push(h),m.get(h).push(R)}let S;o&&(S=(0,Vt.join)(o,"scan-summary.txt"),await(0,ke.writeFile)(S,"","utf8"));let w=async b=>{console.log(b),S&&await(0,ke.appendFile)(S,b+`
39
- `,"utf8")};switch(await w("=== Scan summary ==="),d.length&&await oa(w,d),i&&await ca(w,f,y),r){case"CVE":{await aa(w,a,f,n?m:new Map);break}case"PROJECT":{await sa(w,u,n?l:new Map,f);break}}!s&&!c&&(!p||!n)&&await w(" No issues found");let D={errors:d,vulnerabilities:Object.fromEntries(f),vulnerabilityToProject:Object.fromEntries(a.entries()),projectToVulnerability:Object.fromEntries(u.entries()),projectsToComponents:Object.fromEntries(Array.from(y.entries()).map(([b,G])=>[b,Object.fromEntries(G.entries())])),noLongerDetectedVulnerabilities:Object.fromEntries(m)};if(o){let b=(0,Vt.join)(o,"scan-summary.json");await(0,ke.writeFile)(b,JSON.stringify(D,null,2),"utf8")}return{hasError:s,hasNewVuln:c,hasNoLongerDetectedVuln:p}}async function oa(t,e){await t(""),await t("- Errors during scan:");for(let{project:r,error:n}of e)await t(` - ${r}:`),await t(` Error: ${n}`)}async function sa(t,e,r,n){let i=new Set([...Array.from(e.keys()),...Array.from(r.keys())]),o=Array.from(i.keys()).sort();if(o.length){await t(""),await t("- Vulnerabilities by project:");for(let s of o){await t(` - ${s}:`);let c=e.get(s)??[];for(let f of c.slice().sort(At(a=>n.get(a).severity))){let{severity:a}=n.get(f);await t(` - [${a}] ${f}`)}let p=(r.get(s)??[]).slice().sort();for(let f of p)await t(` - ${f} (no longer detected)`)}}}async function aa(t,e,r,n){let i=Array.from(e.keys()).sort(At(s=>r.get(s).severity));if(i.length){await t(""),await t("- New vulnerabilities:");for(let s of i){let c=e.get(s),{severity:p}=r.get(s);await t(` - [${p}] ${s}`);for(let f of c.slice().sort())await t(` - ${f}`)}}let o=Array.from(n.keys()).sort();if(o.length){await t(""),await t("- Declared but no longer detected vulnerabilities:");for(let s of o){let c=n.get(s);await t(` - ${s}`);for(let p of c.slice().sort())await t(` - ${p}`)}}}async function ca(t,e,r){if(e.size===0)return;await t(""),await t("- Vulnerability details:");let n=Array.from(e.keys()).sort(At(i=>e.get(i).severity));for(let i of n){let o=e.get(i);if(await t(` - [${o.severity}] ${o.id} - ${o.title||""}:`),o.description){await t(" Description:");let s=o.description.split(/\r?\n/);for(let c of s)await t(` ${c}`)}if(o.components.length){await t(" Components:");for(let s of o.components)await t(" - "+s);if(r){for(let s of o.components)for(let[c,p]of r.entries())if(p.has(s)){await t(` Usage Tree of ${s} by ${c} (as example):`),await t(Ge(p.get(s)," "));break}}}if(o.refs.length){await t(" Links:");for(let s of o.refs)await t(` - ${s}`)}}}function la(t,e){t.title=t.title||e.title,t.severity=U[t.severity]>U[e.severity]?t.severity:e.severity,t.description=t.description||e.description,t.components=ci(t.components,e.components),t.refs=ci(t.refs,e.refs)}function ci(t,e){let r=new Set([...t,...e]);return Array.from(r)}function At(t){return(e,r)=>{let n=t(e),i=t(r),o=U[n],s=U[i];return o!==s?o>s?-1:1:e.localeCompare(r)}}tt.os.type().startsWith("Windows")&&(0,tt.usePowerShell)();async function ui(t){let e=await lt(t),r=e.cacheDir;await se(r)||await(0,le.mkdir)(r);let n=e.outDir;await se(n)&&await at(n),await(0,le.mkdir)(n);let i=await pa(e,{user:t.vexUrlsUser,pw:t.vexUrlsPw}),o=new Je(e.mavenRepo,{user:t.mavenRepoUser,pw:t.mavenRepoPw}),s=da(e,t,r),c=Date.now();console.log("Initializing scanner engines ..."),await s.init(t.verbose),console.log(`Scanner engines initialization took ${Date.now()-c}ms
40
- `);let p=ya(t),f=e.projects,a=new Map,m=Date.now();console.log("Scanning projects ...");let u=f.filter(p).map(d=>{let y=new Qe(d,n,e.createSubDirsForProject),S=[],w=b=>{S.push(b)};return{scan(){return ua(d,y,o,s,i,w,a,t,S)}}});await Sa(u),console.log(`Scanning took ${Date.now()-m}ms`),t.autoRemoveUnusedStatements&&await ha(a,e.vexDir);let l=await li(a,{orderBy:e.consoleReport.startsWith("BY_CVE")?"CVE":"PROJECT",reportCveDetails:e.consoleReport.endsWith("_DETAILED"),reportNoLongerDetectedVulnerabilities:e.reportNoLongerDetectedVulnerabilities,outputDirectory:n});if(l.hasError)return 1;if(l.hasNewVuln){if(e.onNewVulnerabilities==="fail")return 1;e.onNewVulnerabilities==="warn"&&(console.log("##vso[task.logissue type=warning;]NEW_VULNERABILITIES_DETECTED"),console.log("##vso[task.complete result=SucceededWithIssues;]"))}if(l.hasNoLongerDetectedVuln){if(e.onNoLongerDetectedVulnerabilities==="fail")return 1;e.onNoLongerDetectedVulnerabilities==="warn"&&(console.log("##vso[task.logissue type=warning;]NO_LONGER_DETECTED_VULNERABILITIES"),console.log("##vso[task.complete result=SucceededWithIssues;]"))}return 0}async function ua(t,e,r,n,i,o,s,c,p){try{let{unmatchedVulnerabilities:f,noLongerDetectedVulnerabilities:a}=await fa(t,e,r,n,i,c.verbose,o);s.set(t.purl,{project:t,newVulns:f,noLongerDetectedVulns:a})}catch(f){let a=f;s.set(t.purl,{project:t,error:`${a}`,newVulns:[],noLongerDetectedVulns:[]})}if(c.verbose)for(let f of p)console.log(f)}async function fa(t,e,r,n,i,o,s){let c=await Kn(t,await e.lookupOutputFileForWriting("project-cyclonedx-sbom-file"),r);s(`Analyzing project: ${c.name} - ${c.version} - ${c.sbomFile}`);let p=await X(c.sbomFile);if(!p)throw new Error(`Could not read SBOM file ${c.sbomFile} for project ${c.name}`);if(!p.components||p.components.length===0)throw new Error(`SBOM file ${c.sbomFile} for project ${c.name} does not contain any components`);let f=new De(Xe.createForSbom(p));await n.scanProject(c,e,f,o,s);let a=i.filterByProduct([c.purl,...c.purlAliases]),{unmatchedVulnerabilities:m}=f.enhanceWithVexData(a),u=c.detectNoLongerUsedVulnerabilities?a.findNotMatchingVulnerabilities(f.getAllVulnIds()):[];return await ma(e,c,f,a,s),{unmatchedVulnerabilities:m,noLongerDetectedVulnerabilities:u}}async function ma(t,e,r,n,i){let o=r.getAllVulnerabilitiesSortedBySeverity(),s=await t.lookupOutputFileForWriting("aggregate-results");await(0,le.writeFile)(s,JSON.stringify(o,null,2)),i(` Vulnerabilities output file: ${s}`);let c=await t.lookupOutputFileForWriting("aggregated-sarif-results"),p=Qn(o,e);await(0,le.writeFile)(c,JSON.stringify(p,null,2)),i(` Vuln Sarif output file: ${c}`);let f=n.toVexFile(o.filter(m=>m.vexStatement).map(m=>{let u=m.vexStatement;for(let l of m.components??[])u.products.push({"@id":l});return u}));if(!f)return;let a=await t.lookupOutputFileForWriting("project-openvex-file");await(0,le.writeFile)(a,JSON.stringify(f,null,2)),i(` OpenVex file: ${a}`)}async function pa(t,e){let r=t.vexDir,n;await se(r)?n=await ye.fromFiles(r):n=new ye;for(let i of t.vexUrls)await ye.fromUrl(i,e,n);return n}function da(t,e,r){if(e.scannerEngine)return e.scannerEngine;if(t.scanners.length===0)throw new Error("No scanners configured");return new et(t.scanners,r,e)}function ya(t){let{reduceToProjectName:e,reduceToProjectVersion:r}=t;return n=>!(!n.enabled||e&&(n.name!==e||r&&n.version!==r))}async function ha(t,e){for(let r of t.values())if(!r.project.silent)for(let n of r.noLongerDetectedVulns)await ai(e,r.project.purl,n)}async function Sa(t,e=5){let r=0,n=0,i=0,o=t.length,s,c=new Promise(f=>{s=f});function p(){for(;r<e&&i<o;){let f=t[i++];r++,f.scan().finally(()=>{r--,n++,n>=o?s():p()})}}p(),await c}var fi=require("zx");fi.dotenv.config();var K=process.env;(async()=>{let t=await ui({workingDir:process.cwd(),reduceToProjectName:process.argv[2],reduceToProjectVersion:process.argv[3],ossIndexApiUser:K.OSS_INDEX_API_USER,ossIndexApiToken:K.OSS_INDEX_API_TOKEN,ossIndexBaseUrl:K.OSS_INDEX_BASE_URL,mavenRepoUser:K.MAVEN_REPO_USER,mavenRepoPw:K.MAVEN_REPO_PW,trivyGithubToken:K.TRIVY_GITHUB_TOKEN,vexUrlsUser:K.VEX_URLS_USER,vexUrlsPw:K.VEX_URLS_PW,verbose:K.VERBOSE==="true",autoRemoveUnusedStatements:K.AUTO_REMOVE_UNUSED_STATEMENTS==="true"});process.exitCode=t})();
38
+ `}var We=require("fs/promises");async function Kn(t,e,r){if("sbomFile"in t)return await(0,We.copyFile)(t.sbomFile,e),t.sbomFile=e,t;let n=await r.downloadArtifact(t.sbomMavenCoordinates);return await(0,We.writeFile)(e,n),{...t,sbomFile:e}}var Je=class{constructor(e,r){this.repo=e;this.authn=r}repo;authn;async downloadArtifact(e){let r=this.toArtifactInfo(e);if(this.isSnapshotVersion(r.version)&&!r.timestamp){let o=await this.fetchLatestSnapshotTimestamp(r);r={...r,timestamp:o}}let n=this.toArtifactUrl(r),i=await Se(n,this.authn);return Buffer.from(await i.arrayBuffer())}async fetchLatestSnapshotTimestamp(e){let r=`${this.toArtifactBaseUrl(e)}/maven-metadata.xml`,i=await(await Se(r,this.authn)).text();return Xs(i,e)}toArtifactUrl(e){let r=this.toArtifactBaseUrl(e),n=this.isSnapshotVersion(e.version)&&e.timestamp?e.version.replace(/SNAPSHOT$/,e.timestamp):e.version;return`${r}/${e.artifactId}-${n}-${e.classifier}.${e.extension}`}toArtifactBaseUrl(e){return`${this.repo}/${e.groupId.replace(/\./g,"/")}/${e.artifactId}/${e.version}`}isSnapshotVersion(e){return e.endsWith("-SNAPSHOT")}toArtifactInfo(e){let r=e.split(":");return{groupId:r[0],artifactId:r[1],version:r[2],classifier:r[3],extension:"json"}}};function Xs(t,e){if(e.classifier&&e.extension){let i=t.match(new RegExp(`<snapshotVersion>\\s*<classifier>${e.classifier}</classifier>\\s*<extension>${e.extension}</extension>\\s*<value>([^<]+)</value>\\s*<updated>[^<]+</updated>\\s*</snapshotVersion>`)),o=e.version.replace(/SNAPSHOT$/,"");if(i?.[1])return i[1].replace(o,"")}let r=t.match(/<timestamp>([^<]+)<\/timestamp>/),n=t.match(/<buildNumber>([^<]+)<\/buildNumber>/);if(!r||!n)throw new Error(`Failed to get timestamp and build number from ${t} for artifact '${e.artifactId}'`);return`${r[1]}-${n[1]}`}var He=require("fs/promises"),Ct=require("path");var Tt=class{constructor(e){this.location=e}location;async read(){let e=await X(this.location);if(!e)throw new Error("Invalid VEX file");return e}async write(e){await st(this.location,e)}async delete(){await(0,He.unlink)(this.location)}};async function Ye(t,e){for(let r of await(0,He.readdir)(t,{withFileTypes:!0}))r.name.endsWith(".json")?await e(new Tt((0,Ct.resolve)(r.parentPath,r.name))):r.isDirectory()&&await Ye((0,Ct.resolve)(r.parentPath,r.name),e)}function It(t){let e=t.vulnerability.name;return new Set([e,...t.vulnerability.aliases??[]])}var ye=class t{statements=[];filteredToProducts=[];static async fromUrl(e,r,n=new t){let o=await(await Se(e,r)).json();return n.add(o),n}static async fromFiles(e,r=new t){return await Ye(e,async n=>{let i=await n.read();r.add(i)}),r}add(e){Js(e);let r=e.timestamp;for(let n of e.statements){n.timestamp=n.timestamp??r;let i=Date.parse(n.timestamp),o=n.vulnerability.name,s=It(n),c=new Set(n.products?.map(f=>f["@id"]).filter(f=>!!f)??[]),p=new jt(i,o,s,c,n);this.statements.push(p)}this.sortStatementsByTimestampNewestFirst()}filterByProduct(e){if(this.assertCorrectProductId(e),this.filteredToProducts.length)return this;let r=new t;return r.filteredToProducts=e.slice(0),r.statements=this.statements.filter(n=>n.matchesAtLeastOneProduct(e)),r}findNotMatchingVulnerabilities(e,r){let n=this.filterByProduct(r??this.filteredToProducts),i=new Set;for(let o of n.statements)i.add(o.vulnName);for(let o of e)i.delete(o);return Array.from(i)}newestVulnerabilityStatement(e,r){let n=this.filterByProduct(r??this.filteredToProducts);for(let i of n.statements)if(i.matchesVulnerability(e))return this.reduceToProductInformation(i,n.filteredToProducts[0])}toVexFileForProduct(e){let r=this.filterByProduct(e??this.filteredToProducts),n=r.statements.map(i=>this.reduceToProductInformation(i,r.filteredToProducts[0]));return this.toVexFile(n)}toVexFile(e){let r=e.filter(i=>i.status!=="under_investigation");if(r.length===0)return;this.sortVexStatementsByTimestampNewestFirst(r);let n=r[0].timestamp;return{"@context":"https://openvex.dev/ns/v0.2.0","@id":"https://openvex.dev/docs/public/vex-fc763e6eb63bfbcda20b7cbbddd4e9f8feaaa317fe8d8a6f51a5663a1180343e",author:"conterra",timestamp:n,last_updated:n,version:1,statements:r}}assertCorrectProductId(e){if(!e||e.length===0)throw new Error("Product ID must be provided");if(this.filteredToProducts.length&&!Gs(this.filteredToProducts,e))throw new Error("Cannot filter to a different product")}reduceToProductInformation(e,r){let n={timestamp:new Date(e.timestamp).toISOString(),...e.statement};if(!r)return n;let i=n.products?.filter(o=>o["@id"]===r);return i?.length||(i=[{"@id":r}]),{...n,products:i}}sortStatementsByTimestampNewestFirst(){this.statements.sort((e,r)=>r.timestamp-e.timestamp)}sortVexStatementsByTimestampNewestFirst(e){e.sort((r,n)=>Date.parse(n.timestamp)-Date.parse(r.timestamp))}};function Gs(t,e){return t.length===e.length&&t.every((r,n)=>r===e[n])}var jt=class{constructor(e,r,n,i,o){this.timestamp=e;this.vulnName=r;this.vulnAliases=n;this.products=i;this.statement=o}timestamp;vulnName;vulnAliases;products;statement;matchesProduct(e){return this.products.has(e)}matchesAtLeastOneProduct(e){return e.some(this.matchesProduct.bind(this))}matchesVulnerability(e){return this.vulnAliases.has(e)}};function Js(t){if(t?.["@context"]!=="https://openvex.dev/ns/v0.2.0")throw new Error("Invalid VEX file format")}var Ke=require("path"),zn=require("fs/promises");var Qe=class{constructor(e,r,n){this.project=e;this.outputDir=r;this.useSubDirForProject=n}project;outputDir;useSubDirForProject;async lookupOutputFileForWriting(e){let r=this.useSubDirForProject?`${this.project.name}-${this.project.version}`:"",n=`${this.project.name}-${this.project.version}-`,i=this.getFileSuffix(e),o=(0,Ke.resolve)(this.outputDir,r,`${n}${i}`),s=(0,Ke.dirname)(o);return await se(s)||await(0,zn.mkdir)(s,{recursive:!0}),o}getFileSuffix(e){switch(e){case"grype-results":return"scan-grype-results.json";case"trivy-results":return"scan-trivy-results.json";case"ossindex-results":return"scan-ossindex-results.json";case"aggregate-results":return"scan-aggregate-results.json";case"aggregated-sarif-results":return"scan-aggregated-results.sarif.json";case"project-cyclonedx-sbom-file":return"sbom.cdx.json";case"project-openvex-file":return"openvex.vex.json";default:throw new Error(`Unknown output file key: ${e}`)}}};var Ft=require("zx");var ze=require("path"),Zn="anchore/grype";async function ei(t,e,r){r&&console.log(`Initializing Grype DB in cache directory: ${e}`);let n=`${Zn}:${t||"latest"}`,i=await Ft.$`docker run --rm -v '${e}:/tmp/.cache' -e GRYPE_DB_CACHE_DIR=/tmp/.cache -e TMPDIR=/tmp ${n} db update`.nothrow();if(i.stdout&&console.log(` Grype DB Update: ${i.stdout}`),i.stderr&&console.log(` Grype DB Update error: ${i.stderr}`),i.exitCode!==0)throw new Error(`Grype DB update failed with exit code ${i.exitCode}: ${i.stderr}`)}async function ti(t,e,r,n,i,o,s){let c=(0,ze.dirname)(r),p=(0,ze.basename)(r),f=[];o||f.push("--quiet");let a=`${Zn}:${t||"latest"}`,m=`${e}:/tmp/.cache`,u=`${c}:/tmp/output`,l=`${n.sbomFile}:/tmp/input.json`,d=`/tmp/output/${p}`,y=await Ft.$`docker run --rm -v ${m} -v ${u} -v ${l} -e GRYPE_DB_CACHE_DIR=/tmp/.cache -e TMPDIR=/tmp -e GRYPE_DB_AUTO_UPDATE=false ${a} sbom:/tmp/input.json -o json --file ${d} --by-cve ${f}`.nothrow();if(y.stdout&&s(` Scan log: ${y.stdout}`),y.stderr&&s(` Scan error: ${y.stderr}`),y.exitCode!==0)throw new Error(`Grype scan failed with exit code ${y.exitCode}: ${y.stderr}`);s(` Grype output file: ${r}`);try{let S=await X(r);Ws(i,S)}catch(S){throw new Error(`Grype scan results could not be read from '${r}': ${S}`,{cause:S})}}function Ws(t,e){if(e)for(let r of e.matches){let n=Hs(r);t.addVulnerability(n,"grype")}}function Hs(t){let e=t.vulnerability,r=e.id,n=J(t.artifact.purl),i=J(e.dataSource),o=Ys(e.severity);return{id:r,severity:o,scannerSeverity:{grype:o},title:"",description:e.description,components:[n],detectedBy:["grype"],refs:[i]}}function Ys(t){switch(t){case"Negligible":return"LOW";case"Low":return"LOW";case"Medium":return"MEDIUM";case"High":return"HIGH";case"Critical":return"CRITICAL";default:return"UNKNOWN"}}var ri=require("fs/promises"),Nt=class{components=new Map;clear(){this.components.clear()}has(e){return this.components.has(e)}update(e,r){for(let n of r)this.components.set(J(n.coordinates),n);for(let n of e)this.components.has(n)||this.components.set(n,{coordinates:n,description:"",reference:"",vulnerabilities:[]})}read(e){let r=[];for(let n of e){let i=this.components.get(n);i&&r.push(i)}return r}},Mt=new Nt;async function ni(t,e,r,n="https://api.guide.sonatype.com",i,o,s){try{let c={},p="";r.user&&r.token&&(c.Authorization=`Basic ${Buffer.from(`${r.user}:${r.token}`).toString("base64")}`,p="/authorized");let f=`${n}/api/v3${p}/component-report`,a=await Qs(e.sbomFile),m=new Set(a.map(y=>y.purl.replace(/\?.*$/,"")));ra(m);let u=Array.from(m),l=u.filter(y=>!Mt.has(y));o&&s(` Sonatype OssIndex will analyze ${l.length} packages for project ${e.name}, cache hit for ${u.length-l.length} packages.`);for(let y=0;y<l.length;y+=128){let S=l.slice(y,y+128),w=JSON.stringify({coordinates:S});o&&s(` Sonatype OssIndex request ${f} with body: ${w}`);let b=await(await fetch(f,{method:"POST",headers:{...c,"Content-Type":"application/vnd.ossindex.component-report-request.v1+json"},body:w})).json();Array.isArray(b)?Mt.update(S,b):s(` Sonatype OssIndex Error: ${b.code} - ${b.message}`)}let d=Mt.read(u).filter(y=>y.vulnerabilities.length>0);await(0,ri.writeFile)(t,JSON.stringify(d,null,2)),s(` Sonatype OssIndex output file: ${t}`),Zs(i,d)}catch(c){throw new Error(`Sonatype OSS Index scan failed: ${c}`,{cause:c})}}async function Qs(t){return(await X(t)).components.filter(r=>Ks(r)&&!zs(r))}function Ks(t){return!!t.purl}function zs(t){return t.group?t.group.startsWith("de.conterra")||t.group.startsWith("org.n52.security"):!1}function Zs(t,e){if(e)for(let r of e)for(let n of r.vulnerabilities){let i=ea(n,r.coordinates);t.addVulnerability(i,"ossindex")}}function ea(t,e){let r=t.cve||t.id,n=J(e),i=J(t.reference),o=ta(t.cvssScore);return{id:r,severity:o,scannerSeverity:{ossindex:o},title:t.title,description:t.description,components:[n],detectedBy:["ossindex"],refs:i?[i]:[]}}function ta(t){return t===0?"UNKNOWN":t<4?"LOW":t<7?"MEDIUM":t<9?"HIGH":"CRITICAL"}function ra(t){let e=Array.from(t);for(let r of e){let n=r.replace(/(@[^-]+)-.*$/g,"$1");t.add(n)}}var Rt=require("zx");var Ze=require("path"),ii="aquasec/trivy",oi="0.70.0";async function si(t,e,r,n){let i=[];r&&(i.push("-e"),i.push(`GITHUB_TOKEN=${r}`));let o=[];o.push("--db-repository"),o.push("public.ecr.aws/aquasecurity/trivy-db,aquasec/trivy-db,ghcr.io/aquasecurity/trivy-db"),n||o.push("--quiet");let s=`${ii}:${t||oi}`,c=await Rt.$`docker run --rm -v '${e}:/.cache' ${i} ${s} ${o} --cache-dir '/.cache' sbom --download-db-only`.nothrow();if(!c.stdout&&!c.stderr&&console.log(" Trivy DB Update: finished"),c.stdout&&console.log(` Trivy DB Update: ${c.stdout}`),c.stderr&&console.log(` Trivy DB Update error: ${c.stderr}`),c.exitCode!==0)throw new Error(`Trivy DB update failed with exit code ${c.exitCode}: ${c.stderr}`)}async function ai(t,e,r,n,i,o,s){let c=(0,Ze.dirname)(r),p=(0,Ze.basename)(r),f=[];o||f.push("--quiet");let a=`${ii}:${t||oi}`,m=`${e}:/.cache`,u=`${c}:/tmp/output`,l=`${n.sbomFile}:/tmp/input.json`,d=`/tmp/output/${p}`,y=await Rt.$`docker run --rm -v ${m} -v ${u} -v ${l} ${a} sbom --cache-dir '/.cache' --format json --output ${d} ${f} --skip-db-update /tmp/input.json`.nothrow();if(y.stdout&&s(` Scan log: ${y.stdout}`),y.stderr&&s(` Scan error: ${y.stderr}`),y.exitCode!==0)throw new Error(`Trivy scan failed with exit code ${y.exitCode}: ${y.stderr}`);s(` Trivy output file: ${r}`);try{let S=await X(r);na(i,S)}catch(S){throw new Error(`Trivy scan results could not be read from '${r}': ${S}`,{cause:S})}}function na(t,e){if(e){for(let r of e.Results??[])if(r.Vulnerabilities)for(let n of r.Vulnerabilities){let i=ia(n);t.addVulnerability(i,"trivy")}}}function ia(t){let e=t.VulnerabilityID,r=J(t.PkgIdentifier.PURL),n=J(t.PrimaryURL),i=oa(t.Severity);return{id:e,severity:i,scannerSeverity:{trivy:i},title:t.Title,description:t.Description,components:[r],detectedBy:["trivy"],refs:[n]}}function oa(t){switch(t){case"UNKNOWN":case"LOW":case"MEDIUM":case"HIGH":case"CRITICAL":return t;default:return"UNKNOWN"}}var et=class{constructor(e,r,n){this.scanners=e;this.cacheDir=r;this.options=n}scanners;cacheDir;options;async init(e){let r=[];for(let n of this.scanners)switch(n.name){case"grype":r.push(ei(n.version,this.cacheDir,e));break;case"trivy":r.push(si(n.version,this.cacheDir,this.options.trivyGithubToken,e));break;case"ossindex":continue}await Promise.all(r)}async scanProject(e,r,n,i,o){let s=[];for(let c of this.scanners)s.push(this.scanProjectBy(c,e,r,this.cacheDir,n,this.options.ossIndexBaseUrl,this.options.ossIndexApiUser,this.options.ossIndexApiToken,i,o));await Promise.all(s)}async scanProjectBy(e,r,n,i,o,s,c,p,f,a){switch(e.name){case"grype":return ti(e.version,i,await n.lookupOutputFileForWriting("grype-results"),r,o,f,a);case"trivy":return ai(e.version,i,await n.lookupOutputFileForWriting("trivy-results"),r,o,f,a);case"ossindex":return ni(await n.lookupOutputFileForWriting("ossindex-results"),r,{user:c,token:p},s,o,f,a)}}};async function ci(t,e,r){await Ye(t,async n=>{let i=await n.read(),o=!1,s=i.statements,c=[];for(let p of s){if(r&&!It(p).has(r)||!p.products)continue;let f=p.products.findIndex(a=>a["@id"]===e);f!==-1&&(p.products.splice(f,1),o=!0,p.products.length===0&&c.push(p))}if(o){for(let p of c){let f=s.indexOf(p);s.splice(f,1)}if(s.length===0){console.info(`Remove ${e} from ${n.location} and delete file.`),await n.delete();return}console.info(`Remove ${e} from ${n.location}`),await n.write(i)}})}var ke=require("fs/promises"),Vt=require("path");async function ui(t,e){let{orderBy:r,reportNoLongerDetectedVulnerabilities:n,reportCveDetails:i,outputDirectory:o}={orderBy:"CVE",reportNoLongerDetectedVulnerabilities:!0,reportCveDetails:!1,...e},s=!1,c=!1,p=!1,f=new Map,a=new Map,m=new Map,u=new Map,l=new Map,d=[],y=new Map;for(let b of t.values()){let G=b.project,R=`${G.name}@${G.version}`;if(b.error&&(s=!0,d.push({project:R,error:b.error})),G.silent)continue;let nt=U[G.minimumSeverity],he=b.newVulns.filter(h=>nt<=U[h.severity]);for(let h of he){if(c=!0,!f.has(h.id))f.set(h.id,{id:h.id,title:h.title,severity:h.severity,description:h.description,components:h.components,refs:h.refs});else{let v=f.get(h.id);ua(v,h)}a.has(h.id)||a.set(h.id,[]),u.has(R)||u.set(R,[]),y.has(R)||y.set(R,new Map),u.get(R).push(h.id),a.get(h.id).push(R);for(let v of h.componentTree)v.purl&&(y.get(R).has(v.purl)||y.get(R).set(v.purl,v))}for(let h of b.noLongerDetectedVulns)p=!0,m.has(h)||m.set(h,[]),l.has(R)||l.set(R,[]),l.get(R).push(h),m.get(h).push(R)}let S;o&&(S=(0,Vt.join)(o,"scan-summary.txt"),await(0,ke.writeFile)(S,"","utf8"));let w=async b=>{console.log(b),S&&await(0,ke.appendFile)(S,b+`
39
+ `,"utf8")};switch(await w("=== Scan summary ==="),d.length&&await sa(w,d),i&&await la(w,f,y),r){case"CVE":{await ca(w,a,f,n?m:new Map);break}case"PROJECT":{await aa(w,u,n?l:new Map,f);break}}!s&&!c&&(!p||!n)&&await w(" No issues found");let D={errors:d,vulnerabilities:Object.fromEntries(f),vulnerabilityToProject:Object.fromEntries(a.entries()),projectToVulnerability:Object.fromEntries(u.entries()),projectsToComponents:Object.fromEntries(Array.from(y.entries()).map(([b,G])=>[b,Object.fromEntries(G.entries())])),noLongerDetectedVulnerabilities:Object.fromEntries(m)};if(o){let b=(0,Vt.join)(o,"scan-summary.json");await(0,ke.writeFile)(b,JSON.stringify(D,null,2),"utf8")}return{hasError:s,hasNewVuln:c,hasNoLongerDetectedVuln:p}}async function sa(t,e){await t(""),await t("- Errors during scan:");for(let{project:r,error:n}of e)await t(` - ${r}:`),await t(` Error: ${n}`)}async function aa(t,e,r,n){let i=new Set([...Array.from(e.keys()),...Array.from(r.keys())]),o=Array.from(i.keys()).sort();if(o.length){await t(""),await t("- Vulnerabilities by project:");for(let s of o){await t(` - ${s}:`);let c=e.get(s)??[];for(let f of c.slice().sort(At(a=>n.get(a).severity))){let{severity:a}=n.get(f);await t(` - [${a}] ${f}`)}let p=(r.get(s)??[]).slice().sort();for(let f of p)await t(` - ${f} (no longer detected)`)}}}async function ca(t,e,r,n){let i=Array.from(e.keys()).sort(At(s=>r.get(s).severity));if(i.length){await t(""),await t("- New vulnerabilities:");for(let s of i){let c=e.get(s),{severity:p}=r.get(s);await t(` - [${p}] ${s}`);for(let f of c.slice().sort())await t(` - ${f}`)}}let o=Array.from(n.keys()).sort();if(o.length){await t(""),await t("- Declared but no longer detected vulnerabilities:");for(let s of o){let c=n.get(s);await t(` - ${s}`);for(let p of c.slice().sort())await t(` - ${p}`)}}}async function la(t,e,r){if(e.size===0)return;await t(""),await t("- Vulnerability details:");let n=Array.from(e.keys()).sort(At(i=>e.get(i).severity));for(let i of n){let o=e.get(i);if(await t(` - [${o.severity}] ${o.id} - ${o.title||""}:`),o.description){await t(" Description:");let s=o.description.split(/\r?\n/);for(let c of s)await t(` ${c}`)}if(o.components.length){await t(" Components:");for(let s of o.components)await t(" - "+s);if(r){for(let s of o.components)for(let[c,p]of r.entries())if(p.has(s)){await t(` Usage Tree of ${s} by ${c} (as example):`),await t(Ge(p.get(s)," "));break}}}if(o.refs.length){await t(" Links:");for(let s of o.refs)await t(` - ${s}`)}}}function ua(t,e){t.title=t.title||e.title,t.severity=U[t.severity]>U[e.severity]?t.severity:e.severity,t.description=t.description||e.description,t.components=li(t.components,e.components),t.refs=li(t.refs,e.refs)}function li(t,e){let r=new Set([...t,...e]);return Array.from(r)}function At(t){return(e,r)=>{let n=t(e),i=t(r),o=U[n],s=U[i];return o!==s?o>s?-1:1:e.localeCompare(r)}}tt.os.type().startsWith("Windows")&&(0,tt.usePowerShell)();async function fi(t){let e=await lt(t),r=e.cacheDir;await se(r)||await(0,le.mkdir)(r);let n=e.outDir;await se(n)&&await at(n),await(0,le.mkdir)(n);let i=await da(e,{user:t.vexUrlsUser,pw:t.vexUrlsPw}),o=new Je(e.mavenRepo,{user:t.mavenRepoUser,pw:t.mavenRepoPw}),s=ya(e,t,r),c=Date.now();console.log("Initializing scanner engines ..."),await s.init(t.verbose),console.log(`Scanner engines initialization took ${Date.now()-c}ms
40
+ `);let p=ha(t),f=e.projects,a=new Map,m=Date.now();console.log("Scanning projects ...");let u=f.filter(p).map(d=>{let y=new Qe(d,n,e.createSubDirsForProject),S=[],w=b=>{S.push(b)};return{scan(){return fa(d,y,o,s,i,w,a,t,S)}}});await ga(u),console.log(`Scanning took ${Date.now()-m}ms`),t.autoRemoveUnusedStatements&&await Sa(a,e.vexDir);let l=await ui(a,{orderBy:e.consoleReport.startsWith("BY_CVE")?"CVE":"PROJECT",reportCveDetails:e.consoleReport.endsWith("_DETAILED"),reportNoLongerDetectedVulnerabilities:e.reportNoLongerDetectedVulnerabilities,outputDirectory:n});if(l.hasError)return 1;if(l.hasNewVuln){if(e.onNewVulnerabilities==="fail")return 1;e.onNewVulnerabilities==="warn"&&(console.log("##vso[task.logissue type=warning;]NEW_VULNERABILITIES_DETECTED"),console.log("##vso[task.complete result=SucceededWithIssues;]"))}if(l.hasNoLongerDetectedVuln){if(e.onNoLongerDetectedVulnerabilities==="fail")return 1;e.onNoLongerDetectedVulnerabilities==="warn"&&(console.log("##vso[task.logissue type=warning;]NO_LONGER_DETECTED_VULNERABILITIES"),console.log("##vso[task.complete result=SucceededWithIssues;]"))}return 0}async function fa(t,e,r,n,i,o,s,c,p){try{let{unmatchedVulnerabilities:f,noLongerDetectedVulnerabilities:a}=await ma(t,e,r,n,i,c.verbose,o);s.set(t.purl,{project:t,newVulns:f,noLongerDetectedVulns:a})}catch(f){let a=f;s.set(t.purl,{project:t,error:`${a}`,newVulns:[],noLongerDetectedVulns:[]})}if(c.verbose)for(let f of p)console.log(f)}async function ma(t,e,r,n,i,o,s){let c=await Kn(t,await e.lookupOutputFileForWriting("project-cyclonedx-sbom-file"),r);s(`Analyzing project: ${c.name} - ${c.version} - ${c.sbomFile}`);let p=await X(c.sbomFile);if(!p)throw new Error(`Could not read SBOM file ${c.sbomFile} for project ${c.name}`);if(!p.components||p.components.length===0)throw new Error(`SBOM file ${c.sbomFile} for project ${c.name} does not contain any components`);let f=new De(Xe.createForSbom(p));await n.scanProject(c,e,f,o,s);let a=i.filterByProduct([c.purl,...c.purlAliases]),{unmatchedVulnerabilities:m}=f.enhanceWithVexData(a),u=c.detectNoLongerUsedVulnerabilities?a.findNotMatchingVulnerabilities(f.getAllVulnIds()):[];return await pa(e,c,f,a,s),{unmatchedVulnerabilities:m,noLongerDetectedVulnerabilities:u}}async function pa(t,e,r,n,i){let o=r.getAllVulnerabilitiesSortedBySeverity(),s=await t.lookupOutputFileForWriting("aggregate-results");await(0,le.writeFile)(s,JSON.stringify(o,null,2)),i(` Vulnerabilities output file: ${s}`);let c=await t.lookupOutputFileForWriting("aggregated-sarif-results"),p=Qn(o,e);await(0,le.writeFile)(c,JSON.stringify(p,null,2)),i(` Vuln Sarif output file: ${c}`);let f=n.toVexFile(o.filter(m=>m.vexStatement).map(m=>{let u=m.vexStatement;for(let l of m.components??[])u.products.push({"@id":l});return u}));if(!f)return;let a=await t.lookupOutputFileForWriting("project-openvex-file");await(0,le.writeFile)(a,JSON.stringify(f,null,2)),i(` OpenVex file: ${a}`)}async function da(t,e){let r=t.vexDir,n;await se(r)?n=await ye.fromFiles(r):n=new ye;for(let i of t.vexUrls)await ye.fromUrl(i,e,n);return n}function ya(t,e,r){if(e.scannerEngine)return e.scannerEngine;if(t.scanners.length===0)throw new Error("No scanners configured");return new et(t.scanners,r,e)}function ha(t){let{reduceToProjectName:e,reduceToProjectVersion:r}=t;return n=>!(!n.enabled||e&&(n.name!==e||r&&n.version!==r))}async function Sa(t,e){for(let r of t.values())if(!r.project.silent)for(let n of r.noLongerDetectedVulns)await ci(e,r.project.purl,n)}async function ga(t,e=5){let r=0,n=0,i=0,o=t.length,s,c=new Promise(f=>{s=f});function p(){for(;r<e&&i<o;){let f=t[i++];r++,f.scan().finally(()=>{r--,n++,n>=o?s():p()})}}p(),await c}var mi=require("zx");mi.dotenv.config();var K=process.env;(async()=>{let t=await fi({workingDir:process.cwd(),reduceToProjectName:process.argv[2],reduceToProjectVersion:process.argv[3],ossIndexApiUser:K.OSS_INDEX_API_USER,ossIndexApiToken:K.OSS_INDEX_API_TOKEN,ossIndexBaseUrl:K.OSS_INDEX_BASE_URL,mavenRepoUser:K.MAVEN_REPO_USER,mavenRepoPw:K.MAVEN_REPO_PW,trivyGithubToken:K.TRIVY_GITHUB_TOKEN,vexUrlsUser:K.VEX_URLS_USER,vexUrlsPw:K.VEX_URLS_PW,verbose:K.VERBOSE==="true",autoRemoveUnusedStatements:K.AUTO_REMOVE_UNUSED_STATEMENTS==="true"});process.exitCode=t})();
41
41
  /*! Bundled license information:
42
42
 
43
43
  escape-html/index.js:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@conterra/vuln-scan",
3
- "version": "1.0.9",
3
+ "version": "1.0.10",
4
4
  "description": "con terra vulnerability scan process",
5
5
  "author": "con terra GmbH",
6
6
  "license": "Apache-2.0",