wxt 0.5.5 → 0.6.0-alpha1
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/cli.cjs +31 -24
- package/dist/client.d.ts +54 -2
- package/dist/client.js +134 -1
- package/dist/index.cjs +30 -23
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +59 -5
- package/dist/index.d.ts +59 -5
- package/dist/index.js +30 -23
- package/dist/index.js.map +1 -1
- package/dist/virtual-modules/content-script-entrypoint.js +118 -1
- package/dist/virtual-modules/content-script-entrypoint.js.map +1 -1
- package/package.json +1 -1
package/dist/client.d.ts
CHANGED
|
@@ -1,5 +1,57 @@
|
|
|
1
1
|
import { Manifest } from 'webextension-polyfill';
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* Extends [`AbortController`](https://developer.mozilla.org/en-US/docs/Web/API/AbortController).
|
|
5
|
+
* Used to detect and stop content script code when the script is invalidated.
|
|
6
|
+
*
|
|
7
|
+
* It also provides several utilities like `ctx.setTimeout` and `ctx.setInterval` that should be used in
|
|
8
|
+
* content scripts instead of `window.setTimeout` or `window.setInterval`.
|
|
9
|
+
*/
|
|
10
|
+
declare class ContentScriptContext extends AbortController {
|
|
11
|
+
#private;
|
|
12
|
+
private readonly contentScriptName;
|
|
13
|
+
static SCRIPT_STARTED_MESSAGE_TYPE: string;
|
|
14
|
+
constructor(contentScriptName: string);
|
|
15
|
+
get isInvalid(): boolean;
|
|
16
|
+
get isValid(): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Add a listener that is called when the content script's context is invalidated.
|
|
19
|
+
*
|
|
20
|
+
* @returns A function to remove the listener.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* browser.runtime.onMessage.addListener(cb);
|
|
24
|
+
* const removeInvalidatedListener = ctx.onInvalidated(() => {
|
|
25
|
+
* browser.runtime.onMessage.removeListener(cb);
|
|
26
|
+
* })
|
|
27
|
+
* // ...
|
|
28
|
+
* removeInvalidatedListener();
|
|
29
|
+
*/
|
|
30
|
+
onInvalidated(cb: () => void): () => void;
|
|
31
|
+
/**
|
|
32
|
+
* Wrapper around `window.setInterval` that automatically clears the interval when invalidated.
|
|
33
|
+
*/
|
|
34
|
+
setInterval(handler: () => void, timeout?: number): number;
|
|
35
|
+
/**
|
|
36
|
+
* Wrapper around `window.setTimeout` that automatically clears the interval when invalidated.
|
|
37
|
+
*/
|
|
38
|
+
setTimeout(handler: () => void, timeout?: number): number;
|
|
39
|
+
/**
|
|
40
|
+
* Wrapper around `window.requestAnimationFrame` that automatically cancels the request when
|
|
41
|
+
* invalidated.
|
|
42
|
+
*/
|
|
43
|
+
requestAnimationFrame(callback: FrameRequestCallback): number;
|
|
44
|
+
/**
|
|
45
|
+
* Wrapper around `window.requestIdleCallback` that automatically cancels the request when
|
|
46
|
+
* invalidated.
|
|
47
|
+
*/
|
|
48
|
+
requestIdleCallback(callback: IdleRequestCallback, options?: IdleRequestOptions): number;
|
|
49
|
+
/**
|
|
50
|
+
* Abort the abort controller and execute all `onInvalidated` listeners.
|
|
51
|
+
*/
|
|
52
|
+
notifyInvalidated(): void;
|
|
53
|
+
}
|
|
54
|
+
|
|
3
55
|
type TargetBrowser = string;
|
|
4
56
|
interface ContentScriptDefinition extends ExcludableEntrypoint {
|
|
5
57
|
matches: Manifest.ContentScript['matches'];
|
|
@@ -46,7 +98,7 @@ interface ContentScriptDefinition extends ExcludableEntrypoint {
|
|
|
46
98
|
/**
|
|
47
99
|
* Main function executed when the content script is loaded.
|
|
48
100
|
*/
|
|
49
|
-
main(): void | Promise<void>;
|
|
101
|
+
main(ctx: ContentScriptContext): void | Promise<void>;
|
|
50
102
|
}
|
|
51
103
|
interface BackgroundScriptDefintition extends ExcludableEntrypoint {
|
|
52
104
|
type?: 'module';
|
|
@@ -76,4 +128,4 @@ declare function defineBackground(definition: BackgroundScriptDefintition): Back
|
|
|
76
128
|
|
|
77
129
|
declare function mountContentScriptUi(): void;
|
|
78
130
|
|
|
79
|
-
export { defineBackground, defineContentScript, mountContentScriptUi };
|
|
131
|
+
export { ContentScriptContext, defineBackground, defineContentScript, mountContentScriptUi };
|
package/dist/client.js
CHANGED
|
@@ -14,9 +14,142 @@ function defineBackground(arg) {
|
|
|
14
14
|
function mountContentScriptUi() {
|
|
15
15
|
throw Error("Not implemented: mountContentScriptUi");
|
|
16
16
|
}
|
|
17
|
+
|
|
18
|
+
// src/client/browser.ts
|
|
19
|
+
import originalBrowser from "webextension-polyfill";
|
|
20
|
+
var browser = originalBrowser;
|
|
21
|
+
|
|
22
|
+
// src/client/utils/logger.ts
|
|
23
|
+
function print(method, ...args) {
|
|
24
|
+
if (typeof args[0] === "string") {
|
|
25
|
+
const message = args.shift();
|
|
26
|
+
method(`[wxt] ${message}`, ...args);
|
|
27
|
+
} else {
|
|
28
|
+
method("[wxt]", ...args);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
var logger = {
|
|
32
|
+
debug: (...args) => print(console.debug, ...args),
|
|
33
|
+
log: (...args) => print(console.log, ...args),
|
|
34
|
+
warn: (...args) => print(console.warn, ...args),
|
|
35
|
+
error: (...args) => print(console.error, ...args)
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
// src/client/utils/ContentScriptContext.ts
|
|
39
|
+
var ContentScriptContext = class _ContentScriptContext extends AbortController {
|
|
40
|
+
constructor(contentScriptName) {
|
|
41
|
+
super();
|
|
42
|
+
this.contentScriptName = contentScriptName;
|
|
43
|
+
if (this.#isTopFrame) {
|
|
44
|
+
this.#stopOldScripts();
|
|
45
|
+
}
|
|
46
|
+
this.setTimeout(() => {
|
|
47
|
+
this.#listenForNewerScripts();
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
static SCRIPT_STARTED_MESSAGE_TYPE = "wxt:content-script-started";
|
|
51
|
+
#isTopFrame = window.self === window.top;
|
|
52
|
+
get isInvalid() {
|
|
53
|
+
if (browser.runtime.id == null) {
|
|
54
|
+
this.notifyInvalidated();
|
|
55
|
+
}
|
|
56
|
+
return this.signal.aborted;
|
|
57
|
+
}
|
|
58
|
+
get isValid() {
|
|
59
|
+
return !this.isInvalid;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Add a listener that is called when the content script's context is invalidated.
|
|
63
|
+
*
|
|
64
|
+
* @returns A function to remove the listener.
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* browser.runtime.onMessage.addListener(cb);
|
|
68
|
+
* const removeInvalidatedListener = ctx.onInvalidated(() => {
|
|
69
|
+
* browser.runtime.onMessage.removeListener(cb);
|
|
70
|
+
* })
|
|
71
|
+
* // ...
|
|
72
|
+
* removeInvalidatedListener();
|
|
73
|
+
*/
|
|
74
|
+
onInvalidated(cb) {
|
|
75
|
+
this.signal.addEventListener("abort", cb);
|
|
76
|
+
return () => this.signal.removeEventListener("abort", cb);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Wrapper around `window.setInterval` that automatically clears the interval when invalidated.
|
|
80
|
+
*/
|
|
81
|
+
setInterval(handler, timeout) {
|
|
82
|
+
const id = setInterval(() => {
|
|
83
|
+
if (this.isValid)
|
|
84
|
+
handler();
|
|
85
|
+
}, timeout);
|
|
86
|
+
this.onInvalidated(() => clearInterval(id));
|
|
87
|
+
return id;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Wrapper around `window.setTimeout` that automatically clears the interval when invalidated.
|
|
91
|
+
*/
|
|
92
|
+
setTimeout(handler, timeout) {
|
|
93
|
+
const id = setTimeout(() => {
|
|
94
|
+
if (this.isValid)
|
|
95
|
+
handler();
|
|
96
|
+
}, timeout);
|
|
97
|
+
this.onInvalidated(() => clearTimeout(id));
|
|
98
|
+
return id;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Wrapper around `window.requestAnimationFrame` that automatically cancels the request when
|
|
102
|
+
* invalidated.
|
|
103
|
+
*/
|
|
104
|
+
requestAnimationFrame(callback) {
|
|
105
|
+
const id = requestAnimationFrame((...args) => {
|
|
106
|
+
if (this.isValid)
|
|
107
|
+
callback(...args);
|
|
108
|
+
});
|
|
109
|
+
this.onInvalidated(() => cancelAnimationFrame(id));
|
|
110
|
+
return id;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Wrapper around `window.requestIdleCallback` that automatically cancels the request when
|
|
114
|
+
* invalidated.
|
|
115
|
+
*/
|
|
116
|
+
requestIdleCallback(callback, options) {
|
|
117
|
+
const id = requestIdleCallback((...args) => {
|
|
118
|
+
if (!this.signal.aborted)
|
|
119
|
+
callback(...args);
|
|
120
|
+
}, options);
|
|
121
|
+
this.onInvalidated(() => cancelIdleCallback(id));
|
|
122
|
+
return id;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Abort the abort controller and execute all `onInvalidated` listeners.
|
|
126
|
+
*/
|
|
127
|
+
notifyInvalidated() {
|
|
128
|
+
this.abort("Content script context invalidated");
|
|
129
|
+
logger.debug(
|
|
130
|
+
`Content script "${this.contentScriptName}" context invalidated`
|
|
131
|
+
);
|
|
132
|
+
}
|
|
133
|
+
#stopOldScripts() {
|
|
134
|
+
window.postMessage({
|
|
135
|
+
event: _ContentScriptContext.SCRIPT_STARTED_MESSAGE_TYPE,
|
|
136
|
+
contentScriptName: this.contentScriptName
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
#listenForNewerScripts() {
|
|
140
|
+
const cb = (event) => {
|
|
141
|
+
if (event.data?.type === _ContentScriptContext.SCRIPT_STARTED_MESSAGE_TYPE && event.data?.contentScriptName === this.contentScriptName) {
|
|
142
|
+
this.notifyInvalidated();
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
addEventListener("message", cb);
|
|
146
|
+
this.onInvalidated(() => removeEventListener("message", cb));
|
|
147
|
+
}
|
|
148
|
+
};
|
|
17
149
|
export {
|
|
150
|
+
ContentScriptContext,
|
|
18
151
|
defineBackground,
|
|
19
152
|
defineContentScript,
|
|
20
153
|
mountContentScriptUi
|
|
21
154
|
};
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2NsaWVudC9kZWZpbmVDb250ZW50U2NyaXB0LnRzIiwgIi4uL3NyYy9jbGllbnQvZGVmaW5lQmFja2dyb3VuZC50cyIsICIuLi9zcmMvY2xpZW50L21vdW50Q29udGVudFNjcmlwdFVpLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgeyBDb250ZW50U2NyaXB0RGVmaW5pdGlvbiB9IGZyb20gJy4uL2NvcmUvdHlwZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lQ29udGVudFNjcmlwdChcbiAgZGVmaW5pdGlvbjogQ29udGVudFNjcmlwdERlZmluaXRpb24sXG4pOiBDb250ZW50U2NyaXB0RGVmaW5pdGlvbiB7XG4gIHJldHVybiBkZWZpbml0aW9uO1xufVxuIiwgImltcG9ydCB7IEJhY2tncm91bmRTY3JpcHREZWZpbnRpdGlvbiB9IGZyb20gJy4uJztcblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZUJhY2tncm91bmQobWFpbjogKCkgPT4gdm9pZCk6IEJhY2tncm91bmRTY3JpcHREZWZpbnRpdGlvbjtcbmV4cG9ydCBmdW5jdGlvbiBkZWZpbmVCYWNrZ3JvdW5kKFxuICBkZWZpbml0aW9uOiBCYWNrZ3JvdW5kU2NyaXB0RGVmaW50aXRpb24sXG4pOiBCYWNrZ3JvdW5kU2NyaXB0RGVmaW50aXRpb247XG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lQmFja2dyb3VuZChcbiAgYXJnOiAoKCkgPT4gdm9pZCkgfCBCYWNrZ3JvdW5kU2NyaXB0RGVmaW50aXRpb24sXG4pOiBCYWNrZ3JvdW5kU2NyaXB0RGVmaW50aXRpb24ge1xuICBpZiAodHlwZW9mIGFyZyA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIHsgbWFpbjogYXJnIH07XG4gIHJldHVybiBhcmc7XG59XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIG1vdW50Q29udGVudFNjcmlwdFVpKCkge1xuICB0aHJvdyBFcnJvcignTm90IGltcGxlbWVudGVkOiBtb3VudENvbnRlbnRTY3JpcHRVaScpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjtBQUVPLFNBQVMsb0JBQ2QsWUFDeUI7QUFDekIsU0FBTztBQUNUOzs7QUNBTyxTQUFTLGlCQUNkLEtBQzZCO0FBQzdCLE1BQUksT0FBTyxRQUFRO0FBQVksV0FBTyxFQUFFLE1BQU0sSUFBSTtBQUNsRCxTQUFPO0FBQ1Q7OztBQ1hPLFNBQVMsdUJBQXVCO0FBQ3JDLFFBQU0sTUFBTSx1Q0FBdUM7QUFDckQ7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
155
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2NsaWVudC9kZWZpbmVDb250ZW50U2NyaXB0LnRzIiwgIi4uL3NyYy9jbGllbnQvZGVmaW5lQmFja2dyb3VuZC50cyIsICIuLi9zcmMvY2xpZW50L21vdW50Q29udGVudFNjcmlwdFVpLnRzIiwgIi4uL3NyYy9jbGllbnQvYnJvd3Nlci50cyIsICIuLi9zcmMvY2xpZW50L3V0aWxzL2xvZ2dlci50cyIsICIuLi9zcmMvY2xpZW50L3V0aWxzL0NvbnRlbnRTY3JpcHRDb250ZXh0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgeyBDb250ZW50U2NyaXB0RGVmaW5pdGlvbiB9IGZyb20gJy4uL2NvcmUvdHlwZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lQ29udGVudFNjcmlwdChcbiAgZGVmaW5pdGlvbjogQ29udGVudFNjcmlwdERlZmluaXRpb24sXG4pOiBDb250ZW50U2NyaXB0RGVmaW5pdGlvbiB7XG4gIHJldHVybiBkZWZpbml0aW9uO1xufVxuIiwgImltcG9ydCB7IEJhY2tncm91bmRTY3JpcHREZWZpbnRpdGlvbiB9IGZyb20gJy4uJztcblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZUJhY2tncm91bmQobWFpbjogKCkgPT4gdm9pZCk6IEJhY2tncm91bmRTY3JpcHREZWZpbnRpdGlvbjtcbmV4cG9ydCBmdW5jdGlvbiBkZWZpbmVCYWNrZ3JvdW5kKFxuICBkZWZpbml0aW9uOiBCYWNrZ3JvdW5kU2NyaXB0RGVmaW50aXRpb24sXG4pOiBCYWNrZ3JvdW5kU2NyaXB0RGVmaW50aXRpb247XG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lQmFja2dyb3VuZChcbiAgYXJnOiAoKCkgPT4gdm9pZCkgfCBCYWNrZ3JvdW5kU2NyaXB0RGVmaW50aXRpb24sXG4pOiBCYWNrZ3JvdW5kU2NyaXB0RGVmaW50aXRpb24ge1xuICBpZiAodHlwZW9mIGFyZyA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIHsgbWFpbjogYXJnIH07XG4gIHJldHVybiBhcmc7XG59XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIG1vdW50Q29udGVudFNjcmlwdFVpKCkge1xuICB0aHJvdyBFcnJvcignTm90IGltcGxlbWVudGVkOiBtb3VudENvbnRlbnRTY3JpcHRVaScpO1xufVxuIiwgImltcG9ydCBvcmlnaW5hbEJyb3dzZXIsIHsgQnJvd3NlciwgUnVudGltZSwgSTE4biB9IGZyb20gJ3dlYmV4dGVuc2lvbi1wb2x5ZmlsbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXVnbWVudGVkQnJvd3NlciBleHRlbmRzIEJyb3dzZXIge1xuICBydW50aW1lOiBXeHRSdW50aW1lO1xuICBpMThuOiBXeHRJMThuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFd4dFJ1bnRpbWUgZXh0ZW5kcyBSdW50aW1lLlN0YXRpYyB7XG4gIC8vIE92ZXJyaWRlbiBwZXItcHJvamVjdFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFd4dEkxOG4gZXh0ZW5kcyBJMThuLlN0YXRpYyB7XG4gIC8vIE92ZXJyaWRlbiBwZXItcHJvamVjdFxufVxuXG5leHBvcnQgY29uc3QgYnJvd3NlcjogQXVnbWVudGVkQnJvd3NlciA9IG9yaWdpbmFsQnJvd3NlcjtcbiIsICJmdW5jdGlvbiBwcmludChtZXRob2Q6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZCwgLi4uYXJnczogYW55W10pIHtcbiAgaWYgKHR5cGVvZiBhcmdzWzBdID09PSAnc3RyaW5nJykge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBhcmdzLnNoaWZ0KCk7XG4gICAgbWV0aG9kKGBbd3h0XSAke21lc3NhZ2V9YCwgLi4uYXJncyk7XG4gIH0gZWxzZSB7XG4gICAgbWV0aG9kKCdbd3h0XScsIC4uLmFyZ3MpO1xuICB9XG59XG5cbi8qKlxuICogV3JhcHBlciBhcm91bmQgYGNvbnNvbGVgIHdpdGggYSBcIlt3eHRdXCIgcHJlZml4XG4gKi9cbmV4cG9ydCBjb25zdCBsb2dnZXIgPSB7XG4gIGRlYnVnOiAoLi4uYXJnczogYW55W10pID0+IHByaW50KGNvbnNvbGUuZGVidWcsIC4uLmFyZ3MpLFxuICBsb2c6ICguLi5hcmdzOiBhbnlbXSkgPT4gcHJpbnQoY29uc29sZS5sb2csIC4uLmFyZ3MpLFxuICB3YXJuOiAoLi4uYXJnczogYW55W10pID0+IHByaW50KGNvbnNvbGUud2FybiwgLi4uYXJncyksXG4gIGVycm9yOiAoLi4uYXJnczogYW55W10pID0+IHByaW50KGNvbnNvbGUuZXJyb3IsIC4uLmFyZ3MpLFxufTtcbiIsICJpbXBvcnQgeyBicm93c2VyIH0gZnJvbSAnLi4vYnJvd3Nlcic7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuL2xvZ2dlcic7XG5cbi8qKlxuICogRXh0ZW5kcyBbYEFib3J0Q29udHJvbGxlcmBdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9BYm9ydENvbnRyb2xsZXIpLlxuICogVXNlZCB0byBkZXRlY3QgYW5kIHN0b3AgY29udGVudCBzY3JpcHQgY29kZSB3aGVuIHRoZSBzY3JpcHQgaXMgaW52YWxpZGF0ZWQuXG4gKlxuICogSXQgYWxzbyBwcm92aWRlcyBzZXZlcmFsIHV0aWxpdGllcyBsaWtlIGBjdHguc2V0VGltZW91dGAgYW5kIGBjdHguc2V0SW50ZXJ2YWxgIHRoYXQgc2hvdWxkIGJlIHVzZWQgaW5cbiAqIGNvbnRlbnQgc2NyaXB0cyBpbnN0ZWFkIG9mIGB3aW5kb3cuc2V0VGltZW91dGAgb3IgYHdpbmRvdy5zZXRJbnRlcnZhbGAuXG4gKi9cbmV4cG9ydCBjbGFzcyBDb250ZW50U2NyaXB0Q29udGV4dCBleHRlbmRzIEFib3J0Q29udHJvbGxlciB7XG4gIHN0YXRpYyBTQ1JJUFRfU1RBUlRFRF9NRVNTQUdFX1RZUEUgPSAnd3h0OmNvbnRlbnQtc2NyaXB0LXN0YXJ0ZWQnO1xuXG4gICNpc1RvcEZyYW1lID0gd2luZG93LnNlbGYgPT09IHdpbmRvdy50b3A7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjb250ZW50U2NyaXB0TmFtZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIGlmICh0aGlzLiNpc1RvcEZyYW1lKSB7XG4gICAgICB0aGlzLiNzdG9wT2xkU2NyaXB0cygpO1xuICAgIH1cbiAgICB0aGlzLnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgLy8gUnVuIG9uIG5leHQgdGljayBzbyB0aGUgbGlzdGVuZXIgaXQgYWRkcyBpc24ndCB0cmlnZ2VyZWQgYnkgc3RvcE9sZFNjcmlwdFxuICAgICAgdGhpcy4jbGlzdGVuRm9yTmV3ZXJTY3JpcHRzKCk7XG4gICAgfSk7XG4gIH1cblxuICBnZXQgaXNJbnZhbGlkKCk6IGJvb2xlYW4ge1xuICAgIGlmIChicm93c2VyLnJ1bnRpbWUuaWQgPT0gbnVsbCkge1xuICAgICAgdGhpcy5ub3RpZnlJbnZhbGlkYXRlZCgpOyAvLyBTZXRzIGBzaWduYWwuYWJvcnRlZGAgdG8gdHJ1ZVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zaWduYWwuYWJvcnRlZDtcbiAgfVxuXG4gIGdldCBpc1ZhbGlkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5pc0ludmFsaWQ7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgbGlzdGVuZXIgdGhhdCBpcyBjYWxsZWQgd2hlbiB0aGUgY29udGVudCBzY3JpcHQncyBjb250ZXh0IGlzIGludmFsaWRhdGVkLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIGZ1bmN0aW9uIHRvIHJlbW92ZSB0aGUgbGlzdGVuZXIuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGJyb3dzZXIucnVudGltZS5vbk1lc3NhZ2UuYWRkTGlzdGVuZXIoY2IpO1xuICAgKiBjb25zdCByZW1vdmVJbnZhbGlkYXRlZExpc3RlbmVyID0gY3R4Lm9uSW52YWxpZGF0ZWQoKCkgPT4ge1xuICAgKiAgIGJyb3dzZXIucnVudGltZS5vbk1lc3NhZ2UucmVtb3ZlTGlzdGVuZXIoY2IpO1xuICAgKiB9KVxuICAgKiAvLyAuLi5cbiAgICogcmVtb3ZlSW52YWxpZGF0ZWRMaXN0ZW5lcigpO1xuICAgKi9cbiAgb25JbnZhbGlkYXRlZChjYjogKCkgPT4gdm9pZCk6ICgpID0+IHZvaWQge1xuICAgIHRoaXMuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoJ2Fib3J0JywgY2IpO1xuICAgIHJldHVybiAoKSA9PiB0aGlzLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCdhYm9ydCcsIGNiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXcmFwcGVyIGFyb3VuZCBgd2luZG93LnNldEludGVydmFsYCB0aGF0IGF1dG9tYXRpY2FsbHkgY2xlYXJzIHRoZSBpbnRlcnZhbCB3aGVuIGludmFsaWRhdGVkLlxuICAgKi9cbiAgc2V0SW50ZXJ2YWwoaGFuZGxlcjogKCkgPT4gdm9pZCwgdGltZW91dD86IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgaWQgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5pc1ZhbGlkKSBoYW5kbGVyKCk7XG4gICAgfSwgdGltZW91dCkgYXMgdW5rbm93biBhcyBudW1iZXI7XG4gICAgdGhpcy5vbkludmFsaWRhdGVkKCgpID0+IGNsZWFySW50ZXJ2YWwoaWQpKTtcbiAgICByZXR1cm4gaWQ7XG4gIH1cblxuICAvKipcbiAgICogV3JhcHBlciBhcm91bmQgYHdpbmRvdy5zZXRUaW1lb3V0YCB0aGF0IGF1dG9tYXRpY2FsbHkgY2xlYXJzIHRoZSBpbnRlcnZhbCB3aGVuIGludmFsaWRhdGVkLlxuICAgKi9cbiAgc2V0VGltZW91dChoYW5kbGVyOiAoKSA9PiB2b2lkLCB0aW1lb3V0PzogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBjb25zdCBpZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNWYWxpZCkgaGFuZGxlcigpO1xuICAgIH0sIHRpbWVvdXQpIGFzIHVua25vd24gYXMgbnVtYmVyO1xuICAgIHRoaXMub25JbnZhbGlkYXRlZCgoKSA9PiBjbGVhclRpbWVvdXQoaWQpKTtcbiAgICByZXR1cm4gaWQ7XG4gIH1cblxuICAvKipcbiAgICogV3JhcHBlciBhcm91bmQgYHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWVgIHRoYXQgYXV0b21hdGljYWxseSBjYW5jZWxzIHRoZSByZXF1ZXN0IHdoZW5cbiAgICogaW52YWxpZGF0ZWQuXG4gICAqL1xuICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY2FsbGJhY2s6IEZyYW1lUmVxdWVzdENhbGxiYWNrKTogbnVtYmVyIHtcbiAgICBjb25zdCBpZCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoLi4uYXJncykgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNWYWxpZCkgY2FsbGJhY2soLi4uYXJncyk7XG4gICAgfSk7XG5cbiAgICB0aGlzLm9uSW52YWxpZGF0ZWQoKCkgPT4gY2FuY2VsQW5pbWF0aW9uRnJhbWUoaWQpKTtcbiAgICByZXR1cm4gaWQ7XG4gIH1cblxuICAvKipcbiAgICogV3JhcHBlciBhcm91bmQgYHdpbmRvdy5yZXF1ZXN0SWRsZUNhbGxiYWNrYCB0aGF0IGF1dG9tYXRpY2FsbHkgY2FuY2VscyB0aGUgcmVxdWVzdCB3aGVuXG4gICAqIGludmFsaWRhdGVkLlxuICAgKi9cbiAgcmVxdWVzdElkbGVDYWxsYmFjayhcbiAgICBjYWxsYmFjazogSWRsZVJlcXVlc3RDYWxsYmFjayxcbiAgICBvcHRpb25zPzogSWRsZVJlcXVlc3RPcHRpb25zLFxuICApOiBudW1iZXIge1xuICAgIGNvbnN0IGlkID0gcmVxdWVzdElkbGVDYWxsYmFjaygoLi4uYXJncykgPT4ge1xuICAgICAgaWYgKCF0aGlzLnNpZ25hbC5hYm9ydGVkKSBjYWxsYmFjayguLi5hcmdzKTtcbiAgICB9LCBvcHRpb25zKTtcblxuICAgIHRoaXMub25JbnZhbGlkYXRlZCgoKSA9PiBjYW5jZWxJZGxlQ2FsbGJhY2soaWQpKTtcbiAgICByZXR1cm4gaWQ7XG4gIH1cblxuICAvKipcbiAgICogQWJvcnQgdGhlIGFib3J0IGNvbnRyb2xsZXIgYW5kIGV4ZWN1dGUgYWxsIGBvbkludmFsaWRhdGVkYCBsaXN0ZW5lcnMuXG4gICAqL1xuICBub3RpZnlJbnZhbGlkYXRlZCgpIHtcbiAgICB0aGlzLmFib3J0KCdDb250ZW50IHNjcmlwdCBjb250ZXh0IGludmFsaWRhdGVkJyk7XG4gICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgYENvbnRlbnQgc2NyaXB0IFwiJHt0aGlzLmNvbnRlbnRTY3JpcHROYW1lfVwiIGNvbnRleHQgaW52YWxpZGF0ZWRgLFxuICAgICk7XG4gIH1cblxuICAjc3RvcE9sZFNjcmlwdHMoKSB7XG4gICAgLy8gVXNlIHBvc3RNZXNzYWdlIHNvIGl0IGdldCdzIHNlbnQgdG8gYWxsIHRoZSBmcmFtZXMgb2YgdGhlIHBhZ2UuXG4gICAgd2luZG93LnBvc3RNZXNzYWdlKHtcbiAgICAgIGV2ZW50OiBDb250ZW50U2NyaXB0Q29udGV4dC5TQ1JJUFRfU1RBUlRFRF9NRVNTQUdFX1RZUEUsXG4gICAgICBjb250ZW50U2NyaXB0TmFtZTogdGhpcy5jb250ZW50U2NyaXB0TmFtZSxcbiAgICB9KTtcbiAgfVxuXG4gICNsaXN0ZW5Gb3JOZXdlclNjcmlwdHMoKSB7XG4gICAgY29uc3QgY2IgPSAoZXZlbnQ6IE1lc3NhZ2VFdmVudCkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBldmVudC5kYXRhPy50eXBlID09PSBDb250ZW50U2NyaXB0Q29udGV4dC5TQ1JJUFRfU1RBUlRFRF9NRVNTQUdFX1RZUEUgJiZcbiAgICAgICAgZXZlbnQuZGF0YT8uY29udGVudFNjcmlwdE5hbWUgPT09IHRoaXMuY29udGVudFNjcmlwdE5hbWVcbiAgICAgICkge1xuICAgICAgICB0aGlzLm5vdGlmeUludmFsaWRhdGVkKCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBjYik7XG4gICAgdGhpcy5vbkludmFsaWRhdGVkKCgpID0+IHJlbW92ZUV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBjYikpO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBRU8sU0FBUyxvQkFDZCxZQUN5QjtBQUN6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
|
package/dist/index.cjs
CHANGED
|
@@ -492,6 +492,15 @@ function getGlobals(config) {
|
|
|
492
492
|
}
|
|
493
493
|
];
|
|
494
494
|
}
|
|
495
|
+
function getEntrypointGlobals(config, entrypointName) {
|
|
496
|
+
return [
|
|
497
|
+
{
|
|
498
|
+
name: "__ENTRYPOINT__",
|
|
499
|
+
value: entrypointName,
|
|
500
|
+
type: `string`
|
|
501
|
+
}
|
|
502
|
+
];
|
|
503
|
+
}
|
|
495
504
|
|
|
496
505
|
// src/core/utils/getInternalConfig.ts
|
|
497
506
|
async function getInternalConfig(inlineConfig, command) {
|
|
@@ -538,6 +547,7 @@ async function getInternalConfig(inlineConfig, command) {
|
|
|
538
547
|
command,
|
|
539
548
|
debug,
|
|
540
549
|
entrypointsDir,
|
|
550
|
+
env,
|
|
541
551
|
fsCache: createFsCache(wxtDir),
|
|
542
552
|
imports: mergedConfig.imports ?? {},
|
|
543
553
|
logger,
|
|
@@ -551,16 +561,12 @@ async function getInternalConfig(inlineConfig, command) {
|
|
|
551
561
|
runnerConfig,
|
|
552
562
|
srcDir,
|
|
553
563
|
typesDir,
|
|
554
|
-
vite: {},
|
|
564
|
+
vite: () => ({}),
|
|
555
565
|
// Real value added after this object is initialized.
|
|
556
566
|
wxtDir,
|
|
557
567
|
zip: resolveInternalZipConfig(root, mergedConfig)
|
|
558
568
|
};
|
|
559
|
-
finalConfig.vite =
|
|
560
|
-
env,
|
|
561
|
-
mergedConfig,
|
|
562
|
-
finalConfig
|
|
563
|
-
);
|
|
569
|
+
finalConfig.vite = (env2) => resolveInternalViteConfig(env2, mergedConfig, finalConfig);
|
|
564
570
|
return finalConfig;
|
|
565
571
|
}
|
|
566
572
|
async function resolveManifestConfig(env, manifest) {
|
|
@@ -584,9 +590,9 @@ function mergeInlineConfig(inlineConfig, userConfig) {
|
|
|
584
590
|
return vite2.mergeConfig(user, inline);
|
|
585
591
|
};
|
|
586
592
|
const viteConfig = async (env) => {
|
|
587
|
-
const user = await
|
|
588
|
-
const inline = await
|
|
589
|
-
return vite2.mergeConfig(user, inline);
|
|
593
|
+
const user = await userConfig.vite?.(env);
|
|
594
|
+
const inline = await inlineConfig.vite?.(env);
|
|
595
|
+
return vite2.mergeConfig(user ?? {}, inline ?? {});
|
|
590
596
|
};
|
|
591
597
|
const runner = vite2.mergeConfig(
|
|
592
598
|
userConfig.runner ?? {},
|
|
@@ -614,9 +620,6 @@ function mergeInlineConfig(inlineConfig, userConfig) {
|
|
|
614
620
|
zip
|
|
615
621
|
};
|
|
616
622
|
}
|
|
617
|
-
async function resolveViteConfig(env, vite6) {
|
|
618
|
-
return await (typeof vite6 === "function" ? vite6(env) : vite6 ?? {});
|
|
619
|
-
}
|
|
620
623
|
function resolveInternalZipConfig(root, mergedConfig) {
|
|
621
624
|
return {
|
|
622
625
|
sourcesTemplate: "{{name}}-{{version}}-sources.zip",
|
|
@@ -638,10 +641,7 @@ function resolveInternalZipConfig(root, mergedConfig) {
|
|
|
638
641
|
};
|
|
639
642
|
}
|
|
640
643
|
async function resolveInternalViteConfig(env, mergedConfig, finalConfig) {
|
|
641
|
-
const internalVite = await
|
|
642
|
-
env,
|
|
643
|
-
mergedConfig.vite
|
|
644
|
-
);
|
|
644
|
+
const internalVite = await mergedConfig.vite?.(env) ?? {};
|
|
645
645
|
internalVite.root = finalConfig.root;
|
|
646
646
|
internalVite.configFile = false;
|
|
647
647
|
internalVite.logLevel = "warn";
|
|
@@ -851,9 +851,12 @@ async function buildSingleEntrypoint(entrypoint, config) {
|
|
|
851
851
|
"process.env.NODE_ENV": JSON.stringify(config.mode)
|
|
852
852
|
}
|
|
853
853
|
};
|
|
854
|
+
for (const global of getEntrypointGlobals(config, entrypoint.name)) {
|
|
855
|
+
libMode.define[global.name] = JSON.stringify(global.value);
|
|
856
|
+
}
|
|
854
857
|
const entryConfig = vite3.mergeConfig(
|
|
855
858
|
libMode,
|
|
856
|
-
config.vite
|
|
859
|
+
await config.vite(config.env)
|
|
857
860
|
);
|
|
858
861
|
const result = await vite3.build(entryConfig);
|
|
859
862
|
return {
|
|
@@ -879,11 +882,15 @@ async function buildMultipleEntrypoints(entrypoints, config) {
|
|
|
879
882
|
assetFileNames: "assets/[name]-[hash].[ext]"
|
|
880
883
|
}
|
|
881
884
|
}
|
|
882
|
-
}
|
|
885
|
+
},
|
|
886
|
+
define: {}
|
|
883
887
|
};
|
|
888
|
+
for (const global of getEntrypointGlobals(config, "html")) {
|
|
889
|
+
multiPage.define[global.name] = JSON.stringify(global.value);
|
|
890
|
+
}
|
|
884
891
|
const entryConfig = vite3.mergeConfig(
|
|
885
892
|
multiPage,
|
|
886
|
-
config.vite
|
|
893
|
+
await config.vite(config.env)
|
|
887
894
|
);
|
|
888
895
|
const result = await vite3.build(entryConfig);
|
|
889
896
|
return {
|
|
@@ -1403,7 +1410,7 @@ declare module "wxt/browser" {
|
|
|
1403
1410
|
}
|
|
1404
1411
|
async function writeGlobalsDeclarationFile(config) {
|
|
1405
1412
|
const filePath = (0, import_path9.resolve)(config.typesDir, "globals.d.ts");
|
|
1406
|
-
const globals = getGlobals(config);
|
|
1413
|
+
const globals = [...getGlobals(config), ...getEntrypointGlobals(config, "")];
|
|
1407
1414
|
await writeFileIfDifferent(
|
|
1408
1415
|
filePath,
|
|
1409
1416
|
[
|
|
@@ -2186,7 +2193,7 @@ async function getServerInfo() {
|
|
|
2186
2193
|
async function setupServer(serverInfo, config) {
|
|
2187
2194
|
const runner = createWebExtRunner();
|
|
2188
2195
|
const viteServer = await vite5.createServer(
|
|
2189
|
-
vite5.mergeConfig(serverInfo, config.vite)
|
|
2196
|
+
vite5.mergeConfig(serverInfo, await config.vite(config.env))
|
|
2190
2197
|
);
|
|
2191
2198
|
const start = async () => {
|
|
2192
2199
|
await viteServer.listen(server.port);
|
|
@@ -2287,7 +2294,7 @@ async function clean(root = process.cwd()) {
|
|
|
2287
2294
|
}
|
|
2288
2295
|
|
|
2289
2296
|
// package.json
|
|
2290
|
-
var version2 = "0.
|
|
2297
|
+
var version2 = "0.6.0-alpha1";
|
|
2291
2298
|
|
|
2292
2299
|
// src/core/utils/defineConfig.ts
|
|
2293
2300
|
function defineConfig(config) {
|
|
@@ -2310,7 +2317,7 @@ async function createServer2(config) {
|
|
|
2310
2317
|
return getInternalConfig(
|
|
2311
2318
|
{
|
|
2312
2319
|
...config,
|
|
2313
|
-
vite: serverInfo.viteServerConfig
|
|
2320
|
+
vite: () => serverInfo.viteServerConfig
|
|
2314
2321
|
},
|
|
2315
2322
|
"serve"
|
|
2316
2323
|
);
|