UNPKG

envinfo

Version:

Info about your dev environment for debugging purposes

1 lines 144 kB
(()=>{var e={2980:(e,t,n)=>{"use strict";n(7360),n(5888),n(8412),n(3852),n(5584);var r=n(9892),o=n(5008),i=n(5088),s=n(224);function a(e,t){(t=t||{}).clipboard&&console.log("\n*** Clipboard option removed - use clipboardy or clipboard-cli directly ***\n");var n=Object.keys(e).length>0?e:i.defaults,s=Object.entries(n).reduce((function(e,n){var o=n[0],i=n[1],s=r[`get${o}`];return s?(i&&e.push(s(i,t)),e):e=e.concat((i||[]).map((function(e){var t=r[`get${e.replace(/\s/g,"")}Info`];return t?t():Promise.resolve(["Unknown"])})))}),[]);return Promise.all(s).then((function(e){var n=e.reduce((function(e,t){return t&&t[0]&&Object.assign(e,{[t[0]]:t}),e}),{});return function(e,t){var n=t.json?o.json:t.markdown?o.markdown:o.yaml;if(t.console){var r=!1;process.stdout.isTTY&&(r=!0),console.log(n(e,Object.assign({},t,{console:r})))}return n(e,Object.assign({},t,{console:!1}))}(Object.entries(i.defaults).reduce((function(e,t){var r=t[0],o=t[1];return n[r]?Object.assign(e,{[r]:n[r][1]}):Object.assign(e,{[r]:(o||[]).reduce((function(e,t){return n[t]?(n[t].shift(),1===n[t].length?Object.assign(e,{[t]:n[t][0]}):Object.assign(e,{[t]:{version:n[t][0],path:n[t][1]}})):e}),{})})}),{}),t)}))}e.exports={cli:function(e){if(e.all)return a(Object.assign({},i.defaults,{npmPackages:!0,npmGlobalPackages:!0,pnpmGlobalPackages:!0}),e);if(e.raw)return a(JSON.parse(e.raw),e);if(e.helper){var t=r[`get${e.helper}`]||r[`get${e.helper}Info`]||r[e.helper];return t?t().then(console.log):console.error("Not Found")}var n=function(e,t){return e.toLowerCase().includes(t.toLowerCase())},o=Object.keys(e).filter((function(e){return Object.keys(i.defaults).some((function(t){return n(t,e)}))})),c=Object.entries(i.defaults).reduce((function(t,r){return o.some((function(e){return n(e,r[0])}))?Object.assign(t,{[r[0]]:r[1]||e[r[0]]}):t}),{});return e.preset?i[e.preset]?a(Object.assign({},s.omit(i[e.preset],["options"]),c),Object.assign({},i[e.preset].options,s.pick(e,["duplicates","fullTree","json","markdown","console"]))):console.error(`\nNo "${e.preset}" preset found.`):a(c,e)},helpers:r,main:a,run:function(e,t){return"string"==typeof e.preset?a(i[e.preset],t):a(e,t)}}},5008:(e,t,n)=>{"use strict";n(223),n(3852),n(4880),n(3708),n(5584),n(5308);var r=n(6232),o=n(224);function i(e,t){return o.log("trace","clean",e),Object.keys(e).reduce((function(n,r){return!t.showNotFound&&"Not Found"===e[r]||"N/A"===e[r]||void 0===e[r]||0===Object.keys(e[r]).length?n:o.isObject(e[r])?Object.values(e[r]).every((function(e){return"N/A"===e||!t.showNotFound&&"Not Found"===e}))?n:Object.assign(n,{[r]:i(e[r],t)}):Object.assign(n,{[r]:e[r]})}),{})}function s(e,t){o.log("trace","formatHeaders"),t||(t={type:"underline"});var n={underline:["",""]};return e.slice().split("\n").map((function(e){if(":"===e.slice("-1")){var r=e.match(/^[\s]*/g)[0];return`${r}${n[t.type][0]}${e.slice(r.length)}${n[t.type][1]}`}return e})).join("\n")}function a(e){return o.log("trace","formatPackages"),e.npmPackages?Object.assign(e,{npmPackages:Object.entries(e.npmPackages||{}).reduce((function(e,t){var n=t[0],r=t[1];if("Not Found"===r)return Object.assign(e,{[n]:r});var o=r.wanted?`${r.wanted} =>`:"",i=Array.isArray(r.installed)?r.installed.join(", "):r.installed,s=r.duplicates?`(${r.duplicates.join(", ")})`:"";return Object.assign(e,{[n]:`${o} ${i} ${s}`})}),{})}):e}function c(e,t,n){return n||(n={emptyMessage:"None"}),Array.isArray(t)&&(t=t.length>0?t.join(", "):n.emptyMessage),{[e]:t}}function u(e,t){return Object.entries(e).reduce((function(e,n){var r=n[0],i=n[1];return o.isObject(i)?Object.assign(e,{[r]:u(i,t)}):Object.assign(e,t(r,i))}),{})}function l(e){return o.log("trace","serializeArrays"),u(e,c)}function f(e){return o.log("trace","serializeVersionsAndPaths"),Object.entries(e).reduce((function(e,t){return Object.assign(e,{[t[0]]:Object.entries(t[1]).reduce((function(e,t){var n=t[0],r=t[1];return r.version?Object.assign(e,{[n]:[r.version,r.path].filter(Boolean).join(" - ")}):Object.assign(e,{[n]:[r][0]})}),{})},{})}),{})}function p(e){return r(e,{indent:" ",prefix:"\n",postfix:"\n"})}function h(e){return e.slice().split("\n").map((function(e){if(""!==e){var t=":"===e.slice("-1"),n=e.search(/\S|$/);return t?`${"#".repeat(n/2+1)} `+e.slice(n):" - "+e.slice(n)}return""})).join("\n")}function d(e,t){return t||(t={indent:" "}),JSON.stringify(e,null,t.indent)}e.exports={json:function(e,t){return o.log("trace","formatToJson"),t||(t={}),e=o.pipe([function(){return i(e,t)},t.title?function(e){return{[t.title]:e}}:o.noop,d])(e),e=t.console?`\n${e}\n`:e},markdown:function(e,t){return o.log("trace","formatToMarkdown"),o.pipe([function(){return i(e,t)},a,l,f,p,h,t.title?function(e){return`\n# ${t.title}${e}`}:o.noop])(e,t)},yaml:function(e,t){return o.log("trace","formatToYaml",t),o.pipe([function(){return i(e,t)},a,l,f,t.title?function(e){return{[t.title]:e}}:o.noop,p,t.console?s:o.noop])(e,t)}}},6732:(e,t,n)=>{"use strict";n(5888);var r=n(224);e.exports={getNodeInfo:function(){return r.log("trace","getNodeInfo"),Promise.all([r.isWindows?r.run("node -v").then(r.findVersion):r.which("node").then((function(e){return e?r.run(e+" -v"):Promise.resolve("")})).then(r.findVersion),r.which("node")]).then((function(e){return r.determineFound("Node",e[0],e[1])}))},getnpmInfo:function(){return r.log("trace","getnpmInfo"),Promise.all([r.run("npm -v"),r.which("npm")]).then((function(e){return r.determineFound("npm",e[0],e[1])}))},getWatchmanInfo:function(){return r.log("trace","getWatchmanInfo"),Promise.all([r.which("watchman").then((function(e){return e?r.run(e+" -v"):void 0})),r.which("watchman")]).then((function(e){return r.determineFound("Watchman",e[0],e[1])}))},getYarnInfo:function(){return r.log("trace","getYarnInfo"),Promise.all([r.run("yarn -v"),r.which("yarn")]).then((function(e){return r.determineFound("Yarn",e[0],e[1])}))},getpnpmInfo:function(){return r.log("trace","getpnpmInfo"),Promise.all([r.run("pnpm -v"),r.which("pnpm")]).then((function(e){return r.determineFound("pnpm",e[0],e[1])}))},getbunInfo:function(){return r.log("trace","getbunInfo"),Promise.all([r.run("bun -v"),r.which("bun")]).then((function(e){return r.determineFound("bun",e[0],e[1])}))},getDenoInfo:function(){return r.log("trace","getDenoInfo"),Promise.all([r.isWindows?r.run("deno --version").then(r.findVersion):r.which("deno").then((function(e){return e?r.run(e+" --version"):Promise.resolve("")})).then(r.findVersion),r.which("deno")]).then((function(e){return r.determineFound("Deno",e[0],e[1])}))}}},2524:(e,t,n)=>{"use strict";n(3708),n(5888),n(8412);var r=n(2058),o=n(8558),i=n(224),s=n(7072);function a(e,t,n){var r;return(i.isLinux?i.run("firefox --version").then((function(e){return e.replace(/^.* ([^ ]*)/g,"$1")})):i.isMacOS&&"string"==typeof t&&t?i.getDarwinApplicationVersion(t):i.isWindows&&"string"==typeof n&&n?i.windowsExeExists(n).then((function(e){return r=e,e?i.run(`powershell "& '${e}' -v | Write-Output"`).then((function(e){return i.findVersion(e)})):i.NA})):Promise.resolve(i.NA)).then((function(t){return i.determineFound(e,t,r||i.NA)}))}e.exports={getBraveBrowserInfo:function(){return i.log("trace","getBraveBrowser"),(i.isLinux?i.run("brave --version || brave-browser --version").then((function(e){return e.replace(/^.* ([^ ]*)/g,"$1")})):i.isMacOS?i.getDarwinApplicationVersion(i.browserBundleIdentifiers["Brave Browser"]).then(i.findVersion):Promise.resolve("N/A")).then((function(e){return i.determineFound("Brave Browser",e,"N/A")}))},getChromeInfo:function(){var e;if(i.log("trace","getChromeInfo"),i.isLinux)e=i.run("google-chrome --version").then((function(e){return e.replace(" dev","").replace(/^.* ([^ ]*)/g,"$1")}));else if(i.isMacOS)e=i.getDarwinApplicationVersion(i.browserBundleIdentifiers.Chrome).then(i.findVersion);else if(i.isWindows){var t;try{var n=[process.env.ProgramFiles,process.env["ProgramFiles(x86)"]].filter(Boolean).map((function(e){try{return r.readdirSync(s.join(e,"Google/Chrome/Application"))}catch(e){return[]}})).reduce((function(e,t){return e.concat(t)}),[]);t=n.length?i.findVersion(n.join("\n")):i.NotFound}catch(e){t=i.NotFound}e=Promise.resolve(t)}else e=Promise.resolve("N/A");return e.then((function(e){return i.determineFound("Chrome",e,"N/A")}))},getChromeCanaryInfo:function(){return i.log("trace","getChromeCanaryInfo"),i.getDarwinApplicationVersion(i.browserBundleIdentifiers["Chrome Canary"]).then((function(e){return i.determineFound("Chrome Canary",e,"N/A")}))},getChromiumInfo:function(){return i.log("trace","getChromiumInfo"),(i.isLinux?i.run("chromium --version").then(i.findVersion):Promise.resolve("N/A")).then((function(e){return i.determineFound("Chromium",e,"N/A")}))},getEdgeInfo:function(){var e;if(i.log("trace","getEdgeInfo"),i.isWindows&&"10"===o.release().split(".")[0]){var t={Spartan:"Microsoft.MicrosoftEdge",Chromium:"Microsoft.MicrosoftEdge.Stable",ChromiumDev:"Microsoft.MicrosoftEdge.Dev"};e=Promise.all(Object.keys(t).map((function(e){return function(e,t){return i.run(`powershell get-appxpackage ${e}`).then((function(e){if(""!==i.findVersion(e))return`${t} (${i.findVersion(e)})`}))}(t[e],e)})).filter((function(e){return void 0!==e})))}else{if(!i.isMacOS)return Promise.resolve("N/A");e=i.getDarwinApplicationVersion(i.browserBundleIdentifiers["Microsoft Edge"])}return e.then((function(e){return i.determineFound("Edge",Array.isArray(e)?e.filter((function(e){return void 0!==e})):e,i.NA)}))},getFirefoxInfo:function(){return i.log("trace","getFirefoxInfo"),a("Firefox",i.browserBundleIdentifiers.Firefox,"Mozilla Firefox/firefox.exe")},getFirefoxDeveloperEditionInfo:function(){return i.log("trace","getFirefoxDeveloperEditionInfo"),a("Firefox Developer Edition",i.browserBundleIdentifiers["Firefox Developer Edition"],"Firefox Developer Edition/firefox.exe")},getFirefoxNightlyInfo:function(){return i.log("trace","getFirefoxNightlyInfo"),(i.isLinux?i.run("firefox-trunk --version").then((function(e){return e.replace(/^.* ([^ ]*)/g,"$1")})):i.isMacOS?i.getDarwinApplicationVersion(i.browserBundleIdentifiers["Firefox Nightly"]):Promise.resolve("N/A")).then((function(e){return i.determineFound("Firefox Nightly",e,"N/A")}))},getInternetExplorerInfo:function(){var e;if(i.log("trace","getInternetExplorerInfo"),i.isWindows){var t=[process.env.SYSTEMDRIVE||"C:","Program Files","Internet Explorer","iexplore.exe"].join("\\\\");e=i.run(`wmic datafile where "name='${t}'" get Version`).then(i.findVersion)}else e=Promise.resolve("N/A");return e.then((function(e){return i.determineFound("Internet Explorer",e,"N/A")}))},getSafariTechnologyPreviewInfo:function(){return i.log("trace","getSafariTechnologyPreviewInfo"),i.getDarwinApplicationVersion(i.browserBundleIdentifiers["Safari Technology Preview"]).then((function(e){return i.determineFound("Safari Technology Preview",e,"N/A")}))},getSafariInfo:function(){return i.log("trace","getSafariInfo"),i.getDarwinApplicationVersion(i.browserBundleIdentifiers.Safari).then((function(e){return i.determineFound("Safari",e,"N/A")}))}}},6620:(e,t,n)=>{"use strict";n(7360),n(5888);var r=n(224);e.exports={getMongoDBInfo:function(){return r.log("trace","getMongoDBInfo"),Promise.all([r.run("mongo --version").then(r.findVersion),r.which("mongo")]).then((function(e){return r.determineFound("MongoDB",e[0],e[1])}))},getMySQLInfo:function(){return r.log("trace","getMySQLInfo"),Promise.all([r.run("mysql --version").then((function(e){return`${r.findVersion(e,null,1)}${e.includes("MariaDB")?" (MariaDB)":""}`})),r.which("mysql")]).then((function(e){return r.determineFound("MySQL",e[0],e[1])}))},getPostgreSQLInfo:function(){return r.log("trace","getPostgreSQLInfo"),Promise.all([r.run("postgres --version").then(r.findVersion),r.which("postgres")]).then((function(e){return r.determineFound("PostgreSQL",e[0],e[1])}))},getSQLiteInfo:function(){return r.log("trace","getSQLiteInfo"),Promise.all([r.run("sqlite3 --version").then(r.findVersion),r.which("sqlite3")]).then((function(e){return r.determineFound("SQLite",e[0],e[1])}))}}},3224:(e,t,n)=>{"use strict";n(3708),n(8412),n(5888);var r=n(7072),o=n(224);e.exports={getAndroidStudioInfo:function(){var e=Promise.resolve("N/A");if(o.isMacOS){var t=[r.join("/","Applications","Android Studio.app","Contents","Info.plist"),r.join(process.env.HOME,"Applications","Android Studio.app","Contents","Info.plist"),r.join("/","Applications","JetBrains Toolbox","Android Studio.app","Contents","Info.plist"),r.join(process.env.HOME,"Applications","JetBrains Toolbox","Android Studio.app","Contents","Info.plist")];e=Promise.all(t.map((function(e){return o.fileExists(e).then((function(t){if(!t)return null;var n=o.generatePlistBuddyCommand(e.replace(/ /g,"\\ "),["CFBundleShortVersionString","CFBundleVersion"]);return o.run(n).then((function(e){return e.split("\n").join(" ")}))}))}))).then((function(e){return e.find((function(e){return null!==e}))||o.NotFound}))}else o.isLinux?e=Promise.all([o.run('cat /opt/android-studio/bin/studio.sh | grep "$Home/.AndroidStudio" | head -1').then(o.findVersion),o.run("cat /opt/android-studio/build.txt")]).then((function(e){return`${e[0]} ${e[1]}`.trim()||o.NotFound})):o.isWindows&&(e=Promise.all([o.run('wmic datafile where name="C:\\\\Program Files\\\\Android\\\\Android Studio\\\\bin\\\\studio.exe" get Version').then((function(e){return e.replace(/(\r\n|\n|\r)/gm,"")})),o.run('type "C:\\\\Program Files\\\\Android\\\\Android Studio\\\\build.txt"').then((function(e){return e.replace(/(\r\n|\n|\r)/gm,"")}))]).then((function(e){return`${e[0]} ${e[1]}`.trim()||o.NotFound})));return e.then((function(e){return o.determineFound("Android Studio",e)}))},getAtomInfo:function(){return o.log("trace","getAtomInfo"),Promise.all([o.getDarwinApplicationVersion(o.ideBundleIdentifiers.Atom),"N/A"]).then((function(e){return o.determineFound("Atom",e[0],e[1])}))},getEmacsInfo:function(){return o.log("trace","getEmacsInfo"),o.isMacOS||o.isLinux?Promise.all([o.run("emacs --version").then(o.findVersion),o.which("emacs")]).then((function(e){return o.determineFound("Emacs",e[0],e[1])})):Promise.resolve(["Emacs","N/A"])},getIntelliJInfo:function(){return o.log("trace","getIntelliJInfo"),o.getDarwinApplicationVersion(o.ideBundleIdentifiers.IntelliJ).then((function(e){return o.determineFound("IntelliJ",e)}))},getNanoInfo:function(){return o.log("trace","getNanoInfo"),o.isLinux?Promise.all([o.run("nano --version").then(o.findVersion),o.which("nano")]).then((function(e){return o.determineFound("Nano",e[0],e[1])})):Promise.resolve(["Nano","N/A"])},getNvimInfo:function(){return o.log("trace","getNvimInfo"),o.isMacOS||o.isLinux?Promise.all([o.run("nvim --version").then(o.findVersion),o.which("nvim")]).then((function(e){return o.determineFound("Nvim",e[0],e[1])})):Promise.resolve(["Vim","N/A"])},getPhpStormInfo:function(){return o.log("trace","getPhpStormInfo"),o.getDarwinApplicationVersion(o.ideBundleIdentifiers.PhpStorm).then((function(e){return o.determineFound("PhpStorm",e)}))},getSublimeTextInfo:function(){return o.log("trace","getSublimeTextInfo"),Promise.all([o.run("subl --version").then((function(e){return o.findVersion(e,/\d+/)})),o.which("subl")]).then((function(e){return""===e[0]&&o.isMacOS?(o.log("trace","getSublimeTextInfo using plist"),Promise.all([o.getDarwinApplicationVersion(o.ideBundleIdentifiers["Sublime Text"]),"N/A"])):e})).then((function(e){return o.determineFound("Sublime Text",e[0],e[1])}))},getVimInfo:function(){return o.log("trace","getVimInfo"),o.isMacOS||o.isLinux?Promise.all([o.run("vim --version").then(o.findVersion),o.which("vim")]).then((function(e){return o.determineFound("Vim",e[0],e[1])})):Promise.resolve(["Vim","N/A"])},getVSCodeInfo:function(){return o.log("trace","getVSCodeInfo"),Promise.all([o.run("code --version").then(o.findVersion),o.which("code")]).then((function(e){return o.determineFound("VSCode",e[0],e[1])}))},getCursorInfo:function(){return o.log("trace","getCursorInfo"),Promise.all([o.run("cursor --version").then(o.findVersion),o.which("cursor")]).then((function(e){return o.determineFound("Cursor",e[0],e[1])}))},getClaudeCodeInfo:function(){return o.log("trace","getClaudeCodeInfo"),Promise.all([o.run("claude --version").then(o.findVersion),o.which("claude")]).then((function(e){return o.determineFound("Claude Code",e[0],e[1])}))},getopencodeInfo:function(){return o.log("trace","getopencodeInfo"),Promise.all([o.run("opencode --version").then(o.findVersion),o.which("opencode")]).then((function(e){return o.determineFound("opencode",e[0],e[1])}))},getCodexInfo:function(){return o.log("trace","getCodexInfo"),Promise.all([o.run("codex --version").then(o.findVersion),o.which("codex")]).then((function(e){return o.determineFound("Codex",e[0],e[1])}))},getVisualStudioInfo:function(){return o.log("trace","getVisualStudioInfo"),o.isWindows?o.run(`"${process.env["ProgramFiles(x86)"]}/Microsoft Visual Studio/Installer/vswhere.exe" -format json -prerelease`).then((function(e){var t=JSON.parse(e).map((function(e){return{Version:e.installationVersion,DisplayName:e.displayName}}));return o.determineFound("Visual Studio",t.map((function(e){return`${e.Version} (${e.DisplayName})`})))})).catch((function(){return Promise.resolve(["Visual Studio",o.NotFound])})):Promise.resolve(["Visual Studio",o.NA])},getWebStormInfo:function(){return o.log("trace","getWebStormInfo"),o.getDarwinApplicationVersion(o.ideBundleIdentifiers.WebStorm).then((function(e){return o.determineFound("WebStorm",e)}))},getXcodeInfo:function(){return o.log("trace","getXcodeInfo"),o.isMacOS?Promise.all([o.which("xcodebuild").then((function(e){return o.run(e+" -version")})).then((function(e){return`${o.findVersion(e)}/${e.split("Build version ")[1]}`})),o.which("xcodebuild")]).then((function(e){return o.determineFound("Xcode",e[0],e[1])})):Promise.resolve(["Xcode","N/A"])}}},9892:(e,t,n)=>{"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n(5584);var o=n(6304),i=n(224),s=n(6732),a=n(2524),c=n(6620),u=n(3224),l=n(6436),f=n(760),p=n(2060),h=n(7508),d=n(9284),m=n(8144),g=n(5882),v=n(9676);e.exports=Object.assign({},i,o,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),o.forEach((function(t){r(e,t,n[t])}))}return e}({},s,a,c,u,l,f,p,h,d,m,g,v))},6436:(e,t,n)=>{"use strict";n(5888);var r=n(224);e.exports={getBashInfo:function(){return r.log("trace","getBashInfo"),Promise.all([r.run("bash --version").then(r.findVersion),r.which("bash")]).then((function(e){return r.determineFound("Bash",e[0],e[1])}))},getElixirInfo:function(){return r.log("trace","getElixirInfo"),Promise.all([r.run("elixir --version").then((function(e){return r.findVersion(e,/[Elixir]+\s([\d+.[\d+|.]+)/,1)})),r.which("elixir")]).then((function(e){return Promise.resolve(r.determineFound("Elixir",e[0],e[1]))}))},getErlangInfo:function(){return r.log("trace","getErlangInfo"),Promise.all([r.run("erl -eval \"{ok, Version} = file:read_file(filename:join([code:root_dir(), 'releases', erlang:system_info(otp_release), 'OTP_VERSION'])), io:fwrite(Version), halt().\" -noshell").then(r.findVersion),r.which("erl")]).then((function(e){return Promise.resolve(r.determineFound("Erlang",e[0],e[1]))}))},getGoInfo:function(){return r.log("trace","getGoInfo"),Promise.all([r.run("go version").then(r.findVersion),r.which("go")]).then((function(e){return r.determineFound("Go",e[0],e[1])}))},getJavaInfo:function(){return r.log("trace","getJavaInfo"),Promise.all([r.run("javac -version",{unify:!0}).then((function(e){return r.findVersion(e,/\d+\.[\w+|.|_|-]+/)})),r.which("javac")]).then((function(e){return r.determineFound("Java",e[0],e[1])}))},getPerlInfo:function(){return r.log("trace","getPerlInfo"),Promise.all([r.run("perl -v").then(r.findVersion),r.which("perl")]).then((function(e){return r.determineFound("Perl",e[0],e[1])}))},getPHPInfo:function(){return r.log("trace","getPHPInfo"),Promise.all([r.run("php -v").then(r.findVersion),r.which("php")]).then((function(e){return r.determineFound("PHP",e[0],e[1])}))},getProtocInfo:function(){return r.log("trace","getProtocInfo"),Promise.all([r.run("protoc --version").then(r.findVersion),r.which("protoc")]).then((function(e){return r.determineFound("Protoc",e[0],e[1])}))},getPythonInfo:function(){return r.log("trace","getPythonInfo"),Promise.all([r.run("python -V 2>&1").then(r.findVersion),r.which("python")]).then((function(e){return r.determineFound("Python",e[0],e[1])}))},getPython3Info:function(){return r.log("trace","getPython3Info"),Promise.all([r.run("python3 -V 2>&1").then(r.findVersion),r.which("python3")]).then((function(e){return r.determineFound("Python3",e[0],e[1])}))},getRInfo:function(){return r.log("trace","getRInfo"),Promise.all([r.run("R --version",{unify:!0}).then(r.findVersion),r.which("R")]).then((function(e){return r.determineFound("R",e[0],e[1])}))},getRubyInfo:function(){return r.log("trace","getRubyInfo"),Promise.all([r.run("ruby -v").then(r.findVersion),r.which("ruby")]).then((function(e){return r.determineFound("Ruby",e[0],e[1])}))},getRustInfo:function(){return r.log("trace","getRustInfo"),Promise.all([r.run("rustc --version").then(r.findVersion),r.which("rustc")]).then((function(e){return r.determineFound("Rust",e[0],e[1])}))},getZigInfo:function(){return r.log("trace","getZigInfo"),Promise.all([r.run("zig version").then(r.findVersion),r.which("zig")]).then((function(e){return r.determineFound("Zig",e[0],e[1])}))},getScalaInfo:function(){return r.log("trace","getScalaInfo"),r.isMacOS||r.isLinux?Promise.all([r.run("scalac -version").then(r.findVersion),r.which("scalac")]).then((function(e){return r.determineFound("Scala",e[0],e[1])})):Promise.resolve(["Scala","N/A"])}}},760:(e,t,n)=>{"use strict";n(5888);var r=n(224);e.exports={getAptInfo:function(){return r.log("trace","getAptInfo"),r.isLinux?Promise.all([r.run("apt --version").then(r.findVersion),r.which("apt")]).then((function(e){return r.determineFound("Apt",e[0],e[1])})):Promise.all(["Apt","N/A"])},getCargoInfo:function(){return r.log("trace","getCargoInfo"),Promise.all([r.run("cargo --version").then(r.findVersion),r.which("cargo")]).then((function(e){return r.determineFound("Cargo",e[0],e[1])}))},getCocoaPodsInfo:function(){return r.log("trace","getCocoaPodsInfo"),r.isMacOS?Promise.all([r.run("pod --version").then(r.findVersion),r.which("pod")]).then((function(e){return r.determineFound("CocoaPods",e[0],e[1])})):Promise.all(["CocoaPods","N/A"])},getComposerInfo:function(){return r.log("trace","getComposerInfo"),Promise.all([r.run("composer --version").then(r.findVersion),r.which("composer").then(r.condensePath)]).then((function(e){return r.determineFound("Composer",e[0],e[1])}))},getGradleInfo:function(){return r.log("trace","getGradleInfo"),Promise.all([r.run("gradle --version").then(r.findVersion),r.which("gradle").then(r.condensePath)]).then((function(e){return r.determineFound("Gradle",e[0],e[1])}))},getHomebrewInfo:function(){return r.log("trace","getHomebrewInfo"),r.isMacOS||r.isLinux?Promise.all([r.run("brew --version").then(r.findVersion),r.which("brew")]).then((function(e){return r.determineFound("Homebrew",e[0],e[1])})):Promise.all(["Homebrew","N/A"])},getMavenInfo:function(){return r.log("trace","getMavenInfo"),Promise.all([r.run("mvn --version").then(r.findVersion),r.which("mvn").then(r.condensePath)]).then((function(e){return r.determineFound("Maven",e[0],e[1])}))},getpip2Info:function(){return r.log("trace","getpip2Info"),Promise.all([r.run("pip2 --version").then(r.findVersion),r.which("pip2").then(r.condensePath)]).then((function(e){return r.determineFound("pip2",e[0],e[1])}))},getpip3Info:function(){return r.log("trace","getpip3Info"),Promise.all([r.run("pip3 --version").then(r.findVersion),r.which("pip3").then(r.condensePath)]).then((function(e){return r.determineFound("pip3",e[0],e[1])}))},getRubyGemsInfo:function(){return r.log("trace","getRubyGemsInfo"),Promise.all([r.run("gem --version").then(r.findVersion),r.which("gem")]).then((function(e){return r.determineFound("RubyGems",e[0],e[1])}))},getYumInfo:function(){return r.log("trace","getYumInfo"),r.isLinux?Promise.all([r.run("yum --version").then(r.findVersion),r.which("yum")]).then((function(e){return r.determineFound("Yum",e[0],e[1])})):Promise.all(["Yum","N/A"])}}},2060:(e,t,n)=>{"use strict";n(5888);var r=n(224),o=n(7072);e.exports={getYarnWorkspacesInfo:function(){return r.log("trace","getYarnWorkspacesInfo"),Promise.all([r.run("yarn -v"),r.getPackageJsonByPath("package.json").then((function(e){return e&&"workspaces"in e}))]).then((function(e){var t="Yarn Workspaces";return e[0]&&e[1]?Promise.resolve([t,e[0]]):Promise.resolve([t,"Not Found"])}))},getLernaInfo:function(){return r.log("trace","getLernaInfo"),Promise.all([r.getPackageJsonByName("lerna").then((function(e){return e&&e.version})),r.fileExists(o.join(process.cwd(),"lerna.json"))]).then((function(e){var t="Lerna";return e[0]&&e[1]?Promise.resolve([t,e[0]]):Promise.resolve([t,"Not Found"])}))}}},7508:(e,t,n)=>{"use strict";n(4880),n(5888),n(3708);var r=n(8558),o=n(2058),i=n(7072),s=n(224);e.exports={getAndroidSDKInfo:function(){return s.run("sdkmanager --list").then((function(e){return!e&&process.env.ANDROID_HOME?s.run(`${process.env.ANDROID_HOME}/tools/bin/sdkmanager --list`):e})).then((function(e){return!e&&process.env.ANDROID_HOME?s.run(`${process.env.ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager --list`):e})).then((function(e){return!e&&s.isMacOS?s.run("~/Library/Android/sdk/cmdline-tools/latest/bin/sdkmanager --list"):e})).then((function(e){return!e&&s.isMacOS?s.run("~/Library/Android/sdk/tools/bin/sdkmanager --list"):e})).then((function(e){if(!e&&s.isWindows){var t=i.join(r.homedir(),"AppData/Local/Android/Sdk/cmdline-tools/latest/bin/sdkmanager");return s.run(`${t} --list`)}return e})).then((function(e){var t=s.parseSDKManagerOutput(e),n=function(e){var t,n=i.join(e,"source.properties");try{t=o.readFileSync(n,"utf8")}catch(e){if("ENOENT"===e.code)return;throw e}for(var r=t.split("\n"),s=0;s<r.length;s+=1){var a=r[s].split("=");if(2===a.length&&"Pkg.Revision"===a[0].trim())return a[1].trim()}},r=process.env.ANDROID_NDK?n(process.env.ANDROID_NDK):process.env.ANDROID_NDK_HOME?n(process.env.ANDROID_NDK_HOME):process.env.ANDROID_HOME?n(i.join(process.env.ANDROID_HOME,"ndk-bundle")):void 0;return t.buildTools.length||t.apiLevels.length||t.systemImages.length||r?Promise.resolve(["Android SDK",{"API Levels":t.apiLevels||s.NotFound,"Build Tools":t.buildTools||s.NotFound,"System Images":t.systemImages||s.NotFound,"Android NDK":r||s.NotFound}]):Promise.resolve(["Android SDK",s.NotFound])}))},getiOSSDKInfo:function(){return s.isMacOS?s.run("xcodebuild -showsdks").then((function(e){return e.match(/[\w]+\s[\d|.]+/g)})).then(s.uniq).then((function(e){return e.length?["iOS SDK",{Platforms:e}]:["iOS SDK",s.NotFound]})):Promise.resolve(["iOS SDK","N/A"])},getWindowsSDKInfo:function(){if(s.log("trace","getWindowsSDKInfo"),s.isWindows){var e=s.NotFound;return s.run("reg query HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\AppModelUnlock").then((function(t){e=t.split(/[\r\n]/g).slice(1).filter((function(e){return""!==e})).reduce((function(e,t){var n=t.match(/[^\s]+/g);return"0x0"!==n[2]&&"0x1"!==n[2]||(n[2]="0x1"===n[2]?"Enabled":"Disabled"),e[n[0]]=n[2],e}),{}),0===Object.keys(e).length&&(e=s.NotFound);try{var n=o.readdirSync(`${process.env["ProgramFiles(x86)"]}/Windows Kits/10/Platforms/UAP`);e.Versions=n}catch(e){}return Promise.resolve(["Windows SDK",e])}))}return Promise.resolve(["Windows SDK",s.NA])}}},9284:(e,t,n)=>{"use strict";n(5888);var r=n(224);e.exports={getApacheInfo:function(){return r.log("trace","getApacheInfo"),r.isMacOS||r.isLinux?Promise.all([r.run("apachectl -v").then(r.findVersion),r.which("apachectl")]).then((function(e){return r.determineFound("Apache",e[0],e[1])})):Promise.resolve(["Apache","N/A"])},getNginxInfo:function(){return r.log("trace","getNginxInfo"),r.isMacOS||r.isLinux?Promise.all([r.run("nginx -v 2>&1").then(r.findVersion),r.which("nginx")]).then((function(e){return r.determineFound("Nginx",e[0],e[1])})):Promise.resolve(["Nginx","N/A"])}}},8144:(e,t,n)=>{"use strict";n(3708),n(4880),n(5888);var r=n(2288),o=n(224),i=n(8558);e.exports={getContainerInfo:function(){return o.log("trace","getContainerInfo"),o.isLinux?Promise.all([o.fileExists("/.dockerenv"),o.readFile("/proc/self/cgroup")]).then((function(e){return o.log("trace","getContainerInfoThen",e),Promise.resolve(["Container",e[0]||e[1]?"Yes":"N/A"])})).catch((function(e){return o.log("trace","getContainerInfoCatch",e)})):Promise.resolve(["Container","N/A"])},getCPUInfo:function(){var e;o.log("trace","getCPUInfo");try{var t=i.cpus();e="("+t.length+") "+i.arch()+" "+t[0].model}catch(t){e="Unknown"}return Promise.all(["CPU",e])},getMemoryInfo:function(){return o.log("trace","getMemoryInfo"),Promise.all(["Memory",`${o.toReadableBytes(i.freemem())} / ${o.toReadableBytes(i.totalmem())}`])},getOSInfo:function(){var e,t;if(o.log("trace","getOSInfo"),o.isMacOS)e=o.run("sw_vers -productVersion ");else if(o.isLinux)e=o.run("cat /etc/os-release").then((function(e){var t=(e||"").match(/NAME="(.+)"/)||"",n=(e||"").match(/VERSION="(.+)"/)||["",""],r=null!==n?n[1]:"";return`${t[1]} ${r}`.trim()||""}));else if(o.isWindows){e=Promise.resolve(i.release());var n=i.release().split(".");"10"===n[0]&&"0"===n[1]&&n[2]>=22e3&&(t="Windows 11")}else e=Promise.resolve();return e.then((function(e){return t=t||r(i.platform(),i.release()),e&&(t+=` ${e}`),["OS",t]}))},getShellInfo:function(){if(o.log("trace","getShellInfo",process.env),o.isMacOS||o.isLinux){var e=process.env.SHELL||o.runSync("getent passwd $LOGNAME | cut -d: -f7 | head -1"),t=`${e} --version 2>&1`;return e.match("/bin/ash")&&(t=`${e} --help 2>&1`),Promise.all([o.run(t).then(o.findVersion),o.which(e)]).then((function(e){return o.determineFound("Shell",e[0]||"Unknown",e[1])}))}return Promise.resolve(["Shell","N/A"])},getGLibcInfo:function(){return o.log("trace","getGLibc"),o.isLinux?Promise.all([o.run("ldd --version").then(o.findVersion)]).then((function(e){return o.determineFound("GLibc",e[0]||"Unknown")})):Promise.resolve(["GLibc","N/A"])}}},5882:(e,t,n)=>{"use strict";n(5888);var r=n(224);e.exports={getBazelInfo:function(){return r.log("trace","getBazelInfo"),Promise.all([r.run("bazel --version").then(r.findVersion),r.which("bazel")]).then((function(e){return r.determineFound("Bazel",e[0],e[1])}))},getCMakeInfo:function(){return r.log("trace","getCMakeInfo"),Promise.all([r.run("cmake --version").then(r.findVersion),r.which("cmake")]).then((function(e){return r.determineFound("CMake",e[0],e[1])}))},getGCCInfo:function(){return r.log("trace","getGCCInfo"),r.isMacOS||r.isLinux?Promise.all([r.run("gcc -v 2>&1").then(r.findVersion),r.which("gcc")]).then((function(e){return r.determineFound("GCC",e[0],e[1])})):Promise.resolve(["GCC","N/A"])},getClangInfo:function(){return r.log("trace","getClangInfo"),Promise.all([r.run("clang --version").then(r.findVersion),r.which("clang")]).then((function(e){return r.determineFound("Clang",e[0],e[1])}))},getGitInfo:function(){return r.log("trace","getGitInfo"),Promise.all([r.run("git --version").then(r.findVersion),r.which("git")]).then((function(e){return r.determineFound("Git",e[0],e[1])}))},getGitLFSInfo:function(){return r.log("trace","getGitLFSInfo"),Promise.all([r.run("git lfs version").then(r.findVersion),r.which("git-lfs")]).then((function(e){return r.determineFound("Git LFS",e[0],e[1])}))},getMakeInfo:function(){return r.log("trace","getMakeInfo"),r.isMacOS||r.isLinux?Promise.all([r.run("make --version").then(r.findVersion),r.which("make")]).then((function(e){return r.determineFound("Make",e[0],e[1])})):Promise.resolve(["Make","N/A"])},getNinjaInfo:function(){return r.log("trace","getNinjaInfo"),Promise.all([r.run("ninja --version").then(r.findVersion),r.which("ninja")]).then((function(e){return r.determineFound("Ninja",e[0],e[1])}))},getMercurialInfo:function(){return r.log("trace","getMercurialInfo"),r.isMacOS||r.isLinux?Promise.all([r.run("hg --version").then(r.findVersion),r.which("hg")]).then((function(e){return r.determineFound("Mercurial",e[0],e[1])})):Promise.resolve(["Mercurial","N/A"])},getSubversionInfo:function(){return r.log("trace","getSubversionInfo"),r.isMacOS||r.isLinux?Promise.all([r.run("svn --version").then(r.findVersion),r.which("svn")]).then((function(e){return r.determineFound("Subversion",e[0],e[1])})):Promise.resolve(["Subversion","N/A"])},getFFmpegInfo:function(){return r.log("trace","getFFmpegInfo"),Promise.all([r.run("ffmpeg -version").then(r.findVersion),r.which("ffmpeg")]).then((function(e){return r.determineFound("FFmpeg",e[0],e[1])}))},getCurlInfo:function(){return r.log("trace","getCurlInfo"),Promise.all([r.run("curl --version").then(r.findVersion),r.which("curl")]).then((function(e){return r.determineFound("Curl",e[0],e[1])}))},getOpenSSLInfo:function(){return r.log("trace","getOpenSSLInfo"),Promise.all([r.run("openssl version").then(r.findVersion),r.which("openssl")]).then((function(e){return r.determineFound("OpenSSL",e[0],e[1])}))},getccacheInfo:function(){return r.log("trace","getccacheInfo"),Promise.all([r.run("ccache -V").then(r.findVersion),r.which("ccache")]).then((function(e){return r.determineFound("ccache",e[0],e[1])}))},get7zInfo:function(){r.log("trace","get7zInfo");var e=["7z","7zz"],t=function(){return Promise.all(e.map((function(e){return r.which(e)}))).then((function(t){var n=t.findIndex(Boolean);return n>=0?{bin:e[n],path:t[n]}:null}))};return r.isWindows?r.windowsExeExists("7-Zip/7z.exe").then((function(e){return e?Promise.all([r.run(`powershell "& '${e}' i | Write-Output"`).then(r.findVersion),Promise.resolve(e)]).then((function(e){return r.determineFound("7z",e[0],e[1])})):t().then((function(e){return e?Promise.all([r.run(`${e.bin} i`).then(r.findVersion),Promise.resolve(e.path)]).then((function(e){return r.determineFound("7z",e[0],e[1])})):r.determineFound("7z","",void 0)}))})):t().then((function(e){return e?Promise.all([r.run(`${e.bin} i`).then(r.findVersion),Promise.resolve(e.path)]).then((function(e){return r.determineFound("7z",e[0],e[1])})):r.determineFound("7z","",void 0)}))},getClashMetaInfo:function(){r.log("trace","getClashMetaInfo");var e=["mihomo"];return Promise.all(e.map((function(e){return r.which(e)}))).then((function(t){var n=t.findIndex(Boolean);return n>=0?{bin:e[n],path:t[n]}:null})).then((function(e){return e?Promise.all([r.run(`${e.bin} -v`).then(r.findVersion),Promise.resolve(e.path)]).then((function(e){return r.determineFound("Clash Meta",e[0],e[1])})):r.determineFound("Clash Meta","",void 0)}))},getCalibreInfo:function(){return r.log("trace","getCalibreInfo"),Promise.all([r.run("ebook-convert --version").then(r.findVersion),r.which("calibre")]).then((function(e){return r.determineFound("Calibre",e[0],e[1])}))}}},9676:(e,t,n)=>{"use strict";n(5888);var r=n(224);e.exports={getDockerInfo:function(){return r.log("trace","getDockerInfo"),Promise.all([r.run("docker --version").then(r.findVersion),r.which("docker")]).then((function(e){return r.determineFound("Docker",e[0],e[1])}))},getDockerComposeInfo:function(){return r.log("trace","getDockerComposeInfo"),Promise.all([r.run("docker-compose --version").then(r.findVersion),r.which("docker-compose")]).then((function(e){return r.determineFound("Docker Compose",e[0],e[1])}))},getParallelsInfo:function(){return r.log("trace","getParallelsInfo"),Promise.all([r.run("prlctl --version").then(r.findVersion),r.which("prlctl")]).then((function(e){return r.determineFound("Parallels",e[0],e[1])}))},getPodmanInfo:function(){return r.log("trace","getPodmanInfo"),Promise.all([r.run("podman --version").then(r.findVersion),r.which("podman")]).then((function(e){return r.determineFound("Podman",e[0],e[1])}))},getVirtualBoxInfo:function(){return r.log("trace","getVirtualBoxInfo"),Promise.all([r.run("vboxmanage --version").then(r.findVersion),r.which("vboxmanage")]).then((function(e){return r.determineFound("VirtualBox",e[0],e[1])}))},getVMwareFusionInfo:function(){return r.log("trace","getVMwareFusionInfo"),r.getDarwinApplicationVersion("com.vmware.fusion").then((function(e){return r.determineFound("VMWare Fusion",e,"N/A")}))}}},6032:e=>{"use strict";e.exports={androidSystemImages:/system-images;([\S \t]+)/g,androidAPILevels:/platforms;android-(\d+)[\S\s]/g,androidBuildTools:/build-tools;([\d|.]+)[\S\s]/g}},6304:(e,t,n)=>{"use strict";n(8412),n(9224),n(4880),n(5584),n(5888),n(7360),n(3708);var r=n(808),o=n(7072),i=n(224),s=function(e){var t=e.split("node_modules"+o.sep),n=t[t.length-1];return"@"===n.charAt(0)?[n.split(o.sep)[0],n.split(o.sep)[1]].join("/"):n.split(o.sep)[0]};e.exports={getnpmPackages:function(e,t){i.log("trace","getnpmPackages"),t||(t={});var n=null,r=null;return"string"==typeof e&&(e.includes("*")||e.includes("?")||e.includes("+")||e.includes("!")?n=e:e=e.split(",")),Promise.all(["npmPackages",i.getPackageJsonByPath("package.json").then((function(e){return Object.assign({},(e||{}).devDependencies||{},(e||{}).dependencies||{})})).then((function(e){return r=e,t.fullTree||t.duplicates||n?i.getAllPackageJsonPaths(n):Promise.resolve(Object.keys(e||[]).map((function(e){return o.join("node_modules",e,"package.json")})))})).then((function(o){return!n&&"boolean"!=typeof e||t.fullTree?Array.isArray(e)?Promise.resolve((o||[]).filter((function(t){return e.includes(s(t))}))):Promise.resolve(o):Promise.resolve((o||[]).filter((function(e){return Object.keys(r||[]).includes(s(e))})))})).then((function(e){return Promise.all([e,Promise.all(e.map((function(e){return i.getPackageJsonByPath(e)})))])})).then((function(e){var n=e[0],o=e[1].reduce((function(e,r,o){return r&&r.name?(e[r.name]||(e[r.name]={}),t.duplicates&&(e[r.name].duplicates=i.uniq((e[r.name].duplicates||[]).concat(r.version))),1===(n[o].match(/node_modules/g)||[]).length&&(e[r.name].installed=r.version),e):e}),{});return Object.keys(o).forEach((function(e){o[e].duplicates&&o[e].installed&&(o[e].duplicates=o[e].duplicates.filter((function(t){return t!==o[e].installed}))),r[e]&&(o[e].wanted=r[e])})),o})).then((function(n){return t.showNotFound&&Array.isArray(e)&&e.forEach((function(e){n[e]||(n[e]="Not Found")})),n})).then((function(e){return i.sortObject(e)}))])},getnpmGlobalPackages:function(e,t){i.log("trace","getnpmGlobalPackages",e);var n=null;return"string"==typeof e?e.includes("*")||e.includes("?")||e.includes("+")||e.includes("!")?n=e:e=e.split(","):Array.isArray(e)||(e=!0),Promise.all(["npmGlobalPackages",i.run("npm get prefix --global").then((function(e){return new Promise((function(t,s){return r(o.join(e,i.isWindows?"":"lib","node_modules",n||"{*,@*/*}","package.json"),(function(e,n){e||t(n),s(e)}))}))})).then((function(t){return Promise.all(t.filter((function(t){return"boolean"==typeof e||null!==n||e.includes(s(t))})).map((function(e){return i.getPackageJsonByFullPath(e)})))})).then((function(e){return e.reduce((function(e,t){return t?Object.assign(e,{[t.name]:t.version}):e}),{})})).then((function(n){return t.showNotFound&&Array.isArray(e)&&e.forEach((function(e){n[e]||(n[e]="Not Found")})),n}))])},getpnpmGlobalPackages:function(e,t){i.log("trace","getpnpmGlobalPackages",e);var n=null;return"string"==typeof e?e.includes("*")||e.includes("?")||e.includes("+")||e.includes("!")?n=e:e=e.split(","):Array.isArray(e)||(e=!0),Promise.all(["pnpmGlobalPackages",i.run("pnpm list --global --depth=0 --json").then((function(e){var t={};try{var n=JSON.parse(e||"[]");(Array.isArray(n)?n:[n]).forEach((function(e){if(e){var n=e.dependencies||{};Object.keys(n).forEach((function(e){var r=n[e];r&&"object"==typeof r&&r.version?t[e]=r.version:"string"==typeof r&&(t[e]=r)})),e.name&&e.version&&(t[e.name]=e.version)}}))}catch(e){i.log("trace","pnpm parseJson error",e&&e.message||String(e))}return t})).then((function(r){var o=r||{};if(null!==n){var s=new RegExp("^"+n.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*").replace(/\?/g,".")+"$");o=Object.keys(o).filter((function(e){return s.test(e)})).reduce((function(e,t){return Object.assign(e,{[t]:o[t]})}),{})}else Array.isArray(e)&&(o=Object.keys(o).filter((function(t){return e.includes(t)})).reduce((function(e,t){return Object.assign(e,{[t]:o[t]})}),{}));return t&&t.showNotFound&&Array.isArray(e)&&e.forEach((function(e){o[e]||(o[e]="Not Found")})),i.sortObject(o)}))])}}},5088:e=>{"use strict";e.exports={defaults:{System:["OS","CPU","Memory","Container","Shell"],Binaries:["Node","Yarn","npm","pnpm","bun","Deno","Watchman"],Managers:["Apt","Cargo","CocoaPods","Composer","Gradle","Homebrew","Maven","pip2","pip3","RubyGems","Yum"],Utilities:["7z","Bazel","CMake","Make","GCC","Git","Git LFS","Clang","Ninja","Mercurial","Subversion","FFmpeg","Curl","OpenSSL","ccache","Calibre","Clash Meta"],Servers:["Apache","Nginx"],Virtualization:["Docker","Docker Compose","Parallels","VirtualBox","VMware Fusion"],SDKs:["iOS SDK","Android SDK","Windows SDK"],IDEs:["Android Studio","Atom","Emacs","IntelliJ","NVim","Nano","PhpStorm","Sublime Text","VSCode","Cursor","Claude Code","Codex","opencode","Visual Studio","Vim","WebStorm","Xcode"],Languages:["Bash","Go","Elixir","Erlang","Java","Perl","PHP","Protoc","Python","Python3","R","Ruby","Rust","Scala","Zig"],Databases:["MongoDB","MySQL","PostgreSQL","SQLite"],Browsers:["Brave Browser","Chrome","Chrome Canary","Chromium","Edge","Firefox","Firefox Developer Edition","Firefox Nightly","Internet Explorer","Safari","Safari Technology Preview"],Monorepos:["Yarn Workspaces","Lerna"],npmPackages:null,npmGlobalPackages:null,pnpmGlobalPackages:null},cssnano:{System:["OS","CPU"],Binaries:["Node","Yarn","npm","pnpm","bun","Deno"],npmPackages:["cssnano","postcss"],options:{duplicates:!0}},jest:{System:["OS","CPU"],Binaries:["Node","Yarn","npm","pnpm","bun","Deno"],npmPackages:["jest"]},"react-native":{System:["OS","CPU"],Binaries:["Node","Yarn","npm","pnpm","bun","Watchman"],SDKs:["iOS SDK","Android SDK","Windows SDK"],IDEs:["Android Studio","Xcode","Visual Studio"],npmPackages:["react","react-native"],npmGlobalPackages:["react-native-cli"]},nyc:{System:["OS","CPU","Memory"],Binaries:["Node","Yarn","npm","pnpm","bun","Deno"],npmPackages:"/**/{*babel*,@babel/*/,*istanbul*,nyc,source-map-support,typescript,ts-node}"},webpack:{System:["OS","CPU"],Binaries:["Node","Yarn","npm","pnpm","bun","Deno"],npmPackages:"*webpack*",npmGlobalPackages:["webpack","webpack-cli"]},"styled-components":{System:["OS","CPU"],Binaries:["Node","Yarn","npm","pnpm","bun","Deno"],Browsers:["Chrome","Firefox","Safari"],npmPackages:"*styled-components*"},"create-react-app":{System:["OS","CPU"],Binaries:["Node","npm","Yarn","pnpm","bun"],Browsers:["Chrome","Edge","Internet Explorer","Firefox","Safari"],npmPackages:["react","react-dom","react-scripts"],npmGlobalPackages:["create-react-app"],options:{duplicates:!0,showNotFound:!0}},apollo:{System:["OS"],Binaries:["Node","npm","Yarn","pnpm","bun"],Browsers:["Chrome","Edge","Firefox","Safari"],npmPackages:"{*apollo*,@apollo/*}",npmGlobalPackages:"{*apollo*,@apollo/*}"},"react-native-web":{System:["OS","CPU"],Binaries:["Node","npm","Yarn","pnpm","bun"],Browsers:["Chrome","Edge","Internet Explorer","Firefox","Safari"],npmPackages:["react","react-native-web"],options:{showNotFound:!0}},babel:{System:["OS"],Binaries:["Node","npm","Yarn","pnpm","bun"],Monorepos:["Yarn Workspaces","Lerna"],npmPackages:"{*babel*,@babel/*,eslint,webpack,create-react-app,react-native,lerna,jest,next,rollup}"},playwright:{System:["OS","CPU","Memory","Container"],Binaries:["Node","Yarn","npm","pnpm","bun","Deno"],Languages:["Bash"],IDEs:["VSCode","Cursor","Claude Code","Codex","opencode"],npmPackages:"{playwright*,@playwright/*}"}}},224:(e,t,n)=>{"use strict";n(4880),n(4260),n(5584),n(7276),n(4228),n(3708),n(8412),n(5308),n(6568),n(5888);var r=n(7072),o=n(2058),i=n(8558),s=n(4368),a=n(8460),c=n(808),u=n(6032),l=function(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).unify,n=void 0!==t&&t;return new Promise((function(t){s.exec(e,{stdio:[0,"pipe","ignore"]},(function(e,r,o){var i;i=n?r.toString()+o.toString():r.toString(),t((e?"":i).trim())}))}))},f=function(e){var t=Object.values(Array.prototype.slice.call(arguments).slice(1));(process.env.ENVINFO_DEBUG||"").toLowerCase()===e&&console.log(e,JSON.stringify(t))},p=function(e){return new Promise((function(t){o.readFile(e,"utf8",(function(e,n){return t(n||null)}))}))},h=function(e){return p(e).then((function(e){return e?JSON.parse(e):null}))},d=/\d+\.[\d+|.]+/g,m=function(e){f("trace","findDarwinApplication",e);var t=`mdfind "kMDItemCFBundleIdentifier=='${e}'"`;return f("trace",t),l(t).then((function(e){return e.replace(/(\s)/g,"\\ ")}))},g=function(e,t){var n=(t||["CFBundleShortVersionString"]).map((function(e){return"-c Print:"+e}));return["/usr/libexec/PlistBuddy"].concat(n).concat([e]).join(" ")},v=function(e,t){for(var n=[],r=null;null!==(r=e.exec(t));)n.push(r);return n};e.exports={run:l,log:f,fileExists:function(e){return new Promise((function(t){o.stat(e,(function(n){return t(n?null:e)}))}))},windowsExeExists:function(e){return new Promise((function(t){var n;o.access(n=r.join(process.env.ProgramFiles,`${e}`),o.constants.R_OK,(function(i){i?o.access(n=r.join(process.env["ProgramFiles(x86)"],`${e}`),o.constants.X_OK,(function(e){t(e?null:n)})):t(n)}))}))},readFile:p,requireJson:h,versionRegex:d,findDarwinApplication:m,generatePlistBuddyCommand:g,matchAll:v,parseSDKManagerOutput:function(e){var t=e.split("Available")[0];return{apiLevels:v(u.androidAPILevels,t).map((function(e){return e[1]})),buildTools:v(u.androidBuildTools,t).map((function(e){return e[1]})),systemImages:v(u.androidSystemImages,t).map((function(e){return e[1].split("|").map((function(e){return e.trim()}))})).map((function(e){return e[0].split(";")[0]+" | "+e[2].split(" System Image")[0]}))}},isLinux:"linux"===process.platform,isMacOS:"darwin"===process.platform,NA:"N/A",NotFound:"Not Found",isWindows:process.platform.startsWith("win"),isObject:function(e){return"object"==typeof e&&!Array.isArray(e)},noop:function(e){return e},pipe:function(e){return function(t){return e.reduce((function(e,t){return t(e)}),t)}},browserBundleIdentifiers:{"Brave Browser":"com.brave.Browser",Chrome:"com.google.Chrome","Chrome Canary":"com.google.Chrome.canary",Firefox:"org.mozilla.firefox","Firefox Developer Edition":"org.mozilla.firefoxdeveloperedition","Firefox Nightly":"org.mozilla.nightly","Microsoft Edge":"com.microsoft.edgemac",Safari:"com.apple.Safari","Safari Technology Preview":"com.apple.SafariTechnologyPreview"},ideBundleIdentifiers:{Atom:"com.github.atom",IntelliJ:"com.jetbrains.intellij",PhpStorm:"com.jetbrains.PhpStorm","Sublime Text":"com.sublimetext.3",WebStorm:"com.jetbrains.WebStorm"},runSync:function(e){return(s.execSync(e,{stdio:[0,"pipe","ignore"]}).toString()||"").trim()},which:function(e){return new Promise((function(t){return a(e,(function(e,n){return t(n)}))}))},getDarwinApplicationVersion:function(e){var t;return f("trace","getDarwinApplicationVersion",e),t="darwin"!==process.platform?"N/A":m(e).then((function(e){return l(g(r.join(e,"Contents","Info.plist"),["CFBundleShortVersionString"]))})),Promise.resolve(t)},uniq:function(e){return Array.from(new Set(e))},toReadableBytes:function(e){var t=Math.floor(Math.log(e)/Math.log(1024));return e?(e/Math.pow(1024,t)).toFixed(2)+" "+["B","KB","MB","GB","TB","PB"][t]:"0 Bytes"},omit:function(e,t){return Object.keys(e).filter((function(e){return t.indexOf(e)<0})).reduce((function(t,n){return Object.assign(t,{[n]:e[n]})}),{})},pick:function(e,t){return Object.keys(e).filter((function(e){return t.indexOf(e)>=0})).reduce((function(t,n){return Object.assign(t,{[n]:e[n]})}),{})},getPackageJsonByName:function(e){return h(r.join(process.cwd(),"node_modules",e,"package.json"))},getPackageJsonByPath:function(e){return h(r.join(process.cwd(),e))},getPackageJsonByFullPath:function(e){return f("trace","getPackageJsonByFullPath",e),h(e)},getAllPackageJsonPaths:function(e){return f("trace","getAllPackageJsonPaths",e),new Promise((function(t){return c(e?r.join("node_modules",e,"package.json"):r.join("node_modules","**","package.json"),(function(e,n){return t(n.map(r.normalize)||[])}))}))},sortObject:function(e){return Object.keys(e).sort().reduce((function(t,n){return t[n]=e[n],t}),{})},findVersion:function(e,t,n){f("trace","findVersion",e,t,n);var r=n||0,o=t||d,i=e.match(o);return i?i[r]:e},condensePath:function(e){return(e||"").replace(i.homedir(),"~")},determineFound:function(e,t,n){return f("trace","determineFound",e,t,n),"N/A"===t?Promise.resolve([e,"N/A"]):t&&0!==Object.keys(t).length?n?Promise.resolve([e,t,n]):Promise.resolve([e,t]):Promise.resolve([e,"Not Found"])}}},9016:e=>{"use strict";function t(e,t,o){e instanceof RegExp&&(e=n(e,o)),t instanceof RegExp&&(t=n(t,o));var i=r(e,t,o);return i&&{start:i[0],end:i[1],pre:o.slice(0,i[0]),body:o.slice(i[0]+e.length,i[1]),post:o.slice(i[1]+t.length)}}function n(e,t){var n=t.match(e);return n?n[0]:null}function r(e,t,n){var r,o,i,s,a,c=n.indexOf(e),u=n.indexOf(t,c+1),l=c;if(c>=0&&u>0){for(r=[],i=n.length;l>=0&&!a;)l==c?(r.push(l),c=n.indexOf(e,l+1)):1==r.length?a=[r.pop(),u]:((o=r.pop())<i&&(i=o,s=u),u=n.indexOf(t,l+1)),l=c<u&&c>=0?c:u;r.length&&(a=[i,s])}return a}e.exports=t,t.range=r},1620:(e,t,n)=>{var r=n(6596),o=n(9016);e.exports=function(e){return e?("{}"===e.substr(0,2)&&(e="\\{\\}"+e.substr(2)),v(function(e){return e.split("\\\\").join(i).split("\\{").join(s).split("\\}").join(a).split("\\,").join(c).split("\\.").join(u)}(e),!0).map(f)):[]};var i="\0SLASH"+Math.random()+"\0",s="\0OPEN"+Math.random()+"\0",a="\0CLOSE"+Math.random()+"\0",c="\0COMMA"+Math.random()+"\0",u="\0PERIOD"+Math.random()+"\0";function l(e){return parseInt(e,10)==e?parseInt(e,10):e.charCodeAt(0)}function f(e){return e.split(i).join("\\").split(s).join("{").split(a).join("}").split(c).join(",").split(u).join(".")}function p(e){if(!e)return[""