@conterra/vuln-scan 1.0.8 → 1.0.9
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 +3 -2
- package/dist/add-project-to-vex.js +1 -1
- package/dist/add-project.js +13 -13
- package/dist/add-statement.js +17 -17
- package/dist/remove-project.js +13 -13
- package/dist/vuln-scan.js +11 -11
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -284,8 +284,9 @@ MAVEN_REPO_USER=[username]
|
|
|
284
284
|
MAVEN_REPO_PW=[password]
|
|
285
285
|
|
|
286
286
|
# (optional) for oss index authenticated api
|
|
287
|
-
OSS_INDEX_API_USER=[username]
|
|
288
|
-
OSS_INDEX_API_TOKEN=[token]
|
|
287
|
+
OSS_INDEX_API_USER=[username] # sonatype guide api user name
|
|
288
|
+
OSS_INDEX_API_TOKEN=[token] # sonatype guide api token
|
|
289
|
+
OSS_INDEX_BASE_URL=[url] # default since 1.0.8 is "https://api.guide.sonatype.com", before that it was "https://ossindex.sonatype.org",
|
|
289
290
|
|
|
290
291
|
# (optional) for authentication downloading vex files specified by vexUrls option
|
|
291
292
|
VEX_URLS_USER=[username]
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
"use strict";var E=Object.create;var y=Object.defineProperty;var N=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var O=Object.getPrototypeOf,A=Object.prototype.hasOwnProperty;var C=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of T(e))!A.call(t,o)&&o!==r&&y(t,o,{get:()=>e[o],enumerable:!(s=N(e,o))||s.enumerable});return t};var S=(t,e,r)=>(r=t!=null?E(O(t)):{},C(e||!t||!t.__esModule?y(r,"default",{value:t,enumerable:!0}):r,t));var d=S(require("path"));var a=require("fs/promises");async function m(t){try{return await k(t)?JSON.parse(await(0,a.readFile)(t,{encoding:"utf-8"})):void 0}catch(e){throw new Error(`Error reading JSON file ${t}: ${e}`,{cause:e})}}async function x(t,e){let r=JSON.stringify(e,null,4)+`
|
|
3
|
-
`,s=await j(t,r);await(0,a.writeFile)(t,s,{encoding:"utf-8"})}async function k(t){try{return await(0,a.access)(t,a.constants.F_OK),!0}catch{return!1}}async function j(t,e){let r=await U();if(!r)return e;let s=await r.resolveConfig(t);return s?await r.format(e,{...s,filepath:t}):e}var L;function U(){return L??=import("prettier").catch(()=>{})}var w;async function F(t){if(w)return w;let e="https://repository.conterra.de/repository/maven-mirror-ct",r=l(t.workingDir,"input/vex"),s=l(t.workingDir,"output"),o=l(t.workingDir,"cache"),g=["grype","trivy","ossindex"],c=l(t.workingDir,"vuln-scan-conf.json"),n=await m(c);if(!n)throw new Error(`Missing project configuration file '${c}'`);let f=n.findNoLongerDetectedVulnerabilitiesOnlyForSnapshots??!1;return w={projectConfigFileLocation:c,onNewVulnerabilities:n.onNewVulnerabilities??(n.failOnNewVulnerabilities?"fail":"warn"),onNoLongerDetectedVulnerabilities:n.onNoLongerDetectedVulnerabilities??"ignore",reportNoLongerDetectedVulnerabilities:n.reportNoLongerDetectedVulnerabilities??!0,consoleReport:n.consoleReport||"BY_PROJECT_DETAILED",createSubDirsForProject:n.createSubDirsForProject??!0,mavenRepo:n.mavenRepo??e,vexUrls:n.vexUrls??[],vexDir:l(t.workingDir,n.vexDir)??r,outDir:l(t.workingDir,n.outDir)??s,cacheDir:l(t.workingDir,n.cacheDir)??o,scanners:(n.scanners??g).map(u=>{if(typeof u!="string")throw new Error(`Invalid scanner name '${u}' in configuration file '${c}'`);let i=u.split("@");if(i.length>2)throw new Error(`Invalid scanner name '${u}' in configuration file '${c}'`);let V=i[0],D=i[1]??"";return{name:V,version:D}}),projects:(n.projects??[]).map(u=>{let i=u;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.purlAliases||(i.purlAliases=[]),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)}:(i.detectNoLongerUsedVulnerabilities=f?i.purl.endsWith("-SNAPSHOT"):!0,u)})}}function l(t,e){if(e)return d.default.isAbsolute(e)?e:(0,d.resolve)(t,e)}var p=require("fs/promises"),h=require("path");var v=class{constructor(e){this.location=e}async read(){let e=await m(this.location);if(!e)throw new Error("Invalid VEX file");return e}async write(e){await x(this.location,e)}async delete(){await(0,p.unlink)(this.location)}};async function P(t,e){for(let r of await(0,p.readdir)(t,{withFileTypes:!0}))r.name.endsWith(".json")?await e(new v((0,h.resolve)(r.parentPath,r.name))):r.isDirectory()&&await P((0,h.resolve)(r.parentPath,r.name),e)}async function b({workingDir:t,existingPurl:e,newPurl:r}){let s=await F({workingDir:t});await P(s.vexDir,async o=>{await $(o,e,r)})}async function $(t,e,r){let s=await t.read(),o=!1,g=s.statements;for(let c of g){if(!c.products||c.products.some(f=>f["@id"]===r))continue;let n=c.products.findIndex(f=>f["@id"]===e);n!==-1&&(c.products?.splice(n+1,0,{"@id":r}),o=!0)}o&&(console.info(`Add ${r} to ${t.location}`),await t.write(s))}var I=process.cwd();(async()=>{let{existingPurl:t,newPurl:e}=await J();await b({workingDir:I,existingPurl:t,newPurl:e})})();async function J(){let t=process.argv[2];if(!t)throw new Error("Existing purl parameter missing.");let e=process.argv[3];if(!e)throw new Error("New purl parameter missing.");return{existingPurl:t,newPurl:e}}
|
|
3
|
+
`,s=await j(t,r);await(0,a.writeFile)(t,s,{encoding:"utf-8"})}async function k(t){try{return await(0,a.access)(t,a.constants.F_OK),!0}catch{return!1}}async function j(t,e){let r=await U();if(!r)return e;let s=await r.resolveConfig(t);return s?await r.format(e,{...s,filepath:t}):e}var L;function U(){return L??=import("prettier").catch(()=>{})}var w;async function F(t){if(w)return w;let e="https://repository.conterra.de/repository/maven-mirror-ct",r=l(t.workingDir,"input/vex"),s=l(t.workingDir,"output"),o=l(t.workingDir,"cache"),g=["grype","trivy","ossindex"],c=l(t.workingDir,"vuln-scan-conf.json"),n=await m(c);if(!n)throw new Error(`Missing project configuration file '${c}'`);let f=n.findNoLongerDetectedVulnerabilitiesOnlyForSnapshots??!1;return w={projectConfigFileLocation:c,onNewVulnerabilities:n.onNewVulnerabilities??(n.failOnNewVulnerabilities?"fail":"warn"),onNoLongerDetectedVulnerabilities:n.onNoLongerDetectedVulnerabilities??"ignore",reportNoLongerDetectedVulnerabilities:n.reportNoLongerDetectedVulnerabilities??!0,consoleReport:n.consoleReport||"BY_PROJECT_DETAILED",createSubDirsForProject:n.createSubDirsForProject??!0,mavenRepo:n.mavenRepo??e,vexUrls:n.vexUrls??[],vexDir:l(t.workingDir,n.vexDir)??r,outDir:l(t.workingDir,n.outDir)??s,cacheDir:l(t.workingDir,n.cacheDir)??o,scanners:(n.scanners??g).map(u=>{if(typeof u!="string")throw new Error(`Invalid scanner name '${u}' in configuration file '${c}'`);let i=u.split("@");if(i.length>2)throw new Error(`Invalid scanner name '${u}' in configuration file '${c}'`);let V=i[0],D=i[1]??"";return{name:V,version:D}}),projects:(n.projects??[]).map(u=>{let i=u;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.purlAliases||(i.purlAliases=[]),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)}:(i.detectNoLongerUsedVulnerabilities=f?i.purl.endsWith("-SNAPSHOT"):!0,u)})}}function l(t,e){if(e)return d.default.isAbsolute(e)?e:(0,d.resolve)(t,e)}var p=require("fs/promises"),h=require("path");var v=class{constructor(e){this.location=e}location;async read(){let e=await m(this.location);if(!e)throw new Error("Invalid VEX file");return e}async write(e){await x(this.location,e)}async delete(){await(0,p.unlink)(this.location)}};async function P(t,e){for(let r of await(0,p.readdir)(t,{withFileTypes:!0}))r.name.endsWith(".json")?await e(new v((0,h.resolve)(r.parentPath,r.name))):r.isDirectory()&&await P((0,h.resolve)(r.parentPath,r.name),e)}async function b({workingDir:t,existingPurl:e,newPurl:r}){let s=await F({workingDir:t});await P(s.vexDir,async o=>{await $(o,e,r)})}async function $(t,e,r){let s=await t.read(),o=!1,g=s.statements;for(let c of g){if(!c.products||c.products.some(f=>f["@id"]===r))continue;let n=c.products.findIndex(f=>f["@id"]===e);n!==-1&&(c.products?.splice(n+1,0,{"@id":r}),o=!0)}o&&(console.info(`Add ${r} to ${t.location}`),await t.write(s))}var I=process.cwd();(async()=>{let{existingPurl:t,newPurl:e}=await J();await b({workingDir:I,existingPurl:t,newPurl:e})})();async function J(){let t=process.argv[2];if(!t)throw new Error("Existing purl parameter missing.");let e=process.argv[3];if(!e)throw new Error("New purl parameter missing.");return{existingPurl:t,newPurl:e}}
|
package/dist/add-project.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";var
|
|
3
|
-
`,n=await Xt(e,r);await(0,B.writeFile)(e,n,{encoding:"utf-8"})}async function Jt(e){try{return await(0,B.access)(e,B.constants.F_OK),!0}catch{return!1}}async function Xt(e,t){let r=await zt();if(!r)return t;let n=await r.resolveConfig(e);return n?await r.format(t,{...n,filepath:e}):t}var Yt;function zt(){return Yt??=import("prettier").catch(()=>{})}var ye;async function X(e){if(ye)return ye;let t="https://repository.conterra.de/repository/maven-mirror-ct",r=O(e.workingDir,"input/vex"),n=O(e.workingDir,"output"),i=O(e.workingDir,"cache"),l=["grype","trivy","ossindex"],s=O(e.workingDir,"vuln-scan-conf.json"),o=await J(s);if(!o)throw new Error(`Missing project configuration file '${s}'`);let u=o.findNoLongerDetectedVulnerabilitiesOnlyForSnapshots??!1;return ye={projectConfigFileLocation:s,onNewVulnerabilities:o.onNewVulnerabilities??(o.failOnNewVulnerabilities?"fail":"warn"),onNoLongerDetectedVulnerabilities:o.onNoLongerDetectedVulnerabilities??"ignore",reportNoLongerDetectedVulnerabilities:o.reportNoLongerDetectedVulnerabilities??!0,consoleReport:o.consoleReport||"BY_PROJECT_DETAILED",createSubDirsForProject:o.createSubDirsForProject??!0,mavenRepo:o.mavenRepo??t,vexUrls:o.vexUrls??[],vexDir:O(e.workingDir,o.vexDir)??r,outDir:O(e.workingDir,o.outDir)??n,cacheDir:O(e.workingDir,o.cacheDir)??i,scanners:(o.scanners??l).map(f=>{if(typeof f!="string")throw new Error(`Invalid scanner name '${f}' in configuration file '${s}'`);let c=f.split("@");if(c.length>2)throw new Error(`Invalid scanner name '${f}' in configuration file '${s}'`);let a=c[0],d=c[1]??"";return{name:a,version:d}}),projects:(o.projects??[]).map(f=>{let c=f;if(!c.name)throw new Error("Project name is missing on entry:"+JSON.stringify(c));if(!c.version)throw new Error("Project version is missing on entry:"+JSON.stringify(c));if(!c.purl)throw new Error("Project purl is missing on entry:"+JSON.stringify(c));return c.purlAliases||(c.purlAliases=[]),c.enabled==null&&(c.enabled=!0),c.silent==null&&(c.silent=!1),c.minimumSeverity||(c.minimumSeverity="UNKNOWN"),c.sbomFile?{...c,sbomFile:O(e.workingDir,c.sbomFile)}:(c.detectNoLongerUsedVulnerabilities=u?c.purl.endsWith("-SNAPSHOT"):!0,f)})}}function O(e,t){if(t)return ce.default.isAbsolute(t)?t:(0,ce.resolve)(e,t)}var ue=require("fs/promises"),Le=require("path");var Pe=class{constructor(t){this.location=t}async read(){let t=await J(this.location);if(!t)throw new Error("Invalid VEX file");return t}async write(t){await ae(this.location,t)}async delete(){await(0,ue.unlink)(this.location)}};async function Fe(e,t){for(let r of await(0,ue.readdir)(e,{withFileTypes:!0}))r.name.endsWith(".json")?await t(new Pe((0,Le.resolve)(r.parentPath,r.name))):r.isDirectory()&&await Fe((0,Le.resolve)(r.parentPath,r.name),t)}async function ze({workingDir:e,existingPurl:t,newPurl:r}){let n=await X({workingDir:e});await Fe(n.vexDir,async i=>{await Qt(i,t,r)})}async function Qt(e,t,r){let n=await e.read(),i=!1,l=n.statements;for(let s of l){if(!s.products||s.products.some(u=>u["@id"]===r))continue;let o=s.products.findIndex(u=>u["@id"]===t);o!==-1&&(s.products?.splice(o+1,0,{"@id":r}),i=!0)}i&&(console.info(`Add ${r} to ${e.location}`),await e.write(n))}async function Qe({workingDir:e,projectName:t,referenceProjectVersion:r,targetProjectVersion:n}){let i=await X({workingDir:e});if(!i.projectConfigFileLocation)throw new Error("Missing project configuration file.");let l=i.projects.find(o=>o.name===t&&o.version===r);if(!l)throw new Error(`Project ${t} with version ${r} not found.`);let s=i.projects.find(o=>o.name===t&&o.version===n);s||(s=await Zt(t,i.projectConfigFileLocation,l,n)),await ze({workingDir:e,existingPurl:l.purl,newPurl:s.purl})}async function Zt(e,t,r,n){let i=await J(t),l=i.projects.findIndex(u=>u.name===r.name&&u.version===r.version),s=i.projects[l],o={...s};return o.version=n,o.purl=s.purl.replace(s.version,n),"sbomMavenCoordinates"in o?o.sbomMavenCoordinates=s.sbomMavenCoordinates.replace(s.version,n):"sbomFile"in o&&(o.sbomFile=s.sbomFile.replace(s.version,n)),i.projects.splice(l+1,0,o),console.info(`Add project ${e} with version ${n} to ${t}`),await ae(t,i),o}var te=(e,t=[])=>e.name==="up"||t.includes("vim")&&e.name==="k"||t.includes("emacs")&&e.ctrl&&e.name==="p",fe=(e,t=[])=>e.name==="down"||t.includes("vim")&&e.name==="j"||t.includes("emacs")&&e.ctrl&&e.name==="n";var re=e=>e.name==="backspace",ne=e=>e.name==="tab",ve=e=>"1234567890".includes(e.name),A=e=>e.name==="enter"||e.name==="return";var de=class extends Error{name="AbortPromptError";message="Prompt was aborted";constructor(t){super(),this.cause=t?.cause}},pe=class extends Error{name="CancelPromptError";message="Prompt was canceled"},ie=class extends Error{name="ExitPromptError"},he=class extends Error{name="HookError"},Y=class extends Error{name="ValidationError"};var rt=require("node:async_hooks");var me=require("node:async_hooks");var Ze=new me.AsyncLocalStorage;function er(e){return{rl:e,hooks:[],hooksCleanup:[],hooksEffect:[],index:0,handleChange(){}}}function et(e,t){let r=er(e);return Ze.run(r,()=>{function n(i){r.handleChange=()=>{r.index=0,i()},r.handleChange()}return t(n)})}function V(){let e=Ze.getStore();if(!e)throw new he("[Inquirer] Hook functions can only be called from within a prompt");return e}function Te(){return V().rl}function Re(e){let t=(...r)=>{let n=V(),i=!1,l=n.handleChange;n.handleChange=()=>{i=!0};let s=e(...r);return i&&l(),n.handleChange=l,s};return me.AsyncResource.bind(t)}function z(e){let t=V(),{index:r}=t,n={get(){return t.hooks[r]},set(l){t.hooks[r]=l},initialized:r in t.hooks},i=e(n);return t.index++,i}function tt(){V().handleChange()}var M={queue(e){let t=V(),{index:r}=t;t.hooksEffect.push(()=>{t.hooksCleanup[r]?.();let n=e(Te());if(n!=null&&typeof n!="function")throw new Y("useEffect return value must be a cleanup function or nothing.");t.hooksCleanup[r]=n})},run(){let e=V();Re(()=>{e.hooksEffect.forEach(t=>{t()}),e.hooksEffect.length=0})()},clearAll(){let e=V();e.hooksCleanup.forEach(t=>{t?.()}),e.hooksEffect.length=0,e.hooksCleanup.length=0}};function L(e){return z(t=>{let r=rt.AsyncResource.bind(function(l){t.get()!==l&&(t.set(l),tt())});if(t.initialized)return[t.get(),r];let n=typeof e=="function"?e():e;return t.set(n),[n,r]})}function C(e,t){z(r=>{let n=r.get();(!Array.isArray(n)||t.some((l,s)=>!Object.is(l,n[s])))&&M.queue(e),r.set(t)})}var T=require("node:util");var I=q(require("node:process"),1);function tr(){return I.default.platform!=="win32"?I.default.env.TERM!=="linux":!!I.default.env.WT_SESSION||!!I.default.env.TERMINUS_SUBLIME||I.default.env.ConEmuTask==="{cmd::Cmder}"||I.default.env.TERM_PROGRAM==="Terminus-Sublime"||I.default.env.TERM_PROGRAM==="vscode"||I.default.env.TERM==="xterm-256color"||I.default.env.TERM==="alacritty"||I.default.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var nt={circleQuestionMark:"(?)",questionMarkPrefix:"(?)",square:"\u2588",squareDarkShade:"\u2593",squareMediumShade:"\u2592",squareLightShade:"\u2591",squareTop:"\u2580",squareBottom:"\u2584",squareLeft:"\u258C",squareRight:"\u2590",squareCenter:"\u25A0",bullet:"\u25CF",dot:"\u2024",ellipsis:"\u2026",pointerSmall:"\u203A",triangleUp:"\u25B2",triangleUpSmall:"\u25B4",triangleDown:"\u25BC",triangleDownSmall:"\u25BE",triangleLeftSmall:"\u25C2",triangleRightSmall:"\u25B8",home:"\u2302",heart:"\u2665",musicNote:"\u266A",musicNoteBeamed:"\u266B",arrowUp:"\u2191",arrowDown:"\u2193",arrowLeft:"\u2190",arrowRight:"\u2192",arrowLeftRight:"\u2194",arrowUpDown:"\u2195",almostEqual:"\u2248",notEqual:"\u2260",lessOrEqual:"\u2264",greaterOrEqual:"\u2265",identical:"\u2261",infinity:"\u221E",subscriptZero:"\u2080",subscriptOne:"\u2081",subscriptTwo:"\u2082",subscriptThree:"\u2083",subscriptFour:"\u2084",subscriptFive:"\u2085",subscriptSix:"\u2086",subscriptSeven:"\u2087",subscriptEight:"\u2088",subscriptNine:"\u2089",oneHalf:"\xBD",oneThird:"\u2153",oneQuarter:"\xBC",oneFifth:"\u2155",oneSixth:"\u2159",oneEighth:"\u215B",twoThirds:"\u2154",twoFifths:"\u2156",threeQuarters:"\xBE",threeFifths:"\u2157",threeEighths:"\u215C",fourFifths:"\u2158",fiveSixths:"\u215A",fiveEighths:"\u215D",sevenEighths:"\u215E",line:"\u2500",lineBold:"\u2501",lineDouble:"\u2550",lineDashed0:"\u2504",lineDashed1:"\u2505",lineDashed2:"\u2508",lineDashed3:"\u2509",lineDashed4:"\u254C",lineDashed5:"\u254D",lineDashed6:"\u2574",lineDashed7:"\u2576",lineDashed8:"\u2578",lineDashed9:"\u257A",lineDashed10:"\u257C",lineDashed11:"\u257E",lineDashed12:"\u2212",lineDashed13:"\u2013",lineDashed14:"\u2010",lineDashed15:"\u2043",lineVertical:"\u2502",lineVerticalBold:"\u2503",lineVerticalDouble:"\u2551",lineVerticalDashed0:"\u2506",lineVerticalDashed1:"\u2507",lineVerticalDashed2:"\u250A",lineVerticalDashed3:"\u250B",lineVerticalDashed4:"\u254E",lineVerticalDashed5:"\u254F",lineVerticalDashed6:"\u2575",lineVerticalDashed7:"\u2577",lineVerticalDashed8:"\u2579",lineVerticalDashed9:"\u257B",lineVerticalDashed10:"\u257D",lineVerticalDashed11:"\u257F",lineDownLeft:"\u2510",lineDownLeftArc:"\u256E",lineDownBoldLeftBold:"\u2513",lineDownBoldLeft:"\u2512",lineDownLeftBold:"\u2511",lineDownDoubleLeftDouble:"\u2557",lineDownDoubleLeft:"\u2556",lineDownLeftDouble:"\u2555",lineDownRight:"\u250C",lineDownRightArc:"\u256D",lineDownBoldRightBold:"\u250F",lineDownBoldRight:"\u250E",lineDownRightBold:"\u250D",lineDownDoubleRightDouble:"\u2554",lineDownDoubleRight:"\u2553",lineDownRightDouble:"\u2552",lineUpLeft:"\u2518",lineUpLeftArc:"\u256F",lineUpBoldLeftBold:"\u251B",lineUpBoldLeft:"\u251A",lineUpLeftBold:"\u2519",lineUpDoubleLeftDouble:"\u255D",lineUpDoubleLeft:"\u255C",lineUpLeftDouble:"\u255B",lineUpRight:"\u2514",lineUpRightArc:"\u2570",lineUpBoldRightBold:"\u2517",lineUpBoldRight:"\u2516",lineUpRightBold:"\u2515",lineUpDoubleRightDouble:"\u255A",lineUpDoubleRight:"\u2559",lineUpRightDouble:"\u2558",lineUpDownLeft:"\u2524",lineUpBoldDownBoldLeftBold:"\u252B",lineUpBoldDownBoldLeft:"\u2528",lineUpDownLeftBold:"\u2525",lineUpBoldDownLeftBold:"\u2529",lineUpDownBoldLeftBold:"\u252A",lineUpDownBoldLeft:"\u2527",lineUpBoldDownLeft:"\u2526",lineUpDoubleDownDoubleLeftDouble:"\u2563",lineUpDoubleDownDoubleLeft:"\u2562",lineUpDownLeftDouble:"\u2561",lineUpDownRight:"\u251C",lineUpBoldDownBoldRightBold:"\u2523",lineUpBoldDownBoldRight:"\u2520",lineUpDownRightBold:"\u251D",lineUpBoldDownRightBold:"\u2521",lineUpDownBoldRightBold:"\u2522",lineUpDownBoldRight:"\u251F",lineUpBoldDownRight:"\u251E",lineUpDoubleDownDoubleRightDouble:"\u2560",lineUpDoubleDownDoubleRight:"\u255F",lineUpDownRightDouble:"\u255E",lineDownLeftRight:"\u252C",lineDownBoldLeftBoldRightBold:"\u2533",lineDownLeftBoldRightBold:"\u252F",lineDownBoldLeftRight:"\u2530",lineDownBoldLeftBoldRight:"\u2531",lineDownBoldLeftRightBold:"\u2532",lineDownLeftRightBold:"\u252E",lineDownLeftBoldRight:"\u252D",lineDownDoubleLeftDoubleRightDouble:"\u2566",lineDownDoubleLeftRight:"\u2565",lineDownLeftDoubleRightDouble:"\u2564",lineUpLeftRight:"\u2534",lineUpBoldLeftBoldRightBold:"\u253B",lineUpLeftBoldRightBold:"\u2537",lineUpBoldLeftRight:"\u2538",lineUpBoldLeftBoldRight:"\u2539",lineUpBoldLeftRightBold:"\u253A",lineUpLeftRightBold:"\u2536",lineUpLeftBoldRight:"\u2535",lineUpDoubleLeftDoubleRightDouble:"\u2569",lineUpDoubleLeftRight:"\u2568",lineUpLeftDoubleRightDouble:"\u2567",lineUpDownLeftRight:"\u253C",lineUpBoldDownBoldLeftBoldRightBold:"\u254B",lineUpDownBoldLeftBoldRightBold:"\u2548",lineUpBoldDownLeftBoldRightBold:"\u2547",lineUpBoldDownBoldLeftRightBold:"\u254A",lineUpBoldDownBoldLeftBoldRight:"\u2549",lineUpBoldDownLeftRight:"\u2540",lineUpDownBoldLeftRight:"\u2541",lineUpDownLeftBoldRight:"\u253D",lineUpDownLeftRightBold:"\u253E",lineUpBoldDownBoldLeftRight:"\u2542",lineUpDownLeftBoldRightBold:"\u253F",lineUpBoldDownLeftBoldRight:"\u2543",lineUpBoldDownLeftRightBold:"\u2544",lineUpDownBoldLeftBoldRight:"\u2545",lineUpDownBoldLeftRightBold:"\u2546",lineUpDoubleDownDoubleLeftDoubleRightDouble:"\u256C",lineUpDoubleDownDoubleLeftRight:"\u256B",lineUpDownLeftDoubleRightDouble:"\u256A",lineCross:"\u2573",lineBackslash:"\u2572",lineSlash:"\u2571"},it={tick:"\u2714",info:"\u2139",warning:"\u26A0",cross:"\u2718",squareSmall:"\u25FB",squareSmallFilled:"\u25FC",circle:"\u25EF",circleFilled:"\u25C9",circleDotted:"\u25CC",circleDouble:"\u25CE",circleCircle:"\u24DE",circleCross:"\u24E7",circlePipe:"\u24BE",radioOn:"\u25C9",radioOff:"\u25EF",checkboxOn:"\u2612",checkboxOff:"\u2610",checkboxCircleOn:"\u24E7",checkboxCircleOff:"\u24BE",pointer:"\u276F",triangleUpOutline:"\u25B3",triangleLeft:"\u25C0",triangleRight:"\u25B6",lozenge:"\u25C6",lozengeOutline:"\u25C7",hamburger:"\u2630",smiley:"\u32E1",mustache:"\u0DF4",star:"\u2605",play:"\u25B6",nodejs:"\u2B22",oneSeventh:"\u2150",oneNinth:"\u2151",oneTenth:"\u2152"},rr={tick:"\u221A",info:"i",warning:"\u203C",cross:"\xD7",squareSmall:"\u25A1",squareSmallFilled:"\u25A0",circle:"( )",circleFilled:"(*)",circleDotted:"( )",circleDouble:"( )",circleCircle:"(\u25CB)",circleCross:"(\xD7)",circlePipe:"(\u2502)",radioOn:"(*)",radioOff:"( )",checkboxOn:"[\xD7]",checkboxOff:"[ ]",checkboxCircleOn:"(\xD7)",checkboxCircleOff:"( )",pointer:">",triangleUpOutline:"\u2206",triangleLeft:"\u25C4",triangleRight:"\u25BA",lozenge:"\u2666",lozengeOutline:"\u25CA",hamburger:"\u2261",smiley:"\u263A",mustache:"\u250C\u2500\u2510",star:"\u2736",play:"\u25BA",nodejs:"\u2666",oneSeventh:"1/7",oneNinth:"1/9",oneTenth:"1/10"},nr={...nt,...it},ir={...nt,...rr},or=tr(),sr=or?nr:ir,Q=sr,nn=Object.entries(it);var ot={prefix:{idle:(0,T.styleText)("blue","?"),done:(0,T.styleText)("green",Q.tick)},spinner:{interval:80,frames:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"].map(e=>(0,T.styleText)("yellow",e))},style:{answer:e=>(0,T.styleText)("cyan",e),message:e=>(0,T.styleText)("bold",e),error:e=>(0,T.styleText)("red",`> ${e}`),defaultAnswer:e=>(0,T.styleText)("dim",`(${e})`),help:e=>(0,T.styleText)("dim",e),highlight:e=>(0,T.styleText)("cyan",e),key:e=>(0,T.styleText)("cyan",(0,T.styleText)("bold",`<${e}>`))}};function st(e){if(typeof e!="object"||e===null)return!1;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function lt(...e){let t={};for(let r of e)for(let[n,i]of Object.entries(r)){let l=t[n];t[n]=st(l)&&st(i)?lt(l,i):i}return t}function N(...e){let t=[ot,...e.filter(r=>r!=null)];return lt(...t)}function $({status:e="idle",theme:t}){let[r,n]=L(!1),[i,l]=L(0),{prefix:s,spinner:o}=N(t);return C(()=>{if(e==="loading"){let f,c=-1,a=setTimeout(()=>{n(!0),f=setInterval(()=>{c=c+1,l(c%o.frames.length)},o.interval)},300);return()=>{clearTimeout(a),clearInterval(f)}}else n(!1)},[e]),r?o.frames[i]:typeof s=="string"?s:s[e==="loading"?"idle":e]??s.idle}function oe(e,t){return z(r=>{let n=r.get();if(!n||n.dependencies.length!==t.length||n.dependencies.some((i,l)=>i!==t[l])){let i=e();return r.set({value:i,dependencies:t}),i}return n.value})}function W(e){return L({current:e})[0]}function K(e){let t=W(e);t.current=e,C(r=>{let n=!1,i=Re((l,s)=>{n||t.current(s,r)});return r.input.on("keypress",i),()=>{n=!0,r.input.removeListener("keypress",i)}},[])}var Pt=q(ct(),1);var ut=(()=>{let e=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;return t=>{let r=0;for(e.lastIndex=0;e.test(t);)r+=1;return t.length-r}})(),ft=e=>e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510,dt=e=>e===8987||e===9001||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12771||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=19903||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e>=131072&&e<=196605||e>=196608&&e<=262141;var cr=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]|\u001b\]8;[^;]*;.*?(?:\u0007|\u001b\u005c)/y,ur=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,pt=/(?:(?![\uFF61-\uFF9F\uFF00-\uFFEF])[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\p{Script=Tangut}]){1,1000}/yu,fr=/\t{1,1000}/y,ht=new RegExp("[\\u{1F1E6}-\\u{1F1FF}]{2}|\\u{1F3F4}[\\u{E0061}-\\u{E007A}]{2}[\\u{E0030}-\\u{E0039}\\u{E0061}-\\u{E007A}]{1,3}\\u{E007F}|(?:\\p{Emoji}\\uFE0F\\u20E3?|\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|\\p{Emoji_Presentation})(?:\\u200D(?:\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|\\p{Emoji_Presentation}|\\p{Emoji}\\uFE0F\\u20E3?))*","yu"),dr=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,pr=new RegExp("\\p{M}+","gu"),hr={limit:1/0,ellipsis:""},mt=(e,t={},r={})=>{let n=t.limit??1/0,i=t.ellipsis??"",l=t?.ellipsisWidth??(i?mt(i,hr,r).width:0),s=0,o=r.controlWidth??0,u=r.tabWidth??8,f=r.emojiWidth??2,c=2,a=r.regularWidth??1,d=r.wideWidth??c,w=[[dr,a],[cr,s],[ur,o],[fr,u],[ht,f],[pt,d]],h=0,p=0,g=e.length,x=0,m=!1,D=g,S=Math.max(0,n-l),P=0,k=0,F=0,R=0;e:for(;;){if(k>P||p>=g&&p>h){let b=e.slice(P,k)||e.slice(h,p);x=0;for(let E of b.replaceAll(pr,"")){let y=E.codePointAt(0)||0;if(ft(y)?R=c:dt(y)?R=d:R=a,F+R>S&&(D=Math.min(D,Math.max(P,h)+x)),F+R>n){m=!0;break e}x+=E.length,F+=R}P=k=0}if(p>=g)break e;for(let b=0,E=w.length;b<E;b++){let[y,v]=w[b];if(y.lastIndex=p,y.test(e)){if(x=y===pt?ut(e.slice(p,y.lastIndex)):y===ht?1:y.lastIndex-p,R=x*v,F+R>S&&(D=Math.min(D,p+Math.floor((S-F)/v))),F+R>n){m=!0;break e}F+=R,P=h,k=p,p=h=y.lastIndex;continue e}}p+=1}return{width:m?S:F,index:m?D:g,truncated:m,ellipsed:m&&n>=l}},gt=mt;var mr={limit:1/0,ellipsis:"",ellipsisWidth:0},gr=(e,t={})=>gt(e,mr,t).width,j=gr;var ge="\x1B",St="\x9B",wr=39,Ie="\x07",Et="[",xr="]",yt="m",Ue=`${xr}8;;`,wt=new RegExp(`(?:\\${Et}(?<code>\\d+)m|\\${Ue}(?<uri>.*)${Ie})`,"y"),xt=e=>{if(e>=30&&e<=37||e>=90&&e<=97)return 39;if(e>=40&&e<=47||e>=100&&e<=107)return 49;if(e===1||e===2)return 22;if(e===3)return 23;if(e===4)return 24;if(e===7)return 27;if(e===8)return 28;if(e===9)return 29;if(e===0)return 0},bt=e=>`${ge}${Et}${e}${yt}`,Dt=e=>`${ge}${Ue}${e}${Ie}`,Be=(e,t,r)=>{let n=t[Symbol.iterator](),i=!1,l=!1,s=e.at(-1),o=s===void 0?0:j(s),u=n.next(),f=n.next(),c=0;for(;!u.done;){let a=u.value,d=j(a);o+d<=r?e[e.length-1]+=a:(e.push(a),o=0),(a===ge||a===St)&&(i=!0,l=t.startsWith(Ue,c+1)),i?l?a===Ie&&(i=!1,l=!1):a===yt&&(i=!1):(o+=d,o===r&&!f.done&&(e.push(""),o=0)),u=f,f=n.next(),c+=a.length}s=e.at(-1),!o&&s!==void 0&&s.length&&e.length>1&&(e[e.length-2]+=e.pop())},br=e=>{let t=e.split(" "),r=t.length;for(;r&&!j(t[r-1]);)r--;return r===t.length?e:t.slice(0,r).join(" ")+t.slice(r).join("")},Dr=(e,t,r={})=>{if(r.trim!==!1&&e.trim()==="")return"";let n="",i,l,s=e.split(" "),o=[""],u=0;for(let a=0;a<s.length;a++){let d=s[a];if(r.trim!==!1){let h=o.at(-1)??"",p=h.trimStart();h.length!==p.length&&(o[o.length-1]=p,u=j(p))}a!==0&&(u>=t&&(r.wordWrap===!1||r.trim===!1)&&(o.push(""),u=0),(u||r.trim===!1)&&(o[o.length-1]+=" ",u++));let w=j(d);if(r.hard&&w>t){let h=t-u,p=1+Math.floor((w-h-1)/t);Math.floor((w-1)/t)<p&&o.push(""),Be(o,d,t),u=j(o.at(-1)??"");continue}if(u+w>t&&u&&w){if(r.wordWrap===!1&&u<t){Be(o,d,t),u=j(o.at(-1)??"");continue}o.push(""),u=0}if(u+w>t&&r.wordWrap===!1){Be(o,d,t),u=j(o.at(-1)??"");continue}o[o.length-1]+=d,u+=w}r.trim!==!1&&(o=o.map(a=>br(a)));let f=o.join(`
|
|
4
|
-
`),c=!1;for(let a=0;a<f.length;a++){let d=f[a];if(n+=d,c)c=!1;else if(c=d>="\uD800"&&d<="\uDBFF",c)continue;if(d===ge||d===St){wt.lastIndex=a+1;let
|
|
5
|
-
`){l&&(n+=Dt(""));let
|
|
6
|
-
`&&(i&&xt(i)&&(n+=bt(i)),l&&(n+=Dt(l)))}return n},
|
|
2
|
+
"use strict";var Wt=Object.create;var Xe=Object.defineProperty;var Kt=Object.getOwnPropertyDescriptor;var Ht=Object.getOwnPropertyNames;var Gt=Object.getPrototypeOf,qt=Object.prototype.hasOwnProperty;var Ye=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Jt=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Ht(t))!qt.call(e,i)&&i!==r&&Xe(e,i,{get:()=>t[i],enumerable:!(n=Kt(t,i))||n.enumerable});return e};var A=(e,t,r)=>(r=e!=null?Wt(Gt(e)):{},Jt(t||!e||!e.__esModule?Xe(r,"default",{value:e,enumerable:!0}):r,e));var ct=Ye((Ln,at)=>{"use strict";at.exports=ur;function cr(e){let t={defaultWidth:0,output:process.stdout,tty:require("tty")};return e?(Object.keys(t).forEach(function(r){e[r]||(e[r]=t[r])}),e):t}function ur(e){let t=cr(e);if(t.output.getWindowSize)return t.output.getWindowSize()[0]||t.defaultWidth;if(t.tty.getWindowSize)return t.tty.getWindowSize()[1]||t.defaultWidth;if(t.output.columns)return t.output.columns;if(process.env.CLI_WIDTH){let r=parseInt(process.env.CLI_WIDTH,10);if(!isNaN(r)&&r!==0)return r}return t.defaultWidth}});var vt=Ye((On,Ft)=>{var Pr=require("stream"),_e=class extends Pr{#r=null;constructor(t={}){super(t),this.writable=this.readable=!0,this.muted=!1,this.on("pipe",this._onpipe),this.replace=t.replace,this._prompt=t.prompt||null,this._hadControl=!1}#t(t,r){return this._dest?this._dest[t]:this._src?this._src[t]:r}#e(t,...r){typeof this._dest?.[t]=="function"&&this._dest[t](...r),typeof this._src?.[t]=="function"&&this._src[t](...r)}get isTTY(){return this.#r!==null?this.#r:this.#t("isTTY",!1)}set isTTY(t){this.#r=t}get rows(){return this.#t("rows")}get columns(){return this.#t("columns")}mute(){this.muted=!0}unmute(){this.muted=!1}_onpipe(t){this._src=t}pipe(t,r){return this._dest=t,super.pipe(t,r)}pause(){if(this._src)return this._src.pause()}resume(){if(this._src)return this._src.resume()}write(t){if(this.muted){if(!this.replace)return!0;if(t.match(/^\u001b/))return t.indexOf(this._prompt)===0&&(t=t.slice(this._prompt.length),t=t.replace(/./g,this.replace),t=this._prompt+t),this._hadControl=!0,this.emit("data",t);this._prompt&&this._hadControl&&t.indexOf(this._prompt)===0&&(this._hadControl=!1,this.emit("data",this._prompt),t=t.slice(this._prompt.length)),t=t.toString().replace(/./g,this.replace)}this.emit("data",t)}end(t){this.muted&&(t&&this.replace?t=t.toString().replace(/./g,this.replace):t=null),t&&this.emit("data",t),this.emit("end")}destroy(...t){return this.#e("destroy",...t)}destroySoon(...t){return this.#e("destroySoon",...t)}close(...t){return this.#e("close",...t)}};Ft.exports=_e});var ce=A(require("path"));var U=require("fs/promises");async function J(e){try{return await Xt(e)?JSON.parse(await(0,U.readFile)(e,{encoding:"utf-8"})):void 0}catch(t){throw new Error(`Error reading JSON file ${e}: ${t}`,{cause:t})}}async function ae(e,t){let r=JSON.stringify(t,null,4)+`
|
|
3
|
+
`,n=await Yt(e,r);await(0,U.writeFile)(e,n,{encoding:"utf-8"})}async function Xt(e){try{return await(0,U.access)(e,U.constants.F_OK),!0}catch{return!1}}async function Yt(e,t){let r=await Qt();if(!r)return t;let n=await r.resolveConfig(e);return n?await r.format(t,{...n,filepath:e}):t}var zt;function Qt(){return zt??=import("prettier").catch(()=>{})}var ye;async function X(e){if(ye)return ye;let t="https://repository.conterra.de/repository/maven-mirror-ct",r=O(e.workingDir,"input/vex"),n=O(e.workingDir,"output"),i=O(e.workingDir,"cache"),l=["grype","trivy","ossindex"],s=O(e.workingDir,"vuln-scan-conf.json"),o=await J(s);if(!o)throw new Error(`Missing project configuration file '${s}'`);let u=o.findNoLongerDetectedVulnerabilitiesOnlyForSnapshots??!1;return ye={projectConfigFileLocation:s,onNewVulnerabilities:o.onNewVulnerabilities??(o.failOnNewVulnerabilities?"fail":"warn"),onNoLongerDetectedVulnerabilities:o.onNoLongerDetectedVulnerabilities??"ignore",reportNoLongerDetectedVulnerabilities:o.reportNoLongerDetectedVulnerabilities??!0,consoleReport:o.consoleReport||"BY_PROJECT_DETAILED",createSubDirsForProject:o.createSubDirsForProject??!0,mavenRepo:o.mavenRepo??t,vexUrls:o.vexUrls??[],vexDir:O(e.workingDir,o.vexDir)??r,outDir:O(e.workingDir,o.outDir)??n,cacheDir:O(e.workingDir,o.cacheDir)??i,scanners:(o.scanners??l).map(f=>{if(typeof f!="string")throw new Error(`Invalid scanner name '${f}' in configuration file '${s}'`);let c=f.split("@");if(c.length>2)throw new Error(`Invalid scanner name '${f}' in configuration file '${s}'`);let a=c[0],d=c[1]??"";return{name:a,version:d}}),projects:(o.projects??[]).map(f=>{let c=f;if(!c.name)throw new Error("Project name is missing on entry:"+JSON.stringify(c));if(!c.version)throw new Error("Project version is missing on entry:"+JSON.stringify(c));if(!c.purl)throw new Error("Project purl is missing on entry:"+JSON.stringify(c));return c.purlAliases||(c.purlAliases=[]),c.enabled==null&&(c.enabled=!0),c.silent==null&&(c.silent=!1),c.minimumSeverity||(c.minimumSeverity="UNKNOWN"),c.sbomFile?{...c,sbomFile:O(e.workingDir,c.sbomFile)}:(c.detectNoLongerUsedVulnerabilities=u?c.purl.endsWith("-SNAPSHOT"):!0,f)})}}function O(e,t){if(t)return ce.default.isAbsolute(t)?t:(0,ce.resolve)(e,t)}var ue=require("fs/promises"),Le=require("path");var Pe=class{constructor(t){this.location=t}location;async read(){let t=await J(this.location);if(!t)throw new Error("Invalid VEX file");return t}async write(t){await ae(this.location,t)}async delete(){await(0,ue.unlink)(this.location)}};async function Fe(e,t){for(let r of await(0,ue.readdir)(e,{withFileTypes:!0}))r.name.endsWith(".json")?await t(new Pe((0,Le.resolve)(r.parentPath,r.name))):r.isDirectory()&&await Fe((0,Le.resolve)(r.parentPath,r.name),t)}async function ze({workingDir:e,existingPurl:t,newPurl:r}){let n=await X({workingDir:e});await Fe(n.vexDir,async i=>{await Zt(i,t,r)})}async function Zt(e,t,r){let n=await e.read(),i=!1,l=n.statements;for(let s of l){if(!s.products||s.products.some(u=>u["@id"]===r))continue;let o=s.products.findIndex(u=>u["@id"]===t);o!==-1&&(s.products?.splice(o+1,0,{"@id":r}),i=!0)}i&&(console.info(`Add ${r} to ${e.location}`),await e.write(n))}async function Qe({workingDir:e,projectName:t,referenceProjectVersion:r,targetProjectVersion:n}){let i=await X({workingDir:e});if(!i.projectConfigFileLocation)throw new Error("Missing project configuration file.");let l=i.projects.find(o=>o.name===t&&o.version===r);if(!l)throw new Error(`Project ${t} with version ${r} not found.`);let s=i.projects.find(o=>o.name===t&&o.version===n);s||(s=await er(t,i.projectConfigFileLocation,l,n)),await ze({workingDir:e,existingPurl:l.purl,newPurl:s.purl})}async function er(e,t,r,n){let i=await J(t),l=i.projects.findIndex(u=>u.name===r.name&&u.version===r.version),s=i.projects[l],o={...s};return o.version=n,o.purl=s.purl.replace(s.version,n),"sbomMavenCoordinates"in o?o.sbomMavenCoordinates=s.sbomMavenCoordinates.replace(s.version,n):"sbomFile"in o&&(o.sbomFile=s.sbomFile.replace(s.version,n)),i.projects.splice(l+1,0,o),console.info(`Add project ${e} with version ${n} to ${t}`),await ae(t,i),o}var te=(e,t=[])=>e.name==="up"||t.includes("vim")&&e.name==="k"||t.includes("emacs")&&e.ctrl&&e.name==="p",fe=(e,t=[])=>e.name==="down"||t.includes("vim")&&e.name==="j"||t.includes("emacs")&&e.ctrl&&e.name==="n";var re=e=>e.name==="backspace",ne=e=>e.name==="tab",ve=e=>"1234567890".includes(e.name),V=e=>e.name==="enter"||e.name==="return";var de=class extends Error{name="AbortPromptError";message="Prompt was aborted";constructor(t){super(),this.cause=t?.cause}},pe=class extends Error{name="CancelPromptError";message="Prompt was canceled"},ie=class extends Error{name="ExitPromptError"},he=class extends Error{name="HookError"},Y=class extends Error{name="ValidationError"};var rt=require("node:async_hooks");var me=require("node:async_hooks");var Ze=new me.AsyncLocalStorage;function tr(e){return{rl:e,hooks:[],hooksCleanup:[],hooksEffect:[],index:0,handleChange(){}}}function et(e,t){let r=tr(e);return Ze.run(r,()=>{function n(i){r.handleChange=()=>{r.index=0,i()},r.handleChange()}return t(n)})}function M(){let e=Ze.getStore();if(!e)throw new he("[Inquirer] Hook functions can only be called from within a prompt");return e}function Te(){return M().rl}function Re(e){let t=(...r)=>{let n=M(),i=!1,l=n.handleChange;n.handleChange=()=>{i=!0};let s=e(...r);return i&&l(),n.handleChange=l,s};return me.AsyncResource.bind(t)}function z(e){let t=M(),{index:r}=t,n={get(){return t.hooks[r]},set(l){t.hooks[r]=l},initialized:r in t.hooks},i=e(n);return t.index++,i}function tt(){M().handleChange()}var $={queue(e){let t=M(),{index:r}=t;t.hooksEffect.push(()=>{t.hooksCleanup[r]?.();let n=e(Te());if(n!=null&&typeof n!="function")throw new Y("useEffect return value must be a cleanup function or nothing.");t.hooksCleanup[r]=n})},run(){let e=M();Re(()=>{e.hooksEffect.forEach(t=>{t()}),e.hooksEffect.length=0})()},clearAll(){let e=M();e.hooksCleanup.forEach(t=>{t?.()}),e.hooksEffect.length=0,e.hooksCleanup.length=0}};function rr(e){return typeof e=="function"}function L(e){return z(t=>{let r=rt.AsyncResource.bind(function(l){t.get()!==l&&(t.set(l),tt())});if(t.initialized)return[t.get(),r];let n=rr(e)?e():e;return t.set(n),[n,r]})}function N(e,t){z(r=>{let n=r.get();(!Array.isArray(n)||t.some((l,s)=>!Object.is(l,n[s])))&&$.queue(e),r.set(t)})}var I=require("node:util");var B=A(require("node:process"),1);function nr(){return B.default.platform.startsWith("win")?!!B.default.env.CI||!!B.default.env.WT_SESSION||!!B.default.env.TERMINUS_SUBLIME||B.default.env.ConEmuTask==="{cmd::Cmder}"||B.default.env.TERM_PROGRAM==="Terminus-Sublime"||B.default.env.TERM_PROGRAM==="vscode"||B.default.env.TERM==="xterm-256color"||B.default.env.TERM==="alacritty"||B.default.env.TERMINAL_EMULATOR==="JetBrains-JediTerm":B.default.env.TERM!=="linux"}var nt={circleQuestionMark:"(?)",questionMarkPrefix:"(?)",square:"\u2588",squareDarkShade:"\u2593",squareMediumShade:"\u2592",squareLightShade:"\u2591",squareTop:"\u2580",squareBottom:"\u2584",squareLeft:"\u258C",squareRight:"\u2590",squareCenter:"\u25A0",bullet:"\u25CF",dot:"\u2024",ellipsis:"\u2026",pointerSmall:"\u203A",triangleUp:"\u25B2",triangleUpSmall:"\u25B4",triangleDown:"\u25BC",triangleDownSmall:"\u25BE",triangleLeftSmall:"\u25C2",triangleRightSmall:"\u25B8",home:"\u2302",heart:"\u2665",musicNote:"\u266A",musicNoteBeamed:"\u266B",arrowUp:"\u2191",arrowDown:"\u2193",arrowLeft:"\u2190",arrowRight:"\u2192",arrowLeftRight:"\u2194",arrowUpDown:"\u2195",almostEqual:"\u2248",notEqual:"\u2260",lessOrEqual:"\u2264",greaterOrEqual:"\u2265",identical:"\u2261",infinity:"\u221E",subscriptZero:"\u2080",subscriptOne:"\u2081",subscriptTwo:"\u2082",subscriptThree:"\u2083",subscriptFour:"\u2084",subscriptFive:"\u2085",subscriptSix:"\u2086",subscriptSeven:"\u2087",subscriptEight:"\u2088",subscriptNine:"\u2089",oneHalf:"\xBD",oneThird:"\u2153",oneQuarter:"\xBC",oneFifth:"\u2155",oneSixth:"\u2159",oneEighth:"\u215B",twoThirds:"\u2154",twoFifths:"\u2156",threeQuarters:"\xBE",threeFifths:"\u2157",threeEighths:"\u215C",fourFifths:"\u2158",fiveSixths:"\u215A",fiveEighths:"\u215D",sevenEighths:"\u215E",line:"\u2500",lineBold:"\u2501",lineDouble:"\u2550",lineDashed0:"\u2504",lineDashed1:"\u2505",lineDashed2:"\u2508",lineDashed3:"\u2509",lineDashed4:"\u254C",lineDashed5:"\u254D",lineDashed6:"\u2574",lineDashed7:"\u2576",lineDashed8:"\u2578",lineDashed9:"\u257A",lineDashed10:"\u257C",lineDashed11:"\u257E",lineDashed12:"\u2212",lineDashed13:"\u2013",lineDashed14:"\u2010",lineDashed15:"\u2043",lineVertical:"\u2502",lineVerticalBold:"\u2503",lineVerticalDouble:"\u2551",lineVerticalDashed0:"\u2506",lineVerticalDashed1:"\u2507",lineVerticalDashed2:"\u250A",lineVerticalDashed3:"\u250B",lineVerticalDashed4:"\u254E",lineVerticalDashed5:"\u254F",lineVerticalDashed6:"\u2575",lineVerticalDashed7:"\u2577",lineVerticalDashed8:"\u2579",lineVerticalDashed9:"\u257B",lineVerticalDashed10:"\u257D",lineVerticalDashed11:"\u257F",lineDownLeft:"\u2510",lineDownLeftArc:"\u256E",lineDownBoldLeftBold:"\u2513",lineDownBoldLeft:"\u2512",lineDownLeftBold:"\u2511",lineDownDoubleLeftDouble:"\u2557",lineDownDoubleLeft:"\u2556",lineDownLeftDouble:"\u2555",lineDownRight:"\u250C",lineDownRightArc:"\u256D",lineDownBoldRightBold:"\u250F",lineDownBoldRight:"\u250E",lineDownRightBold:"\u250D",lineDownDoubleRightDouble:"\u2554",lineDownDoubleRight:"\u2553",lineDownRightDouble:"\u2552",lineUpLeft:"\u2518",lineUpLeftArc:"\u256F",lineUpBoldLeftBold:"\u251B",lineUpBoldLeft:"\u251A",lineUpLeftBold:"\u2519",lineUpDoubleLeftDouble:"\u255D",lineUpDoubleLeft:"\u255C",lineUpLeftDouble:"\u255B",lineUpRight:"\u2514",lineUpRightArc:"\u2570",lineUpBoldRightBold:"\u2517",lineUpBoldRight:"\u2516",lineUpRightBold:"\u2515",lineUpDoubleRightDouble:"\u255A",lineUpDoubleRight:"\u2559",lineUpRightDouble:"\u2558",lineUpDownLeft:"\u2524",lineUpBoldDownBoldLeftBold:"\u252B",lineUpBoldDownBoldLeft:"\u2528",lineUpDownLeftBold:"\u2525",lineUpBoldDownLeftBold:"\u2529",lineUpDownBoldLeftBold:"\u252A",lineUpDownBoldLeft:"\u2527",lineUpBoldDownLeft:"\u2526",lineUpDoubleDownDoubleLeftDouble:"\u2563",lineUpDoubleDownDoubleLeft:"\u2562",lineUpDownLeftDouble:"\u2561",lineUpDownRight:"\u251C",lineUpBoldDownBoldRightBold:"\u2523",lineUpBoldDownBoldRight:"\u2520",lineUpDownRightBold:"\u251D",lineUpBoldDownRightBold:"\u2521",lineUpDownBoldRightBold:"\u2522",lineUpDownBoldRight:"\u251F",lineUpBoldDownRight:"\u251E",lineUpDoubleDownDoubleRightDouble:"\u2560",lineUpDoubleDownDoubleRight:"\u255F",lineUpDownRightDouble:"\u255E",lineDownLeftRight:"\u252C",lineDownBoldLeftBoldRightBold:"\u2533",lineDownLeftBoldRightBold:"\u252F",lineDownBoldLeftRight:"\u2530",lineDownBoldLeftBoldRight:"\u2531",lineDownBoldLeftRightBold:"\u2532",lineDownLeftRightBold:"\u252E",lineDownLeftBoldRight:"\u252D",lineDownDoubleLeftDoubleRightDouble:"\u2566",lineDownDoubleLeftRight:"\u2565",lineDownLeftDoubleRightDouble:"\u2564",lineUpLeftRight:"\u2534",lineUpBoldLeftBoldRightBold:"\u253B",lineUpLeftBoldRightBold:"\u2537",lineUpBoldLeftRight:"\u2538",lineUpBoldLeftBoldRight:"\u2539",lineUpBoldLeftRightBold:"\u253A",lineUpLeftRightBold:"\u2536",lineUpLeftBoldRight:"\u2535",lineUpDoubleLeftDoubleRightDouble:"\u2569",lineUpDoubleLeftRight:"\u2568",lineUpLeftDoubleRightDouble:"\u2567",lineUpDownLeftRight:"\u253C",lineUpBoldDownBoldLeftBoldRightBold:"\u254B",lineUpDownBoldLeftBoldRightBold:"\u2548",lineUpBoldDownLeftBoldRightBold:"\u2547",lineUpBoldDownBoldLeftRightBold:"\u254A",lineUpBoldDownBoldLeftBoldRight:"\u2549",lineUpBoldDownLeftRight:"\u2540",lineUpDownBoldLeftRight:"\u2541",lineUpDownLeftBoldRight:"\u253D",lineUpDownLeftRightBold:"\u253E",lineUpBoldDownBoldLeftRight:"\u2542",lineUpDownLeftBoldRightBold:"\u253F",lineUpBoldDownLeftBoldRight:"\u2543",lineUpBoldDownLeftRightBold:"\u2544",lineUpDownBoldLeftBoldRight:"\u2545",lineUpDownBoldLeftRightBold:"\u2546",lineUpDoubleDownDoubleLeftDoubleRightDouble:"\u256C",lineUpDoubleDownDoubleLeftRight:"\u256B",lineUpDownLeftDoubleRightDouble:"\u256A",lineCross:"\u2573",lineBackslash:"\u2572",lineSlash:"\u2571"},it={tick:"\u2714",info:"\u2139",warning:"\u26A0",cross:"\u2718",squareSmall:"\u25FB",squareSmallFilled:"\u25FC",circle:"\u25EF",circleFilled:"\u25C9",circleDotted:"\u25CC",circleDouble:"\u25CE",circleCircle:"\u24DE",circleCross:"\u24E7",circlePipe:"\u24BE",radioOn:"\u25C9",radioOff:"\u25EF",checkboxOn:"\u2612",checkboxOff:"\u2610",checkboxCircleOn:"\u24E7",checkboxCircleOff:"\u24BE",pointer:"\u276F",triangleUpOutline:"\u25B3",triangleLeft:"\u25C0",triangleRight:"\u25B6",lozenge:"\u25C6",lozengeOutline:"\u25C7",hamburger:"\u2630",smiley:"\u32E1",mustache:"\u0DF4",star:"\u2605",play:"\u25B6",nodejs:"\u2B22",oneSeventh:"\u2150",oneNinth:"\u2151",oneTenth:"\u2152"},ir={tick:"\u221A",info:"i",warning:"\u203C",cross:"\xD7",squareSmall:"\u25A1",squareSmallFilled:"\u25A0",circle:"( )",circleFilled:"(*)",circleDotted:"( )",circleDouble:"( )",circleCircle:"(\u25CB)",circleCross:"(\xD7)",circlePipe:"(\u2502)",radioOn:"(*)",radioOff:"( )",checkboxOn:"[\xD7]",checkboxOff:"[ ]",checkboxCircleOn:"(\xD7)",checkboxCircleOff:"( )",pointer:">",triangleUpOutline:"\u2206",triangleLeft:"\u25C4",triangleRight:"\u25BA",lozenge:"\u2666",lozengeOutline:"\u25CA",hamburger:"\u2261",smiley:"\u263A",mustache:"\u250C\u2500\u2510",star:"\u2736",play:"\u25BA",nodejs:"\u2666",oneSeventh:"1/7",oneNinth:"1/9",oneTenth:"1/10"},or={...nt,...it},sr={...nt,...ir},lr=nr(),ar=lr?or:sr,Q=ar,sn=Object.entries(it);var ot={prefix:{idle:(0,I.styleText)("blue","?"),done:(0,I.styleText)("green",Q.tick)},spinner:{interval:80,frames:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"].map(e=>(0,I.styleText)("yellow",e))},style:{answer:e=>(0,I.styleText)("cyan",e),message:e=>(0,I.styleText)("bold",e),error:e=>(0,I.styleText)("red",`> ${e}`),defaultAnswer:e=>(0,I.styleText)("dim",`(${e})`),help:e=>(0,I.styleText)("dim",e),highlight:e=>(0,I.styleText)("cyan",e),key:e=>(0,I.styleText)("cyan",(0,I.styleText)("bold",`<${e}>`))}};function st(e){if(typeof e!="object"||e===null)return!1;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function lt(...e){let t={};for(let r of e)for(let[n,i]of Object.entries(r)){let l=t[n];t[n]=st(l)&&st(i)?lt(l,i):i}return t}function j(...e){let t=[ot,...e.filter(r=>r!=null)];return lt(...t)}function W({status:e="idle",theme:t}){let[r,n]=L(!1),[i,l]=L(0),{prefix:s,spinner:o}=j(t);return N(()=>{if(e==="loading"){let f,c=-1,a=setTimeout(()=>{n(!0),f=setInterval(()=>{c=c+1,l(c%o.frames.length)},o.interval)},300);return()=>{clearTimeout(a),clearInterval(f)}}else n(!1)},[e]),r?o.frames[i]:typeof s=="string"?s:s[e==="loading"?"idle":e]??s.idle}function oe(e,t){return z(r=>{let n=r.get();if(!n||n.dependencies.length!==t.length||n.dependencies.some((i,l)=>i!==t[l])){let i=e();return r.set({value:i,dependencies:t}),i}return n.value})}function K(e){return L({current:e})[0]}function H(e){let t=K(e);t.current=e,N(r=>{let n=!1,i=Re((l,s)=>{n||t.current(s,r)});return r.input.on("keypress",i),()=>{n=!0,r.input.removeListener("keypress",i)}},[])}var Pt=A(ct(),1);var ut=(()=>{let e=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;return t=>{let r=0;for(e.lastIndex=0;e.test(t);)r+=1;return t.length-r}})(),ft=e=>e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510,dt=e=>e===8987||e===9001||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12771||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=19903||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e>=131072&&e<=196605||e>=196608&&e<=262141;var fr=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]|\u001b\]8;[^;]*;.*?(?:\u0007|\u001b\u005c)/y,dr=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,pt=/(?:(?![\uFF61-\uFF9F\uFF00-\uFFEF])[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\p{Script=Tangut}]){1,1000}/yu,pr=/\t{1,1000}/y,ht=new RegExp("[\\u{1F1E6}-\\u{1F1FF}]{2}|\\u{1F3F4}[\\u{E0061}-\\u{E007A}]{2}[\\u{E0030}-\\u{E0039}\\u{E0061}-\\u{E007A}]{1,3}\\u{E007F}|(?:\\p{Emoji}\\uFE0F\\u20E3?|\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|\\p{Emoji_Presentation})(?:\\u200D(?:\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|\\p{Emoji_Presentation}|\\p{Emoji}\\uFE0F\\u20E3?))*","yu"),hr=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,mr=new RegExp("\\p{M}+","gu"),gr={limit:1/0,ellipsis:""},mt=(e,t={},r={})=>{let n=t.limit??1/0,i=t.ellipsis??"",l=t?.ellipsisWidth??(i?mt(i,gr,r).width:0),s=0,o=r.controlWidth??0,u=r.tabWidth??8,f=r.emojiWidth??2,c=2,a=r.regularWidth??1,d=r.wideWidth??c,x=[[hr,a],[fr,s],[dr,o],[pr,u],[ht,f],[pt,d]],m=0,p=0,h=e.length,b=0,g=!1,D=h,S=Math.max(0,n-l),P=0,F=0,T=0,R=0;e:for(;;){if(F>P||p>=h&&p>m){let w=e.slice(P,F)||e.slice(m,p);b=0;for(let E of w.replaceAll(mr,"")){let y=E.codePointAt(0)||0;if(ft(y)?R=c:dt(y)?R=d:R=a,T+R>S&&(D=Math.min(D,Math.max(P,m)+b)),T+R>n){g=!0;break e}b+=E.length,T+=R}P=F=0}if(p>=h)break e;for(let w=0,E=x.length;w<E;w++){let[y,v]=x[w];if(y.lastIndex=p,y.test(e)){if(b=y===pt?ut(e.slice(p,y.lastIndex)):y===ht?1:y.lastIndex-p,R=b*v,T+R>S&&(D=Math.min(D,p+Math.floor((S-T)/v))),T+R>n){g=!0;break e}T+=R,P=m,F=p,p=m=y.lastIndex;continue e}}p+=1}return{width:g?S:T,index:g?D:h,truncated:g,ellipsed:g&&n>=l}},gt=mt;var wr={limit:1/0,ellipsis:"",ellipsisWidth:0},xr=(e,t={})=>gt(e,wr,t).width,k=xr;var ge="\x1B",St="\x9B",br=39,Ie="\x07",Et="[",Dr="]",yt="m",Ue=`${Dr}8;;`,wt=new RegExp(`(?:\\${Et}(?<code>\\d+)m|\\${Ue}(?<uri>.*)${Ie})`,"y"),xt=e=>{if(e>=30&&e<=37||e>=90&&e<=97)return 39;if(e>=40&&e<=47||e>=100&&e<=107)return 49;if(e===1||e===2)return 22;if(e===3)return 23;if(e===4)return 24;if(e===7)return 27;if(e===8)return 28;if(e===9)return 29;if(e===0)return 0},bt=e=>`${ge}${Et}${e}${yt}`,Dt=e=>`${ge}${Ue}${e}${Ie}`,Be=(e,t,r)=>{let n=t[Symbol.iterator](),i=!1,l=!1,s=e.at(-1),o=s===void 0?0:k(s),u=n.next(),f=n.next(),c=0;for(;!u.done;){let a=u.value,d=k(a);o+d<=r?e[e.length-1]+=a:(e.push(a),o=0),(a===ge||a===St)&&(i=!0,l=t.startsWith(Ue,c+1)),i?l?a===Ie&&(i=!1,l=!1):a===yt&&(i=!1):(o+=d,o===r&&!f.done&&(e.push(""),o=0)),u=f,f=n.next(),c+=a.length}s=e.at(-1),!o&&s!==void 0&&s.length&&e.length>1&&(e[e.length-2]+=e.pop())},Sr=e=>{let t=e.split(" "),r=t.length;for(;r&&!k(t[r-1]);)r--;return r===t.length?e:t.slice(0,r).join(" ")+t.slice(r).join("")},Er=(e,t,r={})=>{if(r.trim!==!1&&e.trim()==="")return"";let n="",i,l,s=e.split(" "),o=[""],u=0;for(let a=0;a<s.length;a++){let d=s[a];if(r.trim!==!1){let m=o.at(-1)??"",p=m.trimStart();m.length!==p.length&&(o[o.length-1]=p,u=k(p))}a!==0&&(u>=t&&(r.wordWrap===!1||r.trim===!1)&&(o.push(""),u=0),(u||r.trim===!1)&&(o[o.length-1]+=" ",u++));let x=k(d);if(r.hard&&x>t){let m=t-u,p=1+Math.floor((x-m-1)/t);Math.floor((x-1)/t)<p&&o.push(""),Be(o,d,t),u=k(o.at(-1)??"");continue}if(u+x>t&&u&&x){if(r.wordWrap===!1&&u<t){Be(o,d,t),u=k(o.at(-1)??"");continue}o.push(""),u=0}if(u+x>t&&r.wordWrap===!1){Be(o,d,t),u=k(o.at(-1)??"");continue}o[o.length-1]+=d,u+=x}r.trim!==!1&&(o=o.map(a=>Sr(a)));let f=o.join(`
|
|
4
|
+
`),c=!1;for(let a=0;a<f.length;a++){let d=f[a];if(n+=d,c)c=!1;else if(c=d>="\uD800"&&d<="\uDBFF",c)continue;if(d===ge||d===St){wt.lastIndex=a+1;let m=wt.exec(f)?.groups;if(m?.code!==void 0){let p=Number.parseFloat(m.code);i=p===br?void 0:p}else m?.uri!==void 0&&(l=m.uri.length===0?void 0:m.uri)}if(f[a+1]===`
|
|
5
|
+
`){l&&(n+=Dt(""));let x=i?xt(i):void 0;i&&x&&(n+=bt(x))}else d===`
|
|
6
|
+
`&&(i&&xt(i)&&(n+=bt(i)),l&&(n+=Dt(l)))}return n},yr=/\r?\n/;function Lt(e,t,r){return String(e).normalize().split(yr).map(n=>Er(n,t,r)).join(`
|
|
7
7
|
`)}function se(e,t){return e.split(`
|
|
8
8
|
`).flatMap(r=>Lt(r,t,{trim:!1,hard:!0}).split(`
|
|
9
9
|
`).map(n=>n.trimEnd())).join(`
|
|
10
|
-
`)}function we(){return(0,Pt.default)({defaultWidth:80,output:Te().output})}function
|
|
11
|
-
`)),u=o.reduce((
|
|
12
|
-
`)}var
|
|
13
|
-
`).length,
|
|
14
|
-
`).pop()??"",le=class{height=0;extraLinesUnderPrompt=0;cursorPos;rl;constructor(t){this.rl=t,this.cursorPos=t.getCursorPos()}write(t){this.rl.output.unmute(),this.rl.output.write(t),this.rl.output.mute()}render(t,r=""){let n=
|
|
10
|
+
`)}function we(){return(0,Pt.default)({defaultWidth:80,output:Te().output})}function Lr({active:e,renderedItems:t,pageSize:r,loop:n}){let i=K({lastPointer:e,lastActive:void 0}),{lastPointer:l,lastActive:s}=i.current,o=Math.floor(r/2),u=t.reduce((a,d)=>a+d.length,0),f=t.slice(0,e).reduce((a,d)=>a+d.length,0),c=f;if(u>r)if(n)c=l,s!=null&&s<e&&e-s<r&&(c=Math.min(o,Math.abs(e-s)===1?Math.min(l+(t[s]?.length??0),Math.max(f,l)):l+e-s));else{let a=t.slice(e).reduce((d,x)=>d+x.length,0);c=a<r-o?r-a:Math.min(f,o)}return i.current.lastPointer=c,i.current.lastActive=e,c}function Ce({items:e,active:t,renderItem:r,pageSize:n,loop:i=!0}){let l=we(),s=b=>(b%e.length+e.length)%e.length,o=e.map((b,g)=>b==null?[]:se(r({item:b,index:g,isActive:g===t}),l).split(`
|
|
11
|
+
`)),u=o.reduce((b,g)=>b+g.length,0),f=b=>o[b]??[],c=Lr({active:t,renderedItems:o,pageSize:n,loop:i}),a=f(t).slice(0,n),d=c+a.length<=n?c:n-a.length,x=Array.from({length:n});x.splice(d,a.length,...a);let m=new Set([t]),p=d+a.length,h=s(t+1);for(;p<n&&!m.has(h)&&(i&&u>n?h!==t:h>t);){let g=f(h).slice(0,n-p);x.splice(p,g.length,...g),m.add(h),p+=g.length,h=s(h+1)}for(p=d-1,h=s(t-1);p>=0&&!m.has(h)&&(i&&u>n?h!==t:h<t);){let b=f(h),g=b.slice(Math.max(0,b.length-p-1));x.splice(p-g.length+1,g.length,...g),m.add(h),p-=g.length,h=s(h-1)}return x.filter(b=>typeof b=="string").join(`
|
|
12
|
+
`)}var _t=A(require("node:readline"),1),Nt=require("node:async_hooks"),jt=A(vt(),1);var G=[];G.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&G.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&G.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var xe=e=>!!e&&typeof e=="object"&&typeof e.removeListener=="function"&&typeof e.emit=="function"&&typeof e.reallyExit=="function"&&typeof e.listeners=="function"&&typeof e.kill=="function"&&typeof e.pid=="number"&&typeof e.on=="function",Ne=Symbol.for("signal-exit emitter"),je=globalThis,Fr=Object.defineProperty.bind(Object),ke=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(je[Ne])return je[Ne];Fr(je,Ne,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(t,r){this.listeners[t].push(r)}removeListener(t,r){let n=this.listeners[t],i=n.indexOf(r);i!==-1&&(i===0&&n.length===1?n.length=0:n.splice(i,1))}emit(t,r,n){if(this.emitted[t])return!1;this.emitted[t]=!0;let i=!1;for(let l of this.listeners[t])i=l(r,n)===!0||i;return t==="exit"&&(i=this.emit("afterExit",r,n)||i),i}},be=class{},vr=e=>({onExit(t,r){return e.onExit(t,r)},load(){return e.load()},unload(){return e.unload()}}),Oe=class extends be{onExit(){return()=>{}}load(){}unload(){}},Ae=class extends be{#r=Ve.platform==="win32"?"SIGINT":"SIGHUP";#t=new ke;#e;#o;#s;#i={};#n=!1;constructor(t){super(),this.#e=t,this.#i={};for(let r of G)this.#i[r]=()=>{let n=this.#e.listeners(r),{count:i}=this.#t,l=t;if(typeof l.__signal_exit_emitter__=="object"&&typeof l.__signal_exit_emitter__.count=="number"&&(i+=l.__signal_exit_emitter__.count),n.length===i){this.unload();let s=this.#t.emit("exit",null,r),o=r==="SIGHUP"?this.#r:r;s||t.kill(t.pid,o)}};this.#s=t.reallyExit,this.#o=t.emit}onExit(t,r){if(!xe(this.#e))return()=>{};this.#n===!1&&this.load();let n=r?.alwaysLast?"afterExit":"exit";return this.#t.on(n,t),()=>{this.#t.removeListener(n,t),this.#t.listeners.exit.length===0&&this.#t.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#n){this.#n=!0,this.#t.count+=1;for(let t of G)try{let r=this.#i[t];r&&this.#e.on(t,r)}catch{}this.#e.emit=(t,...r)=>this.#a(t,...r),this.#e.reallyExit=t=>this.#l(t)}}unload(){this.#n&&(this.#n=!1,G.forEach(t=>{let r=this.#i[t];if(!r)throw new Error("Listener not defined for signal: "+t);try{this.#e.removeListener(t,r)}catch{}}),this.#e.emit=this.#o,this.#e.reallyExit=this.#s,this.#t.count-=1)}#l(t){return xe(this.#e)?(this.#e.exitCode=t||0,this.#t.emit("exit",this.#e.exitCode,null),this.#s.call(this.#e,this.#e.exitCode)):0}#a(t,...r){let n=this.#o;if(t==="exit"&&xe(this.#e)){typeof r[0]=="number"&&(this.#e.exitCode=r[0]);let i=n.call(this.#e,t,...r);return this.#t.emit("exit",this.#e.exitCode,null),i}else return n.call(this.#e,t,...r)}},Ve=globalThis.process,{onExit:Tt,load:Mn,unload:$n}=vr(xe(Ve)?new Ae(Ve):new Oe);var Ct=require("node:util");var Bt="\x1B[?25l",It="\x1B[?25h",Me=(e=1)=>e>0?`\x1B[${e}A`:"",$e=(e=1)=>e>0?`\x1B[${e}B`:"",We=(e,t)=>typeof t=="number"&&!Number.isNaN(t)?`\x1B[${t+1};${e+1}H`:`\x1B[${e+1}G`,Rt="\x1B[2K",Ke=e=>e>0?(Rt+Me(1)).repeat(e-1)+Rt+"\x1B[G":"";var Ut=e=>e.split(`
|
|
13
|
+
`).length,Tr=e=>e.split(`
|
|
14
|
+
`).pop()??"",le=class{height=0;extraLinesUnderPrompt=0;cursorPos;rl;constructor(t){this.rl=t,this.cursorPos=t.getCursorPos()}write(t){this.rl.output.unmute(),this.rl.output.write(t),this.rl.output.mute()}render(t,r=""){let n=Tr(t),i=(0,Ct.stripVTControlCharacters)(n),l=i;this.rl.line.length>0&&(l=l.slice(0,-this.rl.line.length)),this.rl.setPrompt(l),this.cursorPos=this.rl.getCursorPos();let s=we();t=se(t,s),r=se(r,s),i.length%s===0&&(t+=`
|
|
15
15
|
`);let o=t+(r?`
|
|
16
16
|
`+r:""),f=Math.floor(i.length/s)-this.cursorPos.rows+(r?Ut(r):0);f>0&&(o+=Me(f)),o+=We(this.cursorPos.cols),this.write($e(this.extraLinesUnderPrompt)+Ke(this.height)+o),this.extraLinesUnderPrompt=f,this.height=Ut(o)}checkCursorPos(){let t=this.rl.getCursorPos();t.cols!==this.cursorPos.cols&&(this.write(We(t.cols)),this.cursorPos=t)}done({clearContent:t}){this.rl.setPrompt("");let r=$e(this.extraLinesUnderPrompt);r+=t?Ke(this.height):`
|
|
17
|
-
`,r+=It,this.write(r),this.rl.close()}};var De=class extends Promise{static withResolver(){let t,r;return{promise:new Promise((i,l)=>{t=i,r=l}),resolve:t,reject:r}}};var
|
|
18
|
-
at ${
|
|
19
|
-
`).trimEnd()}${Bt}`});var
|
|
17
|
+
`,r+=It,this.write(r),this.rl.close()}};var De=class extends Promise{static withResolver(){let t,r;return{promise:new Promise((i,l)=>{t=i,r=l}),resolve:t,reject:r}}};var kt=A(require("node:path"),1),Rr=globalThis.setImmediate;function Br(){let e=Error.prepareStackTrace,t=[];try{Error.prepareStackTrace=(r,n)=>{let i=n.slice(1);return t=i,i},new Error().stack}catch{return t}return Error.prepareStackTrace=e,t}function q(e){let t=Br();return(n,i={})=>{let{input:l=process.stdin,signal:s}=i,o=new Set,u=new jt.default;u.pipe(i.output??process.stdout);let f=_t.createInterface({terminal:!0,input:l,output:u});u.mute();let c=new le(f),{promise:a,resolve:d,reject:x}=De.withResolver(),m=()=>x(new pe);if(s){let h=()=>x(new de({cause:s.reason}));if(s.aborted)return h(),Object.assign(a,{cancel:m});s.addEventListener("abort",h),o.add(()=>s.removeEventListener("abort",h))}o.add(Tt((h,b)=>{x(new ie(`User force closed the prompt with ${h} ${b}`))}));let p=()=>x(new ie("User force closed the prompt with SIGINT"));return f.on("SIGINT",p),o.add(()=>f.removeListener("SIGINT",p)),et(f,h=>{let b=Nt.AsyncResource.bind(()=>$.clearAll());f.on("close",b),o.add(()=>f.removeListener("close",b));let g=()=>{let D=()=>c.checkCursorPos();f.input.on("keypress",D),o.add(()=>f.input.removeListener("keypress",D));let S=null;h(()=>{let P=!1;try{let F=e(n,w=>{P?d(w):S={value:w}});if(F===void 0){let w=t[1]?.getFileName();throw w&&!w.startsWith("file://")&&(w=kt.default.resolve(w)),new Error(`Prompt functions must return a string.
|
|
18
|
+
at ${w}`)}let[T,R]=typeof F=="string"?[F]:F;c.render(T,R),$.run()}catch(F){x(F)}if(P=!0,S!==null){let{value:F}=S;S=null,d(F)}})};return"readableFlowing"in l?Rr(g):g(),Object.assign(a.then(D=>($.clearAll(),D),D=>{throw $.clearAll(),D}).finally(()=>{o.forEach(D=>D()),c.done({clearContent:!!i.clearPromptOnDone}),u.end()}).then(()=>a),{cancel:m})})}}var Ot=require("node:util");var C=class{separator=(0,Ot.styleText)("dim",Array.from({length:15}).join(Q.line));type="separator";constructor(t){t&&(this.separator=t)}static isSeparator(t){return!!(t&&typeof t=="object"&&"type"in t&&t.type==="separator")}};function At(e,t){let r=t!==!1;return/^(y|yes)/i.test(e)?r=!0:/^(n|no)/i.test(e)&&(r=!1),r}function Vt(e){return e?"Yes":"No"}var He=q((e,t)=>{let{transformer:r=Vt}=e,[n,i]=L("idle"),[l,s]=L(""),o=j(e.theme),u=W({status:n,theme:o});H((d,x)=>{if(n==="idle")if(V(d)){let m=At(l,e.default);s(r(m)),i("done"),t(m)}else if(ne(d)){let m=Vt(!At(l,e.default));x.clearLine(0),x.write(m),s(m)}else s(x.line)});let f=l,c="";n==="done"?f=o.style.answer(l):c=` ${o.style.defaultAnswer(e.default===!1?"y/N":"Y/n")}`;let a=o.style.message(e.message,n);return`${u} ${a}${c} ${f}`});var Ir={validationFailureMode:"keep"},Ge=q((e,t)=>{let{prefill:r="tab"}=e,n=j(Ir,e.theme),[i,l]=L("idle"),[s,o]=L(String(e.default??"")),[u,f]=L(),[c,a]=L(""),d=W({status:i,theme:n});async function x(g){let{required:D,pattern:S,patternError:P="Invalid input"}=e;return D&&!g?"You must provide a value":S&&!S.test(g)?P:typeof e.validate=="function"?await e.validate(g)||"You must provide a valid value":!0}H(async(g,D)=>{if(i==="idle")if(V(g)){let S=c||s;l("loading");let P=await x(S);P===!0?(a(S),l("done"),t(S)):(n.validationFailureMode==="clear"?a(""):D.write(c),f(P),l("idle"))}else re(g)&&!c?o(""):ne(g)&&!c?(o(""),D.clearLine(0),D.write(s),a(s)):(a(D.line),f(void 0))}),N(g=>{r==="editable"&&s&&(g.write(s),a(s))},[]);let m=n.style.message(e.message,i),p=c;typeof e.transformer=="function"?p=e.transformer(c,{isFinal:i==="done"}):i==="done"&&(p=n.style.answer(c));let h;s&&i!=="done"&&!c&&(h=n.style.defaultAnswer(s));let b="";return u&&(b=n.style.error(u)),[[d,m,h,p].filter(g=>g!==void 0).join(" "),b]});var Z=require("node:util");var Ur={icon:{cursor:Q.pointer},style:{disabled:e=>(0,Z.styleText)("dim",e),description:e=>(0,Z.styleText)("cyan",e),keysHelpTip:e=>e.map(([t,r])=>`${(0,Z.styleText)("bold",t)} ${(0,Z.styleText)("dim",r)}`).join((0,Z.styleText)("dim"," \u2022 "))},i18n:{disabledError:"This option is disabled and cannot be selected."},indexMode:"hidden",keybindings:[]};function qe(e){return!C.isSeparator(e)&&!e.disabled}function Je(e){return!C.isSeparator(e)}function Cr(e){return e.map(t=>{if(C.isSeparator(t))return t;if(typeof t!="object"||t===null||!("value"in t)){let i=String(t);return{value:t,name:i,short:i,disabled:!1}}let r=t.name??String(t.value),n={value:t.value,name:r,short:t.short??r,disabled:t.disabled??!1};return t.description&&(n.description=t.description),n})}var Se=q((e,t)=>{let{loop:r=!0,pageSize:n=7}=e,i=j(Ur,e.theme),{keybindings:l}=i,[s,o]=L("idle"),u=W({status:s,theme:i}),f=K(),c=!l.includes("vim"),a=oe(()=>Cr(e.choices),[e.choices]),d=oe(()=>{let w=a.findIndex(Je),E=a.findLastIndex(Je);if(w===-1)throw new Y("[select prompt] No selectable choices. All choices are disabled.");return{first:w,last:E}},[a]),x=oe(()=>"default"in e?a.findIndex(w=>qe(w)&&w.value===e.default):-1,[e.default,a]),[m,p]=L(x===-1?d.first:x),h=a[m];if(h==null||C.isSeparator(h))throw new Error("Active index does not point to a choice");let[b,g]=L();H((w,E)=>{if(clearTimeout(f.current),b&&g(void 0),V(w))h.disabled?g(i.i18n.disabledError):(o("done"),t(h.value));else if(te(w,l)||fe(w,l)){if(E.clearLine(0),r||te(w,l)&&m!==d.first||fe(w,l)&&m!==d.last){let y=te(w,l)?-1:1,v=m;do v=(v+y+a.length)%a.length;while(!Je(a[v]));p(v)}}else if(ve(w)&&!Number.isNaN(Number(E.line))){let y=Number(E.line)-1,v=-1,_=a.findIndex(ee=>C.isSeparator(ee)?!1:(v++,v===y)),Ee=a[_];Ee!=null&&qe(Ee)&&p(_),f.current=setTimeout(()=>{E.clearLine(0)},700)}else if(re(w))E.clearLine(0);else if(c){let y=E.line.toLowerCase(),v=a.findIndex(_=>C.isSeparator(_)||!qe(_)?!1:_.name.toLowerCase().startsWith(y));v!==-1&&p(v),f.current=setTimeout(()=>{E.clearLine(0)},700)}}),N(()=>()=>{clearTimeout(f.current)},[]);let D=i.style.message(e.message,s),S=i.style.keysHelpTip([["\u2191\u2193","navigate"],["\u23CE","select"]]),P=0,F=Ce({items:a,active:m,renderItem({item:w,isActive:E,index:y}){if(C.isSeparator(w))return P++,` ${w.separator}`;let v=E?i.icon.cursor:" ",_=i.indexMode==="number"?`${y+1-P}. `:"";if(w.disabled){let ee=typeof w.disabled=="string"?w.disabled:"(disabled)",$t=E?i.icon.cursor:"-";return i.style.disabled(`${$t} ${_}${w.name} ${ee}`)}return(E?i.style.highlight:ee=>ee)(`${v} ${_}${w.name}`)},pageSize:n,loop:r});if(s==="done")return[u,D,i.style.answer(h.short)].filter(Boolean).join(" ");let{description:T}=h;return`${[[u,D].filter(Boolean).join(" "),F," ",T?i.style.description(T):"",b?i.style.error(b):"",S].filter(Boolean).join(`
|
|
19
|
+
`).trimEnd()}${Bt}`});var Mt=process.cwd();(async()=>{let{projectName:e,referenceProjectVersion:t,targetProjectVersion:r}=await _r();await Qe({workingDir:Mt,projectName:e,referenceProjectVersion:t,targetProjectVersion:r})})();async function _r(){let e=process.argv[2];if(!e)return Nr();let t=process.argv[3];if(!t)throw new Error("Missing reference project version.");let r=process.argv[4];if(!r)throw new Error("Missing target project version.");return{projectName:e,referenceProjectVersion:t,targetProjectVersion:r}}async function Nr(){try{let e=await X({workingDir:Mt}),t=new Map;e.projects.forEach(u=>{let f=t.get(u.name);if(!f){t.set(u.name,[u.version]);return}f.push(u.version)});let r=Array.from(t.keys());r.sort();let n=await Se({message:"Choose project name:",choices:r.map(u=>({name:u,value:u})),pageSize:15}),i=t.get(n);i.sort();let l=await Se({message:"Choose reference project version:",choices:i.map(u=>({name:u,value:u})),pageSize:15}),s=await Ge({message:`Enter the target project version (e.g. ${l}):`,required:!0});return await He({message:`New project ${n}@${s} will be added based on ${l}.
|
|
20
20
|
Do you want to proceed?`})||(console.log("Aborted."),process.exit(0)),{projectName:n,referenceProjectVersion:l,targetProjectVersion:s}}catch(e){console.log(`Aborted: ${e}`),process.exit(0)}}
|
package/dist/add-statement.js
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";var
|
|
3
|
-
`,n=await Xt(e,r);await(0,k.writeFile)(e,n,{encoding:"utf-8"})}async function zt(e){try{return await(0,k.access)(e,k.constants.F_OK),!0}catch{return!1}}async function Xt(e,t){let r=await Zt();if(!r)return t;let n=await r.resolveConfig(e);return n?await r.format(t,{...n,filepath:e}):t}var Qt;function Zt(){return Qt??=import("prettier").catch(()=>{})}var Be;async function et(e){if(Be)return Be;let t="https://repository.conterra.de/repository/maven-mirror-ct",r=G(e.workingDir,"input/vex"),n=G(e.workingDir,"output"),i=G(e.workingDir,"cache"),a=["grype","trivy","ossindex"],s=G(e.workingDir,"vuln-scan-conf.json"),o=await de(s);if(!o)throw new Error(`Missing project configuration file '${s}'`);let m=o.findNoLongerDetectedVulnerabilitiesOnlyForSnapshots??!1;return Be={projectConfigFileLocation:s,onNewVulnerabilities:o.onNewVulnerabilities??(o.failOnNewVulnerabilities?"fail":"warn"),onNoLongerDetectedVulnerabilities:o.onNoLongerDetectedVulnerabilities??"ignore",reportNoLongerDetectedVulnerabilities:o.reportNoLongerDetectedVulnerabilities??!0,consoleReport:o.consoleReport||"BY_PROJECT_DETAILED",createSubDirsForProject:o.createSubDirsForProject??!0,mavenRepo:o.mavenRepo??t,vexUrls:o.vexUrls??[],vexDir:G(e.workingDir,o.vexDir)??r,outDir:G(e.workingDir,o.outDir)??n,cacheDir:G(e.workingDir,o.cacheDir)??i,scanners:(o.scanners??a).map(d=>{if(typeof d!="string")throw new Error(`Invalid scanner name '${d}' in configuration file '${s}'`);let c=d.split("@");if(c.length>2)throw new Error(`Invalid scanner name '${d}' in configuration file '${s}'`);let l=c[0],u=c[1]??"";return{name:l,version:u}}),projects:(o.projects??[]).map(d=>{let c=d;if(!c.name)throw new Error("Project name is missing on entry:"+JSON.stringify(c));if(!c.version)throw new Error("Project version is missing on entry:"+JSON.stringify(c));if(!c.purl)throw new Error("Project purl is missing on entry:"+JSON.stringify(c));return c.purlAliases||(c.purlAliases=[]),c.enabled==null&&(c.enabled=!0),c.silent==null&&(c.silent=!1),c.minimumSeverity||(c.minimumSeverity="UNKNOWN"),c.sbomFile?{...c,sbomFile:G(e.workingDir,c.sbomFile)}:(c.detectNoLongerUsedVulnerabilities=m?c.purl.endsWith("-SNAPSHOT"):!0,d)})}}function G(e,t){if(t)return pe.default.isAbsolute(t)?t:(0,pe.resolve)(e,t)}var Wt=require("path");var Vt=require("crypto");var $=(e,t=[])=>e.name==="up"||t.includes("vim")&&e.name==="k"||t.includes("emacs")&&e.ctrl&&e.name==="p",Y=(e,t=[])=>e.name==="down"||t.includes("vim")&&e.name==="j"||t.includes("emacs")&&e.ctrl&&e.name==="n",Te=e=>e.name==="space",oe=e=>e.name==="backspace",se=e=>e.name==="tab",le=e=>"1234567890".includes(e.name),j=e=>e.name==="enter"||e.name==="return";var he=class extends Error{name="AbortPromptError";message="Prompt was aborted";constructor(t){super(),this.cause=t?.cause}},me=class extends Error{name="CancelPromptError";message="Prompt was canceled"},ae=class extends Error{name="ExitPromptError"},ge=class extends Error{name="HookError"},q=class extends Error{name="ValidationError"};var it=require("node:async_hooks");var be=require("node:async_hooks");var tt=new be.AsyncLocalStorage;function er(e){return{rl:e,hooks:[],hooksCleanup:[],hooksEffect:[],index:0,handleChange(){}}}function rt(e,t){let r=er(e);return tt.run(r,()=>{function n(i){r.handleChange=()=>{r.index=0,i()},r.handleChange()}return t(n)})}function z(){let e=tt.getStore();if(!e)throw new ge("[Inquirer] Hook functions can only be called from within a prompt");return e}function Ie(){return z().rl}function Fe(e){let t=(...r)=>{let n=z(),i=!1,a=n.handleChange;n.handleChange=()=>{i=!0};let s=e(...r);return i&&a(),n.handleChange=a,s};return be.AsyncResource.bind(t)}function re(e){let t=z(),{index:r}=t,n={get(){return t.hooks[r]},set(a){t.hooks[r]=a},initialized:r in t.hooks},i=e(n);return t.index++,i}function nt(){z().handleChange()}var X={queue(e){let t=z(),{index:r}=t;t.hooksEffect.push(()=>{t.hooksCleanup[r]?.();let n=e(Ie());if(n!=null&&typeof n!="function")throw new q("useEffect return value must be a cleanup function or nothing.");t.hooksCleanup[r]=n})},run(){let e=z();Fe(()=>{e.hooksEffect.forEach(t=>{t()}),e.hooksEffect.length=0})()},clearAll(){let e=z();e.hooksCleanup.forEach(t=>{t?.()}),e.hooksEffect.length=0,e.hooksCleanup.length=0}};function R(e){return re(t=>{let r=it.AsyncResource.bind(function(a){t.get()!==a&&(t.set(a),nt())});if(t.initialized)return[t.get(),r];let n=typeof e=="function"?e():e;return t.set(n),[n,r]})}function M(e,t){re(r=>{let n=r.get();(!Array.isArray(n)||t.some((a,s)=>!Object.is(a,n[s])))&&X.queue(e),r.set(t)})}var P=require("node:util");var C=te(require("node:process"),1);function tr(){return C.default.platform!=="win32"?C.default.env.TERM!=="linux":!!C.default.env.WT_SESSION||!!C.default.env.TERMINUS_SUBLIME||C.default.env.ConEmuTask==="{cmd::Cmder}"||C.default.env.TERM_PROGRAM==="Terminus-Sublime"||C.default.env.TERM_PROGRAM==="vscode"||C.default.env.TERM==="xterm-256color"||C.default.env.TERM==="alacritty"||C.default.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var ot={circleQuestionMark:"(?)",questionMarkPrefix:"(?)",square:"\u2588",squareDarkShade:"\u2593",squareMediumShade:"\u2592",squareLightShade:"\u2591",squareTop:"\u2580",squareBottom:"\u2584",squareLeft:"\u258C",squareRight:"\u2590",squareCenter:"\u25A0",bullet:"\u25CF",dot:"\u2024",ellipsis:"\u2026",pointerSmall:"\u203A",triangleUp:"\u25B2",triangleUpSmall:"\u25B4",triangleDown:"\u25BC",triangleDownSmall:"\u25BE",triangleLeftSmall:"\u25C2",triangleRightSmall:"\u25B8",home:"\u2302",heart:"\u2665",musicNote:"\u266A",musicNoteBeamed:"\u266B",arrowUp:"\u2191",arrowDown:"\u2193",arrowLeft:"\u2190",arrowRight:"\u2192",arrowLeftRight:"\u2194",arrowUpDown:"\u2195",almostEqual:"\u2248",notEqual:"\u2260",lessOrEqual:"\u2264",greaterOrEqual:"\u2265",identical:"\u2261",infinity:"\u221E",subscriptZero:"\u2080",subscriptOne:"\u2081",subscriptTwo:"\u2082",subscriptThree:"\u2083",subscriptFour:"\u2084",subscriptFive:"\u2085",subscriptSix:"\u2086",subscriptSeven:"\u2087",subscriptEight:"\u2088",subscriptNine:"\u2089",oneHalf:"\xBD",oneThird:"\u2153",oneQuarter:"\xBC",oneFifth:"\u2155",oneSixth:"\u2159",oneEighth:"\u215B",twoThirds:"\u2154",twoFifths:"\u2156",threeQuarters:"\xBE",threeFifths:"\u2157",threeEighths:"\u215C",fourFifths:"\u2158",fiveSixths:"\u215A",fiveEighths:"\u215D",sevenEighths:"\u215E",line:"\u2500",lineBold:"\u2501",lineDouble:"\u2550",lineDashed0:"\u2504",lineDashed1:"\u2505",lineDashed2:"\u2508",lineDashed3:"\u2509",lineDashed4:"\u254C",lineDashed5:"\u254D",lineDashed6:"\u2574",lineDashed7:"\u2576",lineDashed8:"\u2578",lineDashed9:"\u257A",lineDashed10:"\u257C",lineDashed11:"\u257E",lineDashed12:"\u2212",lineDashed13:"\u2013",lineDashed14:"\u2010",lineDashed15:"\u2043",lineVertical:"\u2502",lineVerticalBold:"\u2503",lineVerticalDouble:"\u2551",lineVerticalDashed0:"\u2506",lineVerticalDashed1:"\u2507",lineVerticalDashed2:"\u250A",lineVerticalDashed3:"\u250B",lineVerticalDashed4:"\u254E",lineVerticalDashed5:"\u254F",lineVerticalDashed6:"\u2575",lineVerticalDashed7:"\u2577",lineVerticalDashed8:"\u2579",lineVerticalDashed9:"\u257B",lineVerticalDashed10:"\u257D",lineVerticalDashed11:"\u257F",lineDownLeft:"\u2510",lineDownLeftArc:"\u256E",lineDownBoldLeftBold:"\u2513",lineDownBoldLeft:"\u2512",lineDownLeftBold:"\u2511",lineDownDoubleLeftDouble:"\u2557",lineDownDoubleLeft:"\u2556",lineDownLeftDouble:"\u2555",lineDownRight:"\u250C",lineDownRightArc:"\u256D",lineDownBoldRightBold:"\u250F",lineDownBoldRight:"\u250E",lineDownRightBold:"\u250D",lineDownDoubleRightDouble:"\u2554",lineDownDoubleRight:"\u2553",lineDownRightDouble:"\u2552",lineUpLeft:"\u2518",lineUpLeftArc:"\u256F",lineUpBoldLeftBold:"\u251B",lineUpBoldLeft:"\u251A",lineUpLeftBold:"\u2519",lineUpDoubleLeftDouble:"\u255D",lineUpDoubleLeft:"\u255C",lineUpLeftDouble:"\u255B",lineUpRight:"\u2514",lineUpRightArc:"\u2570",lineUpBoldRightBold:"\u2517",lineUpBoldRight:"\u2516",lineUpRightBold:"\u2515",lineUpDoubleRightDouble:"\u255A",lineUpDoubleRight:"\u2559",lineUpRightDouble:"\u2558",lineUpDownLeft:"\u2524",lineUpBoldDownBoldLeftBold:"\u252B",lineUpBoldDownBoldLeft:"\u2528",lineUpDownLeftBold:"\u2525",lineUpBoldDownLeftBold:"\u2529",lineUpDownBoldLeftBold:"\u252A",lineUpDownBoldLeft:"\u2527",lineUpBoldDownLeft:"\u2526",lineUpDoubleDownDoubleLeftDouble:"\u2563",lineUpDoubleDownDoubleLeft:"\u2562",lineUpDownLeftDouble:"\u2561",lineUpDownRight:"\u251C",lineUpBoldDownBoldRightBold:"\u2523",lineUpBoldDownBoldRight:"\u2520",lineUpDownRightBold:"\u251D",lineUpBoldDownRightBold:"\u2521",lineUpDownBoldRightBold:"\u2522",lineUpDownBoldRight:"\u251F",lineUpBoldDownRight:"\u251E",lineUpDoubleDownDoubleRightDouble:"\u2560",lineUpDoubleDownDoubleRight:"\u255F",lineUpDownRightDouble:"\u255E",lineDownLeftRight:"\u252C",lineDownBoldLeftBoldRightBold:"\u2533",lineDownLeftBoldRightBold:"\u252F",lineDownBoldLeftRight:"\u2530",lineDownBoldLeftBoldRight:"\u2531",lineDownBoldLeftRightBold:"\u2532",lineDownLeftRightBold:"\u252E",lineDownLeftBoldRight:"\u252D",lineDownDoubleLeftDoubleRightDouble:"\u2566",lineDownDoubleLeftRight:"\u2565",lineDownLeftDoubleRightDouble:"\u2564",lineUpLeftRight:"\u2534",lineUpBoldLeftBoldRightBold:"\u253B",lineUpLeftBoldRightBold:"\u2537",lineUpBoldLeftRight:"\u2538",lineUpBoldLeftBoldRight:"\u2539",lineUpBoldLeftRightBold:"\u253A",lineUpLeftRightBold:"\u2536",lineUpLeftBoldRight:"\u2535",lineUpDoubleLeftDoubleRightDouble:"\u2569",lineUpDoubleLeftRight:"\u2568",lineUpLeftDoubleRightDouble:"\u2567",lineUpDownLeftRight:"\u253C",lineUpBoldDownBoldLeftBoldRightBold:"\u254B",lineUpDownBoldLeftBoldRightBold:"\u2548",lineUpBoldDownLeftBoldRightBold:"\u2547",lineUpBoldDownBoldLeftRightBold:"\u254A",lineUpBoldDownBoldLeftBoldRight:"\u2549",lineUpBoldDownLeftRight:"\u2540",lineUpDownBoldLeftRight:"\u2541",lineUpDownLeftBoldRight:"\u253D",lineUpDownLeftRightBold:"\u253E",lineUpBoldDownBoldLeftRight:"\u2542",lineUpDownLeftBoldRightBold:"\u253F",lineUpBoldDownLeftBoldRight:"\u2543",lineUpBoldDownLeftRightBold:"\u2544",lineUpDownBoldLeftBoldRight:"\u2545",lineUpDownBoldLeftRightBold:"\u2546",lineUpDoubleDownDoubleLeftDoubleRightDouble:"\u256C",lineUpDoubleDownDoubleLeftRight:"\u256B",lineUpDownLeftDoubleRightDouble:"\u256A",lineCross:"\u2573",lineBackslash:"\u2572",lineSlash:"\u2571"},st={tick:"\u2714",info:"\u2139",warning:"\u26A0",cross:"\u2718",squareSmall:"\u25FB",squareSmallFilled:"\u25FC",circle:"\u25EF",circleFilled:"\u25C9",circleDotted:"\u25CC",circleDouble:"\u25CE",circleCircle:"\u24DE",circleCross:"\u24E7",circlePipe:"\u24BE",radioOn:"\u25C9",radioOff:"\u25EF",checkboxOn:"\u2612",checkboxOff:"\u2610",checkboxCircleOn:"\u24E7",checkboxCircleOff:"\u24BE",pointer:"\u276F",triangleUpOutline:"\u25B3",triangleLeft:"\u25C0",triangleRight:"\u25B6",lozenge:"\u25C6",lozengeOutline:"\u25C7",hamburger:"\u2630",smiley:"\u32E1",mustache:"\u0DF4",star:"\u2605",play:"\u25B6",nodejs:"\u2B22",oneSeventh:"\u2150",oneNinth:"\u2151",oneTenth:"\u2152"},rr={tick:"\u221A",info:"i",warning:"\u203C",cross:"\xD7",squareSmall:"\u25A1",squareSmallFilled:"\u25A0",circle:"( )",circleFilled:"(*)",circleDotted:"( )",circleDouble:"( )",circleCircle:"(\u25CB)",circleCross:"(\xD7)",circlePipe:"(\u2502)",radioOn:"(*)",radioOff:"( )",checkboxOn:"[\xD7]",checkboxOff:"[ ]",checkboxCircleOn:"(\xD7)",checkboxCircleOff:"( )",pointer:">",triangleUpOutline:"\u2206",triangleLeft:"\u25C4",triangleRight:"\u25BA",lozenge:"\u2666",lozengeOutline:"\u25CA",hamburger:"\u2261",smiley:"\u263A",mustache:"\u250C\u2500\u2510",star:"\u2736",play:"\u25BA",nodejs:"\u2666",oneSeventh:"1/7",oneNinth:"1/9",oneTenth:"1/10"},nr={...ot,...st},ir={...ot,...rr},or=tr(),sr=or?nr:ir,N=sr,qr=Object.entries(st);var lt={prefix:{idle:(0,P.styleText)("blue","?"),done:(0,P.styleText)("green",N.tick)},spinner:{interval:80,frames:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"].map(e=>(0,P.styleText)("yellow",e))},style:{answer:e=>(0,P.styleText)("cyan",e),message:e=>(0,P.styleText)("bold",e),error:e=>(0,P.styleText)("red",`> ${e}`),defaultAnswer:e=>(0,P.styleText)("dim",`(${e})`),help:e=>(0,P.styleText)("dim",e),highlight:e=>(0,P.styleText)("cyan",e),key:e=>(0,P.styleText)("cyan",(0,P.styleText)("bold",`<${e}>`))}};function at(e){if(typeof e!="object"||e===null)return!1;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function ct(...e){let t={};for(let r of e)for(let[n,i]of Object.entries(r)){let a=t[n];t[n]=at(a)&&at(i)?ct(a,i):i}return t}function A(...e){let t=[lt,...e.filter(r=>r!=null)];return ct(...t)}function W({status:e="idle",theme:t}){let[r,n]=R(!1),[i,a]=R(0),{prefix:s,spinner:o}=A(t);return M(()=>{if(e==="loading"){let d,c=-1,l=setTimeout(()=>{n(!0),d=setInterval(()=>{c=c+1,a(c%o.frames.length)},o.interval)},300);return()=>{clearTimeout(l),clearInterval(d)}}else n(!1)},[e]),r?o.frames[i]:typeof s=="string"?s:s[e==="loading"?"idle":e]??s.idle}function Q(e,t){return re(r=>{let n=r.get();if(!n||n.dependencies.length!==t.length||n.dependencies.some((i,a)=>i!==t[a])){let i=e();return r.set({value:i,dependencies:t}),i}return n.value})}function Z(e){return R({current:e})[0]}function V(e){let t=Z(e);t.current=e,M(r=>{let n=!1,i=Fe((a,s)=>{n||t.current(s,r)});return r.input.on("keypress",i),()=>{n=!0,r.input.removeListener("keypress",i)}},[])}var Bt=te(ft(),1);var dt=(()=>{let e=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;return t=>{let r=0;for(e.lastIndex=0;e.test(t);)r+=1;return t.length-r}})(),pt=e=>e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510,ht=e=>e===8987||e===9001||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12771||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=19903||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e>=131072&&e<=196605||e>=196608&&e<=262141;var cr=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]|\u001b\]8;[^;]*;.*?(?:\u0007|\u001b\u005c)/y,ur=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,mt=/(?:(?![\uFF61-\uFF9F\uFF00-\uFFEF])[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\p{Script=Tangut}]){1,1000}/yu,fr=/\t{1,1000}/y,gt=new RegExp("[\\u{1F1E6}-\\u{1F1FF}]{2}|\\u{1F3F4}[\\u{E0061}-\\u{E007A}]{2}[\\u{E0030}-\\u{E0039}\\u{E0061}-\\u{E007A}]{1,3}\\u{E007F}|(?:\\p{Emoji}\\uFE0F\\u20E3?|\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|\\p{Emoji_Presentation})(?:\\u200D(?:\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|\\p{Emoji_Presentation}|\\p{Emoji}\\uFE0F\\u20E3?))*","yu"),dr=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,pr=new RegExp("\\p{M}+","gu"),hr={limit:1/0,ellipsis:""},bt=(e,t={},r={})=>{let n=t.limit??1/0,i=t.ellipsis??"",a=t?.ellipsisWidth??(i?bt(i,hr,r).width:0),s=0,o=r.controlWidth??0,m=r.tabWidth??8,d=r.emojiWidth??2,c=2,l=r.regularWidth??1,u=r.wideWidth??c,w=[[dr,l],[cr,s],[ur,o],[fr,m],[gt,d],[mt,u]],f=0,h=0,b=e.length,D=0,g=!1,E=b,L=Math.max(0,n-a),B=0,F=0,T=0,U=0;e:for(;;){if(F>B||h>=b&&h>f){let p=e.slice(B,F)||e.slice(f,h);D=0;for(let x of p.replaceAll(pr,"")){let S=x.codePointAt(0)||0;if(pt(S)?U=c:ht(S)?U=u:U=l,T+U>L&&(E=Math.min(E,Math.max(B,f)+D)),T+U>n){g=!0;break e}D+=x.length,T+=U}B=F=0}if(h>=b)break e;for(let p=0,x=w.length;p<x;p++){let[S,y]=w[p];if(S.lastIndex=h,S.test(e)){if(D=S===mt?dt(e.slice(h,S.lastIndex)):S===gt?1:S.lastIndex-h,U=D*y,T+U>L&&(E=Math.min(E,h+Math.floor((L-T)/y))),T+U>n){g=!0;break e}T+=U,B=f,F=h,h=f=S.lastIndex;continue e}}h+=1}return{width:g?L:T,index:g?E:b,truncated:g,ellipsed:g&&n>=a}},wt=bt;var mr={limit:1/0,ellipsis:"",ellipsisWidth:0},gr=(e,t={})=>wt(e,mr,t).width,K=gr;var we="\x1B",yt="\x9B",br=39,Pe="\x07",Lt="[",wr="]",Rt="m",ve=`${wr}8;;`,xt=new RegExp(`(?:\\${Lt}(?<code>\\d+)m|\\${ve}(?<uri>.*)${Pe})`,"y"),Dt=e=>{if(e>=30&&e<=37||e>=90&&e<=97)return 39;if(e>=40&&e<=47||e>=100&&e<=107)return 49;if(e===1||e===2)return 22;if(e===3)return 23;if(e===4)return 24;if(e===7)return 27;if(e===8)return 28;if(e===9)return 29;if(e===0)return 0},St=e=>`${we}${Lt}${e}${Rt}`,Et=e=>`${we}${ve}${e}${Pe}`,Ue=(e,t,r)=>{let n=t[Symbol.iterator](),i=!1,a=!1,s=e.at(-1),o=s===void 0?0:K(s),m=n.next(),d=n.next(),c=0;for(;!m.done;){let l=m.value,u=K(l);o+u<=r?e[e.length-1]+=l:(e.push(l),o=0),(l===we||l===yt)&&(i=!0,a=t.startsWith(ve,c+1)),i?a?l===Pe&&(i=!1,a=!1):l===Rt&&(i=!1):(o+=u,o===r&&!d.done&&(e.push(""),o=0)),m=d,d=n.next(),c+=l.length}s=e.at(-1),!o&&s!==void 0&&s.length&&e.length>1&&(e[e.length-2]+=e.pop())},xr=e=>{let t=e.split(" "),r=t.length;for(;r&&!K(t[r-1]);)r--;return r===t.length?e:t.slice(0,r).join(" ")+t.slice(r).join("")},Dr=(e,t,r={})=>{if(r.trim!==!1&&e.trim()==="")return"";let n="",i,a,s=e.split(" "),o=[""],m=0;for(let l=0;l<s.length;l++){let u=s[l];if(r.trim!==!1){let f=o.at(-1)??"",h=f.trimStart();f.length!==h.length&&(o[o.length-1]=h,m=K(h))}l!==0&&(m>=t&&(r.wordWrap===!1||r.trim===!1)&&(o.push(""),m=0),(m||r.trim===!1)&&(o[o.length-1]+=" ",m++));let w=K(u);if(r.hard&&w>t){let f=t-m,h=1+Math.floor((w-f-1)/t);Math.floor((w-1)/t)<h&&o.push(""),Ue(o,u,t),m=K(o.at(-1)??"");continue}if(m+w>t&&m&&w){if(r.wordWrap===!1&&m<t){Ue(o,u,t),m=K(o.at(-1)??"");continue}o.push(""),m=0}if(m+w>t&&r.wordWrap===!1){Ue(o,u,t),m=K(o.at(-1)??"");continue}o[o.length-1]+=u,m+=w}r.trim!==!1&&(o=o.map(l=>xr(l)));let d=o.join(`
|
|
4
|
-
`),c=!1;for(let l=0;l<
|
|
5
|
-
`){a&&(n+=Et(""));let w=i?Dt(i):void 0;i&&w&&(n+=St(w))}else
|
|
6
|
-
`&&(i&&Dt(i)&&(n+=St(i)),a&&(n+=Et(a)))}return n},
|
|
2
|
+
"use strict";var Ht=Object.create;var Xe=Object.defineProperty;var Gt=Object.getOwnPropertyDescriptor;var qt=Object.getOwnPropertyNames;var Jt=Object.getPrototypeOf,Yt=Object.prototype.hasOwnProperty;var Qe=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var zt=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of qt(t))!Yt.call(e,i)&&i!==r&&Xe(e,i,{get:()=>t[i],enumerable:!(n=Gt(t,i))||n.enumerable});return e};var Y=(e,t,r)=>(r=e!=null?Ht(Jt(e)):{},zt(t||!e||!e.__esModule?Xe(r,"default",{value:e,enumerable:!0}):r,e));var ft=Qe((hn,ut)=>{"use strict";ut.exports=ur;function cr(e){let t={defaultWidth:0,output:process.stdout,tty:require("tty")};return e?(Object.keys(t).forEach(function(r){e[r]||(e[r]=t[r])}),e):t}function ur(e){let t=cr(e);if(t.output.getWindowSize)return t.output.getWindowSize()[0]||t.defaultWidth;if(t.tty.getWindowSize)return t.tty.getWindowSize()[1]||t.defaultWidth;if(t.output.columns)return t.output.columns;if(process.env.CLI_WIDTH){let r=parseInt(process.env.CLI_WIDTH,10);if(!isNaN(r)&&r!==0)return r}return t.defaultWidth}});var It=Qe((Tn,Tt)=>{var Rr=require("stream"),ke=class extends Rr{#r=null;constructor(t={}){super(t),this.writable=this.readable=!0,this.muted=!1,this.on("pipe",this._onpipe),this.replace=t.replace,this._prompt=t.prompt||null,this._hadControl=!1}#t(t,r){return this._dest?this._dest[t]:this._src?this._src[t]:r}#e(t,...r){typeof this._dest?.[t]=="function"&&this._dest[t](...r),typeof this._src?.[t]=="function"&&this._src[t](...r)}get isTTY(){return this.#r!==null?this.#r:this.#t("isTTY",!1)}set isTTY(t){this.#r=t}get rows(){return this.#t("rows")}get columns(){return this.#t("columns")}mute(){this.muted=!0}unmute(){this.muted=!1}_onpipe(t){this._src=t}pipe(t,r){return this._dest=t,super.pipe(t,r)}pause(){if(this._src)return this._src.pause()}resume(){if(this._src)return this._src.resume()}write(t){if(this.muted){if(!this.replace)return!0;if(t.match(/^\u001b/))return t.indexOf(this._prompt)===0&&(t=t.slice(this._prompt.length),t=t.replace(/./g,this.replace),t=this._prompt+t),this._hadControl=!0,this.emit("data",t);this._prompt&&this._hadControl&&t.indexOf(this._prompt)===0&&(this._hadControl=!1,this.emit("data",this._prompt),t=t.slice(this._prompt.length)),t=t.toString().replace(/./g,this.replace)}this.emit("data",t)}end(t){this.muted&&(t&&this.replace?t=t.toString().replace(/./g,this.replace):t=null),t&&this.emit("data",t),this.emit("end")}destroy(...t){return this.#e("destroy",...t)}destroySoon(...t){return this.#e("destroySoon",...t)}close(...t){return this.#e("close",...t)}};Tt.exports=ke});var pe=Y(require("path"));var C=require("fs/promises");async function de(e){try{return await Xt(e)?JSON.parse(await(0,C.readFile)(e,{encoding:"utf-8"})):void 0}catch(t){throw new Error(`Error reading JSON file ${e}: ${t}`,{cause:t})}}async function Ze(e,t){let r=JSON.stringify(t,null,4)+`
|
|
3
|
+
`,n=await Qt(e,r);await(0,C.writeFile)(e,n,{encoding:"utf-8"})}async function Xt(e){try{return await(0,C.access)(e,C.constants.F_OK),!0}catch{return!1}}async function Qt(e,t){let r=await er();if(!r)return t;let n=await r.resolveConfig(e);return n?await r.format(t,{...n,filepath:e}):t}var Zt;function er(){return Zt??=import("prettier").catch(()=>{})}var Be;async function et(e){if(Be)return Be;let t="https://repository.conterra.de/repository/maven-mirror-ct",r=G(e.workingDir,"input/vex"),n=G(e.workingDir,"output"),i=G(e.workingDir,"cache"),a=["grype","trivy","ossindex"],s=G(e.workingDir,"vuln-scan-conf.json"),o=await de(s);if(!o)throw new Error(`Missing project configuration file '${s}'`);let m=o.findNoLongerDetectedVulnerabilitiesOnlyForSnapshots??!1;return Be={projectConfigFileLocation:s,onNewVulnerabilities:o.onNewVulnerabilities??(o.failOnNewVulnerabilities?"fail":"warn"),onNoLongerDetectedVulnerabilities:o.onNoLongerDetectedVulnerabilities??"ignore",reportNoLongerDetectedVulnerabilities:o.reportNoLongerDetectedVulnerabilities??!0,consoleReport:o.consoleReport||"BY_PROJECT_DETAILED",createSubDirsForProject:o.createSubDirsForProject??!0,mavenRepo:o.mavenRepo??t,vexUrls:o.vexUrls??[],vexDir:G(e.workingDir,o.vexDir)??r,outDir:G(e.workingDir,o.outDir)??n,cacheDir:G(e.workingDir,o.cacheDir)??i,scanners:(o.scanners??a).map(p=>{if(typeof p!="string")throw new Error(`Invalid scanner name '${p}' in configuration file '${s}'`);let c=p.split("@");if(c.length>2)throw new Error(`Invalid scanner name '${p}' in configuration file '${s}'`);let l=c[0],f=c[1]??"";return{name:l,version:f}}),projects:(o.projects??[]).map(p=>{let c=p;if(!c.name)throw new Error("Project name is missing on entry:"+JSON.stringify(c));if(!c.version)throw new Error("Project version is missing on entry:"+JSON.stringify(c));if(!c.purl)throw new Error("Project purl is missing on entry:"+JSON.stringify(c));return c.purlAliases||(c.purlAliases=[]),c.enabled==null&&(c.enabled=!0),c.silent==null&&(c.silent=!1),c.minimumSeverity||(c.minimumSeverity="UNKNOWN"),c.sbomFile?{...c,sbomFile:G(e.workingDir,c.sbomFile)}:(c.detectNoLongerUsedVulnerabilities=m?c.purl.endsWith("-SNAPSHOT"):!0,p)})}}function G(e,t){if(t)return pe.default.isAbsolute(t)?t:(0,pe.resolve)(e,t)}var Vt=require("path");var Kt=require("crypto");var j=(e,t=[])=>e.name==="up"||t.includes("vim")&&e.name==="k"||t.includes("emacs")&&e.ctrl&&e.name==="p",z=(e,t=[])=>e.name==="down"||t.includes("vim")&&e.name==="j"||t.includes("emacs")&&e.ctrl&&e.name==="n",Te=e=>e.name==="space",oe=e=>e.name==="backspace",se=e=>e.name==="tab",le=e=>"1234567890".includes(e.name),$=e=>e.name==="enter"||e.name==="return";var he=class extends Error{name="AbortPromptError";message="Prompt was aborted";constructor(t){super(),this.cause=t?.cause}},me=class extends Error{name="CancelPromptError";message="Prompt was canceled"},ae=class extends Error{name="ExitPromptError"},ge=class extends Error{name="HookError"},q=class extends Error{name="ValidationError"};var it=require("node:async_hooks");var be=require("node:async_hooks");var tt=new be.AsyncLocalStorage;function tr(e){return{rl:e,hooks:[],hooksCleanup:[],hooksEffect:[],index:0,handleChange(){}}}function rt(e,t){let r=tr(e);return tt.run(r,()=>{function n(i){r.handleChange=()=>{r.index=0,i()},r.handleChange()}return t(n)})}function X(){let e=tt.getStore();if(!e)throw new ge("[Inquirer] Hook functions can only be called from within a prompt");return e}function Ie(){return X().rl}function Fe(e){let t=(...r)=>{let n=X(),i=!1,a=n.handleChange;n.handleChange=()=>{i=!0};let s=e(...r);return i&&a(),n.handleChange=a,s};return be.AsyncResource.bind(t)}function re(e){let t=X(),{index:r}=t,n={get(){return t.hooks[r]},set(a){t.hooks[r]=a},initialized:r in t.hooks},i=e(n);return t.index++,i}function nt(){X().handleChange()}var Q={queue(e){let t=X(),{index:r}=t;t.hooksEffect.push(()=>{t.hooksCleanup[r]?.();let n=e(Ie());if(n!=null&&typeof n!="function")throw new q("useEffect return value must be a cleanup function or nothing.");t.hooksCleanup[r]=n})},run(){let e=X();Fe(()=>{e.hooksEffect.forEach(t=>{t()}),e.hooksEffect.length=0})()},clearAll(){let e=X();e.hooksCleanup.forEach(t=>{t?.()}),e.hooksEffect.length=0,e.hooksCleanup.length=0}};function rr(e){return typeof e=="function"}function L(e){return re(t=>{let r=it.AsyncResource.bind(function(a){t.get()!==a&&(t.set(a),nt())});if(t.initialized)return[t.get(),r];let n=rr(e)?e():e;return t.set(n),[n,r]})}function M(e,t){re(r=>{let n=r.get();(!Array.isArray(n)||t.some((a,s)=>!Object.is(a,n[s])))&&Q.queue(e),r.set(t)})}var v=require("node:util");var P=Y(require("node:process"),1);function nr(){return P.default.platform.startsWith("win")?!!P.default.env.CI||!!P.default.env.WT_SESSION||!!P.default.env.TERMINUS_SUBLIME||P.default.env.ConEmuTask==="{cmd::Cmder}"||P.default.env.TERM_PROGRAM==="Terminus-Sublime"||P.default.env.TERM_PROGRAM==="vscode"||P.default.env.TERM==="xterm-256color"||P.default.env.TERM==="alacritty"||P.default.env.TERMINAL_EMULATOR==="JetBrains-JediTerm":P.default.env.TERM!=="linux"}var ot={circleQuestionMark:"(?)",questionMarkPrefix:"(?)",square:"\u2588",squareDarkShade:"\u2593",squareMediumShade:"\u2592",squareLightShade:"\u2591",squareTop:"\u2580",squareBottom:"\u2584",squareLeft:"\u258C",squareRight:"\u2590",squareCenter:"\u25A0",bullet:"\u25CF",dot:"\u2024",ellipsis:"\u2026",pointerSmall:"\u203A",triangleUp:"\u25B2",triangleUpSmall:"\u25B4",triangleDown:"\u25BC",triangleDownSmall:"\u25BE",triangleLeftSmall:"\u25C2",triangleRightSmall:"\u25B8",home:"\u2302",heart:"\u2665",musicNote:"\u266A",musicNoteBeamed:"\u266B",arrowUp:"\u2191",arrowDown:"\u2193",arrowLeft:"\u2190",arrowRight:"\u2192",arrowLeftRight:"\u2194",arrowUpDown:"\u2195",almostEqual:"\u2248",notEqual:"\u2260",lessOrEqual:"\u2264",greaterOrEqual:"\u2265",identical:"\u2261",infinity:"\u221E",subscriptZero:"\u2080",subscriptOne:"\u2081",subscriptTwo:"\u2082",subscriptThree:"\u2083",subscriptFour:"\u2084",subscriptFive:"\u2085",subscriptSix:"\u2086",subscriptSeven:"\u2087",subscriptEight:"\u2088",subscriptNine:"\u2089",oneHalf:"\xBD",oneThird:"\u2153",oneQuarter:"\xBC",oneFifth:"\u2155",oneSixth:"\u2159",oneEighth:"\u215B",twoThirds:"\u2154",twoFifths:"\u2156",threeQuarters:"\xBE",threeFifths:"\u2157",threeEighths:"\u215C",fourFifths:"\u2158",fiveSixths:"\u215A",fiveEighths:"\u215D",sevenEighths:"\u215E",line:"\u2500",lineBold:"\u2501",lineDouble:"\u2550",lineDashed0:"\u2504",lineDashed1:"\u2505",lineDashed2:"\u2508",lineDashed3:"\u2509",lineDashed4:"\u254C",lineDashed5:"\u254D",lineDashed6:"\u2574",lineDashed7:"\u2576",lineDashed8:"\u2578",lineDashed9:"\u257A",lineDashed10:"\u257C",lineDashed11:"\u257E",lineDashed12:"\u2212",lineDashed13:"\u2013",lineDashed14:"\u2010",lineDashed15:"\u2043",lineVertical:"\u2502",lineVerticalBold:"\u2503",lineVerticalDouble:"\u2551",lineVerticalDashed0:"\u2506",lineVerticalDashed1:"\u2507",lineVerticalDashed2:"\u250A",lineVerticalDashed3:"\u250B",lineVerticalDashed4:"\u254E",lineVerticalDashed5:"\u254F",lineVerticalDashed6:"\u2575",lineVerticalDashed7:"\u2577",lineVerticalDashed8:"\u2579",lineVerticalDashed9:"\u257B",lineVerticalDashed10:"\u257D",lineVerticalDashed11:"\u257F",lineDownLeft:"\u2510",lineDownLeftArc:"\u256E",lineDownBoldLeftBold:"\u2513",lineDownBoldLeft:"\u2512",lineDownLeftBold:"\u2511",lineDownDoubleLeftDouble:"\u2557",lineDownDoubleLeft:"\u2556",lineDownLeftDouble:"\u2555",lineDownRight:"\u250C",lineDownRightArc:"\u256D",lineDownBoldRightBold:"\u250F",lineDownBoldRight:"\u250E",lineDownRightBold:"\u250D",lineDownDoubleRightDouble:"\u2554",lineDownDoubleRight:"\u2553",lineDownRightDouble:"\u2552",lineUpLeft:"\u2518",lineUpLeftArc:"\u256F",lineUpBoldLeftBold:"\u251B",lineUpBoldLeft:"\u251A",lineUpLeftBold:"\u2519",lineUpDoubleLeftDouble:"\u255D",lineUpDoubleLeft:"\u255C",lineUpLeftDouble:"\u255B",lineUpRight:"\u2514",lineUpRightArc:"\u2570",lineUpBoldRightBold:"\u2517",lineUpBoldRight:"\u2516",lineUpRightBold:"\u2515",lineUpDoubleRightDouble:"\u255A",lineUpDoubleRight:"\u2559",lineUpRightDouble:"\u2558",lineUpDownLeft:"\u2524",lineUpBoldDownBoldLeftBold:"\u252B",lineUpBoldDownBoldLeft:"\u2528",lineUpDownLeftBold:"\u2525",lineUpBoldDownLeftBold:"\u2529",lineUpDownBoldLeftBold:"\u252A",lineUpDownBoldLeft:"\u2527",lineUpBoldDownLeft:"\u2526",lineUpDoubleDownDoubleLeftDouble:"\u2563",lineUpDoubleDownDoubleLeft:"\u2562",lineUpDownLeftDouble:"\u2561",lineUpDownRight:"\u251C",lineUpBoldDownBoldRightBold:"\u2523",lineUpBoldDownBoldRight:"\u2520",lineUpDownRightBold:"\u251D",lineUpBoldDownRightBold:"\u2521",lineUpDownBoldRightBold:"\u2522",lineUpDownBoldRight:"\u251F",lineUpBoldDownRight:"\u251E",lineUpDoubleDownDoubleRightDouble:"\u2560",lineUpDoubleDownDoubleRight:"\u255F",lineUpDownRightDouble:"\u255E",lineDownLeftRight:"\u252C",lineDownBoldLeftBoldRightBold:"\u2533",lineDownLeftBoldRightBold:"\u252F",lineDownBoldLeftRight:"\u2530",lineDownBoldLeftBoldRight:"\u2531",lineDownBoldLeftRightBold:"\u2532",lineDownLeftRightBold:"\u252E",lineDownLeftBoldRight:"\u252D",lineDownDoubleLeftDoubleRightDouble:"\u2566",lineDownDoubleLeftRight:"\u2565",lineDownLeftDoubleRightDouble:"\u2564",lineUpLeftRight:"\u2534",lineUpBoldLeftBoldRightBold:"\u253B",lineUpLeftBoldRightBold:"\u2537",lineUpBoldLeftRight:"\u2538",lineUpBoldLeftBoldRight:"\u2539",lineUpBoldLeftRightBold:"\u253A",lineUpLeftRightBold:"\u2536",lineUpLeftBoldRight:"\u2535",lineUpDoubleLeftDoubleRightDouble:"\u2569",lineUpDoubleLeftRight:"\u2568",lineUpLeftDoubleRightDouble:"\u2567",lineUpDownLeftRight:"\u253C",lineUpBoldDownBoldLeftBoldRightBold:"\u254B",lineUpDownBoldLeftBoldRightBold:"\u2548",lineUpBoldDownLeftBoldRightBold:"\u2547",lineUpBoldDownBoldLeftRightBold:"\u254A",lineUpBoldDownBoldLeftBoldRight:"\u2549",lineUpBoldDownLeftRight:"\u2540",lineUpDownBoldLeftRight:"\u2541",lineUpDownLeftBoldRight:"\u253D",lineUpDownLeftRightBold:"\u253E",lineUpBoldDownBoldLeftRight:"\u2542",lineUpDownLeftBoldRightBold:"\u253F",lineUpBoldDownLeftBoldRight:"\u2543",lineUpBoldDownLeftRightBold:"\u2544",lineUpDownBoldLeftBoldRight:"\u2545",lineUpDownBoldLeftRightBold:"\u2546",lineUpDoubleDownDoubleLeftDoubleRightDouble:"\u256C",lineUpDoubleDownDoubleLeftRight:"\u256B",lineUpDownLeftDoubleRightDouble:"\u256A",lineCross:"\u2573",lineBackslash:"\u2572",lineSlash:"\u2571"},st={tick:"\u2714",info:"\u2139",warning:"\u26A0",cross:"\u2718",squareSmall:"\u25FB",squareSmallFilled:"\u25FC",circle:"\u25EF",circleFilled:"\u25C9",circleDotted:"\u25CC",circleDouble:"\u25CE",circleCircle:"\u24DE",circleCross:"\u24E7",circlePipe:"\u24BE",radioOn:"\u25C9",radioOff:"\u25EF",checkboxOn:"\u2612",checkboxOff:"\u2610",checkboxCircleOn:"\u24E7",checkboxCircleOff:"\u24BE",pointer:"\u276F",triangleUpOutline:"\u25B3",triangleLeft:"\u25C0",triangleRight:"\u25B6",lozenge:"\u25C6",lozengeOutline:"\u25C7",hamburger:"\u2630",smiley:"\u32E1",mustache:"\u0DF4",star:"\u2605",play:"\u25B6",nodejs:"\u2B22",oneSeventh:"\u2150",oneNinth:"\u2151",oneTenth:"\u2152"},ir={tick:"\u221A",info:"i",warning:"\u203C",cross:"\xD7",squareSmall:"\u25A1",squareSmallFilled:"\u25A0",circle:"( )",circleFilled:"(*)",circleDotted:"( )",circleDouble:"( )",circleCircle:"(\u25CB)",circleCross:"(\xD7)",circlePipe:"(\u2502)",radioOn:"(*)",radioOff:"( )",checkboxOn:"[\xD7]",checkboxOff:"[ ]",checkboxCircleOn:"(\xD7)",checkboxCircleOff:"( )",pointer:">",triangleUpOutline:"\u2206",triangleLeft:"\u25C4",triangleRight:"\u25BA",lozenge:"\u2666",lozengeOutline:"\u25CA",hamburger:"\u2261",smiley:"\u263A",mustache:"\u250C\u2500\u2510",star:"\u2736",play:"\u25BA",nodejs:"\u2666",oneSeventh:"1/7",oneNinth:"1/9",oneTenth:"1/10"},or={...ot,...st},sr={...ot,...ir},lr=nr(),ar=lr?or:sr,N=ar,Yr=Object.entries(st);var lt={prefix:{idle:(0,v.styleText)("blue","?"),done:(0,v.styleText)("green",N.tick)},spinner:{interval:80,frames:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"].map(e=>(0,v.styleText)("yellow",e))},style:{answer:e=>(0,v.styleText)("cyan",e),message:e=>(0,v.styleText)("bold",e),error:e=>(0,v.styleText)("red",`> ${e}`),defaultAnswer:e=>(0,v.styleText)("dim",`(${e})`),help:e=>(0,v.styleText)("dim",e),highlight:e=>(0,v.styleText)("cyan",e),key:e=>(0,v.styleText)("cyan",(0,v.styleText)("bold",`<${e}>`))}};function at(e){if(typeof e!="object"||e===null)return!1;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function ct(...e){let t={};for(let r of e)for(let[n,i]of Object.entries(r)){let a=t[n];t[n]=at(a)&&at(i)?ct(a,i):i}return t}function A(...e){let t=[lt,...e.filter(r=>r!=null)];return ct(...t)}function W({status:e="idle",theme:t}){let[r,n]=L(!1),[i,a]=L(0),{prefix:s,spinner:o}=A(t);return M(()=>{if(e==="loading"){let p,c=-1,l=setTimeout(()=>{n(!0),p=setInterval(()=>{c=c+1,a(c%o.frames.length)},o.interval)},300);return()=>{clearTimeout(l),clearInterval(p)}}else n(!1)},[e]),r?o.frames[i]:typeof s=="string"?s:s[e==="loading"?"idle":e]??s.idle}function Z(e,t){return re(r=>{let n=r.get();if(!n||n.dependencies.length!==t.length||n.dependencies.some((i,a)=>i!==t[a])){let i=e();return r.set({value:i,dependencies:t}),i}return n.value})}function ee(e){return L({current:e})[0]}function V(e){let t=ee(e);t.current=e,M(r=>{let n=!1,i=Fe((a,s)=>{n||t.current(s,r)});return r.input.on("keypress",i),()=>{n=!0,r.input.removeListener("keypress",i)}},[])}var Bt=Y(ft(),1);var dt=(()=>{let e=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;return t=>{let r=0;for(e.lastIndex=0;e.test(t);)r+=1;return t.length-r}})(),pt=e=>e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510,ht=e=>e===8987||e===9001||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12771||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=19903||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e>=131072&&e<=196605||e>=196608&&e<=262141;var fr=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]|\u001b\]8;[^;]*;.*?(?:\u0007|\u001b\u005c)/y,dr=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,mt=/(?:(?![\uFF61-\uFF9F\uFF00-\uFFEF])[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\p{Script=Tangut}]){1,1000}/yu,pr=/\t{1,1000}/y,gt=new RegExp("[\\u{1F1E6}-\\u{1F1FF}]{2}|\\u{1F3F4}[\\u{E0061}-\\u{E007A}]{2}[\\u{E0030}-\\u{E0039}\\u{E0061}-\\u{E007A}]{1,3}\\u{E007F}|(?:\\p{Emoji}\\uFE0F\\u20E3?|\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|\\p{Emoji_Presentation})(?:\\u200D(?:\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|\\p{Emoji_Presentation}|\\p{Emoji}\\uFE0F\\u20E3?))*","yu"),hr=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,mr=new RegExp("\\p{M}+","gu"),gr={limit:1/0,ellipsis:""},bt=(e,t={},r={})=>{let n=t.limit??1/0,i=t.ellipsis??"",a=t?.ellipsisWidth??(i?bt(i,gr,r).width:0),s=0,o=r.controlWidth??0,m=r.tabWidth??8,p=r.emojiWidth??2,c=2,l=r.regularWidth??1,f=r.wideWidth??c,w=[[hr,l],[fr,s],[dr,o],[pr,m],[gt,p],[mt,f]],d=0,h=0,g=e.length,D=0,b=!1,E=g,R=Math.max(0,n-a),T=0,_=0,I=0,F=0;e:for(;;){if(_>T||h>=g&&h>d){let u=e.slice(T,_)||e.slice(d,h);D=0;for(let x of u.replaceAll(mr,"")){let S=x.codePointAt(0)||0;if(pt(S)?F=c:ht(S)?F=f:F=l,I+F>R&&(E=Math.min(E,Math.max(T,d)+D)),I+F>n){b=!0;break e}D+=x.length,I+=F}T=_=0}if(h>=g)break e;for(let u=0,x=w.length;u<x;u++){let[S,y]=w[u];if(S.lastIndex=h,S.test(e)){if(D=S===mt?dt(e.slice(h,S.lastIndex)):S===gt?1:S.lastIndex-h,F=D*y,I+F>R&&(E=Math.min(E,h+Math.floor((R-I)/y))),I+F>n){b=!0;break e}I+=F,T=d,_=h,h=d=S.lastIndex;continue e}}h+=1}return{width:b?R:I,index:b?E:g,truncated:b,ellipsed:b&&n>=a}},wt=bt;var br={limit:1/0,ellipsis:"",ellipsisWidth:0},wr=(e,t={})=>wt(e,br,t).width,K=wr;var we="\x1B",yt="\x9B",xr=39,Pe="\x07",Lt="[",Dr="]",Rt="m",ve=`${Dr}8;;`,xt=new RegExp(`(?:\\${Lt}(?<code>\\d+)m|\\${ve}(?<uri>.*)${Pe})`,"y"),Dt=e=>{if(e>=30&&e<=37||e>=90&&e<=97)return 39;if(e>=40&&e<=47||e>=100&&e<=107)return 49;if(e===1||e===2)return 22;if(e===3)return 23;if(e===4)return 24;if(e===7)return 27;if(e===8)return 28;if(e===9)return 29;if(e===0)return 0},St=e=>`${we}${Lt}${e}${Rt}`,Et=e=>`${we}${ve}${e}${Pe}`,Ue=(e,t,r)=>{let n=t[Symbol.iterator](),i=!1,a=!1,s=e.at(-1),o=s===void 0?0:K(s),m=n.next(),p=n.next(),c=0;for(;!m.done;){let l=m.value,f=K(l);o+f<=r?e[e.length-1]+=l:(e.push(l),o=0),(l===we||l===yt)&&(i=!0,a=t.startsWith(ve,c+1)),i?a?l===Pe&&(i=!1,a=!1):l===Rt&&(i=!1):(o+=f,o===r&&!p.done&&(e.push(""),o=0)),m=p,p=n.next(),c+=l.length}s=e.at(-1),!o&&s!==void 0&&s.length&&e.length>1&&(e[e.length-2]+=e.pop())},Sr=e=>{let t=e.split(" "),r=t.length;for(;r&&!K(t[r-1]);)r--;return r===t.length?e:t.slice(0,r).join(" ")+t.slice(r).join("")},Er=(e,t,r={})=>{if(r.trim!==!1&&e.trim()==="")return"";let n="",i,a,s=e.split(" "),o=[""],m=0;for(let l=0;l<s.length;l++){let f=s[l];if(r.trim!==!1){let d=o.at(-1)??"",h=d.trimStart();d.length!==h.length&&(o[o.length-1]=h,m=K(h))}l!==0&&(m>=t&&(r.wordWrap===!1||r.trim===!1)&&(o.push(""),m=0),(m||r.trim===!1)&&(o[o.length-1]+=" ",m++));let w=K(f);if(r.hard&&w>t){let d=t-m,h=1+Math.floor((w-d-1)/t);Math.floor((w-1)/t)<h&&o.push(""),Ue(o,f,t),m=K(o.at(-1)??"");continue}if(m+w>t&&m&&w){if(r.wordWrap===!1&&m<t){Ue(o,f,t),m=K(o.at(-1)??"");continue}o.push(""),m=0}if(m+w>t&&r.wordWrap===!1){Ue(o,f,t),m=K(o.at(-1)??"");continue}o[o.length-1]+=f,m+=w}r.trim!==!1&&(o=o.map(l=>Sr(l)));let p=o.join(`
|
|
4
|
+
`),c=!1;for(let l=0;l<p.length;l++){let f=p[l];if(n+=f,c)c=!1;else if(c=f>="\uD800"&&f<="\uDBFF",c)continue;if(f===we||f===yt){xt.lastIndex=l+1;let d=xt.exec(p)?.groups;if(d?.code!==void 0){let h=Number.parseFloat(d.code);i=h===xr?void 0:h}else d?.uri!==void 0&&(a=d.uri.length===0?void 0:d.uri)}if(p[l+1]===`
|
|
5
|
+
`){a&&(n+=Et(""));let w=i?Dt(i):void 0;i&&w&&(n+=St(w))}else f===`
|
|
6
|
+
`&&(i&&Dt(i)&&(n+=St(i)),a&&(n+=Et(a)))}return n},yr=/\r?\n/;function _t(e,t,r){return String(e).normalize().split(yr).map(n=>Er(n,t,r)).join(`
|
|
7
7
|
`)}function ce(e,t){return e.split(`
|
|
8
8
|
`).flatMap(r=>_t(r,t,{trim:!1,hard:!0}).split(`
|
|
9
9
|
`).map(n=>n.trimEnd())).join(`
|
|
10
|
-
`)}function xe(){return(0,Bt.default)({defaultWidth:80,output:Ie().output})}function
|
|
11
|
-
`)),m=o.reduce((D,
|
|
12
|
-
`)}var Ct=
|
|
13
|
-
`).length,
|
|
14
|
-
`).pop()??"",fe=class{height=0;extraLinesUnderPrompt=0;cursorPos;rl;constructor(t){this.rl=t,this.cursorPos=t.getCursorPos()}write(t){this.rl.output.unmute(),this.rl.output.write(t),this.rl.output.mute()}render(t,r=""){let n=
|
|
10
|
+
`)}function xe(){return(0,Bt.default)({defaultWidth:80,output:Ie().output})}function Lr({active:e,renderedItems:t,pageSize:r,loop:n}){let i=ee({lastPointer:e,lastActive:void 0}),{lastPointer:a,lastActive:s}=i.current,o=Math.floor(r/2),m=t.reduce((l,f)=>l+f.length,0),p=t.slice(0,e).reduce((l,f)=>l+f.length,0),c=p;if(m>r)if(n)c=a,s!=null&&s<e&&e-s<r&&(c=Math.min(o,Math.abs(e-s)===1?Math.min(a+(t[s]?.length??0),Math.max(p,a)):a+e-s));else{let l=t.slice(e).reduce((f,w)=>f+w.length,0);c=l<r-o?r-l:Math.min(p,o)}return i.current.lastPointer=c,i.current.lastActive=e,c}function ue({items:e,active:t,renderItem:r,pageSize:n,loop:i=!0}){let a=xe(),s=D=>(D%e.length+e.length)%e.length,o=e.map((D,b)=>D==null?[]:ce(r({item:D,index:b,isActive:b===t}),a).split(`
|
|
11
|
+
`)),m=o.reduce((D,b)=>D+b.length,0),p=D=>o[D]??[],c=Lr({active:t,renderedItems:o,pageSize:n,loop:i}),l=p(t).slice(0,n),f=c+l.length<=n?c:n-l.length,w=Array.from({length:n});w.splice(f,l.length,...l);let d=new Set([t]),h=f+l.length,g=s(t+1);for(;h<n&&!d.has(g)&&(i&&m>n?g!==t:g>t);){let b=p(g).slice(0,n-h);w.splice(h,b.length,...b),d.add(g),h+=b.length,g=s(g+1)}for(h=f-1,g=s(t-1);h>=0&&!d.has(g)&&(i&&m>n?g!==t:g<t);){let D=p(g),b=D.slice(Math.max(0,D.length-h-1));w.splice(h-b.length+1,b.length,...b),d.add(g),h-=b.length,g=s(g-1)}return w.filter(D=>typeof D=="string").join(`
|
|
12
|
+
`)}var Ct=Y(require("node:readline"),1),Nt=require("node:async_hooks"),At=Y(It(),1);var te=[];te.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&te.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&te.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var De=e=>!!e&&typeof e=="object"&&typeof e.removeListener=="function"&&typeof e.emit=="function"&&typeof e.reallyExit=="function"&&typeof e.listeners=="function"&&typeof e.kill=="function"&&typeof e.pid=="number"&&typeof e.on=="function",Ce=Symbol.for("signal-exit emitter"),Ne=globalThis,_r=Object.defineProperty.bind(Object),Ae=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(Ne[Ce])return Ne[Ce];_r(Ne,Ce,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(t,r){this.listeners[t].push(r)}removeListener(t,r){let n=this.listeners[t],i=n.indexOf(r);i!==-1&&(i===0&&n.length===1?n.length=0:n.splice(i,1))}emit(t,r,n){if(this.emitted[t])return!1;this.emitted[t]=!0;let i=!1;for(let a of this.listeners[t])i=a(r,n)===!0||i;return t==="exit"&&(i=this.emit("afterExit",r,n)||i),i}},Se=class{},Br=e=>({onExit(t,r){return e.onExit(t,r)},load(){return e.load()},unload(){return e.unload()}}),Oe=class extends Se{onExit(){return()=>{}}load(){}unload(){}},je=class extends Se{#r=$e.platform==="win32"?"SIGINT":"SIGHUP";#t=new Ae;#e;#o;#s;#i={};#n=!1;constructor(t){super(),this.#e=t,this.#i={};for(let r of te)this.#i[r]=()=>{let n=this.#e.listeners(r),{count:i}=this.#t,a=t;if(typeof a.__signal_exit_emitter__=="object"&&typeof a.__signal_exit_emitter__.count=="number"&&(i+=a.__signal_exit_emitter__.count),n.length===i){this.unload();let s=this.#t.emit("exit",null,r),o=r==="SIGHUP"?this.#r:r;s||t.kill(t.pid,o)}};this.#s=t.reallyExit,this.#o=t.emit}onExit(t,r){if(!De(this.#e))return()=>{};this.#n===!1&&this.load();let n=r?.alwaysLast?"afterExit":"exit";return this.#t.on(n,t),()=>{this.#t.removeListener(n,t),this.#t.listeners.exit.length===0&&this.#t.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#n){this.#n=!0,this.#t.count+=1;for(let t of te)try{let r=this.#i[t];r&&this.#e.on(t,r)}catch{}this.#e.emit=(t,...r)=>this.#a(t,...r),this.#e.reallyExit=t=>this.#l(t)}}unload(){this.#n&&(this.#n=!1,te.forEach(t=>{let r=this.#i[t];if(!r)throw new Error("Listener not defined for signal: "+t);try{this.#e.removeListener(t,r)}catch{}}),this.#e.emit=this.#o,this.#e.reallyExit=this.#s,this.#t.count-=1)}#l(t){return De(this.#e)?(this.#e.exitCode=t||0,this.#t.emit("exit",this.#e.exitCode,null),this.#s.call(this.#e,this.#e.exitCode)):0}#a(t,...r){let n=this.#o;if(t==="exit"&&De(this.#e)){typeof r[0]=="number"&&(this.#e.exitCode=r[0]);let i=n.call(this.#e,t,...r);return this.#t.emit("exit",this.#e.exitCode,null),i}else return n.call(this.#e,t,...r)}},$e=globalThis.process,{onExit:Ft,load:Un,unload:Pn}=Br(De($e)?new je($e):new Oe);var kt=require("node:util");var Ee="\x1B[?25l",Pt="\x1B[?25h",Me=(e=1)=>e>0?`\x1B[${e}A`:"",We=(e=1)=>e>0?`\x1B[${e}B`:"",Ve=(e,t)=>typeof t=="number"&&!Number.isNaN(t)?`\x1B[${t+1};${e+1}H`:`\x1B[${e+1}G`,Ut="\x1B[2K",Ke=e=>e>0?(Ut+Me(1)).repeat(e-1)+Ut+"\x1B[G":"";var vt=e=>e.split(`
|
|
13
|
+
`).length,Tr=e=>e.split(`
|
|
14
|
+
`).pop()??"",fe=class{height=0;extraLinesUnderPrompt=0;cursorPos;rl;constructor(t){this.rl=t,this.cursorPos=t.getCursorPos()}write(t){this.rl.output.unmute(),this.rl.output.write(t),this.rl.output.mute()}render(t,r=""){let n=Tr(t),i=(0,kt.stripVTControlCharacters)(n),a=i;this.rl.line.length>0&&(a=a.slice(0,-this.rl.line.length)),this.rl.setPrompt(a),this.cursorPos=this.rl.getCursorPos();let s=xe();t=ce(t,s),r=ce(r,s),i.length%s===0&&(t+=`
|
|
15
15
|
`);let o=t+(r?`
|
|
16
|
-
`+r:""),
|
|
17
|
-
`,r+=Pt,this.write(r),this.rl.close()}};var ye=class extends Promise{static withResolver(){let t,r;return{promise:new Promise((i,a)=>{t=i,r=a}),resolve:t,reject:r}}};var
|
|
18
|
-
at ${
|
|
19
|
-
`).trimEnd()}${Ee}`});function
|
|
20
|
-
`).trimEnd()}${Ee}`});(async()=>{let t=!process.argv.slice(2).includes("--no-project-filter");try{let r=await et({workingDir:process.cwd()});console.info("## Add New VEX Statement ##");let n=await ne({message:"CVE name (e.g. CVE-2023-52070)",required:!0}),i=r.projects.filter(
|
|
21
|
-
${JSON.stringify(
|
|
16
|
+
`+r:""),p=Math.floor(i.length/s)-this.cursorPos.rows+(r?vt(r):0);p>0&&(o+=Me(p)),o+=Ve(this.cursorPos.cols),this.write(We(this.extraLinesUnderPrompt)+Ke(this.height)+o),this.extraLinesUnderPrompt=p,this.height=vt(o)}checkCursorPos(){let t=this.rl.getCursorPos();t.cols!==this.cursorPos.cols&&(this.write(Ve(t.cols)),this.cursorPos=t)}done({clearContent:t}){this.rl.setPrompt("");let r=We(this.extraLinesUnderPrompt);r+=t?Ke(this.height):`
|
|
17
|
+
`,r+=Pt,this.write(r),this.rl.close()}};var ye=class extends Promise{static withResolver(){let t,r;return{promise:new Promise((i,a)=>{t=i,r=a}),resolve:t,reject:r}}};var Ot=Y(require("node:path"),1),Ir=globalThis.setImmediate;function Fr(){let e=Error.prepareStackTrace,t=[];try{Error.prepareStackTrace=(r,n)=>{let i=n.slice(1);return t=i,i},new Error().stack}catch{return t}return Error.prepareStackTrace=e,t}function H(e){let t=Fr();return(n,i={})=>{let{input:a=process.stdin,signal:s}=i,o=new Set,m=new At.default;m.pipe(i.output??process.stdout);let p=Ct.createInterface({terminal:!0,input:a,output:m});m.mute();let c=new fe(p),{promise:l,resolve:f,reject:w}=ye.withResolver(),d=()=>w(new me);if(s){let g=()=>w(new he({cause:s.reason}));if(s.aborted)return g(),Object.assign(l,{cancel:d});s.addEventListener("abort",g),o.add(()=>s.removeEventListener("abort",g))}o.add(Ft((g,D)=>{w(new ae(`User force closed the prompt with ${g} ${D}`))}));let h=()=>w(new ae("User force closed the prompt with SIGINT"));return p.on("SIGINT",h),o.add(()=>p.removeListener("SIGINT",h)),rt(p,g=>{let D=Nt.AsyncResource.bind(()=>Q.clearAll());p.on("close",D),o.add(()=>p.removeListener("close",D));let b=()=>{let E=()=>c.checkCursorPos();p.input.on("keypress",E),o.add(()=>p.input.removeListener("keypress",E));let R=null;g(()=>{let T=!1;try{let _=e(n,u=>{T?f(u):R={value:u}});if(_===void 0){let u=t[1]?.getFileName();throw u&&!u.startsWith("file://")&&(u=Ot.default.resolve(u)),new Error(`Prompt functions must return a string.
|
|
18
|
+
at ${u}`)}let[I,F]=typeof _=="string"?[_]:_;c.render(I,F),Q.run()}catch(_){w(_)}if(T=!0,R!==null){let{value:_}=R;R=null,f(_)}})};return"readableFlowing"in a?Ir(b):b(),Object.assign(l.then(E=>(Q.clearAll(),E),E=>{throw Q.clearAll(),E}).finally(()=>{o.forEach(E=>E()),c.done({clearContent:!!i.clearPromptOnDone}),m.end()}).then(()=>l),{cancel:d})})}}var jt=require("node:util");var B=class{separator=(0,jt.styleText)("dim",Array.from({length:15}).join(N.line));type="separator";constructor(t){t&&(this.separator=t)}static isSeparator(t){return!!(t&&typeof t=="object"&&"type"in t&&t.type==="separator")}};var J=require("node:util");var Ur={icon:{checked:(0,J.styleText)("green",N.circleFilled),unchecked:N.circle,cursor:N.pointer,disabledChecked:(0,J.styleText)("green",N.circleDouble),disabledUnchecked:"-"},style:{disabled:e=>(0,J.styleText)("dim",e),renderSelectedChoices:e=>e.map(t=>t.short).join(", "),description:e=>(0,J.styleText)("cyan",e),keysHelpTip:e=>e.map(([t,r])=>`${(0,J.styleText)("bold",t)} ${(0,J.styleText)("dim",r)}`).join((0,J.styleText)("dim"," \u2022 "))},i18n:{disabledError:"This option is disabled and cannot be toggled."},keybindings:[]};function Le(e){return!B.isSeparator(e)&&!e.disabled}function He(e){return!B.isSeparator(e)}function $t(e){return!B.isSeparator(e)&&e.checked}function Ge(e){return Le(e)?{...e,checked:!e.checked}:e}function Pr(e){return function(t){return Le(t)?{...t,checked:e}:t}}function vr(e){return e.map(t=>{if(B.isSeparator(t))return t;if(typeof t!="object"||t===null||!("value"in t)){let i=String(t);return{value:t,name:i,short:i,checkedName:i,disabled:!1,checked:!1}}let r=t.name??String(t.value),n={value:t.value,name:r,short:t.short??r,checkedName:t.checkedName??r,disabled:t.disabled??!1,checked:t.checked??!1};return t.description&&(n.description=t.description),n})}var qe=H((e,t)=>{let{pageSize:r=7,loop:n=!0,required:i,validate:a=()=>!0}=e,s={all:"a",invert:"i",...e.shortcuts},o=A(Ur,e.theme),{keybindings:m}=o,[p,c]=L("idle"),l=W({status:p,theme:o}),[f,w]=L(vr(e.choices)),d=Z(()=>{let u=f.findIndex(He),x=f.findLastIndex(He);if(u===-1)throw new q("[checkbox prompt] No selectable choices. All choices are disabled.");return{first:u,last:x}},[f]),[h,g]=L(d.first),[D,b]=L();V(async u=>{if($(u)){let x=f.filter($t),S=await a([...x]);i&&!x.length?b("At least one choice must be selected"):S===!0?(c("done"),t(x.map(y=>y.value))):b(S||"You must select a valid value")}else if(j(u,m)||z(u,m)){if(D&&b(void 0),n||j(u,m)&&h!==d.first||z(u,m)&&h!==d.last){let x=j(u,m)?-1:1,S=h;do S=(S+x+f.length)%f.length;while(!He(f[S]));g(S)}}else if(Te(u)){let x=f[h];x&&!B.isSeparator(x)&&(x.disabled?b(o.i18n.disabledError):(b(void 0),w(f.map((S,y)=>y===h?Ge(S):S))))}else if(u.name===s.all){let x=f.some(S=>Le(S)&&!S.checked);w(f.map(Pr(x)))}else if(u.name===s.invert)w(f.map(Ge));else if(le(u)){let x=Number(u.name)-1,S=-1,y=f.findIndex(O=>B.isSeparator(O)?!1:(S++,S===x)),U=f[y];U&&Le(U)&&(g(y),w(f.map((O,k)=>k===y?Ge(O):O)))}});let E=o.style.message(e.message,p),R,T=ue({items:f,active:h,renderItem({item:u,isActive:x}){if(B.isSeparator(u))return` ${u.separator}`;let S=x?o.icon.cursor:" ";if(u.disabled){let k=typeof u.disabled=="string"?u.disabled:"(disabled)",_e=u.checked?o.icon.disabledChecked:o.icon.disabledUnchecked;return o.style.disabled(`${S}${_e} ${u.name} ${k}`)}x&&(R=u.description);let y=u.checked?o.icon.checked:o.icon.unchecked,U=u.checked?u.checkedName:u.name;return(x?o.style.highlight:k=>k)(`${S}${y} ${U}`)},pageSize:r,loop:n});if(p==="done"){let u=f.filter($t),x=o.style.answer(o.style.renderSelectedChoices(u,f));return[l,E,x].filter(Boolean).join(" ")}let _=[["\u2191\u2193","navigate"],["space","select"]];s.all&&_.push([s.all,"all"]),s.invert&&_.push([s.invert,"invert"]),_.push(["\u23CE","submit"]);let I=o.style.keysHelpTip(_);return`${[[l,E].filter(Boolean).join(" "),T," ",R?o.style.description(R):"",D?o.style.error(D):"",I].filter(Boolean).join(`
|
|
19
|
+
`).trimEnd()}${Ee}`});function Mt(e,t){let r=t!==!1;return/^(y|yes)/i.test(e)?r=!0:/^(n|no)/i.test(e)&&(r=!1),r}function Wt(e){return e?"Yes":"No"}var Je=H((e,t)=>{let{transformer:r=Wt}=e,[n,i]=L("idle"),[a,s]=L(""),o=A(e.theme),m=W({status:n,theme:o});V((f,w)=>{if(n==="idle")if($(f)){let d=Mt(a,e.default);s(r(d)),i("done"),t(d)}else if(se(f)){let d=Wt(!Mt(a,e.default));w.clearLine(0),w.write(d),s(d)}else s(w.line)});let p=a,c="";n==="done"?p=o.style.answer(a):c=` ${o.style.defaultAnswer(e.default===!1?"y/N":"Y/n")}`;let l=o.style.message(e.message,n);return`${m} ${l}${c} ${p}`});var kr={validationFailureMode:"keep"},ne=H((e,t)=>{let{prefill:r="tab"}=e,n=A(kr,e.theme),[i,a]=L("idle"),[s,o]=L(String(e.default??"")),[m,p]=L(),[c,l]=L(""),f=W({status:i,theme:n});async function w(b){let{required:E,pattern:R,patternError:T="Invalid input"}=e;return E&&!b?"You must provide a value":R&&!R.test(b)?T:typeof e.validate=="function"?await e.validate(b)||"You must provide a valid value":!0}V(async(b,E)=>{if(i==="idle")if($(b)){let R=c||s;a("loading");let T=await w(R);T===!0?(l(R),a("done"),t(R)):(n.validationFailureMode==="clear"?l(""):E.write(c),p(T),a("idle"))}else oe(b)&&!c?o(""):se(b)&&!c?(o(""),E.clearLine(0),E.write(s),l(s)):(l(E.line),p(void 0))}),M(b=>{r==="editable"&&s&&(b.write(s),l(s))},[]);let d=n.style.message(e.message,i),h=c;typeof e.transformer=="function"?h=e.transformer(c,{isFinal:i==="done"}):i==="done"&&(h=n.style.answer(c));let g;s&&i!=="done"&&!c&&(g=n.style.defaultAnswer(s));let D="";return m&&(D=n.style.error(m)),[[f,d,g,h].filter(b=>b!==void 0).join(" "),D]});var ie=require("node:util");var Cr={icon:{cursor:N.pointer},style:{disabled:e=>(0,ie.styleText)("dim",e),description:e=>(0,ie.styleText)("cyan",e),keysHelpTip:e=>e.map(([t,r])=>`${(0,ie.styleText)("bold",t)} ${(0,ie.styleText)("dim",r)}`).join((0,ie.styleText)("dim"," \u2022 "))},i18n:{disabledError:"This option is disabled and cannot be selected."},indexMode:"hidden",keybindings:[]};function Ye(e){return!B.isSeparator(e)&&!e.disabled}function ze(e){return!B.isSeparator(e)}function Nr(e){return e.map(t=>{if(B.isSeparator(t))return t;if(typeof t!="object"||t===null||!("value"in t)){let i=String(t);return{value:t,name:i,short:i,disabled:!1}}let r=t.name??String(t.value),n={value:t.value,name:r,short:t.short??r,disabled:t.disabled??!1};return t.description&&(n.description=t.description),n})}var Re=H((e,t)=>{let{loop:r=!0,pageSize:n=7}=e,i=A(Cr,e.theme),{keybindings:a}=i,[s,o]=L("idle"),m=W({status:s,theme:i}),p=ee(),c=!a.includes("vim"),l=Z(()=>Nr(e.choices),[e.choices]),f=Z(()=>{let u=l.findIndex(ze),x=l.findLastIndex(ze);if(u===-1)throw new q("[select prompt] No selectable choices. All choices are disabled.");return{first:u,last:x}},[l]),w=Z(()=>"default"in e?l.findIndex(u=>Ye(u)&&u.value===e.default):-1,[e.default,l]),[d,h]=L(w===-1?f.first:w),g=l[d];if(g==null||B.isSeparator(g))throw new Error("Active index does not point to a choice");let[D,b]=L();V((u,x)=>{if(clearTimeout(p.current),D&&b(void 0),$(u))g.disabled?b(i.i18n.disabledError):(o("done"),t(g.value));else if(j(u,a)||z(u,a)){if(x.clearLine(0),r||j(u,a)&&d!==f.first||z(u,a)&&d!==f.last){let S=j(u,a)?-1:1,y=d;do y=(y+S+l.length)%l.length;while(!ze(l[y]));h(y)}}else if(le(u)&&!Number.isNaN(Number(x.line))){let S=Number(x.line)-1,y=-1,U=l.findIndex(k=>B.isSeparator(k)?!1:(y++,y===S)),O=l[U];O!=null&&Ye(O)&&h(U),p.current=setTimeout(()=>{x.clearLine(0)},700)}else if(oe(u))x.clearLine(0);else if(c){let S=x.line.toLowerCase(),y=l.findIndex(U=>B.isSeparator(U)||!Ye(U)?!1:U.name.toLowerCase().startsWith(S));y!==-1&&h(y),p.current=setTimeout(()=>{x.clearLine(0)},700)}}),M(()=>()=>{clearTimeout(p.current)},[]);let E=i.style.message(e.message,s),R=i.style.keysHelpTip([["\u2191\u2193","navigate"],["\u23CE","select"]]),T=0,_=ue({items:l,active:d,renderItem({item:u,isActive:x,index:S}){if(B.isSeparator(u))return T++,` ${u.separator}`;let y=x?i.icon.cursor:" ",U=i.indexMode==="number"?`${S+1-T}. `:"";if(u.disabled){let k=typeof u.disabled=="string"?u.disabled:"(disabled)",_e=x?i.icon.cursor:"-";return i.style.disabled(`${_e} ${U}${u.name} ${k}`)}return(x?i.style.highlight:k=>k)(`${y} ${U}${u.name}`)},pageSize:n,loop:r});if(s==="done")return[m,E,i.style.answer(g.short)].filter(Boolean).join(" ");let{description:I}=g;return`${[[m,E].filter(Boolean).join(" "),_," ",I?i.style.description(I):"",D?i.style.error(D):"",R].filter(Boolean).join(`
|
|
20
|
+
`).trimEnd()}${Ee}`});(async()=>{let t=!process.argv.slice(2).includes("--no-project-filter");try{let r=await et({workingDir:process.cwd()});console.info("## Add New VEX Statement ##");let n=await ne({message:"CVE name (e.g. CVE-2023-52070)",required:!0}),i=r.projects.filter(d=>!t||d.enabled&&!d.silent).map(d=>({name:`${d.name}@${d.version}`,value:d.purl}));i.sort((d,h)=>d.name.localeCompare(h.name));let a=await qe({message:"Projects to add",choices:i,required:!0,pageSize:15}),s=(0,Vt.resolve)(r.vexDir,`${n}.json`),o=await de(s),m=["under_investigation","affected","fixed","not_affected"],p=await Re({message:"Status?",choices:m.map(d=>({name:d,value:d})),default:m[m.length-1]}),c={};switch(p){case"affected":{let d=await ne({message:"Action statement?",required:!0});c.action_statement=d;break}case"not_affected":{let h=await Re({message:"Justification?",choices:["none","component_not_present","vulnerable_code_not_present","vulnerable_code_not_in_execute_path","vulnerable_code_cannot_be_controlled_by_adversary","inline_mitigations_already_exist"].map(D=>({name:D,value:D}))});h!=="none"&&(c.justification=h);let g=await ne({message:"Impact statement?",required:h==="none"});g&&(c.impact_statement=g);break}case"fixed":{let d=await ne({message:"Status note?"});d&&(c.status_notes=d);break}}let l=new Date().toISOString(),f={vulnerability:{name:n},timestamp:l,products:Array.from(a).map(d=>({"@id":d})),status:p,...c};await Je({message:`Following statement will be added to ${s}:
|
|
21
|
+
${JSON.stringify(f,null,2)}
|
|
22
22
|
|
|
23
|
-
Do you want to proceed?`})||(console.log("Aborted."),process.exit(0)),o?(o.last_updated=l,o.version+=1,o.statements.push(
|
|
23
|
+
Do you want to proceed?`})||(console.log("Aborted."),process.exit(0)),o?(o.last_updated=l,o.version+=1,o.statements.push(f)):o={"@context":"https://openvex.dev/ns/v0.2.0","@id":`https://openvex.dev/docs/public/vex-${(0,Kt.randomUUID)()}`,author:"conterra",timestamp:l,last_updated:l,version:1,statements:[f]},await Ze(s,o)}catch(r){console.log(`Aborted: ${r}`),process.exit(0)}})();
|