wxt 0.5.6 → 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 +13 -22
- package/dist/client.d.ts +1 -1
- package/dist/client.js +134 -1
- package/dist/index.cjs +12 -21
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +6 -4
- package/dist/index.d.ts +6 -4
- package/dist/index.js +12 -21
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/client.d.ts
CHANGED
|
@@ -128,4 +128,4 @@ declare function defineBackground(definition: BackgroundScriptDefintition): Back
|
|
|
128
128
|
|
|
129
129
|
declare function mountContentScriptUi(): void;
|
|
130
130
|
|
|
131
|
-
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
|
@@ -547,6 +547,7 @@ async function getInternalConfig(inlineConfig, command) {
|
|
|
547
547
|
command,
|
|
548
548
|
debug,
|
|
549
549
|
entrypointsDir,
|
|
550
|
+
env,
|
|
550
551
|
fsCache: createFsCache(wxtDir),
|
|
551
552
|
imports: mergedConfig.imports ?? {},
|
|
552
553
|
logger,
|
|
@@ -560,16 +561,12 @@ async function getInternalConfig(inlineConfig, command) {
|
|
|
560
561
|
runnerConfig,
|
|
561
562
|
srcDir,
|
|
562
563
|
typesDir,
|
|
563
|
-
vite: {},
|
|
564
|
+
vite: () => ({}),
|
|
564
565
|
// Real value added after this object is initialized.
|
|
565
566
|
wxtDir,
|
|
566
567
|
zip: resolveInternalZipConfig(root, mergedConfig)
|
|
567
568
|
};
|
|
568
|
-
finalConfig.vite =
|
|
569
|
-
env,
|
|
570
|
-
mergedConfig,
|
|
571
|
-
finalConfig
|
|
572
|
-
);
|
|
569
|
+
finalConfig.vite = (env2) => resolveInternalViteConfig(env2, mergedConfig, finalConfig);
|
|
573
570
|
return finalConfig;
|
|
574
571
|
}
|
|
575
572
|
async function resolveManifestConfig(env, manifest) {
|
|
@@ -593,9 +590,9 @@ function mergeInlineConfig(inlineConfig, userConfig) {
|
|
|
593
590
|
return vite2.mergeConfig(user, inline);
|
|
594
591
|
};
|
|
595
592
|
const viteConfig = async (env) => {
|
|
596
|
-
const user = await
|
|
597
|
-
const inline = await
|
|
598
|
-
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 ?? {});
|
|
599
596
|
};
|
|
600
597
|
const runner = vite2.mergeConfig(
|
|
601
598
|
userConfig.runner ?? {},
|
|
@@ -623,9 +620,6 @@ function mergeInlineConfig(inlineConfig, userConfig) {
|
|
|
623
620
|
zip
|
|
624
621
|
};
|
|
625
622
|
}
|
|
626
|
-
async function resolveViteConfig(env, vite6) {
|
|
627
|
-
return await (typeof vite6 === "function" ? vite6(env) : vite6 ?? {});
|
|
628
|
-
}
|
|
629
623
|
function resolveInternalZipConfig(root, mergedConfig) {
|
|
630
624
|
return {
|
|
631
625
|
sourcesTemplate: "{{name}}-{{version}}-sources.zip",
|
|
@@ -647,10 +641,7 @@ function resolveInternalZipConfig(root, mergedConfig) {
|
|
|
647
641
|
};
|
|
648
642
|
}
|
|
649
643
|
async function resolveInternalViteConfig(env, mergedConfig, finalConfig) {
|
|
650
|
-
const internalVite = await
|
|
651
|
-
env,
|
|
652
|
-
mergedConfig.vite
|
|
653
|
-
);
|
|
644
|
+
const internalVite = await mergedConfig.vite?.(env) ?? {};
|
|
654
645
|
internalVite.root = finalConfig.root;
|
|
655
646
|
internalVite.configFile = false;
|
|
656
647
|
internalVite.logLevel = "warn";
|
|
@@ -865,7 +856,7 @@ async function buildSingleEntrypoint(entrypoint, config) {
|
|
|
865
856
|
}
|
|
866
857
|
const entryConfig = vite3.mergeConfig(
|
|
867
858
|
libMode,
|
|
868
|
-
config.vite
|
|
859
|
+
await config.vite(config.env)
|
|
869
860
|
);
|
|
870
861
|
const result = await vite3.build(entryConfig);
|
|
871
862
|
return {
|
|
@@ -899,7 +890,7 @@ async function buildMultipleEntrypoints(entrypoints, config) {
|
|
|
899
890
|
}
|
|
900
891
|
const entryConfig = vite3.mergeConfig(
|
|
901
892
|
multiPage,
|
|
902
|
-
config.vite
|
|
893
|
+
await config.vite(config.env)
|
|
903
894
|
);
|
|
904
895
|
const result = await vite3.build(entryConfig);
|
|
905
896
|
return {
|
|
@@ -2202,7 +2193,7 @@ async function getServerInfo() {
|
|
|
2202
2193
|
async function setupServer(serverInfo, config) {
|
|
2203
2194
|
const runner = createWebExtRunner();
|
|
2204
2195
|
const viteServer = await vite5.createServer(
|
|
2205
|
-
vite5.mergeConfig(serverInfo, config.vite)
|
|
2196
|
+
vite5.mergeConfig(serverInfo, await config.vite(config.env))
|
|
2206
2197
|
);
|
|
2207
2198
|
const start = async () => {
|
|
2208
2199
|
await viteServer.listen(server.port);
|
|
@@ -2303,7 +2294,7 @@ async function clean(root = process.cwd()) {
|
|
|
2303
2294
|
}
|
|
2304
2295
|
|
|
2305
2296
|
// package.json
|
|
2306
|
-
var version2 = "0.
|
|
2297
|
+
var version2 = "0.6.0-alpha1";
|
|
2307
2298
|
|
|
2308
2299
|
// src/core/utils/defineConfig.ts
|
|
2309
2300
|
function defineConfig(config) {
|
|
@@ -2326,7 +2317,7 @@ async function createServer2(config) {
|
|
|
2326
2317
|
return getInternalConfig(
|
|
2327
2318
|
{
|
|
2328
2319
|
...config,
|
|
2329
|
-
vite: serverInfo.viteServerConfig
|
|
2320
|
+
vite: () => serverInfo.viteServerConfig
|
|
2330
2321
|
},
|
|
2331
2322
|
"serve"
|
|
2332
2323
|
);
|