puppeteer-core
Advanced tools
Comparing version 13.5.2 to 13.6.0
@@ -392,3 +392,3 @@ /** | ||
* @param pageFunction - the function to be evaluated in the frame's context | ||
* @param args - additional arguments to pass to `pageFuncton` | ||
* @param args - additional arguments to pass to `pageFunction` | ||
*/ | ||
@@ -413,3 +413,3 @@ $eval<ReturnType>(selector: string, pageFunction: (element: Element, ...args: unknown[]) => ReturnType | Promise<ReturnType>, ...args: SerializableOrJSHandle[]): Promise<WrapElementHandle<ReturnType>>; | ||
* @param pageFunction - the function to be evaluated in the frame's context | ||
* @param args - additional arguments to pass to `pageFuncton` | ||
* @param args - additional arguments to pass to `pageFunction` | ||
*/ | ||
@@ -416,0 +416,0 @@ $$eval<ReturnType>(selector: string, pageFunction: (elements: Element[], ...args: unknown[]) => ReturnType | Promise<ReturnType>, ...args: SerializableOrJSHandle[]): Promise<WrapElementHandle<ReturnType>>; |
@@ -613,3 +613,3 @@ "use strict"; | ||
* @param pageFunction - the function to be evaluated in the frame's context | ||
* @param args - additional arguments to pass to `pageFuncton` | ||
* @param args - additional arguments to pass to `pageFunction` | ||
*/ | ||
@@ -636,3 +636,3 @@ async $eval(selector, pageFunction, ...args) { | ||
* @param pageFunction - the function to be evaluated in the frame's context | ||
* @param args - additional arguments to pass to `pageFuncton` | ||
* @param args - additional arguments to pass to `pageFunction` | ||
*/ | ||
@@ -639,0 +639,0 @@ async $$eval(selector, pageFunction, ...args) { |
@@ -409,4 +409,8 @@ "use strict"; | ||
if (response.headers) { | ||
for (const header of Object.keys(response.headers)) | ||
responseHeaders[header.toLowerCase()] = String(response.headers[header]); | ||
for (const header of Object.keys(response.headers)) { | ||
const value = response.headers[header]; | ||
responseHeaders[header.toLowerCase()] = Array.isArray(value) | ||
? value.map((item) => String(item)) | ||
: String(value); | ||
} | ||
} | ||
@@ -506,4 +510,7 @@ if (response.contentType) | ||
for (const name in headers) { | ||
if (!Object.is(headers[name], undefined)) | ||
result.push({ name, value: headers[name] + '' }); | ||
const value = headers[name]; | ||
if (!Object.is(value, undefined)) { | ||
const values = Array.isArray(value) ? value : [value]; | ||
result.push(...values.map((value) => ({ name, value: value + '' }))); | ||
} | ||
} | ||
@@ -510,0 +517,0 @@ return result; |
@@ -44,4 +44,5 @@ import { Protocol } from 'devtools-protocol'; | ||
queueEventGroup(networkRequestId: NetworkRequestId, event: QueuedEventGroup): void; | ||
forgetQueuedEventGroup(networkRequestId: NetworkRequestId): void; | ||
} | ||
export {}; | ||
//# sourceMappingURL=NetworkEventManager.d.ts.map |
@@ -96,3 +96,3 @@ "use strict"; | ||
forgetRequestWillBeSent(networkRequestId) { | ||
this._requestPausedMap.delete(networkRequestId); | ||
this._requestWillBeSentMap.delete(networkRequestId); | ||
} | ||
@@ -123,4 +123,7 @@ getRequestPaused(networkRequestId) { | ||
} | ||
forgetQueuedEventGroup(networkRequestId) { | ||
this._queuedEventGroupMap.delete(networkRequestId); | ||
} | ||
} | ||
exports.NetworkEventManager = NetworkEventManager; | ||
//# sourceMappingURL=NetworkEventManager.js.map |
@@ -351,2 +351,3 @@ "use strict"; | ||
if (queuedEvents) { | ||
this._networkEventManager.forgetQueuedEventGroup(event.requestId); | ||
this._emitResponseEvent(queuedEvents.responseReceivedEvent, event); | ||
@@ -353,0 +354,0 @@ if (queuedEvents.loadingFinishedEvent) { |
@@ -25,2 +25,3 @@ /** | ||
} | ||
declare type LowerCasePaperFormat = 'letter' | 'legal' | 'tabloid' | 'ledger' | 'a0' | 'a1' | 'a2' | 'a3' | 'a4' | 'a5' | 'a6'; | ||
/** | ||
@@ -56,3 +57,3 @@ * All the valid paper format types when printing a PDF. | ||
*/ | ||
export declare type PaperFormat = 'letter' | 'legal' | 'tabloid' | 'ledger' | 'a0' | 'a1' | 'a2' | 'a3' | 'a4' | 'a5' | 'a6'; | ||
export declare type PaperFormat = Uppercase<LowerCasePaperFormat> | Capitalize<LowerCasePaperFormat> | LowerCasePaperFormat; | ||
/** | ||
@@ -163,3 +164,4 @@ * Valid options to configure PDF generation via {@link Page.pdf}. | ||
*/ | ||
export declare const paperFormats: Record<PaperFormat, PaperFormatDimensions>; | ||
export declare const paperFormats: Record<LowerCasePaperFormat, PaperFormatDimensions>; | ||
export {}; | ||
//# sourceMappingURL=PDFOptions.d.ts.map |
@@ -161,3 +161,3 @@ "use strict"; | ||
return Promise.resolve(); | ||
if (this._isTempUserDataDir && this._product !== 'firefox') { | ||
if (this._isTempUserDataDir) { | ||
this.kill(); | ||
@@ -164,0 +164,0 @@ } |
@@ -158,3 +158,3 @@ "use strict"; | ||
'--disable-extensions', | ||
'--disable-features=Translate', | ||
'--disable-features=Translate,BackForwardCache', | ||
'--disable-hang-monitor', | ||
@@ -161,0 +161,0 @@ '--disable-ipc-flooding-protection', |
@@ -20,5 +20,5 @@ "use strict"; | ||
exports.PUPPETEER_REVISIONS = { | ||
chromium: '970485', | ||
chromium: '982053', | ||
firefox: 'latest', | ||
}; | ||
//# sourceMappingURL=revisions.js.map |
@@ -392,3 +392,3 @@ /** | ||
* @param pageFunction - the function to be evaluated in the frame's context | ||
* @param args - additional arguments to pass to `pageFuncton` | ||
* @param args - additional arguments to pass to `pageFunction` | ||
*/ | ||
@@ -413,3 +413,3 @@ $eval<ReturnType>(selector: string, pageFunction: (element: Element, ...args: unknown[]) => ReturnType | Promise<ReturnType>, ...args: SerializableOrJSHandle[]): Promise<WrapElementHandle<ReturnType>>; | ||
* @param pageFunction - the function to be evaluated in the frame's context | ||
* @param args - additional arguments to pass to `pageFuncton` | ||
* @param args - additional arguments to pass to `pageFunction` | ||
*/ | ||
@@ -416,0 +416,0 @@ $$eval<ReturnType>(selector: string, pageFunction: (elements: Element[], ...args: unknown[]) => ReturnType | Promise<ReturnType>, ...args: SerializableOrJSHandle[]): Promise<WrapElementHandle<ReturnType>>; |
@@ -609,3 +609,3 @@ /** | ||
* @param pageFunction - the function to be evaluated in the frame's context | ||
* @param args - additional arguments to pass to `pageFuncton` | ||
* @param args - additional arguments to pass to `pageFunction` | ||
*/ | ||
@@ -632,3 +632,3 @@ async $eval(selector, pageFunction, ...args) { | ||
* @param pageFunction - the function to be evaluated in the frame's context | ||
* @param args - additional arguments to pass to `pageFuncton` | ||
* @param args - additional arguments to pass to `pageFunction` | ||
*/ | ||
@@ -635,0 +635,0 @@ async $$eval(selector, pageFunction, ...args) { |
@@ -406,4 +406,8 @@ import { assert } from './assert.js'; | ||
if (response.headers) { | ||
for (const header of Object.keys(response.headers)) | ||
responseHeaders[header.toLowerCase()] = String(response.headers[header]); | ||
for (const header of Object.keys(response.headers)) { | ||
const value = response.headers[header]; | ||
responseHeaders[header.toLowerCase()] = Array.isArray(value) | ||
? value.map((item) => String(item)) | ||
: String(value); | ||
} | ||
} | ||
@@ -502,4 +506,7 @@ if (response.contentType) | ||
for (const name in headers) { | ||
if (!Object.is(headers[name], undefined)) | ||
result.push({ name, value: headers[name] + '' }); | ||
const value = headers[name]; | ||
if (!Object.is(value, undefined)) { | ||
const values = Array.isArray(value) ? value : [value]; | ||
result.push(...values.map((value) => ({ name, value: value + '' }))); | ||
} | ||
} | ||
@@ -506,0 +513,0 @@ return result; |
@@ -44,4 +44,5 @@ import { Protocol } from 'devtools-protocol'; | ||
queueEventGroup(networkRequestId: NetworkRequestId, event: QueuedEventGroup): void; | ||
forgetQueuedEventGroup(networkRequestId: NetworkRequestId): void; | ||
} | ||
export {}; | ||
//# sourceMappingURL=NetworkEventManager.d.ts.map |
@@ -93,3 +93,3 @@ /** | ||
forgetRequestWillBeSent(networkRequestId) { | ||
this._requestPausedMap.delete(networkRequestId); | ||
this._requestWillBeSentMap.delete(networkRequestId); | ||
} | ||
@@ -120,3 +120,6 @@ getRequestPaused(networkRequestId) { | ||
} | ||
forgetQueuedEventGroup(networkRequestId) { | ||
this._queuedEventGroupMap.delete(networkRequestId); | ||
} | ||
} | ||
//# sourceMappingURL=NetworkEventManager.js.map |
@@ -348,2 +348,3 @@ /** | ||
if (queuedEvents) { | ||
this._networkEventManager.forgetQueuedEventGroup(event.requestId); | ||
this._emitResponseEvent(queuedEvents.responseReceivedEvent, event); | ||
@@ -350,0 +351,0 @@ if (queuedEvents.loadingFinishedEvent) { |
@@ -25,2 +25,3 @@ /** | ||
} | ||
declare type LowerCasePaperFormat = 'letter' | 'legal' | 'tabloid' | 'ledger' | 'a0' | 'a1' | 'a2' | 'a3' | 'a4' | 'a5' | 'a6'; | ||
/** | ||
@@ -56,3 +57,3 @@ * All the valid paper format types when printing a PDF. | ||
*/ | ||
export declare type PaperFormat = 'letter' | 'legal' | 'tabloid' | 'ledger' | 'a0' | 'a1' | 'a2' | 'a3' | 'a4' | 'a5' | 'a6'; | ||
export declare type PaperFormat = Uppercase<LowerCasePaperFormat> | Capitalize<LowerCasePaperFormat> | LowerCasePaperFormat; | ||
/** | ||
@@ -163,3 +164,4 @@ * Valid options to configure PDF generation via {@link Page.pdf}. | ||
*/ | ||
export declare const paperFormats: Record<PaperFormat, PaperFormatDimensions>; | ||
export declare const paperFormats: Record<LowerCasePaperFormat, PaperFormatDimensions>; | ||
export {}; | ||
//# sourceMappingURL=PDFOptions.d.ts.map |
@@ -132,3 +132,3 @@ /** | ||
return Promise.resolve(); | ||
if (this._isTempUserDataDir && this._product !== 'firefox') { | ||
if (this._isTempUserDataDir) { | ||
this.kill(); | ||
@@ -135,0 +135,0 @@ } |
@@ -133,3 +133,3 @@ /** | ||
'--disable-extensions', | ||
'--disable-features=Translate', | ||
'--disable-features=Translate,BackForwardCache', | ||
'--disable-hang-monitor', | ||
@@ -136,0 +136,0 @@ '--disable-ipc-flooding-protection', |
@@ -17,5 +17,5 @@ /** | ||
export const PUPPETEER_REVISIONS = { | ||
chromium: '970485', | ||
chromium: '982053', | ||
firefox: 'latest', | ||
}; | ||
//# sourceMappingURL=revisions.js.map |
{ | ||
"name": "puppeteer-core", | ||
"version": "13.5.2", | ||
"version": "13.6.0", | ||
"description": "A high-level API to control headless Chrome over the DevTools Protocol", | ||
@@ -69,3 +69,3 @@ "keywords": [ | ||
"debug": "4.3.4", | ||
"devtools-protocol": "0.0.969999", | ||
"devtools-protocol": "0.0.981744", | ||
"extract-zip": "2.0.1", | ||
@@ -84,4 +84,4 @@ "https-proxy-agent": "5.0.0", | ||
"@commitlint/config-conventional": "16.2.1", | ||
"@microsoft/api-documenter": "7.16.0", | ||
"@microsoft/api-extractor": "7.19.5", | ||
"@microsoft/api-documenter": "7.17.2", | ||
"@microsoft/api-extractor": "7.20.1", | ||
"@types/debug": "4.1.7", | ||
@@ -97,13 +97,13 @@ "@types/mime": "2.0.3", | ||
"@types/ws": "8.5.3", | ||
"@typescript-eslint/eslint-plugin": "5.17.0", | ||
"@typescript-eslint/parser": "5.17.0", | ||
"@typescript-eslint/eslint-plugin": "5.18.0", | ||
"@typescript-eslint/parser": "5.18.0", | ||
"@web/test-runner": "0.13.27", | ||
"commonmark": "0.30.0", | ||
"cross-env": "7.0.3", | ||
"eslint": "8.12.0", | ||
"eslint": "8.13.0", | ||
"eslint-config-prettier": "8.5.0", | ||
"eslint-plugin-import": "2.25.4", | ||
"eslint-plugin-import": "2.26.0", | ||
"eslint-plugin-mocha": "10.0.3", | ||
"eslint-plugin-prettier": "4.0.0", | ||
"eslint-plugin-unicorn": "41.0.1", | ||
"eslint-plugin-unicorn": "42.0.0", | ||
"esprima": "4.0.1", | ||
@@ -119,3 +119,3 @@ "expect": "25.2.7", | ||
"pngjs": "6.0.0", | ||
"prettier": "2.6.1", | ||
"prettier": "2.6.2", | ||
"sinon": "13.0.1", | ||
@@ -122,0 +122,0 @@ "source-map-support": "0.5.21", |
@@ -11,3 +11,3 @@ # Puppeteer | ||
###### [API](https://github.com/puppeteer/puppeteer/blob/v13.5.2/docs/api.md) | [FAQ](#faq) | [Contributing](https://github.com/puppeteer/puppeteer/blob/main/CONTRIBUTING.md) | [Troubleshooting](https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md) | ||
###### [API](https://github.com/puppeteer/puppeteer/blob/v13.6.0/docs/api.md) | [FAQ](#faq) | [Contributing](https://github.com/puppeteer/puppeteer/blob/main/CONTRIBUTING.md) | [Troubleshooting](https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md) | ||
@@ -43,3 +43,3 @@ > Puppeteer is a Node library which provides a high-level API to control Chrome or Chromium over the [DevTools Protocol](https://chromedevtools.github.io/devtools-protocol/). Puppeteer runs [headless](https://developers.google.com/web/updates/2017/04/headless-chrome) by default, but can be configured to run full (non-headless) Chrome or Chromium. | ||
Note: When you install Puppeteer, it downloads a recent version of Chromium (~170MB Mac, ~282MB Linux, ~280MB Win) that is guaranteed to work with the API. To skip the download, download into another path, or download a different browser, see [Environment variables](https://github.com/puppeteer/puppeteer/blob/v13.5.2/docs/api.md#environment-variables). | ||
Note: When you install Puppeteer, it downloads a recent version of Chromium (~170MB Mac, ~282MB Linux, ~280MB Win) that is guaranteed to work with the API. To skip the download, download into another path, or download a different browser, see [Environment variables](https://github.com/puppeteer/puppeteer/blob/v13.6.0/docs/api.md#environment-variables). | ||
@@ -56,4 +56,3 @@ ### puppeteer-core | ||
`puppeteer-core` is intended to be a lightweight version of Puppeteer for launching an existing browser installation or for connecting to a remote one. Be sure that the version of puppeteer-core you install is compatible with the | ||
browser you intend to connect to. | ||
`puppeteer-core` is intended to be a lightweight version of Puppeteer for launching an existing browser installation or for connecting to a remote one. Be sure that the version of puppeteer-core you install is compatible with the browser you intend to connect to. | ||
@@ -70,3 +69,3 @@ See [puppeteer vs puppeteer-core](https://github.com/puppeteer/puppeteer/blob/main/docs/api.md#puppeteer-vs-puppeteer-core). | ||
Puppeteer will be familiar to people using other browser testing frameworks. You create an instance | ||
of `Browser`, open pages, and then manipulate them with [Puppeteer's API](https://github.com/puppeteer/puppeteer/blob/v13.5.2/docs/api.md#). | ||
of `Browser`, open pages, and then manipulate them with [Puppeteer's API](https://github.com/puppeteer/puppeteer/blob/v13.6.0/docs/api.md#). | ||
@@ -96,3 +95,3 @@ **Example** - navigating to https://example.com and saving a screenshot as _example.png_: | ||
Puppeteer sets an initial page size to 800×600px, which defines the screenshot size. The page size can be customized with [`Page.setViewport()`](https://github.com/puppeteer/puppeteer/blob/v13.5.2/docs/api.md#pagesetviewportviewport). | ||
Puppeteer sets an initial page size to 800×600px, which defines the screenshot size. The page size can be customized with [`Page.setViewport()`](https://github.com/puppeteer/puppeteer/blob/v13.6.0/docs/api.md#pagesetviewportviewport). | ||
@@ -124,3 +123,3 @@ **Example** - create a PDF. | ||
See [`Page.pdf()`](https://github.com/puppeteer/puppeteer/blob/v13.5.2/docs/api.md#pagepdfoptions) for more information about creating pdfs. | ||
See [`Page.pdf()`](https://github.com/puppeteer/puppeteer/blob/v13.6.0/docs/api.md#pagepdfoptions) for more information about creating pdfs. | ||
@@ -160,3 +159,3 @@ **Example** - evaluate script in the context of the page | ||
See [`Page.evaluate()`](https://github.com/puppeteer/puppeteer/blob/v13.5.2/docs/api.md#pageevaluatepagefunction-args) for more information on `evaluate` and related methods like `evaluateOnNewDocument` and `exposeFunction`. | ||
See [`Page.evaluate()`](https://github.com/puppeteer/puppeteer/blob/v13.6.0/docs/api.md#pageevaluatepagefunction-args) for more information on `evaluate` and related methods like `evaluateOnNewDocument` and `exposeFunction`. | ||
@@ -171,3 +170,3 @@ <!-- [END getstarted] --> | ||
Puppeteer launches Chromium in [headless mode](https://developers.google.com/web/updates/2017/04/headless-chrome). To launch a full version of Chromium, set the [`headless` option](https://github.com/puppeteer/puppeteer/blob/v13.5.2/docs/api.md#puppeteerlaunchoptions) when launching a browser: | ||
Puppeteer launches Chromium in [headless mode](https://developers.google.com/web/updates/2017/04/headless-chrome). To launch a full version of Chromium, set the [`headless` option](https://github.com/puppeteer/puppeteer/blob/v13.6.0/docs/api.md#puppeteerlaunchoptions) when launching a browser: | ||
@@ -188,3 +187,3 @@ ```js | ||
You can also use Puppeteer with Firefox Nightly (experimental support). See [`Puppeteer.launch()`](https://github.com/puppeteer/puppeteer/blob/v13.5.2/docs/api.md#puppeteerlaunchoptions) for more information. | ||
You can also use Puppeteer with Firefox Nightly (experimental support). See [`Puppeteer.launch()`](https://github.com/puppeteer/puppeteer/blob/v13.6.0/docs/api.md#puppeteerlaunchoptions) for more information. | ||
@@ -201,3 +200,3 @@ See [`this article`](https://www.howtogeek.com/202825/what%E2%80%99s-the-difference-between-chromium-and-chrome/) for a description of the differences between Chromium and Chrome. [`This article`](https://chromium.googlesource.com/chromium/src/+/refs/heads/main/docs/chromium_browser_vs_google_chrome.md) describes some differences for Linux users. | ||
- [API Documentation](https://github.com/puppeteer/puppeteer/blob/v13.5.2/docs/api.md) | ||
- [API Documentation](https://github.com/puppeteer/puppeteer/blob/v13.6.0/docs/api.md) | ||
- [Examples](https://github.com/puppeteer/puppeteer/tree/main/examples/) | ||
@@ -344,3 +343,3 @@ - [Community list of Puppeteer resources](https://github.com/transitive-bullshit/awesome-puppeteer) | ||
From Puppeteer v2.1.0 onwards you can specify [`puppeteer.launch({product: 'firefox'})`](https://github.com/puppeteer/puppeteer/blob/v13.5.2/docs/api.md#puppeteerlaunchoptions) to run your Puppeteer scripts in Firefox Nightly, without any additional custom patches. While [an older experiment](https://www.npmjs.com/package/puppeteer-firefox) required a patched version of Firefox, [the current approach](https://wiki.mozilla.org/Remote) works with “stock” Firefox. | ||
From Puppeteer v2.1.0 onwards you can specify [`puppeteer.launch({product: 'firefox'})`](https://github.com/puppeteer/puppeteer/blob/v13.6.0/docs/api.md#puppeteerlaunchoptions) to run your Puppeteer scripts in Firefox Nightly, without any additional custom patches. While [an older experiment](https://www.npmjs.com/package/puppeteer-firefox) required a patched version of Firefox, [the current approach](https://wiki.mozilla.org/Remote) works with “stock” Firefox. | ||
@@ -448,3 +447,3 @@ We will continue to collaborate with other browser vendors to bring Puppeteer support to browsers such as Safari. | ||
- Puppeteer is bundled with Chromium — not Chrome — and so by default, it inherits all of [Chromium's media-related limitations](https://www.chromium.org/audio-video). This means that Puppeteer does not support licensed formats such as AAC or H.264. (However, it is possible to force Puppeteer to use a separately-installed version Chrome instead of Chromium via the [`executablePath` option to `puppeteer.launch`](https://github.com/puppeteer/puppeteer/blob/v13.5.2/docs/api.md#puppeteerlaunchoptions). You should only use this configuration if you need an official release of Chrome that supports these media formats.) | ||
- Puppeteer is bundled with Chromium — not Chrome — and so by default, it inherits all of [Chromium's media-related limitations](https://www.chromium.org/audio-video). This means that Puppeteer does not support licensed formats such as AAC or H.264. (However, it is possible to force Puppeteer to use a separately-installed version Chrome instead of Chromium via the [`executablePath` option to `puppeteer.launch`](https://github.com/puppeteer/puppeteer/blob/v13.6.0/docs/api.md#puppeteerlaunchoptions). You should only use this configuration if you need an official release of Chrome that supports these media formats.) | ||
- Since Puppeteer (in all configurations) controls a desktop version of Chromium/Chrome, features that are only supported by the mobile version of Chrome are not supported. This means that Puppeteer [does not support HTTP Live Streaming (HLS)](https://caniuse.com/#feat=http-live-streaming). | ||
@@ -451,0 +450,0 @@ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
2979285
54418
474
+ Addeddevtools-protocol@0.0.981744(transitive)
- Removeddevtools-protocol@0.0.969999(transitive)
Updateddevtools-protocol@0.0.981744