@conterra/vuln-scan 0.0.4 → 0.0.6
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/README.md +35 -0
- package/dist/add-statement.js +13 -13
- package/dist/schema/conf-schema.json +27 -3
- package/dist/vuln-scan.js +8 -8
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -102,6 +102,10 @@ The following sample lists all available options with their default values:
|
|
|
102
102
|
"mavenRepo": "https://repository.conterra.de/repository/maven-mirror-ct",
|
|
103
103
|
/* The list of scanners to use. Possible values are "grype", "trivy" and "ossindex". */
|
|
104
104
|
"scanners": ["grype", "trivy", "ossindex"],
|
|
105
|
+
/* (optional) The list of vex files to download. Default is empty array. */
|
|
106
|
+
"vexUrls": [
|
|
107
|
+
"https://example.com/my-vex.json"
|
|
108
|
+
],
|
|
105
109
|
/* The directory where the vex files are stored. */
|
|
106
110
|
"vexDir": "./input/vex",
|
|
107
111
|
/* The directory where the scan results are written to. */
|
|
@@ -128,7 +132,34 @@ The following sample lists all available options with their default values:
|
|
|
128
132
|
"purl": "pkg:maven/de.conterra.mapapps/ct-mapapps@4.18.2",
|
|
129
133
|
/* The location of the sbom file. */
|
|
130
134
|
"sbomFile": "./input/sboms/mapapps-4.18.2.cdx.json"
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"name": "mapapps-sample-disabled",
|
|
138
|
+
"version": "4.17.0",
|
|
139
|
+
/* this project is disabled and not scanned */
|
|
140
|
+
"enabled": false,
|
|
141
|
+
"purl": "pkg:maven/de.conterra.mapapps/ct-mapapps@4.17.0",
|
|
142
|
+
"sbomFile": "./input/sboms/mapapps-4.17.0.cdx.json"
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"name": "mapapps-sample-silent",
|
|
146
|
+
"version": "4.17.2",
|
|
147
|
+
/* this project is scanned, but detected vulnerabilities are ignored and will never break the build */
|
|
148
|
+
"silent": true,
|
|
149
|
+
"purl": "pkg:maven/de.conterra.mapapps/ct-mapapps@4.17.2",
|
|
150
|
+
"sbomFile": "./input/sboms/mapapps-4.17.2.cdx.json"
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"name": "mapapps-sample-with-minium-severity",
|
|
154
|
+
"version": "4.17.2",
|
|
155
|
+
/* This project is scanned, but only vulnerabilities with a severity >= HIGH will break the build
|
|
156
|
+
Available values are: "CRITICAL", "HIGH", "MEDIUM", "LOW", "UNKNOWN"
|
|
157
|
+
*/
|
|
158
|
+
"minimumSeverity": "HIGH",
|
|
159
|
+
"purl": "pkg:maven/de.conterra.mapapps/ct-mapapps@4.17.2",
|
|
160
|
+
"sbomFile": "./input/sboms/mapapps-4.17.2.cdx.json"
|
|
131
161
|
}
|
|
162
|
+
|
|
132
163
|
]
|
|
133
164
|
}
|
|
134
165
|
```
|
|
@@ -164,6 +195,10 @@ MAVEN_REPO_PW=[password]
|
|
|
164
195
|
OSS_INDEX_API_USER=[username]
|
|
165
196
|
OSS_INDEX_API_TOKEN=[token]
|
|
166
197
|
|
|
198
|
+
# (optional) for authentication downloading vex files specified by vexUrls option
|
|
199
|
+
VEX_URLS_USER=[username]
|
|
200
|
+
VEX_URLS_PW=[password]
|
|
201
|
+
|
|
167
202
|
# (optional) helps to fix the rate limit issue during downloading the trivy database from github
|
|
168
203
|
# See <https://aquasecurity.github.io/trivy/v0.38/docs/references/troubleshooting/#github-rate-limiting>
|
|
169
204
|
TRIVY_GITHUB_TOKEN=[token]
|
package/dist/add-statement.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";var
|
|
3
|
-
> `);
|
|
4
|
-
- ${
|
|
2
|
+
"use strict";var N=Object.create;var x=Object.defineProperty;var $=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var A=Object.getPrototypeOf,I=Object.prototype.hasOwnProperty;var C=(t,e,r,f)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of k(e))!I.call(t,a)&&a!==r&&x(t,a,{get:()=>e[a],enumerable:!(f=$(e,a))||f.enumerable});return t};var D=(t,e,r)=>(r=t!=null?N(A(t)):{},C(e||!t||!t.__esModule?x(r,"default",{value:t,enumerable:!0}):r,t));var h=D(require("node:readline/promises")),j=require("node:process");var _=D(require("path"));var m=require("fs/promises");async function v(t){if(await O(t))return JSON.parse(await(0,m.readFile)(t,{encoding:"utf-8"}))}async function O(t){try{return await(0,m.access)(t,m.constants.F_OK),!0}catch{return!1}}async function b(t){let e="https://repository.conterra.de/repository/maven-mirror-ct",r=l(t.workingDir,"input/vex"),f=l(t.workingDir,"output"),a=l(t.workingDir,"cache"),S=["grype","trivy","ossindex"],g=l(t.workingDir,"vuln-scan-conf.json"),o=await v(g);if(!o)throw new Error(`Missing project configuration file '${g}'`);return{failOnNewVulnerabilities:!1,createSubDirsForProject:o.createSubDirsForProject??!0,mavenRepo:o.mavenRepo??e,vexUrls:o.vexUrls??[],vexDir:l(t.workingDir,o.vexDir)??r,outDir:l(t.workingDir,o.outDir)??f,cacheDir:l(t.workingDir,o.cacheDir)??a,scanners:o.scanners??S,projects:(o.projects??[]).map(c=>{let i=c;if(!i.name)throw new Error("Project name is missing on entry:"+JSON.stringify(i));if(!i.version)throw new Error("Project version is missing on entry:"+JSON.stringify(i));if(!i.purl)throw new Error("Project purl is missing on entry:"+JSON.stringify(i));return i.enabled==null&&(i.enabled=!0),i.silent==null&&(i.silent=!1),i.minimumSeverity||(i.minimumSeverity="UNKNOWN"),i.sbomFile?{...i,sbomFile:l(t.workingDir,i.sbomFile)}:c})}}function l(t,e){if(e)return _.default.isAbsolute(e)?e:(0,_.resolve)(t,e)}var P=require("path");var F=require("fs/promises"),E=require("crypto");(async()=>{let t=await b({workingDir:process.cwd()});console.info("## Add New VEX Statement ##");let e=h.default.createInterface({input:j.stdin,output:j.stdout}),r=await e.question(`CVE name (e.g. CVE-2023-52070):
|
|
3
|
+
> `);r||(console.log("Please provide a CVE name."),process.exit(1));let f=t.projects.map(n=>`${n.name}@${n.version}`),a=await e.question(`Projects to add? Available are:
|
|
4
|
+
- ${f.join(`,
|
|
5
5
|
- `)}
|
|
6
6
|
You can list multiple projects separated by comma:
|
|
7
|
-
> `);
|
|
8
|
-
- ${
|
|
7
|
+
> `);a||(console.log("Please provide projects to add."),process.exit(1));let S=a.split(/\s*,\s*/).map(n=>{let s=n.split("@");return{name:s[0],version:s[1]}}),g=new Set(function*(){for(let n of S)for(let s of t.projects)s.name===n.name&&s.version===n.version&&(yield s.purl)}()),o=(0,P.resolve)(t.vexDir,`${r}.json`),c=await v(o),i=["under_investigation","affected","fixed","not_affected"],p=await e.question(`Status? Available are:
|
|
8
|
+
- ${i.join(`,
|
|
9
9
|
- `)}
|
|
10
|
-
> `);
|
|
11
|
-
> `);n||(console.log("Please provide an action statement."),process.exit(1)),
|
|
10
|
+
> `);i.includes(p)||(p?(console.log("Invalid status."),process.exit(1)):p="under_investigation");let u={};switch(p){case"affected":{let n=await e.question(`Action statement? (required):
|
|
11
|
+
> `);n||(console.log("Please provide an action statement."),process.exit(1)),u.action_statement=n;break}case"not_affected":{let n=["component_not_present","vulnerable_code_not_present","vulnerable_code_not_in_execute_path","vulnerable_code_cannot_be_controlled_by_adversary","inline_mitigations_already_exist"],s=await e.question(`Justification? Available are:
|
|
12
12
|
- ${n.join(`,
|
|
13
13
|
- `)}
|
|
14
|
-
> (optional) `);if(s)if(!n.includes(s))console.log("Invalid justification."),process.exit(1);else{
|
|
15
|
-
> `);d&&(
|
|
16
|
-
> `);d||(console.log("Please provide an impact statement."),process.exit(1)),
|
|
17
|
-
> `);n&&(
|
|
18
|
-
${JSON.stringify(
|
|
14
|
+
> (optional) `);if(s)if(!n.includes(s))console.log("Invalid justification."),process.exit(1);else{u.justification=s;let d=await e.question(`Impact statement? (optional):
|
|
15
|
+
> `);d&&(u.impact_statement=d)}else{let d=await e.question(`Impact statement? (required):
|
|
16
|
+
> `);d||(console.log("Please provide an impact statement."),process.exit(1)),u.impact_statement=d}break}case"fixed":{let n=await e.question(`Status note? (optional):
|
|
17
|
+
> `);n&&(u.status_notes=n);break}}let w=new Date().toISOString(),y={vulnerability:{name:r},timestamp:w,products:Array.from(g).map(n=>({"@id":n})),status:p,...u};(await e.question(`Following statement will be added to ${o}:
|
|
18
|
+
${JSON.stringify(y,null,2)}
|
|
19
19
|
|
|
20
20
|
Do you want to proceed? (y/n)?
|
|
21
|
-
> `)).toLowerCase()!=="y"&&(console.log("Aborted."),process.exit(0)),
|
|
21
|
+
> `)).toLowerCase()!=="y"&&(console.log("Aborted."),process.exit(0)),c?(c.last_updated=w,c.version+=1,c.statements.push(y)):c={"@context":"https://openvex.dev/ns/v0.2.0","@id":`https://openvex.dev/docs/public/vex-${(0,E.randomUUID)()}`,author:"conterra",timestamp:w,last_updated:w,version:1,statements:[y]},await(0,F.writeFile)(o,JSON.stringify(c,null,2)),e.close()})();
|
|
@@ -18,6 +18,13 @@
|
|
|
18
18
|
},
|
|
19
19
|
"default": ["grype", "trivy", "ossindex"]
|
|
20
20
|
},
|
|
21
|
+
"vexUrls": {
|
|
22
|
+
"type": "array",
|
|
23
|
+
"items": {
|
|
24
|
+
"type": "string"
|
|
25
|
+
},
|
|
26
|
+
"default": []
|
|
27
|
+
},
|
|
21
28
|
"vexDir": {
|
|
22
29
|
"type": "string",
|
|
23
30
|
"default": "./input/vex"
|
|
@@ -53,6 +60,25 @@
|
|
|
53
60
|
},
|
|
54
61
|
"sbomFile": {
|
|
55
62
|
"type": "string"
|
|
63
|
+
},
|
|
64
|
+
"enabled": {
|
|
65
|
+
"type": "boolean",
|
|
66
|
+
"default": true
|
|
67
|
+
},
|
|
68
|
+
"silent": {
|
|
69
|
+
"type": "boolean",
|
|
70
|
+
"default": false
|
|
71
|
+
},
|
|
72
|
+
"minimumSeverity": {
|
|
73
|
+
"type": "string",
|
|
74
|
+
"enum": [
|
|
75
|
+
"CRITICAL",
|
|
76
|
+
"HIGH",
|
|
77
|
+
"MEDIUM",
|
|
78
|
+
"LOW",
|
|
79
|
+
"UNKNOWN"
|
|
80
|
+
],
|
|
81
|
+
"default": "UNKNOWN"
|
|
56
82
|
}
|
|
57
83
|
},
|
|
58
84
|
"required": ["name", "version", "purl"],
|
|
@@ -67,7 +93,5 @@
|
|
|
67
93
|
}
|
|
68
94
|
}
|
|
69
95
|
},
|
|
70
|
-
"required": [
|
|
71
|
-
"projects"
|
|
72
|
-
]
|
|
96
|
+
"required": ["projects"]
|
|
73
97
|
}
|
package/dist/vuln-scan.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";var
|
|
3
|
-
GFS4: `),console.error(t)});F[A]||(Rt=global[A]||[],_t(F,Rt),F.close=function(t){function e(r,i){return t.call(F,r,function(n){n||qt(),typeof i=="function"&&i.apply(this,arguments)})}return Object.defineProperty(e,je,{value:t}),e}(F.close),F.closeSync=function(t){function e(r){t.apply(F,arguments),qt()}return Object.defineProperty(e,je,{value:t}),e}(F.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&process.on("exit",function(){ie(F[A]),require("assert").equal(F[A].length,0)}));var Rt;global[A]||_t(global,F[A]);ot.exports=it(dn(F));process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!F.__patched&&(ot.exports=it(F),F.__patched=!0);function it(t){mn(t),t.gracefulify=it,t.createReadStream=fe,t.createWriteStream=me;var e=t.readFile;t.readFile=r;function r(y,b,v){return typeof b=="function"&&(v=b,b=null),T(y,b,v);function T(C,E,k,D){return e(C,E,function(L){L&&(L.code==="EMFILE"||L.code==="ENFILE")?se([T,[C,E,k],L,D||Date.now(),Date.now()]):typeof k=="function"&&k.apply(this,arguments)})}}var i=t.writeFile;t.writeFile=n;function n(y,b,v,T){return typeof v=="function"&&(T=v,v=null),C(y,b,v,T);function C(E,k,D,L,I){return i(E,k,D,function(P){P&&(P.code==="EMFILE"||P.code==="ENFILE")?se([C,[E,k,D,L],P,I||Date.now(),Date.now()]):typeof L=="function"&&L.apply(this,arguments)})}}var o=t.appendFile;o&&(t.appendFile=s);function s(y,b,v,T){return typeof v=="function"&&(T=v,v=null),C(y,b,v,T);function C(E,k,D,L,I){return o(E,k,D,function(P){P&&(P.code==="EMFILE"||P.code==="ENFILE")?se([C,[E,k,D,L],P,I||Date.now(),Date.now()]):typeof L=="function"&&L.apply(this,arguments)})}}var c=t.copyFile;c&&(t.copyFile=l);function l(y,b,v,T){return typeof v=="function"&&(T=v,v=0),C(y,b,v,T);function C(E,k,D,L,I){return c(E,k,D,function(P){P&&(P.code==="EMFILE"||P.code==="ENFILE")?se([C,[E,k,D,L],P,I||Date.now(),Date.now()]):typeof L=="function"&&L.apply(this,arguments)})}}var f=t.readdir;t.readdir=u;var a=/^v[0-5]\./;function u(y,b,v){typeof b=="function"&&(v=b,b=null);var T=a.test(process.version)?function(k,D,L,I){return f(k,C(k,D,L,I))}:function(k,D,L,I){return f(k,D,C(k,D,L,I))};return T(y,b,v);function C(E,k,D,L){return function(I,P){I&&(I.code==="EMFILE"||I.code==="ENFILE")?se([T,[E,k,D],I,L||Date.now(),Date.now()]):(P&&P.sort&&P.sort(),typeof D=="function"&&D.call(this,I,P))}}}if(process.version.substr(0,4)==="v0.8"){var p=pn(t);g=p.ReadStream,x=p.WriteStream}var m=t.ReadStream;m&&(g.prototype=Object.create(m.prototype),g.prototype.open=O);var d=t.WriteStream;d&&(x.prototype=Object.create(d.prototype),x.prototype.open=X),Object.defineProperty(t,"ReadStream",{get:function(){return g},set:function(y){g=y},enumerable:!0,configurable:!0}),Object.defineProperty(t,"WriteStream",{get:function(){return x},set:function(y){x=y},enumerable:!0,configurable:!0});var S=g;Object.defineProperty(t,"FileReadStream",{get:function(){return S},set:function(y){S=y},enumerable:!0,configurable:!0});var w=x;Object.defineProperty(t,"FileWriteStream",{get:function(){return w},set:function(y){w=y},enumerable:!0,configurable:!0});function g(y,b){return this instanceof g?(m.apply(this,arguments),this):g.apply(Object.create(g.prototype),arguments)}function O(){var y=this;Qe(y.path,y.flags,y.mode,function(b,v){b?(y.autoClose&&y.destroy(),y.emit("error",b)):(y.fd=v,y.emit("open",v),y.read())})}function x(y,b){return this instanceof x?(d.apply(this,arguments),this):x.apply(Object.create(x.prototype),arguments)}function X(){var y=this;Qe(y.path,y.flags,y.mode,function(b,v){b?(y.destroy(),y.emit("error",b)):(y.fd=v,y.emit("open",v))})}function fe(y,b){return new t.ReadStream(y,b)}function me(y,b){return new t.WriteStream(y,b)}var He=t.open;t.open=Qe;function Qe(y,b,v,T){return typeof v=="function"&&(T=v,v=null),C(y,b,v,T);function C(E,k,D,L,I){return He(E,k,D,function(P,Fs){P&&(P.code==="EMFILE"||P.code==="ENFILE")?se([C,[E,k,D,L],P,I||Date.now(),Date.now()]):typeof L=="function"&&L.apply(this,arguments)})}}return t}function se(t){ie("ENQUEUE",t[0].name,t[1]),F[A].push(t),nt()}var Ee;function qt(){for(var t=Date.now(),e=0;e<F[A].length;++e)F[A][e].length>2&&(F[A][e][3]=t,F[A][e][4]=t);nt()}function nt(){if(clearTimeout(Ee),Ee=void 0,F[A].length!==0){var t=F[A].shift(),e=t[0],r=t[1],i=t[2],n=t[3],o=t[4];if(n===void 0)ie("RETRY",e.name,r),e.apply(null,r);else if(Date.now()-n>=6e4){ie("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),f=Math.min(l*1.2,100);c>=f?(ie("RETRY",e.name,r),e.apply(null,r.concat([n]))):F[A].push(t)}Ee===void 0&&(Ee=setTimeout(nt,0))}}});var q=h(H=>{"use strict";var Vt=j().fromCallback,R=ae(),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]=Vt(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((s,c)=>{R.read(t,e,r,i,n,(l,f,a)=>{if(l)return c(l);s({bytesRead:f,buffer:a})})})};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,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"?R.readv(t,e,...r):new Promise((i,n)=>{R.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"?R.writev(t,e,...r):new Promise((i,n)=>{R.writev(t,e,...r,(o,s,c)=>{if(o)return n(o);i({bytesWritten:s,buffers:c})})})};typeof R.realpath.native=="function"?H.realpath.native=Vt(R.realpath.native):process.emitWarning("fs.realpath.native is not a function. Is fs being monkey-patched?","Warning","fs-extra-WARN0003")});var Xt=h((Ws,$t)=>{"use strict";var Sn=require("path");$t.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 Ut=h((Hs,st)=>{"use strict";var Bt=q(),{checkPath:Gt}=Xt(),Jt=t=>{let e={mode:511};return typeof t=="number"?t:{...e,...t}.mode};st.exports.makeDir=async(t,e)=>(Gt(t),Bt.mkdir(t,{mode:Jt(e),recursive:!0}));st.exports.makeDirSync=(t,e)=>(Gt(t),Bt.mkdirSync(t,{mode:Jt(e),recursive:!0}))});var B=h((Qs,Wt)=>{"use strict";var gn=j().fromPromise,{makeDir:vn,makeDirSync:at}=Ut(),ct=gn(vn);Wt.exports={mkdirs:ct,mkdirsSync:at,mkdirp:ct,mkdirpSync:at,ensureDir:ct,ensureDirSync:at}});var Y=h((Ks,Qt)=>{"use strict";var wn=j().fromPromise,Ht=q();function bn(t){return Ht.access(t).then(()=>!0).catch(()=>!1)}Qt.exports={pathExists:wn(bn),pathExistsSync:Ht.existsSync}});var lt=h((zs,Kt)=>{"use strict";var ce=q(),xn=j().fromPromise;async function Ln(t,e,r){let i=await ce.open(t,"r+"),n=null;try{await ce.futimes(i,e,r)}finally{try{await ce.close(i)}catch(o){n=o}}if(n)throw n}function Pn(t,e,r){let i=ce.openSync(t,"r+");return ce.futimesSync(i,e,r),ce.closeSync(i)}Kt.exports={utimesMillis:xn(Ln),utimesMillisSync:Pn}});var ne=h((Ys,er)=>{"use strict";var le=q(),M=require("path"),zt=j().fromPromise;function kn(t,e,r){let i=r.dereference?n=>le.stat(n,{bigint:!0}):n=>le.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 Fn(t,e,r){let i,n=r.dereference?s=>le.statSync(s,{bigint:!0}):s=>le.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 On(t,e,r,i){let{srcStat:n,destStat:o}=await kn(t,e,i);if(o){if(pe(n,o)){let s=M.basename(t),c=M.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()&&ut(t,e))throw new Error(Me(t,e,r));return{srcStat:n,destStat:o}}function Dn(t,e,r,i){let{srcStat:n,destStat:o}=Fn(t,e,i);if(o){if(pe(n,o)){let s=M.basename(t),c=M.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()&&ut(t,e))throw new Error(Me(t,e,r));return{srcStat:n,destStat:o}}async function Yt(t,e,r,i){let n=M.resolve(M.dirname(t)),o=M.resolve(M.dirname(r));if(o===n||o===M.parse(o).root)return;let s;try{s=await le.stat(o,{bigint:!0})}catch(c){if(c.code==="ENOENT")return;throw c}if(pe(e,s))throw new Error(Me(t,r,i));return Yt(t,e,o,i)}function Zt(t,e,r,i){let n=M.resolve(M.dirname(t)),o=M.resolve(M.dirname(r));if(o===n||o===M.parse(o).root)return;let s;try{s=le.statSync(o,{bigint:!0})}catch(c){if(c.code==="ENOENT")return;throw c}if(pe(e,s))throw new Error(Me(t,r,i));return Zt(t,e,o,i)}function pe(t,e){return e.ino&&e.dev&&e.ino===t.ino&&e.dev===t.dev}function ut(t,e){let r=M.resolve(t).split(M.sep).filter(n=>n),i=M.resolve(e).split(M.sep).filter(n=>n);return r.every((n,o)=>i[o]===n)}function Me(t,e,r){return`Cannot ${r} '${t}' to a subdirectory of itself, '${e}'.`}er.exports={checkPaths:zt(On),checkPathsSync:Dn,checkParentPaths:zt(Yt),checkParentPathsSync:Zt,isSrcSubdir:ut,areIdentical:pe}});var or=h((Zs,nr)=>{"use strict";var N=q(),de=require("path"),{mkdirs:En}=B(),{pathExists:jn}=Y(),{utimesMillis:Mn}=lt(),ye=ne();async function Tn(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 $i=Object.create;var xt=Object.defineProperty;var Xi=Object.getOwnPropertyDescriptor;var Ui=Object.getOwnPropertyNames;var Bi=Object.getPrototypeOf,Gi=Object.prototype.hasOwnProperty;var h=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Wi=(t,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Ui(e))!Gi.call(t,n)&&n!==r&&xt(t,n,{get:()=>e[n],enumerable:!(i=Xi(e,n))||i.enumerable});return t};var Ye=(t,e,r)=>(r=t!=null?$i(Bi(t)):{},Wi(e||!t||!t.__esModule?xt(r,"default",{value:t,enumerable:!0}):r,t));var F=h(et=>{"use strict";et.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})};et.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 Et=h((Bs,kt)=>{var K=require("constants"),Hi=process.cwd,ke=null,Qi=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){return ke||(ke=Hi.call(process)),ke};try{process.cwd()}catch{}typeof process.chdir=="function"&&(tt=process.chdir,process.chdir=function(t){ke=null,tt.call(process,t)},Object.setPrototypeOf&&Object.setPrototypeOf(process.chdir,tt));var tt;kt.exports=Yi;function Yi(t){K.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=s(t.chownSync),t.fchownSync=s(t.fchownSync),t.lchownSync=s(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(a,p,f){f&&process.nextTick(f)},t.lchmodSync=function(){}),t.chown&&!t.lchown&&(t.lchown=function(a,p,f,m){m&&process.nextTick(m)},t.lchownSync=function(){}),Qi==="win32"&&(t.rename=typeof t.rename!="function"?t.rename:function(a){function p(f,m,d){var S=Date.now(),w=0;a(f,m,function L(_){if(_&&(_.code==="EACCES"||_.code==="EPERM"||_.code==="EBUSY")&&Date.now()-S<6e4){setTimeout(function(){t.stat(m,function(A,pe){A&&A.code==="ENOENT"?a(f,m,L):d(_)})},w),w<100&&(w+=10);return}d&&d(_)})}return Object.setPrototypeOf&&Object.setPrototypeOf(p,a),p}(t.rename)),t.read=typeof t.read!="function"?t.read:function(a){function p(f,m,d,S,w,L){var _;if(L&&typeof L=="function"){var A=0;_=function(pe,wt,bt){if(pe&&pe.code==="EAGAIN"&&A<10)return A++,a.call(t,f,m,d,S,w,_);L.apply(this,arguments)}}return a.call(t,f,m,d,S,w,_)}return Object.setPrototypeOf&&Object.setPrototypeOf(p,a),p}(t.read),t.readSync=typeof t.readSync!="function"?t.readSync:function(a){return function(p,f,m,d,S){for(var w=0;;)try{return a.call(t,p,f,m,d,S)}catch(L){if(L.code==="EAGAIN"&&w<10){w++;continue}throw L}}}(t.readSync);function e(a){a.lchmod=function(p,f,m){a.open(p,K.O_WRONLY|K.O_SYMLINK,f,function(d,S){if(d){m&&m(d);return}a.fchmod(S,f,function(w){a.close(S,function(L){m&&m(w||L)})})})},a.lchmodSync=function(p,f){var m=a.openSync(p,K.O_WRONLY|K.O_SYMLINK,f),d=!0,S;try{S=a.fchmodSync(m,f),d=!1}finally{if(d)try{a.closeSync(m)}catch{}else a.closeSync(m)}return S}}function r(a){K.hasOwnProperty("O_SYMLINK")&&a.futimes?(a.lutimes=function(p,f,m,d){a.open(p,K.O_SYMLINK,function(S,w){if(S){d&&d(S);return}a.futimes(w,f,m,function(L){a.close(w,function(_){d&&d(L||_)})})})},a.lutimesSync=function(p,f,m){var d=a.openSync(p,K.O_SYMLINK),S,w=!0;try{S=a.futimesSync(d,f,m),w=!1}finally{if(w)try{a.closeSync(d)}catch{}else a.closeSync(d)}return S}):a.futimes&&(a.lutimes=function(p,f,m,d){d&&process.nextTick(d)},a.lutimesSync=function(){})}function i(a){return a&&function(p,f,m){return a.call(t,p,f,function(d){l(d)&&(d=null),m&&m.apply(this,arguments)})}}function n(a){return a&&function(p,f){try{return a.call(t,p,f)}catch(m){if(!l(m))throw m}}}function o(a){return a&&function(p,f,m,d){return a.call(t,p,f,m,function(S){l(S)&&(S=null),d&&d.apply(this,arguments)})}}function s(a){return a&&function(p,f,m){try{return a.call(t,p,f,m)}catch(d){if(!l(d))throw d}}}function c(a){return a&&function(p,f,m){typeof f=="function"&&(m=f,f=null);function d(S,w){w&&(w.uid<0&&(w.uid+=4294967296),w.gid<0&&(w.gid+=4294967296)),m&&m.apply(this,arguments)}return f?a.call(t,p,f,d):a.call(t,p,d)}}function u(a){return a&&function(p,f){var m=f?a.call(t,p,f):a.call(t,p);return m&&(m.uid<0&&(m.uid+=4294967296),m.gid<0&&(m.gid+=4294967296)),m}}function l(a){if(!a||a.code==="ENOSYS")return!0;var p=!process.getuid||process.getuid()!==0;return!!(p&&(a.code==="EINVAL"||a.code==="EPERM"))}}});var jt=h((Gs,Ft)=>{var Ot=require("stream").Stream;Ft.exports=Ki;function Ki(t){return{ReadStream:e,WriteStream:r};function e(i,n){if(!(this instanceof e))return new e(i,n);Ot.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 s=Object.keys(n),c=0,u=s.length;c<u;c++){var l=s[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(a,p){if(a){o.emit("error",a),o.readable=!1;return}o.fd=p,o.emit("open",p),o._read()})}function r(i,n){if(!(this instanceof r))return new r(i,n);Ot.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),s=0,c=o.length;s<c;s++){var u=o[s];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 Tt=h((Ws,Dt)=>{"use strict";Dt.exports=Zi;var zi=Object.getPrototypeOf||function(t){return t.__proto__};function Zi(t){if(t===null||typeof t!="object")return t;if(t instanceof Object)var e={__proto__:zi(t)};else var e=Object.create(null);return Object.getOwnPropertyNames(t).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}});var ce=h((Js,nt)=>{var k=require("fs"),en=Et(),tn=jt(),rn=Tt(),Ee=require("util"),I,Fe;typeof Symbol=="function"&&typeof Symbol.for=="function"?(I=Symbol.for("graceful-fs.queue"),Fe=Symbol.for("graceful-fs.previous")):(I="___graceful-fs.queue",Fe="___graceful-fs.previous");function nn(){}function Ct(t,e){Object.defineProperty(t,I,{get:function(){return e}})}var ie=nn;Ee.debuglog?ie=Ee.debuglog("gfs4"):/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&(ie=function(){var t=Ee.format.apply(Ee,arguments);t="GFS4: "+t.split(/\n/).join(`
|
|
3
|
+
GFS4: `),console.error(t)});k[I]||(Mt=global[I]||[],Ct(k,Mt),k.close=function(t){function e(r,i){return t.call(k,r,function(n){n||It(),typeof i=="function"&&i.apply(this,arguments)})}return Object.defineProperty(e,Fe,{value:t}),e}(k.close),k.closeSync=function(t){function e(r){t.apply(k,arguments),It()}return Object.defineProperty(e,Fe,{value:t}),e}(k.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&process.on("exit",function(){ie(k[I]),require("assert").equal(k[I].length,0)}));var Mt;global[I]||Ct(global,k[I]);nt.exports=rt(rn(k));process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!k.__patched&&(nt.exports=rt(k),k.__patched=!0);function rt(t){en(t),t.gracefulify=rt,t.createReadStream=wt,t.createWriteStream=bt;var e=t.readFile;t.readFile=r;function r(y,v,g){return typeof v=="function"&&(g=v,v=null),D(y,v,g);function D(T,O,P,E){return e(T,O,function(b){b&&(b.code==="EMFILE"||b.code==="ENFILE")?ae([D,[T,O,P],b,E||Date.now(),Date.now()]):typeof P=="function"&&P.apply(this,arguments)})}}var i=t.writeFile;t.writeFile=n;function n(y,v,g,D){return typeof g=="function"&&(D=g,g=null),T(y,v,g,D);function T(O,P,E,b,M){return i(O,P,E,function(x){x&&(x.code==="EMFILE"||x.code==="ENFILE")?ae([T,[O,P,E,b],x,M||Date.now(),Date.now()]):typeof b=="function"&&b.apply(this,arguments)})}}var o=t.appendFile;o&&(t.appendFile=s);function s(y,v,g,D){return typeof g=="function"&&(D=g,g=null),T(y,v,g,D);function T(O,P,E,b,M){return o(O,P,E,function(x){x&&(x.code==="EMFILE"||x.code==="ENFILE")?ae([T,[O,P,E,b],x,M||Date.now(),Date.now()]):typeof b=="function"&&b.apply(this,arguments)})}}var c=t.copyFile;c&&(t.copyFile=u);function u(y,v,g,D){return typeof g=="function"&&(D=g,g=0),T(y,v,g,D);function T(O,P,E,b,M){return c(O,P,E,function(x){x&&(x.code==="EMFILE"||x.code==="ENFILE")?ae([T,[O,P,E,b],x,M||Date.now(),Date.now()]):typeof b=="function"&&b.apply(this,arguments)})}}var l=t.readdir;t.readdir=p;var a=/^v[0-5]\./;function p(y,v,g){typeof v=="function"&&(g=v,v=null);var D=a.test(process.version)?function(P,E,b,M){return l(P,T(P,E,b,M))}:function(P,E,b,M){return l(P,E,T(P,E,b,M))};return D(y,v,g);function T(O,P,E,b){return function(M,x){M&&(M.code==="EMFILE"||M.code==="ENFILE")?ae([D,[O,P,E],M,b||Date.now(),Date.now()]):(x&&x.sort&&x.sort(),typeof E=="function"&&E.call(this,M,x))}}}if(process.version.substr(0,4)==="v0.8"){var f=tn(t);L=f.ReadStream,A=f.WriteStream}var m=t.ReadStream;m&&(L.prototype=Object.create(m.prototype),L.prototype.open=_);var d=t.WriteStream;d&&(A.prototype=Object.create(d.prototype),A.prototype.open=pe),Object.defineProperty(t,"ReadStream",{get:function(){return L},set:function(y){L=y},enumerable:!0,configurable:!0}),Object.defineProperty(t,"WriteStream",{get:function(){return A},set:function(y){A=y},enumerable:!0,configurable:!0});var S=L;Object.defineProperty(t,"FileReadStream",{get:function(){return S},set:function(y){S=y},enumerable:!0,configurable:!0});var w=A;Object.defineProperty(t,"FileWriteStream",{get:function(){return w},set:function(y){w=y},enumerable:!0,configurable:!0});function L(y,v){return this instanceof L?(m.apply(this,arguments),this):L.apply(Object.create(L.prototype),arguments)}function _(){var y=this;Qe(y.path,y.flags,y.mode,function(v,g){v?(y.autoClose&&y.destroy(),y.emit("error",v)):(y.fd=g,y.emit("open",g),y.read())})}function A(y,v){return this instanceof A?(d.apply(this,arguments),this):A.apply(Object.create(A.prototype),arguments)}function pe(){var y=this;Qe(y.path,y.flags,y.mode,function(v,g){v?(y.destroy(),y.emit("error",v)):(y.fd=g,y.emit("open",g))})}function wt(y,v){return new t.ReadStream(y,v)}function bt(y,v){return new t.WriteStream(y,v)}var _i=t.open;t.open=Qe;function Qe(y,v,g,D){return typeof g=="function"&&(D=g,g=null),T(y,v,g,D);function T(O,P,E,b,M){return _i(O,P,E,function(x,Is){x&&(x.code==="EMFILE"||x.code==="ENFILE")?ae([T,[O,P,E,b],x,M||Date.now(),Date.now()]):typeof b=="function"&&b.apply(this,arguments)})}}return t}function ae(t){ie("ENQUEUE",t[0].name,t[1]),k[I].push(t),it()}var Oe;function It(){for(var t=Date.now(),e=0;e<k[I].length;++e)k[I][e].length>2&&(k[I][e][3]=t,k[I][e][4]=t);it()}function it(){if(clearTimeout(Oe),Oe=void 0,k[I].length!==0){var t=k[I].shift(),e=t[0],r=t[1],i=t[2],n=t[3],o=t[4];if(n===void 0)ie("RETRY",e.name,r),e.apply(null,r);else if(Date.now()-n>=6e4){ie("TIMEOUT",e.name,r);var s=r.pop();typeof s=="function"&&s.call(null,i)}else{var c=Date.now()-o,u=Math.max(o-n,1),l=Math.min(u*1.2,100);c>=l?(ie("RETRY",e.name,r),e.apply(null,r.concat([n]))):k[I].push(t)}Oe===void 0&&(Oe=setTimeout(it,0))}}});var R=h(H=>{"use strict";var At=F().fromCallback,N=ce(),on=["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 N[t]=="function");Object.assign(H,N);on.forEach(t=>{H[t]=At(N[t])});H.exists=function(t,e){return typeof e=="function"?N.exists(t,e):new Promise(r=>N.exists(t,r))};H.read=function(t,e,r,i,n,o){return typeof o=="function"?N.read(t,e,r,i,n,o):new Promise((s,c)=>{N.read(t,e,r,i,n,(u,l,a)=>{if(u)return c(u);s({bytesRead:l,buffer:a})})})};H.write=function(t,e,...r){return typeof r[r.length-1]=="function"?N.write(t,e,...r):new Promise((i,n)=>{N.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"?N.readv(t,e,...r):new Promise((i,n)=>{N.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"?N.writev(t,e,...r):new Promise((i,n)=>{N.writev(t,e,...r,(o,s,c)=>{if(o)return n(o);i({bytesWritten:s,buffers:c})})})};typeof N.realpath.native=="function"?H.realpath.native=At(N.realpath.native):process.emitWarning("fs.realpath.native is not a function. Is fs being monkey-patched?","Warning","fs-extra-WARN0003")});var Rt=h((Qs,Nt)=>{"use strict";var sn=require("path");Nt.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 $t=h((Ys,ot)=>{"use strict";var Vt=R(),{checkPath:qt}=Rt(),_t=t=>{let e={mode:511};return typeof t=="number"?t:{...e,...t}.mode};ot.exports.makeDir=async(t,e)=>(qt(t),Vt.mkdir(t,{mode:_t(e),recursive:!0}));ot.exports.makeDirSync=(t,e)=>(qt(t),Vt.mkdirSync(t,{mode:_t(e),recursive:!0}))});var X=h((Ks,Xt)=>{"use strict";var an=F().fromPromise,{makeDir:cn,makeDirSync:st}=$t(),at=an(cn);Xt.exports={mkdirs:at,mkdirsSync:st,mkdirp:at,mkdirpSync:st,ensureDir:at,ensureDirSync:st}});var z=h((zs,Bt)=>{"use strict";var ln=F().fromPromise,Ut=R();function un(t){return Ut.access(t).then(()=>!0).catch(()=>!1)}Bt.exports={pathExists:ln(un),pathExistsSync:Ut.existsSync}});var ct=h((Zs,Gt)=>{"use strict";var le=R(),fn=F().fromPromise;async function mn(t,e,r){let i=await le.open(t,"r+"),n=null;try{await le.futimes(i,e,r)}finally{try{await le.close(i)}catch(o){n=o}}if(n)throw n}function pn(t,e,r){let i=le.openSync(t,"r+");return le.futimesSync(i,e,r),le.closeSync(i)}Gt.exports={utimesMillis:fn(mn),utimesMillisSync:pn}});var ne=h((ea,Qt)=>{"use strict";var ue=R(),j=require("path"),Wt=F().fromPromise;function dn(t,e,r){let i=r.dereference?n=>ue.stat(n,{bigint:!0}):n=>ue.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 yn(t,e,r){let i,n=r.dereference?s=>ue.statSync(s,{bigint:!0}):s=>ue.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 hn(t,e,r,i){let{srcStat:n,destStat:o}=await dn(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()&<(t,e))throw new Error(je(t,e,r));return{srcStat:n,destStat:o}}function Sn(t,e,r,i){let{srcStat:n,destStat:o}=yn(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()&<(t,e))throw new Error(je(t,e,r));return{srcStat:n,destStat:o}}async function Jt(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 ue.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 Jt(t,e,o,i)}function Ht(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=ue.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 Ht(t,e,o,i)}function ye(t,e){return e.ino&&e.dev&&e.ino===t.ino&&e.dev===t.dev}function lt(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}'.`}Qt.exports={checkPaths:Wt(hn),checkPathsSync:Sn,checkParentPaths:Wt(Jt),checkParentPathsSync:Ht,isSrcSubdir:lt,areIdentical:ye}});var er=h((ta,Zt)=>{"use strict";var C=R(),he=require("path"),{mkdirs:gn}=X(),{pathExists:vn}=z(),{utimesMillis:wn}=ct(),Se=ne();async function bn(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
|
|
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 Kt(t,e,r))return;let s=he.dirname(e);await vn(s)||await gn(s),await zt(n,t,e,r)}async function Kt(t,e,r){return r.filter?r.filter(t,e):!0}async function zt(t,e,r,i){let o=await(i.dereference?C.stat:C.lstat)(e);if(o.isDirectory())return kn(o,t,e,r,i);if(o.isFile()||o.isCharacterDevice()||o.isBlockDevice())return xn(o,t,e,r,i);if(o.isSymbolicLink())return En(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 xn(t,e,r,i,n){if(!e)return Yt(t,r,i,n);if(n.overwrite)return await C.unlink(i),Yt(t,r,i,n);if(n.errorOnExist)throw new Error(`'${i}' already exists`)}async function Yt(t,e,r,i){if(await C.copyFile(e,r),i.preserveTimestamps){Ln(t.mode)&&await Pn(r,t.mode);let n=await C.stat(e);await wn(r,n.atime,n.mtime)}return C.chmod(r,t.mode)}function Ln(t){return(t&128)===0}function Pn(t,e){return C.chmod(t,e|128)}async function kn(t,e,r,i,n){e||await C.mkdir(i);let o=await C.readdir(r);await Promise.all(o.map(async s=>{let c=he.join(r,s),u=he.join(i,s);if(!await Kt(c,u,n))return;let{destStat:a}=await Se.checkPaths(c,u,"copy",n);return zt(a,c,u,n)})),e||await C.chmod(i,t.mode)}async function En(t,e,r,i){let n=await C.readlink(e);if(i.dereference&&(n=he.resolve(process.cwd(),n)),!t)return C.symlink(n,r);let o=null;try{o=await C.readlink(r)}catch(s){if(s.code==="EINVAL"||s.code==="UNKNOWN")return C.symlink(n,r);throw s}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 C.unlink(r),C.symlink(n,r)}Zt.exports=bn});var or=h((ra,nr)=>{"use strict";var V=ce(),ge=require("path"),On=X().mkdirsSync,Fn=ct().utimesMillisSync,ve=ne();function jn(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}=
|
|
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 Eo(t){return Buffer.isBuffer(t)&&(t=t.toString("utf8")),t.replace(/^\uFEFF/,"")}Hr.exports={stringify:Do,stripBom:Eo}});var Yr=h((fa,zr)=>{var ue;try{ue=ae()}catch{ue=require("fs")}var Ie=j(),{stringify:Qr,stripBom:Kr}=Ce();async function jo(t,e={}){typeof e=="string"&&(e={encoding:e});let r=e.fs||ue,i="throws"in e?e.throws:!0,n=await Ie.fromCallback(r.readFile)(t,e);n=Kr(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 Mo=Ie.fromPromise(jo);function To(t,e={}){typeof e=="string"&&(e={encoding:e});let r=e.fs||ue,i="throws"in e?e.throws:!0;try{let n=r.readFileSync(t,e);return n=Kr(n),JSON.parse(n,e.reviver)}catch(n){if(i)throw n.message=`${t}: ${n.message}`,n;return null}}async function Co(t,e,r={}){let i=r.fs||ue,n=Qr(e,r);await Ie.fromCallback(i.writeFile)(t,n,r)}var Io=Ie.fromPromise(Co);function Ao(t,e,r={}){let i=r.fs||ue,n=Qr(e,r);return i.writeFileSync(t,n,r)}var No={readFile:Mo,readFileSync:To,writeFile:Io,writeFileSync:Ao};zr.exports=No});var ei=h((ma,Zr)=>{"use strict";var Ae=Yr();Zr.exports={readJson:Ae.readFile,readJsonSync:Ae.readFileSync,writeJson:Ae.writeFile,writeJsonSync:Ae.writeFileSync}});var Ne=h((pa,ii)=>{"use strict";var Ro=j().fromPromise,mt=q(),ti=require("path"),ri=B(),qo=Y().pathExists;async function _o(t,e,r="utf-8"){let i=ti.dirname(t);return await qo(i)||await ri.mkdirs(i),mt.writeFile(t,e,r)}function Vo(t,...e){let r=ti.dirname(t);mt.existsSync(r)||ri.mkdirsSync(r),mt.writeFileSync(t,...e)}ii.exports={outputFile:Ro(_o),outputFileSync:Vo}});var oi=h((da,ni)=>{"use strict";var{stringify:$o}=Ce(),{outputFile:Xo}=Ne();async function Bo(t,e,r={}){let i=$o(e,r);await Xo(t,i,r)}ni.exports=Bo});var ai=h((ya,si)=>{"use strict";var{stringify:Go}=Ce(),{outputFileSync:Jo}=Ne();function Uo(t,e,r){let i=Go(e,r);Jo(t,i,r)}si.exports=Uo});var li=h((ha,ci)=>{"use strict";var Wo=j().fromPromise,V=ei();V.outputJson=Wo(oi());V.outputJsonSync=ai();V.outputJSON=V.outputJson;V.outputJSONSync=V.outputJsonSync;V.writeJSON=V.writeJson;V.writeJSONSync=V.writeJsonSync;V.readJSON=V.readJson;V.readJSONSync=V.readJsonSync;ci.exports=V});var di=h((Sa,pi)=>{"use strict";var Ho=q(),ui=require("path"),{copy:Qo}=Te(),{remove:mi}=ge(),{mkdirp:Ko}=B(),{pathExists:zo}=Y(),fi=ne();async function Yo(t,e,r={}){let i=r.overwrite||r.clobber||!1,{srcStat:n,isChangingCase:o=!1}=await fi.checkPaths(t,e,"move",r);await fi.checkParentPaths(t,n,e,"move");let s=ui.dirname(e);return ui.parse(s).root!==s&&await Ko(s),Zo(t,e,i,o)}async function Zo(t,e,r,i){if(!i){if(r)await mi(e);else if(await zo(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}),mi(t)}pi.exports=Yo});var vi=h((ga,gi)=>{"use strict";var hi=ae(),dt=require("path"),ts=Te().copySync,Si=ge().removeSync,rs=B().mkdirpSync,yi=ne();function is(t,e,r){r=r||{};let i=r.overwrite||r.clobber||!1,{srcStat:n,isChangingCase:o=!1}=yi.checkPathsSync(t,e,"move",r);return yi.checkParentPathsSync(t,n,e,"move"),ns(e)||rs(dt.dirname(e)),os(t,e,i,o)}function ns(t){let e=dt.dirname(t);return dt.parse(e).root===e}function os(t,e,r,i){if(i)return pt(t,e,r);if(r)return Si(e),pt(t,e,r);if(hi.existsSync(e))throw new Error("dest already exists.");return pt(t,e,r)}function pt(t,e,r){try{hi.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}),Si(t)}gi.exports=is});var bi=h((va,wi)=>{"use strict";var as=j().fromPromise;wi.exports={move:as(di()),moveSync:vi()}});var Li=h((wa,xi)=>{"use strict";xi.exports={...q(),...Te(),...br(),...Wr(),...li(),...B(),...bi(),...Ne(),...Y(),...ge()}});var Pi=h(Re=>{"use strict";Object.defineProperty(Re,"__esModule",{value:!0});Re.EXTENSIONS_LANGUAGES=void 0;Re.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 we=h(yt=>{"use strict";Object.defineProperty(yt,"__esModule",{value:!0});yt.setOptionValues=cs;function cs(t,e){for(let r of Object.keys(e))t[r]!==void 0&&(e[r]=t[r]);return e}});var Fi=h(qe=>{"use strict";Object.defineProperty(qe,"__esModule",{value:!0});qe.SarifBuilder=void 0;var ls=require("path"),ki=Li(),us=Pi(),fs=we(),ht=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();ki.writeFileSync(e,r,"utf8")}async generateSarifFile(e){let r=this.buildSarifJsonString();await ki.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 f of l.locations||[])if(!((i=(r=f?.physicalLocation)===null||r===void 0?void 0:r.artifactLocation)===null||i===void 0)&&i.uri&&e.artifacts.filter(a=>{var u;return((u=a?.location)===null||u===void 0?void 0:u.uri)===f.physicalLocation.artifactLocation.uri}).length===0){let a=ls.extname(f.physicalLocation.artifactLocation.uri).replace(".",""),u=us.EXTENSIONS_LANGUAGES[a]||"unknown";e.artifacts.push({sourceLanguage:u,location:{uri:f.physicalLocation.artifactLocation.uri}})}let s=e.artifacts.map(l=>{var f;return(f=l?.location)===null||f===void 0?void 0:f.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(f=>{var a,u;let p=(u=(a=f?.physicalLocation)===null||a===void 0?void 0:a.artifactLocation)===null||u===void 0?void 0:u.uri;return p&&s.indexOf(p)>-1&&(f.physicalLocation.artifactLocation.index=s.indexOf(p)),f})),l)),e}};qe.SarifBuilder=ht});var Oi=h(_e=>{"use strict";Object.defineProperty(_e,"__esModule",{value:!0});_e.SarifResultBuilder=void 0;var ms=we(),St=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={})}};_e.SarifResultBuilder=St});var Di=h(Ve=>{"use strict";Object.defineProperty(Ve,"__esModule",{value:!0});Ve.SarifRuleBuilder=void 0;var ps=we(),gt=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,ps.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=gt});var Ei=h($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});$e.SarifRunBuilder=void 0;var ds=we(),vt=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,ds.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=vt});var ji=h(U=>{"use strict";Object.defineProperty(U,"__esModule",{value:!0});U.SarifResultBuilder=U.SarifRuleBuilder=U.SarifRunBuilder=U.SarifBuilder=void 0;var ys=Fi();Object.defineProperty(U,"SarifBuilder",{enumerable:!0,get:function(){return ys.SarifBuilder}});var hs=Oi();Object.defineProperty(U,"SarifResultBuilder",{enumerable:!0,get:function(){return hs.SarifResultBuilder}});var Ss=Di();Object.defineProperty(U,"SarifRuleBuilder",{enumerable:!0,get:function(){return Ss.SarifRuleBuilder}});var gs=Ei();Object.defineProperty(U,"SarifRunBuilder",{enumerable:!0,get:function(){return gs.SarifRunBuilder}})});var Ti=h((Da,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 We=require("zx"),oe=require("fs/promises");var ze={UNKNOWN:0,LOW:1,MEDIUM:2,HIGH:3,CRITICAL:4};var Le=class{allById=new Map;getAllVulnerabilitiesSortedBySeverity(){let e=Array.from(this.allById.values());return e.sort((r,i)=>{let n=xt(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=Ji(o.severity,e.severity),o.scannerSeverity[r]=e.severity,o.detectedBy=Ye(o.detectedBy,r),o.components=Ye(o.components,e.components[0]),o.refs=Ye(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(i.id);continue}i.vexStatement=n}return{unmatchedVulnerabilities:r}}};function Ji(t,e){return xt(t,e)>0?t:e}function xt(t,e){return ze[t]-ze[e]}function Ye(t,e){return e?Array.from(new Set([...t,e]).values()):t}var Pe=Ke(require("path"));var $=require("fs/promises"),Ze=require("path");async function G(t){if(await re(t))return JSON.parse(await(0,$.readFile)(t,{encoding:"utf-8"}))}function W(t){return t&&t.replace(/\?.*$/,"")}async function re(t){try{return await(0,$.access)(t,$.constants.F_OK),!0}catch{return!1}}async function et(t){let e=(0,Ze.resolve)(t),r=await(0,$.readdir)(e,{withFileTypes:!0});for(let i of r){let n=(0,Ze.resolve)(i.parentPath,i.name);i.isDirectory()?await et(n):await(0,$.rm)(n)}await(0,$.rmdir)(e)}async function Lt(t){let e="https://repository.conterra.de/repository/maven-mirror-ct",r=K(t.workingDir,"input/vex"),i=K(t.workingDir,"output"),n=K(t.workingDir,"cache"),o=["grype","trivy","ossindex"],s=K(t.workingDir,"vuln-scan-conf.json"),c=await G(s);if(!c)throw new Error(`Missing project configuration file '${s}'`);return{failOnNewVulnerabilities:!1,createSubDirsForProject:c.createSubDirsForProject??!0,mavenRepo:c.mavenRepo??e,vexDir:K(t.workingDir,c.vexDir)??r,outDir:K(t.workingDir,c.outDir)??i,cacheDir:K(t.workingDir,c.cacheDir)??n,scanners:c.scanners??o,projects:(c.projects??[]).map(l=>{let f=l;return f.sbomFile?{...f,sbomFile:K(t.workingDir,f.sbomFile)}:l})}}function K(t,e){if(e)return Pe.default.isAbsolute(e)?e:(0,Pe.resolve)(t,e)}var Pt=require("zx");var ke=require("path");async function kt(t,e,r,i){console.log(" with Grype ...");let n=(0,ke.dirname)(e),o=(0,ke.basename)(e),s=await Pt.$`docker run --rm -v '${t}:/.cache' -v '${n}:/tmp/output' -v '${r.sbomFile}:/tmp/input.json' anchore/grype:latest sbom:/tmp/input.json -o json --file '/tmp/output/${o}' --by-cve --quiet`;s.stdout&&console.log(` Scan log: ${s.stdout}`),s.stderr&&console.log(` Scan error: ${s.stderr}`),console.log(` Grype output file: ${e}`);let c=await G(e);Ui(i,c)}function Ui(t,e){if(e)for(let r of e.matches){let i=Wi(r);t.addVulnerability(i,"grype")}}function Wi(t){let e=t.vulnerability,r=e.id,i=W(t.artifact.purl),n=W(e.dataSource),o=Hi(e.severity);return{id:r,severity:o,scannerSeverity:{grype:o},title:"",description:e.description,components:[i],detectedBy:["grype"],refs:[n]}}function Hi(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 Ft=require("zx");var Fe=require("path");async function Ot(t,e,r,i,n){let o=(0,Fe.dirname)(e),s=(0,Fe.basename)(e),c=[];i&&(c.push("-e"),c.push(`GITHUB_TOKEN=${i}`));let l=[];l.push("--db-repository"),l.push("public.ecr.aws/aquasecurity/trivy-db,aquasec/trivy-db,ghcr.io/aquasecurity/trivy-db"),console.log(` with Trivy...${i?" (with GitHub token)":""}`);let f=await Ft.$`docker run --rm -v '${t}:/.cache' -v '${o}:/tmp/output' -v '${r.sbomFile}:/tmp/input.json' ${c} aquasec/trivy:latest sbom ${l} --cache-dir '/.cache' --format json --output '/tmp/output/${s}' --quiet /tmp/input.json`;f.stdout&&console.log(` Scan log: ${f.stdout}`),f.stderr&&console.log(` Scan error: ${f.stderr}`),console.log(` Trivy output file: ${e}`);let a=await G(e);Qi(n,a)}function Qi(t,e){if(e){for(let r of e.Results)if(r.Vulnerabilities)for(let i of r.Vulnerabilities){let n=Ki(i);t.addVulnerability(n,"trivy")}}}function Ki(t){let e=t.VulnerabilityID,r=W(t.PkgIdentifier.PURL),i=W(t.PrimaryURL),n=zi(t.Severity);return{id:e,severity:n,scannerSeverity:{trivy:n},title:t.Title,description:t.Description,components:[r],detectedBy:["trivy"],refs:[i]}}function zi(t){switch(t){case"UNKNOWN":case"LOW":case"MEDIUM":case"HIGH":case"CRITICAL":return t;default:return"UNKNOWN"}}var Dt=require("fs/promises");async function Et(t,e,r,i){console.log(" with Sonatype OSS Index ...");let n={},o="";r.user&&r.token&&(n.Authorization=`Basic ${Buffer.from(`${r.user}:${r.token}`).toString("base64")}`,o="/authorized");let s=`https://ossindex.sonatype.org/api/v3${o}/component-report`,c=await Yi(e.sbomFile),l=new Set(c.map(u=>u.purl.replace(/\?.*$/,"")));on(l);let f=Array.from(l),a=[];for(let u=0;u<f.length;u+=128){let p=JSON.stringify({coordinates:f.slice(u,u+128)}),d=await(await fetch(s,{method:"POST",headers:{...n,"Content-Type":"application/vnd.ossindex.component-report-request.v1+json"},body:p})).json();Array.isArray(d)?a.push(...d.filter(S=>S.vulnerabilities.length>0)):console.log(` Sonatype OssIndex Error: ${d.code} - ${d.message}`)}await(0,Dt.writeFile)(t,JSON.stringify(a,null,2)),console.log(` Sonatype OssIndex output file: ${t}`),tn(i,a)}async function Yi(t){return(await G(t)).components.filter(r=>Zi(r)&&!en(r))}function Zi(t){return!!t.purl}function en(t){return t.group?t.group.startsWith("de.conterra")||t.group.startsWith("org.n52.security"):!1}function tn(t,e){if(e)for(let r of e)for(let i of r.vulnerabilities){let n=rn(i,r.coordinates);t.addVulnerability(n,"ossindex")}}function rn(t,e){let r=t.cve||t.id,i=W(e),n=W(t.reference),o=nn(t.cvssScore);return{id:r,severity:o,scannerSeverity:{ossindex:o},title:t.title,description:t.description,components:[i],detectedBy:["ossindex"],refs:n?[n]:[]}}function nn(t){return t===0?"UNKNOWN":t<4?"LOW":t<7?"MEDIUM":t<9?"HIGH":"CRITICAL"}function on(t){let e=Array.from(t);for(let r of e){let i=r.replace(/(@[^-]+)-.*$/g,"$1");t.add(i)}}var te=Ke(ji()),Ci=Ke(Ti());function Ii(t,e){let r=new te.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 s=xs(o.severity),c=o.id,l=bs(o.refs),f=new te.SarifRuleBuilder().initSimple({ruleId:c,shortDescriptionText:o.title,fullDescriptionText:o.description,helpUri:l}),a=o.vexStatement,u,p="new",m="";a&&(s="none",p="updated",m=`--- INVESTIGATED (${a.status}) --- `,a.status==="under_investigation"&&(m="--- UNDER INVESTIGATION --- ")),Object.assign(f.rule,{name:`${m}[${o.severity}] - ${o.title.replace(`[${c}]`,"")}`,messageStrings:{default:{text:o.description,markdown:Ls(o,l,m)}},properties:{severity:o.severity,scanners:o.scannerSeverity,links:o.refs,tags:["cve","vulnerability","security",`severity_${o.severity.toLowerCase()}`]}}),r.addRule(f);for(let d of o.components){let S=new te.SarifResultBuilder().initSimple({ruleId:c,level:s,messageText:`${c} [${o.severity}] - ${d}`});S.result.message.id="default",S.result.locations=[{logicalLocations:[{fullyQualifiedName:d}]}],S.result.baselineState=p,S.result.suppressions=u,r.addResult(S)}}let n=new te.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"note";default:return"note"}}function Ls(t,e,r){let i=t.vexStatement,n=i?`
|
|
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 V.existsSync(o)||On(o),tr(n,t,e,r)}function tr(t,e,r,i){let o=(i.dereference?V.statSync:V.lstatSync)(e);if(o.isDirectory())return Nn(o,t,e,r,i);if(o.isFile()||o.isCharacterDevice()||o.isBlockDevice())return Dn(o,t,e,r,i);if(o.isSymbolicLink())return qn(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 Dn(t,e,r,i,n){return e?Tn(t,r,i,n):rr(t,r,i,n)}function Tn(t,e,r,i){if(i.overwrite)return V.unlinkSync(r),rr(t,e,r,i);if(i.errorOnExist)throw new Error(`'${r}' already exists`)}function rr(t,e,r,i){return V.copyFileSync(e,r),i.preserveTimestamps&&Mn(t.mode,e,r),ut(r,t.mode)}function Mn(t,e,r){return In(t)&&Cn(r,t),An(e,r)}function In(t){return(t&128)===0}function Cn(t,e){return ut(t,e|128)}function ut(t,e){return V.chmodSync(t,e)}function An(t,e){let r=V.statSync(t);return Fn(e,r.atime,r.mtime)}function Nn(t,e,r,i,n){return e?ir(r,i,n):Rn(t.mode,r,i,n)}function Rn(t,e,r,i){return V.mkdirSync(r),ir(e,r,i),ut(r,t)}function ir(t,e,r){V.readdirSync(t).forEach(i=>Vn(i,t,e,r))}function Vn(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:s}=ve.checkPathsSync(n,o,"copy",i);return tr(s,n,o,i)}function qn(t,e,r,i){let n=V.readlinkSync(e);if(i.dereference&&(n=ge.resolve(process.cwd(),n)),t){let o;try{o=V.readlinkSync(r)}catch(s){if(s.code==="EINVAL"||s.code==="UNKNOWN")return V.symlinkSync(n,r);throw s}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 _n(n,r)}else return V.symlinkSync(n,r)}function _n(t,e){return V.unlinkSync(e),V.symlinkSync(t,e)}nr.exports=jn});var De=h((ia,sr)=>{"use strict";var $n=F().fromPromise;sr.exports={copy:$n(er()),copySync:or()}});var we=h((na,cr)=>{"use strict";var ar=ce(),Xn=F().fromCallback;function Un(t,e){ar.rm(t,{recursive:!0,force:!0},e)}function Bn(t){ar.rmSync(t,{recursive:!0,force:!0})}cr.exports={remove:Xn(Un),removeSync:Bn}});var hr=h((oa,yr)=>{"use strict";var Gn=F().fromPromise,fr=R(),mr=require("path"),pr=X(),dr=we(),lr=Gn(async function(e){let r;try{r=await fr.readdir(e)}catch{return pr.mkdirs(e)}return Promise.all(r.map(i=>dr.remove(mr.join(e,i))))});function ur(t){let e;try{e=fr.readdirSync(t)}catch{return pr.mkdirsSync(t)}e.forEach(r=>{r=mr.join(t,r),dr.removeSync(r)})}yr.exports={emptyDirSync:ur,emptydirSync:ur,emptyDir:lr,emptydir:lr}});var wr=h((sa,vr)=>{"use strict";var Wn=F().fromPromise,Sr=require("path"),Q=R(),gr=X();async function Jn(t){let e;try{e=await Q.stat(t)}catch{}if(e&&e.isFile())return;let r=Sr.dirname(t),i=null;try{i=await Q.stat(r)}catch(n){if(n.code==="ENOENT"){await gr.mkdirs(r),await Q.writeFile(t,"");return}else throw n}i.isDirectory()?await Q.writeFile(t,""):await Q.readdir(r)}function Hn(t){let e;try{e=Q.statSync(t)}catch{}if(e&&e.isFile())return;let r=Sr.dirname(t);try{Q.statSync(r).isDirectory()||Q.readdirSync(r)}catch(i){if(i&&i.code==="ENOENT")gr.mkdirsSync(r);else throw i}Q.writeFileSync(t,"")}vr.exports={createFile:Wn(Jn),createFileSync:Hn}});var kr=h((aa,Pr)=>{"use strict";var Qn=F().fromPromise,br=require("path"),Z=R(),xr=X(),{pathExists:Yn}=z(),{areIdentical:Lr}=ne();async function Kn(t,e){let r;try{r=await Z.lstat(e)}catch{}let i;try{i=await Z.lstat(t)}catch(s){throw s.message=s.message.replace("lstat","ensureLink"),s}if(r&&Lr(i,r))return;let n=br.dirname(e);await Yn(n)||await xr.mkdirs(n),await Z.link(t,e)}function zn(t,e){let r;try{r=Z.lstatSync(e)}catch{}try{let o=Z.lstatSync(t);if(r&&Lr(o,r))return}catch(o){throw o.message=o.message.replace("lstat","ensureLink"),o}let i=br.dirname(e);return Z.existsSync(i)||xr.mkdirsSync(i),Z.linkSync(t,e)}Pr.exports={createLink:Qn(Kn),createLinkSync:zn}});var Or=h((ca,Er)=>{"use strict";var ee=require("path"),be=R(),{pathExists:Zn}=z(),eo=F().fromPromise;async function to(t,e){if(ee.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=ee.dirname(e),i=ee.join(r,t);if(await Zn(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:ee.relative(r,t)}}function ro(t,e){if(ee.isAbsolute(t)){if(!be.existsSync(t))throw new Error("absolute srcpath does not exist");return{toCwd:t,toDst:t}}let r=ee.dirname(e),i=ee.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:ee.relative(r,t)}}Er.exports={symlinkPaths:eo(to),symlinkPathsSync:ro}});var Dr=h((la,jr)=>{"use strict";var Fr=R(),io=F().fromPromise;async function no(t,e){if(e)return e;let r;try{r=await Fr.lstat(t)}catch{return"file"}return r&&r.isDirectory()?"dir":"file"}function oo(t,e){if(e)return e;let r;try{r=Fr.lstatSync(t)}catch{return"file"}return r&&r.isDirectory()?"dir":"file"}jr.exports={symlinkType:io(no),symlinkTypeSync:oo}});var Cr=h((ua,Ir)=>{"use strict";var so=F().fromPromise,Tr=require("path"),B=R(),{mkdirs:ao,mkdirsSync:co}=X(),{symlinkPaths:lo,symlinkPathsSync:uo}=Or(),{symlinkType:fo,symlinkTypeSync:mo}=Dr(),{pathExists:po}=z(),{areIdentical:Mr}=ne();async function yo(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(Mr(c,u))return}let n=await lo(t,e);t=n.toDst;let o=await fo(n.toCwd,r),s=Tr.dirname(e);return await po(s)||await ao(s),B.symlink(t,e,o)}function ho(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(Mr(c,u))return}let n=uo(t,e);t=n.toDst,r=mo(n.toCwd,r);let o=Tr.dirname(e);return B.existsSync(o)||co(o),B.symlinkSync(t,e,r)}Ir.exports={createSymlink:so(yo),createSymlinkSync:ho}});var Xr=h((fa,$r)=>{"use strict";var{createFile:Ar,createFileSync:Nr}=wr(),{createLink:Rr,createLinkSync:Vr}=kr(),{createSymlink:qr,createSymlinkSync:_r}=Cr();$r.exports={createFile:Ar,createFileSync:Nr,ensureFile:Ar,ensureFileSync:Nr,createLink:Rr,createLinkSync:Vr,ensureLink:Rr,ensureLinkSync:Vr,createSymlink:qr,createSymlinkSync:_r,ensureSymlink:qr,ensureSymlinkSync:_r}});var Te=h((ma,Ur)=>{function So(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 go(t){return Buffer.isBuffer(t)&&(t=t.toString("utf8")),t.replace(/^\uFEFF/,"")}Ur.exports={stringify:So,stripBom:go}});var Jr=h((pa,Wr)=>{var fe;try{fe=ce()}catch{fe=require("fs")}var Me=F(),{stringify:Br,stripBom:Gr}=Te();async function vo(t,e={}){typeof e=="string"&&(e={encoding:e});let r=e.fs||fe,i="throws"in e?e.throws:!0,n=await Me.fromCallback(r.readFile)(t,e);n=Gr(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 wo=Me.fromPromise(vo);function bo(t,e={}){typeof e=="string"&&(e={encoding:e});let r=e.fs||fe,i="throws"in e?e.throws:!0;try{let n=r.readFileSync(t,e);return n=Gr(n),JSON.parse(n,e.reviver)}catch(n){if(i)throw n.message=`${t}: ${n.message}`,n;return null}}async function xo(t,e,r={}){let i=r.fs||fe,n=Br(e,r);await Me.fromCallback(i.writeFile)(t,n,r)}var Lo=Me.fromPromise(xo);function Po(t,e,r={}){let i=r.fs||fe,n=Br(e,r);return i.writeFileSync(t,n,r)}var ko={readFile:wo,readFileSync:bo,writeFile:Lo,writeFileSync:Po};Wr.exports=ko});var Qr=h((da,Hr)=>{"use strict";var Ie=Jr();Hr.exports={readJson:Ie.readFile,readJsonSync:Ie.readFileSync,writeJson:Ie.writeFile,writeJsonSync:Ie.writeFileSync}});var Ce=h((ya,zr)=>{"use strict";var Eo=F().fromPromise,ft=R(),Yr=require("path"),Kr=X(),Oo=z().pathExists;async function Fo(t,e,r="utf-8"){let i=Yr.dirname(t);return await Oo(i)||await Kr.mkdirs(i),ft.writeFile(t,e,r)}function jo(t,...e){let r=Yr.dirname(t);ft.existsSync(r)||Kr.mkdirsSync(r),ft.writeFileSync(t,...e)}zr.exports={outputFile:Eo(Fo),outputFileSync:jo}});var ei=h((ha,Zr)=>{"use strict";var{stringify:Do}=Te(),{outputFile:To}=Ce();async function Mo(t,e,r={}){let i=Do(e,r);await To(t,i,r)}Zr.exports=Mo});var ri=h((Sa,ti)=>{"use strict";var{stringify:Io}=Te(),{outputFileSync:Co}=Ce();function Ao(t,e,r){let i=Io(e,r);Co(t,i,r)}ti.exports=Ao});var ni=h((ga,ii)=>{"use strict";var No=F().fromPromise,q=Qr();q.outputJson=No(ei());q.outputJsonSync=ri();q.outputJSON=q.outputJson;q.outputJSONSync=q.outputJsonSync;q.writeJSON=q.writeJson;q.writeJSONSync=q.writeJsonSync;q.readJSON=q.readJson;q.readJSONSync=q.readJsonSync;ii.exports=q});var li=h((va,ci)=>{"use strict";var Ro=R(),oi=require("path"),{copy:Vo}=De(),{remove:ai}=we(),{mkdirp:qo}=X(),{pathExists:_o}=z(),si=ne();async function $o(t,e,r={}){let i=r.overwrite||r.clobber||!1,{srcStat:n,isChangingCase:o=!1}=await si.checkPaths(t,e,"move",r);await si.checkParentPaths(t,n,e,"move");let s=oi.dirname(e);return oi.parse(s).root!==s&&await qo(s),Xo(t,e,i,o)}async function Xo(t,e,r,i){if(!i){if(r)await ai(e);else if(await _o(e))throw new Error("dest already exists.")}try{await Ro.rename(t,e)}catch(n){if(n.code!=="EXDEV")throw n;await Uo(t,e,r)}}async function Uo(t,e,r){return await Vo(t,e,{overwrite:r,errorOnExist:!0,preserveTimestamps:!0}),ai(t)}ci.exports=$o});var di=h((wa,pi)=>{"use strict";var fi=ce(),pt=require("path"),Bo=De().copySync,mi=we().removeSync,Go=X().mkdirpSync,ui=ne();function Wo(t,e,r){r=r||{};let i=r.overwrite||r.clobber||!1,{srcStat:n,isChangingCase:o=!1}=ui.checkPathsSync(t,e,"move",r);return ui.checkParentPathsSync(t,n,e,"move"),Jo(e)||Go(pt.dirname(e)),Ho(t,e,i,o)}function Jo(t){let e=pt.dirname(t);return pt.parse(e).root===e}function Ho(t,e,r,i){if(i)return mt(t,e,r);if(r)return mi(e),mt(t,e,r);if(fi.existsSync(e))throw new Error("dest already exists.");return mt(t,e,r)}function mt(t,e,r){try{fi.renameSync(t,e)}catch(i){if(i.code!=="EXDEV")throw i;return Qo(t,e,r)}}function Qo(t,e,r){return Bo(t,e,{overwrite:r,errorOnExist:!0,preserveTimestamps:!0}),mi(t)}pi.exports=Wo});var hi=h((ba,yi)=>{"use strict";var Yo=F().fromPromise;yi.exports={move:Yo(li()),moveSync:di()}});var gi=h((xa,Si)=>{"use strict";Si.exports={...R(),...De(),...hr(),...Xr(),...ni(),...X(),...hi(),...Ce(),...z(),...we()}});var vi=h(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 xe=h(dt=>{"use strict";Object.defineProperty(dt,"__esModule",{value:!0});dt.setOptionValues=Ko;function Ko(t,e){for(let r of Object.keys(e))t[r]!==void 0&&(e[r]=t[r]);return e}});var bi=h(Ne=>{"use strict";Object.defineProperty(Ne,"__esModule",{value:!0});Ne.SarifBuilder=void 0;var zo=require("path"),wi=gi(),Zo=vi(),es=xe(),yt=class{constructor(e={}){this.log={$schema:"http://json.schemastore.org/sarif-2.1.0.json",version:"2.1.0",runs:[]},(0,es.setOptionValues)(e,this.log)}addRun(e){this.log.runs.push(e.run)}generateSarifFileSync(e){let r=this.buildSarifJsonString();wi.writeFileSync(e,r,"utf8")}async generateSarifFile(e){let r=this.buildSarifJsonString();await wi.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(a=>{var p;return((p=a?.location)===null||p===void 0?void 0:p.uri)===l.physicalLocation.artifactLocation.uri}).length===0){let a=zo.extname(l.physicalLocation.artifactLocation.uri).replace(".",""),p=Zo.EXTENSIONS_LANGUAGES[a]||"unknown";e.artifacts.push({sourceLanguage:p,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=(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 a,p;let f=(p=(a=l?.physicalLocation)===null||a===void 0?void 0:a.artifactLocation)===null||p===void 0?void 0:p.uri;return f&&s.indexOf(f)>-1&&(l.physicalLocation.artifactLocation.index=s.indexOf(f)),l})),u)),e}};Ne.SarifBuilder=yt});var xi=h(Re=>{"use strict";Object.defineProperty(Re,"__esModule",{value:!0});Re.SarifResultBuilder=void 0;var ts=xe(),ht=class{constructor(e={}){this.result={level:"error",message:{},ruleId:"SARIF_BUILDER_INVALID: Please send the rule Id ruleId property, or call setRuleId(ruleId)"},(0,ts.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=ht});var Li=h(Ve=>{"use strict";Object.defineProperty(Ve,"__esModule",{value:!0});Ve.SarifRuleBuilder=void 0;var rs=xe(),St=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,rs.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=St});var Pi=h(qe=>{"use strict";Object.defineProperty(qe,"__esModule",{value:!0});qe.SarifRunBuilder=void 0;var is=xe(),gt=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,is.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}};qe.SarifRunBuilder=gt});var ki=h(G=>{"use strict";Object.defineProperty(G,"__esModule",{value:!0});G.SarifResultBuilder=G.SarifRuleBuilder=G.SarifRunBuilder=G.SarifBuilder=void 0;var ns=bi();Object.defineProperty(G,"SarifBuilder",{enumerable:!0,get:function(){return ns.SarifBuilder}});var os=xi();Object.defineProperty(G,"SarifResultBuilder",{enumerable:!0,get:function(){return os.SarifResultBuilder}});var ss=Li();Object.defineProperty(G,"SarifRuleBuilder",{enumerable:!0,get:function(){return ss.SarifRuleBuilder}});var as=Pi();Object.defineProperty(G,"SarifRunBuilder",{enumerable:!0,get:function(){return as.SarifRunBuilder}})});var Oi=h((Da,Ei)=>{"use strict";var cs=/["'&<>]/;Ei.exports=ls;function ls(t){var e=""+t,r=cs.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 He=require("zx"),oe=require("fs/promises");var W={UNKNOWN:0,LOW:1,MEDIUM:2,HIGH:3,CRITICAL:4};var Le=class{allById=new Map;getAllVulnerabilitiesSortedBySeverity(){let e=Array.from(this.allById.values());return e.sort((r,i)=>{let n=Lt(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=Ji(o.severity,e.severity),o.scannerSeverity[r]=e.severity,o.detectedBy=Ke(o.detectedBy,r),o.components=Ke(o.components,e.components[0]),o.refs=Ke(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 Ji(t,e){return Lt(t,e)>0?t:e}function Lt(t,e){return W[t]-W[e]}function Ke(t,e){return e?Array.from(new Set([...t,e]).values()):t}var Pe=Ye(require("path"));var $=require("fs/promises"),ze=require("path");async function U(t){if(await re(t))return JSON.parse(await(0,$.readFile)(t,{encoding:"utf-8"}))}function J(t){return t&&t.replace(/\?.*$/,"")}async function re(t){try{return await(0,$.access)(t,$.constants.F_OK),!0}catch{return!1}}async function Ze(t){let e=(0,ze.resolve)(t),r=await(0,$.readdir)(e,{withFileTypes:!0});for(let i of r){let n=(0,ze.resolve)(i.parentPath,i.name);i.isDirectory()?await Ze(n):await(0,$.rm)(n)}await(0,$.rmdir)(e)}async function de(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}async function Pt(t){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"],s=Y(t.workingDir,"vuln-scan-conf.json"),c=await U(s);if(!c)throw new Error(`Missing project configuration file '${s}'`);return{failOnNewVulnerabilities:!1,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(u=>{let l=u;if(!l.name)throw new Error("Project name is missing on entry:"+JSON.stringify(l));if(!l.version)throw new Error("Project version is missing on entry:"+JSON.stringify(l));if(!l.purl)throw new Error("Project purl is missing on entry:"+JSON.stringify(l));return l.enabled==null&&(l.enabled=!0),l.silent==null&&(l.silent=!1),l.minimumSeverity||(l.minimumSeverity="UNKNOWN"),l.sbomFile?{...l,sbomFile:Y(t.workingDir,l.sbomFile)}:u})}}function Y(t,e){if(e)return Pe.default.isAbsolute(e)?e:(0,Pe.resolve)(t,e)}var te=Ye(ki());var Fi=Ye(Oi());function ji(t,e){let r=new te.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 s=fs(o.severity),c=o.id,u=us(o.refs),l=new te.SarifRuleBuilder().initSimple({ruleId:c,shortDescriptionText:o.title,fullDescriptionText:o.description,helpUri:u}),a=o.vexStatement,p,f="new",m="";a?(s="none",f="updated",m=`--- INVESTIGATED (${a.status}) --- `,a.status==="under_investigation"&&(m="--- UNDER INVESTIGATION --- ")):W[e.minimumSeverity]>W[o.severity]?(s="none",f="updated",m=`--- BELOW MINIMUM SEVERITY '${e.minimumSeverity}' ---`):e.silent&&(s="none",f="updated",m="--- PROJECT SILENT ---"),Object.assign(l.rule,{name:`${m}[${o.severity}] - ${o.title.replace(`[${c}]`,"")}`,messageStrings:{default:{text:o.description,markdown:ms(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 S=new te.SarifResultBuilder().initSimple({ruleId:c,level:s,messageText:`${c} [${o.severity}] - ${d}`});S.result.message.id="default",S.result.locations=[{logicalLocations:[{fullyQualifiedName:d}]}],S.result.baselineState=f,S.result.suppressions=p,r.addResult(S)}}let n=new te.SarifBuilder;return n.addRun(r),n.buildSarifOutput()}function us(t){for(let e of t)if(e.startsWith("https://nvd.nist.gov"))return e;return t[0]}function fs(t){switch(t){case"CRITICAL":return"error";case"HIGH":return"error";case"MEDIUM":return"warning";case"LOW":return"note";default:return"note"}}function ms(t,e,r){let i=t.vexStatement,n=i?`
|
|
9
9
|
${r}
|
|
10
10
|
${i.justification??""}
|
|
11
11
|
${i.impact_statement??""}
|
|
@@ -17,12 +17,12 @@ ${n}
|
|
|
17
17
|
|
|
18
18
|
--- DETAILS ---
|
|
19
19
|
|
|
20
|
-
${(0,
|
|
20
|
+
${(0,Fi.default)(t.description)}
|
|
21
21
|
|
|
22
22
|
${t.refs.map(o=>`* <${o}>`).join(`
|
|
23
23
|
`)}
|
|
24
|
-
`}var Be=require("fs/promises");async function Ai(t,e,r){if("sbomFile"in t)return await(0,Be.copyFile)(t.sbomFile,e),t.sbomFile=e,t;let i=await r.downloadArtifact(t.sbomMavenCoordinates);return await(0,Be.writeFile)(e,i),{...t,sbomFile:e}}var Xe=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 this.fetchMavenArtifact(i);return Buffer.from(await n.arrayBuffer())}async fetchLatestSnapshotTimestamp(e){let r=`${this.toArtifactBaseUrl(e)}/maven-metadata.xml`,n=await(await this.fetchMavenArtifact(r)).text(),o=n.match(/<timestamp>([^<]+)<\/timestamp>/),s=n.match(/<buildNumber>([^<]+)<\/buildNumber>/);if(!o||!s)throw new Error(`Failed to get timestamp and build number from ${r}`);return`${o[1]}-${s[1]}`}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"}}async fetchMavenArtifact(e){let r=this.authn,i=r.user&&r.pw?{Authorization:`Basic ${Buffer.from(`${r.user}:${r.pw}`).toString("base64")}`}:{},n=await fetch(e,{headers:i});if(!n.ok){let o="";try{o=await n.text()}catch(s){o=`${s}`}throw new Error(`Failed to download sbom: ${e}: ${n.status} - ${n.statusText}: ${o}`)}return n}};var Ni=require("fs/promises"),Ge=require("path");var be=class t{statements=[];filteredToProduct;static async fromFiles(e,r=new t){let i=(0,Ge.resolve)(e);for(let n of await(0,Ni.readdir)(i,{withFileTypes:!0}))if(n.name.endsWith(".json")){let o=await G((0,Ge.resolve)(n.parentPath,n.name));r.add(o)}else n.isDirectory()&&await t.fromFiles((0,Ge.resolve)(n.parentPath,n.name),r);return r}add(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=new Set([o,...i.vulnerability.aliases??[]]),c=new Set(i.products?.map(f=>f["@id"]).filter(f=>!!f)??[]),l=new wt(n,o,s,c,i);this.statements.push(l)}this.sortStatementsByTimestampNewestFirst()}filterByProduct(e){if(this.assertCorrectProductId(e),this.filteredToProduct)return this;let r=new t;return r.filteredToProduct=e,r.statements=this.statements.filter(i=>i.matchesProduct(e)),r}newestVulnerabilityStatement(e,r){let i=this.filterByProduct(r??this.filteredToProduct);for(let n of i.statements)if(n.matchesVulnerability(e))return this.reduceToProductInformation(n.statement,i.filteredToProduct)}toVexFileForProduct(e){let r=this.filterByProduct(e??this.filteredToProduct),i=r.statements[0]?.statement.timestamp??new Date().toISOString(),n=r.statements.map(o=>r.reduceToProductInformation(o.statement)).filter(o=>o.status!=="under_investigation");if(n.length!==0)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:n}}assertCorrectProductId(e){if(!e)throw new Error("Product ID must be provided");if(this.filteredToProduct&&this.filteredToProduct!==e)throw new Error("Cannot filter to a different product")}reduceToProductInformation(e,r){return r=r??this.filteredToProduct,{...e,products:e.products?.filter(i=>i["@id"]===r)}}sortStatementsByTimestampNewestFirst(){this.statements.sort((e,r)=>r.timestamp-e.timestamp)}},wt=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)}matchesVulnerability(e){return this.vulnAliases.has(e)}};var Ue=require("path"),Ri=require("fs/promises");var Je=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,Ue.resolve)(this.outputDir,r,`${i}${n}`),s=(0,Ue.dirname)(o);return await re(s)||await(0,Ri.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}`)}}};We.os.type().startsWith("Windows")&&(0,We.usePowerShell)();async function qi(t){let{mavenRepoUser:e,mavenRepoPw:r,reduceToProjectVersion:i,reduceToProjectName:n,ossIndexApiUser:o,ossIndexApiToken:s,trivyGithubToken:c}=t,l=await Lt(t),f=l.cacheDir;await re(f)||await(0,oe.mkdir)(f);let a=l.outDir;await re(a)&&await et(a),await(0,oe.mkdir)(a);let u=l.vexDir,p;await re(u)?p=await be.fromFiles(u):p=new be;let m=new Xe(l.mavenRepo,{user:e,pw:r}),d=l.projects,S=new Map,w=t.scannerEngines??l.scanners.map(g=>({scanProject(O,x,X){return Ps(g,O,x,f,X,o,s,c)}}));for(let g of d){if(n&&(g.name!==n||i&&g.version!==i))continue;let O=new Je(g,a,l.createSubDirsForProject),x=await Ai(g,await O.lookupOutputFileForWriting("project-cyclonedx-sbom-file"),m);console.log(`Analyzing project: ${x.name} - ${x.version} - ${x.sbomFile}`);let X=new Le;await Promise.all(w.map(He=>He.scanProject(x,O,X)));let fe=p.filterByProduct(x.purl),{unmatchedVulnerabilities:me}=X.enhanceWithVexData(fe);me.length>0&&S.set(x.purl,me),await ks(O,x,X,fe)}if(S.size>0){console.log(`
|
|
25
|
-
|
|
24
|
+
`}var $e=require("fs/promises");async function Di(t,e,r){if("sbomFile"in t)return await(0,$e.copyFile)(t.sbomFile,e),t.sbomFile=e,t;let i=await r.downloadArtifact(t.sbomMavenCoordinates);return await(0,$e.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 de(i,this.authn);return Buffer.from(await n.arrayBuffer())}async fetchLatestSnapshotTimestamp(e){let r=`${this.toArtifactBaseUrl(e)}/maven-metadata.xml`,n=await(await de(r,this.authn)).text(),o=n.match(/<timestamp>([^<]+)<\/timestamp>/),s=n.match(/<buildNumber>([^<]+)<\/buildNumber>/);if(!o||!s)throw new Error(`Failed to get timestamp and build number from ${r}`);return`${o[1]}-${s[1]}`}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"}}};var Ti=require("fs/promises"),Xe=require("path");var me=class t{statements=[];filteredToProduct;static async fromUrl(e,r,i=new t){let o=await(await de(e,r)).json();return i.add(o),i}static async fromFiles(e,r=new t){let i=(0,Xe.resolve)(e);for(let n of await(0,Ti.readdir)(i,{withFileTypes:!0}))if(n.name.endsWith(".json")){let o=await U((0,Xe.resolve)(n.parentPath,n.name));r.add(o)}else n.isDirectory()&&await t.fromFiles((0,Xe.resolve)(n.parentPath,n.name),r);return r}add(e){ps(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=new Set([o,...i.vulnerability.aliases??[]]),c=new Set(i.products?.map(l=>l["@id"]).filter(l=>!!l)??[]),u=new vt(n,o,s,c,i);this.statements.push(u)}this.sortStatementsByTimestampNewestFirst()}filterByProduct(e){if(this.assertCorrectProductId(e),this.filteredToProduct)return this;let r=new t;return r.filteredToProduct=e,r.statements=this.statements.filter(i=>i.matchesProduct(e)),r}newestVulnerabilityStatement(e,r){let i=this.filterByProduct(r??this.filteredToProduct);for(let n of i.statements)if(n.matchesVulnerability(e))return this.reduceToProductInformation(n.statement,i.filteredToProduct)}toVexFileForProduct(e){let r=this.filterByProduct(e??this.filteredToProduct),i=r.statements[0]?.statement.timestamp??new Date().toISOString(),n=r.statements.map(o=>r.reduceToProductInformation(o.statement)).filter(o=>o.status!=="under_investigation");if(n.length!==0)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:n}}assertCorrectProductId(e){if(!e)throw new Error("Product ID must be provided");if(this.filteredToProduct&&this.filteredToProduct!==e)throw new Error("Cannot filter to a different product")}reduceToProductInformation(e,r){return r=r??this.filteredToProduct,{...e,products:e.products?.filter(i=>i["@id"]===r)}}sortStatementsByTimestampNewestFirst(){this.statements.sort((e,r)=>r.timestamp-e.timestamp)}},vt=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)}matchesVulnerability(e){return this.vulnAliases.has(e)}};function ps(t){if(t?.["@context"]!=="https://openvex.dev/ns/v0.2.0")throw new Error("Invalid VEX file format")}var Be=require("path"),Mi=require("fs/promises");var Ue=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,Be.resolve)(this.outputDir,r,`${i}${n}`),s=(0,Be.dirname)(o);return await re(s)||await(0,Mi.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 Ii=require("zx");var Ge=require("path");async function Ci(t,e,r,i){console.log(" with Grype ...");let n=(0,Ge.dirname)(e),o=(0,Ge.basename)(e),s=await Ii.$`docker run --rm -v '${t}:/.cache' -v '${n}:/tmp/output' -v '${r.sbomFile}:/tmp/input.json' anchore/grype:latest sbom:/tmp/input.json -o json --file '/tmp/output/${o}' --by-cve --quiet`;s.stdout&&console.log(` Scan log: ${s.stdout}`),s.stderr&&console.log(` Scan error: ${s.stderr}`),console.log(` Grype output file: ${e}`);let c=await U(e);ds(i,c)}function ds(t,e){if(e)for(let r of e.matches){let i=ys(r);t.addVulnerability(i,"grype")}}function ys(t){let e=t.vulnerability,r=e.id,i=J(t.artifact.purl),n=J(e.dataSource),o=hs(e.severity);return{id:r,severity:o,scannerSeverity:{grype:o},title:"",description:e.description,components:[i],detectedBy:["grype"],refs:[n]}}function hs(t){switch(t){case"Negligible":return"LOW";case"Low":return"LOW";case"Medium":return"MEDIUM";case"High":return"HIGH";case"Critical":return"CRITICAL";default:return"UNKNOWN"}}var Ai=require("fs/promises");async function Ni(t,e,r,i){console.log(" with Sonatype OSS Index ...");let n={},o="";r.user&&r.token&&(n.Authorization=`Basic ${Buffer.from(`${r.user}:${r.token}`).toString("base64")}`,o="/authorized");let s=`https://ossindex.sonatype.org/api/v3${o}/component-report`,c=await Ss(e.sbomFile),u=new Set(c.map(p=>p.purl.replace(/\?.*$/,"")));Ls(u);let l=Array.from(u),a=[];for(let p=0;p<l.length;p+=128){let f=JSON.stringify({coordinates:l.slice(p,p+128)}),d=await(await fetch(s,{method:"POST",headers:{...n,"Content-Type":"application/vnd.ossindex.component-report-request.v1+json"},body:f})).json();Array.isArray(d)?a.push(...d.filter(S=>S.vulnerabilities.length>0)):console.log(` Sonatype OssIndex Error: ${d.code} - ${d.message}`)}await(0,Ai.writeFile)(t,JSON.stringify(a,null,2)),console.log(` Sonatype OssIndex output file: ${t}`),ws(i,a)}async function Ss(t){return(await U(t)).components.filter(r=>gs(r)&&!vs(r))}function gs(t){return!!t.purl}function vs(t){return t.group?t.group.startsWith("de.conterra")||t.group.startsWith("org.n52.security"):!1}function ws(t,e){if(e)for(let r of e)for(let i of r.vulnerabilities){let n=bs(i,r.coordinates);t.addVulnerability(n,"ossindex")}}function bs(t,e){let r=t.cve||t.id,i=J(e),n=J(t.reference),o=xs(t.cvssScore);return{id:r,severity:o,scannerSeverity:{ossindex:o},title:t.title,description:t.description,components:[i],detectedBy:["ossindex"],refs:n?[n]:[]}}function xs(t){return t===0?"UNKNOWN":t<4?"LOW":t<7?"MEDIUM":t<9?"HIGH":"CRITICAL"}function Ls(t){let e=Array.from(t);for(let r of e){let i=r.replace(/(@[^-]+)-.*$/g,"$1");t.add(i)}}var Ri=require("zx");var We=require("path");async function Vi(t,e,r,i,n){let o=(0,We.dirname)(e),s=(0,We.basename)(e),c=[];i&&(c.push("-e"),c.push(`GITHUB_TOKEN=${i}`));let u=[];u.push("--db-repository"),u.push("public.ecr.aws/aquasecurity/trivy-db,aquasec/trivy-db,ghcr.io/aquasecurity/trivy-db"),console.log(` with Trivy...${i?" (with GitHub token)":""}`);let l=await Ri.$`docker run --rm -v '${t}:/.cache' -v '${o}:/tmp/output' -v '${r.sbomFile}:/tmp/input.json' ${c} aquasec/trivy:latest sbom ${u} --cache-dir '/.cache' --format json --output '/tmp/output/${s}' --quiet /tmp/input.json`;l.stdout&&console.log(` Scan log: ${l.stdout}`),l.stderr&&console.log(` Scan error: ${l.stderr}`),console.log(` Trivy output file: ${e}`);let a=await U(e);Ps(n,a)}function Ps(t,e){if(e){for(let r of e.Results)if(r.Vulnerabilities)for(let i of r.Vulnerabilities){let n=ks(i);t.addVulnerability(n,"trivy")}}}function ks(t){let e=t.VulnerabilityID,r=J(t.PkgIdentifier.PURL),i=J(t.PrimaryURL),n=Es(t.Severity);return{id:e,severity:n,scannerSeverity:{trivy:n},title:t.Title,description:t.Description,components:[r],detectedBy:["trivy"],refs:[i]}}function Es(t){switch(t){case"UNKNOWN":case"LOW":case"MEDIUM":case"HIGH":case"CRITICAL":return t;default:return"UNKNOWN"}}var Je=class{constructor(e,r,i){this.scannerNames=e;this.cacheDir=r;this.options=i}async scanProject(e,r,i){for(let n of this.scannerNames)await this.scanProjectBy(n,e,r,this.cacheDir,i,this.options.ossIndexApiUser,this.options.ossIndexApiToken,this.options.trivyGithubToken)}async scanProjectBy(e,r,i,n,o,s,c,u){switch(e){case"grype":return Ci(n,await i.lookupOutputFileForWriting("grype-results"),r,o);case"trivy":return Vi(n,await i.lookupOutputFileForWriting("trivy-results"),r,u,o);case"ossindex":return Ni(await i.lookupOutputFileForWriting("ossindex-results"),r,{user:s,token:c},o)}}};He.os.type().startsWith("Windows")&&(0,He.usePowerShell)();async function qi(t){let e=await Pt(t),r=e.cacheDir;await re(r)||await(0,oe.mkdir)(r);let i=e.outDir;await re(i)&&await Ze(i),await(0,oe.mkdir)(i);let n=await Ds(e,{user:t.vexUrlsUser,pw:t.vexUrlsPw}),o=new _e(e.mavenRepo,{user:t.mavenRepoUser,pw:t.mavenRepoPw}),s=Ts(e,t,r),c=Ms(t),u=e.projects,l=new Map;for(let f of u){if(!c(f))continue;let m=new Ue(f,i,e.createSubDirsForProject);try{let d=await Fs(f,m,o,s,n);d.length>0&&l.set(f.purl,{project:f,newVulns:d})}catch(d){let S=d;l.set(f.purl,{project:f,error:S.message,newVulns:[]})}}let a=Os(l);return t.mode!=="test"&&a.hasNewVuln&&!e.failOnNewVulnerabilities&&console.log("##vso[task.complete result=SucceededWithIssues;]NEW_VULNERABILITIES_DETECTED"),a.hasError||a.hasNewVuln&&e.failOnNewVulnerabilities?1:0}function Os(t){let e=!1,r=!1;if(t.size>0){console.log(`
|
|
25
|
+
Scan results:`);for(let[i,n]of t){let o=n.project,s=o.silent,c=W[o.minimumSeverity];if(console.log(` ${i}:`),n.error&&(console.error(` Error: ${n.error}`),e=!0),!s&&n.newVulns.length){console.log(" New vulnerabilities:");for(let u of n.newVulns)c>W[u.severity]||(r=!0,console.log(` [${u.severity}] ${u.id}`))}}}return{hasError:e,hasNewVuln:r}}async function Fs(t,e,r,i,n){let o=await Di(t,await e.lookupOutputFileForWriting("project-cyclonedx-sbom-file"),r);console.log(`Analyzing project: ${o.name} - ${o.version} - ${o.sbomFile}`);let s=new Le;await i.scanProject(o,e,s);let c=n.filterByProduct(o.purl),{unmatchedVulnerabilities:u}=s.enhanceWithVexData(c);return await js(e,o,s,c),u}async function js(t,e,r,i){let n=r.getAllVulnerabilitiesSortedBySeverity(),o=await t.lookupOutputFileForWriting("aggregate-results");await(0,oe.writeFile)(o,JSON.stringify(n,null,2)),console.log(` Vulnerabilities output file: ${o}`);let s=await t.lookupOutputFileForWriting("aggregated-sarif-results"),c=ji(n,e);await(0,oe.writeFile)(s,JSON.stringify(c,null,2)),console.log(` Vuln Sarif output file: ${s}`);let u=i.toVexFileForProduct();if(!u)return;let l=await t.lookupOutputFileForWriting("project-openvex-file");await(0,oe.writeFile)(l,JSON.stringify(u,null,2)),console.log(` OpenVex file: ${l}`)}async function Ds(t,e){let r=t.vexDir,i;await re(r)?i=await me.fromFiles(r):i=new me;for(let n of t.vexUrls)await me.fromUrl(n,e,i);return i}function Ts(t,e,r){if(e.scannerEngine)return e.scannerEngine;if(t.scanners.length===0)throw new Error("No scanners configured");return new Je(t.scanners,r,e)}function Ms(t){let{reduceToProjectName:e,reduceToProjectVersion:r}=t;return i=>!(!i.enabled||e&&(i.name!==e||r&&i.version!==r))}var se=process.env;(async()=>{let t=await qi({workingDir:process.cwd(),reduceToProjectName:process.argv[2],reduceToProjectVersion:process.argv[3],ossIndexApiUser:se.OSS_INDEX_API_USER,ossIndexApiToken:se.OSS_INDEX_API_TOKEN,mavenRepoUser:se.MAVEN_REPO_USER,mavenRepoPw:se.MAVEN_REPO_PW,trivyGithubToken:se.TRIVY_GITHUB_TOKEN,vexUrlsUser:se.VEX_URLS_USER,vexUrlsPw:se.VEX_URLS_PW});process.exit(t)})();
|
|
26
26
|
/*! Bundled license information:
|
|
27
27
|
|
|
28
28
|
escape-html/index.js:
|