Files
net.aliasvault.app/apps/browser-extension/wxt.config.ts
T

99 lines
2.4 KiB
TypeScript

import { defineConfig } from 'wxt';
import { viteStaticCopy } from 'vite-plugin-static-copy';
// See https://wxt.dev/api/config.html
export default defineConfig({
manifest: ({ browser, manifestVersion, mode, command }) => {
const permissions = [
"storage",
"unlimitedStorage",
"activeTab",
"contextMenus",
"scripting",
"clipboardWrite"
];
// Only add offscreen permission for Chrome and Edge
if (browser === 'chrome' || browser === 'edge') {
permissions.push("offscreen");
}
// Base manifest configuration
const baseManifest = {
name: "AliasVault",
description: "AliasVault Browser AutoFill Extension. Keeping your personal information private.",
version: "0.27.0",
content_security_policy: {
extension_pages: "script-src 'self' 'wasm-unsafe-eval'; object-src 'self';"
},
action: {
default_title: "AliasVault"
},
permissions,
host_permissions: [
"<all_urls>"
],
commands: {
"show-autofill-popup": {
description: "Show the autofill popup (while focusing an input field)"
}
},
web_accessible_resources: [{
resources: [
"webauthn.js",
"src/sql-wasm.wasm",
"src/argon2.wasm",
"src/aliasvault_core_bg.wasm"
],
matches: ["<all_urls>"]
}]
};
// Add Firefox-specific settings
if (browser === 'firefox') {
return {
...baseManifest,
browser_specific_settings: {
gecko: {
id: "extension@aliasvault.net",
strict_min_version: "109.0",
data_collection_permissions: {
ads: false,
telemetry: false,
technical: false
}
}
}
};
}
return baseManifest;
},
modules: ['@wxt-dev/module-react'],
srcDir: 'src',
outDir: 'dist',
vite: () => ({
plugins: [
viteStaticCopy({
targets: [
{
src: 'node_modules/argon2-browser/dist/argon2.wasm',
dest: 'src'
},
{
src: 'node_modules/sql.js/dist/sql-wasm.wasm',
dest: 'src'
},
{
src: 'src/utils/dist/core/rust/aliasvault_core_bg.wasm',
dest: 'src'
}
]
})
],
}),
zip: {
includeSources: ['README.md'],
},
});