import {defineConfig} from 'vite'; import {fileURLToPath} from 'node:url'; export default defineConfig({ resolve: {alias: {events: fileURLToPath(new URL('./node_modules/events/events.js', import.meta.url))}}, build: { target: ['chrome111', 'edge111', 'firefox114', 'safari16.4'], minify: false, lib: {entry: 'browser-entry.mjs', formats: ['es'], fileName: () => 'browser.mjs'}, rollupOptions: {plugins: [{ name: 'backend-evidence', generateBundle() { const modules = [...this.getModuleIds()].map(id => id.replace(process.cwd(), '.')).sort(); if (!modules.some(id => id.endsWith('/stanza/platform/browser/crypto/Hmac.js'))) { throw new Error('Browser HMAC missing'); } if (modules.some(id => /stanza\/platform\/node\/|^node:|browser-external/.test(id))) { throw new Error('Unexpected Node runtime backend'); } this.emitFile({type: 'asset', fileName: 'modules.json', source: JSON.stringify(modules, null, 2) + '\n'}); } }]} } });