/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/@electron-forge/plugin-vite@7.11.1/dist/VitePlugin.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.VitePlugin=void 0,process.env.VITE_CJS_IGNORE_WARNING="true";const node_path_1=__importDefault(require("node:path")),plugin_base_1=require("@electron-forge/plugin-base"),chalk_1=__importDefault(require("chalk")),debug_1=__importDefault(require("debug")),fs_extra_1=__importDefault(require("fs-extra")),listr2_1=require("listr2"),vite_1=__importDefault(require("vite")),ViteConfig_1=__importDefault(require("./ViteConfig")),d=(0,debug_1.default)("electron-forge:plugin:vite");class VitePlugin extends plugin_base_1.PluginBase{constructor(){super(...arguments),this.name="vite",this.isProd=!1,this.watchers=[],this.servers=[],this.timeFormatter=new Intl.DateTimeFormat(void 0,{hour:"numeric",minute:"numeric",second:"numeric"}),this.init=e=>{this.setDirectories(e),d("hooking process events"),process.on("exit",(e=>{this.exitHandler({cleanup:!0})})),process.on("SIGINT",(e=>{this.exitHandler({exit:!0})}))},this.getHooks=()=>({preStart:[(0,plugin_base_1.namedHookWithTaskFn)((async e=>{if(!VitePlugin.alreadyStarted)return VitePlugin.alreadyStarted=!0,d(`preStart: removing old content from ${this.baseDir}`),await fs_extra_1.default.remove(this.baseDir),e?.newListr([{title:"Launching Vite dev servers for renderer process code...",task:async(e,t)=>{const r=await this.launchRendererDevServers(t);return t.title="Launched Vite dev servers for renderer process code",r},rendererOptions:{persistentOutput:!0,timer:{...listr2_1.PRESET_TIMER}}},{title:"Building main process and preload bundles...",task:async(e,t)=>{const r=await this.build(t);return t.title="Built main process and preload bundles",r},rendererOptions:{persistentOutput:!0,timer:{...listr2_1.PRESET_TIMER}}}],{concurrent:!1})}),"Preparing Vite bundles")],prePackage:[(0,plugin_base_1.namedHookWithTaskFn)((async e=>(this.isProd=!0,await fs_extra_1.default.remove(this.baseDir),e?.newListr([{title:"Building main and preload targets...",task:async(e,t)=>await this.build(t)},{title:"Building renderer targets...",task:async(e,t)=>await this.buildRenderer(t)}],{concurrent:!0}))),"Building production Vite bundles")],postStart:async(e,t)=>{d("hooking electron process exit"),t.on("exit",(()=>{t.restarted||this.exitHandler({cleanup:!0,exit:!0})}))},resolveForgeConfig:this.resolveForgeConfig,packageAfterCopy:this.packageAfterCopy}),this.resolveForgeConfig=async e=>(e.packagerConfig??={},e.packagerConfig.ignore?("function"!=typeof e.packagerConfig.ignore&&console.error(chalk_1.default.yellow("You have set packagerConfig.ignore, the Electron Forge Vite plugin normally sets this automatically.\n\nYour packaged app may be larger than expected if you dont ignore everything other than the '.vite' folder")),e):(e.packagerConfig.ignore=e=>!!e&&!e.startsWith("/.vite"),e)),this.packageAfterCopy=async(e,t)=>{const r=await fs_extra_1.default.readJson(node_path_1.default.resolve(this.projectDir,"package.json"));if(!r.main?.includes(".vite/"))throw new Error(`Electron Forge is configured to use the Vite plugin. The plugin expects the\n"main" entry point in "package.json" to be ".vite/*" (where the plugin outputs\nthe generated files). Instead, it is ${JSON.stringify(r.main)}.`);r.config&&delete r.config.forge,await fs_extra_1.default.writeJson(node_path_1.default.resolve(t,"package.json"),r,{spaces:2})},this.build=async e=>{const t=await this.configGenerator.getBuildConfigs(),r=e=>"string"==typeof e?e:Array.isArray(e)?e.join(" "):Object.keys(e).join(" ");return e?.newListr(t.map((e=>{let t="";const i=e.build?.rollupOptions?.input;return i?t=r(i):"boolean"!=typeof e.build?.lib&&e.build?.lib?.entry&&(t=r(e.build.lib.entry)),{title:`Building ${chalk_1.default.green(t)} target`,task:async(r,i)=>{await new Promise(((r,n)=>{vite_1.default.build({configFile:!1,logLevel:"silent",...e,plugins:[{name:"@electron-forge/plugin-vite:build-done",buildEnd(e){e instanceof Error&&(d("buildEnd rollup hook called with error so build failed"),n(e))},closeBundle(){d("no error in buildEnd and reached closeBundle so build succeeded"),r()}},...e.plugins??[]],clearScreen:!1}).then((r=>{var n;return(n=r)&&"object"==typeof n&&"on"in n&&"function"==typeof n.on&&"close"in n&&"function"==typeof n.close?(r.on("event",(r=>{"ERROR"===r.code&&"silent"!==e.logLevel?console.error(`\n${chalk_1.default.dim(this.timeFormatter.format(new Date))} ${r.error.message}`):"BUNDLE_END"!==r.code||e.logLevel&&"info"!==e.logLevel||console.log(`${chalk_1.default.dim(this.timeFormatter.format(new Date))} ${chalk_1.default.cyan.bold("[@electron-forge/plugin-vite]")} ${chalk_1.default.green("target built")} ${chalk_1.default.dim(t)}`)})),this.watchers.push(r)):i.title=`Built target ${chalk_1.default.dim(t)}`,r})).catch(n)}))}}})),{concurrent:this.config.concurrent??!0,exitOnError:this.isProd})},this.buildRenderer=async e=>{const t=await this.configGenerator.getRendererConfig();return e?.newListr(t.map((e=>({task:async(t,r)=>{await vite_1.default.build({configFile:!1,logLevel:"error",...e}),r.title=`Built target ${chalk_1.default.dim(node_path_1.default.basename(e.build?.outDir??""))}`}}))),{concurrent:this.config.concurrent??!0})},this.launchRendererDevServers=async e=>{const t=await this.configGenerator.getRendererConfig();return e?.newListr(t.map((e=>({title:`Target ${chalk_1.default.cyan(node_path_1.default.basename(e.build?.outDir??""))}`,task:async(t,r)=>{const i=await vite_1.default.createServer({configFile:!1,...e});await i.listen();const n=getServerURLs(i.resolvedUrls);if(r.output=n,this.servers.push(i),i.httpServer){const t=i.httpServer.address();(e=>"object"==typeof e&&"string"==typeof e?.address)(t)&&(e.server??={},e.server.port=t.port)}},rendererOptions:{persistentOutput:!0}}))))},this.exitHandler=(e,t)=>{if(d("handling process exit with:",e),e.cleanup){for(const e of this.watchers)d("cleaning vite watcher"),e.close();this.watchers=[];for(const e of this.servers)d("cleaning http server"),e.close();this.servers=[]}t&&console.error(t.stack),e.exit&&process.exit(0)}}setDirectories(e){this.projectDir=e,this.baseDir=node_path_1.default.join(e,".vite")}get configGenerator(){return this.configGeneratorCache??=new ViteConfig_1.default(this.config,this.projectDir,this.isProd)}}function getServerURLs(e){let t="";const r=e=>chalk_1.default.cyan(e.replace(/:(\d+)\//,((e,t)=>`:${chalk_1.default.bold(t)}/`)));for(const i of e.local)t+=`  ${chalk_1.default.green("➜")}  ${chalk_1.default.bold("Local")}:   ${r(i)}`;for(const i of e.network)t+=`  \n${chalk_1.default.green("➜")}  ${chalk_1.default.bold("Network")}: ${r(i)}`;return 0===e.network.length&&(t+=chalk_1.default.dim(`  \n${chalk_1.default.green("➜")}  ${chalk_1.default.bold("Network")}: use `)+chalk_1.default.bold("--host")+chalk_1.default.dim(" to expose")),t}exports.VitePlugin=VitePlugin,VitePlugin.alreadyStarted=!1,exports.default=VitePlugin;
//# sourceMappingURL=/sm/6fb2719d99ceb7d8eecefa7f25cddf5a36ebb2a388020e3fc1ad0beb7a3e3e6f.map