webext-messenger 0.25.0 → 0.25.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,4 +1,4 @@
1
- import { isBackground, isContentScript, isExtensionContext, } from "webext-detect-page";
1
+ import { getContextName, isBackground, isContentScript, isExtensionContext, } from "webext-detect-page";
2
2
  import { messenger } from "./sender.js";
3
3
  import { registerMethods } from "./receiver.js";
4
4
  import { MessengerError, once } from "./shared.js";
@@ -112,11 +112,17 @@ const storeTabData = once(async () => {
112
112
  export function __getTabData() {
113
113
  return { tabId: this.trace[0]?.tab?.id, frameId: this.trace[0]?.frameId };
114
114
  }
115
+ // TODO: Add tests
115
116
  export async function getThisFrame() {
116
117
  await storeTabData(); // It should already have been called but we still need to await it
117
118
  const { tabId, frameId } = thisTarget;
118
119
  if (typeof tabId !== "number" || typeof frameId !== "number") {
119
- throw new TypeError("This target is not in a frame");
120
+ let moreInfo = "(error retrieving context information)";
121
+ try {
122
+ moreInfo = `(context: ${getContextName()}, url: ${globalThis.location?.href})`;
123
+ }
124
+ catch { }
125
+ throw new TypeError(`This target is not in a frame ${moreInfo}`);
120
126
  }
121
127
  // Rebuild object to return exactly these two properties and nothing more
122
128
  return { tabId, frameId };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "webext-messenger",
3
- "version": "0.25.0",
3
+ "version": "0.25.2",
4
4
  "description": "Browser Extension component messaging framework",
5
5
  "keywords": [],
6
6
  "repository": "pixiebrix/webext-messenger",
@@ -17,7 +17,7 @@
17
17
  "scripts": {
18
18
  "build": "tsc",
19
19
  "demo:watch": "parcel watch --no-cache --no-hmr",
20
- "demo:build": "parcel build --no-cache",
20
+ "demo:build": "parcel build --no-cache --no-scope-hoist",
21
21
  "prepack": "tsc --sourceMap false",
22
22
  "test": "eslint . && tsc --noEmit",
23
23
  "lint": "eslint .",
@@ -27,36 +27,38 @@
27
27
  "dependencies": {
28
28
  "p-retry": "^6.2.0",
29
29
  "serialize-error": "^11.0.2",
30
- "type-fest": "^4.9.0",
31
- "webext-detect-page": "^4.2.1"
30
+ "type-fest": "^4.10.2",
31
+ "webext-detect-page": "^5.0.0"
32
+ },
33
+ "@parcel/resolver-default": {
34
+ "packageExports": true
32
35
  },
33
36
  "devDependencies": {
34
- "@parcel/config-webextension": "^2.6.2",
37
+ "@parcel/config-webextension": "^2.11.0",
35
38
  "@sindresorhus/tsconfig": "^5.0.0",
36
- "@types/chrome": "^0.0.254",
39
+ "@types/chrome": "^0.0.259",
37
40
  "@types/tape": "^5.6.4",
38
41
  "@types/webextension-polyfill": "^0.10.7",
39
42
  "buffer": "^6.0.3",
40
43
  "eslint": "^8.56.0",
41
- "eslint-config-pixiebrix": "^0.32.0",
44
+ "eslint-config-pixiebrix": "^0.34.1",
42
45
  "events": "^3.3.0",
43
46
  "npm-run-all": "^4.1.5",
44
- "parcel": "^2.6.2",
47
+ "parcel": "^2.11.0",
45
48
  "path-browserify": "^1.0.1",
46
49
  "process": "^0.11.10",
47
50
  "stream-browserify": "^3.0.0",
48
- "tape": "^5.7.2",
51
+ "tape": "^5.7.4",
49
52
  "typescript": "^5.3.3",
50
- "webext-content-scripts": "^2.6.0",
53
+ "webext-content-scripts": "^2.6.1",
51
54
  "webextension-polyfill": "^0.10.0"
52
55
  },
53
- "alias": {
54
- "./this-stuff-is-just-for-local-parcel-tests": "https://github.com/parcel-bundler/parcel/issues/4936",
55
- "./source/**/*.js": "./source/$1/$2.ts"
56
- },
57
56
  "targets": {
58
57
  "main": false,
59
58
  "default": {
59
+ "engines": {
60
+ "browsers": "Chrome 110"
61
+ },
60
62
  "source": "source/test/manifest.json",
61
63
  "sourceMap": {
62
64
  "inline": true