Files
blundercrunch/chrome-extension/manifest.ts
Aditya Gupta aabb8986aa Initial commit
2026-06-29 19:29:19 +05:30

85 lines
2.2 KiB
TypeScript

import { readFileSync } from 'node:fs';
import type { ManifestType } from '@extension/shared';
const packageJson = JSON.parse(readFileSync('./package.json', 'utf8'));
/**
* @prop default_locale
* if you want to support multiple languages, you can use the following reference
* https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Internationalization
*
* @prop browser_specific_settings
* Must be unique to your extension to upload to addons.mozilla.org
* (you can delete if you only want a chrome extension)
*
* @prop permissions
* Firefox doesn't support sidePanel (It will be deleted in manifest parser)
*
* @prop content_scripts
* css: ['content.css'], // public folder
*/
const manifest = {
manifest_version: 3,
default_locale: 'en',
name: '__MSG_extensionName__',
browser_specific_settings: {
gecko: {
id: 'example@example.com',
strict_min_version: '109.0',
},
},
version: packageJson.version,
description: '__MSG_extensionDescription__',
host_permissions: ['<all_urls>'],
permissions: ['storage', 'scripting', 'tabs', 'notifications', 'sidePanel'],
options_page: 'options/index.html',
background: {
service_worker: 'background.js',
type: 'module',
},
action: {
default_popup: 'popup/index.html',
default_icon: 'icon-34.png',
},
chrome_url_overrides: {
newtab: 'new-tab/index.html',
},
icons: {
'128': 'icon-128.png',
},
content_scripts: [
{
matches: ['http://*/*', 'https://*/*', '<all_urls>'],
js: ['content/all.iife.js'],
},
{
matches: ['https://example.com/*'],
js: ['content/example.iife.js'],
},
{
matches: ['http://*/*', 'https://*/*', '<all_urls>'],
js: ['content-ui/all.iife.js'],
},
{
matches: ['https://example.com/*'],
js: ['content-ui/example.iife.js'],
},
{
matches: ['http://*/*', 'https://*/*', '<all_urls>'],
css: ['content.css'],
},
],
devtools_page: 'devtools/index.html',
web_accessible_resources: [
{
resources: ['*.js', '*.css', '*.svg', 'icon-128.png', 'icon-34.png'],
matches: ['*://*/*'],
},
],
side_panel: {
default_path: 'side-panel/index.html',
},
} satisfies ManifestType;
export default manifest;