@conterra/vuln-scan 0.0.22 → 0.0.23
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.
- package/dist/vuln-scan.js +10 -10
- package/package.json +4 -4
package/dist/vuln-scan.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";var zi=Object.create;var Tt=Object.defineProperty;var Zi=Object.getOwnPropertyDescriptor;var en=Object.getOwnPropertyNames;var tn=Object.getPrototypeOf,rn=Object.prototype.hasOwnProperty;var h=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var nn=(t,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of en(e))!rn.call(t,n)&&n!==r&&Tt(t,n,{get:()=>e[n],enumerable:!(i=Zi(e,n))||i.enumerable});return t};var Ye=(t,e,r)=>(r=t!=null?zi(tn(t)):{},nn(e||!t||!t.__esModule?Tt(r,"default",{value:t,enumerable:!0}):r,t));var O=h(nt=>{"use strict";nt.fromCallback=function(t){return Object.defineProperty(function(...e){if(typeof e[e.length-1]=="function")t.apply(this,e);else return new Promise((r,i)=>{e.push((n,o)=>n!=null?i(n):r(o)),t.apply(this,e)})},"name",{value:t.name})};nt.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(i=>r(null,i),r)},"name",{value:t.name})}});var Mt=h((oa,Nt)=>{var z=require("constants"),sn=process.cwd,ke=null,an=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){return ke||(ke=sn.call(process)),ke};try{process.cwd()}catch{}typeof process.chdir=="function"&&(ot=process.chdir,process.chdir=function(t){ke=null,ot.call(process,t)},Object.setPrototypeOf&&Object.setPrototypeOf(process.chdir,ot));var ot;Nt.exports=cn;function cn(t){z.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=i(t.chmod),t.fchmod=i(t.fchmod),t.lchmod=i(t.lchmod),t.chownSync=
|
|
3
|
-
GFS4: `),console.error(t)});k[C]||($t=global[C]||[],Ut(k,$t),k.close=function(t){function e(r,i){return t.call(k,r,function(n){n||qt(),typeof i=="function"&&i.apply(this,arguments)})}return Object.defineProperty(e,Oe,{value:t}),e}(k.close),k.closeSync=function(t){function e(r){t.apply(k,arguments),qt()}return Object.defineProperty(e,Oe,{value:t}),e}(k.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&process.on("exit",function(){oe(k[C]),require("assert").equal(k[C].length,0)}));var $t;global[C]||Ut(global,k[C]);ct.exports=st(pn(k));process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!k.__patched&&(ct.exports=st(k),k.__patched=!0);function st(t){mn(t),t.gracefulify=st,t.createReadStream=jt,t.createWriteStream=Ft;var e=t.readFile;t.readFile=r;function r(y,w,v){return typeof w=="function"&&(v=w,w=null),I(y,w,v);function I(N,D,P,E){return e(N,D,function(b){b&&(b.code==="EMFILE"||b.code==="ENFILE")?ce([I,[N,D,P],b,E||Date.now(),Date.now()]):typeof P=="function"&&P.apply(this,arguments)})}}var i=t.writeFile;t.writeFile=n;function n(y,w,v,I){return typeof v=="function"&&(I=v,v=null),N(y,w,v,I);function N(D,P,E,b,M){return i(D,P,E,function(L){L&&(L.code==="EMFILE"||L.code==="ENFILE")?ce([N,[D,P,E,b],L,M||Date.now(),Date.now()]):typeof b=="function"&&b.apply(this,arguments)})}}var o=t.appendFile;o&&(t.appendFile=s);function s(y,w,v,I){return typeof v=="function"&&(I=v,v=null),N(y,w,v,I);function N(D,P,E,b,M){return o(D,P,E,function(L){L&&(L.code==="EMFILE"||L.code==="ENFILE")?ce([N,[D,P,E,b],L,M||Date.now(),Date.now()]):typeof b=="function"&&b.apply(this,arguments)})}}var c=t.copyFile;c&&(t.copyFile=l);function l(y,w,v,I){return typeof v=="function"&&(I=v,v=0),N(y,w,v,I);function N(D,P,E,b,M){return c(D,P,E,function(L){L&&(L.code==="EMFILE"||L.code==="ENFILE")?ce([N,[D,P,E,b],L,M||Date.now(),Date.now()]):typeof b=="function"&&b.apply(this,arguments)})}}var u=t.readdir;t.readdir=m;var a=/^v[0-5]\./;function m(y,w,v){typeof w=="function"&&(v=w,w=null);var I=a.test(process.version)?function(P,E,b,M){return u(P,N(P,E,b,M))}:function(P,E,b,M){return u(P,E,N(P,E,b,M))};return I(y,w,v);function N(D,P,E,b){return function(M,L){M&&(M.code==="EMFILE"||M.code==="ENFILE")?ce([I,[D,P,E],M,b||Date.now(),Date.now()]):(L&&L.sort&&L.sort(),typeof E=="function"&&E.call(this,M,L))}}}if(process.version.substr(0,4)==="v0.8"){var d=dn(t);x=d.ReadStream,T=d.WriteStream}var f=t.ReadStream;f&&(x.prototype=Object.create(f.prototype),x.prototype.open=F);var p=t.WriteStream;p&&(T.prototype=Object.create(p.prototype),T.prototype.open=ie),Object.defineProperty(t,"ReadStream",{get:function(){return x},set:function(y){x=y},enumerable:!0,configurable:!0}),Object.defineProperty(t,"WriteStream",{get:function(){return T},set:function(y){T=y},enumerable:!0,configurable:!0});var S=x;Object.defineProperty(t,"FileReadStream",{get:function(){return S},set:function(y){S=y},enumerable:!0,configurable:!0});var g=T;Object.defineProperty(t,"FileWriteStream",{get:function(){return g},set:function(y){g=y},enumerable:!0,configurable:!0});function x(y,w){return this instanceof x?(f.apply(this,arguments),this):x.apply(Object.create(x.prototype),arguments)}function F(){var y=this;Ke(y.path,y.flags,y.mode,function(w,v){w?(y.autoClose&&y.destroy(),y.emit("error",w)):(y.fd=v,y.emit("open",v),y.read())})}function T(y,w){return this instanceof T?(p.apply(this,arguments),this):T.apply(Object.create(T.prototype),arguments)}function ie(){var y=this;Ke(y.path,y.flags,y.mode,function(w,v){w?(y.destroy(),y.emit("error",w)):(y.fd=v,y.emit("open",v))})}function jt(y,w){return new t.ReadStream(y,w)}function Ft(y,w){return new t.WriteStream(y,w)}var Yi=t.open;t.open=Ke;function Ke(y,w,v,I){return typeof v=="function"&&(I=v,v=null),N(y,w,v,I);function N(D,P,E,b,M){return Yi(D,P,E,function(L,Hs){L&&(L.code==="EMFILE"||L.code==="ENFILE")?ce([N,[D,P,E,b],L,M||Date.now(),Date.now()]):typeof b=="function"&&b.apply(this,arguments)})}}return t}function ce(t){oe("ENQUEUE",t[0].name,t[1]),k[C].push(t),at()}var De;function qt(){for(var t=Date.now(),e=0;e<k[C].length;++e)k[C][e].length>2&&(k[C][e][3]=t,k[C][e][4]=t);at()}function at(){if(clearTimeout(De),De=void 0,k[C].length!==0){var t=k[C].shift(),e=t[0],r=t[1],i=t[2],n=t[3],o=t[4];if(n===void 0)oe("RETRY",e.name,r),e.apply(null,r);else if(Date.now()-n>=6e4){oe("TIMEOUT",e.name,r);var s=r.pop();typeof s=="function"&&s.call(null,i)}else{var c=Date.now()-o,l=Math.max(o-n,1),u=Math.min(l*1.2,100);c>=u?(oe("RETRY",e.name,r),e.apply(null,r.concat([n]))):k[C].push(t)}De===void 0&&(De=setTimeout(at,0))}}});var V=h(H=>{"use strict";var Xt=O().fromCallback,A=le(),hn=["access","appendFile","chmod","chown","close","copyFile","fchmod","fchown","fdatasync","fstat","fsync","ftruncate","futimes","lchmod","lchown","link","lstat","mkdir","mkdtemp","open","opendir","readdir","readFile","readlink","realpath","rename","rm","rmdir","stat","symlink","truncate","unlink","utimes","writeFile"].filter(t=>typeof A[t]=="function");Object.assign(H,A);hn.forEach(t=>{H[t]=Xt(A[t])});H.exists=function(t,e){return typeof e=="function"?A.exists(t,e):new Promise(r=>A.exists(t,r))};H.read=function(t,e,r,i,n,o){return typeof o=="function"?A.read(t,e,r,i,n,o):new Promise((s,c)=>{A.read(t,e,r,i,n,(l,u,a)=>{if(l)return c(l);s({bytesRead:u,buffer:a})})})};H.write=function(t,e,...r){return typeof r[r.length-1]=="function"?A.write(t,e,...r):new Promise((i,n)=>{A.write(t,e,...r,(o,s,c)=>{if(o)return n(o);i({bytesWritten:s,buffer:c})})})};H.readv=function(t,e,...r){return typeof r[r.length-1]=="function"?A.readv(t,e,...r):new Promise((i,n)=>{A.readv(t,e,...r,(o,s,c)=>{if(o)return n(o);i({bytesRead:s,buffers:c})})})};H.writev=function(t,e,...r){return typeof r[r.length-1]=="function"?A.writev(t,e,...r):new Promise((i,n)=>{A.writev(t,e,...r,(o,s,c)=>{if(o)return n(o);i({bytesWritten:s,buffers:c})})})};typeof A.realpath.native=="function"?H.realpath.native=Xt(A.realpath.native):process.emitWarning("fs.realpath.native is not a function. Is fs being monkey-patched?","Warning","fs-extra-WARN0003")});var Gt=h((ua,Bt)=>{"use strict";var Sn=require("path");Bt.exports.checkPath=function(e){if(process.platform==="win32"&&/[<>:"|?*]/.test(e.replace(Sn.parse(e).root,""))){let i=new Error(`Path contains invalid characters: ${e}`);throw i.code="EINVAL",i}}});var Qt=h((fa,lt)=>{"use strict";var Wt=V(),{checkPath:Jt}=Gt(),Ht=t=>{let e={mode:511};return typeof t=="number"?t:{...e,...t}.mode};lt.exports.makeDir=async(t,e)=>(Jt(t),Wt.mkdir(t,{mode:Ht(e),recursive:!0}));lt.exports.makeDirSync=(t,e)=>(Jt(t),Wt.mkdirSync(t,{mode:Ht(e),recursive:!0}))});var X=h((ma,Kt)=>{"use strict";var gn=O().fromPromise,{makeDir:vn,makeDirSync:ut}=Qt(),ft=gn(vn);Kt.exports={mkdirs:ft,mkdirsSync:ut,mkdirp:ft,mkdirpSync:ut,ensureDir:ft,ensureDirSync:ut}});var Z=h((da,zt)=>{"use strict";var wn=O().fromPromise,Yt=V();function bn(t){return Yt.access(t).then(()=>!0).catch(()=>!1)}zt.exports={pathExists:wn(bn),pathExistsSync:Yt.existsSync}});var mt=h((pa,Zt)=>{"use strict";var ue=V(),xn=O().fromPromise;async function Ln(t,e,r){let i=await ue.open(t,"r+"),n=null;try{await ue.futimes(i,e,r)}finally{try{await ue.close(i)}catch(o){n=o}}if(n)throw n}function Pn(t,e,r){let i=ue.openSync(t,"r+");return ue.futimesSync(i,e,r),ue.closeSync(i)}Zt.exports={utimesMillis:xn(Ln),utimesMillisSync:Pn}});var se=h((ya,ir)=>{"use strict";var fe=V(),j=require("path"),er=O().fromPromise;function kn(t,e,r){let i=r.dereference?n=>fe.stat(n,{bigint:!0}):n=>fe.lstat(n,{bigint:!0});return Promise.all([i(t),i(e).catch(n=>{if(n.code==="ENOENT")return null;throw n})]).then(([n,o])=>({srcStat:n,destStat:o}))}function En(t,e,r){let i,n=r.dereference?s=>fe.statSync(s,{bigint:!0}):s=>fe.lstatSync(s,{bigint:!0}),o=n(t);try{i=n(e)}catch(s){if(s.code==="ENOENT")return{srcStat:o,destStat:null};throw s}return{srcStat:o,destStat:i}}async function Dn(t,e,r,i){let{srcStat:n,destStat:o}=await kn(t,e,i);if(o){if(ye(n,o)){let s=j.basename(t),c=j.basename(e);if(r==="move"&&s!==c&&s.toLowerCase()===c.toLowerCase())return{srcStat:n,destStat:o,isChangingCase:!0};throw new Error("Source and destination must not be the same.")}if(n.isDirectory()&&!o.isDirectory())throw new Error(`Cannot overwrite non-directory '${e}' with directory '${t}'.`);if(!n.isDirectory()&&o.isDirectory())throw new Error(`Cannot overwrite directory '${e}' with non-directory '${t}'.`)}if(n.isDirectory()&&dt(t,e))throw new Error(je(t,e,r));return{srcStat:n,destStat:o}}function On(t,e,r,i){let{srcStat:n,destStat:o}=En(t,e,i);if(o){if(ye(n,o)){let s=j.basename(t),c=j.basename(e);if(r==="move"&&s!==c&&s.toLowerCase()===c.toLowerCase())return{srcStat:n,destStat:o,isChangingCase:!0};throw new Error("Source and destination must not be the same.")}if(n.isDirectory()&&!o.isDirectory())throw new Error(`Cannot overwrite non-directory '${e}' with directory '${t}'.`);if(!n.isDirectory()&&o.isDirectory())throw new Error(`Cannot overwrite directory '${e}' with non-directory '${t}'.`)}if(n.isDirectory()&&dt(t,e))throw new Error(je(t,e,r));return{srcStat:n,destStat:o}}async function tr(t,e,r,i){let n=j.resolve(j.dirname(t)),o=j.resolve(j.dirname(r));if(o===n||o===j.parse(o).root)return;let s;try{s=await fe.stat(o,{bigint:!0})}catch(c){if(c.code==="ENOENT")return;throw c}if(ye(e,s))throw new Error(je(t,r,i));return tr(t,e,o,i)}function rr(t,e,r,i){let n=j.resolve(j.dirname(t)),o=j.resolve(j.dirname(r));if(o===n||o===j.parse(o).root)return;let s;try{s=fe.statSync(o,{bigint:!0})}catch(c){if(c.code==="ENOENT")return;throw c}if(ye(e,s))throw new Error(je(t,r,i));return rr(t,e,o,i)}function ye(t,e){return e.ino&&e.dev&&e.ino===t.ino&&e.dev===t.dev}function dt(t,e){let r=j.resolve(t).split(j.sep).filter(n=>n),i=j.resolve(e).split(j.sep).filter(n=>n);return r.every((n,o)=>i[o]===n)}function je(t,e,r){return`Cannot ${r} '${t}' to a subdirectory of itself, '${e}'.`}ir.exports={checkPaths:er(Dn),checkPathsSync:On,checkParentPaths:er(tr),checkParentPathsSync:rr,isSrcSubdir:dt,areIdentical:ye}});var cr=h((ha,ar)=>{"use strict";var R=V(),he=require("path"),{mkdirs:jn}=X(),{pathExists:Fn}=Z(),{utimesMillis:Tn}=mt(),Se=se();async function In(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 zi=Object.create;var Tt=Object.defineProperty;var Zi=Object.getOwnPropertyDescriptor;var en=Object.getOwnPropertyNames;var tn=Object.getPrototypeOf,rn=Object.prototype.hasOwnProperty;var h=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var nn=(t,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of en(e))!rn.call(t,n)&&n!==r&&Tt(t,n,{get:()=>e[n],enumerable:!(i=Zi(e,n))||i.enumerable});return t};var Ye=(t,e,r)=>(r=t!=null?zi(tn(t)):{},nn(e||!t||!t.__esModule?Tt(r,"default",{value:t,enumerable:!0}):r,t));var O=h(nt=>{"use strict";nt.fromCallback=function(t){return Object.defineProperty(function(...e){if(typeof e[e.length-1]=="function")t.apply(this,e);else return new Promise((r,i)=>{e.push((n,o)=>n!=null?i(n):r(o)),t.apply(this,e)})},"name",{value:t.name})};nt.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(i=>r(null,i),r)},"name",{value:t.name})}});var Mt=h((oa,Nt)=>{var z=require("constants"),sn=process.cwd,ke=null,an=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){return ke||(ke=sn.call(process)),ke};try{process.cwd()}catch{}typeof process.chdir=="function"&&(ot=process.chdir,process.chdir=function(t){ke=null,ot.call(process,t)},Object.setPrototypeOf&&Object.setPrototypeOf(process.chdir,ot));var ot;Nt.exports=cn;function cn(t){z.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=i(t.chmod),t.fchmod=i(t.fchmod),t.lchmod=i(t.lchmod),t.chownSync=a(t.chownSync),t.fchownSync=a(t.fchownSync),t.lchownSync=a(t.lchownSync),t.chmodSync=n(t.chmodSync),t.fchmodSync=n(t.fchmodSync),t.lchmodSync=n(t.lchmodSync),t.stat=c(t.stat),t.fstat=c(t.fstat),t.lstat=c(t.lstat),t.statSync=u(t.statSync),t.fstatSync=u(t.fstatSync),t.lstatSync=u(t.lstatSync),t.chmod&&!t.lchmod&&(t.lchmod=function(s,m,p){p&&process.nextTick(p)},t.lchmodSync=function(){}),t.chown&&!t.lchown&&(t.lchown=function(s,m,p,f){f&&process.nextTick(f)},t.lchownSync=function(){}),an==="win32"&&(t.rename=typeof t.rename!="function"?t.rename:function(s){function m(p,f,d){var S=Date.now(),g=0;s(p,f,function b(F){if(F&&(F.code==="EACCES"||F.code==="EPERM"||F.code==="EBUSY")&&Date.now()-S<6e4){setTimeout(function(){t.stat(f,function(T,ie){T&&T.code==="ENOENT"?s(p,f,b):d(F)})},g),g<100&&(g+=10);return}d&&d(F)})}return Object.setPrototypeOf&&Object.setPrototypeOf(m,s),m}(t.rename)),t.read=typeof t.read!="function"?t.read:function(s){function m(p,f,d,S,g,b){var F;if(b&&typeof b=="function"){var T=0;F=function(ie,jt,Ft){if(ie&&ie.code==="EAGAIN"&&T<10)return T++,s.call(t,p,f,d,S,g,F);b.apply(this,arguments)}}return s.call(t,p,f,d,S,g,F)}return Object.setPrototypeOf&&Object.setPrototypeOf(m,s),m}(t.read),t.readSync=typeof t.readSync!="function"?t.readSync:function(s){return function(m,p,f,d,S){for(var g=0;;)try{return s.call(t,m,p,f,d,S)}catch(b){if(b.code==="EAGAIN"&&g<10){g++;continue}throw b}}}(t.readSync);function e(s){s.lchmod=function(m,p,f){s.open(m,z.O_WRONLY|z.O_SYMLINK,p,function(d,S){if(d){f&&f(d);return}s.fchmod(S,p,function(g){s.close(S,function(b){f&&f(g||b)})})})},s.lchmodSync=function(m,p){var f=s.openSync(m,z.O_WRONLY|z.O_SYMLINK,p),d=!0,S;try{S=s.fchmodSync(f,p),d=!1}finally{if(d)try{s.closeSync(f)}catch{}else s.closeSync(f)}return S}}function r(s){z.hasOwnProperty("O_SYMLINK")&&s.futimes?(s.lutimes=function(m,p,f,d){s.open(m,z.O_SYMLINK,function(S,g){if(S){d&&d(S);return}s.futimes(g,p,f,function(b){s.close(g,function(F){d&&d(b||F)})})})},s.lutimesSync=function(m,p,f){var d=s.openSync(m,z.O_SYMLINK),S,g=!0;try{S=s.futimesSync(d,p,f),g=!1}finally{if(g)try{s.closeSync(d)}catch{}else s.closeSync(d)}return S}):s.futimes&&(s.lutimes=function(m,p,f,d){d&&process.nextTick(d)},s.lutimesSync=function(){})}function i(s){return s&&function(m,p,f){return s.call(t,m,p,function(d){l(d)&&(d=null),f&&f.apply(this,arguments)})}}function n(s){return s&&function(m,p){try{return s.call(t,m,p)}catch(f){if(!l(f))throw f}}}function o(s){return s&&function(m,p,f,d){return s.call(t,m,p,f,function(S){l(S)&&(S=null),d&&d.apply(this,arguments)})}}function a(s){return s&&function(m,p,f){try{return s.call(t,m,p,f)}catch(d){if(!l(d))throw d}}}function c(s){return s&&function(m,p,f){typeof p=="function"&&(f=p,p=null);function d(S,g){g&&(g.uid<0&&(g.uid+=4294967296),g.gid<0&&(g.gid+=4294967296)),f&&f.apply(this,arguments)}return p?s.call(t,m,p,d):s.call(t,m,d)}}function u(s){return s&&function(m,p){var f=p?s.call(t,m,p):s.call(t,m);return f&&(f.uid<0&&(f.uid+=4294967296),f.gid<0&&(f.gid+=4294967296)),f}}function l(s){if(!s||s.code==="ENOSYS")return!0;var m=!process.getuid||process.getuid()!==0;return!!(m&&(s.code==="EINVAL"||s.code==="EPERM"))}}});var Rt=h((sa,At)=>{var Ct=require("stream").Stream;At.exports=ln;function ln(t){return{ReadStream:e,WriteStream:r};function e(i,n){if(!(this instanceof e))return new e(i,n);Ct.call(this);var o=this;this.path=i,this.fd=null,this.readable=!0,this.paused=!1,this.flags="r",this.mode=438,this.bufferSize=64*1024,n=n||{};for(var a=Object.keys(n),c=0,u=a.length;c<u;c++){var l=a[c];this[l]=n[l]}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(s,m){if(s){o.emit("error",s),o.readable=!1;return}o.fd=m,o.emit("open",m),o._read()})}function r(i,n){if(!(this instanceof r))return new r(i,n);Ct.call(this),this.path=i,this.fd=null,this.writable=!0,this.flags="w",this.encoding="binary",this.mode=438,this.bytesWritten=0,n=n||{};for(var o=Object.keys(n),a=0,c=o.length;a<c;a++){var u=o[a];this[u]=n[u]}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 $t=h((aa,Vt)=>{"use strict";Vt.exports=fn;var un=Object.getPrototypeOf||function(t){return t.__proto__};function fn(t){if(t===null||typeof t!="object")return t;if(t instanceof Object)var e={__proto__:un(t)};else var e=Object.create(null);return Object.getOwnPropertyNames(t).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}});var le=h((ca,ct)=>{var k=require("fs"),mn=Mt(),dn=Rt(),pn=$t(),Ee=require("util"),C,Oe;typeof Symbol=="function"&&typeof Symbol.for=="function"?(C=Symbol.for("graceful-fs.queue"),Oe=Symbol.for("graceful-fs.previous")):(C="___graceful-fs.queue",Oe="___graceful-fs.previous");function yn(){}function Ut(t,e){Object.defineProperty(t,C,{get:function(){return e}})}var oe=yn;Ee.debuglog?oe=Ee.debuglog("gfs4"):/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&(oe=function(){var t=Ee.format.apply(Ee,arguments);t="GFS4: "+t.split(/\n/).join(`
|
|
3
|
+
GFS4: `),console.error(t)});k[C]||(_t=global[C]||[],Ut(k,_t),k.close=function(t){function e(r,i){return t.call(k,r,function(n){n||qt(),typeof i=="function"&&i.apply(this,arguments)})}return Object.defineProperty(e,Oe,{value:t}),e}(k.close),k.closeSync=function(t){function e(r){t.apply(k,arguments),qt()}return Object.defineProperty(e,Oe,{value:t}),e}(k.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&process.on("exit",function(){oe(k[C]),require("assert").equal(k[C].length,0)}));var _t;global[C]||Ut(global,k[C]);ct.exports=st(pn(k));process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!k.__patched&&(ct.exports=st(k),k.__patched=!0);function st(t){mn(t),t.gracefulify=st,t.createReadStream=jt,t.createWriteStream=Ft;var e=t.readFile;t.readFile=r;function r(y,w,v){return typeof w=="function"&&(v=w,w=null),I(y,w,v);function I(N,D,P,E){return e(N,D,function(x){x&&(x.code==="EMFILE"||x.code==="ENFILE")?ce([I,[N,D,P],x,E||Date.now(),Date.now()]):typeof P=="function"&&P.apply(this,arguments)})}}var i=t.writeFile;t.writeFile=n;function n(y,w,v,I){return typeof v=="function"&&(I=v,v=null),N(y,w,v,I);function N(D,P,E,x,M){return i(D,P,E,function(L){L&&(L.code==="EMFILE"||L.code==="ENFILE")?ce([N,[D,P,E,x],L,M||Date.now(),Date.now()]):typeof x=="function"&&x.apply(this,arguments)})}}var o=t.appendFile;o&&(t.appendFile=a);function a(y,w,v,I){return typeof v=="function"&&(I=v,v=null),N(y,w,v,I);function N(D,P,E,x,M){return o(D,P,E,function(L){L&&(L.code==="EMFILE"||L.code==="ENFILE")?ce([N,[D,P,E,x],L,M||Date.now(),Date.now()]):typeof x=="function"&&x.apply(this,arguments)})}}var c=t.copyFile;c&&(t.copyFile=u);function u(y,w,v,I){return typeof v=="function"&&(I=v,v=0),N(y,w,v,I);function N(D,P,E,x,M){return c(D,P,E,function(L){L&&(L.code==="EMFILE"||L.code==="ENFILE")?ce([N,[D,P,E,x],L,M||Date.now(),Date.now()]):typeof x=="function"&&x.apply(this,arguments)})}}var l=t.readdir;t.readdir=m;var s=/^v[0-5]\./;function m(y,w,v){typeof w=="function"&&(v=w,w=null);var I=s.test(process.version)?function(P,E,x,M){return l(P,N(P,E,x,M))}:function(P,E,x,M){return l(P,E,N(P,E,x,M))};return I(y,w,v);function N(D,P,E,x){return function(M,L){M&&(M.code==="EMFILE"||M.code==="ENFILE")?ce([I,[D,P,E],M,x||Date.now(),Date.now()]):(L&&L.sort&&L.sort(),typeof E=="function"&&E.call(this,M,L))}}}if(process.version.substr(0,4)==="v0.8"){var p=dn(t);b=p.ReadStream,T=p.WriteStream}var f=t.ReadStream;f&&(b.prototype=Object.create(f.prototype),b.prototype.open=F);var d=t.WriteStream;d&&(T.prototype=Object.create(d.prototype),T.prototype.open=ie),Object.defineProperty(t,"ReadStream",{get:function(){return b},set:function(y){b=y},enumerable:!0,configurable:!0}),Object.defineProperty(t,"WriteStream",{get:function(){return T},set:function(y){T=y},enumerable:!0,configurable:!0});var S=b;Object.defineProperty(t,"FileReadStream",{get:function(){return S},set:function(y){S=y},enumerable:!0,configurable:!0});var g=T;Object.defineProperty(t,"FileWriteStream",{get:function(){return g},set:function(y){g=y},enumerable:!0,configurable:!0});function b(y,w){return this instanceof b?(f.apply(this,arguments),this):b.apply(Object.create(b.prototype),arguments)}function F(){var y=this;Ke(y.path,y.flags,y.mode,function(w,v){w?(y.autoClose&&y.destroy(),y.emit("error",w)):(y.fd=v,y.emit("open",v),y.read())})}function T(y,w){return this instanceof T?(d.apply(this,arguments),this):T.apply(Object.create(T.prototype),arguments)}function ie(){var y=this;Ke(y.path,y.flags,y.mode,function(w,v){w?(y.destroy(),y.emit("error",w)):(y.fd=v,y.emit("open",v))})}function jt(y,w){return new t.ReadStream(y,w)}function Ft(y,w){return new t.WriteStream(y,w)}var Yi=t.open;t.open=Ke;function Ke(y,w,v,I){return typeof v=="function"&&(I=v,v=null),N(y,w,v,I);function N(D,P,E,x,M){return Yi(D,P,E,function(L,Hs){L&&(L.code==="EMFILE"||L.code==="ENFILE")?ce([N,[D,P,E,x],L,M||Date.now(),Date.now()]):typeof x=="function"&&x.apply(this,arguments)})}}return t}function ce(t){oe("ENQUEUE",t[0].name,t[1]),k[C].push(t),at()}var De;function qt(){for(var t=Date.now(),e=0;e<k[C].length;++e)k[C][e].length>2&&(k[C][e][3]=t,k[C][e][4]=t);at()}function at(){if(clearTimeout(De),De=void 0,k[C].length!==0){var t=k[C].shift(),e=t[0],r=t[1],i=t[2],n=t[3],o=t[4];if(n===void 0)oe("RETRY",e.name,r),e.apply(null,r);else if(Date.now()-n>=6e4){oe("TIMEOUT",e.name,r);var a=r.pop();typeof a=="function"&&a.call(null,i)}else{var c=Date.now()-o,u=Math.max(o-n,1),l=Math.min(u*1.2,100);c>=l?(oe("RETRY",e.name,r),e.apply(null,r.concat([n]))):k[C].push(t)}De===void 0&&(De=setTimeout(at,0))}}});var V=h(H=>{"use strict";var Xt=O().fromCallback,R=le(),hn=["access","appendFile","chmod","chown","close","copyFile","fchmod","fchown","fdatasync","fstat","fsync","ftruncate","futimes","lchmod","lchown","link","lstat","mkdir","mkdtemp","open","opendir","readdir","readFile","readlink","realpath","rename","rm","rmdir","stat","symlink","truncate","unlink","utimes","writeFile"].filter(t=>typeof R[t]=="function");Object.assign(H,R);hn.forEach(t=>{H[t]=Xt(R[t])});H.exists=function(t,e){return typeof e=="function"?R.exists(t,e):new Promise(r=>R.exists(t,r))};H.read=function(t,e,r,i,n,o){return typeof o=="function"?R.read(t,e,r,i,n,o):new Promise((a,c)=>{R.read(t,e,r,i,n,(u,l,s)=>{if(u)return c(u);a({bytesRead:l,buffer:s})})})};H.write=function(t,e,...r){return typeof r[r.length-1]=="function"?R.write(t,e,...r):new Promise((i,n)=>{R.write(t,e,...r,(o,a,c)=>{if(o)return n(o);i({bytesWritten:a,buffer:c})})})};H.readv=function(t,e,...r){return typeof r[r.length-1]=="function"?R.readv(t,e,...r):new Promise((i,n)=>{R.readv(t,e,...r,(o,a,c)=>{if(o)return n(o);i({bytesRead:a,buffers:c})})})};H.writev=function(t,e,...r){return typeof r[r.length-1]=="function"?R.writev(t,e,...r):new Promise((i,n)=>{R.writev(t,e,...r,(o,a,c)=>{if(o)return n(o);i({bytesWritten:a,buffers:c})})})};typeof R.realpath.native=="function"?H.realpath.native=Xt(R.realpath.native):process.emitWarning("fs.realpath.native is not a function. Is fs being monkey-patched?","Warning","fs-extra-WARN0003")});var Gt=h((ua,Bt)=>{"use strict";var Sn=require("path");Bt.exports.checkPath=function(e){if(process.platform==="win32"&&/[<>:"|?*]/.test(e.replace(Sn.parse(e).root,""))){let i=new Error(`Path contains invalid characters: ${e}`);throw i.code="EINVAL",i}}});var Qt=h((fa,lt)=>{"use strict";var Wt=V(),{checkPath:Jt}=Gt(),Ht=t=>{let e={mode:511};return typeof t=="number"?t:{...e,...t}.mode};lt.exports.makeDir=async(t,e)=>(Jt(t),Wt.mkdir(t,{mode:Ht(e),recursive:!0}));lt.exports.makeDirSync=(t,e)=>(Jt(t),Wt.mkdirSync(t,{mode:Ht(e),recursive:!0}))});var X=h((ma,Kt)=>{"use strict";var gn=O().fromPromise,{makeDir:vn,makeDirSync:ut}=Qt(),ft=gn(vn);Kt.exports={mkdirs:ft,mkdirsSync:ut,mkdirp:ft,mkdirpSync:ut,ensureDir:ft,ensureDirSync:ut}});var Z=h((da,zt)=>{"use strict";var wn=O().fromPromise,Yt=V();function bn(t){return Yt.access(t).then(()=>!0).catch(()=>!1)}zt.exports={pathExists:wn(bn),pathExistsSync:Yt.existsSync}});var mt=h((pa,Zt)=>{"use strict";var ue=V(),xn=O().fromPromise;async function Ln(t,e,r){let i=await ue.open(t,"r+"),n=null;try{await ue.futimes(i,e,r)}finally{try{await ue.close(i)}catch(o){n=o}}if(n)throw n}function Pn(t,e,r){let i=ue.openSync(t,"r+");return ue.futimesSync(i,e,r),ue.closeSync(i)}Zt.exports={utimesMillis:xn(Ln),utimesMillisSync:Pn}});var se=h((ya,ir)=>{"use strict";var fe=V(),j=require("path"),er=O().fromPromise;function kn(t,e,r){let i=r.dereference?n=>fe.stat(n,{bigint:!0}):n=>fe.lstat(n,{bigint:!0});return Promise.all([i(t),i(e).catch(n=>{if(n.code==="ENOENT")return null;throw n})]).then(([n,o])=>({srcStat:n,destStat:o}))}function En(t,e,r){let i,n=r.dereference?a=>fe.statSync(a,{bigint:!0}):a=>fe.lstatSync(a,{bigint:!0}),o=n(t);try{i=n(e)}catch(a){if(a.code==="ENOENT")return{srcStat:o,destStat:null};throw a}return{srcStat:o,destStat:i}}async function Dn(t,e,r,i){let{srcStat:n,destStat:o}=await kn(t,e,i);if(o){if(ye(n,o)){let a=j.basename(t),c=j.basename(e);if(r==="move"&&a!==c&&a.toLowerCase()===c.toLowerCase())return{srcStat:n,destStat:o,isChangingCase:!0};throw new Error("Source and destination must not be the same.")}if(n.isDirectory()&&!o.isDirectory())throw new Error(`Cannot overwrite non-directory '${e}' with directory '${t}'.`);if(!n.isDirectory()&&o.isDirectory())throw new Error(`Cannot overwrite directory '${e}' with non-directory '${t}'.`)}if(n.isDirectory()&&dt(t,e))throw new Error(je(t,e,r));return{srcStat:n,destStat:o}}function On(t,e,r,i){let{srcStat:n,destStat:o}=En(t,e,i);if(o){if(ye(n,o)){let a=j.basename(t),c=j.basename(e);if(r==="move"&&a!==c&&a.toLowerCase()===c.toLowerCase())return{srcStat:n,destStat:o,isChangingCase:!0};throw new Error("Source and destination must not be the same.")}if(n.isDirectory()&&!o.isDirectory())throw new Error(`Cannot overwrite non-directory '${e}' with directory '${t}'.`);if(!n.isDirectory()&&o.isDirectory())throw new Error(`Cannot overwrite directory '${e}' with non-directory '${t}'.`)}if(n.isDirectory()&&dt(t,e))throw new Error(je(t,e,r));return{srcStat:n,destStat:o}}async function tr(t,e,r,i){let n=j.resolve(j.dirname(t)),o=j.resolve(j.dirname(r));if(o===n||o===j.parse(o).root)return;let a;try{a=await fe.stat(o,{bigint:!0})}catch(c){if(c.code==="ENOENT")return;throw c}if(ye(e,a))throw new Error(je(t,r,i));return tr(t,e,o,i)}function rr(t,e,r,i){let n=j.resolve(j.dirname(t)),o=j.resolve(j.dirname(r));if(o===n||o===j.parse(o).root)return;let a;try{a=fe.statSync(o,{bigint:!0})}catch(c){if(c.code==="ENOENT")return;throw c}if(ye(e,a))throw new Error(je(t,r,i));return rr(t,e,o,i)}function ye(t,e){return e.ino&&e.dev&&e.ino===t.ino&&e.dev===t.dev}function dt(t,e){let r=j.resolve(t).split(j.sep).filter(n=>n),i=j.resolve(e).split(j.sep).filter(n=>n);return r.every((n,o)=>i[o]===n)}function je(t,e,r){return`Cannot ${r} '${t}' to a subdirectory of itself, '${e}'.`}ir.exports={checkPaths:er(Dn),checkPathsSync:On,checkParentPaths:er(tr),checkParentPathsSync:rr,isSrcSubdir:dt,areIdentical:ye}});var cr=h((ha,ar)=>{"use strict";var A=V(),he=require("path"),{mkdirs:jn}=X(),{pathExists:Fn}=Z(),{utimesMillis:Tn}=mt(),Se=se();async function In(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:i,destStat:n}=await Se.checkPaths(t,e,"copy",r);if(await Se.checkParentPaths(t,i,e,"copy"),!await or(t,e,r))return;let
|
|
5
|
+
see https://github.com/jprichardson/node-fs-extra/issues/269`,"Warning","fs-extra-WARN0001");let{srcStat:i,destStat:n}=await Se.checkPaths(t,e,"copy",r);if(await Se.checkParentPaths(t,i,e,"copy"),!await or(t,e,r))return;let a=he.dirname(e);await Fn(a)||await jn(a),await sr(n,t,e,r)}async function or(t,e,r){return r.filter?r.filter(t,e):!0}async function sr(t,e,r,i){let o=await(i.dereference?A.stat:A.lstat)(e);if(o.isDirectory())return An(o,t,e,r,i);if(o.isFile()||o.isCharacterDevice()||o.isBlockDevice())return Nn(o,t,e,r,i);if(o.isSymbolicLink())return Rn(t,e,r,i);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 Nn(t,e,r,i,n){if(!e)return nr(t,r,i,n);if(n.overwrite)return await A.unlink(i),nr(t,r,i,n);if(n.errorOnExist)throw new Error(`'${i}' already exists`)}async function nr(t,e,r,i){if(await A.copyFile(e,r),i.preserveTimestamps){Mn(t.mode)&&await Cn(r,t.mode);let n=await A.stat(e);await Tn(r,n.atime,n.mtime)}return A.chmod(r,t.mode)}function Mn(t){return(t&128)===0}function Cn(t,e){return A.chmod(t,e|128)}async function An(t,e,r,i,n){e||await A.mkdir(i);let o=await A.readdir(r);await Promise.all(o.map(async a=>{let c=he.join(r,a),u=he.join(i,a);if(!await or(c,u,n))return;let{destStat:s}=await Se.checkPaths(c,u,"copy",n);return sr(s,c,u,n)})),e||await A.chmod(i,t.mode)}async function Rn(t,e,r,i){let n=await A.readlink(e);if(i.dereference&&(n=he.resolve(process.cwd(),n)),!t)return A.symlink(n,r);let o=null;try{o=await A.readlink(r)}catch(a){if(a.code==="EINVAL"||a.code==="UNKNOWN")return A.symlink(n,r);throw a}if(i.dereference&&(o=he.resolve(process.cwd(),o)),Se.isSrcSubdir(n,o))throw new Error(`Cannot copy '${n}' to a subdirectory of itself, '${o}'.`);if(Se.isSrcSubdir(o,n))throw new Error(`Cannot overwrite '${o}' with '${n}'.`);return await A.unlink(r),A.symlink(n,r)}ar.exports=In});var dr=h((Sa,mr)=>{"use strict";var $=le(),ge=require("path"),Vn=X().mkdirsSync,$n=mt().utimesMillisSync,ve=se();function _n(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:i,destStat:n}=ve.checkPathsSync(t,e,"copy",r);if(ve.checkParentPathsSync(t,i,e,"copy"),r.filter&&!r.filter(t,e))return;let o=ge.dirname(e);return
|
|
8
|
-
`,finalEOL:r=!0,replacer:i=null,spaces:n}={}){let o=r?e:"";return JSON.stringify(t,i,n).replace(/\n/g,e)+o}function jo(t){return Buffer.isBuffer(t)&&(t=t.toString("utf8")),t.replace(/^\uFEFF/,"")}Yr.exports={stringify:Oo,stripBom:jo}});var ti=h((Oa,ei)=>{var me;try{me=le()}catch{me=require("fs")}var Ie=O(),{stringify:zr,stripBom:Zr}=Te();async function Fo(t,e={}){typeof e=="string"&&(e={encoding:e});let r=e.fs||me,i="throws"in e?e.throws:!0,n=await Ie.fromCallback(r.readFile)(t,e);n=Zr(n);let o;try{o=JSON.parse(n,e?e.reviver:null)}catch(s){if(i)throw s.message=`${t}: ${s.message}`,s;return null}return o}var To=Ie.fromPromise(Fo);function Io(t,e={}){typeof e=="string"&&(e={encoding:e});let r=e.fs||me,i="throws"in e?e.throws:!0;try{let n=r.readFileSync(t,e);return n=Zr(n),JSON.parse(n,e.reviver)}catch(n){if(i)throw n.message=`${t}: ${n.message}`,n;return null}}async function No(t,e,r={}){let i=r.fs||me,n=zr(e,r);await Ie.fromCallback(i.writeFile)(t,n,r)}var Mo=Ie.fromPromise(No);function Co(t,e,r={}){let i=r.fs||me,n=zr(e,r);return i.writeFileSync(t,n,r)}var Ro={readFile:To,readFileSync:Io,writeFile:Mo,writeFileSync:Co};ei.exports=Ro});var ii=h((ja,ri)=>{"use strict";var Ne=ti();ri.exports={readJson:Ne.readFile,readJsonSync:Ne.readFileSync,writeJson:Ne.writeFile,writeJsonSync:Ne.writeFileSync}});var Me=h((Fa,si)=>{"use strict";var Ao=O().fromPromise,yt=V(),ni=require("path"),oi=X(),Vo=Z().pathExists;async function _o(t,e,r="utf-8"){let i=ni.dirname(t);return await Vo(i)||await oi.mkdirs(i),yt.writeFile(t,e,r)}function $o(t,...e){let r=ni.dirname(t);yt.existsSync(r)||oi.mkdirsSync(r),yt.writeFileSync(t,...e)}si.exports={outputFile:Ao(_o),outputFileSync:$o}});var ci=h((Ta,ai)=>{"use strict";var{stringify:qo}=Te(),{outputFile:Uo}=Me();async function Xo(t,e,r={}){let i=qo(e,r);await Uo(t,i,r)}ai.exports=Xo});var ui=h((Ia,li)=>{"use strict";var{stringify:Bo}=Te(),{outputFileSync:Go}=Me();function Wo(t,e,r){let i=Bo(e,r);Go(t,i,r)}li.exports=Wo});var mi=h((Na,fi)=>{"use strict";var Jo=O().fromPromise,$=ii();$.outputJson=Jo(ci());$.outputJsonSync=ui();$.outputJSON=$.outputJson;$.outputJSONSync=$.outputJsonSync;$.writeJSON=$.writeJson;$.writeJSONSync=$.writeJsonSync;$.readJSON=$.readJson;$.readJSONSync=$.readJsonSync;fi.exports=$});var Si=h((Ma,hi)=>{"use strict";var Ho=V(),di=require("path"),{copy:Qo}=Fe(),{remove:yi}=we(),{mkdirp:Ko}=X(),{pathExists:Yo}=Z(),pi=se();async function zo(t,e,r={}){let i=r.overwrite||r.clobber||!1,{srcStat:n,isChangingCase:o=!1}=await pi.checkPaths(t,e,"move",r);await pi.checkParentPaths(t,n,e,"move");let s=di.dirname(e);return di.parse(s).root!==s&&await Ko(s),Zo(t,e,i,o)}async function Zo(t,e,r,i){if(!i){if(r)await yi(e);else if(await Yo(e))throw new Error("dest already exists.")}try{await Ho.rename(t,e)}catch(n){if(n.code!=="EXDEV")throw n;await es(t,e,r)}}async function es(t,e,r){return await Qo(t,e,{overwrite:r,errorOnExist:!0,preserveTimestamps:!0}),yi(t)}hi.exports=zo});var xi=h((Ca,bi)=>{"use strict";var vi=le(),St=require("path"),ts=Fe().copySync,wi=we().removeSync,rs=X().mkdirpSync,gi=se();function is(t,e,r){r=r||{};let i=r.overwrite||r.clobber||!1,{srcStat:n,isChangingCase:o=!1}=gi.checkPathsSync(t,e,"move",r);return gi.checkParentPathsSync(t,n,e,"move"),ns(e)||rs(St.dirname(e)),os(t,e,i,o)}function ns(t){let e=St.dirname(t);return St.parse(e).root===e}function os(t,e,r,i){if(i)return ht(t,e,r);if(r)return wi(e),ht(t,e,r);if(vi.existsSync(e))throw new Error("dest already exists.");return ht(t,e,r)}function ht(t,e,r){try{vi.renameSync(t,e)}catch(i){if(i.code!=="EXDEV")throw i;return ss(t,e,r)}}function ss(t,e,r){return ts(t,e,{overwrite:r,errorOnExist:!0,preserveTimestamps:!0}),wi(t)}bi.exports=is});var Pi=h((Ra,Li)=>{"use strict";var as=O().fromPromise;Li.exports={move:as(Si()),moveSync:xi()}});var Ei=h((Aa,ki)=>{"use strict";ki.exports={...V(),...Fe(),...Pr(),...Kr(),...mi(),...X(),...Pi(),...Me(),...Z(),...we()}});var Di=h(Ce=>{"use strict";Object.defineProperty(Ce,"__esModule",{value:!0});Ce.EXTENSIONS_LANGUAGES=void 0;Ce.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:"XML",tsx:"XML",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 xe=h(gt=>{"use strict";Object.defineProperty(gt,"__esModule",{value:!0});gt.setOptionValues=cs;function cs(t,e){for(let r of Object.keys(e))t[r]!==void 0&&(e[r]=t[r]);return e}});var ji=h(Re=>{"use strict";Object.defineProperty(Re,"__esModule",{value:!0});Re.SarifBuilder=void 0;var ls=require("path"),Oi=Ei(),us=Di(),fs=xe(),vt=class{constructor(e={}){this.log={$schema:"http://json.schemastore.org/sarif-2.1.0.json",version:"2.1.0",runs:[]},(0,fs.setOptionValues)(e,this.log)}addRun(e){this.log.runs.push(e.run)}generateSarifFileSync(e){let r=this.buildSarifJsonString();Oi.writeFileSync(e,r,"utf8")}async generateSarifFile(e){let r=this.buildSarifJsonString();await Oi.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,i,n,o;e.artifacts=e.artifacts||[];for(let l of e.results)for(let u of l.locations||[])if(!((i=(r=u?.physicalLocation)===null||r===void 0?void 0:r.artifactLocation)===null||i===void 0)&&i.uri&&e.artifacts.filter(a=>{var m;return((m=a?.location)===null||m===void 0?void 0:m.uri)===u.physicalLocation.artifactLocation.uri}).length===0){let a=ls.extname(u.physicalLocation.artifactLocation.uri).replace(".",""),m=us.EXTENSIONS_LANGUAGES[a]||"unknown";e.artifacts.push({sourceLanguage:m,location:{uri:u.physicalLocation.artifactLocation.uri}})}let s=e.artifacts.map(l=>{var u;return(u=l?.location)===null||u===void 0?void 0:u.uri}),c=(((o=(n=e?.tool)===null||n===void 0?void 0:n.driver)===null||o===void 0?void 0:o.rules)||[]).map(l=>l.id);return e.results=e.results.map(l=>(c.indexOf(l.ruleId)>-1&&(l.ruleIndex=c.indexOf(l.ruleId)),l.locations&&(l.locations=l.locations.map(u=>{var a,m;let d=(m=(a=u?.physicalLocation)===null||a===void 0?void 0:a.artifactLocation)===null||m===void 0?void 0:m.uri;return d&&s.indexOf(d)>-1&&(u.physicalLocation.artifactLocation.index=s.indexOf(d)),u})),l)),e}};Re.SarifBuilder=vt});var Fi=h(Ae=>{"use strict";Object.defineProperty(Ae,"__esModule",{value:!0});Ae.SarifResultBuilder=void 0;var ms=xe(),wt=class{constructor(e={}){this.result={level:"error",message:{},ruleId:"SARIF_BUILDER_INVALID: Please send the rule Id ruleId property, or call setRuleId(ruleId)"},(0,ms.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(){var e;this.manageInitLocation(),!(!((e=this.result)===null||e===void 0)&&e.locations[0].physicalLocation)&&(this.result.locations[0].physicalLocation={})}};Ae.SarifResultBuilder=wt});var Ti=h(Ve=>{"use strict";Object.defineProperty(Ve,"__esModule",{value:!0});Ve.SarifRuleBuilder=void 0;var ds=xe(),bt=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,ds.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}};Ve.SarifRuleBuilder=bt});var Ii=h(_e=>{"use strict";Object.defineProperty(_e,"__esModule",{value:!0});_e.SarifRunBuilder=void 0;var ps=xe(),xt=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,ps.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}};_e.SarifRunBuilder=xt});var Ni=h(G=>{"use strict";Object.defineProperty(G,"__esModule",{value:!0});G.SarifResultBuilder=G.SarifRuleBuilder=G.SarifRunBuilder=G.SarifBuilder=void 0;var ys=ji();Object.defineProperty(G,"SarifBuilder",{enumerable:!0,get:function(){return ys.SarifBuilder}});var hs=Fi();Object.defineProperty(G,"SarifResultBuilder",{enumerable:!0,get:function(){return hs.SarifResultBuilder}});var Ss=Ti();Object.defineProperty(G,"SarifRuleBuilder",{enumerable:!0,get:function(){return Ss.SarifRuleBuilder}});var gs=Ii();Object.defineProperty(G,"SarifRunBuilder",{enumerable:!0,get:function(){return gs.SarifRunBuilder}})});var Ci=h((Ga,Mi)=>{"use strict";var vs=/["'&<>]/;Mi.exports=ws;function ws(t){var e=""+t,r=vs.exec(e);if(!r)return e;var i,n="",o=0,s=0;for(o=r.index;o<e.length;o++){switch(e.charCodeAt(o)){case 34:i=""";break;case 38:i="&";break;case 39:i="'";break;case 60:i="<";break;case 62:i=">";break;default:continue}s!==o&&(n+=e.substring(s,o)),s=o+1,n+=i}return s!==o?n+e.substring(s,o):n}});var Qe=require("zx"),ae=require("fs/promises");var W={UNKNOWN:0,LOW:1,MEDIUM:2,HIGH:3,CRITICAL:4};var Le=class{allById=new Map;getAllVulnIds(){return new Set(this.allById.keys())}getAllVulnerabilitiesSortedBySeverity(){let e=Array.from(this.allById.values());return e.sort((r,i)=>{let n=It(r.severity,i.severity);return n===0?r.id.localeCompare(i.id):-n}),e}addVulnerability(e,r){let i=e.id,n=this.allById;if(!n.has(i))n.set(i,e);else{let o=n.get(i);o.title=o.title||e.title,o.severity=on(o.severity,e.severity),o.scannerSeverity[r]=e.severity,o.detectedBy=ze(o.detectedBy,r),o.components=ze(o.components,e.components[0]),o.refs=ze(o.refs,e.refs[0])}}enhanceWithVexData(e){let r=[];for(let i of this.allById.values()){let n=e.newestVulnerabilityStatement(i.id);if(!n){r.push({id:i.id,severity:i.severity});continue}i.vexStatement=n}return{unmatchedVulnerabilities:r}}};function on(t,e){return It(t,e)>0?t:e}function It(t,e){return W[t]-W[e]}function ze(t,e){return e?Array.from(new Set([...t,e]).values()):t}var Pe=Ye(require("path"));var q=require("fs/promises"),Ze=require("path");async function U(t){if(await ne(t))return JSON.parse(await(0,q.readFile)(t,{encoding:"utf-8"}))}async function et(t,e){await(0,q.writeFile)(t,JSON.stringify(e,null,4)+`
|
|
9
|
-
`,{encoding:"utf-8"})}function J(t){return t&&t.replace(/\?.*$/,"")}async function ne(t){try{return await(0,q.access)(t,q.constants.F_OK),!0}catch{return!1}}async function tt(t){let e=(0,Ze.resolve)(t),r=await(0,q.readdir)(e,{withFileTypes:!0});for(let i of r){let n=(0,Ze.resolve)(i.parentPath,i.name);i.isDirectory()?await tt(n):await(0,q.rm)(n)}await(0,q.rmdir)(e)}async function pe(t,e){let r=e?.user&&e?.pw?{Authorization:`Basic ${Buffer.from(`${e.user}:${e.pw}`).toString("base64")}`}:{},i=await fetch(t,{headers:r});if(!i.ok){let n="";try{n=await i.text()}catch(o){n=`${o}`}throw new Error(`Failed to fetch: ${t}: ${i.status} - ${i.statusText}: ${n}`)}return i}var rt;async function it(t){if(rt)return rt;let e="https://repository.conterra.de/repository/maven-mirror-ct",r=Y(t.workingDir,"input/vex"),i=Y(t.workingDir,"output"),n=Y(t.workingDir,"cache"),o=["grype","trivy","ossindex"],
|
|
7
|
+
see https://github.com/jprichardson/node-fs-extra/issues/269`,"Warning","fs-extra-WARN0002");let{srcStat:i,destStat:n}=ve.checkPathsSync(t,e,"copy",r);if(ve.checkParentPathsSync(t,i,e,"copy"),r.filter&&!r.filter(t,e))return;let o=ge.dirname(e);return $.existsSync(o)||Vn(o),lr(n,t,e,r)}function lr(t,e,r,i){let o=(i.dereference?$.statSync:$.lstatSync)(e);if(o.isDirectory())return Jn(o,t,e,r,i);if(o.isFile()||o.isCharacterDevice()||o.isBlockDevice())return qn(o,t,e,r,i);if(o.isSymbolicLink())return Kn(t,e,r,i);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 qn(t,e,r,i,n){return e?Un(t,r,i,n):ur(t,r,i,n)}function Un(t,e,r,i){if(i.overwrite)return $.unlinkSync(r),ur(t,e,r,i);if(i.errorOnExist)throw new Error(`'${r}' already exists`)}function ur(t,e,r,i){return $.copyFileSync(e,r),i.preserveTimestamps&&Xn(t.mode,e,r),pt(r,t.mode)}function Xn(t,e,r){return Bn(t)&&Gn(r,t),Wn(e,r)}function Bn(t){return(t&128)===0}function Gn(t,e){return pt(t,e|128)}function pt(t,e){return $.chmodSync(t,e)}function Wn(t,e){let r=$.statSync(t);return $n(e,r.atime,r.mtime)}function Jn(t,e,r,i,n){return e?fr(r,i,n):Hn(t.mode,r,i,n)}function Hn(t,e,r,i){return $.mkdirSync(r),fr(e,r,i),pt(r,t)}function fr(t,e,r){$.readdirSync(t).forEach(i=>Qn(i,t,e,r))}function Qn(t,e,r,i){let n=ge.join(e,t),o=ge.join(r,t);if(i.filter&&!i.filter(n,o))return;let{destStat:a}=ve.checkPathsSync(n,o,"copy",i);return lr(a,n,o,i)}function Kn(t,e,r,i){let n=$.readlinkSync(e);if(i.dereference&&(n=ge.resolve(process.cwd(),n)),t){let o;try{o=$.readlinkSync(r)}catch(a){if(a.code==="EINVAL"||a.code==="UNKNOWN")return $.symlinkSync(n,r);throw a}if(i.dereference&&(o=ge.resolve(process.cwd(),o)),ve.isSrcSubdir(n,o))throw new Error(`Cannot copy '${n}' to a subdirectory of itself, '${o}'.`);if(ve.isSrcSubdir(o,n))throw new Error(`Cannot overwrite '${o}' with '${n}'.`);return Yn(n,r)}else return $.symlinkSync(n,r)}function Yn(t,e){return $.unlinkSync(e),$.symlinkSync(t,e)}mr.exports=_n});var Fe=h((ga,pr)=>{"use strict";var zn=O().fromPromise;pr.exports={copy:zn(cr()),copySync:dr()}});var we=h((va,hr)=>{"use strict";var yr=le(),Zn=O().fromCallback;function eo(t,e){yr.rm(t,{recursive:!0,force:!0},e)}function to(t){yr.rmSync(t,{recursive:!0,force:!0})}hr.exports={remove:Zn(eo),removeSync:to}});var Pr=h((wa,Lr)=>{"use strict";var ro=O().fromPromise,vr=V(),wr=require("path"),br=X(),xr=we(),Sr=ro(async function(e){let r;try{r=await vr.readdir(e)}catch{return br.mkdirs(e)}return Promise.all(r.map(i=>xr.remove(wr.join(e,i))))});function gr(t){let e;try{e=vr.readdirSync(t)}catch{return br.mkdirsSync(t)}e.forEach(r=>{r=wr.join(t,r),xr.removeSync(r)})}Lr.exports={emptyDirSync:gr,emptydirSync:gr,emptyDir:Sr,emptydir:Sr}});var Or=h((ba,Dr)=>{"use strict";var io=O().fromPromise,kr=require("path"),Q=V(),Er=X();async function no(t){let e;try{e=await Q.stat(t)}catch{}if(e&&e.isFile())return;let r=kr.dirname(t),i=null;try{i=await Q.stat(r)}catch(n){if(n.code==="ENOENT"){await Er.mkdirs(r),await Q.writeFile(t,"");return}else throw n}i.isDirectory()?await Q.writeFile(t,""):await Q.readdir(r)}function oo(t){let e;try{e=Q.statSync(t)}catch{}if(e&&e.isFile())return;let r=kr.dirname(t);try{Q.statSync(r).isDirectory()||Q.readdirSync(r)}catch(i){if(i&&i.code==="ENOENT")Er.mkdirsSync(r);else throw i}Q.writeFileSync(t,"")}Dr.exports={createFile:io(no),createFileSync:oo}});var Nr=h((xa,Ir)=>{"use strict";var so=O().fromPromise,jr=require("path"),ee=V(),Fr=X(),{pathExists:ao}=Z(),{areIdentical:Tr}=se();async function co(t,e){let r;try{r=await ee.lstat(e)}catch{}let i;try{i=await ee.lstat(t)}catch(a){throw a.message=a.message.replace("lstat","ensureLink"),a}if(r&&Tr(i,r))return;let n=jr.dirname(e);await ao(n)||await Fr.mkdirs(n),await ee.link(t,e)}function lo(t,e){let r;try{r=ee.lstatSync(e)}catch{}try{let o=ee.lstatSync(t);if(r&&Tr(o,r))return}catch(o){throw o.message=o.message.replace("lstat","ensureLink"),o}let i=jr.dirname(e);return ee.existsSync(i)||Fr.mkdirsSync(i),ee.linkSync(t,e)}Ir.exports={createLink:so(co),createLinkSync:lo}});var Cr=h((La,Mr)=>{"use strict";var te=require("path"),be=V(),{pathExists:uo}=Z(),fo=O().fromPromise;async function mo(t,e){if(te.isAbsolute(t)){try{await be.lstat(t)}catch(o){throw o.message=o.message.replace("lstat","ensureSymlink"),o}return{toCwd:t,toDst:t}}let r=te.dirname(e),i=te.join(r,t);if(await uo(i))return{toCwd:i,toDst:t};try{await be.lstat(t)}catch(o){throw o.message=o.message.replace("lstat","ensureSymlink"),o}return{toCwd:t,toDst:te.relative(r,t)}}function po(t,e){if(te.isAbsolute(t)){if(!be.existsSync(t))throw new Error("absolute srcpath does not exist");return{toCwd:t,toDst:t}}let r=te.dirname(e),i=te.join(r,t);if(be.existsSync(i))return{toCwd:i,toDst:t};if(!be.existsSync(t))throw new Error("relative srcpath does not exist");return{toCwd:t,toDst:te.relative(r,t)}}Mr.exports={symlinkPaths:fo(mo),symlinkPathsSync:po}});var Vr=h((Pa,Rr)=>{"use strict";var Ar=V(),yo=O().fromPromise;async function ho(t,e){if(e)return e;let r;try{r=await Ar.lstat(t)}catch{return"file"}return r&&r.isDirectory()?"dir":"file"}function So(t,e){if(e)return e;let r;try{r=Ar.lstatSync(t)}catch{return"file"}return r&&r.isDirectory()?"dir":"file"}Rr.exports={symlinkType:yo(ho),symlinkTypeSync:So}});var Ur=h((ka,qr)=>{"use strict";var go=O().fromPromise,$r=require("path"),B=V(),{mkdirs:vo,mkdirsSync:wo}=X(),{symlinkPaths:bo,symlinkPathsSync:xo}=Cr(),{symlinkType:Lo,symlinkTypeSync:Po}=Vr(),{pathExists:ko}=Z(),{areIdentical:_r}=se();async function Eo(t,e,r){let i;try{i=await B.lstat(e)}catch{}if(i&&i.isSymbolicLink()){let[c,u]=await Promise.all([B.stat(t),B.stat(e)]);if(_r(c,u))return}let n=await bo(t,e);t=n.toDst;let o=await Lo(n.toCwd,r),a=$r.dirname(e);return await ko(a)||await vo(a),B.symlink(t,e,o)}function Do(t,e,r){let i;try{i=B.lstatSync(e)}catch{}if(i&&i.isSymbolicLink()){let c=B.statSync(t),u=B.statSync(e);if(_r(c,u))return}let n=xo(t,e);t=n.toDst,r=Po(n.toCwd,r);let o=$r.dirname(e);return B.existsSync(o)||wo(o),B.symlinkSync(t,e,r)}qr.exports={createSymlink:go(Eo),createSymlinkSync:Do}});var Kr=h((Ea,Qr)=>{"use strict";var{createFile:Xr,createFileSync:Br}=Or(),{createLink:Gr,createLinkSync:Wr}=Nr(),{createSymlink:Jr,createSymlinkSync:Hr}=Ur();Qr.exports={createFile:Xr,createFileSync:Br,ensureFile:Xr,ensureFileSync:Br,createLink:Gr,createLinkSync:Wr,ensureLink:Gr,ensureLinkSync:Wr,createSymlink:Jr,createSymlinkSync:Hr,ensureSymlink:Jr,ensureSymlinkSync:Hr}});var Te=h((Da,Yr)=>{function Oo(t,{EOL:e=`
|
|
8
|
+
`,finalEOL:r=!0,replacer:i=null,spaces:n}={}){let o=r?e:"";return JSON.stringify(t,i,n).replace(/\n/g,e)+o}function jo(t){return Buffer.isBuffer(t)&&(t=t.toString("utf8")),t.replace(/^\uFEFF/,"")}Yr.exports={stringify:Oo,stripBom:jo}});var ti=h((Oa,ei)=>{var me;try{me=le()}catch{me=require("fs")}var Ie=O(),{stringify:zr,stripBom:Zr}=Te();async function Fo(t,e={}){typeof e=="string"&&(e={encoding:e});let r=e.fs||me,i="throws"in e?e.throws:!0,n=await Ie.fromCallback(r.readFile)(t,e);n=Zr(n);let o;try{o=JSON.parse(n,e?e.reviver:null)}catch(a){if(i)throw a.message=`${t}: ${a.message}`,a;return null}return o}var To=Ie.fromPromise(Fo);function Io(t,e={}){typeof e=="string"&&(e={encoding:e});let r=e.fs||me,i="throws"in e?e.throws:!0;try{let n=r.readFileSync(t,e);return n=Zr(n),JSON.parse(n,e.reviver)}catch(n){if(i)throw n.message=`${t}: ${n.message}`,n;return null}}async function No(t,e,r={}){let i=r.fs||me,n=zr(e,r);await Ie.fromCallback(i.writeFile)(t,n,r)}var Mo=Ie.fromPromise(No);function Co(t,e,r={}){let i=r.fs||me,n=zr(e,r);return i.writeFileSync(t,n,r)}var Ao={readFile:To,readFileSync:Io,writeFile:Mo,writeFileSync:Co};ei.exports=Ao});var ii=h((ja,ri)=>{"use strict";var Ne=ti();ri.exports={readJson:Ne.readFile,readJsonSync:Ne.readFileSync,writeJson:Ne.writeFile,writeJsonSync:Ne.writeFileSync}});var Me=h((Fa,si)=>{"use strict";var Ro=O().fromPromise,yt=V(),ni=require("path"),oi=X(),Vo=Z().pathExists;async function $o(t,e,r="utf-8"){let i=ni.dirname(t);return await Vo(i)||await oi.mkdirs(i),yt.writeFile(t,e,r)}function _o(t,...e){let r=ni.dirname(t);yt.existsSync(r)||oi.mkdirsSync(r),yt.writeFileSync(t,...e)}si.exports={outputFile:Ro($o),outputFileSync:_o}});var ci=h((Ta,ai)=>{"use strict";var{stringify:qo}=Te(),{outputFile:Uo}=Me();async function Xo(t,e,r={}){let i=qo(e,r);await Uo(t,i,r)}ai.exports=Xo});var ui=h((Ia,li)=>{"use strict";var{stringify:Bo}=Te(),{outputFileSync:Go}=Me();function Wo(t,e,r){let i=Bo(e,r);Go(t,i,r)}li.exports=Wo});var mi=h((Na,fi)=>{"use strict";var Jo=O().fromPromise,_=ii();_.outputJson=Jo(ci());_.outputJsonSync=ui();_.outputJSON=_.outputJson;_.outputJSONSync=_.outputJsonSync;_.writeJSON=_.writeJson;_.writeJSONSync=_.writeJsonSync;_.readJSON=_.readJson;_.readJSONSync=_.readJsonSync;fi.exports=_});var Si=h((Ma,hi)=>{"use strict";var Ho=V(),di=require("path"),{copy:Qo}=Fe(),{remove:yi}=we(),{mkdirp:Ko}=X(),{pathExists:Yo}=Z(),pi=se();async function zo(t,e,r={}){let i=r.overwrite||r.clobber||!1,{srcStat:n,isChangingCase:o=!1}=await pi.checkPaths(t,e,"move",r);await pi.checkParentPaths(t,n,e,"move");let a=di.dirname(e);return di.parse(a).root!==a&&await Ko(a),Zo(t,e,i,o)}async function Zo(t,e,r,i){if(!i){if(r)await yi(e);else if(await Yo(e))throw new Error("dest already exists.")}try{await Ho.rename(t,e)}catch(n){if(n.code!=="EXDEV")throw n;await es(t,e,r)}}async function es(t,e,r){return await Qo(t,e,{overwrite:r,errorOnExist:!0,preserveTimestamps:!0}),yi(t)}hi.exports=zo});var xi=h((Ca,bi)=>{"use strict";var vi=le(),St=require("path"),ts=Fe().copySync,wi=we().removeSync,rs=X().mkdirpSync,gi=se();function is(t,e,r){r=r||{};let i=r.overwrite||r.clobber||!1,{srcStat:n,isChangingCase:o=!1}=gi.checkPathsSync(t,e,"move",r);return gi.checkParentPathsSync(t,n,e,"move"),ns(e)||rs(St.dirname(e)),os(t,e,i,o)}function ns(t){let e=St.dirname(t);return St.parse(e).root===e}function os(t,e,r,i){if(i)return ht(t,e,r);if(r)return wi(e),ht(t,e,r);if(vi.existsSync(e))throw new Error("dest already exists.");return ht(t,e,r)}function ht(t,e,r){try{vi.renameSync(t,e)}catch(i){if(i.code!=="EXDEV")throw i;return ss(t,e,r)}}function ss(t,e,r){return ts(t,e,{overwrite:r,errorOnExist:!0,preserveTimestamps:!0}),wi(t)}bi.exports=is});var Pi=h((Aa,Li)=>{"use strict";var as=O().fromPromise;Li.exports={move:as(Si()),moveSync:xi()}});var Ei=h((Ra,ki)=>{"use strict";ki.exports={...V(),...Fe(),...Pr(),...Kr(),...mi(),...X(),...Pi(),...Me(),...Z(),...we()}});var Di=h(Ce=>{"use strict";Object.defineProperty(Ce,"__esModule",{value:!0});Ce.EXTENSIONS_LANGUAGES=void 0;Ce.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:"XML",tsx:"XML",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 xe=h(gt=>{"use strict";Object.defineProperty(gt,"__esModule",{value:!0});gt.setOptionValues=cs;function cs(t,e){for(let r of Object.keys(e))t[r]!==void 0&&(e[r]=t[r]);return e}});var ji=h(Ae=>{"use strict";Object.defineProperty(Ae,"__esModule",{value:!0});Ae.SarifBuilder=void 0;var ls=require("path"),Oi=Ei(),us=Di(),fs=xe(),vt=class{constructor(e={}){this.log={$schema:"http://json.schemastore.org/sarif-2.1.0.json",version:"2.1.0",runs:[]},(0,fs.setOptionValues)(e,this.log)}addRun(e){this.log.runs.push(e.run)}generateSarifFileSync(e){let r=this.buildSarifJsonString();Oi.writeFileSync(e,r,"utf8")}async generateSarifFile(e){let r=this.buildSarifJsonString();await Oi.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,i,n,o;e.artifacts=e.artifacts||[];for(let u of e.results)for(let l of u.locations||[])if(!((i=(r=l?.physicalLocation)===null||r===void 0?void 0:r.artifactLocation)===null||i===void 0)&&i.uri&&e.artifacts.filter(s=>{var m;return((m=s?.location)===null||m===void 0?void 0:m.uri)===l.physicalLocation.artifactLocation.uri}).length===0){let s=ls.extname(l.physicalLocation.artifactLocation.uri).replace(".",""),m=us.EXTENSIONS_LANGUAGES[s]||"unknown";e.artifacts.push({sourceLanguage:m,location:{uri:l.physicalLocation.artifactLocation.uri}})}let a=e.artifacts.map(u=>{var l;return(l=u?.location)===null||l===void 0?void 0:l.uri}),c=(((o=(n=e?.tool)===null||n===void 0?void 0:n.driver)===null||o===void 0?void 0:o.rules)||[]).map(u=>u.id);return e.results=e.results.map(u=>(c.indexOf(u.ruleId)>-1&&(u.ruleIndex=c.indexOf(u.ruleId)),u.locations&&(u.locations=u.locations.map(l=>{var s,m;let p=(m=(s=l?.physicalLocation)===null||s===void 0?void 0:s.artifactLocation)===null||m===void 0?void 0:m.uri;return p&&a.indexOf(p)>-1&&(l.physicalLocation.artifactLocation.index=a.indexOf(p)),l})),u)),e}};Ae.SarifBuilder=vt});var Fi=h(Re=>{"use strict";Object.defineProperty(Re,"__esModule",{value:!0});Re.SarifResultBuilder=void 0;var ms=xe(),wt=class{constructor(e={}){this.result={level:"error",message:{},ruleId:"SARIF_BUILDER_INVALID: Please send the rule Id ruleId property, or call setRuleId(ruleId)"},(0,ms.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(){var e;this.manageInitLocation(),!(!((e=this.result)===null||e===void 0)&&e.locations[0].physicalLocation)&&(this.result.locations[0].physicalLocation={})}};Re.SarifResultBuilder=wt});var Ti=h(Ve=>{"use strict";Object.defineProperty(Ve,"__esModule",{value:!0});Ve.SarifRuleBuilder=void 0;var ds=xe(),bt=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,ds.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}};Ve.SarifRuleBuilder=bt});var Ii=h($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});$e.SarifRunBuilder=void 0;var ps=xe(),xt=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,ps.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}};$e.SarifRunBuilder=xt});var Ni=h(G=>{"use strict";Object.defineProperty(G,"__esModule",{value:!0});G.SarifResultBuilder=G.SarifRuleBuilder=G.SarifRunBuilder=G.SarifBuilder=void 0;var ys=ji();Object.defineProperty(G,"SarifBuilder",{enumerable:!0,get:function(){return ys.SarifBuilder}});var hs=Fi();Object.defineProperty(G,"SarifResultBuilder",{enumerable:!0,get:function(){return hs.SarifResultBuilder}});var Ss=Ti();Object.defineProperty(G,"SarifRuleBuilder",{enumerable:!0,get:function(){return Ss.SarifRuleBuilder}});var gs=Ii();Object.defineProperty(G,"SarifRunBuilder",{enumerable:!0,get:function(){return gs.SarifRunBuilder}})});var Ci=h((Ga,Mi)=>{"use strict";var vs=/["'&<>]/;Mi.exports=ws;function ws(t){var e=""+t,r=vs.exec(e);if(!r)return e;var i,n="",o=0,a=0;for(o=r.index;o<e.length;o++){switch(e.charCodeAt(o)){case 34:i=""";break;case 38:i="&";break;case 39:i="'";break;case 60:i="<";break;case 62:i=">";break;default:continue}a!==o&&(n+=e.substring(a,o)),a=o+1,n+=i}return a!==o?n+e.substring(a,o):n}});var Qe=require("zx"),ae=require("fs/promises");var W={UNKNOWN:0,LOW:1,MEDIUM:2,HIGH:3,CRITICAL:4};var Le=class{allById=new Map;getAllVulnIds(){return new Set(this.allById.keys())}getAllVulnerabilitiesSortedBySeverity(){let e=Array.from(this.allById.values());return e.sort((r,i)=>{let n=It(r.severity,i.severity);return n===0?r.id.localeCompare(i.id):-n}),e}addVulnerability(e,r){let i=e.id,n=this.allById;if(!n.has(i))n.set(i,e);else{let o=n.get(i);o.title=o.title||e.title,o.severity=on(o.severity,e.severity),o.scannerSeverity[r]=e.severity,o.detectedBy=ze(o.detectedBy,r),o.components=ze(o.components,e.components[0]),o.refs=ze(o.refs,e.refs[0])}}enhanceWithVexData(e){let r=[];for(let i of this.allById.values()){let n=e.newestVulnerabilityStatement(i.id);if(!n){r.push({id:i.id,severity:i.severity});continue}i.vexStatement=n}return{unmatchedVulnerabilities:r}}};function on(t,e){return It(t,e)>0?t:e}function It(t,e){return W[t]-W[e]}function ze(t,e){return e?Array.from(new Set([...t,e]).values()):t}var Pe=Ye(require("path"));var q=require("fs/promises"),Ze=require("path");async function U(t){if(await ne(t))return JSON.parse(await(0,q.readFile)(t,{encoding:"utf-8"}))}async function et(t,e){await(0,q.writeFile)(t,JSON.stringify(e,null,4)+`
|
|
9
|
+
`,{encoding:"utf-8"})}function J(t){return t&&t.replace(/\?.*$/,"")}async function ne(t){try{return await(0,q.access)(t,q.constants.F_OK),!0}catch{return!1}}async function tt(t){let e=(0,Ze.resolve)(t),r=await(0,q.readdir)(e,{withFileTypes:!0});for(let i of r){let n=(0,Ze.resolve)(i.parentPath,i.name);i.isDirectory()?await tt(n):await(0,q.rm)(n)}await(0,q.rmdir)(e)}async function pe(t,e){let r=e?.user&&e?.pw?{Authorization:`Basic ${Buffer.from(`${e.user}:${e.pw}`).toString("base64")}`}:{},i=await fetch(t,{headers:r});if(!i.ok){let n="";try{n=await i.text()}catch(o){n=`${o}`}throw new Error(`Failed to fetch: ${t}: ${i.status} - ${i.statusText}: ${n}`)}return i}var rt;async function it(t){if(rt)return rt;let e="https://repository.conterra.de/repository/maven-mirror-ct",r=Y(t.workingDir,"input/vex"),i=Y(t.workingDir,"output"),n=Y(t.workingDir,"cache"),o=["grype","trivy","ossindex"],a=Y(t.workingDir,"vuln-scan-conf.json"),c=await U(a);if(!c)throw new Error(`Missing project configuration file '${a}'`);let u=c.findNoLongerDetectedVulnerabilitiesOnlyForSnapshots??!1;return rt={projectConfigFileLocation:a,onNewVulnerabilities:c.onNewVulnerabilities??(c.failOnNewVulnerabilities?"fail":"warn"),onNoLongerDetectedVulnerabilities:c.onNoLongerDetectedVulnerabilities??"ignore",reportNoLongerDetectedVulnerabilities:c.reportNoLongerDetectedVulnerabilities??!0,createSubDirsForProject:c.createSubDirsForProject??!0,mavenRepo:c.mavenRepo??e,vexUrls:c.vexUrls??[],vexDir:Y(t.workingDir,c.vexDir)??r,outDir:Y(t.workingDir,c.outDir)??i,cacheDir:Y(t.workingDir,c.cacheDir)??n,scanners:c.scanners??o,projects:(c.projects??[]).map(l=>{let s=l;if(!s.name)throw new Error("Project name is missing on entry:"+JSON.stringify(s));if(!s.version)throw new Error("Project version is missing on entry:"+JSON.stringify(s));if(!s.purl)throw new Error("Project purl is missing on entry:"+JSON.stringify(s));return s.purlAliases||(s.purlAliases=[]),s.enabled==null&&(s.enabled=!0),s.silent==null&&(s.silent=!1),s.minimumSeverity||(s.minimumSeverity="UNKNOWN"),s.sbomFile?{...s,sbomFile:Y(t.workingDir,s.sbomFile)}:(s.detectNoLongerUsedVulnerabilities=u?s.purl.endsWith("-SNAPSHOT"):!0,l)})}}function Y(t,e){if(e)return Pe.default.isAbsolute(e)?e:(0,Pe.resolve)(t,e)}var re=Ye(Ni());var Ai=Ye(Ci());function Ri(t,e){let r=new re.SarifRunBuilder().initSimple({toolDriverName:`${e.name} - ${e.version}`,toolDriverVersion:"0.0.1"}),i=new Date().toISOString().split("T")[0];r.run.tool.driver.fullDescription={text:`Security Scan from ${i}`},r.run.tool.driver.properties={"microsoft/qualityDomain":`Security Scan from ${i}`};for(let o of t){let a=xs(o.severity),c=o.id,u=bs(o.refs),l=new re.SarifRuleBuilder().initSimple({ruleId:c,shortDescriptionText:o.title,fullDescriptionText:o.description,helpUri:u}),s=o.vexStatement,m,p="new",f="";s?(m=[{kind:"external",status:"accepted"}],p="updated",f=`--- INVESTIGATED (${s.status}) --- `,s.status==="under_investigation"&&(m[0].status="underReview",f="--- UNDER INVESTIGATION --- ")):W[e.minimumSeverity]>W[o.severity]?(m=[{kind:"external",status:"accepted"}],p="updated",f=`--- BELOW MINIMUM SEVERITY '${e.minimumSeverity}' ---`):e.silent&&(m=[{kind:"external",status:"accepted"}],p="updated",f="--- PROJECT SILENT ---"),Object.assign(l.rule,{name:`${f}[${o.severity}] - ${o.title.replace(`[${c}]`,"")}`,messageStrings:{default:{text:o.description,markdown:Ls(o,u,f)}},properties:{severity:o.severity,scanners:o.scannerSeverity,links:o.refs,tags:["cve","vulnerability","security",`severity_${o.severity.toLowerCase()}`]}}),r.addRule(l);for(let d of o.components){let S=new re.SarifResultBuilder().initSimple({ruleId:c,level:a,messageText:`${c} [${o.severity}] - ${d}`});S.result.message.id="default",S.result.locations=[{logicalLocations:[{fullyQualifiedName:d}]}],S.result.baselineState=p,S.result.suppressions=m,r.addResult(S)}}let n=new re.SarifBuilder;return n.addRun(r),n.buildSarifOutput()}function bs(t){for(let e of t)if(e.startsWith("https://nvd.nist.gov"))return e;return t[0]}function xs(t){switch(t){case"CRITICAL":return"error";case"HIGH":return"error";case"MEDIUM":return"warning";case"LOW":return"warning";default:return"note"}}function Ls(t,e,r){let i=t.vexStatement,n=i?`
|
|
10
10
|
${r}
|
|
11
11
|
${i.justification??""}
|
|
12
12
|
${i.impact_statement??""}
|
|
@@ -18,13 +18,13 @@ ${n}
|
|
|
18
18
|
|
|
19
19
|
--- DETAILS ---
|
|
20
20
|
|
|
21
|
-
${(0,
|
|
21
|
+
${(0,Ai.default)(t.description)}
|
|
22
22
|
|
|
23
23
|
${t.refs.map(o=>`* <${o}>`).join(`
|
|
24
24
|
`)}
|
|
25
|
-
`}var qe=require("fs/promises");async function Vi(t,e,r){if("sbomFile"in t)return await(0,qe.copyFile)(t.sbomFile,e),t.sbomFile=e,t;let i=await r.downloadArtifact(t.sbomMavenCoordinates);return await(0,qe.writeFile)(e,i),{...t,sbomFile:e}}var $e=class{constructor(e,r){this.repo=e;this.authn=r}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 i=this.toArtifactUrl(r),n=await pe(i,this.authn);return Buffer.from(await n.arrayBuffer())}async fetchLatestSnapshotTimestamp(e){let r=`${this.toArtifactBaseUrl(e)}/maven-metadata.xml`,n=await(await pe(r,this.authn)).text();return Ps(n,e)}toArtifactUrl(e){let r=this.toArtifactBaseUrl(e),i=this.isSnapshotVersion(e.version)&&e.timestamp?e.version.replace(/SNAPSHOT$/,e.timestamp):e.version;return`${r}/${e.artifactId}-${i}-${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 Ps(t,e){if(e.classifier&&e.extension){let n=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(n?.[1])return n[1].replace(o,"")}let r=t.match(/<timestamp>([^<]+)<\/timestamp>/),i=t.match(/<buildNumber>([^<]+)<\/buildNumber>/);if(!r||!i)throw new Error(`Failed to get timestamp and build number from ${t} for artifact '${e.artifactId}'`);return`${r[1]}-${i[1]}`}var Ue=require("fs/promises"),Lt=require("path");var Pt=class{constructor(e){this.location=e}async read(){let e=await U(this.location);if(!e)throw new Error("Invalid VEX file");return e}async write(e){await et(this.location,e)}async delete(){await(0,Ue.unlink)(this.location)}};async function Xe(t,e){for(let r of await(0,Ue.readdir)(t,{withFileTypes:!0}))r.name.endsWith(".json")?await e(new Pt((0,Lt.resolve)(r.parentPath,r.name))):r.isDirectory()&&await Xe((0,Lt.resolve)(r.parentPath,r.name),e)}function Et(t){let e=t.vulnerability.name;return new Set([e,...t.vulnerability.aliases??[]])}var de=class t{statements=[];filteredToProducts=[];static async fromUrl(e,r,i=new t){let o=await(await pe(e,r)).json();return i.add(o),i}static async fromFiles(e,r=new t){return await Xe(e,async i=>{let n=await i.read();r.add(n)}),r}add(e){Es(e);let r=e.timestamp;for(let i of e.statements){i.timestamp=i.timestamp??r;let n=Date.parse(i.timestamp),o=i.vulnerability.name,s=Et(i),c=new Set(i.products?.map(u=>u["@id"]).filter(u=>!!u)??[]),l=new kt(n,o,s,c,i);this.statements.push(l)}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(i=>i.matchesAtLeastOneProduct(e)),r}findNotMatchingVulnerabilities(e,r){let i=this.filterByProduct(r??this.filteredToProducts),n=new Set;for(let o of i.statements)n.add(o.vulnName);for(let o of e)n.delete(o);return Array.from(n)}newestVulnerabilityStatement(e,r){let i=this.filterByProduct(r??this.filteredToProducts);for(let n of i.statements)if(n.matchesVulnerability(e))return this.reduceToProductInformation(n,i.filteredToProducts[0])}toVexFileForProduct(e){let r=this.filterByProduct(e??this.filteredToProducts),i=r.statements.map(n=>this.reduceToProductInformation(n,r.filteredToProducts[0]));return this.toVexFile(i)}toVexFile(e){let r=e.filter(n=>n.status!=="under_investigation");if(r.length===0)return;this.sortVexStatementsByTimestampNewestFirst(r);let i=r[0].timestamp;return{"@context":"https://openvex.dev/ns/v0.2.0","@id":"https://openvex.dev/docs/public/vex-fc763e6eb63bfbcda20b7cbbddd4e9f8feaaa317fe8d8a6f51a5663a1180343e",author:"conterra",timestamp:i,last_updated:i,version:1,statements:r}}assertCorrectProductId(e){if(!e||e.length===0)throw new Error("Product ID must be provided");if(this.filteredToProducts.length&&!ks(this.filteredToProducts,e))throw new Error("Cannot filter to a different product")}reduceToProductInformation(e,r){let i={timestamp:new Date(e.timestamp).toISOString(),...e.statement};if(!r)return i;let n=i.products?.filter(o=>o["@id"]===r);return n?.length||(n=[{"@id":r}]),{...i,products:n}}sortStatementsByTimestampNewestFirst(){this.statements.sort((e,r)=>r.timestamp-e.timestamp)}sortVexStatementsByTimestampNewestFirst(e){e.sort((r,i)=>Date.parse(i.timestamp)-Date.parse(r.timestamp))}};function ks(t,e){return t.length===e.length&&t.every((r,i)=>r===e[i])}var kt=class{constructor(e,r,i,n,o){this.timestamp=e;this.vulnName=r;this.vulnAliases=i;this.products=n;this.statement=o}matchesProduct(e){return this.products.has(e)}matchesAtLeastOneProduct(e){return e.some(this.matchesProduct.bind(this))}matchesVulnerability(e){return this.vulnAliases.has(e)}};function Es(t){if(t?.["@context"]!=="https://openvex.dev/ns/v0.2.0")throw new Error("Invalid VEX file format")}var Ge=require("path"),_i=require("fs/promises");var Be=class{constructor(e,r,i){this.project=e;this.outputDir=r;this.useSubDirForProject=i}async lookupOutputFileForWriting(e){let r=this.useSubDirForProject?`${this.project.name}-${this.project.version}`:"",i=`${this.project.name}-${this.project.version}-`,n=this.getFileSuffix(e),o=(0,Ge.resolve)(this.outputDir,r,`${i}${n}`),s=(0,Ge.dirname)(o);return await ne(s)||await(0,_i.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 Dt=require("zx");var We=require("path"),$i="anchore/grype:latest";async function qi(t){let e=await Dt.$`docker run --rm -v '${t}:/.cache' ${$i} db update`;e.stdout&&console.log(` Grype DB Update: ${e.stdout}`),e.stderr&&console.log(` Grype DB Update error: ${e.stderr}`)}async function Ui(t,e,r,i,n){let o=(0,We.dirname)(e),s=(0,We.basename)(e),c=await Dt.$`docker run --rm -v '${t}:/.cache' -v '${o}:/tmp/output' -v '${r.sbomFile}:/tmp/input.json' -e GRYPE_DB_AUTO_UPDATE=false ${$i} sbom:/tmp/input.json -o json --file '/tmp/output/${s}' --by-cve --quiet`;c.stdout&&n(` Scan log: ${c.stdout}`),c.stderr&&n(` Scan error: ${c.stderr}`),n(` Grype output file: ${e}`);let l=await U(e);Ds(i,l)}function Ds(t,e){if(e)for(let r of e.matches){let i=Os(r);t.addVulnerability(i,"grype")}}function Os(t){let e=t.vulnerability,r=e.id,i=J(t.artifact.purl),n=J(e.dataSource),o=js(e.severity);return{id:r,severity:o,scannerSeverity:{grype:o},title:"",description:e.description,components:[i],detectedBy:["grype"],refs:[n]}}function js(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 Xi=require("fs/promises");async function Bi(t,e,r,i,n){let o={},s="";r.user&&r.token&&(o.Authorization=`Basic ${Buffer.from(`${r.user}:${r.token}`).toString("base64")}`,s="/authorized");let c=`https://ossindex.sonatype.org/api/v3${s}/component-report`,l=await Fs(e.sbomFile),u=new Set(l.map(d=>d.purl.replace(/\?.*$/,"")));Rs(u);let a=Array.from(u),m=[];for(let d=0;d<a.length;d+=128){let f=JSON.stringify({coordinates:a.slice(d,d+128)}),S=await(await fetch(c,{method:"POST",headers:{...o,"Content-Type":"application/vnd.ossindex.component-report-request.v1+json"},body:f})).json();Array.isArray(S)?m.push(...S.filter(g=>g.vulnerabilities.length>0)):n(` Sonatype OssIndex Error: ${S.code} - ${S.message}`)}await(0,Xi.writeFile)(t,JSON.stringify(m,null,2)),n(` Sonatype OssIndex output file: ${t}`),Ns(i,m)}async function Fs(t){return(await U(t)).components.filter(r=>Ts(r)&&!Is(r))}function Ts(t){return!!t.purl}function Is(t){return t.group?t.group.startsWith("de.conterra")||t.group.startsWith("org.n52.security"):!1}function Ns(t,e){if(e)for(let r of e)for(let i of r.vulnerabilities){let n=Ms(i,r.coordinates);t.addVulnerability(n,"ossindex")}}function Ms(t,e){let r=t.cve||t.id,i=J(e),n=J(t.reference),o=Cs(t.cvssScore);return{id:r,severity:o,scannerSeverity:{ossindex:o},title:t.title,description:t.description,components:[i],detectedBy:["ossindex"],refs:n?[n]:[]}}function Cs(t){return t===0?"UNKNOWN":t<4?"LOW":t<7?"MEDIUM":t<9?"HIGH":"CRITICAL"}function Rs(t){let e=Array.from(t);for(let r of e){let i=r.replace(/(@[^-]+)-.*$/g,"$1");t.add(i)}}var Ot=require("zx");var Je=require("path"),Gi="aquasec/trivy:latest";async function Wi(t,e){let r=[];e&&(r.push("-e"),r.push(`GITHUB_TOKEN=${e}`));let i=[];i.push("--db-repository"),i.push("public.ecr.aws/aquasecurity/trivy-db,aquasec/trivy-db,ghcr.io/aquasecurity/trivy-db");let n=await Ot.$`docker run --rm -v '${t}:/.cache' ${r} ${Gi} ${i} --cache-dir '/.cache' sbom --download-db-only --quiet`;!n.stdout&&!n.stderr&&console.log(" Trivy DB Update: finished"),n.stdout&&console.log(` Trivy DB Update: ${n.stdout}`),n.stderr&&console.log(` Trivy DB Update error: ${n.stderr}`)}async function Ji(t,e,r,i,n){let o=(0,Je.dirname)(e),s=(0,Je.basename)(e),c=await Ot.$`docker run --rm -v '${t}:/.cache' -v '${o}:/tmp/output' -v '${r.sbomFile}:/tmp/input.json' ${Gi} sbom --cache-dir '/.cache' --format json --output '/tmp/output/${s}' --quiet --skip-db-update /tmp/input.json`;c.stdout&&n(` Scan log: ${c.stdout}`),c.stderr&&n(` Scan error: ${c.stderr}`),n(` Trivy output file: ${e}`);let l=await U(e);As(i,l)}function As(t,e){if(e){for(let r of e.Results)if(r.Vulnerabilities)for(let i of r.Vulnerabilities){let n=Vs(i);t.addVulnerability(n,"trivy")}}}function Vs(t){let e=t.VulnerabilityID,r=J(t.PkgIdentifier.PURL),i=J(t.PrimaryURL),n=_s(t.Severity);return{id:e,severity:n,scannerSeverity:{trivy:n},title:t.Title,description:t.Description,components:[r],detectedBy:["trivy"],refs:[i]}}function _s(t){switch(t){case"UNKNOWN":case"LOW":case"MEDIUM":case"HIGH":case"CRITICAL":return t;default:return"UNKNOWN"}}var He=class{constructor(e,r,i){this.scannerNames=e;this.cacheDir=r;this.options=i}async init(){let e=[];for(let r of this.scannerNames)switch(r){case"grype":e.push(qi(this.cacheDir));break;case"trivy":e.push(Wi(this.cacheDir,this.options.trivyGithubToken));break;case"ossindex":continue}await Promise.all(e)}async scanProject(e,r,i,n){let o=[];for(let s of this.scannerNames)o.push(this.scanProjectBy(s,e,r,this.cacheDir,i,this.options.ossIndexApiUser,this.options.ossIndexApiToken,n));await Promise.all(o)}async scanProjectBy(e,r,i,n,o,s,c,l){switch(e){case"grype":return Ui(n,await i.lookupOutputFileForWriting("grype-results"),r,o,l);case"trivy":return Ji(n,await i.lookupOutputFileForWriting("trivy-results"),r,o,l);case"ossindex":return Bi(await i.lookupOutputFileForWriting("ossindex-results"),r,{user:s,token:c},o,l)}}};async function Hi(t,e,r){await Xe(t,async i=>{let n=await i.read(),o=!1,s=n.statements,c=[];for(let l of s){if(r&&!Et(l).has(r)||!l.products)continue;let u=l.products.findIndex(a=>a["@id"]===e);u!==-1&&(l.products.splice(u,1),o=!0,l.products.length===0&&c.push(l))}if(o){for(let l of c){let u=s.indexOf(l);s.splice(u,1)}if(s.length===0){console.info(`Remove ${e} from ${i.location} and delete file.`),await i.delete();return}console.info(`Remove ${e} from ${i.location}`),await i.write(n)}})}Qe.os.type().startsWith("Windows")&&(0,Qe.usePowerShell)();async function Qi(t){let e=await it(t),r=e.cacheDir;await ne(r)||await(0,ae.mkdir)(r);let i=e.outDir;await ne(i)&&await tt(i),await(0,ae.mkdir)(i);let n=await Bs(e,{user:t.vexUrlsUser,pw:t.vexUrlsPw}),o=new $e(e.mavenRepo,{user:t.mavenRepoUser,pw:t.mavenRepoPw}),s=Gs(e,t,r),c=Date.now();console.log("Initializing scanner engines ..."),await s.init(),console.log(`Scanner engines initialization took ${Date.now()-c}ms
|
|
26
|
-
`);let
|
|
27
|
-
Scan results:`),c.length)for(let{project:
|
|
25
|
+
`}var qe=require("fs/promises");async function Vi(t,e,r){if("sbomFile"in t)return await(0,qe.copyFile)(t.sbomFile,e),t.sbomFile=e,t;let i=await r.downloadArtifact(t.sbomMavenCoordinates);return await(0,qe.writeFile)(e,i),{...t,sbomFile:e}}var _e=class{constructor(e,r){this.repo=e;this.authn=r}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 i=this.toArtifactUrl(r),n=await pe(i,this.authn);return Buffer.from(await n.arrayBuffer())}async fetchLatestSnapshotTimestamp(e){let r=`${this.toArtifactBaseUrl(e)}/maven-metadata.xml`,n=await(await pe(r,this.authn)).text();return Ps(n,e)}toArtifactUrl(e){let r=this.toArtifactBaseUrl(e),i=this.isSnapshotVersion(e.version)&&e.timestamp?e.version.replace(/SNAPSHOT$/,e.timestamp):e.version;return`${r}/${e.artifactId}-${i}-${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 Ps(t,e){if(e.classifier&&e.extension){let n=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(n?.[1])return n[1].replace(o,"")}let r=t.match(/<timestamp>([^<]+)<\/timestamp>/),i=t.match(/<buildNumber>([^<]+)<\/buildNumber>/);if(!r||!i)throw new Error(`Failed to get timestamp and build number from ${t} for artifact '${e.artifactId}'`);return`${r[1]}-${i[1]}`}var Ue=require("fs/promises"),Lt=require("path");var Pt=class{constructor(e){this.location=e}async read(){let e=await U(this.location);if(!e)throw new Error("Invalid VEX file");return e}async write(e){await et(this.location,e)}async delete(){await(0,Ue.unlink)(this.location)}};async function Xe(t,e){for(let r of await(0,Ue.readdir)(t,{withFileTypes:!0}))r.name.endsWith(".json")?await e(new Pt((0,Lt.resolve)(r.parentPath,r.name))):r.isDirectory()&&await Xe((0,Lt.resolve)(r.parentPath,r.name),e)}function Et(t){let e=t.vulnerability.name;return new Set([e,...t.vulnerability.aliases??[]])}var de=class t{statements=[];filteredToProducts=[];static async fromUrl(e,r,i=new t){let o=await(await pe(e,r)).json();return i.add(o),i}static async fromFiles(e,r=new t){return await Xe(e,async i=>{let n=await i.read();r.add(n)}),r}add(e){Es(e);let r=e.timestamp;for(let i of e.statements){i.timestamp=i.timestamp??r;let n=Date.parse(i.timestamp),o=i.vulnerability.name,a=Et(i),c=new Set(i.products?.map(l=>l["@id"]).filter(l=>!!l)??[]),u=new kt(n,o,a,c,i);this.statements.push(u)}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(i=>i.matchesAtLeastOneProduct(e)),r}findNotMatchingVulnerabilities(e,r){let i=this.filterByProduct(r??this.filteredToProducts),n=new Set;for(let o of i.statements)n.add(o.vulnName);for(let o of e)n.delete(o);return Array.from(n)}newestVulnerabilityStatement(e,r){let i=this.filterByProduct(r??this.filteredToProducts);for(let n of i.statements)if(n.matchesVulnerability(e))return this.reduceToProductInformation(n,i.filteredToProducts[0])}toVexFileForProduct(e){let r=this.filterByProduct(e??this.filteredToProducts),i=r.statements.map(n=>this.reduceToProductInformation(n,r.filteredToProducts[0]));return this.toVexFile(i)}toVexFile(e){let r=e.filter(n=>n.status!=="under_investigation");if(r.length===0)return;this.sortVexStatementsByTimestampNewestFirst(r);let i=r[0].timestamp;return{"@context":"https://openvex.dev/ns/v0.2.0","@id":"https://openvex.dev/docs/public/vex-fc763e6eb63bfbcda20b7cbbddd4e9f8feaaa317fe8d8a6f51a5663a1180343e",author:"conterra",timestamp:i,last_updated:i,version:1,statements:r}}assertCorrectProductId(e){if(!e||e.length===0)throw new Error("Product ID must be provided");if(this.filteredToProducts.length&&!ks(this.filteredToProducts,e))throw new Error("Cannot filter to a different product")}reduceToProductInformation(e,r){let i={timestamp:new Date(e.timestamp).toISOString(),...e.statement};if(!r)return i;let n=i.products?.filter(o=>o["@id"]===r);return n?.length||(n=[{"@id":r}]),{...i,products:n}}sortStatementsByTimestampNewestFirst(){this.statements.sort((e,r)=>r.timestamp-e.timestamp)}sortVexStatementsByTimestampNewestFirst(e){e.sort((r,i)=>Date.parse(i.timestamp)-Date.parse(r.timestamp))}};function ks(t,e){return t.length===e.length&&t.every((r,i)=>r===e[i])}var kt=class{constructor(e,r,i,n,o){this.timestamp=e;this.vulnName=r;this.vulnAliases=i;this.products=n;this.statement=o}matchesProduct(e){return this.products.has(e)}matchesAtLeastOneProduct(e){return e.some(this.matchesProduct.bind(this))}matchesVulnerability(e){return this.vulnAliases.has(e)}};function Es(t){if(t?.["@context"]!=="https://openvex.dev/ns/v0.2.0")throw new Error("Invalid VEX file format")}var Ge=require("path"),$i=require("fs/promises");var Be=class{constructor(e,r,i){this.project=e;this.outputDir=r;this.useSubDirForProject=i}async lookupOutputFileForWriting(e){let r=this.useSubDirForProject?`${this.project.name}-${this.project.version}`:"",i=`${this.project.name}-${this.project.version}-`,n=this.getFileSuffix(e),o=(0,Ge.resolve)(this.outputDir,r,`${i}${n}`),a=(0,Ge.dirname)(o);return await ne(a)||await(0,$i.mkdir)(a,{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 Dt=require("zx");var We=require("path"),_i="anchore/grype:latest";async function qi(t){let e=await Dt.$`docker run --rm -v '${t}:/home/nonroot/.cache' ${_i} db update`.nothrow();if(e.stdout&&console.log(` Grype DB Update: ${e.stdout}`),e.stderr&&console.log(` Grype DB Update error: ${e.stderr}`),e.exitCode!==0)throw new Error(`Grype DB update failed with exit code ${e.exitCode}: ${e.stderr}`)}async function Ui(t,e,r,i,n,o){let a=(0,We.dirname)(e),c=(0,We.basename)(e),u=[];n||u.push("--quiet");let l=await Dt.$`docker run --rm -v '${t}:/home/nonroot/.cache' -v '${a}:/home/nonroot/output' -v '${r.sbomFile}:/home/nonroot/input.json' -e GRYPE_DB_AUTO_UPDATE=false ${_i} sbom:/home/nonroot/input.json -o json --file '/home/nonroot/output/${c}' --by-cve ${u}`.nothrow();if(l.stdout&&o(` Scan log: ${l.stdout}`),l.stderr&&o(` Scan error: ${l.stderr}`),l.exitCode!==0)throw new Error(`Grype scan failed with exit code ${l.exitCode}: ${l.stderr}`);o(` Grype output file: ${e}`);let s=await U(e);Ds(i,s)}function Ds(t,e){if(e)for(let r of e.matches){let i=Os(r);t.addVulnerability(i,"grype")}}function Os(t){let e=t.vulnerability,r=e.id,i=J(t.artifact.purl),n=J(e.dataSource),o=js(e.severity);return{id:r,severity:o,scannerSeverity:{grype:o},title:"",description:e.description,components:[i],detectedBy:["grype"],refs:[n]}}function js(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 Xi=require("fs/promises");async function Bi(t,e,r,i,n,o){let a={},c="";r.user&&r.token&&(a.Authorization=`Basic ${Buffer.from(`${r.user}:${r.token}`).toString("base64")}`,c="/authorized");let u=`https://ossindex.sonatype.org/api/v3${c}/component-report`,l=await Fs(e.sbomFile),s=new Set(l.map(f=>f.purl.replace(/\?.*$/,"")));As(s);let m=Array.from(s),p=[];for(let f=0;f<m.length;f+=128){let d=JSON.stringify({coordinates:m.slice(f,f+128)});n&&o(` Sonatype OssIndex request ${u} with body: ${d}`);let g=await(await fetch(u,{method:"POST",headers:{...a,"Content-Type":"application/vnd.ossindex.component-report-request.v1+json"},body:d})).json();Array.isArray(g)?p.push(...g.filter(b=>b.vulnerabilities.length>0)):o(` Sonatype OssIndex Error: ${g.code} - ${g.message}`)}await(0,Xi.writeFile)(t,JSON.stringify(p,null,2)),o(` Sonatype OssIndex output file: ${t}`),Ns(i,p)}async function Fs(t){return(await U(t)).components.filter(r=>Ts(r)&&!Is(r))}function Ts(t){return!!t.purl}function Is(t){return t.group?t.group.startsWith("de.conterra")||t.group.startsWith("org.n52.security"):!1}function Ns(t,e){if(e)for(let r of e)for(let i of r.vulnerabilities){let n=Ms(i,r.coordinates);t.addVulnerability(n,"ossindex")}}function Ms(t,e){let r=t.cve||t.id,i=J(e),n=J(t.reference),o=Cs(t.cvssScore);return{id:r,severity:o,scannerSeverity:{ossindex:o},title:t.title,description:t.description,components:[i],detectedBy:["ossindex"],refs:n?[n]:[]}}function Cs(t){return t===0?"UNKNOWN":t<4?"LOW":t<7?"MEDIUM":t<9?"HIGH":"CRITICAL"}function As(t){let e=Array.from(t);for(let r of e){let i=r.replace(/(@[^-]+)-.*$/g,"$1");t.add(i)}}var Ot=require("zx");var Je=require("path"),Gi="aquasec/trivy:latest";async function Wi(t,e,r){let i=[];e&&(i.push("-e"),i.push(`GITHUB_TOKEN=${e}`));let n=[];n.push("--db-repository"),n.push("public.ecr.aws/aquasecurity/trivy-db,aquasec/trivy-db,ghcr.io/aquasecurity/trivy-db"),r||n.push("--quiet");let o=await Ot.$`docker run --rm -v '${t}:/.cache' ${i} ${Gi} ${n} --cache-dir '/.cache' sbom --download-db-only`.nothrow();if(!o.stdout&&!o.stderr&&console.log(" Trivy DB Update: finished"),o.stdout&&console.log(` Trivy DB Update: ${o.stdout}`),o.stderr&&console.log(` Trivy DB Update error: ${o.stderr}`),o.exitCode!==0)throw new Error(`Trivy DB update failed with exit code ${o.exitCode}: ${o.stderr}`)}async function Ji(t,e,r,i,n,o){let a=(0,Je.dirname)(e),c=(0,Je.basename)(e),u=[];n||u.push("--quiet");let l=await Ot.$`docker run --rm -v '${t}:/.cache' -v '${a}:/tmp/output' -v '${r.sbomFile}:/tmp/input.json' ${Gi} sbom --cache-dir '/.cache' --format json --output '/tmp/output/${c}' ${u} --skip-db-update /tmp/input.json`.nothrow();if(l.stdout&&o(` Scan log: ${l.stdout}`),l.stderr&&o(` Scan error: ${l.stderr}`),l.exitCode!==0)throw new Error(`Trivy scan failed with exit code ${l.exitCode}: ${l.stderr}`);o(` Trivy output file: ${e}`);let s=await U(e);Rs(i,s)}function Rs(t,e){if(e){for(let r of e.Results)if(r.Vulnerabilities)for(let i of r.Vulnerabilities){let n=Vs(i);t.addVulnerability(n,"trivy")}}}function Vs(t){let e=t.VulnerabilityID,r=J(t.PkgIdentifier.PURL),i=J(t.PrimaryURL),n=$s(t.Severity);return{id:e,severity:n,scannerSeverity:{trivy:n},title:t.Title,description:t.Description,components:[r],detectedBy:["trivy"],refs:[i]}}function $s(t){switch(t){case"UNKNOWN":case"LOW":case"MEDIUM":case"HIGH":case"CRITICAL":return t;default:return"UNKNOWN"}}var He=class{constructor(e,r,i){this.scannerNames=e;this.cacheDir=r;this.options=i}async init(e){let r=[];for(let i of this.scannerNames)switch(i){case"grype":r.push(qi(this.cacheDir));break;case"trivy":r.push(Wi(this.cacheDir,this.options.trivyGithubToken,e));break;case"ossindex":continue}await Promise.all(r)}async scanProject(e,r,i,n,o){let a=[];for(let c of this.scannerNames)a.push(this.scanProjectBy(c,e,r,this.cacheDir,i,this.options.ossIndexApiUser,this.options.ossIndexApiToken,n,o));await Promise.all(a)}async scanProjectBy(e,r,i,n,o,a,c,u,l){switch(e){case"grype":return Ui(n,await i.lookupOutputFileForWriting("grype-results"),r,o,u,l);case"trivy":return Ji(n,await i.lookupOutputFileForWriting("trivy-results"),r,o,u,l);case"ossindex":return Bi(await i.lookupOutputFileForWriting("ossindex-results"),r,{user:a,token:c},o,u,l)}}};async function Hi(t,e,r){await Xe(t,async i=>{let n=await i.read(),o=!1,a=n.statements,c=[];for(let u of a){if(r&&!Et(u).has(r)||!u.products)continue;let l=u.products.findIndex(s=>s["@id"]===e);l!==-1&&(u.products.splice(l,1),o=!0,u.products.length===0&&c.push(u))}if(o){for(let u of c){let l=a.indexOf(u);a.splice(l,1)}if(a.length===0){console.info(`Remove ${e} from ${i.location} and delete file.`),await i.delete();return}console.info(`Remove ${e} from ${i.location}`),await i.write(n)}})}Qe.os.type().startsWith("Windows")&&(0,Qe.usePowerShell)();async function Qi(t){let e=await it(t),r=e.cacheDir;await ne(r)||await(0,ae.mkdir)(r);let i=e.outDir;await ne(i)&&await tt(i),await(0,ae.mkdir)(i);let n=await Bs(e,{user:t.vexUrlsUser,pw:t.vexUrlsPw}),o=new _e(e.mavenRepo,{user:t.mavenRepoUser,pw:t.mavenRepoPw}),a=Gs(e,t,r),c=Date.now();console.log("Initializing scanner engines ..."),await a.init(t.verbose),console.log(`Scanner engines initialization took ${Date.now()-c}ms
|
|
26
|
+
`);let u=Ws(t),l=e.projects,s=new Map,m=Date.now();console.log("Scanning projects ...");let p=1,f=0,d=[];for(let g of l){if(!u(g))continue;f>=p&&(await Promise.race(d),--f);let b=new Be(g,i,e.createSubDirsForProject),F=[],T=ie=>{F.push(ie)};d.push(_s(g,b,o,a,n,T,s,t,F)),++f}await Promise.all(d),console.log(`Scanning took ${Date.now()-m}ms`),t.autoRemoveUnusedStatements&&await Js(s,e.vexDir);let S=qs(s,e.reportNoLongerDetectedVulnerabilities);if(S.hasError)return 1;if(S.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(S.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 _s(t,e,r,i,n,o,a,c,u){try{let{unmatchedVulnerabilities:l,noLongerDetectedVulnerabilities:s}=await Us(t,e,r,i,n,c.verbose,o);a.set(t.purl,{project:t,newVulns:l,noLongerDetectedVulns:s})}catch(l){let s=l;a.set(t.purl,{project:t,error:`${s}`,newVulns:[],noLongerDetectedVulns:[]})}if(c.verbose)for(let l of u)console.log(l)}function qs(t,e){let r=!1,i=!1,n=!1,o=new Map,a=new Map,c=[];for(let u of t.values()){let l=u.project,s=`${l.name} - ${l.version}`;if(u.error&&(r=!0,c.push({project:s,error:u.error})),l.silent)continue;let p=W[l.minimumSeverity],f=u.newVulns.filter(d=>p<=W[d.severity]);for(let d of f)i=!0,o.has(d.id)||o.set(d.id,{severity:d.severity,projects:[]}),o.get(d.id).projects.push(s);if(e)for(let d of u.noLongerDetectedVulns)n=!0,a.has(d)||a.set(d,[]),a.get(d).push(s)}if(console.log(`
|
|
27
|
+
Scan results:`),c.length)for(let{project:u,error:l}of c)console.error(` ${u}:`),console.error(` Error: ${l}`);if(o.size){console.log(" New vulnerabilities:");for(let[u,{severity:l,projects:s}]of o.entries()){console.log(` [${l}] ${u} detected in:`);for(let m of s)console.log(` - ${m}`)}}if(a.size){console.log(" Declared but no longer detected vulnerabilities:");for(let[u,l]of a.entries()){console.log(` ${u} was declared in:`);for(let s of l)console.log(` - ${s}`)}}return!r&&!i&&!n&&console.log(" No issues found"),{hasError:r,hasNewVuln:i,hasNoLongerDetectedVuln:n}}async function Us(t,e,r,i,n,o,a){let c=await Vi(t,await e.lookupOutputFileForWriting("project-cyclonedx-sbom-file"),r);a(`Analyzing project: ${c.name} - ${c.version} - ${c.sbomFile}`);let u=new Le;await i.scanProject(c,e,u,o,a);let l=n.filterByProduct([c.purl,...c.purlAliases]),{unmatchedVulnerabilities:s}=u.enhanceWithVexData(l),m=c.detectNoLongerUsedVulnerabilities?l.findNotMatchingVulnerabilities(u.getAllVulnIds()):[];return await Xs(e,c,u,l,a),{unmatchedVulnerabilities:s,noLongerDetectedVulnerabilities:m}}async function Xs(t,e,r,i,n){let o=r.getAllVulnerabilitiesSortedBySeverity(),a=await t.lookupOutputFileForWriting("aggregate-results");await(0,ae.writeFile)(a,JSON.stringify(o,null,2)),n(` Vulnerabilities output file: ${a}`);let c=await t.lookupOutputFileForWriting("aggregated-sarif-results"),u=Ri(o,e);await(0,ae.writeFile)(c,JSON.stringify(u,null,2)),n(` Vuln Sarif output file: ${c}`);let l=i.toVexFileForProduct();if(!l)return;let s=await t.lookupOutputFileForWriting("project-openvex-file");await(0,ae.writeFile)(s,JSON.stringify(l,null,2)),n(` OpenVex file: ${s}`)}async function Bs(t,e){let r=t.vexDir,i;await ne(r)?i=await de.fromFiles(r):i=new de;for(let n of t.vexUrls)await de.fromUrl(n,e,i);return i}function Gs(t,e,r){if(e.scannerEngine)return e.scannerEngine;if(t.scanners.length===0)throw new Error("No scanners configured");return new He(t.scanners,r,e)}function Ws(t){let{reduceToProjectName:e,reduceToProjectVersion:r}=t;return i=>!(!i.enabled||e&&(i.name!==e||r&&i.version!==r))}async function Js(t,e){for(let r of t.values())if(!r.project.silent)for(let i of r.noLongerDetectedVulns)await Hi(e,r.project.purl,i)}var Ki=require("zx");Ki.dotenv.config();var K=process.env;(async()=>{let t=await Qi({workingDir:process.cwd(),reduceToProjectName:process.argv[2],reduceToProjectVersion:process.argv[3],ossIndexApiUser:K.OSS_INDEX_API_USER,ossIndexApiToken:K.OSS_INDEX_API_TOKEN,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.exit(t)})();
|
|
28
28
|
/*! Bundled license information:
|
|
29
29
|
|
|
30
30
|
escape-html/index.js:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@conterra/vuln-scan",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.23",
|
|
4
4
|
"description": "con terra vulnerability scan process",
|
|
5
5
|
"author": "con terra GmbH",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"test": "vitest"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"zx": "8.5.
|
|
35
|
+
"zx": "8.5.5"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"@types/escape-html": "1.0.4",
|
|
@@ -45,8 +45,8 @@
|
|
|
45
45
|
"node-sarif-builder": "3.2.0",
|
|
46
46
|
"rimraf": "6.0.1",
|
|
47
47
|
"typescript": "5.8.3",
|
|
48
|
-
"typescript-eslint": "8.
|
|
49
|
-
"vitest": "3.2.
|
|
48
|
+
"typescript-eslint": "8.34.0",
|
|
49
|
+
"vitest": "3.2.3",
|
|
50
50
|
"@inquirer/prompts": "7.5.3"
|
|
51
51
|
}
|
|
52
52
|
}
|