wxt 0.19.16 → 0.19.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/content-scripts/ui/index.mjs +1 -0
- package/dist/core/builders/vite/index.d.ts +1 -1
- package/dist/core/builders/vite/index.mjs +10 -9
- package/dist/core/create-server.mjs +79 -58
- package/dist/core/resolve-config.mjs +11 -4
- package/dist/core/utils/building/detect-dev-changes.d.ts +5 -1
- package/dist/core/utils/building/detect-dev-changes.mjs +5 -0
- package/dist/core/utils/content-scripts.mjs +1 -1
- package/dist/core/utils/manifest.d.ts +2 -2
- package/dist/core/utils/manifest.mjs +21 -20
- package/dist/core/utils/testing/fake-objects.d.ts +252 -0
- package/dist/core/wxt.d.ts +7 -2
- package/dist/core/wxt.mjs +21 -16
- package/dist/types.d.ts +23 -4
- package/dist/version.mjs +1 -1
- package/package.json +3 -3
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { ResolvedConfig, WxtBuilder, WxtDevServer, WxtHooks } from '../../../types';
|
|
2
2
|
import { Hookable } from 'hookable';
|
|
3
|
-
export declare function createViteBuilder(wxtConfig: ResolvedConfig, hooks: Hookable<WxtHooks>,
|
|
3
|
+
export declare function createViteBuilder(wxtConfig: ResolvedConfig, hooks: Hookable<WxtHooks>, getWxtDevServer?: () => WxtDevServer | undefined): Promise<WxtBuilder>;
|
|
@@ -9,7 +9,7 @@ import { importEntrypointFile } from "../../utils/building/index.mjs";
|
|
|
9
9
|
import { ViteNodeServer } from "vite-node/server";
|
|
10
10
|
import { ViteNodeRunner } from "vite-node/client";
|
|
11
11
|
import { installSourcemapsSupport } from "vite-node/source-map";
|
|
12
|
-
export async function createViteBuilder(wxtConfig, hooks,
|
|
12
|
+
export async function createViteBuilder(wxtConfig, hooks, getWxtDevServer) {
|
|
13
13
|
const vite = await import("vite");
|
|
14
14
|
const getBaseConfig = async (baseConfigOptions) => {
|
|
15
15
|
const config = await wxtConfig.vite(wxtConfig.env);
|
|
@@ -33,6 +33,7 @@ export async function createViteBuilder(wxtConfig, hooks, server) {
|
|
|
33
33
|
config.server.watch = {
|
|
34
34
|
ignored: [`${wxtConfig.outBaseDir}/**`, `${wxtConfig.wxtDir}/**`]
|
|
35
35
|
};
|
|
36
|
+
const server = getWxtDevServer?.();
|
|
36
37
|
config.plugins ??= [];
|
|
37
38
|
config.plugins.push(
|
|
38
39
|
wxtPlugins.download(wxtConfig),
|
|
@@ -180,18 +181,18 @@ export async function createViteBuilder(wxtConfig, hooks, server) {
|
|
|
180
181
|
plugins: [wxtPlugins.removeEntrypointMainFunction(wxtConfig, path)]
|
|
181
182
|
};
|
|
182
183
|
const config = vite.mergeConfig(baseConfig, envConfig);
|
|
183
|
-
const
|
|
184
|
-
await
|
|
184
|
+
const server = await vite.createServer(config);
|
|
185
|
+
await server.pluginContainer.buildStart({});
|
|
185
186
|
const node = new ViteNodeServer(
|
|
186
187
|
// @ts-ignore: Some weird type error...
|
|
187
|
-
|
|
188
|
+
server
|
|
188
189
|
);
|
|
189
190
|
installSourcemapsSupport({
|
|
190
191
|
getSourceMap: (source) => node.getSourceMap(source)
|
|
191
192
|
});
|
|
192
193
|
const runner = new ViteNodeRunner({
|
|
193
|
-
root:
|
|
194
|
-
base:
|
|
194
|
+
root: server.config.root,
|
|
195
|
+
base: server.config.base,
|
|
195
196
|
// when having the server and runner in a different context,
|
|
196
197
|
// you will need to handle the communication between them
|
|
197
198
|
// and pass to this function
|
|
@@ -203,7 +204,7 @@ export async function createViteBuilder(wxtConfig, hooks, server) {
|
|
|
203
204
|
}
|
|
204
205
|
});
|
|
205
206
|
const res = await runner.executeFile(path);
|
|
206
|
-
await
|
|
207
|
+
await server.close();
|
|
207
208
|
return res.default;
|
|
208
209
|
}
|
|
209
210
|
}
|
|
@@ -239,7 +240,7 @@ export async function createViteBuilder(wxtConfig, hooks, server) {
|
|
|
239
240
|
const finalConfig = vite.mergeConfig(baseConfig, serverConfig);
|
|
240
241
|
await hooks.callHook("vite:devServer:extendConfig", finalConfig);
|
|
241
242
|
const viteServer = await vite.createServer(finalConfig);
|
|
242
|
-
const
|
|
243
|
+
const server = {
|
|
243
244
|
async listen() {
|
|
244
245
|
await viteServer.listen(info.port);
|
|
245
246
|
},
|
|
@@ -259,7 +260,7 @@ export async function createViteBuilder(wxtConfig, hooks, server) {
|
|
|
259
260
|
},
|
|
260
261
|
watcher: viteServer.watcher
|
|
261
262
|
};
|
|
262
|
-
return
|
|
263
|
+
return server;
|
|
263
264
|
}
|
|
264
265
|
};
|
|
265
266
|
}
|
|
@@ -14,66 +14,98 @@ import { createExtensionRunner } from "./runners/index.mjs";
|
|
|
14
14
|
import { Mutex } from "async-mutex";
|
|
15
15
|
import pc from "picocolors";
|
|
16
16
|
import { relative } from "node:path";
|
|
17
|
-
import { registerWxt, wxt } from "./wxt.mjs";
|
|
17
|
+
import { deinitWxtModules, initWxtModules, registerWxt, wxt } from "./wxt.mjs";
|
|
18
18
|
import { unnormalizePath } from "./utils/paths.mjs";
|
|
19
19
|
import {
|
|
20
20
|
getContentScriptJs,
|
|
21
21
|
mapWxtOptionsToRegisteredContentScript
|
|
22
22
|
} from "./utils/content-scripts.mjs";
|
|
23
23
|
export async function createServer(inlineConfig) {
|
|
24
|
-
await registerWxt("serve", inlineConfig
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
await registerWxt("serve", inlineConfig);
|
|
25
|
+
wxt.server = await createServerInternal();
|
|
26
|
+
await wxt.hooks.callHook("server:created", wxt, wxt.server);
|
|
27
|
+
return wxt.server;
|
|
28
|
+
}
|
|
29
|
+
async function createServerInternal() {
|
|
30
|
+
const getServerInfo = () => {
|
|
31
|
+
const { port, hostname } = wxt.config.dev.server;
|
|
32
|
+
return {
|
|
27
33
|
port,
|
|
28
34
|
hostname,
|
|
29
35
|
origin: `http://${hostname}:${port}`
|
|
30
36
|
};
|
|
31
|
-
|
|
32
|
-
...serverInfo,
|
|
33
|
-
get watcher() {
|
|
34
|
-
return builderServer.watcher;
|
|
35
|
-
},
|
|
36
|
-
get ws() {
|
|
37
|
-
return builderServer.ws;
|
|
38
|
-
},
|
|
39
|
-
currentOutput: void 0,
|
|
40
|
-
async start() {
|
|
41
|
-
await builderServer.listen();
|
|
42
|
-
wxt.logger.success(`Started dev server @ ${serverInfo.origin}`);
|
|
43
|
-
await buildAndOpenBrowser();
|
|
44
|
-
},
|
|
45
|
-
async stop() {
|
|
46
|
-
await runner.closeBrowser();
|
|
47
|
-
await builderServer.close();
|
|
48
|
-
},
|
|
49
|
-
async restart() {
|
|
50
|
-
await closeAndRecreateRunner();
|
|
51
|
-
await buildAndOpenBrowser();
|
|
52
|
-
},
|
|
53
|
-
transformHtml(url, html, originalUrl) {
|
|
54
|
-
return builderServer.transformHtml(url, html, originalUrl);
|
|
55
|
-
},
|
|
56
|
-
reloadContentScript(payload) {
|
|
57
|
-
server2.ws.send("wxt:reload-content-script", payload);
|
|
58
|
-
},
|
|
59
|
-
reloadPage(path) {
|
|
60
|
-
server2.ws.send("wxt:reload-page", path);
|
|
61
|
-
},
|
|
62
|
-
reloadExtension() {
|
|
63
|
-
server2.ws.send("wxt:reload-extension");
|
|
64
|
-
},
|
|
65
|
-
async restartBrowser() {
|
|
66
|
-
await closeAndRecreateRunner();
|
|
67
|
-
await runner.openBrowser();
|
|
68
|
-
}
|
|
69
|
-
};
|
|
70
|
-
return server2;
|
|
71
|
-
});
|
|
72
|
-
const server = wxt.server;
|
|
37
|
+
};
|
|
73
38
|
let [runner, builderServer] = await Promise.all([
|
|
74
39
|
createExtensionRunner(),
|
|
75
|
-
wxt.builder.createServer(
|
|
40
|
+
wxt.builder.createServer(getServerInfo())
|
|
76
41
|
]);
|
|
42
|
+
let wasStopped = false;
|
|
43
|
+
const server = {
|
|
44
|
+
get hostname() {
|
|
45
|
+
return getServerInfo().hostname;
|
|
46
|
+
},
|
|
47
|
+
get port() {
|
|
48
|
+
return getServerInfo().port;
|
|
49
|
+
},
|
|
50
|
+
get origin() {
|
|
51
|
+
return getServerInfo().origin;
|
|
52
|
+
},
|
|
53
|
+
get watcher() {
|
|
54
|
+
return builderServer.watcher;
|
|
55
|
+
},
|
|
56
|
+
get ws() {
|
|
57
|
+
return builderServer.ws;
|
|
58
|
+
},
|
|
59
|
+
currentOutput: void 0,
|
|
60
|
+
async start() {
|
|
61
|
+
if (wasStopped) {
|
|
62
|
+
await wxt.reloadConfig();
|
|
63
|
+
runner = await createExtensionRunner();
|
|
64
|
+
builderServer = await wxt.builder.createServer(getServerInfo());
|
|
65
|
+
await initWxtModules();
|
|
66
|
+
}
|
|
67
|
+
await builderServer.listen();
|
|
68
|
+
wxt.logger.success(`Started dev server @ ${server.origin}`);
|
|
69
|
+
await wxt.hooks.callHook("server:started", wxt, server);
|
|
70
|
+
await buildAndOpenBrowser();
|
|
71
|
+
server.ws.on("wxt:background-initialized", () => {
|
|
72
|
+
if (server.currentOutput == null) return;
|
|
73
|
+
reloadContentScripts(server.currentOutput.steps, server);
|
|
74
|
+
});
|
|
75
|
+
const reloadOnChange = createFileReloader(server);
|
|
76
|
+
server.watcher.on("all", reloadOnChange);
|
|
77
|
+
},
|
|
78
|
+
async stop() {
|
|
79
|
+
wasStopped = true;
|
|
80
|
+
await runner.closeBrowser();
|
|
81
|
+
await builderServer.close();
|
|
82
|
+
await wxt.hooks.callHook("server:closed", wxt, server);
|
|
83
|
+
deinitWxtModules();
|
|
84
|
+
server.currentOutput = void 0;
|
|
85
|
+
},
|
|
86
|
+
async restart() {
|
|
87
|
+
await server.stop();
|
|
88
|
+
await server.start();
|
|
89
|
+
},
|
|
90
|
+
transformHtml(url, html, originalUrl) {
|
|
91
|
+
return builderServer.transformHtml(url, html, originalUrl);
|
|
92
|
+
},
|
|
93
|
+
reloadContentScript(payload) {
|
|
94
|
+
server.ws.send("wxt:reload-content-script", payload);
|
|
95
|
+
},
|
|
96
|
+
reloadPage(path) {
|
|
97
|
+
server.ws.send("wxt:reload-page", path);
|
|
98
|
+
},
|
|
99
|
+
reloadExtension() {
|
|
100
|
+
server.ws.send("wxt:reload-extension");
|
|
101
|
+
},
|
|
102
|
+
async restartBrowser() {
|
|
103
|
+
await runner.closeBrowser();
|
|
104
|
+
await wxt.reloadConfig();
|
|
105
|
+
runner = await createExtensionRunner();
|
|
106
|
+
await runner.openBrowser();
|
|
107
|
+
}
|
|
108
|
+
};
|
|
77
109
|
const buildAndOpenBrowser = async () => {
|
|
78
110
|
server.currentOutput = await internalBuild();
|
|
79
111
|
try {
|
|
@@ -83,17 +115,6 @@ export async function createServer(inlineConfig) {
|
|
|
83
115
|
}
|
|
84
116
|
await runner.openBrowser();
|
|
85
117
|
};
|
|
86
|
-
const closeAndRecreateRunner = async () => {
|
|
87
|
-
await runner.closeBrowser();
|
|
88
|
-
await wxt.reloadConfig();
|
|
89
|
-
runner = await createExtensionRunner();
|
|
90
|
-
};
|
|
91
|
-
server.ws.on("wxt:background-initialized", () => {
|
|
92
|
-
if (server.currentOutput == null) return;
|
|
93
|
-
reloadContentScripts(server.currentOutput.steps, server);
|
|
94
|
-
});
|
|
95
|
-
const reloadOnChange = createFileReloader(server);
|
|
96
|
-
server.watcher.on("all", reloadOnChange);
|
|
97
118
|
return server;
|
|
98
119
|
}
|
|
99
120
|
function createFileReloader(server) {
|
|
@@ -10,6 +10,7 @@ import { builtinModules } from "../builtin-modules/index.mjs";
|
|
|
10
10
|
import { getEslintVersion } from "./utils/eslint.mjs";
|
|
11
11
|
import { safeStringToNumber } from "./utils/number.mjs";
|
|
12
12
|
import { loadEnv } from "./utils/env.mjs";
|
|
13
|
+
import { getPort } from "get-port-please";
|
|
13
14
|
export async function resolveConfig(inlineConfig, command) {
|
|
14
15
|
let userConfig = {};
|
|
15
16
|
let userConfigMetadata;
|
|
@@ -82,14 +83,19 @@ export async function resolveConfig(inlineConfig, command) {
|
|
|
82
83
|
);
|
|
83
84
|
let devServerConfig;
|
|
84
85
|
if (command === "serve") {
|
|
86
|
+
const hostname = mergedConfig.dev?.server?.hostname ?? "localhost";
|
|
85
87
|
let port = mergedConfig.dev?.server?.port;
|
|
86
88
|
if (port == null || !isFinite(port)) {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
+
port = await getPort({
|
|
90
|
+
port: 3e3,
|
|
91
|
+
portRange: [3001, 3010],
|
|
92
|
+
// Passing host required for Mac, unsure of Windows/Linux
|
|
93
|
+
host: hostname
|
|
94
|
+
});
|
|
89
95
|
}
|
|
90
96
|
devServerConfig = {
|
|
91
97
|
port,
|
|
92
|
-
hostname
|
|
98
|
+
hostname,
|
|
93
99
|
watchDebounce: safeStringToNumber(process.env.WXT_WATCH_DEBOUNCE) ?? 800
|
|
94
100
|
};
|
|
95
101
|
}
|
|
@@ -274,9 +280,10 @@ async function getUnimportEslintOptions(wxtDir, options) {
|
|
|
274
280
|
case "auto":
|
|
275
281
|
const version = await getEslintVersion();
|
|
276
282
|
let major = parseInt(version[0]);
|
|
283
|
+
if (isNaN(major)) eslintEnabled = false;
|
|
277
284
|
if (major <= 8) eslintEnabled = 8;
|
|
278
285
|
else if (major >= 9) eslintEnabled = 9;
|
|
279
|
-
else eslintEnabled =
|
|
286
|
+
else eslintEnabled = false;
|
|
280
287
|
break;
|
|
281
288
|
case true:
|
|
282
289
|
eslintEnabled = 8;
|
|
@@ -17,7 +17,11 @@ import { BuildOutput, BuildStepOutput, EntrypointGroup } from '../../../types';
|
|
|
17
17
|
* - Background script is changed
|
|
18
18
|
* - Manifest is different
|
|
19
19
|
* - Restart browser
|
|
20
|
-
* -
|
|
20
|
+
* - web-ext.config.ts (runner config changes)
|
|
21
|
+
* - Full dev server restart
|
|
22
|
+
* - wxt.config.ts (main config file)
|
|
23
|
+
* - modules/* (any file related to WXT modules)
|
|
24
|
+
* - .env (environment variable changed could effect build)
|
|
21
25
|
*/
|
|
22
26
|
export declare function detectDevChanges(changedFiles: string[], currentOutput: BuildOutput): DevModeChange;
|
|
23
27
|
/**
|
|
@@ -7,6 +7,11 @@ export function detectDevChanges(changedFiles, currentOutput) {
|
|
|
7
7
|
(file) => file === wxt.config.userConfigMetadata.configFile
|
|
8
8
|
);
|
|
9
9
|
if (isConfigChange) return { type: "full-restart" };
|
|
10
|
+
const isWxtModuleChange = some(
|
|
11
|
+
changedFiles,
|
|
12
|
+
(file) => file.startsWith(wxt.config.modulesDir)
|
|
13
|
+
);
|
|
14
|
+
if (isWxtModuleChange) return { type: "full-restart" };
|
|
10
15
|
const isRunnerChange = some(
|
|
11
16
|
changedFiles,
|
|
12
17
|
(file) => file === wxt.config.runnerConfig.configFile
|
|
@@ -28,7 +28,7 @@ export function hashContentScriptOptions(options) {
|
|
|
28
28
|
}
|
|
29
29
|
export function mapWxtOptionsToContentScript(options, js, css) {
|
|
30
30
|
return {
|
|
31
|
-
matches: options.matches,
|
|
31
|
+
matches: options.matches ?? [],
|
|
32
32
|
all_frames: options.allFrames,
|
|
33
33
|
match_about_blank: options.matchAboutBlank,
|
|
34
34
|
exclude_globs: options.excludeGlobs,
|
|
@@ -35,10 +35,10 @@ export declare function stripPathFromMatchPattern(pattern: string): string;
|
|
|
35
35
|
/**
|
|
36
36
|
* Converts all MV3 web accessible resources to their MV2 forms. MV3 web accessible resources are
|
|
37
37
|
* generated in this file, and may be defined by the user in their manifest. In both cases, when
|
|
38
|
-
*
|
|
38
|
+
* targeting MV2, automatically convert their definitions down to the basic MV2 array.
|
|
39
39
|
*/
|
|
40
40
|
export declare function convertWebAccessibleResourcesToMv2(manifest: Manifest.WebExtensionManifest): void;
|
|
41
41
|
/**
|
|
42
42
|
* Make sure all resources are in MV3 format. If not, add a wanring
|
|
43
43
|
*/
|
|
44
|
-
export declare function
|
|
44
|
+
export declare function validateMv3WebAccessibleResources(manifest: Manifest.WebExtensionManifest): void;
|
|
@@ -70,10 +70,11 @@ export async function generateManifest(entrypoints, buildOutput) {
|
|
|
70
70
|
if (wxt.config.manifestVersion === 2) {
|
|
71
71
|
convertWebAccessibleResourcesToMv2(manifest);
|
|
72
72
|
convertActionToMv2(manifest);
|
|
73
|
+
convertCspToMv2(manifest);
|
|
73
74
|
moveHostPermissionsToPermissions(manifest);
|
|
74
75
|
}
|
|
75
76
|
if (wxt.config.manifestVersion === 3) {
|
|
76
|
-
|
|
77
|
+
validateMv3WebAccessibleResources(manifest);
|
|
77
78
|
}
|
|
78
79
|
stripKeys(manifest);
|
|
79
80
|
if (manifest.name == null)
|
|
@@ -262,7 +263,7 @@ function addEntrypoints(manifest, entrypoints, buildOutput) {
|
|
|
262
263
|
const cssMap = getContentScriptsCssMap(buildOutput, contentScripts);
|
|
263
264
|
if (wxt.config.command === "serve" && wxt.config.manifestVersion === 3) {
|
|
264
265
|
contentScripts.forEach((script) => {
|
|
265
|
-
script.options.matches
|
|
266
|
+
script.options.matches?.forEach((matchPattern) => {
|
|
266
267
|
addHostPermission(manifest, matchPattern);
|
|
267
268
|
});
|
|
268
269
|
});
|
|
@@ -297,7 +298,7 @@ function addEntrypoints(manifest, entrypoints, buildOutput) {
|
|
|
297
298
|
);
|
|
298
299
|
}
|
|
299
300
|
runtimeContentScripts.forEach((script) => {
|
|
300
|
-
script.options.matches
|
|
301
|
+
script.options.matches?.forEach((matchPattern) => {
|
|
301
302
|
addHostPermission(manifest, matchPattern);
|
|
302
303
|
});
|
|
303
304
|
});
|
|
@@ -353,28 +354,20 @@ function addDevModeCsp(manifest) {
|
|
|
353
354
|
addPermission(manifest, permission);
|
|
354
355
|
}
|
|
355
356
|
const extensionPagesCsp = new ContentSecurityPolicy(
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
manifest.content_security_policy?.extension_pages ?? "script-src 'self' 'wasm-unsafe-eval'; object-src 'self';"
|
|
359
|
-
) : manifest.content_security_policy ?? "script-src 'self'; object-src 'self';"
|
|
360
|
-
// default CSP for MV2
|
|
357
|
+
// @ts-expect-error: extension_pages exists, we convert MV2 CSPs to this earlier in the process
|
|
358
|
+
manifest.content_security_policy?.extension_pages ?? (manifest.manifest_version === 3 ? DEFAULT_MV3_EXTENSION_PAGES_CSP : DEFAULT_MV2_CSP)
|
|
361
359
|
);
|
|
362
360
|
const sandboxCsp = new ContentSecurityPolicy(
|
|
363
361
|
// @ts-expect-error: sandbox is not typed
|
|
364
|
-
manifest.content_security_policy?.sandbox ??
|
|
365
|
-
// default sandbox CSP for MV3
|
|
362
|
+
manifest.content_security_policy?.sandbox ?? DEFAULT_MV3_SANDBOX_CSP
|
|
366
363
|
);
|
|
367
|
-
if (wxt.
|
|
364
|
+
if (wxt.config.command === "serve") {
|
|
368
365
|
extensionPagesCsp.add("script-src", allowedCsp);
|
|
369
366
|
sandboxCsp.add("script-src", allowedCsp);
|
|
370
367
|
}
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
manifest.content_security_policy.sandbox = sandboxCsp.toString();
|
|
375
|
-
} else {
|
|
376
|
-
manifest.content_security_policy = extensionPagesCsp.toString();
|
|
377
|
-
}
|
|
368
|
+
manifest.content_security_policy ??= {};
|
|
369
|
+
manifest.content_security_policy.extension_pages = extensionPagesCsp.toString();
|
|
370
|
+
manifest.content_security_policy.sandbox = sandboxCsp.toString();
|
|
378
371
|
}
|
|
379
372
|
function addDevModePermissions(manifest) {
|
|
380
373
|
addPermission(manifest, "tabs");
|
|
@@ -400,7 +393,7 @@ export function getContentScriptCssWebAccessibleResources(contentScripts, conten
|
|
|
400
393
|
if (cssFile == null) return;
|
|
401
394
|
resources.push({
|
|
402
395
|
resources: [cssFile],
|
|
403
|
-
matches: script.options.matches
|
|
396
|
+
matches: script.options.matches?.map(
|
|
404
397
|
(matchPattern) => stripPathFromMatchPattern(matchPattern)
|
|
405
398
|
)
|
|
406
399
|
});
|
|
@@ -457,7 +450,12 @@ function convertActionToMv2(manifest) {
|
|
|
457
450
|
return;
|
|
458
451
|
manifest.browser_action = manifest.action;
|
|
459
452
|
}
|
|
460
|
-
|
|
453
|
+
function convertCspToMv2(manifest) {
|
|
454
|
+
if (typeof manifest.content_security_policy === "string" || manifest.content_security_policy?.extension_pages == null)
|
|
455
|
+
return;
|
|
456
|
+
manifest.content_security_policy = manifest.content_security_policy.extension_pages;
|
|
457
|
+
}
|
|
458
|
+
export function validateMv3WebAccessibleResources(manifest) {
|
|
461
459
|
if (manifest.web_accessible_resources == null) return;
|
|
462
460
|
const stringResources = manifest.web_accessible_resources.filter(
|
|
463
461
|
(item) => typeof item === "string"
|
|
@@ -510,3 +508,6 @@ const mv3OnlyKeys = [
|
|
|
510
508
|
"side_panel"
|
|
511
509
|
];
|
|
512
510
|
const firefoxMv3OnlyKeys = ["host_permissions"];
|
|
511
|
+
const DEFAULT_MV3_EXTENSION_PAGES_CSP = "script-src 'self' 'wasm-unsafe-eval'; object-src 'self';";
|
|
512
|
+
const DEFAULT_MV3_SANDBOX_CSP = "sandbox allow-scripts allow-forms allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self';";
|
|
513
|
+
const DEFAULT_MV2_CSP = "script-src 'self'; object-src 'self';";
|
|
@@ -1585,6 +1585,9 @@ export declare const fakeResolvedConfig: (overrides?: {
|
|
|
1585
1585
|
'zip:sources:start'?: {} | undefined;
|
|
1586
1586
|
'zip:sources:done'?: {} | undefined;
|
|
1587
1587
|
'zip:done'?: {} | undefined;
|
|
1588
|
+
'server:created'?: {} | undefined;
|
|
1589
|
+
'server:started'?: {} | undefined;
|
|
1590
|
+
'server:closed'?: {} | undefined;
|
|
1588
1591
|
build?: {
|
|
1589
1592
|
before?: {} | undefined;
|
|
1590
1593
|
done?: {} | undefined;
|
|
@@ -1679,6 +1682,15 @@ export declare const fakeResolvedConfig: (overrides?: {
|
|
|
1679
1682
|
done?: {} | undefined;
|
|
1680
1683
|
start?: {} | undefined;
|
|
1681
1684
|
} | undefined;
|
|
1685
|
+
server?: {
|
|
1686
|
+
closed?: {} | undefined;
|
|
1687
|
+
created?: {} | undefined;
|
|
1688
|
+
started?: {} | undefined;
|
|
1689
|
+
} | {
|
|
1690
|
+
closed?: {} | undefined;
|
|
1691
|
+
created?: {} | undefined;
|
|
1692
|
+
started?: {} | undefined;
|
|
1693
|
+
} | undefined;
|
|
1682
1694
|
} | {
|
|
1683
1695
|
build?: {
|
|
1684
1696
|
before?: {} | undefined;
|
|
@@ -1774,6 +1786,15 @@ export declare const fakeResolvedConfig: (overrides?: {
|
|
|
1774
1786
|
done?: {} | undefined;
|
|
1775
1787
|
start?: {} | undefined;
|
|
1776
1788
|
} | undefined;
|
|
1789
|
+
server?: {
|
|
1790
|
+
closed?: {} | undefined;
|
|
1791
|
+
created?: {} | undefined;
|
|
1792
|
+
started?: {} | undefined;
|
|
1793
|
+
} | {
|
|
1794
|
+
closed?: {} | undefined;
|
|
1795
|
+
created?: {} | undefined;
|
|
1796
|
+
started?: {} | undefined;
|
|
1797
|
+
} | undefined;
|
|
1777
1798
|
ready?: {} | undefined;
|
|
1778
1799
|
} | undefined;
|
|
1779
1800
|
modules?: (string | undefined)[] | undefined;
|
|
@@ -2305,6 +2326,9 @@ export declare const fakeResolvedConfig: (overrides?: {
|
|
|
2305
2326
|
'zip:sources:start'?: {} | undefined;
|
|
2306
2327
|
'zip:sources:done'?: {} | undefined;
|
|
2307
2328
|
'zip:done'?: {} | undefined;
|
|
2329
|
+
'server:created'?: {} | undefined;
|
|
2330
|
+
'server:started'?: {} | undefined;
|
|
2331
|
+
'server:closed'?: {} | undefined;
|
|
2308
2332
|
build?: {
|
|
2309
2333
|
before?: {} | undefined;
|
|
2310
2334
|
done?: {} | undefined;
|
|
@@ -2399,6 +2423,15 @@ export declare const fakeResolvedConfig: (overrides?: {
|
|
|
2399
2423
|
done?: {} | undefined;
|
|
2400
2424
|
start?: {} | undefined;
|
|
2401
2425
|
} | undefined;
|
|
2426
|
+
server?: {
|
|
2427
|
+
closed?: {} | undefined;
|
|
2428
|
+
created?: {} | undefined;
|
|
2429
|
+
started?: {} | undefined;
|
|
2430
|
+
} | {
|
|
2431
|
+
closed?: {} | undefined;
|
|
2432
|
+
created?: {} | undefined;
|
|
2433
|
+
started?: {} | undefined;
|
|
2434
|
+
} | undefined;
|
|
2402
2435
|
} | {
|
|
2403
2436
|
build?: {
|
|
2404
2437
|
before?: {} | undefined;
|
|
@@ -2494,6 +2527,15 @@ export declare const fakeResolvedConfig: (overrides?: {
|
|
|
2494
2527
|
done?: {} | undefined;
|
|
2495
2528
|
start?: {} | undefined;
|
|
2496
2529
|
} | undefined;
|
|
2530
|
+
server?: {
|
|
2531
|
+
closed?: {} | undefined;
|
|
2532
|
+
created?: {} | undefined;
|
|
2533
|
+
started?: {} | undefined;
|
|
2534
|
+
} | {
|
|
2535
|
+
closed?: {} | undefined;
|
|
2536
|
+
created?: {} | undefined;
|
|
2537
|
+
started?: {} | undefined;
|
|
2538
|
+
} | undefined;
|
|
2497
2539
|
ready?: {} | undefined;
|
|
2498
2540
|
} | undefined;
|
|
2499
2541
|
modules?: (string | undefined)[] | undefined;
|
|
@@ -3051,6 +3093,9 @@ export declare const fakeResolvedConfig: (overrides?: {
|
|
|
3051
3093
|
'zip:sources:start'?: {} | undefined;
|
|
3052
3094
|
'zip:sources:done'?: {} | undefined;
|
|
3053
3095
|
'zip:done'?: {} | undefined;
|
|
3096
|
+
'server:created'?: {} | undefined;
|
|
3097
|
+
'server:started'?: {} | undefined;
|
|
3098
|
+
'server:closed'?: {} | undefined;
|
|
3054
3099
|
build?: {
|
|
3055
3100
|
before?: {} | undefined;
|
|
3056
3101
|
done?: {} | undefined;
|
|
@@ -3145,6 +3190,15 @@ export declare const fakeResolvedConfig: (overrides?: {
|
|
|
3145
3190
|
done?: {} | undefined;
|
|
3146
3191
|
start?: {} | undefined;
|
|
3147
3192
|
} | undefined;
|
|
3193
|
+
server?: {
|
|
3194
|
+
closed?: {} | undefined;
|
|
3195
|
+
created?: {} | undefined;
|
|
3196
|
+
started?: {} | undefined;
|
|
3197
|
+
} | {
|
|
3198
|
+
closed?: {} | undefined;
|
|
3199
|
+
created?: {} | undefined;
|
|
3200
|
+
started?: {} | undefined;
|
|
3201
|
+
} | undefined;
|
|
3148
3202
|
} | {
|
|
3149
3203
|
build?: {
|
|
3150
3204
|
before?: {} | undefined;
|
|
@@ -3240,6 +3294,15 @@ export declare const fakeResolvedConfig: (overrides?: {
|
|
|
3240
3294
|
done?: {} | undefined;
|
|
3241
3295
|
start?: {} | undefined;
|
|
3242
3296
|
} | undefined;
|
|
3297
|
+
server?: {
|
|
3298
|
+
closed?: {} | undefined;
|
|
3299
|
+
created?: {} | undefined;
|
|
3300
|
+
started?: {} | undefined;
|
|
3301
|
+
} | {
|
|
3302
|
+
closed?: {} | undefined;
|
|
3303
|
+
created?: {} | undefined;
|
|
3304
|
+
started?: {} | undefined;
|
|
3305
|
+
} | undefined;
|
|
3243
3306
|
ready?: {} | undefined;
|
|
3244
3307
|
} | undefined;
|
|
3245
3308
|
modules?: (string | undefined)[] | undefined;
|
|
@@ -3297,6 +3360,9 @@ export declare const fakeResolvedConfig: (overrides?: {
|
|
|
3297
3360
|
'zip:sources:start'?: {} | undefined;
|
|
3298
3361
|
'zip:sources:done'?: {} | undefined;
|
|
3299
3362
|
'zip:done'?: {} | undefined;
|
|
3363
|
+
'server:created'?: {} | undefined;
|
|
3364
|
+
'server:started'?: {} | undefined;
|
|
3365
|
+
'server:closed'?: {} | undefined;
|
|
3300
3366
|
build?: {
|
|
3301
3367
|
before?: {} | undefined;
|
|
3302
3368
|
done?: {} | undefined;
|
|
@@ -3391,6 +3457,15 @@ export declare const fakeResolvedConfig: (overrides?: {
|
|
|
3391
3457
|
done?: {} | undefined;
|
|
3392
3458
|
start?: {} | undefined;
|
|
3393
3459
|
} | undefined;
|
|
3460
|
+
server?: {
|
|
3461
|
+
closed?: {} | undefined;
|
|
3462
|
+
created?: {} | undefined;
|
|
3463
|
+
started?: {} | undefined;
|
|
3464
|
+
} | {
|
|
3465
|
+
closed?: {} | undefined;
|
|
3466
|
+
created?: {} | undefined;
|
|
3467
|
+
started?: {} | undefined;
|
|
3468
|
+
} | undefined;
|
|
3394
3469
|
} | {
|
|
3395
3470
|
build?: {
|
|
3396
3471
|
before?: {} | undefined;
|
|
@@ -3486,6 +3561,15 @@ export declare const fakeResolvedConfig: (overrides?: {
|
|
|
3486
3561
|
done?: {} | undefined;
|
|
3487
3562
|
start?: {} | undefined;
|
|
3488
3563
|
} | undefined;
|
|
3564
|
+
server?: {
|
|
3565
|
+
closed?: {} | undefined;
|
|
3566
|
+
created?: {} | undefined;
|
|
3567
|
+
started?: {} | undefined;
|
|
3568
|
+
} | {
|
|
3569
|
+
closed?: {} | undefined;
|
|
3570
|
+
created?: {} | undefined;
|
|
3571
|
+
started?: {} | undefined;
|
|
3572
|
+
} | undefined;
|
|
3489
3573
|
ready?: {} | undefined;
|
|
3490
3574
|
} | undefined;
|
|
3491
3575
|
builtinModules?: ({
|
|
@@ -3529,6 +3613,9 @@ export declare const fakeResolvedConfig: (overrides?: {
|
|
|
3529
3613
|
'zip:sources:start'?: {} | undefined;
|
|
3530
3614
|
'zip:sources:done'?: {} | undefined;
|
|
3531
3615
|
'zip:done'?: {} | undefined;
|
|
3616
|
+
'server:created'?: {} | undefined;
|
|
3617
|
+
'server:started'?: {} | undefined;
|
|
3618
|
+
'server:closed'?: {} | undefined;
|
|
3532
3619
|
build?: {
|
|
3533
3620
|
before?: {} | undefined;
|
|
3534
3621
|
done?: {} | undefined;
|
|
@@ -3623,6 +3710,15 @@ export declare const fakeResolvedConfig: (overrides?: {
|
|
|
3623
3710
|
done?: {} | undefined;
|
|
3624
3711
|
start?: {} | undefined;
|
|
3625
3712
|
} | undefined;
|
|
3713
|
+
server?: {
|
|
3714
|
+
closed?: {} | undefined;
|
|
3715
|
+
created?: {} | undefined;
|
|
3716
|
+
started?: {} | undefined;
|
|
3717
|
+
} | {
|
|
3718
|
+
closed?: {} | undefined;
|
|
3719
|
+
created?: {} | undefined;
|
|
3720
|
+
started?: {} | undefined;
|
|
3721
|
+
} | undefined;
|
|
3626
3722
|
} | {
|
|
3627
3723
|
build?: {
|
|
3628
3724
|
before?: {} | undefined;
|
|
@@ -3718,6 +3814,15 @@ export declare const fakeResolvedConfig: (overrides?: {
|
|
|
3718
3814
|
done?: {} | undefined;
|
|
3719
3815
|
start?: {} | undefined;
|
|
3720
3816
|
} | undefined;
|
|
3817
|
+
server?: {
|
|
3818
|
+
closed?: {} | undefined;
|
|
3819
|
+
created?: {} | undefined;
|
|
3820
|
+
started?: {} | undefined;
|
|
3821
|
+
} | {
|
|
3822
|
+
closed?: {} | undefined;
|
|
3823
|
+
created?: {} | undefined;
|
|
3824
|
+
started?: {} | undefined;
|
|
3825
|
+
} | undefined;
|
|
3721
3826
|
ready?: {} | undefined;
|
|
3722
3827
|
} | undefined;
|
|
3723
3828
|
setup?: {} | undefined;
|
|
@@ -3765,6 +3870,9 @@ export declare const fakeResolvedConfig: (overrides?: {
|
|
|
3765
3870
|
'zip:sources:start'?: {} | undefined;
|
|
3766
3871
|
'zip:sources:done'?: {} | undefined;
|
|
3767
3872
|
'zip:done'?: {} | undefined;
|
|
3873
|
+
'server:created'?: {} | undefined;
|
|
3874
|
+
'server:started'?: {} | undefined;
|
|
3875
|
+
'server:closed'?: {} | undefined;
|
|
3768
3876
|
build?: {
|
|
3769
3877
|
before?: {} | undefined;
|
|
3770
3878
|
done?: {} | undefined;
|
|
@@ -3859,6 +3967,15 @@ export declare const fakeResolvedConfig: (overrides?: {
|
|
|
3859
3967
|
done?: {} | undefined;
|
|
3860
3968
|
start?: {} | undefined;
|
|
3861
3969
|
} | undefined;
|
|
3970
|
+
server?: {
|
|
3971
|
+
closed?: {} | undefined;
|
|
3972
|
+
created?: {} | undefined;
|
|
3973
|
+
started?: {} | undefined;
|
|
3974
|
+
} | {
|
|
3975
|
+
closed?: {} | undefined;
|
|
3976
|
+
created?: {} | undefined;
|
|
3977
|
+
started?: {} | undefined;
|
|
3978
|
+
} | undefined;
|
|
3862
3979
|
} | {
|
|
3863
3980
|
build?: {
|
|
3864
3981
|
before?: {} | undefined;
|
|
@@ -3954,6 +4071,15 @@ export declare const fakeResolvedConfig: (overrides?: {
|
|
|
3954
4071
|
done?: {} | undefined;
|
|
3955
4072
|
start?: {} | undefined;
|
|
3956
4073
|
} | undefined;
|
|
4074
|
+
server?: {
|
|
4075
|
+
closed?: {} | undefined;
|
|
4076
|
+
created?: {} | undefined;
|
|
4077
|
+
started?: {} | undefined;
|
|
4078
|
+
} | {
|
|
4079
|
+
closed?: {} | undefined;
|
|
4080
|
+
created?: {} | undefined;
|
|
4081
|
+
started?: {} | undefined;
|
|
4082
|
+
} | undefined;
|
|
3957
4083
|
ready?: {} | undefined;
|
|
3958
4084
|
} | undefined;
|
|
3959
4085
|
setup?: {} | undefined;
|
|
@@ -5132,6 +5258,9 @@ export declare const fakeWxt: (overrides?: {
|
|
|
5132
5258
|
'zip:sources:start'?: {} | undefined;
|
|
5133
5259
|
'zip:sources:done'?: {} | undefined;
|
|
5134
5260
|
'zip:done'?: {} | undefined;
|
|
5261
|
+
'server:created'?: {} | undefined;
|
|
5262
|
+
'server:started'?: {} | undefined;
|
|
5263
|
+
'server:closed'?: {} | undefined;
|
|
5135
5264
|
build?: {
|
|
5136
5265
|
before?: {} | undefined;
|
|
5137
5266
|
done?: {} | undefined;
|
|
@@ -5226,6 +5355,15 @@ export declare const fakeWxt: (overrides?: {
|
|
|
5226
5355
|
done?: {} | undefined;
|
|
5227
5356
|
start?: {} | undefined;
|
|
5228
5357
|
} | undefined;
|
|
5358
|
+
server?: {
|
|
5359
|
+
closed?: {} | undefined;
|
|
5360
|
+
created?: {} | undefined;
|
|
5361
|
+
started?: {} | undefined;
|
|
5362
|
+
} | {
|
|
5363
|
+
closed?: {} | undefined;
|
|
5364
|
+
created?: {} | undefined;
|
|
5365
|
+
started?: {} | undefined;
|
|
5366
|
+
} | undefined;
|
|
5229
5367
|
} | {
|
|
5230
5368
|
build?: {
|
|
5231
5369
|
before?: {} | undefined;
|
|
@@ -5321,6 +5459,15 @@ export declare const fakeWxt: (overrides?: {
|
|
|
5321
5459
|
done?: {} | undefined;
|
|
5322
5460
|
start?: {} | undefined;
|
|
5323
5461
|
} | undefined;
|
|
5462
|
+
server?: {
|
|
5463
|
+
closed?: {} | undefined;
|
|
5464
|
+
created?: {} | undefined;
|
|
5465
|
+
started?: {} | undefined;
|
|
5466
|
+
} | {
|
|
5467
|
+
closed?: {} | undefined;
|
|
5468
|
+
created?: {} | undefined;
|
|
5469
|
+
started?: {} | undefined;
|
|
5470
|
+
} | undefined;
|
|
5324
5471
|
ready?: {} | undefined;
|
|
5325
5472
|
} | undefined;
|
|
5326
5473
|
modules?: (string | undefined)[] | undefined;
|
|
@@ -5852,6 +5999,9 @@ export declare const fakeWxt: (overrides?: {
|
|
|
5852
5999
|
'zip:sources:start'?: {} | undefined;
|
|
5853
6000
|
'zip:sources:done'?: {} | undefined;
|
|
5854
6001
|
'zip:done'?: {} | undefined;
|
|
6002
|
+
'server:created'?: {} | undefined;
|
|
6003
|
+
'server:started'?: {} | undefined;
|
|
6004
|
+
'server:closed'?: {} | undefined;
|
|
5855
6005
|
build?: {
|
|
5856
6006
|
before?: {} | undefined;
|
|
5857
6007
|
done?: {} | undefined;
|
|
@@ -5946,6 +6096,15 @@ export declare const fakeWxt: (overrides?: {
|
|
|
5946
6096
|
done?: {} | undefined;
|
|
5947
6097
|
start?: {} | undefined;
|
|
5948
6098
|
} | undefined;
|
|
6099
|
+
server?: {
|
|
6100
|
+
closed?: {} | undefined;
|
|
6101
|
+
created?: {} | undefined;
|
|
6102
|
+
started?: {} | undefined;
|
|
6103
|
+
} | {
|
|
6104
|
+
closed?: {} | undefined;
|
|
6105
|
+
created?: {} | undefined;
|
|
6106
|
+
started?: {} | undefined;
|
|
6107
|
+
} | undefined;
|
|
5949
6108
|
} | {
|
|
5950
6109
|
build?: {
|
|
5951
6110
|
before?: {} | undefined;
|
|
@@ -6041,6 +6200,15 @@ export declare const fakeWxt: (overrides?: {
|
|
|
6041
6200
|
done?: {} | undefined;
|
|
6042
6201
|
start?: {} | undefined;
|
|
6043
6202
|
} | undefined;
|
|
6203
|
+
server?: {
|
|
6204
|
+
closed?: {} | undefined;
|
|
6205
|
+
created?: {} | undefined;
|
|
6206
|
+
started?: {} | undefined;
|
|
6207
|
+
} | {
|
|
6208
|
+
closed?: {} | undefined;
|
|
6209
|
+
created?: {} | undefined;
|
|
6210
|
+
started?: {} | undefined;
|
|
6211
|
+
} | undefined;
|
|
6044
6212
|
ready?: {} | undefined;
|
|
6045
6213
|
} | undefined;
|
|
6046
6214
|
modules?: (string | undefined)[] | undefined;
|
|
@@ -6598,6 +6766,9 @@ export declare const fakeWxt: (overrides?: {
|
|
|
6598
6766
|
'zip:sources:start'?: {} | undefined;
|
|
6599
6767
|
'zip:sources:done'?: {} | undefined;
|
|
6600
6768
|
'zip:done'?: {} | undefined;
|
|
6769
|
+
'server:created'?: {} | undefined;
|
|
6770
|
+
'server:started'?: {} | undefined;
|
|
6771
|
+
'server:closed'?: {} | undefined;
|
|
6601
6772
|
build?: {
|
|
6602
6773
|
before?: {} | undefined;
|
|
6603
6774
|
done?: {} | undefined;
|
|
@@ -6692,6 +6863,15 @@ export declare const fakeWxt: (overrides?: {
|
|
|
6692
6863
|
done?: {} | undefined;
|
|
6693
6864
|
start?: {} | undefined;
|
|
6694
6865
|
} | undefined;
|
|
6866
|
+
server?: {
|
|
6867
|
+
closed?: {} | undefined;
|
|
6868
|
+
created?: {} | undefined;
|
|
6869
|
+
started?: {} | undefined;
|
|
6870
|
+
} | {
|
|
6871
|
+
closed?: {} | undefined;
|
|
6872
|
+
created?: {} | undefined;
|
|
6873
|
+
started?: {} | undefined;
|
|
6874
|
+
} | undefined;
|
|
6695
6875
|
} | {
|
|
6696
6876
|
build?: {
|
|
6697
6877
|
before?: {} | undefined;
|
|
@@ -6787,6 +6967,15 @@ export declare const fakeWxt: (overrides?: {
|
|
|
6787
6967
|
done?: {} | undefined;
|
|
6788
6968
|
start?: {} | undefined;
|
|
6789
6969
|
} | undefined;
|
|
6970
|
+
server?: {
|
|
6971
|
+
closed?: {} | undefined;
|
|
6972
|
+
created?: {} | undefined;
|
|
6973
|
+
started?: {} | undefined;
|
|
6974
|
+
} | {
|
|
6975
|
+
closed?: {} | undefined;
|
|
6976
|
+
created?: {} | undefined;
|
|
6977
|
+
started?: {} | undefined;
|
|
6978
|
+
} | undefined;
|
|
6790
6979
|
ready?: {} | undefined;
|
|
6791
6980
|
} | undefined;
|
|
6792
6981
|
modules?: (string | undefined)[] | undefined;
|
|
@@ -6844,6 +7033,9 @@ export declare const fakeWxt: (overrides?: {
|
|
|
6844
7033
|
'zip:sources:start'?: {} | undefined;
|
|
6845
7034
|
'zip:sources:done'?: {} | undefined;
|
|
6846
7035
|
'zip:done'?: {} | undefined;
|
|
7036
|
+
'server:created'?: {} | undefined;
|
|
7037
|
+
'server:started'?: {} | undefined;
|
|
7038
|
+
'server:closed'?: {} | undefined;
|
|
6847
7039
|
build?: {
|
|
6848
7040
|
before?: {} | undefined;
|
|
6849
7041
|
done?: {} | undefined;
|
|
@@ -6938,6 +7130,15 @@ export declare const fakeWxt: (overrides?: {
|
|
|
6938
7130
|
done?: {} | undefined;
|
|
6939
7131
|
start?: {} | undefined;
|
|
6940
7132
|
} | undefined;
|
|
7133
|
+
server?: {
|
|
7134
|
+
closed?: {} | undefined;
|
|
7135
|
+
created?: {} | undefined;
|
|
7136
|
+
started?: {} | undefined;
|
|
7137
|
+
} | {
|
|
7138
|
+
closed?: {} | undefined;
|
|
7139
|
+
created?: {} | undefined;
|
|
7140
|
+
started?: {} | undefined;
|
|
7141
|
+
} | undefined;
|
|
6941
7142
|
} | {
|
|
6942
7143
|
build?: {
|
|
6943
7144
|
before?: {} | undefined;
|
|
@@ -7033,6 +7234,15 @@ export declare const fakeWxt: (overrides?: {
|
|
|
7033
7234
|
done?: {} | undefined;
|
|
7034
7235
|
start?: {} | undefined;
|
|
7035
7236
|
} | undefined;
|
|
7237
|
+
server?: {
|
|
7238
|
+
closed?: {} | undefined;
|
|
7239
|
+
created?: {} | undefined;
|
|
7240
|
+
started?: {} | undefined;
|
|
7241
|
+
} | {
|
|
7242
|
+
closed?: {} | undefined;
|
|
7243
|
+
created?: {} | undefined;
|
|
7244
|
+
started?: {} | undefined;
|
|
7245
|
+
} | undefined;
|
|
7036
7246
|
ready?: {} | undefined;
|
|
7037
7247
|
} | undefined;
|
|
7038
7248
|
builtinModules?: ({
|
|
@@ -7076,6 +7286,9 @@ export declare const fakeWxt: (overrides?: {
|
|
|
7076
7286
|
'zip:sources:start'?: {} | undefined;
|
|
7077
7287
|
'zip:sources:done'?: {} | undefined;
|
|
7078
7288
|
'zip:done'?: {} | undefined;
|
|
7289
|
+
'server:created'?: {} | undefined;
|
|
7290
|
+
'server:started'?: {} | undefined;
|
|
7291
|
+
'server:closed'?: {} | undefined;
|
|
7079
7292
|
build?: {
|
|
7080
7293
|
before?: {} | undefined;
|
|
7081
7294
|
done?: {} | undefined;
|
|
@@ -7170,6 +7383,15 @@ export declare const fakeWxt: (overrides?: {
|
|
|
7170
7383
|
done?: {} | undefined;
|
|
7171
7384
|
start?: {} | undefined;
|
|
7172
7385
|
} | undefined;
|
|
7386
|
+
server?: {
|
|
7387
|
+
closed?: {} | undefined;
|
|
7388
|
+
created?: {} | undefined;
|
|
7389
|
+
started?: {} | undefined;
|
|
7390
|
+
} | {
|
|
7391
|
+
closed?: {} | undefined;
|
|
7392
|
+
created?: {} | undefined;
|
|
7393
|
+
started?: {} | undefined;
|
|
7394
|
+
} | undefined;
|
|
7173
7395
|
} | {
|
|
7174
7396
|
build?: {
|
|
7175
7397
|
before?: {} | undefined;
|
|
@@ -7265,6 +7487,15 @@ export declare const fakeWxt: (overrides?: {
|
|
|
7265
7487
|
done?: {} | undefined;
|
|
7266
7488
|
start?: {} | undefined;
|
|
7267
7489
|
} | undefined;
|
|
7490
|
+
server?: {
|
|
7491
|
+
closed?: {} | undefined;
|
|
7492
|
+
created?: {} | undefined;
|
|
7493
|
+
started?: {} | undefined;
|
|
7494
|
+
} | {
|
|
7495
|
+
closed?: {} | undefined;
|
|
7496
|
+
created?: {} | undefined;
|
|
7497
|
+
started?: {} | undefined;
|
|
7498
|
+
} | undefined;
|
|
7268
7499
|
ready?: {} | undefined;
|
|
7269
7500
|
} | undefined;
|
|
7270
7501
|
setup?: {} | undefined;
|
|
@@ -7312,6 +7543,9 @@ export declare const fakeWxt: (overrides?: {
|
|
|
7312
7543
|
'zip:sources:start'?: {} | undefined;
|
|
7313
7544
|
'zip:sources:done'?: {} | undefined;
|
|
7314
7545
|
'zip:done'?: {} | undefined;
|
|
7546
|
+
'server:created'?: {} | undefined;
|
|
7547
|
+
'server:started'?: {} | undefined;
|
|
7548
|
+
'server:closed'?: {} | undefined;
|
|
7315
7549
|
build?: {
|
|
7316
7550
|
before?: {} | undefined;
|
|
7317
7551
|
done?: {} | undefined;
|
|
@@ -7406,6 +7640,15 @@ export declare const fakeWxt: (overrides?: {
|
|
|
7406
7640
|
done?: {} | undefined;
|
|
7407
7641
|
start?: {} | undefined;
|
|
7408
7642
|
} | undefined;
|
|
7643
|
+
server?: {
|
|
7644
|
+
closed?: {} | undefined;
|
|
7645
|
+
created?: {} | undefined;
|
|
7646
|
+
started?: {} | undefined;
|
|
7647
|
+
} | {
|
|
7648
|
+
closed?: {} | undefined;
|
|
7649
|
+
created?: {} | undefined;
|
|
7650
|
+
started?: {} | undefined;
|
|
7651
|
+
} | undefined;
|
|
7409
7652
|
} | {
|
|
7410
7653
|
build?: {
|
|
7411
7654
|
before?: {} | undefined;
|
|
@@ -7501,6 +7744,15 @@ export declare const fakeWxt: (overrides?: {
|
|
|
7501
7744
|
done?: {} | undefined;
|
|
7502
7745
|
start?: {} | undefined;
|
|
7503
7746
|
} | undefined;
|
|
7747
|
+
server?: {
|
|
7748
|
+
closed?: {} | undefined;
|
|
7749
|
+
created?: {} | undefined;
|
|
7750
|
+
started?: {} | undefined;
|
|
7751
|
+
} | {
|
|
7752
|
+
closed?: {} | undefined;
|
|
7753
|
+
created?: {} | undefined;
|
|
7754
|
+
started?: {} | undefined;
|
|
7755
|
+
} | undefined;
|
|
7504
7756
|
ready?: {} | undefined;
|
|
7505
7757
|
} | undefined;
|
|
7506
7758
|
setup?: {} | undefined;
|
package/dist/core/wxt.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { InlineConfig,
|
|
1
|
+
import { InlineConfig, Wxt, WxtCommand } from '../types';
|
|
2
2
|
/**
|
|
3
3
|
* Global variable set once `createWxt` is called once. Since this variable is used everywhere, this
|
|
4
4
|
* global can be used instead of passing the variable as a function parameter everywhere.
|
|
@@ -7,7 +7,12 @@ export declare let wxt: Wxt;
|
|
|
7
7
|
/**
|
|
8
8
|
* Create and register a global instance of the Wxt interface for use throughout the project.
|
|
9
9
|
*/
|
|
10
|
-
export declare function registerWxt(command: WxtCommand, inlineConfig?: InlineConfig
|
|
10
|
+
export declare function registerWxt(command: WxtCommand, inlineConfig?: InlineConfig): Promise<void>;
|
|
11
|
+
export declare function initWxtModules(): Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* Unloads WXT modules.
|
|
14
|
+
*/
|
|
15
|
+
export declare function deinitWxtModules(): void;
|
|
11
16
|
/**
|
|
12
17
|
* @internal ONLY USE FOR TESTING.
|
|
13
18
|
*
|
package/dist/core/wxt.mjs
CHANGED
|
@@ -5,12 +5,11 @@ import { createViteBuilder } from "./builders/vite/index.mjs";
|
|
|
5
5
|
import { builtinModules } from "../builtin-modules/index.mjs";
|
|
6
6
|
import { relative } from "path";
|
|
7
7
|
export let wxt;
|
|
8
|
-
export async function registerWxt(command, inlineConfig = {}
|
|
8
|
+
export async function registerWxt(command, inlineConfig = {}) {
|
|
9
9
|
process.env.NODE_ENV ??= command === "serve" ? "development" : "production";
|
|
10
10
|
const hooks = createHooks();
|
|
11
11
|
const config = await resolveConfig(inlineConfig, command);
|
|
12
|
-
const
|
|
13
|
-
const builder = await createViteBuilder(config, hooks, server);
|
|
12
|
+
const builder = await createViteBuilder(config, hooks, () => wxt.server);
|
|
14
13
|
const pm = await createWxtPackageManager(config.root);
|
|
15
14
|
wxt = {
|
|
16
15
|
config,
|
|
@@ -25,23 +24,18 @@ export async function registerWxt(command, inlineConfig = {}, getServer) {
|
|
|
25
24
|
},
|
|
26
25
|
pm,
|
|
27
26
|
builder,
|
|
28
|
-
server
|
|
27
|
+
server: void 0
|
|
29
28
|
};
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
);
|
|
37
|
-
};
|
|
38
|
-
for (const builtinModule of builtinModules) await initModule(builtinModule);
|
|
39
|
-
for (const userModule of config.userModules) await initModule(userModule);
|
|
40
|
-
wxt.hooks.addHooks(config.hooks);
|
|
29
|
+
await initWxtModules();
|
|
30
|
+
}
|
|
31
|
+
export async function initWxtModules() {
|
|
32
|
+
for (const mod of builtinModules) await initWxtModule(mod);
|
|
33
|
+
for (const mod of wxt.config.userModules) await initWxtModule(mod);
|
|
34
|
+
wxt.hooks.addHooks(wxt.config.hooks);
|
|
41
35
|
if (wxt.config.debug) {
|
|
42
36
|
const order = [
|
|
43
37
|
...builtinModules.map((module) => module.name),
|
|
44
|
-
...config.userModules.map(
|
|
38
|
+
...wxt.config.userModules.map(
|
|
45
39
|
(module) => relative(wxt.config.root, module.id)
|
|
46
40
|
),
|
|
47
41
|
"wxt.config.ts > hooks"
|
|
@@ -54,6 +48,17 @@ export async function registerWxt(command, inlineConfig = {}, getServer) {
|
|
|
54
48
|
await wxt.hooks.callHook("ready", wxt);
|
|
55
49
|
await wxt.hooks.callHook("config:resolved", wxt);
|
|
56
50
|
}
|
|
51
|
+
async function initWxtModule(module) {
|
|
52
|
+
if (module.hooks) wxt.hooks.addHooks(module.hooks);
|
|
53
|
+
await module.setup?.(
|
|
54
|
+
wxt,
|
|
55
|
+
// @ts-expect-error: Untyped configKey field
|
|
56
|
+
module.configKey ? wxt.config[module.configKey] : void 0
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
export function deinitWxtModules() {
|
|
60
|
+
wxt.hooks.removeAllHooks();
|
|
61
|
+
}
|
|
57
62
|
export function setWxtForTesting(testInstance) {
|
|
58
63
|
wxt = testInstance;
|
|
59
64
|
}
|
package/dist/types.d.ts
CHANGED
|
@@ -269,7 +269,7 @@ export interface InlineConfig {
|
|
|
269
269
|
analysis?: {
|
|
270
270
|
/**
|
|
271
271
|
* Explicitly include bundle analysis when running `wxt build`. This can be overridden by the
|
|
272
|
-
* command line `--
|
|
272
|
+
* command line `--analyze` option.
|
|
273
273
|
*
|
|
274
274
|
* @default false
|
|
275
275
|
*/
|
|
@@ -552,7 +552,7 @@ export interface BackgroundEntrypointOptions extends BaseEntrypointOptions {
|
|
|
552
552
|
type?: PerBrowserOption<'module'>;
|
|
553
553
|
}
|
|
554
554
|
export interface BaseContentScriptEntrypointOptions extends BaseEntrypointOptions {
|
|
555
|
-
matches
|
|
555
|
+
matches?: PerBrowserOption<Manifest.ContentScript['matches']>;
|
|
556
556
|
/**
|
|
557
557
|
* See https://developer.chrome.com/docs/extensions/mv3/content_scripts/
|
|
558
558
|
* @default "documentIdle"
|
|
@@ -984,7 +984,8 @@ export interface ServerInfo {
|
|
|
984
984
|
export type HookResult = Promise<void> | void;
|
|
985
985
|
export interface WxtHooks {
|
|
986
986
|
/**
|
|
987
|
-
* Called
|
|
987
|
+
* Called after WXT modules are initialized, when the WXT instance is ready to
|
|
988
|
+
* be used. `wxt.server` isn't available yet, use `server:created` to get it.
|
|
988
989
|
* @param wxt The configured WXT object
|
|
989
990
|
*/
|
|
990
991
|
ready: (wxt: Wxt) => HookResult;
|
|
@@ -1105,6 +1106,24 @@ export interface WxtHooks {
|
|
|
1105
1106
|
* @param zipFiles An array of paths to all created zip files
|
|
1106
1107
|
*/
|
|
1107
1108
|
'zip:done': (wxt: Wxt, zipFiles: string[]) => HookResult;
|
|
1109
|
+
/**
|
|
1110
|
+
* Called when the dev server is created (and `wxt.server` is assigned). Server has not been started yet.
|
|
1111
|
+
* @param wxt The configured WXT object
|
|
1112
|
+
* @param server Same as `wxt.server`, the object WXT uses to control the dev server.
|
|
1113
|
+
*/
|
|
1114
|
+
'server:created': (wxt: Wxt, server: WxtDevServer) => HookResult;
|
|
1115
|
+
/**
|
|
1116
|
+
* Called when the dev server is started.
|
|
1117
|
+
* @param wxt The configured WXT object
|
|
1118
|
+
* @param server Same as `wxt.server`, the object WXT uses to control the dev server.
|
|
1119
|
+
*/
|
|
1120
|
+
'server:started': (wxt: Wxt, server: WxtDevServer) => HookResult;
|
|
1121
|
+
/**
|
|
1122
|
+
* Called when the dev server is stopped.
|
|
1123
|
+
* @param wxt The configured WXT object
|
|
1124
|
+
* @param server Same as `wxt.server`, the object WXT uses to control the dev server.
|
|
1125
|
+
*/
|
|
1126
|
+
'server:closed': (wxt: Wxt, server: WxtDevServer) => HookResult;
|
|
1108
1127
|
}
|
|
1109
1128
|
export interface Wxt {
|
|
1110
1129
|
config: ResolvedConfig;
|
|
@@ -1118,7 +1137,7 @@ export interface Wxt {
|
|
|
1118
1137
|
*/
|
|
1119
1138
|
logger: Logger;
|
|
1120
1139
|
/**
|
|
1121
|
-
* Reload config file and update
|
|
1140
|
+
* Reload config file and update `wxt.config` with the result.
|
|
1122
1141
|
*/
|
|
1123
1142
|
reloadConfig: () => Promise<void>;
|
|
1124
1143
|
/**
|
package/dist/version.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = "0.19.
|
|
1
|
+
export const version = "0.19.17";
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wxt",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.19.
|
|
4
|
+
"version": "0.19.17",
|
|
5
5
|
"description": "Next gen framework for developing web extensions",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -89,7 +89,7 @@
|
|
|
89
89
|
"fast-glob": "^3.3.2",
|
|
90
90
|
"filesize": "^10.1.6",
|
|
91
91
|
"fs-extra": "^11.2.0",
|
|
92
|
-
"get-port": "^
|
|
92
|
+
"get-port-please": "^3.1.2",
|
|
93
93
|
"giget": "^1.2.3",
|
|
94
94
|
"hookable": "^5.5.3",
|
|
95
95
|
"is-wsl": "^3.1.0",
|
|
@@ -111,7 +111,7 @@
|
|
|
111
111
|
"publish-browser-extension": "^2.2.2",
|
|
112
112
|
"scule": "^1.3.0",
|
|
113
113
|
"unimport": "^3.13.1",
|
|
114
|
-
"vite": "^5.
|
|
114
|
+
"vite": "^5.0.0 || ^6.0.0",
|
|
115
115
|
"vite-node": "^2.1.4",
|
|
116
116
|
"web-ext-run": "^0.2.1",
|
|
117
117
|
"webextension-polyfill": "^0.12.0"
|