webext-messenger 0.24.0 → 0.25.0-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/distribution/index.js
CHANGED
@@ -5,4 +5,6 @@ export * from "./types.js";
|
|
5
5
|
export { getThisFrame, getTopLevelFrame } from "./thisTarget.js";
|
6
6
|
export { toggleLogging } from "./logging.js";
|
7
7
|
import { initPrivateApi } from "./thisTarget.js";
|
8
|
+
// Required side effect to better track errors:
|
9
|
+
// https://github.com/pixiebrix/webext-messenger/pull/80
|
8
10
|
initPrivateApi();
|
package/distribution/shared.js
CHANGED
@@ -4,15 +4,7 @@ export function isObject(value) {
|
|
4
4
|
return typeof value === "object" && value !== null;
|
5
5
|
}
|
6
6
|
export class MessengerError extends Error {
|
7
|
-
|
8
|
-
super(...arguments);
|
9
|
-
Object.defineProperty(this, "name", {
|
10
|
-
enumerable: true,
|
11
|
-
configurable: true,
|
12
|
-
writable: true,
|
13
|
-
value: "MessengerError"
|
14
|
-
});
|
15
|
-
}
|
7
|
+
name = "MessengerError";
|
16
8
|
}
|
17
9
|
// @ts-expect-error Wrong `errorConstructors` types
|
18
10
|
errorConstructors.set("MessengerError", MessengerError);
|
@@ -106,9 +106,7 @@ const storeTabData = once(async () => {
|
|
106
106
|
}
|
107
107
|
catch (error) {
|
108
108
|
tabDataStatus = "error";
|
109
|
-
throw new MessengerError("Tab registration failed. This page won’t be able to receive messages that require tab information",
|
110
|
-
// @ts-expect-error TODO: update lib to accept Error#cause
|
111
|
-
{ cause: error });
|
109
|
+
throw new MessengerError("Tab registration failed. This page won’t be able to receive messages that require tab information", { cause: error });
|
112
110
|
}
|
113
111
|
});
|
114
112
|
export function __getTabData() {
|
@@ -131,6 +129,16 @@ export async function getTopLevelFrame() {
|
|
131
129
|
};
|
132
130
|
}
|
133
131
|
export function initPrivateApi() {
|
132
|
+
// Improve DX by informing the developer that it's being loaded the wrong way
|
133
|
+
// https://github.com/pixiebrix/webext-messenger/issues/88
|
134
|
+
if (globalThis.__webextMessenger) {
|
135
|
+
// TODO: Use Error#cause after https://bugs.chromium.org/p/chromium/issues/detail?id=1211260
|
136
|
+
console.log(globalThis.__webextMessenger.replace(/^Error/, "webext-messenger"));
|
137
|
+
console.error("webext-messenger: Duplicate execution. This is a fatal error.\nhttps://github.com/pixiebrix/webext-messenger/issues/88");
|
138
|
+
return;
|
139
|
+
}
|
140
|
+
// Use Error to capture the stack and make it easier to find the cause
|
141
|
+
globalThis.__webextMessenger = new Error("First execution").stack;
|
134
142
|
if (isExtensionContext()) {
|
135
143
|
// Only `runtime` pages can handle this message but I can't remove it because its listener
|
136
144
|
// also serves the purpose of throwing a specific error when no methods have been registered.
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "webext-messenger",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.25.0-0",
|
4
4
|
"description": "Browser Extension component messaging framework",
|
5
5
|
"keywords": [],
|
6
6
|
"repository": "pixiebrix/webext-messenger",
|
@@ -27,25 +27,25 @@
|
|
27
27
|
"dependencies": {
|
28
28
|
"p-retry": "^6.0.0",
|
29
29
|
"serialize-error": "^11.0.2",
|
30
|
-
"type-fest": "^4.
|
30
|
+
"type-fest": "^4.6.0",
|
31
31
|
"webext-detect-page": "^4.1.1"
|
32
32
|
},
|
33
33
|
"devDependencies": {
|
34
34
|
"@parcel/config-webextension": "^2.6.2",
|
35
|
-
"@sindresorhus/tsconfig": "^
|
36
|
-
"@types/chrome": "^0.0.
|
37
|
-
"@types/tape": "^5.6.
|
38
|
-
"@types/webextension-polyfill": "^0.10.
|
35
|
+
"@sindresorhus/tsconfig": "^5.0.0",
|
36
|
+
"@types/chrome": "^0.0.248",
|
37
|
+
"@types/tape": "^5.6.3",
|
38
|
+
"@types/webextension-polyfill": "^0.10.5",
|
39
39
|
"buffer": "^6.0.3",
|
40
|
-
"eslint": "^8.
|
41
|
-
"eslint-config-pixiebrix": "^0.
|
40
|
+
"eslint": "^8.52.0",
|
41
|
+
"eslint-config-pixiebrix": "^0.29.1",
|
42
42
|
"events": "^3.3.0",
|
43
43
|
"npm-run-all": "^4.1.5",
|
44
44
|
"parcel": "^2.6.2",
|
45
45
|
"path-browserify": "^1.0.1",
|
46
46
|
"process": "^0.11.10",
|
47
47
|
"stream-browserify": "^3.0.0",
|
48
|
-
"tape": "^5.7.
|
48
|
+
"tape": "^5.7.2",
|
49
49
|
"typescript": "^5.2.2",
|
50
50
|
"webext-content-scripts": "^2.5.5",
|
51
51
|
"webextension-polyfill": "^0.10.0"
|