/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/jsvu@3.0.3/cli.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
#!/usr/bin/env node
"use strict";const os=require("os"),inquirer=require("inquirer"),updateNotifier=require("update-notifier"),pkg=require("./package.json"),log=require("./shared/log.js"),{getStatus:getStatus,setStatus:setStatus}=require("./shared/status.js"),getPlatform=()=>{switch(os.platform()){case"darwin":return"mac";case"win32":return"win";default:return"linux"}},osChoices=[{name:"macOS 64-bit",value:"mac64"},{name:"macOS M1 64-bit",value:"mac64arm"},{name:"Linux 32-bit",value:"linux32"},{name:"Linux 64-bit",value:"linux64"},{name:"Windows 32-bit",value:"win32"},{name:"Windows 64-bit",value:"win64"}],guessOs=()=>{const e=getPlatform();if("mac"===e)return"arm64"===os.arch()?"mac64arm":"mac64";return`${e}${os.arch().includes("64")?"64":"32"}`},promptOs=()=>inquirer.prompt({name:"step",type:"list",message:"What is your operating system?",choices:osChoices,default:guessOs()}),engineChoices=[{name:"GraalJS",value:"graaljs",checked:!0},{name:"Hermes",value:"hermes",checked:!0},{name:"JavaScriptCore",value:"javascriptcore",checked:!0},{name:"QuickJS",value:"quickjs",checked:!0},{name:"SpiderMonkey",value:"spidermonkey",checked:!0},{name:"V8",value:"v8",checked:!0},{name:"V8 debug",value:"v8-debug",checked:!1},{name:"XS",value:"xs",checked:!0}],promptEngines=()=>inquirer.prompt({name:"step",type:"checkbox",message:"Which JavaScript engines would you like to install?",choices:engineChoices});(async()=>{log.banner(pkg.version),updateNotifier({pkg:pkg}).notify();const e=getStatus(),s=process.argv.slice(2);for(const n of s)if(n.startsWith("--os=")){const s=n.split("=")[1];e.os="default"===s?guessOs():s}else if(n.startsWith("--engines=")){const s=n.split("=")[1],i="all"===s?engineChoices.filter((e=>e.checked)).map((e=>e.value)):s.split(",");e.engines=i}else{if(!n.includes("@")){return"--help"===n||"-h"===n||console.error("\nUnrecognized argument: "+JSON.stringify(n)+"\n"),console.log("[<engine>@<version>]"),console.log(`[--os={${osChoices.map((e=>e.value)).join(",")},default}]`),console.log(`[--engines={${engineChoices.map((e=>e.value)).join(",")}},…]`),console.log("\nComplete documentation is online:"),void console.log("https://github.com/GoogleChromeLabs/jsvu#readme")}{const[s,i]=n.split("@");e.engine=s,e.version=i}}if(void 0===e.os?(e.os=(await promptOs()).step,setStatus(e)):log.success(`Read OS from config: ${e.os}`),e.engine&&e.version){const{engine:s,version:n}=e;log.success(`Read engine + version from CLI argument: ${s} v${n}`);const i=require("./shared/install-specific-version.js");return void await i({...require(`./engines/${s}/index.js`),status:e})}void 0===e.engines||0===e.engines.length?(e.engines=(await promptEngines()).step,0===e.engines.length&&log.failure("No JavaScript engines selected. Nothing to do…"),setStatus(e)):log.success(`Read engines from config: ${e.engines.join(", ")}`);const n=require("./shared/engine.js");for(const s of e.engines)"chakra"!==s?await n({status:e,...require(`./engines/${s}/index.js`)}):console.warn("Chakra is no longer supported. https://github.com/GoogleChromeLabs/jsvu/issues/160")})();
//# sourceMappingURL=/sm/e891d75db5619881f6d3faa9f3e64ef2c7defabaf963f65bbfeeba290e97ee79.map