wxt 0.5.6 → 0.6.0
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 +14 -22
- package/dist/client.d.ts +1 -1
- package/dist/client.js +136 -1
- package/dist/index.cjs +13 -21
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +9 -4
- package/dist/index.d.ts +9 -4
- package/dist/index.js +13 -21
- package/dist/index.js.map +1 -1
- package/dist/virtual-modules/background-entrypoint.js +2 -0
- package/dist/virtual-modules/background-entrypoint.js.map +1 -1
- package/dist/virtual-modules/content-script-entrypoint.js +2 -0
- package/dist/virtual-modules/content-script-entrypoint.js.map +1 -1
- package/dist/virtual-modules/reload-html.js +2 -0
- package/dist/virtual-modules/reload-html.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,144 @@ 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 (import.meta.env.MODE === "production")
|
|
25
|
+
return;
|
|
26
|
+
if (typeof args[0] === "string") {
|
|
27
|
+
const message = args.shift();
|
|
28
|
+
method(`[wxt] ${message}`, ...args);
|
|
29
|
+
} else {
|
|
30
|
+
method("[wxt]", ...args);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
var logger = {
|
|
34
|
+
debug: (...args) => print(console.debug, ...args),
|
|
35
|
+
log: (...args) => print(console.log, ...args),
|
|
36
|
+
warn: (...args) => print(console.warn, ...args),
|
|
37
|
+
error: (...args) => print(console.error, ...args)
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
// src/client/utils/ContentScriptContext.ts
|
|
41
|
+
var ContentScriptContext = class _ContentScriptContext extends AbortController {
|
|
42
|
+
constructor(contentScriptName) {
|
|
43
|
+
super();
|
|
44
|
+
this.contentScriptName = contentScriptName;
|
|
45
|
+
if (this.#isTopFrame) {
|
|
46
|
+
this.#stopOldScripts();
|
|
47
|
+
}
|
|
48
|
+
this.setTimeout(() => {
|
|
49
|
+
this.#listenForNewerScripts();
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
static SCRIPT_STARTED_MESSAGE_TYPE = "wxt:content-script-started";
|
|
53
|
+
#isTopFrame = window.self === window.top;
|
|
54
|
+
get isInvalid() {
|
|
55
|
+
if (browser.runtime.id == null) {
|
|
56
|
+
this.notifyInvalidated();
|
|
57
|
+
}
|
|
58
|
+
return this.signal.aborted;
|
|
59
|
+
}
|
|
60
|
+
get isValid() {
|
|
61
|
+
return !this.isInvalid;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Add a listener that is called when the content script's context is invalidated.
|
|
65
|
+
*
|
|
66
|
+
* @returns A function to remove the listener.
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* browser.runtime.onMessage.addListener(cb);
|
|
70
|
+
* const removeInvalidatedListener = ctx.onInvalidated(() => {
|
|
71
|
+
* browser.runtime.onMessage.removeListener(cb);
|
|
72
|
+
* })
|
|
73
|
+
* // ...
|
|
74
|
+
* removeInvalidatedListener();
|
|
75
|
+
*/
|
|
76
|
+
onInvalidated(cb) {
|
|
77
|
+
this.signal.addEventListener("abort", cb);
|
|
78
|
+
return () => this.signal.removeEventListener("abort", cb);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Wrapper around `window.setInterval` that automatically clears the interval when invalidated.
|
|
82
|
+
*/
|
|
83
|
+
setInterval(handler, timeout) {
|
|
84
|
+
const id = setInterval(() => {
|
|
85
|
+
if (this.isValid)
|
|
86
|
+
handler();
|
|
87
|
+
}, timeout);
|
|
88
|
+
this.onInvalidated(() => clearInterval(id));
|
|
89
|
+
return id;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Wrapper around `window.setTimeout` that automatically clears the interval when invalidated.
|
|
93
|
+
*/
|
|
94
|
+
setTimeout(handler, timeout) {
|
|
95
|
+
const id = setTimeout(() => {
|
|
96
|
+
if (this.isValid)
|
|
97
|
+
handler();
|
|
98
|
+
}, timeout);
|
|
99
|
+
this.onInvalidated(() => clearTimeout(id));
|
|
100
|
+
return id;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Wrapper around `window.requestAnimationFrame` that automatically cancels the request when
|
|
104
|
+
* invalidated.
|
|
105
|
+
*/
|
|
106
|
+
requestAnimationFrame(callback) {
|
|
107
|
+
const id = requestAnimationFrame((...args) => {
|
|
108
|
+
if (this.isValid)
|
|
109
|
+
callback(...args);
|
|
110
|
+
});
|
|
111
|
+
this.onInvalidated(() => cancelAnimationFrame(id));
|
|
112
|
+
return id;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Wrapper around `window.requestIdleCallback` that automatically cancels the request when
|
|
116
|
+
* invalidated.
|
|
117
|
+
*/
|
|
118
|
+
requestIdleCallback(callback, options) {
|
|
119
|
+
const id = requestIdleCallback((...args) => {
|
|
120
|
+
if (!this.signal.aborted)
|
|
121
|
+
callback(...args);
|
|
122
|
+
}, options);
|
|
123
|
+
this.onInvalidated(() => cancelIdleCallback(id));
|
|
124
|
+
return id;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Abort the abort controller and execute all `onInvalidated` listeners.
|
|
128
|
+
*/
|
|
129
|
+
notifyInvalidated() {
|
|
130
|
+
this.abort("Content script context invalidated");
|
|
131
|
+
logger.debug(
|
|
132
|
+
`Content script "${this.contentScriptName}" context invalidated`
|
|
133
|
+
);
|
|
134
|
+
}
|
|
135
|
+
#stopOldScripts() {
|
|
136
|
+
window.postMessage({
|
|
137
|
+
event: _ContentScriptContext.SCRIPT_STARTED_MESSAGE_TYPE,
|
|
138
|
+
contentScriptName: this.contentScriptName
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
#listenForNewerScripts() {
|
|
142
|
+
const cb = (event) => {
|
|
143
|
+
if (event.data?.type === _ContentScriptContext.SCRIPT_STARTED_MESSAGE_TYPE && event.data?.contentScriptName === this.contentScriptName) {
|
|
144
|
+
this.notifyInvalidated();
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
addEventListener("message", cb);
|
|
148
|
+
this.onInvalidated(() => removeEventListener("message", cb));
|
|
149
|
+
}
|
|
150
|
+
};
|
|
17
151
|
export {
|
|
152
|
+
ContentScriptContext,
|
|
18
153
|
defineBackground,
|
|
19
154
|
defineContentScript,
|
|
20
155
|
mountContentScriptUi
|
|
21
156
|
};
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2NsaWVudC9kZWZpbmVDb250ZW50U2NyaXB0LnRzIiwgIi4uL3NyYy9jbGllbnQvZGVmaW5lQmFja2dyb3VuZC50cyIsICIuLi9zcmMvY2xpZW50L21vdW50Q29udGVudFNjcmlwdFVpLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgeyBDb250ZW50U2NyaXB0RGVmaW5pdGlvbiB9IGZyb20gJy4uL2NvcmUvdHlwZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lQ29udGVudFNjcmlwdChcbiAgZGVmaW5pdGlvbjogQ29udGVudFNjcmlwdERlZmluaXRpb24sXG4pOiBDb250ZW50U2NyaXB0RGVmaW5pdGlvbiB7XG4gIHJldHVybiBkZWZpbml0aW9uO1xufVxuIiwgImltcG9ydCB7IEJhY2tncm91bmRTY3JpcHREZWZpbnRpdGlvbiB9IGZyb20gJy4uJztcblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZUJhY2tncm91bmQobWFpbjogKCkgPT4gdm9pZCk6IEJhY2tncm91bmRTY3JpcHREZWZpbnRpdGlvbjtcbmV4cG9ydCBmdW5jdGlvbiBkZWZpbmVCYWNrZ3JvdW5kKFxuICBkZWZpbml0aW9uOiBCYWNrZ3JvdW5kU2NyaXB0RGVmaW50aXRpb24sXG4pOiBCYWNrZ3JvdW5kU2NyaXB0RGVmaW50aXRpb247XG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lQmFja2dyb3VuZChcbiAgYXJnOiAoKCkgPT4gdm9pZCkgfCBCYWNrZ3JvdW5kU2NyaXB0RGVmaW50aXRpb24sXG4pOiBCYWNrZ3JvdW5kU2NyaXB0RGVmaW50aXRpb24ge1xuICBpZiAodHlwZW9mIGFyZyA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIHsgbWFpbjogYXJnIH07XG4gIHJldHVybiBhcmc7XG59XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIG1vdW50Q29udGVudFNjcmlwdFVpKCkge1xuICB0aHJvdyBFcnJvcignTm90IGltcGxlbWVudGVkOiBtb3VudENvbnRlbnRTY3JpcHRVaScpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjtBQUVPLFNBQVMsb0JBQ2QsWUFDeUI7QUFDekIsU0FBTztBQUNUOzs7QUNBTyxTQUFTLGlCQUNkLEtBQzZCO0FBQzdCLE1BQUksT0FBTyxRQUFRO0FBQVksV0FBTyxFQUFFLE1BQU0sSUFBSTtBQUNsRCxTQUFPO0FBQ1Q7OztBQ1hPLFNBQVMsdUJBQXVCO0FBQ3JDLFFBQU0sTUFBTSx1Q0FBdUM7QUFDckQ7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2NsaWVudC9kZWZpbmVDb250ZW50U2NyaXB0LnRzIiwgIi4uL3NyYy9jbGllbnQvZGVmaW5lQmFja2dyb3VuZC50cyIsICIuLi9zcmMvY2xpZW50L21vdW50Q29udGVudFNjcmlwdFVpLnRzIiwgIi4uL3NyYy9jbGllbnQvYnJvd3Nlci50cyIsICIuLi9zcmMvY2xpZW50L3V0aWxzL2xvZ2dlci50cyIsICIuLi9zcmMvY2xpZW50L3V0aWxzL0NvbnRlbnRTY3JpcHRDb250ZXh0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgeyBDb250ZW50U2NyaXB0RGVmaW5pdGlvbiB9IGZyb20gJy4uL2NvcmUvdHlwZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lQ29udGVudFNjcmlwdChcbiAgZGVmaW5pdGlvbjogQ29udGVudFNjcmlwdERlZmluaXRpb24sXG4pOiBDb250ZW50U2NyaXB0RGVmaW5pdGlvbiB7XG4gIHJldHVybiBkZWZpbml0aW9uO1xufVxuIiwgImltcG9ydCB7IEJhY2tncm91bmRTY3JpcHREZWZpbnRpdGlvbiB9IGZyb20gJy4uJztcblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZUJhY2tncm91bmQobWFpbjogKCkgPT4gdm9pZCk6IEJhY2tncm91bmRTY3JpcHREZWZpbnRpdGlvbjtcbmV4cG9ydCBmdW5jdGlvbiBkZWZpbmVCYWNrZ3JvdW5kKFxuICBkZWZpbml0aW9uOiBCYWNrZ3JvdW5kU2NyaXB0RGVmaW50aXRpb24sXG4pOiBCYWNrZ3JvdW5kU2NyaXB0RGVmaW50aXRpb247XG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lQmFja2dyb3VuZChcbiAgYXJnOiAoKCkgPT4gdm9pZCkgfCBCYWNrZ3JvdW5kU2NyaXB0RGVmaW50aXRpb24sXG4pOiBCYWNrZ3JvdW5kU2NyaXB0RGVmaW50aXRpb24ge1xuICBpZiAodHlwZW9mIGFyZyA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIHsgbWFpbjogYXJnIH07XG4gIHJldHVybiBhcmc7XG59XG4iLCAiZXhwb3J0IGZ1bmN0aW9uIG1vdW50Q29udGVudFNjcmlwdFVpKCkge1xuICB0aHJvdyBFcnJvcignTm90IGltcGxlbWVudGVkOiBtb3VudENvbnRlbnRTY3JpcHRVaScpO1xufVxuIiwgImltcG9ydCBvcmlnaW5hbEJyb3dzZXIsIHsgQnJvd3NlciwgUnVudGltZSwgSTE4biB9IGZyb20gJ3dlYmV4dGVuc2lvbi1wb2x5ZmlsbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXVnbWVudGVkQnJvd3NlciBleHRlbmRzIEJyb3dzZXIge1xuICBydW50aW1lOiBXeHRSdW50aW1lO1xuICBpMThuOiBXeHRJMThuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFd4dFJ1bnRpbWUgZXh0ZW5kcyBSdW50aW1lLlN0YXRpYyB7XG4gIC8vIE92ZXJyaWRlbiBwZXItcHJvamVjdFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFd4dEkxOG4gZXh0ZW5kcyBJMThuLlN0YXRpYyB7XG4gIC8vIE92ZXJyaWRlbiBwZXItcHJvamVjdFxufVxuXG5leHBvcnQgY29uc3QgYnJvd3NlcjogQXVnbWVudGVkQnJvd3NlciA9IG9yaWdpbmFsQnJvd3NlcjtcbiIsICJmdW5jdGlvbiBwcmludChtZXRob2Q6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZCwgLi4uYXJnczogYW55W10pIHtcbiAgaWYgKGltcG9ydC5tZXRhLmVudi5NT0RFID09PSAncHJvZHVjdGlvbicpIHJldHVybjtcblxuICBpZiAodHlwZW9mIGFyZ3NbMF0gPT09ICdzdHJpbmcnKSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGFyZ3Muc2hpZnQoKTtcbiAgICBtZXRob2QoYFt3eHRdICR7bWVzc2FnZX1gLCAuLi5hcmdzKTtcbiAgfSBlbHNlIHtcbiAgICBtZXRob2QoJ1t3eHRdJywgLi4uYXJncyk7XG4gIH1cbn1cblxuLyoqXG4gKiBXcmFwcGVyIGFyb3VuZCBgY29uc29sZWAgd2l0aCBhIFwiW3d4dF1cIiBwcmVmaXhcbiAqL1xuZXhwb3J0IGNvbnN0IGxvZ2dlciA9IHtcbiAgZGVidWc6ICguLi5hcmdzOiBhbnlbXSkgPT4gcHJpbnQoY29uc29sZS5kZWJ1ZywgLi4uYXJncyksXG4gIGxvZzogKC4uLmFyZ3M6IGFueVtdKSA9PiBwcmludChjb25zb2xlLmxvZywgLi4uYXJncyksXG4gIHdhcm46ICguLi5hcmdzOiBhbnlbXSkgPT4gcHJpbnQoY29uc29sZS53YXJuLCAuLi5hcmdzKSxcbiAgZXJyb3I6ICguLi5hcmdzOiBhbnlbXSkgPT4gcHJpbnQoY29uc29sZS5lcnJvciwgLi4uYXJncyksXG59O1xuIiwgImltcG9ydCB7IGJyb3dzZXIgfSBmcm9tICcuLi9icm93c2VyJztcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4vbG9nZ2VyJztcblxuLyoqXG4gKiBFeHRlbmRzIFtgQWJvcnRDb250cm9sbGVyYF0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0Fib3J0Q29udHJvbGxlcikuXG4gKiBVc2VkIHRvIGRldGVjdCBhbmQgc3RvcCBjb250ZW50IHNjcmlwdCBjb2RlIHdoZW4gdGhlIHNjcmlwdCBpcyBpbnZhbGlkYXRlZC5cbiAqXG4gKiBJdCBhbHNvIHByb3ZpZGVzIHNldmVyYWwgdXRpbGl0aWVzIGxpa2UgYGN0eC5zZXRUaW1lb3V0YCBhbmQgYGN0eC5zZXRJbnRlcnZhbGAgdGhhdCBzaG91bGQgYmUgdXNlZCBpblxuICogY29udGVudCBzY3JpcHRzIGluc3RlYWQgb2YgYHdpbmRvdy5zZXRUaW1lb3V0YCBvciBgd2luZG93LnNldEludGVydmFsYC5cbiAqL1xuZXhwb3J0IGNsYXNzIENvbnRlbnRTY3JpcHRDb250ZXh0IGV4dGVuZHMgQWJvcnRDb250cm9sbGVyIHtcbiAgc3RhdGljIFNDUklQVF9TVEFSVEVEX01FU1NBR0VfVFlQRSA9ICd3eHQ6Y29udGVudC1zY3JpcHQtc3RhcnRlZCc7XG5cbiAgI2lzVG9wRnJhbWUgPSB3aW5kb3cuc2VsZiA9PT0gd2luZG93LnRvcDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNvbnRlbnRTY3JpcHROYW1lOiBzdHJpbmcpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgaWYgKHRoaXMuI2lzVG9wRnJhbWUpIHtcbiAgICAgIHRoaXMuI3N0b3BPbGRTY3JpcHRzKCk7XG4gICAgfVxuICAgIHRoaXMuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvLyBSdW4gb24gbmV4dCB0aWNrIHNvIHRoZSBsaXN0ZW5lciBpdCBhZGRzIGlzbid0IHRyaWdnZXJlZCBieSBzdG9wT2xkU2NyaXB0XG4gICAgICB0aGlzLiNsaXN0ZW5Gb3JOZXdlclNjcmlwdHMoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBpc0ludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgaWYgKGJyb3dzZXIucnVudGltZS5pZCA9PSBudWxsKSB7XG4gICAgICB0aGlzLm5vdGlmeUludmFsaWRhdGVkKCk7IC8vIFNldHMgYHNpZ25hbC5hYm9ydGVkYCB0byB0cnVlXG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNpZ25hbC5hYm9ydGVkO1xuICB9XG5cbiAgZ2V0IGlzVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmlzSW52YWxpZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBsaXN0ZW5lciB0aGF0IGlzIGNhbGxlZCB3aGVuIHRoZSBjb250ZW50IHNjcmlwdCdzIGNvbnRleHQgaXMgaW52YWxpZGF0ZWQuXG4gICAqXG4gICAqIEByZXR1cm5zIEEgZnVuY3Rpb24gdG8gcmVtb3ZlIHRoZSBsaXN0ZW5lci5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYnJvd3Nlci5ydW50aW1lLm9uTWVzc2FnZS5hZGRMaXN0ZW5lcihjYik7XG4gICAqIGNvbnN0IHJlbW92ZUludmFsaWRhdGVkTGlzdGVuZXIgPSBjdHgub25JbnZhbGlkYXRlZCgoKSA9PiB7XG4gICAqICAgYnJvd3Nlci5ydW50aW1lLm9uTWVzc2FnZS5yZW1vdmVMaXN0ZW5lcihjYik7XG4gICAqIH0pXG4gICAqIC8vIC4uLlxuICAgKiByZW1vdmVJbnZhbGlkYXRlZExpc3RlbmVyKCk7XG4gICAqL1xuICBvbkludmFsaWRhdGVkKGNiOiAoKSA9PiB2b2lkKTogKCkgPT4gdm9pZCB7XG4gICAgdGhpcy5zaWduYWwuYWRkRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBjYik7XG4gICAgcmV0dXJuICgpID0+IHRoaXMuc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Fib3J0JywgY2IpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdyYXBwZXIgYXJvdW5kIGB3aW5kb3cuc2V0SW50ZXJ2YWxgIHRoYXQgYXV0b21hdGljYWxseSBjbGVhcnMgdGhlIGludGVydmFsIHdoZW4gaW52YWxpZGF0ZWQuXG4gICAqL1xuICBzZXRJbnRlcnZhbChoYW5kbGVyOiAoKSA9PiB2b2lkLCB0aW1lb3V0PzogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBjb25zdCBpZCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmlzVmFsaWQpIGhhbmRsZXIoKTtcbiAgICB9LCB0aW1lb3V0KSBhcyB1bmtub3duIGFzIG51bWJlcjtcbiAgICB0aGlzLm9uSW52YWxpZGF0ZWQoKCkgPT4gY2xlYXJJbnRlcnZhbChpZCkpO1xuICAgIHJldHVybiBpZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBXcmFwcGVyIGFyb3VuZCBgd2luZG93LnNldFRpbWVvdXRgIHRoYXQgYXV0b21hdGljYWxseSBjbGVhcnMgdGhlIGludGVydmFsIHdoZW4gaW52YWxpZGF0ZWQuXG4gICAqL1xuICBzZXRUaW1lb3V0KGhhbmRsZXI6ICgpID0+IHZvaWQsIHRpbWVvdXQ/OiBudW1iZXIpOiBudW1iZXIge1xuICAgIGNvbnN0IGlkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5pc1ZhbGlkKSBoYW5kbGVyKCk7XG4gICAgfSwgdGltZW91dCkgYXMgdW5rbm93biBhcyBudW1iZXI7XG4gICAgdGhpcy5vbkludmFsaWRhdGVkKCgpID0+IGNsZWFyVGltZW91dChpZCkpO1xuICAgIHJldHVybiBpZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBXcmFwcGVyIGFyb3VuZCBgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZWAgdGhhdCBhdXRvbWF0aWNhbGx5IGNhbmNlbHMgdGhlIHJlcXVlc3Qgd2hlblxuICAgKiBpbnZhbGlkYXRlZC5cbiAgICovXG4gIHJlcXVlc3RBbmltYXRpb25GcmFtZShjYWxsYmFjazogRnJhbWVSZXF1ZXN0Q2FsbGJhY2spOiBudW1iZXIge1xuICAgIGNvbnN0IGlkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCguLi5hcmdzKSA9PiB7XG4gICAgICBpZiAodGhpcy5pc1ZhbGlkKSBjYWxsYmFjayguLi5hcmdzKTtcbiAgICB9KTtcblxuICAgIHRoaXMub25JbnZhbGlkYXRlZCgoKSA9PiBjYW5jZWxBbmltYXRpb25GcmFtZShpZCkpO1xuICAgIHJldHVybiBpZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBXcmFwcGVyIGFyb3VuZCBgd2luZG93LnJlcXVlc3RJZGxlQ2FsbGJhY2tgIHRoYXQgYXV0b21hdGljYWxseSBjYW5jZWxzIHRoZSByZXF1ZXN0IHdoZW5cbiAgICogaW52YWxpZGF0ZWQuXG4gICAqL1xuICByZXF1ZXN0SWRsZUNhbGxiYWNrKFxuICAgIGNhbGxiYWNrOiBJZGxlUmVxdWVzdENhbGxiYWNrLFxuICAgIG9wdGlvbnM/OiBJZGxlUmVxdWVzdE9wdGlvbnMsXG4gICk6IG51bWJlciB7XG4gICAgY29uc3QgaWQgPSByZXF1ZXN0SWRsZUNhbGxiYWNrKCguLi5hcmdzKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuc2lnbmFsLmFib3J0ZWQpIGNhbGxiYWNrKC4uLmFyZ3MpO1xuICAgIH0sIG9wdGlvbnMpO1xuXG4gICAgdGhpcy5vbkludmFsaWRhdGVkKCgpID0+IGNhbmNlbElkbGVDYWxsYmFjayhpZCkpO1xuICAgIHJldHVybiBpZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBYm9ydCB0aGUgYWJvcnQgY29udHJvbGxlciBhbmQgZXhlY3V0ZSBhbGwgYG9uSW52YWxpZGF0ZWRgIGxpc3RlbmVycy5cbiAgICovXG4gIG5vdGlmeUludmFsaWRhdGVkKCkge1xuICAgIHRoaXMuYWJvcnQoJ0NvbnRlbnQgc2NyaXB0IGNvbnRleHQgaW52YWxpZGF0ZWQnKTtcbiAgICBsb2dnZXIuZGVidWcoXG4gICAgICBgQ29udGVudCBzY3JpcHQgXCIke3RoaXMuY29udGVudFNjcmlwdE5hbWV9XCIgY29udGV4dCBpbnZhbGlkYXRlZGAsXG4gICAgKTtcbiAgfVxuXG4gICNzdG9wT2xkU2NyaXB0cygpIHtcbiAgICAvLyBVc2UgcG9zdE1lc3NhZ2Ugc28gaXQgZ2V0J3Mgc2VudCB0byBhbGwgdGhlIGZyYW1lcyBvZiB0aGUgcGFnZS5cbiAgICB3aW5kb3cucG9zdE1lc3NhZ2Uoe1xuICAgICAgZXZlbnQ6IENvbnRlbnRTY3JpcHRDb250ZXh0LlNDUklQVF9TVEFSVEVEX01FU1NBR0VfVFlQRSxcbiAgICAgIGNvbnRlbnRTY3JpcHROYW1lOiB0aGlzLmNvbnRlbnRTY3JpcHROYW1lLFxuICAgIH0pO1xuICB9XG5cbiAgI2xpc3RlbkZvck5ld2VyU2NyaXB0cygpIHtcbiAgICBjb25zdCBjYiA9IChldmVudDogTWVzc2FnZUV2ZW50KSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIGV2ZW50LmRhdGE/LnR5cGUgPT09IENvbnRlbnRTY3JpcHRDb250ZXh0LlNDUklQVF9TVEFSVEVEX01FU1NBR0VfVFlQRSAmJlxuICAgICAgICBldmVudC5kYXRhPy5jb250ZW50U2NyaXB0TmFtZSA9PT0gdGhpcy5jb250ZW50U2NyaXB0TmFtZVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMubm90aWZ5SW52YWxpZGF0ZWQoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGNiKTtcbiAgICB0aGlzLm9uSW52YWxpZGF0ZWQoKCkgPT4gcmVtb3ZlRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGNiKSk7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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,13 +641,11 @@ 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";
|
|
648
|
+
internalVite.mode = env.mode;
|
|
657
649
|
internalVite.build ??= {};
|
|
658
650
|
internalVite.build.outDir = finalConfig.outDir;
|
|
659
651
|
internalVite.build.emptyOutDir = false;
|
|
@@ -865,7 +857,7 @@ async function buildSingleEntrypoint(entrypoint, config) {
|
|
|
865
857
|
}
|
|
866
858
|
const entryConfig = vite3.mergeConfig(
|
|
867
859
|
libMode,
|
|
868
|
-
config.vite
|
|
860
|
+
await config.vite(config.env)
|
|
869
861
|
);
|
|
870
862
|
const result = await vite3.build(entryConfig);
|
|
871
863
|
return {
|
|
@@ -899,7 +891,7 @@ async function buildMultipleEntrypoints(entrypoints, config) {
|
|
|
899
891
|
}
|
|
900
892
|
const entryConfig = vite3.mergeConfig(
|
|
901
893
|
multiPage,
|
|
902
|
-
config.vite
|
|
894
|
+
await config.vite(config.env)
|
|
903
895
|
);
|
|
904
896
|
const result = await vite3.build(entryConfig);
|
|
905
897
|
return {
|
|
@@ -2202,7 +2194,7 @@ async function getServerInfo() {
|
|
|
2202
2194
|
async function setupServer(serverInfo, config) {
|
|
2203
2195
|
const runner = createWebExtRunner();
|
|
2204
2196
|
const viteServer = await vite5.createServer(
|
|
2205
|
-
vite5.mergeConfig(serverInfo, config.vite)
|
|
2197
|
+
vite5.mergeConfig(serverInfo, await config.vite(config.env))
|
|
2206
2198
|
);
|
|
2207
2199
|
const start = async () => {
|
|
2208
2200
|
await viteServer.listen(server.port);
|
|
@@ -2303,7 +2295,7 @@ async function clean(root = process.cwd()) {
|
|
|
2303
2295
|
}
|
|
2304
2296
|
|
|
2305
2297
|
// package.json
|
|
2306
|
-
var version2 = "0.
|
|
2298
|
+
var version2 = "0.6.0";
|
|
2307
2299
|
|
|
2308
2300
|
// src/core/utils/defineConfig.ts
|
|
2309
2301
|
function defineConfig(config) {
|
|
@@ -2326,7 +2318,7 @@ async function createServer2(config) {
|
|
|
2326
2318
|
return getInternalConfig(
|
|
2327
2319
|
{
|
|
2328
2320
|
...config,
|
|
2329
|
-
vite: serverInfo.viteServerConfig
|
|
2321
|
+
vite: () => serverInfo.viteServerConfig
|
|
2330
2322
|
},
|
|
2331
2323
|
"serve"
|
|
2332
2324
|
);
|