import { createRequire } from 'node:module' import tailwindcss from '@tailwindcss/vite' import svgLoader from 'vite-svg-loader' import { defineConfig } from 'wxt' const { version } = createRequire(import.meta.url)('./package.json') export default defineConfig({ srcDir: 'src', vite: () => ({ plugins: [ tailwindcss(), svgLoader(), { name: 'inject-theme-init', transformIndexHtml: { order: 'pre', handler: () => [ { tag: 'script', injectTo: 'head-prepend', attrs: { src: '/theme-init.js' } }, ], }, }, ], }), publicDir: 'src/public', modules: ['@wxt-dev/module-vue'], manifest: ({ browser }) => ({ name: '__MSG_extName__', description: '__MSG_extDescription__', default_locale: 'en_US', version, icons: { 16: 'icon-16.png', 32: 'icon-32.png', 48: 'icon-48.png', 64: 'icon-64.png', 128: 'icon-128.png', }, optional_host_permissions: ['*://*/*'], // oxlint-disable-next-line typescript/no-explicit-any -- Firefox requires optional_permissions instead of optional_host_permissions ...(browser === 'firefox' && { optional_permissions: ['*://*/*' as any] }), permissions: ['storage', 'alarms', 'activeTab', 'contextMenus'], browser_specific_settings: { gecko: { id: 'pihole-in-one@creeperkatze.dev', data_collection_permissions: { required: ['none'], }, }, }, }), zip: { artifactTemplate: 'pihole-in-one-{{version}}-{{browser}}.zip', sourcesTemplate: 'pihole-in-one-{{version}}-sources.zip', }, })