page-assist/wxt.config.ts

100 lines
2.3 KiB
TypeScript

import { defineConfig } from "wxt"
import react from "@vitejs/plugin-react"
import topLevelAwait from "vite-plugin-top-level-await"
const chromeMV3Permissions = [
"storage",
"sidePanel",
"activeTab",
"scripting",
"declarativeNetRequest",
"action",
"unlimitedStorage",
"contextMenus",
"tts",
"notifications"
]
const firefoxMV2Permissions = [
"storage",
"activeTab",
"scripting",
"unlimitedStorage",
"contextMenus",
"webRequest",
"webRequestBlocking",
"notifications",
"http://*/*",
"https://*/*",
"file://*/*"
]
// See https://wxt.dev/api/config.html
export default defineConfig({
vite: () => ({
plugins: [
react(),
topLevelAwait({
promiseExportName: "__tla",
promiseImportName: (i) => `__tla_${i}`
}) as any
],
build: {
rollupOptions: {
external: ["langchain", "@langchain/community"]
}
}
}),
entrypointsDir:
process.env.TARGET === "firefox" ? "entries-firefox" : "entries",
srcDir: "src",
outDir: "build",
manifest: {
version: "1.4.6",
name:
process.env.TARGET === "firefox"
? "Page Assist - A Web UI for Local AI Models"
: "__MSG_extName__",
description: "__MSG_extDescription__",
default_locale: "en",
action: {},
author: "n4ze3m",
browser_specific_settings:
process.env.TARGET === "firefox"
? {
gecko: {
id: "page-assist@nazeem"
}
}
: undefined,
host_permissions:
process.env.TARGET !== "firefox"
? ["http://*/*", "https://*/*", "file://*/*"]
: undefined,
commands: {
_execute_action: {
description: "Open the Web UI",
suggested_key: {
default: "Ctrl+Shift+L"
}
},
execute_side_panel: {
description: "Open the side panel",
suggested_key: {
default: "Ctrl+Shift+Y"
}
}
},
content_security_policy:
process.env.TARGET !== "firefox" ?
{
extension_pages:
"script-src 'self' 'wasm-unsafe-eval'; object-src 'self';"
} : "script-src 'self' 'wasm-unsafe-eval' blob:; object-src 'self'; worker-src 'self' blob:;",
permissions:
process.env.TARGET === "firefox"
? firefoxMV2Permissions
: chromeMV3Permissions
}
}) as any