@conterra/vuln-scan 0.0.33 → 0.0.34
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/add-project.js +1 -1
- package/dist/add-statement.js +1 -1
- package/dist/remove-project.js +1 -1
- package/dist/vuln-scan.js +2 -2
- package/package.json +2 -2
package/dist/vuln-scan.js
CHANGED
|
@@ -5,7 +5,7 @@ GFS4: `),console.error(t)});E[R]||(Jt=global[R]||[],Ht(E,Jt),E.close=(function(t
|
|
|
5
5
|
see https://github.com/jprichardson/node-fs-extra/issues/269`,"Warning","fs-extra-WARN0001");let{srcStat:n,destStat:i}=await ge.checkPaths(t,e,"copy",r);if(await ge.checkParentPaths(t,n,e,"copy"),!await pr(t,e,r))return;let s=Se.dirname(e);await Bi(s)||await qi(s),await dr(i,t,e,r)}async function pr(t,e,r){return r.filter?r.filter(t,e):!0}async function dr(t,e,r,n){let o=await(n.dereference?V.stat:V.lstat)(e);if(o.isDirectory())return Yi(o,t,e,r,n);if(o.isFile()||o.isCharacterDevice()||o.isBlockDevice())return Ji(o,t,e,r,n);if(o.isSymbolicLink())return Qi(t,e,r,n);throw o.isSocket()?new Error(`Cannot copy a socket file: ${e}`):o.isFIFO()?new Error(`Cannot copy a FIFO pipe: ${e}`):new Error(`Unknown file: ${e}`)}async function Ji(t,e,r,n,i){if(!e)return mr(t,r,n,i);if(i.overwrite)return await V.unlink(n),mr(t,r,n,i);if(i.errorOnExist)throw new Error(`'${n}' already exists`)}async function mr(t,e,r,n){if(await V.copyFile(e,r),n.preserveTimestamps){Wi(t.mode)&&await Hi(r,t.mode);let i=await V.stat(e);await Ui(r,i.atime,i.mtime)}return V.chmod(r,t.mode)}function Wi(t){return(t&128)===0}function Hi(t,e){return V.chmod(t,e|128)}async function Yi(t,e,r,n,i){e||await V.mkdir(n),await Xi(await V.opendir(r),async o=>{let s=Se.join(r,o.name),c=Se.join(n,o.name);if(await pr(s,c,i)){let{destStat:l}=await ge.checkPaths(s,c,"copy",i);await dr(l,s,c,i)}}),e||await V.chmod(n,t.mode)}async function Qi(t,e,r,n){let i=await V.readlink(e);if(n.dereference&&(i=Se.resolve(process.cwd(),i)),!t)return V.symlink(i,r);let o=null;try{o=await V.readlink(r)}catch(s){if(s.code==="EINVAL"||s.code==="UNKNOWN")return V.symlink(i,r);throw s}if(n.dereference&&(o=Se.resolve(process.cwd(),o)),ge.isSrcSubdir(i,o))throw new Error(`Cannot copy '${i}' to a subdirectory of itself, '${o}'.`);if(ge.isSrcSubdir(o,i))throw new Error(`Cannot overwrite '${o}' with '${i}'.`);return await V.unlink(r),V.symlink(i,r)}yr.exports=Gi});var br=g((Ra,wr)=>{"use strict";var q=ue(),ve=require("path"),Ki=W().mkdirsSync,zi=gt().utimesMillisSync,we=ae();function Zi(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
7
|
see https://github.com/jprichardson/node-fs-extra/issues/269`,"Warning","fs-extra-WARN0002");let{srcStat:n,destStat:i}=we.checkPathsSync(t,e,"copy",r);if(we.checkParentPathsSync(t,n,e,"copy"),r.filter&&!r.filter(t,e))return;let o=ve.dirname(e);return q.existsSync(o)||Ki(o),Sr(i,t,e,r)}function Sr(t,e,r,n){let o=(n.dereference?q.statSync:q.lstatSync)(e);if(o.isDirectory())return so(o,t,e,r,n);if(o.isFile()||o.isCharacterDevice()||o.isBlockDevice())return eo(o,t,e,r,n);if(o.isSymbolicLink())return lo(t,e,r,n);throw o.isSocket()?new Error(`Cannot copy a socket file: ${e}`):o.isFIFO()?new Error(`Cannot copy a FIFO pipe: ${e}`):new Error(`Unknown file: ${e}`)}function eo(t,e,r,n,i){return e?to(t,r,n,i):gr(t,r,n,i)}function to(t,e,r,n){if(n.overwrite)return q.unlinkSync(r),gr(t,e,r,n);if(n.errorOnExist)throw new Error(`'${r}' already exists`)}function gr(t,e,r,n){return q.copyFileSync(e,r),n.preserveTimestamps&&ro(t.mode,e,r),wt(r,t.mode)}function ro(t,e,r){return no(t)&&io(r,t),oo(e,r)}function no(t){return(t&128)===0}function io(t,e){return wt(t,e|128)}function wt(t,e){return q.chmodSync(t,e)}function oo(t,e){let r=q.statSync(t);return zi(e,r.atime,r.mtime)}function so(t,e,r,n,i){return e?vr(r,n,i):ao(t.mode,r,n,i)}function ao(t,e,r,n){return q.mkdirSync(r),vr(e,r,n),wt(r,t)}function vr(t,e,r){let n=q.opendirSync(t);try{let i;for(;(i=n.readSync())!==null;)co(i.name,t,e,r)}finally{n.closeSync()}}function co(t,e,r,n){let i=ve.join(e,t),o=ve.join(r,t);if(n.filter&&!n.filter(i,o))return;let{destStat:s}=we.checkPathsSync(i,o,"copy",n);return Sr(s,i,o,n)}function lo(t,e,r,n){let i=q.readlinkSync(e);if(n.dereference&&(i=ve.resolve(process.cwd(),i)),t){let o;try{o=q.readlinkSync(r)}catch(s){if(s.code==="EINVAL"||s.code==="UNKNOWN")return q.symlinkSync(i,r);throw s}if(n.dereference&&(o=ve.resolve(process.cwd(),o)),we.isSrcSubdir(i,o))throw new Error(`Cannot copy '${i}' to a subdirectory of itself, '${o}'.`);if(we.isSrcSubdir(o,i))throw new Error(`Cannot overwrite '${o}' with '${i}'.`);return uo(i,r)}else return q.symlinkSync(i,r)}function uo(t,e){return q.unlinkSync(e),q.symlinkSync(t,e)}wr.exports=Zi});var Fe=g((Va,xr)=>{"use strict";var fo=j().fromPromise;xr.exports={copy:fo(hr()),copySync:br()}});var be=g((Aa,Pr)=>{"use strict";var Lr=ue(),mo=j().fromCallback;function po(t,e){Lr.rm(t,{recursive:!0,force:!0},e)}function yo(t){Lr.rmSync(t,{recursive:!0,force:!0})}Pr.exports={remove:mo(po),removeSync:yo}});var Ir=g(($a,jr)=>{"use strict";var ho=j().fromPromise,Dr=_(),Or=require("path"),Tr=W(),Cr=be(),kr=ho(async function(e){let r;try{r=await Dr.readdir(e)}catch{return Tr.mkdirs(e)}return Promise.all(r.map(n=>Cr.remove(Or.join(e,n))))});function Er(t){let e;try{e=Dr.readdirSync(t)}catch{return Tr.mkdirsSync(t)}e.forEach(r=>{r=Or.join(t,r),Cr.removeSync(r)})}jr.exports={emptyDirSync:Er,emptydirSync:Er,emptyDir:kr,emptydir:kr}});var Rr=g((_a,Nr)=>{"use strict";var So=j().fromPromise,Fr=require("path"),K=_(),Mr=W();async function go(t){let e;try{e=await K.stat(t)}catch{}if(e&&e.isFile())return;let r=Fr.dirname(t),n=null;try{n=await K.stat(r)}catch(i){if(i.code==="ENOENT"){await Mr.mkdirs(r),await K.writeFile(t,"");return}else throw i}n.isDirectory()?await K.writeFile(t,""):await K.readdir(r)}function vo(t){let e;try{e=K.statSync(t)}catch{}if(e&&e.isFile())return;let r=Fr.dirname(t);try{K.statSync(r).isDirectory()||K.readdirSync(r)}catch(n){if(n&&n.code==="ENOENT")Mr.mkdirsSync(r);else throw n}K.writeFileSync(t,"")}Nr.exports={createFile:So(go),createFileSync:vo}});var qr=g((qa,_r)=>{"use strict";var wo=j().fromPromise,Vr=require("path"),re=_(),Ar=W(),{pathExists:bo}=te(),{areIdentical:$r}=ae();async function xo(t,e){let r;try{r=await re.lstat(e)}catch{}let n;try{n=await re.lstat(t)}catch(s){throw s.message=s.message.replace("lstat","ensureLink"),s}if(r&&$r(n,r))return;let i=Vr.dirname(e);await bo(i)||await Ar.mkdirs(i),await re.link(t,e)}function Lo(t,e){let r;try{r=re.lstatSync(e)}catch{}try{let o=re.lstatSync(t);if(r&&$r(o,r))return}catch(o){throw o.message=o.message.replace("lstat","ensureLink"),o}let n=Vr.dirname(e);return re.existsSync(n)||Ar.mkdirsSync(n),re.linkSync(t,e)}_r.exports={createLink:wo(xo),createLinkSync:Lo}});var Ur=g((Ba,Br)=>{"use strict";var ne=require("path"),xe=_(),{pathExists:Po}=te(),ko=j().fromPromise;async function Eo(t,e){if(ne.isAbsolute(t)){try{await xe.lstat(t)}catch(o){throw o.message=o.message.replace("lstat","ensureSymlink"),o}return{toCwd:t,toDst:t}}let r=ne.dirname(e),n=ne.join(r,t);if(await Po(n))return{toCwd:n,toDst:t};try{await xe.lstat(t)}catch(o){throw o.message=o.message.replace("lstat","ensureSymlink"),o}return{toCwd:t,toDst:ne.relative(r,t)}}function Do(t,e){if(ne.isAbsolute(t)){if(!xe.existsSync(t))throw new Error("absolute srcpath does not exist");return{toCwd:t,toDst:t}}let r=ne.dirname(e),n=ne.join(r,t);if(xe.existsSync(n))return{toCwd:n,toDst:t};if(!xe.existsSync(t))throw new Error("relative srcpath does not exist");return{toCwd:t,toDst:ne.relative(r,t)}}Br.exports={symlinkPaths:ko(Eo),symlinkPathsSync:Do}});var Jr=g((Ua,Gr)=>{"use strict";var Xr=_(),Oo=j().fromPromise;async function To(t,e){if(e)return e;let r;try{r=await Xr.lstat(t)}catch{return"file"}return r&&r.isDirectory()?"dir":"file"}function Co(t,e){if(e)return e;let r;try{r=Xr.lstatSync(t)}catch{return"file"}return r&&r.isDirectory()?"dir":"file"}Gr.exports={symlinkType:Oo(To),symlinkTypeSync:Co}});var Qr=g((Xa,Yr)=>{"use strict";var jo=j().fromPromise,Wr=require("path"),H=_(),{mkdirs:Io,mkdirsSync:Fo}=W(),{symlinkPaths:Mo,symlinkPathsSync:No}=Ur(),{symlinkType:Ro,symlinkTypeSync:Vo}=Jr(),{pathExists:Ao}=te(),{areIdentical:Hr}=ae();async function $o(t,e,r){let n;try{n=await H.lstat(e)}catch{}if(n&&n.isSymbolicLink()){let[c,u]=await Promise.all([H.stat(t),H.stat(e)]);if(Hr(c,u))return}let i=await Mo(t,e);t=i.toDst;let o=await Ro(i.toCwd,r),s=Wr.dirname(e);return await Ao(s)||await Io(s),H.symlink(t,e,o)}function _o(t,e,r){let n;try{n=H.lstatSync(e)}catch{}if(n&&n.isSymbolicLink()){let c=H.statSync(t),u=H.statSync(e);if(Hr(c,u))return}let i=No(t,e);t=i.toDst,r=Vo(i.toCwd,r);let o=Wr.dirname(e);return H.existsSync(o)||Fo(o),H.symlinkSync(t,e,r)}Yr.exports={createSymlink:jo($o),createSymlinkSync:_o}});var on=g((Ga,nn)=>{"use strict";var{createFile:Kr,createFileSync:zr}=Rr(),{createLink:Zr,createLinkSync:en}=qr(),{createSymlink:tn,createSymlinkSync:rn}=Qr();nn.exports={createFile:Kr,createFileSync:zr,ensureFile:Kr,ensureFileSync:zr,createLink:Zr,createLinkSync:en,ensureLink:Zr,ensureLinkSync:en,createSymlink:tn,createSymlinkSync:rn,ensureSymlink:tn,ensureSymlinkSync:rn}});var Me=g((Ja,sn)=>{function qo(t,{EOL:e=`
|
|
8
|
-
`,finalEOL:r=!0,replacer:n=null,spaces:i}={}){let o=r?e:"";return JSON.stringify(t,n,i).replace(/\n/g,e)+o}function Bo(t){return Buffer.isBuffer(t)&&(t=t.toString("utf8")),t.replace(/^\uFEFF/,"")}sn.exports={stringify:qo,stripBom:Bo}});var un=g((Wa,ln)=>{var pe;try{pe=ue()}catch{pe=require("fs")}var Ne=j(),{stringify:an,stripBom:cn}=Me();async function Uo(t,e={}){typeof e=="string"&&(e={encoding:e});let r=e.fs||pe,n="throws"in e?e.throws:!0,i=await Ne.fromCallback(r.readFile)(t,e);i=cn(i);let o;try{o=JSON.parse(i,e?e.reviver:null)}catch(s){if(n)throw s.message=`${t}: ${s.message}`,s;return null}return o}var Xo=Ne.fromPromise(Uo);function Go(t,e={}){typeof e=="string"&&(e={encoding:e});let r=e.fs||pe,n="throws"in e?e.throws:!0;try{let i=r.readFileSync(t,e);return i=cn(i),JSON.parse(i,e.reviver)}catch(i){if(n)throw i.message=`${t}: ${i.message}`,i;return null}}async function Jo(t,e,r={}){let n=r.fs||pe,i=an(e,r);await Ne.fromCallback(n.writeFile)(t,i,r)}var Wo=Ne.fromPromise(Jo);function Ho(t,e,r={}){let n=r.fs||pe,i=an(e,r);return n.writeFileSync(t,i,r)}ln.exports={readFile:Xo,readFileSync:Go,writeFile:Wo,writeFileSync:Ho}});var mn=g((Ha,fn)=>{"use strict";var Re=un();fn.exports={readJson:Re.readFile,readJsonSync:Re.readFileSync,writeJson:Re.writeFile,writeJsonSync:Re.writeFileSync}});var Ve=g((Ya,yn)=>{"use strict";var Yo=j().fromPromise,bt=_(),pn=require("path"),dn=W(),Qo=te().pathExists;async function Ko(t,e,r="utf-8"){let n=pn.dirname(t);return await Qo(n)||await dn.mkdirs(n),bt.writeFile(t,e,r)}function zo(t,...e){let r=pn.dirname(t);bt.existsSync(r)||dn.mkdirsSync(r),bt.writeFileSync(t,...e)}yn.exports={outputFile:Yo(Ko),outputFileSync:zo}});var Sn=g((Qa,hn)=>{"use strict";var{stringify:Zo}=Me(),{outputFile:es}=Ve();async function ts(t,e,r={}){let n=Zo(e,r);await es(t,n,r)}hn.exports=ts});var vn=g((Ka,gn)=>{"use strict";var{stringify:rs}=Me(),{outputFileSync:ns}=Ve();function is(t,e,r){let n=rs(e,r);ns(t,n,r)}gn.exports=is});var bn=g((za,wn)=>{"use strict";var os=j().fromPromise,B=mn();B.outputJson=os(Sn());B.outputJsonSync=vn();B.outputJSON=B.outputJson;B.outputJSONSync=B.outputJsonSync;B.writeJSON=B.writeJson;B.writeJSONSync=B.writeJsonSync;B.readJSON=B.readJson;B.readJSONSync=B.readJsonSync;wn.exports=B});var En=g((Za,kn)=>{"use strict";var ss=_(),xn=require("path"),{copy:as}=Fe(),{remove:Pn}=be(),{mkdirp:cs}=W(),{pathExists:ls}=te(),Ln=ae();async function us(t,e,r={}){let n=r.overwrite||r.clobber||!1,{srcStat:i,isChangingCase:o=!1}=await Ln.checkPaths(t,e,"move",r);await Ln.checkParentPaths(t,i,e,"move");let s=xn.dirname(e);return xn.parse(s).root!==s&&await cs(s),fs(t,e,n,o)}async function fs(t,e,r,n){if(!n){if(r)await Pn(e);else if(await ls(e))throw new Error("dest already exists.")}try{await ss.rename(t,e)}catch(i){if(i.code!=="EXDEV")throw i;await ms(t,e,r)}}async function ms(t,e,r){return await as(t,e,{overwrite:r,errorOnExist:!0,preserveTimestamps:!0}),Pn(t)}kn.exports=us});var jn=g((ec,Cn)=>{"use strict";var On=ue(),Lt=require("path"),ps=Fe().copySync,Tn=be().removeSync,ds=W().mkdirpSync,Dn=ae();function ys(t,e,r){r=r||{};let n=r.overwrite||r.clobber||!1,{srcStat:i,isChangingCase:o=!1}=Dn.checkPathsSync(t,e,"move",r);return Dn.checkParentPathsSync(t,i,e,"move"),hs(e)||ds(Lt.dirname(e)),Ss(t,e,n,o)}function hs(t){let e=Lt.dirname(t);return Lt.parse(e).root===e}function Ss(t,e,r,n){if(n)return xt(t,e,r);if(r)return Tn(e),xt(t,e,r);if(On.existsSync(e))throw new Error("dest already exists.");return xt(t,e,r)}function xt(t,e,r){try{On.renameSync(t,e)}catch(n){if(n.code!=="EXDEV")throw n;return gs(t,e,r)}}function gs(t,e,r){return ps(t,e,{overwrite:r,errorOnExist:!0,preserveTimestamps:!0}),Tn(t)}Cn.exports=ys});var Fn=g((tc,In)=>{"use strict";var vs=j().fromPromise;In.exports={move:vs(En()),moveSync:jn()}});var Nn=g((rc,Mn)=>{"use strict";Mn.exports={..._(),...Fe(),...Ir(),...on(),...bn(),...W(),...Fn(),...Ve(),...te(),...be()}});var Rn=g(Ae=>{"use strict";Object.defineProperty(Ae,"__esModule",{value:!0});Ae.EXTENSIONS_LANGUAGES=void 0;Ae.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 Le=g(Pt=>{"use strict";Object.defineProperty(Pt,"__esModule",{value:!0});Pt.setOptionValues=ws;function ws(t,e){for(let r of Object.keys(e))t[r]!==void 0&&(e[r]=t[r]);return e}});var An=g($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});$e.SarifBuilder=void 0;var bs=require("path"),Vn=Nn(),xs=Rn(),Ls=Le(),kt=class{constructor(e={}){this.log={$schema:"http://json.schemastore.org/sarif-2.1.0.json",version:"2.1.0",runs:[]},(0,Ls.setOptionValues)(e,this.log)}addRun(e){this.log.runs.push(e.run)}generateSarifFileSync(e){let r=this.buildSarifJsonString();Vn.writeFileSync(e,r,"utf8")}async generateSarifFile(e){let r=this.buildSarifJsonString();await Vn.writeFile(e,r,"utf8")}buildSarifOutput(){return this.log.runs=this.log.runs.map(e=>this.completeRunFields(e)),this.log}buildSarifJsonString(e={indent:!1}){this.buildSarifOutput();let r=e.indent?JSON.stringify(this.log,null,2):JSON.stringify(this.log);if(r.includes("SARIF_BUILDER_INVALID"))throw new Error("Your SARIF log is invalid, please solve SARIF_BUILDER_INVALID messages");return r}completeRunFields(e){var r,n,i,o;e.artifacts=e.artifacts||[];for(let u of e.results)for(let l of u.locations||[])if(!((n=(r=l?.physicalLocation)===null||r===void 0?void 0:r.artifactLocation)===null||n===void 0)&&n.uri&&e.artifacts.filter(a=>{var f;return((f=a?.location)===null||f===void 0?void 0:f.uri)===l.physicalLocation.artifactLocation.uri}).length===0){let a=bs.extname(l.physicalLocation.artifactLocation.uri).replace(".",""),f=xs.EXTENSIONS_LANGUAGES[a]||"unknown";e.artifacts.push({sourceLanguage:f,location:{uri:l.physicalLocation.artifactLocation.uri}})}let s=e.artifacts.map(u=>{var l;return(l=u?.location)===null||l===void 0?void 0:l.uri}),c=(((o=(i=e?.tool)===null||i===void 0?void 0:i.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 a,f;let p=(f=(a=l?.physicalLocation)===null||a===void 0?void 0:a.artifactLocation)===null||f===void 0?void 0:f.uri;return p&&s.indexOf(p)>-1&&(l.physicalLocation.artifactLocation.index=s.indexOf(p)),l})),u)),e}};$e.SarifBuilder=kt});var $n=g(_e=>{"use strict";Object.defineProperty(_e,"__esModule",{value:!0});_e.SarifResultBuilder=void 0;var Ps=Le(),Et=class{constructor(e={}){this.result={level:"error",message:{},ruleId:"SARIF_BUILDER_INVALID: Please send the rule Id ruleId property, or call setRuleId(ruleId)"},(0,Ps.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={})}};_e.SarifResultBuilder=Et});var _n=g(qe=>{"use strict";Object.defineProperty(qe,"__esModule",{value:!0});qe.SarifRuleBuilder=void 0;var ks=Le(),Dt=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,ks.setOptionValues)(e,this.rule)}initSimple(e){return this.setRuleId(e.ruleId),e.shortDescriptionText&&this.setShortDescriptionText(e.shortDescriptionText),e.fullDescriptionText&&this.setFullDescriptionText(e.fullDescriptionText),e.helpUri&&this.setHelpUri(e.helpUri),this}setRuleId(e){this.rule.id=e}setShortDescriptionText(e){this.rule.shortDescription.text=e}setFullDescriptionText(e){this.rule.fullDescription=this.rule.fullDescription||{text:""},this.rule.fullDescription.text=e}setHelpUri(e){this.rule.helpUri=e}};qe.SarifRuleBuilder=Dt});var qn=g(Be=>{"use strict";Object.defineProperty(Be,"__esModule",{value:!0});Be.SarifRunBuilder=void 0;var Es=Le(),Ot=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,Es.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}};Be.SarifRunBuilder=Ot});var Bn=g(Y=>{"use strict";Object.defineProperty(Y,"__esModule",{value:!0});Y.SarifResultBuilder=Y.SarifRuleBuilder=Y.SarifRunBuilder=Y.SarifBuilder=void 0;var Ds=An();Object.defineProperty(Y,"SarifBuilder",{enumerable:!0,get:function(){return Ds.SarifBuilder}});var Os=$n();Object.defineProperty(Y,"SarifResultBuilder",{enumerable:!0,get:function(){return Os.SarifResultBuilder}});var Ts=_n();Object.defineProperty(Y,"SarifRuleBuilder",{enumerable:!0,get:function(){return Ts.SarifRuleBuilder}});var Cs=qn();Object.defineProperty(Y,"SarifRunBuilder",{enumerable:!0,get:function(){return Cs.SarifRunBuilder}})});var Xn=g((uc,Un)=>{"use strict";var js=/["'&<>]/;Un.exports=Is;function Is(t){var e=""+t,r=js.exec(e);if(!r)return e;var n,i="",o=0,s=0;for(o=r.index;o<e.length;o++){switch(e.charCodeAt(o)){case 34:n=""";break;case 38:n="&";break;case 39:n="'";break;case 60:n="<";break;case 62:n=">";break;default:continue}s!==o&&(i+=e.substring(s,o)),s=o+1,i+=n}return s!==o?i+e.substring(s,o):i}});var et=require("zx"),ce=require("fs/promises");var X={UNKNOWN:0,LOW:1,MEDIUM:2,HIGH:3,CRITICAL:4};var Ee=class{constructor(e){this.depProvider=e}allById=new Map;getAllVulnIds(){return new Set(this.allById.keys())}getAllVulnerabilitiesSortedBySeverity(){let e=Array.from(this.allById.values());return e.sort((r,n)=>{let i=At(r.severity,n.severity);return i===0?r.id.localeCompare(n.id):-i}),e}addVulnerability(e,r){let n=e.id,i=this.allById,o=e;if(!i.has(n))i.set(n,e),o=e;else{let s=i.get(n);s.title=s.title||e.title,s.severity=hi(s.severity,e.severity),s.scannerSeverity[r]=e.severity,s.detectedBy=it(s.detectedBy,r),s.components=it(s.components,e.components[0]),s.refs=it(s.refs,e.refs[0]),o=s}o.componentTree=o.components?.map(s=>this.depProvider.findUsagesOfComponent(s))}enhanceWithVexData(e){let r=[];for(let n of this.allById.values()){let i=e.newestVulnerabilityStatement(n.id);if(!i){r.push({id:n.id,severity:n.severity,title:n.title,description:n.description,components:n.components??[],componentTree:n.componentTree??[],refs:n.refs});continue}n.vexStatement=i}return{unmatchedVulnerabilities:r}}};function hi(t,e){return At(t,e)>0?t:e}function At(t,e){return X[t]-X[e]}function it(t,e){return e?Array.from(new Set([...t,e]).values()):t}var De=nt(require("path"));var U=require("fs/promises"),ot=require("path");async function G(t){if(await oe(t))return JSON.parse(await(0,U.readFile)(t,{encoding:"utf-8"}))}async function st(t,e){await(0,U.writeFile)(t,JSON.stringify(e,null,4)+`
|
|
8
|
+
`,finalEOL:r=!0,replacer:n=null,spaces:i}={}){let o=r?e:"";return JSON.stringify(t,n,i).replace(/\n/g,e)+o}function Bo(t){return Buffer.isBuffer(t)&&(t=t.toString("utf8")),t.replace(/^\uFEFF/,"")}sn.exports={stringify:qo,stripBom:Bo}});var un=g((Wa,ln)=>{var pe;try{pe=ue()}catch{pe=require("fs")}var Ne=j(),{stringify:an,stripBom:cn}=Me();async function Uo(t,e={}){typeof e=="string"&&(e={encoding:e});let r=e.fs||pe,n="throws"in e?e.throws:!0,i=await Ne.fromCallback(r.readFile)(t,e);i=cn(i);let o;try{o=JSON.parse(i,e?e.reviver:null)}catch(s){if(n)throw s.message=`${t}: ${s.message}`,s;return null}return o}var Xo=Ne.fromPromise(Uo);function Go(t,e={}){typeof e=="string"&&(e={encoding:e});let r=e.fs||pe,n="throws"in e?e.throws:!0;try{let i=r.readFileSync(t,e);return i=cn(i),JSON.parse(i,e.reviver)}catch(i){if(n)throw i.message=`${t}: ${i.message}`,i;return null}}async function Jo(t,e,r={}){let n=r.fs||pe,i=an(e,r);await Ne.fromCallback(n.writeFile)(t,i,r)}var Wo=Ne.fromPromise(Jo);function Ho(t,e,r={}){let n=r.fs||pe,i=an(e,r);return n.writeFileSync(t,i,r)}ln.exports={readFile:Xo,readFileSync:Go,writeFile:Wo,writeFileSync:Ho}});var mn=g((Ha,fn)=>{"use strict";var Re=un();fn.exports={readJson:Re.readFile,readJsonSync:Re.readFileSync,writeJson:Re.writeFile,writeJsonSync:Re.writeFileSync}});var Ve=g((Ya,yn)=>{"use strict";var Yo=j().fromPromise,bt=_(),pn=require("path"),dn=W(),Qo=te().pathExists;async function Ko(t,e,r="utf-8"){let n=pn.dirname(t);return await Qo(n)||await dn.mkdirs(n),bt.writeFile(t,e,r)}function zo(t,...e){let r=pn.dirname(t);bt.existsSync(r)||dn.mkdirsSync(r),bt.writeFileSync(t,...e)}yn.exports={outputFile:Yo(Ko),outputFileSync:zo}});var Sn=g((Qa,hn)=>{"use strict";var{stringify:Zo}=Me(),{outputFile:es}=Ve();async function ts(t,e,r={}){let n=Zo(e,r);await es(t,n,r)}hn.exports=ts});var vn=g((Ka,gn)=>{"use strict";var{stringify:rs}=Me(),{outputFileSync:ns}=Ve();function is(t,e,r){let n=rs(e,r);ns(t,n,r)}gn.exports=is});var bn=g((za,wn)=>{"use strict";var os=j().fromPromise,B=mn();B.outputJson=os(Sn());B.outputJsonSync=vn();B.outputJSON=B.outputJson;B.outputJSONSync=B.outputJsonSync;B.writeJSON=B.writeJson;B.writeJSONSync=B.writeJsonSync;B.readJSON=B.readJson;B.readJSONSync=B.readJsonSync;wn.exports=B});var En=g((Za,kn)=>{"use strict";var ss=_(),xn=require("path"),{copy:as}=Fe(),{remove:Pn}=be(),{mkdirp:cs}=W(),{pathExists:ls}=te(),Ln=ae();async function us(t,e,r={}){let n=r.overwrite||r.clobber||!1,{srcStat:i,isChangingCase:o=!1}=await Ln.checkPaths(t,e,"move",r);await Ln.checkParentPaths(t,i,e,"move");let s=xn.dirname(e);return xn.parse(s).root!==s&&await cs(s),fs(t,e,n,o)}async function fs(t,e,r,n){if(!n){if(r)await Pn(e);else if(await ls(e))throw new Error("dest already exists.")}try{await ss.rename(t,e)}catch(i){if(i.code!=="EXDEV")throw i;await ms(t,e,r)}}async function ms(t,e,r){return await as(t,e,{overwrite:r,errorOnExist:!0,preserveTimestamps:!0}),Pn(t)}kn.exports=us});var jn=g((ec,Cn)=>{"use strict";var On=ue(),Lt=require("path"),ps=Fe().copySync,Tn=be().removeSync,ds=W().mkdirpSync,Dn=ae();function ys(t,e,r){r=r||{};let n=r.overwrite||r.clobber||!1,{srcStat:i,isChangingCase:o=!1}=Dn.checkPathsSync(t,e,"move",r);return Dn.checkParentPathsSync(t,i,e,"move"),hs(e)||ds(Lt.dirname(e)),Ss(t,e,n,o)}function hs(t){let e=Lt.dirname(t);return Lt.parse(e).root===e}function Ss(t,e,r,n){if(n)return xt(t,e,r);if(r)return Tn(e),xt(t,e,r);if(On.existsSync(e))throw new Error("dest already exists.");return xt(t,e,r)}function xt(t,e,r){try{On.renameSync(t,e)}catch(n){if(n.code!=="EXDEV")throw n;return gs(t,e,r)}}function gs(t,e,r){return ps(t,e,{overwrite:r,errorOnExist:!0,preserveTimestamps:!0}),Tn(t)}Cn.exports=ys});var Fn=g((tc,In)=>{"use strict";var vs=j().fromPromise;In.exports={move:vs(En()),moveSync:jn()}});var Nn=g((rc,Mn)=>{"use strict";Mn.exports={..._(),...Fe(),...Ir(),...on(),...bn(),...W(),...Fn(),...Ve(),...te(),...be()}});var Rn=g(Ae=>{"use strict";Object.defineProperty(Ae,"__esModule",{value:!0});Ae.EXTENSIONS_LANGUAGES=void 0;Ae.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 Le=g(Pt=>{"use strict";Object.defineProperty(Pt,"__esModule",{value:!0});Pt.setOptionValues=ws;function ws(t,e){for(let r of Object.keys(e))t[r]!==void 0&&(e[r]=t[r]);return e}});var An=g($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});$e.SarifBuilder=void 0;var bs=require("path"),Vn=Nn(),xs=Rn(),Ls=Le(),kt=class{constructor(e={}){this.log={$schema:"http://json.schemastore.org/sarif-2.1.0.json",version:"2.1.0",runs:[]},(0,Ls.setOptionValues)(e,this.log)}addRun(e){this.log.runs.push(e.run)}generateSarifFileSync(e){let r=this.buildSarifJsonString();Vn.writeFileSync(e,r,"utf8")}async generateSarifFile(e){let r=this.buildSarifJsonString();await Vn.writeFile(e,r,"utf8")}buildSarifOutput(){return this.log.runs=this.log.runs.map(e=>this.completeRunFields(e)),this.log}buildSarifJsonString(e={indent:!1}){this.buildSarifOutput();let r=e.indent?JSON.stringify(this.log,null,2):JSON.stringify(this.log);if(r.includes("SARIF_BUILDER_INVALID"))throw new Error("Your SARIF log is invalid, please solve SARIF_BUILDER_INVALID messages");return r}completeRunFields(e){var r,n,i,o;e.artifacts=e.artifacts||[];for(let u of e.results)for(let l of u.locations||[])if(!((n=(r=l?.physicalLocation)===null||r===void 0?void 0:r.artifactLocation)===null||n===void 0)&&n.uri&&e.artifacts.filter(a=>{var f;return((f=a?.location)===null||f===void 0?void 0:f.uri)===l.physicalLocation.artifactLocation.uri}).length===0){let a=bs.extname(l.physicalLocation.artifactLocation.uri).replace(".",""),f=xs.EXTENSIONS_LANGUAGES[a]||"unknown";e.artifacts.push({sourceLanguage:f,location:{uri:l.physicalLocation.artifactLocation.uri}})}let s=e.artifacts.map(u=>{var l;return(l=u?.location)===null||l===void 0?void 0:l.uri}),c=(((o=(i=e?.tool)===null||i===void 0?void 0:i.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 a,f;let p=(f=(a=l?.physicalLocation)===null||a===void 0?void 0:a.artifactLocation)===null||f===void 0?void 0:f.uri;return p&&s.indexOf(p)>-1&&(l.physicalLocation.artifactLocation.index=s.indexOf(p)),l})),u)),e}};$e.SarifBuilder=kt});var $n=g(_e=>{"use strict";Object.defineProperty(_e,"__esModule",{value:!0});_e.SarifResultBuilder=void 0;var Ps=Le(),Et=class{constructor(e={}){this.result={level:"error",message:{},ruleId:"SARIF_BUILDER_INVALID: Please send the rule Id ruleId property, or call setRuleId(ruleId)"},(0,Ps.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={})}};_e.SarifResultBuilder=Et});var _n=g(qe=>{"use strict";Object.defineProperty(qe,"__esModule",{value:!0});qe.SarifRuleBuilder=void 0;var ks=Le(),Dt=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,ks.setOptionValues)(e,this.rule)}initSimple(e){return this.setRuleId(e.ruleId),e.shortDescriptionText&&this.setShortDescriptionText(e.shortDescriptionText),e.fullDescriptionText&&this.setFullDescriptionText(e.fullDescriptionText),e.helpUri&&this.setHelpUri(e.helpUri),this}setRuleId(e){this.rule.id=e}setShortDescriptionText(e){this.rule.shortDescription.text=e}setFullDescriptionText(e){this.rule.fullDescription=this.rule.fullDescription||{text:""},this.rule.fullDescription.text=e}setHelpUri(e){this.rule.helpUri=e}};qe.SarifRuleBuilder=Dt});var qn=g(Be=>{"use strict";Object.defineProperty(Be,"__esModule",{value:!0});Be.SarifRunBuilder=void 0;var Es=Le(),Ot=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,Es.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}};Be.SarifRunBuilder=Ot});var Bn=g(Y=>{"use strict";Object.defineProperty(Y,"__esModule",{value:!0});Y.SarifResultBuilder=Y.SarifRuleBuilder=Y.SarifRunBuilder=Y.SarifBuilder=void 0;var Ds=An();Object.defineProperty(Y,"SarifBuilder",{enumerable:!0,get:function(){return Ds.SarifBuilder}});var Os=$n();Object.defineProperty(Y,"SarifResultBuilder",{enumerable:!0,get:function(){return Os.SarifResultBuilder}});var Ts=_n();Object.defineProperty(Y,"SarifRuleBuilder",{enumerable:!0,get:function(){return Ts.SarifRuleBuilder}});var Cs=qn();Object.defineProperty(Y,"SarifRunBuilder",{enumerable:!0,get:function(){return Cs.SarifRunBuilder}})});var Xn=g((uc,Un)=>{"use strict";var js=/["'&<>]/;Un.exports=Is;function Is(t){var e=""+t,r=js.exec(e);if(!r)return e;var n,i="",o=0,s=0;for(o=r.index;o<e.length;o++){switch(e.charCodeAt(o)){case 34:n=""";break;case 38:n="&";break;case 39:n="'";break;case 60:n="<";break;case 62:n=">";break;default:continue}s!==o&&(i+=e.substring(s,o)),s=o+1,i+=n}return s!==o?i+e.substring(s,o):i}});var et=require("zx"),ce=require("fs/promises");var X={UNKNOWN:0,LOW:1,MEDIUM:2,HIGH:3,CRITICAL:4};var Ee=class{constructor(e){this.depProvider=e}allById=new Map;getAllVulnIds(){return new Set(this.allById.keys())}getAllVulnerabilitiesSortedBySeverity(){let e=Array.from(this.allById.values());return e.sort((r,n)=>{let i=At(r.severity,n.severity);return i===0?r.id.localeCompare(n.id):-i}),e}addVulnerability(e,r){let n=e.id,i=this.allById,o=e;if(!i.has(n))i.set(n,e),o=e;else{let s=i.get(n);s.title=s.title||e.title,s.severity=hi(s.severity,e.severity),s.scannerSeverity[r]=e.severity,s.detectedBy=it(s.detectedBy,r),s.components=it(s.components,e.components[0]),s.refs=it(s.refs,e.refs[0]),o=s}o.componentTree=o.components?.map(s=>this.depProvider.findUsagesOfComponent(s))}enhanceWithVexData(e){let r=[];for(let n of this.allById.values()){let i=e.newestVulnerabilityStatement(n.id);if(!i){r.push({id:n.id,severity:n.severity,title:n.title,description:n.description,components:n.components??[],componentTree:n.componentTree??[],refs:n.refs});continue}n.vexStatement=i}return{unmatchedVulnerabilities:r}}};function hi(t,e){return At(t,e)>0?t:e}function At(t,e){return X[t]-X[e]}function it(t,e){return e?Array.from(new Set([...t,e]).values()):t}var De=nt(require("path"));var U=require("fs/promises"),ot=require("path");async function G(t){try{return await oe(t)?JSON.parse(await(0,U.readFile)(t,{encoding:"utf-8"})):void 0}catch(e){throw new Error(`Error reading JSON file ${t}: ${e}`,{cause:e})}}async function st(t,e){await(0,U.writeFile)(t,JSON.stringify(e,null,4)+`
|
|
9
9
|
`,{encoding:"utf-8"})}function J(t){return t?t.replace(/\?.*$/,""):""}async function oe(t){try{return await(0,U.access)(t,U.constants.F_OK),!0}catch{return!1}}async function at(t){let e=(0,ot.resolve)(t),r=await(0,U.readdir)(e,{withFileTypes:!0});for(let n of r){let i=(0,ot.resolve)(n.parentPath,n.name);n.isDirectory()?await at(i):await(0,U.rm)(i)}await(0,U.rmdir)(e)}async function ye(t,e){let r=e?.user&&e?.pw?{Authorization:`Basic ${Buffer.from(`${e.user}:${e.pw}`).toString("base64")}`}:{},n=await fetch(t,{headers:r});if(!n.ok){let i="";try{i=await n.text()}catch(o){i=`${o}`}throw new Error(`Failed to fetch: ${t}: ${n.status} - ${n.statusText}: ${i}`)}return n}var ct;async function lt(t){if(ct)return ct;let e="https://repository.conterra.de/repository/maven-mirror-ct",r=Z(t.workingDir,"input/vex"),n=Z(t.workingDir,"output"),i=Z(t.workingDir,"cache"),o=["grype","trivy","ossindex"],s=Z(t.workingDir,"vuln-scan-conf.json"),c=await G(s);if(!c)throw new Error(`Missing project configuration file '${s}'`);let u=c.findNoLongerDetectedVulnerabilitiesOnlyForSnapshots??!1;return ct={projectConfigFileLocation:s,onNewVulnerabilities:c.onNewVulnerabilities??(c.failOnNewVulnerabilities?"fail":"warn"),onNoLongerDetectedVulnerabilities:c.onNoLongerDetectedVulnerabilities??"ignore",reportNoLongerDetectedVulnerabilities:c.reportNoLongerDetectedVulnerabilities??!0,consoleReport:c.consoleReport||"BY_PROJECT_DETAILED",createSubDirsForProject:c.createSubDirsForProject??!0,mavenRepo:c.mavenRepo??e,vexUrls:c.vexUrls??[],vexDir:Z(t.workingDir,c.vexDir)??r,outDir:Z(t.workingDir,c.outDir)??n,cacheDir:Z(t.workingDir,c.cacheDir)??i,scanners:(c.scanners??o).map(l=>{if(typeof l!="string")throw new Error(`Invalid scanner name '${l}' in configuration file '${s}'`);let a=l.split("@");if(a.length>2)throw new Error(`Invalid scanner name '${l}' in configuration file '${s}'`);let f=a[0],p=a[1]??"";return{name:f,version:p}}),projects:(c.projects??[]).map(l=>{let a=l;if(!a.name)throw new Error("Project name is missing on entry:"+JSON.stringify(a));if(!a.version)throw new Error("Project version is missing on entry:"+JSON.stringify(a));if(!a.purl)throw new Error("Project purl is missing on entry:"+JSON.stringify(a));return a.purlAliases||(a.purlAliases=[]),a.enabled==null&&(a.enabled=!0),a.silent==null&&(a.silent=!1),a.minimumSeverity||(a.minimumSeverity="UNKNOWN"),a.sbomFile?{...a,sbomFile:Z(t.workingDir,a.sbomFile)}:(a.detectNoLongerUsedVulnerabilities=u?a.purl.endsWith("-SNAPSHOT"):!0,l)})}}function Z(t,e){if(e)return De.default.isAbsolute(e)?e:(0,De.resolve)(t,e)}var ie=nt(Bn());var Wn=nt(Xn());function Xe(t,e=""){return Gn(t,e)}function Gn(t,e="",r=new Set){if(r.has(t.purl))return`${e}- ${t.purl} (cycle detected)`;r.add(t.purl);let n=r.size===1,i=`${e}- ${t.purl}`;for(let o of t.usedBy){let s=Gn(o,e+(n?" ":" "),new Set(r));s!==""&&(i+=`
|
|
10
10
|
`,i+=s)}return i}var Ue=class t{constructor(e){this.sbom=e;for(let r of this.sbom.components||[]){let n={purl:J(r.purl),usedBy:[]};n.purl&&(this.purlToComponent.has(n.purl)||(this.purlToComponent.set(n.purl,n),this.sbomRefToComponent.set(r["bom-ref"],n)))}for(let r of this.sbom.dependencies||[]){let n=this.sbomRefToComponent.get(r.ref);if(n)for(let i of r.dependsOn||[]){let o=this.sbomRefToComponent.get(i);o&&!o.usedBy.includes(n)&&o.usedBy.push(n)}}}static createForSbom(e){return new t(e)}sbomRefToComponent=new Map;purlToComponent=new Map;findUsagesOfComponent(e){if(!this.sbom)return{purl:e,usedBy:[]};let r=this.purlToComponent.get(e);return r?Jn(r):{purl:e,usedBy:[]}}};function Jn(t,e=new Set){let r={purl:t.purl,usedBy:[]};if(e.has(t.purl))return r;e.add(t.purl);for(let n of t.usedBy){let i=Jn(n,new Set(e));r.usedBy.push(i)}return r}function Hn(t,e){let r=new ie.SarifRunBuilder().initSimple({toolDriverName:`${e.name}@${e.version}`,toolDriverVersion:"0.0.1"}),n=new Date().toISOString().split("T")[0];r.run.tool.driver.fullDescription={text:`Security Scan from ${n}`},r.run.tool.driver.properties={"microsoft/qualityDomain":`Security Scan from ${n}`};for(let o of t){let s=Ms(o.severity),c=o.id,u=Fs(o.refs),l=new ie.SarifRuleBuilder().initSimple({ruleId:c,shortDescriptionText:o.title,fullDescriptionText:o.description,helpUri:u}),a=o.vexStatement,f,p="new",m="";a?(f=[{kind:"external",status:"accepted"}],p="updated",m=`--- INVESTIGATED (${a.status}) --- `,a.status==="under_investigation"&&(f[0].status="underReview",m="--- UNDER INVESTIGATION --- ")):X[e.minimumSeverity]>X[o.severity]?(f=[{kind:"external",status:"accepted"}],p="updated",m=`--- BELOW MINIMUM SEVERITY '${e.minimumSeverity}' ---`):e.silent&&(f=[{kind:"external",status:"accepted"}],p="updated",m="--- PROJECT SILENT ---"),Object.assign(l.rule,{name:`${m}[${o.severity}] - ${o.title.replace(`[${c}]`,"")}`,messageStrings:{default:{text:o.description,markdown:Ns(o,u,m)}},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 y=new ie.SarifResultBuilder().initSimple({ruleId:c,level:s,messageText:`${c} [${o.severity}] - ${d}`});y.result.message.id="default",y.result.locations=[{logicalLocations:[{fullyQualifiedName:d}]}],y.result.baselineState=p,y.result.suppressions=f,r.addResult(y)}}let i=new ie.SarifBuilder;return i.addRun(r),i.buildSarifOutput()}function Fs(t){for(let e of t)if(e.startsWith("https://nvd.nist.gov"))return e;return t[0]}function Ms(t){switch(t){case"CRITICAL":return"error";case"HIGH":return"error";case"MEDIUM":return"warning";case"LOW":return"warning";default:return"note"}}function Ns(t,e,r){let n=t.vexStatement,i=n?`
|
|
11
11
|
${r}
|
|
@@ -37,7 +37,7 @@ ${t.componentTree?.map(o=>Xe(o)).join(`
|
|
|
37
37
|
\`\`\`
|
|
38
38
|
`}var Je=require("fs/promises");async function Yn(t,e,r){if("sbomFile"in t)return await(0,Je.copyFile)(t.sbomFile,e),t.sbomFile=e,t;let n=await r.downloadArtifact(t.sbomMavenCoordinates);return await(0,Je.writeFile)(e,n),{...t,sbomFile:e}}var Ge=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 n=this.toArtifactUrl(r),i=await ye(n,this.authn);return Buffer.from(await i.arrayBuffer())}async fetchLatestSnapshotTimestamp(e){let r=`${this.toArtifactBaseUrl(e)}/maven-metadata.xml`,i=await(await ye(r,this.authn)).text();return Rs(i,e)}toArtifactUrl(e){let r=this.toArtifactBaseUrl(e),n=this.isSnapshotVersion(e.version)&&e.timestamp?e.version.replace(/SNAPSHOT$/,e.timestamp):e.version;return`${r}/${e.artifactId}-${n}-${e.classifier}.${e.extension}`}toArtifactBaseUrl(e){return`${this.repo}/${e.groupId.replace(/\./g,"/")}/${e.artifactId}/${e.version}`}isSnapshotVersion(e){return e.endsWith("-SNAPSHOT")}toArtifactInfo(e){let r=e.split(":");return{groupId:r[0],artifactId:r[1],version:r[2],classifier:r[3],extension:"json"}}};function Rs(t,e){if(e.classifier&&e.extension){let i=t.match(new RegExp(`<snapshotVersion>\\s*<classifier>${e.classifier}</classifier>\\s*<extension>${e.extension}</extension>\\s*<value>([^<]+)</value>\\s*<updated>[^<]+</updated>\\s*</snapshotVersion>`)),o=e.version.replace(/SNAPSHOT$/,"");if(i?.[1])return i[1].replace(o,"")}let r=t.match(/<timestamp>([^<]+)<\/timestamp>/),n=t.match(/<buildNumber>([^<]+)<\/buildNumber>/);if(!r||!n)throw new Error(`Failed to get timestamp and build number from ${t} for artifact '${e.artifactId}'`);return`${r[1]}-${n[1]}`}var We=require("fs/promises"),Tt=require("path");var Ct=class{constructor(e){this.location=e}async read(){let e=await G(this.location);if(!e)throw new Error("Invalid VEX file");return e}async write(e){await st(this.location,e)}async delete(){await(0,We.unlink)(this.location)}};async function He(t,e){for(let r of await(0,We.readdir)(t,{withFileTypes:!0}))r.name.endsWith(".json")?await e(new Ct((0,Tt.resolve)(r.parentPath,r.name))):r.isDirectory()&&await He((0,Tt.resolve)(r.parentPath,r.name),e)}function It(t){let e=t.vulnerability.name;return new Set([e,...t.vulnerability.aliases??[]])}var de=class t{statements=[];filteredToProducts=[];static async fromUrl(e,r,n=new t){let o=await(await ye(e,r)).json();return n.add(o),n}static async fromFiles(e,r=new t){return await He(e,async n=>{let i=await n.read();r.add(i)}),r}add(e){As(e);let r=e.timestamp;for(let n of e.statements){n.timestamp=n.timestamp??r;let i=Date.parse(n.timestamp),o=n.vulnerability.name,s=It(n),c=new Set(n.products?.map(l=>l["@id"]).filter(l=>!!l)??[]),u=new jt(i,o,s,c,n);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(n=>n.matchesAtLeastOneProduct(e)),r}findNotMatchingVulnerabilities(e,r){let n=this.filterByProduct(r??this.filteredToProducts),i=new Set;for(let o of n.statements)i.add(o.vulnName);for(let o of e)i.delete(o);return Array.from(i)}newestVulnerabilityStatement(e,r){let n=this.filterByProduct(r??this.filteredToProducts);for(let i of n.statements)if(i.matchesVulnerability(e))return this.reduceToProductInformation(i,n.filteredToProducts[0])}toVexFileForProduct(e){let r=this.filterByProduct(e??this.filteredToProducts),n=r.statements.map(i=>this.reduceToProductInformation(i,r.filteredToProducts[0]));return this.toVexFile(n)}toVexFile(e){let r=e.filter(i=>i.status!=="under_investigation");if(r.length===0)return;this.sortVexStatementsByTimestampNewestFirst(r);let n=r[0].timestamp;return{"@context":"https://openvex.dev/ns/v0.2.0","@id":"https://openvex.dev/docs/public/vex-fc763e6eb63bfbcda20b7cbbddd4e9f8feaaa317fe8d8a6f51a5663a1180343e",author:"conterra",timestamp:n,last_updated:n,version:1,statements:r}}assertCorrectProductId(e){if(!e||e.length===0)throw new Error("Product ID must be provided");if(this.filteredToProducts.length&&!Vs(this.filteredToProducts,e))throw new Error("Cannot filter to a different product")}reduceToProductInformation(e,r){let n={timestamp:new Date(e.timestamp).toISOString(),...e.statement};if(!r)return n;let i=n.products?.filter(o=>o["@id"]===r);return i?.length||(i=[{"@id":r}]),{...n,products:i}}sortStatementsByTimestampNewestFirst(){this.statements.sort((e,r)=>r.timestamp-e.timestamp)}sortVexStatementsByTimestampNewestFirst(e){e.sort((r,n)=>Date.parse(n.timestamp)-Date.parse(r.timestamp))}};function Vs(t,e){return t.length===e.length&&t.every((r,n)=>r===e[n])}var jt=class{constructor(e,r,n,i,o){this.timestamp=e;this.vulnName=r;this.vulnAliases=n;this.products=i;this.statement=o}matchesProduct(e){return this.products.has(e)}matchesAtLeastOneProduct(e){return e.some(this.matchesProduct.bind(this))}matchesVulnerability(e){return this.vulnAliases.has(e)}};function As(t){if(t?.["@context"]!=="https://openvex.dev/ns/v0.2.0")throw new Error("Invalid VEX file format")}var Qe=require("path"),Qn=require("fs/promises");var Ye=class{constructor(e,r,n){this.project=e;this.outputDir=r;this.useSubDirForProject=n}async lookupOutputFileForWriting(e){let r=this.useSubDirForProject?`${this.project.name}-${this.project.version}`:"",n=`${this.project.name}-${this.project.version}-`,i=this.getFileSuffix(e),o=(0,Qe.resolve)(this.outputDir,r,`${n}${i}`),s=(0,Qe.dirname)(o);return await oe(s)||await(0,Qn.mkdir)(s,{recursive:!0}),o}getFileSuffix(e){switch(e){case"grype-results":return"scan-grype-results.json";case"trivy-results":return"scan-trivy-results.json";case"ossindex-results":return"scan-ossindex-results.json";case"aggregate-results":return"scan-aggregate-results.json";case"aggregated-sarif-results":return"scan-aggregated-results.sarif.json";case"project-cyclonedx-sbom-file":return"sbom.cdx.json";case"project-openvex-file":return"openvex.vex.json";default:throw new Error(`Unknown output file key: ${e}`)}}};var Ft=require("zx");var Ke=require("path"),Kn="anchore/grype";async function zn(t,e,r){r&&console.log(`Initializing Grype DB in cache directory: ${e}`);let n=`${Kn}:${t||"latest"}`,i=await Ft.$`docker run --rm -v '${e}:/tmp/.cache' -e GRYPE_DB_CACHE_DIR=/tmp/.cache -e TMPDIR=/tmp ${n} db update`.nothrow();if(i.stdout&&console.log(` Grype DB Update: ${i.stdout}`),i.stderr&&console.log(` Grype DB Update error: ${i.stderr}`),i.exitCode!==0)throw new Error(`Grype DB update failed with exit code ${i.exitCode}: ${i.stderr}`)}async function Zn(t,e,r,n,i,o,s){let c=(0,Ke.dirname)(r),u=(0,Ke.basename)(r),l=[];o||l.push("--quiet");let a=`${Kn}:${t||"latest"}`,f=`${e}:/tmp/.cache`,p=`${c}:/tmp/output`,m=`${n.sbomFile}:/tmp/input.json`,d=`/tmp/output/${u}`,y=await Ft.$`docker run --rm -v ${f} -v ${p} -v ${m} -e GRYPE_DB_CACHE_DIR=/tmp/.cache -e TMPDIR=/tmp -e GRYPE_DB_AUTO_UPDATE=false ${a} sbom:/tmp/input.json -o json --file ${d} --by-cve ${l}`.nothrow();if(y.stdout&&s(` Scan log: ${y.stdout}`),y.stderr&&s(` Scan error: ${y.stderr}`),y.exitCode!==0)throw new Error(`Grype scan failed with exit code ${y.exitCode}: ${y.stderr}`);s(` Grype output file: ${r}`);try{let h=await G(r);$s(i,h)}catch(h){throw new Error(`Grype scan results could not be read from '${r}': ${h}`,{cause:h})}}function $s(t,e){if(e)for(let r of e.matches){let n=_s(r);t.addVulnerability(n,"grype")}}function _s(t){let e=t.vulnerability,r=e.id,n=J(t.artifact.purl),i=J(e.dataSource),o=qs(e.severity);return{id:r,severity:o,scannerSeverity:{grype:o},title:"",description:e.description,components:[n],detectedBy:["grype"],refs:[i]}}function qs(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 ei=require("fs/promises");async function ti(t,e,r,n,i,o){try{let s={},c="";r.user&&r.token&&(s.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 Bs(e.sbomFile),a=new Set(l.map(m=>m.purl.replace(/\?.*$/,"")));Hs(a);let f=Array.from(a),p=[];for(let m=0;m<f.length;m+=128){let d=JSON.stringify({coordinates:f.slice(m,m+128)});i&&o(` Sonatype OssIndex request ${u} with body: ${d}`);let h=await(await fetch(u,{method:"POST",headers:{...s,"Content-Type":"application/vnd.ossindex.component-report-request.v1+json"},body:d})).json();Array.isArray(h)?p.push(...h.filter(w=>w.vulnerabilities.length>0)):o(` Sonatype OssIndex Error: ${h.code} - ${h.message}`)}await(0,ei.writeFile)(t,JSON.stringify(p,null,2)),o(` Sonatype OssIndex output file: ${t}`),Gs(n,p)}catch(s){throw new Error(`Sonatype OSS Index scan failed: ${s}`,{cause:s})}}async function Bs(t){return(await G(t)).components.filter(r=>Us(r)&&!Xs(r))}function Us(t){return!!t.purl}function Xs(t){return t.group?t.group.startsWith("de.conterra")||t.group.startsWith("org.n52.security"):!1}function Gs(t,e){if(e)for(let r of e)for(let n of r.vulnerabilities){let i=Js(n,r.coordinates);t.addVulnerability(i,"ossindex")}}function Js(t,e){let r=t.cve||t.id,n=J(e),i=J(t.reference),o=Ws(t.cvssScore);return{id:r,severity:o,scannerSeverity:{ossindex:o},title:t.title,description:t.description,components:[n],detectedBy:["ossindex"],refs:i?[i]:[]}}function Ws(t){return t===0?"UNKNOWN":t<4?"LOW":t<7?"MEDIUM":t<9?"HIGH":"CRITICAL"}function Hs(t){let e=Array.from(t);for(let r of e){let n=r.replace(/(@[^-]+)-.*$/g,"$1");t.add(n)}}var Mt=require("zx");var ze=require("path"),ri="aquasec/trivy";async function ni(t,e,r,n){let i=[];r&&(i.push("-e"),i.push(`GITHUB_TOKEN=${r}`));let o=[];o.push("--db-repository"),o.push("public.ecr.aws/aquasecurity/trivy-db,aquasec/trivy-db,ghcr.io/aquasecurity/trivy-db"),n||o.push("--quiet");let s=`${ri}:${t||"latest"}`,c=await Mt.$`docker run --rm -v '${e}:/.cache' ${i} ${s} ${o} --cache-dir '/.cache' sbom --download-db-only`.nothrow();if(!c.stdout&&!c.stderr&&console.log(" Trivy DB Update: finished"),c.stdout&&console.log(` Trivy DB Update: ${c.stdout}`),c.stderr&&console.log(` Trivy DB Update error: ${c.stderr}`),c.exitCode!==0)throw new Error(`Trivy DB update failed with exit code ${c.exitCode}: ${c.stderr}`)}async function ii(t,e,r,n,i,o,s){let c=(0,ze.dirname)(r),u=(0,ze.basename)(r),l=[];o||l.push("--quiet");let a=`${ri}:${t||"latest"}`,f=`${e}:/.cache`,p=`${c}:/tmp/output`,m=`${n.sbomFile}:/tmp/input.json`,d=`/tmp/output/${u}`,y=await Mt.$`docker run --rm -v ${f} -v ${p} -v ${m} ${a} sbom --cache-dir '/.cache' --format json --output ${d} ${l} --skip-db-update /tmp/input.json`.nothrow();if(y.stdout&&s(` Scan log: ${y.stdout}`),y.stderr&&s(` Scan error: ${y.stderr}`),y.exitCode!==0)throw new Error(`Trivy scan failed with exit code ${y.exitCode}: ${y.stderr}`);s(` Trivy output file: ${r}`);try{let h=await G(r);Ys(i,h)}catch(h){throw new Error(`Trivy scan results could not be read from '${r}': ${h}`,{cause:h})}}function Ys(t,e){if(e){for(let r of e.Results??[])if(r.Vulnerabilities)for(let n of r.Vulnerabilities){let i=Qs(n);t.addVulnerability(i,"trivy")}}}function Qs(t){let e=t.VulnerabilityID,r=J(t.PkgIdentifier.PURL),n=J(t.PrimaryURL),i=Ks(t.Severity);return{id:e,severity:i,scannerSeverity:{trivy:i},title:t.Title,description:t.Description,components:[r],detectedBy:["trivy"],refs:[n]}}function Ks(t){switch(t){case"UNKNOWN":case"LOW":case"MEDIUM":case"HIGH":case"CRITICAL":return t;default:return"UNKNOWN"}}var Ze=class{constructor(e,r,n){this.scanners=e;this.cacheDir=r;this.options=n}async init(e){let r=[];for(let n of this.scanners)switch(n.name){case"grype":r.push(zn(n.version,this.cacheDir,e));break;case"trivy":r.push(ni(n.version,this.cacheDir,this.options.trivyGithubToken,e));break;case"ossindex":continue}await Promise.all(r)}async scanProject(e,r,n,i,o){let s=[];for(let c of this.scanners)s.push(this.scanProjectBy(c,e,r,this.cacheDir,n,this.options.ossIndexApiUser,this.options.ossIndexApiToken,i,o));await Promise.all(s)}async scanProjectBy(e,r,n,i,o,s,c,u,l){switch(e.name){case"grype":return Zn(e.version,i,await n.lookupOutputFileForWriting("grype-results"),r,o,u,l);case"trivy":return ii(e.version,i,await n.lookupOutputFileForWriting("trivy-results"),r,o,u,l);case"ossindex":return ti(await n.lookupOutputFileForWriting("ossindex-results"),r,{user:s,token:c},o,u,l)}}};async function oi(t,e,r){await He(t,async n=>{let i=await n.read(),o=!1,s=i.statements,c=[];for(let u of s){if(r&&!It(u).has(r)||!u.products)continue;let l=u.products.findIndex(a=>a["@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=s.indexOf(u);s.splice(l,1)}if(s.length===0){console.info(`Remove ${e} from ${n.location} and delete file.`),await n.delete();return}console.info(`Remove ${e} from ${n.location}`),await n.write(i)}})}var Pe=require("fs/promises"),Nt=require("path");async function ai(t,e){let{orderBy:r,reportNoLongerDetectedVulnerabilities:n,reportCveDetails:i,outputDirectory:o}={orderBy:"CVE",reportNoLongerDetectedVulnerabilities:!0,reportCveDetails:!1,...e},s=!1,c=!1,u=!1,l=new Map,a=new Map,f=new Map,p=new Map,m=new Map,d=[];for(let x of t.values()){let D=x.project,A=`${D.name}@${D.version}`;if(x.error&&(s=!0,d.push({project:A,error:x.error})),D.silent)continue;let ke=X[D.minimumSeverity],rt=x.newVulns.filter(T=>ke<=X[T.severity]);for(let T of rt){if(c=!0,!l.has(T.id))l.set(T.id,T);else{let S=l.get(T.id);ra(S,T)}a.has(T.id)||a.set(T.id,[]),p.has(A)||p.set(A,[]),p.get(A).push(T.id),a.get(T.id).push(A)}for(let T of x.noLongerDetectedVulns)u=!0,f.has(T)||f.set(T,[]),m.has(A)||m.set(A,[]),m.get(A).push(T),f.get(T).push(A)}let y;o&&(y=(0,Nt.join)(o,"scan-summary.txt"),await(0,Pe.writeFile)(y,"","utf8"));let h=async x=>{console.log(x),y&&await(0,Pe.appendFile)(y,x+`
|
|
39
39
|
`,"utf8")};switch(await h("=== Scan summary ==="),d.length&&await zs(h,d),i&&await ta(h,l),r){case"CVE":{await ea(h,a,l,n?f:new Map);break}case"PROJECT":{await Zs(h,p,n?m:new Map,l);break}}!s&&!c&&(!u||!n)&&await h(" No issues found");let w={errors:d,vulnerabilities:Object.fromEntries(l),vulnerabilityToProject:Object.fromEntries(a.entries()),projectToVulnerability:Object.fromEntries(p.entries()),noLongerDetectedVulnerabilities:Object.fromEntries(f)};if(o){let x=(0,Nt.join)(o,"scan-summary.json");await(0,Pe.writeFile)(x,JSON.stringify(w,null,2),"utf8")}return{hasError:s,hasNewVuln:c,hasNoLongerDetectedVuln:u}}async function zs(t,e){await t(""),await t("- Errors during scan:");for(let{project:r,error:n}of e)await t(` - ${r}:`),await t(` Error: ${n}`)}async function Zs(t,e,r,n){let i=new Set([...Array.from(e.keys()),...Array.from(r.keys())]),o=Array.from(i.keys()).sort();if(o.length){await t(""),await t("- Vulnerabilities by project:");for(let s of o){await t(` - ${s}:`);let c=e.get(s)??[];for(let l of c.slice().sort(Rt(a=>n.get(a).severity))){let{severity:a}=n.get(l);await t(` - [${a}] ${l}`)}let u=(r.get(s)??[]).slice().sort();for(let l of u)await t(` - ${l} (no longer detected)`)}}}async function ea(t,e,r,n){let i=Array.from(e.keys()).sort(Rt(s=>r.get(s).severity));if(i.length){await t(""),await t("- New vulnerabilities:");for(let s of i){let c=e.get(s),{severity:u}=r.get(s);await t(` - [${u}] ${s}`);for(let l of c.slice().sort())await t(` - ${l}`)}}let o=Array.from(n.keys()).sort();if(o.length){await t(""),await t("- Declared but no longer detected vulnerabilities:");for(let s of o){let c=n.get(s);await t(` - ${s}`);for(let u of c.slice().sort())await t(` - ${u}`)}}}async function ta(t,e){if(e.size===0)return;await t(""),await t("- Vulnerability details:");let r=Array.from(e.keys()).sort(Rt(n=>e.get(n).severity));for(let n of r){let i=e.get(n);if(await t(` - [${i.severity}] ${i.id} - ${i.title||""}:`),i.description){await t(" Description:");let o=i.description.split(/\r?\n/);for(let s of o)await t(` ${s}`)}if(i.components.length){await t(" Components:");for(let o of i.components)await t(" - "+o);if(i.componentTree){await t(" Usage Tree:");for(let o of i.componentTree)await t(Xe(o," "))}}if(i.refs.length){await t(" Links:");for(let o of i.refs)await t(` - ${o}`)}}}function ra(t,e){t.title=t.title||e.title,t.severity=X[t.severity]>X[e.severity]?t.severity:e.severity,t.description=t.description||e.description,t.components=si(t.components,e.components),t.refs=si(t.refs,e.refs)}function si(t,e){let r=new Set([...t,...e]);return Array.from(r)}function Rt(t){return(e,r)=>{let n=t(e),i=t(r),o=X[n],s=X[i];return o!==s?o>s?-1:1:e.localeCompare(r)}}et.os.type().startsWith("Windows")&&(0,et.usePowerShell)();async function ci(t){let e=await lt(t),r=e.cacheDir;await oe(r)||await(0,ce.mkdir)(r);let n=e.outDir;await oe(n)&&await at(n),await(0,ce.mkdir)(n);let i=await sa(e,{user:t.vexUrlsUser,pw:t.vexUrlsPw}),o=new Ge(e.mavenRepo,{user:t.mavenRepoUser,pw:t.mavenRepoPw}),s=aa(e,t,r),c=Date.now();console.log("Initializing scanner engines ..."),await s.init(t.verbose),console.log(`Scanner engines initialization took ${Date.now()-c}ms
|
|
40
|
-
`);let u=ca(t),l=e.projects,a=new Map,f=Date.now();console.log("Scanning projects ...");let p=l.filter(u).map(d=>{let y=new Ye(d,n,e.createSubDirsForProject),h=[],w=D=>{h.push(D)};return{scan(){return na(d,y,o,s,i,w,a,t,h)}}});await ua(p),console.log(`Scanning took ${Date.now()-f}ms`),t.autoRemoveUnusedStatements&&await la(a,e.vexDir);let m=await ai(a,{orderBy:e.consoleReport.startsWith("BY_CVE")?"CVE":"PROJECT",reportCveDetails:e.consoleReport.endsWith("_DETAILED"),reportNoLongerDetectedVulnerabilities:e.reportNoLongerDetectedVulnerabilities,outputDirectory:n});if(m.hasError)return 1;if(m.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(m.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 na(t,e,r,n,i,o,s,c,u){try{let{unmatchedVulnerabilities:l,noLongerDetectedVulnerabilities:a}=await ia(t,e,r,n,i,c.verbose,o);s.set(t.purl,{project:t,newVulns:l,noLongerDetectedVulns:a})}catch(l){let a=l;s.set(t.purl,{project:t,error:`${a}`,newVulns:[],noLongerDetectedVulns:[]})}if(c.verbose)for(let l of u)console.log(l)}async function ia(t,e,r,n,i,o,s){let c=await Yn(t,await e.lookupOutputFileForWriting("project-cyclonedx-sbom-file"),r);s(`Analyzing project: ${c.name} - ${c.version} - ${c.sbomFile}`);let u=await G(c.sbomFile)
|
|
40
|
+
`);let u=ca(t),l=e.projects,a=new Map,f=Date.now();console.log("Scanning projects ...");let p=l.filter(u).map(d=>{let y=new Ye(d,n,e.createSubDirsForProject),h=[],w=D=>{h.push(D)};return{scan(){return na(d,y,o,s,i,w,a,t,h)}}});await ua(p),console.log(`Scanning took ${Date.now()-f}ms`),t.autoRemoveUnusedStatements&&await la(a,e.vexDir);let m=await ai(a,{orderBy:e.consoleReport.startsWith("BY_CVE")?"CVE":"PROJECT",reportCveDetails:e.consoleReport.endsWith("_DETAILED"),reportNoLongerDetectedVulnerabilities:e.reportNoLongerDetectedVulnerabilities,outputDirectory:n});if(m.hasError)return 1;if(m.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(m.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 na(t,e,r,n,i,o,s,c,u){try{let{unmatchedVulnerabilities:l,noLongerDetectedVulnerabilities:a}=await ia(t,e,r,n,i,c.verbose,o);s.set(t.purl,{project:t,newVulns:l,noLongerDetectedVulns:a})}catch(l){let a=l;s.set(t.purl,{project:t,error:`${a}`,newVulns:[],noLongerDetectedVulns:[]})}if(c.verbose)for(let l of u)console.log(l)}async function ia(t,e,r,n,i,o,s){let c=await Yn(t,await e.lookupOutputFileForWriting("project-cyclonedx-sbom-file"),r);s(`Analyzing project: ${c.name} - ${c.version} - ${c.sbomFile}`);let u=await G(c.sbomFile);if(!u)throw new Error(`Could not read SBOM file ${c.sbomFile} for project ${c.name}`);if(!u.components||u.components.length===0)throw new Error(`SBOM file ${c.sbomFile} for project ${c.name} does not contain any components`);let l=new Ee(Ue.createForSbom(u));await n.scanProject(c,e,l,o,s);let a=i.filterByProduct([c.purl,...c.purlAliases]),{unmatchedVulnerabilities:f}=l.enhanceWithVexData(a),p=c.detectNoLongerUsedVulnerabilities?a.findNotMatchingVulnerabilities(l.getAllVulnIds()):[];return await oa(e,c,l,a,s),{unmatchedVulnerabilities:f,noLongerDetectedVulnerabilities:p}}async function oa(t,e,r,n,i){let o=r.getAllVulnerabilitiesSortedBySeverity(),s=await t.lookupOutputFileForWriting("aggregate-results");await(0,ce.writeFile)(s,JSON.stringify(o,null,2)),i(` Vulnerabilities output file: ${s}`);let c=await t.lookupOutputFileForWriting("aggregated-sarif-results"),u=Hn(o,e);await(0,ce.writeFile)(c,JSON.stringify(u,null,2)),i(` Vuln Sarif output file: ${c}`);let l=n.toVexFile(o.filter(f=>f.vexStatement).map(f=>{let p=f.vexStatement;for(let m of f.components??[])p.products.push({"@id":m});return p}));if(!l)return;let a=await t.lookupOutputFileForWriting("project-openvex-file");await(0,ce.writeFile)(a,JSON.stringify(l,null,2)),i(` OpenVex file: ${a}`)}async function sa(t,e){let r=t.vexDir,n;await oe(r)?n=await de.fromFiles(r):n=new de;for(let i of t.vexUrls)await de.fromUrl(i,e,n);return n}function aa(t,e,r){if(e.scannerEngine)return e.scannerEngine;if(t.scanners.length===0)throw new Error("No scanners configured");return new Ze(t.scanners,r,e)}function ca(t){let{reduceToProjectName:e,reduceToProjectVersion:r}=t;return n=>!(!n.enabled||e&&(n.name!==e||r&&n.version!==r))}async function la(t,e){for(let r of t.values())if(!r.project.silent)for(let n of r.noLongerDetectedVulns)await oi(e,r.project.purl,n)}async function ua(t,e=5){let r=0,n=0,i=0,o=t.length,s,c=new Promise(l=>{s=l});function u(){for(;r<e&&i<o;){let l=t[i++];r++,l.scan().finally(()=>{r--,n++,n>=o?s():u()})}}u(),await c}var li=require("zx");li.dotenv.config();var z=process.env;(async()=>{let t=await ci({workingDir:process.cwd(),reduceToProjectName:process.argv[2],reduceToProjectVersion:process.argv[3],ossIndexApiUser:z.OSS_INDEX_API_USER,ossIndexApiToken:z.OSS_INDEX_API_TOKEN,mavenRepoUser:z.MAVEN_REPO_USER,mavenRepoPw:z.MAVEN_REPO_PW,trivyGithubToken:z.TRIVY_GITHUB_TOKEN,vexUrlsUser:z.VEX_URLS_USER,vexUrlsPw:z.VEX_URLS_PW,verbose:z.VERBOSE==="true",autoRemoveUnusedStatements:z.AUTO_REMOVE_UNUSED_STATEMENTS==="true"});process.exitCode=t})();
|
|
41
41
|
/*! Bundled license information:
|
|
42
42
|
|
|
43
43
|
escape-html/index.js:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@conterra/vuln-scan",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.34",
|
|
4
4
|
"description": "con terra vulnerability scan process",
|
|
5
5
|
"author": "con terra GmbH",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"node-sarif-builder": "3.3.1",
|
|
38
38
|
"rimraf": "6.1.2",
|
|
39
39
|
"typescript": "5.9.3",
|
|
40
|
-
"typescript-eslint": "8.
|
|
40
|
+
"typescript-eslint": "8.48.0",
|
|
41
41
|
"vitest": "3.2.4",
|
|
42
42
|
"@inquirer/prompts": "7.10.1"
|
|
43
43
|
},
|