extension-port-stream 2.0.1 → 3.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/CHANGELOG.md CHANGED
@@ -1,5 +1,4 @@
1
1
  # Changelog
2
-
3
2
  All notable changes to this project will be documented in this file.
4
3
 
5
4
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
@@ -7,22 +6,42 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
6
 
8
7
  ## [Unreleased]
9
8
 
10
- ## [2.0.1] - 2021-04-29
9
+ ## [3.0.0]
10
+ ### Changed
11
+ - **BREAKING**: Use portable `readable-stream@^3.6.2` instead of native streams ([#51](https://github.com/MetaMask/extension-port-stream/pull/51))
12
+
13
+ ## [2.1.1]
14
+ ### Changed
15
+ - deps: replace webextension-polyfill-ts with webextension-polyfill ([#43](https://github.com/MetaMask/extension-port-stream/pull/43))
16
+
17
+ ## [2.1.0] - 2023-06-15
18
+ ### Added
19
+ - `_setLogger` method can be used to inject custom logger for incoming/outgoing messages ([#46](https://github.com/MetaMask/extension-port-stream/pull/46))
11
20
 
12
21
  ### Changed
22
+ - deps: webextension-polyfill-ts@0.22.0->0.26.0 ([#37](https://github.com/MetaMask/extension-port-stream/pull/37))
23
+ - Updates webextension-polyfill from 0.7.0 to 0.8.0
13
24
 
25
+ ### Fixed
26
+ - Fix exporting of types ([#24](https://github.com/MetaMask/extension-port-stream/pull/24))
27
+ - deps: webextension-polyfill-ts@0.22.0->0.26.0 ([#37](https://github.com/MetaMask/extension-port-stream/pull/37))
28
+ - Updates webextension-polyfill from 0.7.0 to 0.8.0
29
+
30
+ ## [2.0.1] - 2021-04-29
31
+ ### Changed
14
32
  - Move `webextension-polyfill-ts` from `devDependencies` to `dependencies` ([#11](https://github.com/MetaMask/extension-port-stream/pull/11))
15
33
 
16
34
  ## [2.0.0] - 2020-11-23
17
-
18
35
  ### Added
19
-
20
36
  - TypeScript typings ([#4](https://github.com/MetaMask/extension-port-stream/pull/4))
21
37
 
22
38
  ### Removed
23
-
24
39
  - **(BREAKING)** Remove `readable-stream` dependency ([#4](https://github.com/MetaMask/extension-port-stream/pull/4))
25
40
  - Consumers using this package in browser environments will have to bring their own Node.js stream polyfill.
26
41
 
27
- [Unreleased]:https://github.com/MetaMask/extension-port-stream/compare/v2.0.0...HEAD
28
- [2.0.0]:https://github.com/MetaMask/extension-port-stream/compare/v1.0.0...v2.0.0
42
+ [Unreleased]: https://github.com/MetaMask/extension-port-stream/compare/v3.0.0...HEAD
43
+ [3.0.0]: https://github.com/MetaMask/extension-port-stream/compare/v2.1.1...v3.0.0
44
+ [2.1.1]: https://github.com/MetaMask/extension-port-stream/compare/v2.1.0...v2.1.1
45
+ [2.1.0]: https://github.com/MetaMask/extension-port-stream/compare/v2.0.1...v2.1.0
46
+ [2.0.1]: https://github.com/MetaMask/extension-port-stream/compare/v2.0.0...v2.0.1
47
+ [2.0.0]: https://github.com/MetaMask/extension-port-stream/releases/tag/v2.0.0
package/dist/index.d.ts CHANGED
@@ -1,152 +1,44 @@
1
1
  /// <reference types="node" />
2
- import { Duplex } from 'stream';
3
- import { Runtime } from 'webextension-polyfill-ts';
4
- declare const _default: {
5
- new (port: Runtime.Port): {
6
- _port: Runtime.Port;
7
- /**
8
- * Callback triggered when a message is received from
9
- * the remote Port associated with this Stream.
10
- *
11
- * @param msg - Payload from the onMessage listener of the port
12
- */
13
- _onMessage(msg: unknown): void;
14
- /**
15
- * Callback triggered when the remote Port associated with this Stream
16
- * disconnects.
17
- */
18
- _onDisconnect(): void;
19
- /**
20
- * Explicitly sets read operations to a no-op.
21
- */
22
- _read(): void;
23
- /**
24
- * Called internally when data should be written to this writable stream.
25
- *
26
- * @param msg - Arbitrary object to write
27
- * @param encoding - Encoding to use when writing payload
28
- * @param cb - Called when writing is complete or an error occurs
29
- */
30
- _write(msg: unknown, _encoding: BufferEncoding, cb: (error?: Error | null | undefined) => void): void;
31
- readonly writable: boolean;
32
- readonly writableEnded: boolean;
33
- readonly writableFinished: boolean;
34
- readonly writableHighWaterMark: number;
35
- readonly writableLength: number;
36
- readonly writableObjectMode: boolean;
37
- readonly writableCorked: number;
38
- _writev?(chunks: {
39
- chunk: any;
40
- encoding: BufferEncoding;
41
- }[], callback: (error?: Error | null | undefined) => void): void;
42
- _destroy(error: Error | null, callback: (error: Error | null) => void): void;
43
- _final(callback: (error?: Error | null | undefined) => void): void;
44
- write(chunk: any, encoding?: "ascii" | "utf8" | "utf-8" | "utf16le" | "ucs2" | "ucs-2" | "base64" | "latin1" | "binary" | "hex" | undefined, cb?: ((error: Error | null | undefined) => void) | undefined): boolean;
45
- write(chunk: any, cb?: ((error: Error | null | undefined) => void) | undefined): boolean;
46
- setDefaultEncoding(encoding: BufferEncoding): any;
47
- end(cb?: (() => void) | undefined): void;
48
- end(chunk: any, cb?: (() => void) | undefined): void;
49
- end(chunk: any, encoding?: "ascii" | "utf8" | "utf-8" | "utf16le" | "ucs2" | "ucs-2" | "base64" | "latin1" | "binary" | "hex" | undefined, cb?: (() => void) | undefined): void;
50
- cork(): void;
51
- uncork(): void;
52
- readable: boolean;
53
- readonly readableEncoding: "ascii" | "utf8" | "utf-8" | "utf16le" | "ucs2" | "ucs-2" | "base64" | "latin1" | "binary" | "hex" | null;
54
- readonly readableEnded: boolean;
55
- readonly readableFlowing: boolean | null;
56
- readonly readableHighWaterMark: number;
57
- readonly readableLength: number;
58
- readonly readableObjectMode: boolean;
59
- destroyed: boolean;
60
- read(size?: number | undefined): any;
61
- setEncoding(encoding: BufferEncoding): any;
62
- pause(): any;
63
- resume(): any;
64
- isPaused(): boolean;
65
- unpipe(destination?: NodeJS.WritableStream | undefined): any;
66
- unshift(chunk: any, encoding?: "ascii" | "utf8" | "utf-8" | "utf16le" | "ucs2" | "ucs-2" | "base64" | "latin1" | "binary" | "hex" | undefined): void;
67
- wrap(oldStream: NodeJS.ReadableStream): any;
68
- push(chunk: any, encoding?: "ascii" | "utf8" | "utf-8" | "utf16le" | "ucs2" | "ucs-2" | "base64" | "latin1" | "binary" | "hex" | undefined): boolean;
69
- destroy(error?: Error | undefined): void;
70
- addListener(event: "close", listener: () => void): any;
71
- addListener(event: "data", listener: (chunk: any) => void): any;
72
- addListener(event: "end", listener: () => void): any;
73
- addListener(event: "error", listener: (err: Error) => void): any;
74
- addListener(event: "pause", listener: () => void): any;
75
- addListener(event: "readable", listener: () => void): any;
76
- addListener(event: "resume", listener: () => void): any;
77
- addListener(event: string | symbol, listener: (...args: any[]) => void): any;
78
- emit(event: "close"): boolean;
79
- emit(event: "data", chunk: any): boolean;
80
- emit(event: "end"): boolean;
81
- emit(event: "error", err: Error): boolean;
82
- emit(event: "pause"): boolean;
83
- emit(event: "readable"): boolean;
84
- emit(event: "resume"): boolean;
85
- emit(event: string | symbol, ...args: any[]): boolean;
86
- on(event: "close", listener: () => void): any;
87
- on(event: "data", listener: (chunk: any) => void): any;
88
- on(event: "end", listener: () => void): any;
89
- on(event: "error", listener: (err: Error) => void): any;
90
- on(event: "pause", listener: () => void): any;
91
- on(event: "readable", listener: () => void): any;
92
- on(event: "resume", listener: () => void): any;
93
- on(event: string | symbol, listener: (...args: any[]) => void): any;
94
- once(event: "close", listener: () => void): any;
95
- once(event: "data", listener: (chunk: any) => void): any;
96
- once(event: "end", listener: () => void): any;
97
- once(event: "error", listener: (err: Error) => void): any;
98
- once(event: "pause", listener: () => void): any;
99
- once(event: "readable", listener: () => void): any;
100
- once(event: "resume", listener: () => void): any;
101
- once(event: string | symbol, listener: (...args: any[]) => void): any;
102
- prependListener(event: "close", listener: () => void): any;
103
- prependListener(event: "data", listener: (chunk: any) => void): any;
104
- prependListener(event: "end", listener: () => void): any;
105
- prependListener(event: "error", listener: (err: Error) => void): any;
106
- prependListener(event: "pause", listener: () => void): any;
107
- prependListener(event: "readable", listener: () => void): any;
108
- prependListener(event: "resume", listener: () => void): any;
109
- prependListener(event: string | symbol, listener: (...args: any[]) => void): any;
110
- prependOnceListener(event: "close", listener: () => void): any;
111
- prependOnceListener(event: "data", listener: (chunk: any) => void): any;
112
- prependOnceListener(event: "end", listener: () => void): any;
113
- prependOnceListener(event: "error", listener: (err: Error) => void): any;
114
- prependOnceListener(event: "pause", listener: () => void): any;
115
- prependOnceListener(event: "readable", listener: () => void): any;
116
- prependOnceListener(event: "resume", listener: () => void): any;
117
- prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): any;
118
- removeListener(event: "close", listener: () => void): any;
119
- removeListener(event: "data", listener: (chunk: any) => void): any;
120
- removeListener(event: "end", listener: () => void): any;
121
- removeListener(event: "error", listener: (err: Error) => void): any;
122
- removeListener(event: "pause", listener: () => void): any;
123
- removeListener(event: "readable", listener: () => void): any;
124
- removeListener(event: "resume", listener: () => void): any;
125
- removeListener(event: string | symbol, listener: (...args: any[]) => void): any;
126
- [Symbol.asyncIterator](): AsyncIterableIterator<any>;
127
- pipe<T extends NodeJS.WritableStream>(destination: T, options?: {
128
- end?: boolean | undefined;
129
- } | undefined): T;
130
- off(event: string | symbol, listener: (...args: any[]) => void): any;
131
- removeAllListeners(event?: string | symbol | undefined): any;
132
- setMaxListeners(n: number): any;
133
- getMaxListeners(): number;
134
- listeners(event: string | symbol): Function[];
135
- rawListeners(event: string | symbol): Function[];
136
- listenerCount(event: string | symbol): number;
137
- eventNames(): (string | symbol)[];
138
- };
139
- from(iterable: Iterable<any> | AsyncIterable<any>, options?: import("stream").ReadableOptions | undefined): import("stream").Readable;
140
- finished: typeof import("stream").finished;
141
- pipeline: typeof import("stream").pipeline;
142
- Stream: typeof import("stream").Stream;
143
- Readable: typeof import("stream").Readable;
144
- Writable: typeof import("stream").Writable;
145
- Duplex: typeof Duplex;
146
- Transform: typeof import("stream").Transform;
147
- PassThrough: typeof import("stream").PassThrough;
148
- listenerCount(emitter: import("events").EventEmitter, event: string | symbol): number;
149
- defaultMaxListeners: number;
150
- readonly errorMonitor: unique symbol;
151
- };
152
- export = _default;
2
+ import { Duplex } from 'readable-stream';
3
+ import { Runtime } from 'webextension-polyfill';
4
+ declare type Log = (data: unknown, out: boolean) => void;
5
+ export default class PortDuplexStream extends Duplex {
6
+ private _port;
7
+ private _log;
8
+ /**
9
+ * @param port - An instance of WebExtensions Runtime.Port. See:
10
+ * {@link https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/Port}
11
+ */
12
+ constructor(port: Runtime.Port);
13
+ /**
14
+ * Callback triggered when a message is received from
15
+ * the remote Port associated with this Stream.
16
+ *
17
+ * @param msg - Payload from the onMessage listener of the port
18
+ */
19
+ private _onMessage;
20
+ /**
21
+ * Callback triggered when the remote Port associated with this Stream
22
+ * disconnects.
23
+ */
24
+ private _onDisconnect;
25
+ /**
26
+ * Explicitly sets read operations to a no-op.
27
+ */
28
+ _read(): void;
29
+ /**
30
+ * Called internally when data should be written to this writable stream.
31
+ *
32
+ * @param msg - Arbitrary object to write
33
+ * @param encoding - Encoding to use when writing payload
34
+ * @param cb - Called when writing is complete or an error occurs
35
+ */
36
+ _write(msg: unknown, _encoding: BufferEncoding, cb: (error?: Error | null) => void): void;
37
+ /**
38
+ * Call to set a custom logger for incoming/outgoing messages
39
+ *
40
+ * @param log - the logger function
41
+ */
42
+ _setLogger(log: Log): void;
43
+ }
44
+ export {};
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
- const stream_1 = require("stream");
3
- module.exports = class PortDuplexStream extends stream_1.Duplex {
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const readable_stream_1 = require("readable-stream");
4
+ class PortDuplexStream extends readable_stream_1.Duplex {
4
5
  /**
5
6
  * @param port - An instance of WebExtensions Runtime.Port. See:
6
7
  * {@link https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/Port}
@@ -10,6 +11,7 @@ module.exports = class PortDuplexStream extends stream_1.Duplex {
10
11
  this._port = port;
11
12
  this._port.onMessage.addListener((msg) => this._onMessage(msg));
12
13
  this._port.onDisconnect.addListener(() => this._onDisconnect());
14
+ this._log = () => null;
13
15
  }
14
16
  /**
15
17
  * Callback triggered when a message is received from
@@ -20,9 +22,11 @@ module.exports = class PortDuplexStream extends stream_1.Duplex {
20
22
  _onMessage(msg) {
21
23
  if (Buffer.isBuffer(msg)) {
22
24
  const data = Buffer.from(msg);
25
+ this._log(data, false);
23
26
  this.push(data);
24
27
  }
25
28
  else {
29
+ this._log(msg, false);
26
30
  this.push(msg);
27
31
  }
28
32
  }
@@ -51,9 +55,11 @@ module.exports = class PortDuplexStream extends stream_1.Duplex {
51
55
  if (Buffer.isBuffer(msg)) {
52
56
  const data = msg.toJSON();
53
57
  data._isBuffer = true;
58
+ this._log(data, true);
54
59
  this._port.postMessage(data);
55
60
  }
56
61
  else {
62
+ this._log(msg, true);
57
63
  this._port.postMessage(msg);
58
64
  }
59
65
  }
@@ -62,5 +68,14 @@ module.exports = class PortDuplexStream extends stream_1.Duplex {
62
68
  }
63
69
  return cb();
64
70
  }
65
- };
71
+ /**
72
+ * Call to set a custom logger for incoming/outgoing messages
73
+ *
74
+ * @param log - the logger function
75
+ */
76
+ _setLogger(log) {
77
+ this._log = log;
78
+ }
79
+ }
80
+ exports.default = PortDuplexStream;
66
81
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,mCAAgC;AAGhC,iBAAS,MAAM,gBAAiB,SAAQ,eAAM;IAG5C;;;OAGG;IACH,YAAY,IAAkB;QAC5B,KAAK,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,GAAY,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QACzE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IAClE,CAAC;IAED;;;;;OAKG;IACK,UAAU,CAAC,GAAY;QAC7B,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACxB,MAAM,IAAI,GAAW,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACjB;aAAM;YACL,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAChB;IACH,CAAC;IAED;;;OAGG;IACK,aAAa;QACnB,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CACJ,GAAY,EACZ,SAAyB,EACzB,EAAkC;QAElC,IAAI;YACF,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACxB,MAAM,IAAI,GAA4B,GAAG,CAAC,MAAM,EAAE,CAAC;gBACnD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aAC9B;iBAAM;gBACL,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;aAC7B;SACF;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,EAAE,CAAC,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;SACzD;QACD,OAAO,EAAE,EAAE,CAAC;IACd,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAAA,qDAAyC;AAKzC,MAAqB,gBAAiB,SAAQ,wBAAM;IAKlD;;;OAGG;IACH,YAAY,IAAkB;QAC5B,KAAK,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,GAAY,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QACzE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACK,UAAU,CAAC,GAAY;QAC7B,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACxB,MAAM,IAAI,GAAW,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACjB;aAAM;YACL,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAChB;IACH,CAAC;IAED;;;OAGG;IACK,aAAa;QACnB,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CACJ,GAAY,EACZ,SAAyB,EACzB,EAAkC;QAElC,IAAI;YACF,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACxB,MAAM,IAAI,GAA4B,GAAG,CAAC,MAAM,EAAE,CAAC;gBACnD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACtB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aAC9B;iBAAM;gBACL,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBACrB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;aAC7B;SACF;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,EAAE,CAAC,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;SACzD;QACD,OAAO,EAAE,EAAE,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,GAAQ;QACjB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;IAClB,CAAC;CACF;AArFD,mCAqFC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "extension-port-stream",
3
- "version": "2.0.1",
3
+ "version": "3.0.0",
4
4
  "description": "A module for creating a node style stream over a WebExtension port object.",
5
5
  "main": "dist/index.js",
6
6
  "engines": {
@@ -10,14 +10,15 @@
10
10
  "build": "rm -rf ./dist && tsc --project .",
11
11
  "lint": "eslint . --ext ts,js,json",
12
12
  "lint:fix": "yarn lint --fix",
13
- "test": "echo \"Error: no test specified\" && exit 1"
13
+ "test": "echo \"Error: no test specified\" && exit 1",
14
+ "prepublishOnly": "yarn build && yarn lint"
14
15
  },
15
16
  "files": [
16
17
  "dist/"
17
18
  ],
18
19
  "repository": {
19
20
  "type": "git",
20
- "url": "git+ssh://git@github.com/MetaMask/extension-port-stream.git"
21
+ "url": "https://git@github.com/MetaMask/extension-port-stream"
21
22
  },
22
23
  "keywords": [
23
24
  "WebExtension",
@@ -30,11 +31,14 @@
30
31
  },
31
32
  "homepage": "https://github.com/MetaMask/extension-port-stream#readme",
32
33
  "dependencies": {
33
- "webextension-polyfill-ts": "^0.22.0"
34
+ "readable-stream": "^3.6.2 || ^4.4.2",
35
+ "webextension-polyfill": ">=0.10.0 <1.0"
34
36
  },
35
37
  "devDependencies": {
36
38
  "@metamask/eslint-config": "^4.1.0",
39
+ "@types/readable-stream": "4.0.0",
37
40
  "@types/node": "14.14.7",
41
+ "@types/webextension-polyfill": ">=0.10.0 <1.0",
38
42
  "@typescript-eslint/eslint-plugin": "^4.8.1",
39
43
  "@typescript-eslint/parser": "^4.8.1",
40
44
  "eslint": "^7.13.0",