import * as esbuild from "esbuild"; const isWatch = process.argv.includes("--watch"); const buildOptions = { entryPoints: [ "src/background/service-worker.ts", "src/popup/popup.ts", "src/options/options.ts", ], bundle: true, outdir: "dist", format: "esm", target: "chrome120", sourcemap: true, minify: !isWatch, // Force CJS resolution for libsodium (ESM entry has broken sibling import) alias: { "libsodium-wrappers-sumo": "./node_modules/libsodium-wrappers-sumo/dist/modules-sumo/libsodium-wrappers.js", }, }; if (isWatch) { const ctx = await esbuild.context(buildOptions); await ctx.watch(); console.log("Watching for changes..."); } else { await esbuild.build(buildOptions); console.log("Build complete."); }