Commit Graph

122 Commits

Author SHA1 Message Date
Nikolay Vitkov
89ff872120
chore: Update CI file to use new set method (#9389)
Closes #9373,
Fixes #9296
2022-12-09 10:49:53 +01:00
Thibaud Colas
afc75884d7 docs: fix documentation typo in Page.waitForSelector optional visible parameter (#9381)
**What kind of change does this PR introduce?**

Typo fix in the documentation

**Did you add tests for your changes?**

No

**If relevant, did you update the documentation?**

N/A

**Summary**

I spotted the `Visible` parameter had an uppercase `V` in the [Remarks
section of the Page.waitForSelector API
documentation](https://pptr.dev/api/puppeteer.page.waitforselector#remarks).
Updated this to the lowercase `v` in the relevant places (source,
documentation, versioned version of the doc page).

While doing this, I also spotted there was an extra space in `are :` in
the sentence above – so changed that as well.

**Does this PR introduce a breaking change?**

No

**Other information**

I’ve confirmed the parameter is spelled correctly on
https://pptr.dev/api/puppeteer.waitforselectoroptions. I’m not sure why
the documentation for those properties is in two places with slightly
different wording – but to me it felt useful to see this directly on the
method’s API docs.
2022-12-08 13:59:18 +01:00
release-please[bot]
931d4fced5
chore: release main (#9322)
🤖 I have created a release *beep* *boop*
---


<details><summary>puppeteer: 19.4.0</summary>

##
[19.4.0](https://github.com/puppeteer/puppeteer/compare/puppeteer-v19.3.0...puppeteer-v19.4.0)
(2022-12-07)


### Features

* **chromium:** roll to Chromium 109.0.5412.0 (r1069273)
([#9364](https://github.com/puppeteer/puppeteer/issues/9364))
([1875da6](1875da6191)),
closes [#9233](https://github.com/puppeteer/puppeteer/issues/9233)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * puppeteer-core bumped from 19.3.0 to 19.4.0
</details>

<details><summary>puppeteer-core: 19.4.0</summary>

##
[19.4.0](https://github.com/puppeteer/puppeteer/compare/puppeteer-core-v19.3.0...puppeteer-core-v19.4.0)
(2022-12-07)


### Features

* ability to send headers via ws connection to browser in node.js
environment
([#9314](https://github.com/puppeteer/puppeteer/issues/9314))
([937fffa](937fffaedc)),
closes [#7218](https://github.com/puppeteer/puppeteer/issues/7218)
* **chromium:** roll to Chromium 109.0.5412.0 (r1069273)
([#9364](https://github.com/puppeteer/puppeteer/issues/9364))
([1875da6](1875da6191)),
closes [#9233](https://github.com/puppeteer/puppeteer/issues/9233)
* **puppeteer-core:** keydown supports commands
([#9357](https://github.com/puppeteer/puppeteer/issues/9357))
([b7ebc5d](b7ebc5d9bb))


### Bug Fixes

* **puppeteer-core:** avoid type instantiation errors
([#9370](https://github.com/puppeteer/puppeteer/issues/9370))
([17f31a9](17f31a9ee4)),
closes [#9369](https://github.com/puppeteer/puppeteer/issues/9369)
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
2022-12-07 19:35:29 +01:00
Nikolay Vitkov
1875da6191
feat(chromium): roll to Chromium 109.0.5412.0 (r1069273) (#9364)
Closes #9233
2022-12-07 14:54:00 +01:00
Robin Richtsfeld
1501edefa8
docs(requestinterception): remove outdated note (#9358)
See #7304 @jschfflr Seems like we missed some
Thanks to @chrismdd for spotting this
2022-12-07 07:33:27 +00:00
Alex Rudenko
17f31a9ee4
fix(puppeteer-core): avoid type instantiation errors (#9370)
Using the accumulator allows enabling the tail-recursion optimization in
the TypeScript compiler.

Closes #9369
2022-12-06 19:21:08 +01:00
Nikolay Vitkov
51d75a0a50
chore(ng-schematics): Use WireIt for builds and tests (#9356)
**What kind of change does this PR introduce?**

It moves all the `ng-schematics` commands to WireIt

**Did you add tests for your changes?**

N/A

**Summary**

We want all our packages to use the same processes to build and test.
This also allows us to have better build times and also watch mode 👀.

**Does this PR introduce a breaking change?**

No

**Other information**
2022-12-05 10:35:31 +01:00
Junyan
b7ebc5d9bb
feat(puppeteer-core): keydown supports commands (#9357)
Issue: #1313

<!-- Thanks for submitting a pull request! Please provide enough
information so that others can review your pull request. -->

**What kind of change does this PR introduce?**

Feature.

**Did you add tests for your changes?**

Yes.

**If relevant, did you update the documentation?**

Yes.

**Summary**

Supports keyboard shotcuts on MacOS. See Chrome Devtools Protocol
document:
https://chromedevtools.github.io/devtools-protocol/tot/Input/#method-dispatchKeyEvent.
2022-12-03 11:23:47 +01:00
Alex Rudenko
3cdd5d8292
chore: fix build deps (#9344) 2022-11-30 10:46:46 +01:00
Alex Rudenko
f3c87dcdb7
chore: upgrade mitt (#9340) 2022-11-29 19:50:58 +00:00
Alex Rudenko
e8c1d56845
chore: import BiDi impl only if the user opts in (#9335) 2022-11-29 15:18:40 +01:00
dependabot[bot]
385d27d0cd
chore(deps): Bump cosmiconfig from 7.0.1 to 8.0.0 (#9319)
Bumps [cosmiconfig](https://github.com/davidtheclark/cosmiconfig) from
7.0.1 to 8.0.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/davidtheclark/cosmiconfig/blob/main/CHANGELOG.md">cosmiconfig's
changelog</a>.</em></p>
<blockquote>
<h2>8.0.0</h2>
<p><strong>No major breaking changes!</strong> We dropped support for
Node 10 and 12 -- which you're probably not using. And we swapped out
the YAML parser -- which you probably won't notice.</p>
<ul>
<li><strong>Breaking change:</strong> Drop support for Node 10 and
12.</li>
<li><strong>Breaking change:</strong> Use npm package <a
href="https://www.npmjs.com/package/js-yaml">js-yaml</a> to parse YAML
instead of npm package <a
href="https://www.npmjs.com/package/yaml">yaml</a>.</li>
<li>Added: Loader errors now include the path of the file that was tried
to be loaded.</li>
</ul>
<h2>7.1.0</h2>
<ul>
<li>Added: Additional default <code>searchPlaces</code> within a .config
subdirectory (without leading dot in the file name)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/davidtheclark/cosmiconfig/commits">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~d-fischer">d-fischer</a>, a new releaser
for cosmiconfig since your current version.</p>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cosmiconfig&package-manager=npm_and_yarn&previous-version=7.0.1&new-version=8.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-28 10:06:48 +01:00
dependabot[bot]
7adfff0d3f
chore(deps): Bump @angular-devkit/core from 14.2.7 to 15.0.1 (#9318)
Bumps [@angular-devkit/core](https://github.com/angular/angular-cli)
from 14.2.7 to 15.0.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/angular/angular-cli/releases"><code>@​angular-devkit/core</code>'s
releases</a>.</em></p>
<blockquote>
<h2>v15.0.1</h2>
<p><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h1>15.0.1 (2022-11-23)</h1>
<h3><code>@​schematics/angular</code></h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="48426852b0"><img
src="https://img.shields.io/badge/48426852b-fix-green" alt="fix -
48426852b" /></a></td>
<td>show warning when a TS Config is not found during migrations</td>
</tr>
</tbody>
</table>
<h3><code>@​angular/cli</code></h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="eda96def48"><img
src="https://img.shields.io/badge/eda96def4-fix-green" alt="fix -
eda96def4" /></a></td>
<td>use global version of the CLI when running <code>ng new</code></td>
</tr>
</tbody>
</table>
<h3><code>@​angular-devkit/build-angular</code></h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="2af32fd3a9"><img
src="https://img.shields.io/badge/2af32fd3a-fix-green" alt="fix -
2af32fd3a" /></a></td>
<td>hide loader paths in webpack warnings</td>
</tr>
<tr>
<td><a
href="19f5cc746e"><img
src="https://img.shields.io/badge/19f5cc746-fix-green" alt="fix -
19f5cc746" /></a></td>
<td>improve package deep import Sass index resolution in esbuild
plugin</td>
</tr>
<tr>
<td><a
href="2220a907da"><img
src="https://img.shields.io/badge/2220a907d-fix-green" alt="fix -
2220a907d" /></a></td>
<td>use url function lexer to rebase Sass URLs</td>
</tr>
</tbody>
</table>
<h2>Special Thanks</h2>
<p>Alan Agius, Charles Lyding, Doug Parker, Joey Perrott and Piotr
Wysocki</p>
<h2>v15.0.0</h2>
<p><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h1>15.0.0 (2022-11-16)</h1>
<h2>Breaking Changes</h2>
<h3><code>@​angular/cli</code></h3>
<ul>
<li>The Angular CLI no longer supports <code>16.10.x</code>,
<code>16.11.x</code> and <code>16.12.x</code>. Current supported
versions of Node.js are <code>14.20.x</code>, <code>16.13.x</code> and
<code>18.10.x</code>.</li>
<li>Node.js versions older than 14.20 are no longer supported.</li>
<li>The 'path' option in schematics schema no longer has a special
meaning. Use 'workingDirectory' smart default provider should be used
instead.</li>
</ul>
<h3><code>@​schematics/angular</code></h3>
<ul>
<li>Removed unused<code>appDir</code> option from Universal and
App-Shell schematic. This option can safely be removed if present since
it no longer has effect.</li>
</ul>
<h3></h3>
<ul>
<li>
<p><code>analyticsSharing</code> option in the global angular
configuration has been
removed without replacement. This option was used to configure the
Angular CLI to access to your own users' CLI usage data.</p>
<p>If this option is used, it can be removed using <code>ng config
--global cli.analyticsSharing undefined</code>.</p>
</li>
<li>
<p>analytics APIs have been removed without replacement from
<code>@angular-devkit/core</code> and
<code>@angular-devkit/architect</code>.</p>
</li>
</ul>
<h3><code>@​angular-devkit/build-angular</code></h3>
<ul>
<li>
<p>TypeScript versions older than 4.8.2 are no longer supported.</p>
</li>
<li>
<p>The server builder <code>bundleDependencies</code> option has been
removed. This option was used pre Ivy. Currently, using this option is
unlikely to produce working server bundles.</p>
<p>The <code>externalDependencies</code> option can be used instead to
exclude specific node_module packages from the final bundle.</p>
</li>
<li>
<ul>
<li>Deprecated support for tilde import has been removed. Please update
the imports by removing the <code>~</code>.</li>
</ul>
<p>Before</p>
<pre lang="scss"><code>@import
&quot;~font-awesome/scss/font-awesome&quot;;
</code></pre>
<p>After</p>
<pre lang="scss"><code></code></pre>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/angular/angular-cli/blob/main/CHANGELOG.md"><code>@​angular-devkit/core</code>'s
changelog</a>.</em></p>
<blockquote>
<h1>15.0.1 (2022-11-23)</h1>
<h3><code>@​angular/cli</code></h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="eda96def48">eda96def4</a></td>
<td>fix</td>
<td>use global version of the CLI when running <code>ng new</code></td>
</tr>
</tbody>
</table>
<h3><code>@​schematics/angular</code></h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="48426852b0">48426852b</a></td>
<td>fix</td>
<td>show warning when a TS Config is not found during migrations</td>
</tr>
</tbody>
</table>
<h3><code>@​angular-devkit/build-angular</code></h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="2af32fd3a9">2af32fd3a</a></td>
<td>fix</td>
<td>hide loader paths in webpack warnings</td>
</tr>
<tr>
<td><a
href="19f5cc746e">19f5cc746</a></td>
<td>fix</td>
<td>improve package deep import Sass index resolution in esbuild
plugin</td>
</tr>
<tr>
<td><a
href="2220a907da">2220a907d</a></td>
<td>fix</td>
<td>use url function lexer to rebase Sass URLs</td>
</tr>
</tbody>
</table>
<h2>Special Thanks</h2>
<p>Alan Agius, Charles Lyding, Doug Parker, Joey Perrott and Piotr
Wysocki</p>
<!-- raw HTML omitted -->
<p><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h1>15.0.0 (2022-11-16)</h1>
<h2>Breaking Changes</h2>
<h3><code>@​angular/cli</code></h3>
<ul>
<li>The Angular CLI no longer supports <code>16.10.x</code>,
<code>16.11.x</code> and <code>16.12.x</code>. Current minimum versions
of Node.js are <code>14.20.0</code>, <code>16.13.0</code> and
<code>18.10.0</code>.</li>
<li>Node.js versions older than 14.20 are no longer supported.</li>
<li>The 'path' option in schematics schema no longer has a special
meaning. Use 'workingDirectory' smart default provider should be used
instead.</li>
</ul>
<h3><code>@​schematics/angular</code></h3>
<ul>
<li>Removed unused <code>appDir</code> option from Universal and
App-Shell schematic. This option can safely be removed if present since
it no longer has effect.</li>
</ul>
<h3></h3>
<ul>
<li>
<p><code>analyticsSharing</code> option in the global angular
configuration has been
removed without replacement. This option was used to configure the
Angular CLI to access to your own users' CLI usage data.</p>
<p>If this option is used, it can be removed using <code>ng config
--global cli.analyticsSharing undefined</code>.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="324f8da02b"><code>324f8da</code></a>
release: cut the v15.0.1 release</li>
<li><a
href="2af32fd3a9"><code>2af32fd</code></a>
fix(<code>@​angular-devkit/build-angular</code>): hide loader paths in
webpack warnings</li>
<li><a
href="2220a907da"><code>2220a90</code></a>
fix(<code>@​angular-devkit/build-angular</code>): use url function lexer
to rebase Sass URLs</li>
<li><a
href="fc0d9241c7"><code>fc0d924</code></a>
ci: update browser-tools</li>
<li><a
href="19f5cc746e"><code>19f5cc7</code></a>
fix(<code>@​angular-devkit/build-angular</code>): improve package deep
import Sass index re...</li>
<li><a
href="52f63b19b5"><code>52f63b1</code></a>
build: enable the ng-dev auth service</li>
<li><a
href="ba1f571dca"><code>ba1f571</code></a>
build: remove <code>regenerator-runtime</code> from dependencies</li>
<li><a
href="cc6cad7867"><code>cc6cad7</code></a>
build: enable the assistant-to-the-branch-manager github action</li>
<li><a
href="51d17d4d70"><code>51d17d4</code></a>
ci: fix update test to work when <code>@angular/cli</code> and
<code>@angular/core</code> majors di...</li>
<li><a
href="48426852b0"><code>4842685</code></a>
fix(<code>@​schematics/angular</code>): show warning when a TS Config is
not found during m...</li>
<li>Additional commits viewable in <a
href="https://github.com/angular/angular-cli/compare/14.2.7...15.0.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@angular-devkit/core&package-manager=npm_and_yarn&previous-version=14.2.7&new-version=15.0.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-28 10:05:46 +01:00
jrandolf
cb01c5c043
docs: remove comments on Page implementation (#9325)
This PR removes comments on CDPPage since they are redundant.
2022-11-24 13:10:29 +01:00
Dmitriy Dudkevich
937fffaedc
feat: ability to send headers via ws connection to browser in node.js environment (#9314)
**What kind of change does this PR introduce?**

I have browsers pool in some cloud. I want that only users with access
will be able to connect to them. So they must provide token through
headers. But puppeteer does not allow to send headers when connected to
browser by ws connection. So I added this feature.

Closes #7218
2022-11-24 11:00:03 +01:00
release-please[bot]
c4803e4a37
chore: release main (#9313)
🤖 I have created a release *beep* *boop*
---


<details><summary>ng-schematics: 0.1.0</summary>

## 0.1.0 (2022-11-23)


### Features

* **ng-schematics:** Release @puppeteer/ng-schematics
([#9244](https://github.com/puppeteer/puppeteer/issues/9244))
([be33929](be33929770))
</details>

<details><summary>puppeteer: 19.3.0</summary>

##
[19.3.0](https://github.com/puppeteer/puppeteer/compare/puppeteer-v19.2.2...puppeteer-v19.3.0)
(2022-11-23)


### Miscellaneous Chores

* **puppeteer:** Synchronize puppeteer versions


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * puppeteer-core bumped from 19.2.2 to 19.3.0
</details>

<details><summary>puppeteer-core: 19.3.0</summary>

##
[19.3.0](https://github.com/puppeteer/puppeteer/compare/puppeteer-core-v19.2.2...puppeteer-core-v19.3.0)
(2022-11-23)


### Features

* **puppeteer-core:** Infer element type from complex selector
([#9253](https://github.com/puppeteer/puppeteer/issues/9253))
([bef1061](bef1061c06))
* **puppeteer-core:** update Chrome launcher flags
([#9239](https://github.com/puppeteer/puppeteer/issues/9239))
([ae87bfc](ae87bfc2b4))


### Bug Fixes

* remove boundary conditions for visibility
([#9249](https://github.com/puppeteer/puppeteer/issues/9249))
([e003513](e003513c0c))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
2022-11-23 14:14:25 +01:00
Nikolay Vitkov
689a084251
chore(ng-schematics): Spawn server when running ng e2e (#9306)
**What kind of change does this PR introduce?**

Spawn own server when running `ng e2e`. Give user option to not replace
`ng e2e`.

**Did you add tests for your changes?**

Yes.

**If relevant, did you update the documentation?**

Yes, `ng-schematics` README.md updated.

**Summary**

When running `ng-schematics`'s `ng e2e` command spawns it's own server.
This way we remove the need of developers to run `ng server` separately
thus increasing ease of use in development and CI.

We want to support Protractor migration so we give the user the option
to opt out of replacing `ng e2e` so they can have a gradual migration.
(Note: There may be issues with folder conflicts, to be address in a PR
for adding better Migration support)

**Does this PR introduce a breaking change?**

Yes, as we don't check if required options are there before spawning the
server.

**Other information**

Co-authored-by: Alex Rudenko <OrKoN@users.noreply.github.com>
2022-11-23 13:10:03 +01:00
Joe Gomain Hoyes
bef1061c06
feat(puppeteer-core): Infer element type from complex selector (#9253)
**What kind of change does this PR introduce?**

Better type inference.

**Did you add tests for your changes?**

~Not yet.~ Yes.

**If relevant, did you update the documentation?**

Not yet.

**Summary**

<!-- Explain the **motivation** for making this change. What existing
problem does the pull request solve? -->
<!-- Try to link to an open issue for more information. -->
Currently methods that return an element handle, i.e. `.$`,
`.waitForSelector` attempt to infer the node element type from the
selector string. However, this only works when the selector is an exact
match of the element tag, i.e. a selector `"a"` would be inferred as
`HTMLAnchorElement` . And not when the selector is complex, i.e.
selectors `"a#some-id"`, `div > a`, `a:nth-child(2)` would all fallback
on `Element`.

This is due to simply looking up the the selector in
`HTMLElementTagNameMap` and `SVGElementTagNameMap` without any attempt
to parse the selector string.

This PR is an attempt to do so.

**Does this PR introduce a breaking change?**

<!-- If this PR introduces a breaking change, please describe the impact
and a migration path for existing applications. -->
This could break existing incorrect assertions using the `as` keyword.

**Other information**

~This PR introduces a dependency on the `type-fest` package.~

This PR is far from complete (no tests, no docs). Put out early for
feedback and discussion.

Co-authored-by: Alex Rudenko <OrKoN@users.noreply.github.com>
2022-11-23 10:59:23 +01:00
Nikolay Vitkov
16784fc8cb chore(ng-schematics): Update ng e2e to custom builder (#9300)
**What kind of change does this PR introduce?**

This replaces the default `ng e2e` with our custom builder. In the
feature it seem possible to remove the necessity of the user running the
server separately and run it from the builder - that will improve the
easy of use and CI of this schematic.

**Did you add tests for your changes?**

**If relevant, did you update the documentation?**

Yes - Updated `@puppeteer/ng-schematics` README.md

**Summary**

We want to not see the default `ng e2e` and we want to make it easier
for the user to run commands.
Angular Developer are likely to also use its' CLI.

**Does this PR introduce a breaking change?**

Yes. Users need to delete the default and initialize the schematics
again.

**Other information**
2022-11-22 19:52:29 +01:00
Guillaume Gomez
0a2d310e4e
docs: fix typo in Viewport fields (#9293)
The `deviceScalarFactor` field of `Viewport` is actually named
`deviceScaleFactor`.
2022-11-17 17:27:07 +01:00
Alex Rudenko
078d385671
chore(ng-schematics): publish v0.0.1 (#9290) 2022-11-17 10:22:53 +01:00
Nikolay Vitkov
be33929770
feat(ng-schematics): Release @puppeteer/ng-schematics (#9244)
**What kind of change does this PR introduce?**

Adds `@puppeteer/ng-schematics` to the list of packages to be published
to `npm`

**Did you add tests for your changes?**

Not relevant.

**If relevant, did you update the documentation?**

Not for in this PR.

**Summary**

We want to publish to `npm` so people can do `ng add
@puppeteer/ng-schematics` and use it with Angular CLI.

**Does this PR introduce a breaking change?**

No

**Other information**
2022-11-14 18:24:17 +01:00
Nikolay Vitkov
1b3dfeca98
chore: Update ng-schemactics README (#9269)
**What kind of change does this PR introduce?**

Updates the README for `@puppeteer/ng-schematics` with better
information. Fixes broken command
2022-11-14 15:18:03 +01:00
Nikolay Vitkov
57f7366eb8
chore: Add Node testing option in ng-schematics (#9266)
**What kind of change does this PR introduce?**

It lets Users create an schematic for Puppeteer in Angular project using
Node's new test runner.

**Did you add tests for your changes?**

Yes. Unit test for module.

**If relevant, did you update the documentation?**

No

**Summary**

**Does this PR introduce a breaking change?**

No

**Other information**
2022-11-14 12:57:42 +01:00
jrandolf
e003513c0c
fix: remove boundary conditions for visibility (#9249)
Fixed: https://github.com/puppeteer/puppeteer/issues/9232
2022-11-14 09:34:07 +01:00
Nikolay Vitkov
86abe68849
chore: Add Mocha option to ng-schematic (#9259)
**What kind of change does this PR introduce?**

Adds Mocha as option for `ng-schematics`

**Did you add tests for your changes?**

Yes

**If relevant, did you update the documentation?**

No

**Summary**

User want a simple solution for the Testing library of their choose 

**Does this PR introduce a breaking change?**

No

**Other information**
There are some improvements around the Babel that we can make so we
don't have duplicate code and files (In a Feature PR)
2022-11-14 09:30:49 +01:00
Nikolay Vitkov
1bbecb3bae
chore: Add Jest as a ng-schematics option (#9257)
**What kind of change does this PR introduce?**

Adds Jest in `ng-schematics`. So you can scaffold test with Jest instead
of Jasmine

**Did you add tests for your changes?**

Yes

**If relevant, did you update the documentation?**

No

**Summary**

Users can more easily integrate test with Puppeteer and their library of
choose.

**Does this PR introduce a breaking change?**

No

**Other information**
2022-11-11 14:38:52 +01:00
Alex Rudenko
30c6b13eec
chore: re-export all exports (#9241)
Adds index files to subfolders and removes generation of types.ts in
puppeteer-core.
2022-11-10 17:11:18 +01:00
Alex Rudenko
ae87bfc2b4
feat(puppeteer-core): update Chrome launcher flags (#9239)
This PR adds:
- `--disable-component-update`
- `--disable-features=MediaRouter`
- `--disable-features=OptimizationHints`

and removes `--disable-features=AvoidUnnecessaryBeforeUnloadCheckSync`.

See
https://github.com/GoogleChrome/chrome-launcher/blob/main/docs/chrome-flags-for-tools.md
2022-11-10 11:43:37 +01:00
Nikolay Vitkov
3f2c0590f1
chore(ng-schematics): Add Angular Schematics (#9222)
**What kind of change does this PR introduce?**

It introduces schematic for Angular that integrate with its CLI.
First revision support Jasmine.

**Did you add tests for your changes?**

Added Unit tests for each scenario. 

**Summary**

The idea is to provide a an example for setting up Puppeteer and Angular
for testing user flows.

**Does this PR introduce a breaking change?**

No

**Other information**

For Feature PRs:

- Introduce CL for tests
- Hook up NPM package publishing
- Update README.md
2022-11-09 14:52:10 +01:00
release-please[bot]
30e5b1a58e
chore: release main (#9210) 2022-11-03 11:02:28 +01:00
jrandolf
29f47e2e15
fix: update missing product message (#9207)
This PR updates the error message printed when a browser cannot be
found.

Related: https://github.com/puppeteer/puppeteer/issues/9192,
https://github.com/puppeteer/puppeteer/issues/9162
2022-11-03 09:32:17 +01:00
jrandolf
a9bde8e726
chore: update puppeteer changelog (#9200) 2022-11-02 11:42:37 +01:00
release-please[bot]
990635abc9
chore: release main (#9184)
🤖 I have created a release *beep* *boop*
---


<details><summary>puppeteer: 19.2.1</summary>

### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * puppeteer-core bumped from 19.2.0 to ^19.2.1
</details>

<details><summary>puppeteer-core: 19.2.1</summary>

##
[19.2.1](https://github.com/puppeteer/puppeteer/compare/puppeteer-core-v19.2.0...puppeteer-core-v19.2.1)
(2022-10-28)


### Bug Fixes

* resolve navigation requests when request fails
([#9178](https://github.com/puppeteer/puppeteer/issues/9178))
([c11297b](c11297baa5)),
closes [#9175](https://github.com/puppeteer/puppeteer/issues/9175)
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
2022-11-02 10:54:37 +01:00
Alex Rudenko
c11297baa5
fix: resolve navigation requests when request fails (#9178)
#8768 fixes flakiness in handling navigations but it didn't account for
the fact that subsequent navigation requests could be aborted via the
request interception. In that case, the navigationResponseReceived
promise would never be resolved. This PR adds a listener for the failed
network requests and resolves the promise if the network request has
failed. Adding test coverage for this seems tricky, as the reproduction
depends on timing of the second navigation request.

Closes #9175
2022-10-28 09:56:06 +02:00
release-please[bot]
4ef83e0ee6
chore: release main (#9168) 2022-10-26 09:51:16 +02:00
dependabot[bot]
e19dd6c92c
chore(deps): bump ws from 8.9.0 to 8.10.0 (#9159) 2022-10-25 15:31:48 +02:00
Alex Rudenko
e78a4e89c2
feat(chromium): roll to Chromium 108.0.5351.0 (r1056772) (#9153) 2022-10-25 12:55:19 +02:00
release-please[bot]
fe4fcf6019
chore: release main (#9161) 2022-10-25 11:12:17 +02:00
jrandolf
2245d7d6ed
fix: skip browser download (#9160)
Fixed: https://github.com/puppeteer/puppeteer/issues/9158
2022-10-25 11:02:40 +02:00
Randolf
088c18c842 chore: update changelog 2022-10-25 10:26:33 +02:00
release-please[bot]
b020c5746d
chore: release main (#9156) 2022-10-24 16:31:12 +02:00
jrandolf
95d77c679c
chore: revert "chore: release main" (#9155)
Reverts puppeteer/puppeteer#9152
2022-10-24 16:23:24 +02:00
release-please[bot]
10b59a9a63
chore: release main (#9152) 2022-10-24 13:58:47 +02:00
jrandolf
f07ad2c661
fix: update documentation on configuring puppeteer (#9150)
This PR updates the docs regarding configuring puppeteer. In addition,
some changes have been made to the documentation generator to show
default values on the documentation site.

Also fixes: https://github.com/puppeteer/puppeteer/pull/9144
2022-10-24 09:07:05 +02:00
release-please[bot]
4bf338b26d
chore: release main (#9143) 2022-10-21 15:52:43 +02:00
jrandolf
ec201744f0
feat: use configuration files (#9140)
This PR adds configurations files to `puppeteer`'s methods for
configuration. Under the hood, `puppeteer` relies on
https://www.npmjs.com/package/cosmiconfig which resolves several formats
of configuration:

- a `puppeteer` property in package.json
- a `.puppeteerrc` file in JSON or YAML format
- a `.puppeteerrc.json`, `.puppeteerrc.yaml`, `.puppeteerrc.yml`,
`.puppeteerrc.js`, or `.puppeteerrc.cjs` file
- a `puppeteer.config.js` or `puppeteer.config.cjs` CommonJS module
exporting an object

Documentation will be added later.

Fixed: #9128
2022-10-21 15:09:21 +02:00
jrandolf
efcbc97c60
fix: update BrowserFetcher deprecation message (#9141) 2022-10-20 13:25:24 +02:00
Alex Rudenko
122778a1f8
feat: expose browser context id (#9134)
Closes #9132
2022-10-19 08:30:57 +00:00
Alex Rudenko
a19b270018
chore: extract BrowserContext to its own file (#9133) 2022-10-19 07:06:31 +00:00
release-please[bot]
dc66207f25
chore: release main (#9115) 2022-10-14 14:54:46 +02:00
jrandolf
8f4902eed9
chore: use test runner for installation tests (#9110) 2022-10-14 13:37:07 +02:00
jrandolf
6a05d8e9c1
chore: improve docs and scripts (#9107)
This PR updates some docs and scripts related to the recent changes in
the repository.
2022-10-13 18:55:11 +02:00
jrandolf
1fbc3c643f
chore: improve docs (#9105)
This PR makes some improvements to the documentation. It migrates
docker, debugging, and chrome extension documentation to the `guides`
folder and also updates some of the terminology.
2022-10-13 08:46:53 +00:00
Alex Rudenko
8acafe2fd9
chore: remove special handling for shared_worker (#9096)
With Chromium M107+ this should not be required anymore.
2022-10-11 12:18:06 +00:00
jrandolf
3df375baed
feat!: use ~/.cache/puppeteer for browser downloads (#9095) 2022-10-11 11:20:45 +00:00
jrandolf
7294dfe9c6
feat!: deprecate createBrowserFetcher in favor of BrowserFetcher (#9079)
This PR deprecates the `createBrowserFetcher` API and requests users to
import the `BrowserFetcher` directly.

Fixed: #8999
2022-10-10 17:51:18 +02:00
jrandolf
1847704789
fix!: refactor custom query handler API (#9078)
This PR removes the deprecated query selector API from the `puppeteer`
instance. Direct imports of the query selector API have also been
deprecated and users are now expected to use the static methods defined
on `Puppeteer`.
2022-10-10 16:01:09 +02:00
jrandolf
acbc59999b
fix: remove viewport conditions in waitForSelector (#9087)
This PR removes the viewport conditions in `waitForSelector`.

See discussion:
https://github.com/puppeteer/puppeteer/pull/8954#issuecomment-1272338883
2022-10-10 16:00:47 +02:00
jrandolf
87c08fd86a
fix!: remove puppeteer.devices in favor of KnownDevices (#9075)
This PR removes the deprecated `puppeteer.devices` in favor of a new
exported object `KnownDevices`. `devices` can also be exported, but has
been deprecated.
2022-10-10 15:30:12 +02:00
smithc
a032583b6c feat: add ability to collect JS code coverage at the function level (#9027) 2022-10-06 23:53:05 +02:00
jrandolf
41d0122b94 fix!: deprecate indirect network condition imports (#9074) 2022-10-06 23:52:58 +02:00
jrandolf
9f4f43a28b fix!: deprecate indirect error imports (#9072) 2022-10-06 23:52:51 +02:00
release-please[bot]
58ac7a687c
chore: release main (#9067) 2022-10-06 12:22:55 +02:00
jrandolf
9d13343d67
chore: update publish workflow (#9065)
This PR combines the publishing workflows for npm packages and Docker.
It also fixes an issue where multiple tags would trigger publishing all
packages.
2022-10-06 11:44:52 +02:00
jrandolf
416d56b033
chore: refactor utils (#9053)
This PR

- renames the `utils` folder to `tools` (follows internal practice),
- migrates the contents of `scripts` into `tools` and removes scripts.
2022-10-06 10:27:14 +02:00
jrandolf
9374e23d3d
fix: add README to package during prepack (#9057) 2022-10-06 09:13:54 +02:00
Egor Andreyuk
8f6b2c9b7c
fix: waitForRequest works with async predicate (#9058) 2022-10-05 20:46:34 +02:00
release-please[bot]
ee1272e65e
chore: release main (#9052) 2022-10-05 16:51:59 +02:00
jrandolf
d1b61cf108
chore: update generate sources (#9049) 2022-10-05 15:35:00 +02:00
jrandolf
f42336cf83
feat: separate puppeteer and puppeteer-core (#9023)
This PR moves the puppeteer source code into separate mono-repo packages:

- `puppeteer` and `puppeteer-core` are now separated into their own
packages.
- `puppeteer-core` has a new exports called `puppeteer-core/internal`
for internal usage.

Tests and various tools have been updated to accommodate the migration.
2022-10-05 14:17:03 +02:00
jrandolf
c0c7878adc
chore: initiate monorepo migration (#9022)
This PR starts the monorepo migrations as per
https://github.com/puppeteer/puppeteer/issues/8922. To scope migrations,
we are only moving the `testserver` into a separate package. Further
migrations will come later.
2022-09-29 10:08:55 +02:00