Skip to content

deps(js-render): Bump the js-render-browser group across 1 directory with 2 updates - #12251

Closed
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/js-render-browser-2f76c12b78
Closed

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/js-render-browser-2f76c12b78

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Bumps the js-render-browser group with 2 updates in the / directory: esbuild and playwright.

Updates esbuild from 0.28.1 to 0.28.2

Release notes

Sourced from esbuild's releases.

v0.28.2

  • Fix tree shaking bug due to TypeScript import alias (#4507)

    This release fixes a bug that could cause esbuild to incorrectly tree-shake imports that are used in a TypeScript type alias under certain circumstances. Affected code uses a TypeScript-specific import assignment and looks something like this:

    import Base from './dep.js';
    import Alias = Base.SomeType;
  • Fix CSS minification bug involving & (#4497)

    This release fixes a bug where esbuild's CSS minifier incorrectly removed a & when it was unsafe to do so. Here is an example:

    /* Original code */
    .a .b {
      & .b:not(& .c) {
        color: red;
      }
    }
    /* Old output (with --minify) */
    .a .b{.b:not(& .c){color:red}}
    /* New output (with --minify) */
    .a .b{& .b:not(& .c){color:red}}

    This should match <span class="a"><span class="b"><span class="b">yes</span></span></span> but not <span class="a"><span class="b">no</span></span>. The old output incorrectly matched both.

  • Avoid overwriting input files without --allow-overwrite (#4484)

    For example: esbuild input.js --outfile=input.js tells esbuild to overwrite input.js with the output of running esbuild on it. This was supposed to already be prevented by default, but it accidentally regressed in version 0.17.0 and apparently didn't have any test coverage. The error message was being printed but the input file was still being overwritten. Oops.

    This release puts the original behavior back. With this release, esbuild should now actually avoid overwriting input files unless --allow-overwrite is explicitly present. This is done by not writing out any files when a build error is encountered.

  • Fix incorrect code generated when using top-level await (#4498)

    Previously esbuild could generate code containing a syntax error in complex scenarios involving top-level await used in a dependency cycle. The problem was a missing async on one or more module wrapper closures. With this release, esbuild now uses a fixed-point iteration algorithm to correctly annotate all dependencies in the cycle as needing an async module wrapper.

  • Fix a minification bug with lowered logical assignment operators (#4508)

    This release fixes a bug that could cause esbuild to generate incorrect code for logical assignment operators when lowering them to an older target environment. Specifically the lowering process requires duplicating the left-hand side, but esbuild incorrectly failed to count the duplicate as a new usage when the left-hand side is an identifier. That then caused the minifier to believe that the left-hand side was only used once and could attempt to incorrectly inline an initializer into the first usage. This bug has now been fixed:

    // Original code
    function foo() {
      let x
      bar(x ||= {})

... (truncated)

Changelog

Sourced from esbuild's changelog.

0.28.2

  • Fix tree shaking bug due to TypeScript import alias (#4507)

    This release fixes a bug that could cause esbuild to incorrectly tree-shake imports that are used in a TypeScript type alias under certain circumstances. Affected code uses a TypeScript-specific import assignment and looks something like this:

    import Base from './dep.js';
    import Alias = Base.SomeType;
  • Fix CSS minification bug involving & (#4497)

    This release fixes a bug where esbuild's CSS minifier incorrectly removed a & when it was unsafe to do so. Here is an example:

    /* Original code */
    .a .b {
      & .b:not(& .c) {
        color: red;
      }
    }
    /* Old output (with --minify) */
    .a .b{.b:not(& .c){color:red}}
    /* New output (with --minify) */
    .a .b{& .b:not(& .c){color:red}}

    This should match <span class="a"><span class="b"><span class="b">yes</span></span></span> but not <span class="a"><span class="b">no</span></span>. The old output incorrectly matched both.

  • Avoid overwriting input files without --allow-overwrite (#4484)

    For example: esbuild input.js --outfile=input.js tells esbuild to overwrite input.js with the output of running esbuild on it. This was supposed to already be prevented by default, but it accidentally regressed in version 0.17.0 and apparently didn't have any test coverage. The error message was being printed but the input file was still being overwritten. Oops.

    This release puts the original behavior back. With this release, esbuild should now actually avoid overwriting input files unless --allow-overwrite is explicitly present. This is done by not writing out any files when a build error is encountered.

  • Fix incorrect code generated when using top-level await (#4498)

    Previously esbuild could generate code containing a syntax error in complex scenarios involving top-level await used in a dependency cycle. The problem was a missing async on one or more module wrapper closures. With this release, esbuild now uses a fixed-point iteration algorithm to correctly annotate all dependencies in the cycle as needing an async module wrapper.

  • Fix a minification bug with lowered logical assignment operators (#4508)

    This release fixes a bug that could cause esbuild to generate incorrect code for logical assignment operators when lowering them to an older target environment. Specifically the lowering process requires duplicating the left-hand side, but esbuild incorrectly failed to count the duplicate as a new usage when the left-hand side is an identifier. That then caused the minifier to believe that the left-hand side was only used once and could attempt to incorrectly inline an initializer into the first usage. This bug has now been fixed:

    // Original code
    function foo() {
      let x

... (truncated)

Commits
  • 609683d publish 0.28.2 to npm
  • 11b1fe4 add to release notes
  • ab50d91 css: fix green/blue channel swap in oklch gamut mapping (#4488)
  • 04627b6 fix #4498: async TLA checks need a worklist
  • 5c15177 disable gopls in the go folder
  • fc2ee9b css: adjust parser to allow --foo: {...}
  • 209db54 release notes for css nesting bugfix
  • c625d31 fix #4497: preserve nested ampersands during minification (#4500)
  • 34474e2 better isolation of current part in js parser
  • 07f6e8c fix #4507: import assignment tree-shaking bug
  • Additional commits viewable in compare view

Updates playwright from 1.55.1 to 1.64.1

Release notes

Sourced from playwright's releases.

v1.64.1

Bug Fixes

  • #43247 [Bug]: _electron.launch intermittently loses a packaged app's first window since 1.64.0
  • #43242 [Regression]: Chromium 155+ aborts a preflighted cross-origin redirect whenever any route is registered (net::ERR_ABORTED)

v1.64.0

🧰 WebMCP

New page.webmcp and frame.webmcp give access to the tools that a page registers through the experimental WebMCP browser API, so you can test them like any other part of your app:

const browser = await chromium.launch({ args: ['--enable-features=WebMCP'] });
const page = await browser.newPage();
await page.goto('https://example.com');
for (const tool of await page.webmcp.tools())
console.log(tool.name, tool.description);
const result = await page.webmcp.callTool('add', { a: 2, b: 40 });
console.log(result.content[0].text); // "42"

Playwright MCP also supports WebMCP by default, with page-defined tools offered to the agent as webmcp_<tool>. Pass --no-webmcp to opt out.

playwright-cli exposes them as well:

playwright-cli webmcp-list
playwright-cli webmcp-call search_catalog --params '{"query":"cats"}'

🎬 Better videos

Videos can now be recorded at a custom frame rate, and the decorations for actions are styled with plain CSS:

// playwright.config.ts
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
video: {
mode: 'on',
size: { width: 1920, height: 1080 },
fps: 60,
show: {
actions: {
style: {
point: 'width: 20px; height: 20px; border-radius: 50%; background: red',
</tr></table>

... (truncated)

Commits
  • cfe490d cherry-pick(#43353): docs: release notes for v1.64 Python
  • 866cbb8 chore: mark v1.64.1 (#43354)
  • 1b29247 cherry-pick(#43250): fix(electron): do not drop windows that have not navigat...
  • 632d976 cherry-pick(#43249): fix(chromium): disable AvoidCorsURLLoaderRestartOnRedirect
  • 824d0c5 cherry-pick(#43217): chore(dotnet): fix async suffix of optional-arg overload...
  • 606ecd8 cherry-pick(#43192): fix(locators): parse locators the way the client API bui...
  • e4f872c cherry-pick(#43188): feat(api): expose asLocatorDescription via LocalUtils fo...
  • f6a439e cherry-pick(#43189): docs(webmcp): expose WebMCP to all languages
  • e2335c3 cherry-pick(#43174): fix(mcp): do not close the browser twice when the client...
  • d2a436e cherry-pick(#43163): Revert "fix(blob): do not remove existing reports from o...
  • Additional commits viewable in compare view
Maintainer changes

This version was pushed to npm by GitHub Actions, a new releaser for playwright since your current version.


@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update JavaScript code labels Oct 23, 2026
…with 2 updates

Bumps the js-render-browser group with 2 updates in the / directory: [esbuild](https://github.com/evanw/esbuild) and [playwright](https://github.com/microsoft/playwright).


Updates `esbuild` from 0.28.1 to 0.28.2
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](evanw/esbuild@v0.28.1...v0.28.2)

Updates `playwright` from 1.55.1 to 1.64.1
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](microsoft/playwright@v1.55.1...v1.64.1)

---
updated-dependencies:
- dependency-name: esbuild
  dependency-version: 0.28.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: js-render-browser
- dependency-name: playwright
  dependency-version: 1.64.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: js-render-browser
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot changed the title deps(js-render): Bump the js-render-browser group with 2 updates deps(js-render): Bump the js-render-browser group across 1 directory with 2 updates Oct 23, 2026
@dependabot
dependabot Bot force-pushed the dependabot/npm_and_yarn/js-render-browser-2f76c12b78 branch from 41572f6 to 570690e Compare October 23, 2026 10:17
MarkusNeusinger added a commit that referenced this pull request Oct 23, 2026
…#12259)

## Summary
- **Playwright 1.55.1 → 1.64.1** in the root `package.json` and
`package-lock.json`. GitHub's `ubuntu-latest` now resolves to Ubuntu
26.04 (image 20261012.163.1). Playwright 1.55.1 has no `ubuntu26.04-x64`
host platform, so `npx playwright install --with-deps chromium` in
`.github/actions/setup-node` failed (run 39938127853). Every
`impl-generate`/`impl-repair` run for chartjs, d3, echarts, highcharts
and muix died in setup. 1.64.1 ships the 26.04 download paths and apt
dependency list. The lock diff is playwright + playwright-core plus the
darwin-only `fsevents` optional entry that 1.64 no longer declares.
esbuild stays at 0.28.1. Integrity hashes match the registry. This also
aligns with the `playwright-core@1.64.1` pin that
`scripts/site-smoke.mjs` and `ci-image.yml` already use.
- **Ruff format fix no longer part of this PR.** This branch first
carried the two PEP 758 `except` lines that main's lint needed. #12260
landed the identical lines, and after merging main they collapsed, so
the diff is Playwright only.
- Supersedes Dependabot #12251 for the Playwright half; its esbuild
0.28.2 half is left to Dependabot.

## Plan
N/A

## Test plan
- [x] **The action's own steps on Ubuntu 26.04, in a container.**
`ubuntu:26.04` (26.04.1 LTS, resolute) with Node 22.23.3 (the action's
default `node-version: "22"`). Every `run:` step of
`.github/actions/setup-node/action.yml` ran verbatim against a minimal
checkout:
- **1.64.1:** `npm ci`, `npx playwright install --with-deps chromium`
(apt deps + Chrome for Testing 156.0.8078.4) and both smoke renders all
pass. The chartjs PNG and the MUI X React-path PNG are both 3200×1800.
- **1.55.1 (negative control):** the install fails with exactly the CI
error, `Error: ERROR: Playwright does not support chromium on
ubuntu26.04-x64`.
- [x] Render comparison: 1.55.1 (Chromium 140.0.7339.186) against 1.64.1
(Chromium 156.0.8078.4). Each harness was confirmed to launch its own
build. The sample is 17 catalogue snippets × 2 themes = 34 pairs,
rendered the way the pipeline calls the harness:
- chartjs: 4 snippets. d3: 3. echarts: 4. highcharts: 3. muix: 3. Six of
them are square-orientation.
- **All 34 pairs are pixel-identical:** 0.000 % of pixels differ and the
content bounding boxes match. Only the PNG encoding bytes differ.
- [x] **MUI X sample excluded two snippets.** Two sampled muix snippets
(`spiral-timeseries`, `biplot-pca`) import
`@mui/x-charts/ChartContainer`. MUI X 9.16 (#12243) no longer exports
that path, so both fail identically under BOTH Playwright versions. This
is the known #12243 blast radius, and the muix bulk regeneration covers
it. The muix sample therefore uses three snippets that still bundle.
- [x] `ruff check`, `ruff format --check`, `mypy api core`, `pytest
tests/unit tests/integration` (12715 passed) and `tools.changelog check`
are green locally.

## Known gaps
- **No PR check runs `.github/actions/setup-node`.** Only
`impl-generate.yml` and `impl-repair.yml` use it, and neither runs on
pull requests. A green PR therefore does not prove the install on the
real runner. The 26.04 container run above is the closest local proof:
same OS release, same Node major, same verbatim steps. The GitHub runner
image adds preinstalled software on top of that.
- **The real test is the first `impl-generate` run for a JavaScript
library after the merge.** The muix bulk-regeneration pilot will be that
run.
- **Steps after setup are also untested on 26.04.** No `impl-generate`
run has yet passed setup on the new image. Python, uv and the pngquant
apt install already pass there (run 39938127853, steps 9–13). Claude,
image processing and the GCS upload have not run on 26.04 yet.

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@dependabot @github

dependabot Bot commented on behalf of github Oct 23, 2026

Copy link
Copy Markdown
Contributor Author

Looks like these dependencies are updatable in another way, so this is no longer needed.

@dependabot dependabot Bot closed this Oct 23, 2026
@dependabot
dependabot Bot deleted the dependabot/npm_and_yarn/js-render-browser-2f76c12b78 branch October 23, 2026 13:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update JavaScript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants