Go to file
Giteabot aecb2585f0 fix(deps): update npm dependencies (#37753)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| @​codemirror/view | [`6.42.0` →
`6.42.1`](https://renovatebot.com/diffs/npm/@codemirror%2fview/6.42.0/6.42.1)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@codemirror%2fview/6.42.1?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@codemirror%2fview/6.42.0/6.42.1?slim=true)
|
| [@playwright/test](https://playwright.dev)
([source](https://redirect.github.com/microsoft/playwright)) | [`1.59.1`
→
`1.60.0`](https://renovatebot.com/diffs/npm/@playwright%2ftest/1.59.1/1.60.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@playwright%2ftest/1.60.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@playwright%2ftest/1.59.1/1.60.0?slim=true)
|
|
[@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`25.6.0` →
`25.7.0`](https://renovatebot.com/diffs/npm/@types%2fnode/25.6.0/25.7.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/25.7.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/25.6.0/25.7.0?slim=true)
|
|
[@typescript-eslint/parser](https://typescript-eslint.io/packages/parser)
([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser))
| [`8.59.2` →
`8.59.3`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/8.59.2/8.59.3)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fparser/8.59.3?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fparser/8.59.2/8.59.3?slim=true)
|
|
[@vitest/eslint-plugin](https://redirect.github.com/vitest-dev/eslint-plugin-vitest)
| [`1.6.16` →
`1.6.17`](https://renovatebot.com/diffs/npm/@vitest%2feslint-plugin/1.6.16/1.6.17)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2feslint-plugin/1.6.17?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2feslint-plugin/1.6.16/1.6.17?slim=true)
|
|
[eslint-plugin-de-morgan](https://redirect.github.com/azat-io/eslint-plugin-de-morgan)
| [`2.1.1` →
`2.1.2`](https://renovatebot.com/diffs/npm/eslint-plugin-de-morgan/2.1.1/2.1.2)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-de-morgan/2.1.2?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-de-morgan/2.1.1/2.1.2?slim=true)
|
|
[eslint-plugin-vue-scoped-css](https://future-architect.github.io/eslint-plugin-vue-scoped-css/)
([source](https://redirect.github.com/future-architect/eslint-plugin-vue-scoped-css))
| [`3.0.0` →
`3.1.0`](https://renovatebot.com/diffs/npm/eslint-plugin-vue-scoped-css/3.0.0/3.1.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-vue-scoped-css/3.1.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-vue-scoped-css/3.0.0/3.1.0?slim=true)
|
| [pnpm](https://pnpm.io)
([source](https://redirect.github.com/pnpm/pnpm/tree/HEAD/pnpm)) |
[`11.0.8` →
`11.1.1`](https://renovatebot.com/diffs/npm/pnpm/11.0.8/11.1.1) |
![age](https://developer.mend.io/api/mc/badges/age/npm/pnpm/11.1.1?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pnpm/11.0.8/11.1.1?slim=true)
|
|
[rolldown-license-plugin](https://redirect.github.com/silverwind/rolldown-license-plugin)
| [`3.0.4` →
`3.0.5`](https://renovatebot.com/diffs/npm/rolldown-license-plugin/3.0.4/3.0.5)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/rolldown-license-plugin/3.0.5?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/rolldown-license-plugin/3.0.4/3.0.5?slim=true)
|
| [swagger-ui-dist](https://redirect.github.com/swagger-api/swagger-ui)
| [`5.32.5` →
`5.32.6`](https://renovatebot.com/diffs/npm/swagger-ui-dist/5.32.5/5.32.6)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/swagger-ui-dist/5.32.6?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/swagger-ui-dist/5.32.5/5.32.6?slim=true)
|
|
[typescript-eslint](https://typescript-eslint.io/packages/typescript-eslint)
([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint))
| [`8.59.2` →
`8.59.3`](https://renovatebot.com/diffs/npm/typescript-eslint/8.59.2/8.59.3)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/typescript-eslint/8.59.3?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typescript-eslint/8.59.2/8.59.3?slim=true)
|
| [updates](https://redirect.github.com/silverwind/updates) | [`17.16.9`
→
`17.16.11`](https://renovatebot.com/diffs/npm/updates/17.16.9/17.16.11)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/updates/17.16.11?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/updates/17.16.9/17.16.11?slim=true)
|
| [vite](https://vite.dev)
([source](https://redirect.github.com/vitejs/vite/tree/HEAD/packages/vite))
| [`8.0.10` →
`8.0.12`](https://renovatebot.com/diffs/npm/vite/8.0.10/8.0.12) |
![age](https://developer.mend.io/api/mc/badges/age/npm/vite/8.0.12?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/8.0.10/8.0.12?slim=true)
|
| [vitest](https://vitest.dev)
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest))
| [`4.1.5` →
`4.1.6`](https://renovatebot.com/diffs/npm/vitest/4.1.5/4.1.6) |
![age](https://developer.mend.io/api/mc/badges/age/npm/vitest/4.1.6?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitest/4.1.5/4.1.6?slim=true)
|

---

### Release Notes

<details>
<summary>microsoft/playwright (@&#8203;playwright/test)</summary>

###
[`v1.60.0`](https://redirect.github.com/microsoft/playwright/releases/tag/v1.60.0)

[Compare
Source](https://redirect.github.com/microsoft/playwright/compare/v1.59.1...v1.60.0)

#### 🌐 HAR recording on Tracing


[tracing.startHar()](https://playwright.dev/docs/api/class-tracing#tracing-start-har)
/
[tracing.stopHar()](https://playwright.dev/docs/api/class-tracing#tracing-stop-har)
expose HAR recording as a first-class tracing API, with the same
`content`, `mode` and `urlFilter` options as `recordHar`. The returned
[Disposable](https://playwright.dev/docs/api/class-disposable) makes it
easy to scope a recording with `await using`:

```js
await using har = await context.tracing.startHar('trace.har');
const page = await context.newPage();
await page.goto('https://playwright.dev');
// HAR is finalized when `har` goes out of scope.
```

#### 🪝 Drop API

New
[locator.drop()](https://playwright.dev/docs/api/class-locator#locator-drop)
simulates an external drag-and-drop of files or clipboard-like data onto
an element. Playwright dispatches `dragenter`, `dragover`, and `drop`
with a synthetic \[DataTransfer] in the page context — works
cross-browser and is great for testing upload zones:

```js
await page.locator('#dropzone').drop({
  files: { name: 'note.txt', mimeType: 'text/plain', buffer: Buffer.from('hello') },
});

await page.locator('#dropzone').drop({
  data: {
    'text/plain': 'hello world',
    'text/uri-list': 'https://example.com',
  },
});
```

#### 🎯 Aria snapshots

-
[expect(page).toMatchAriaSnapshot()](https://playwright.dev/docs/api/class-pageassertions#page-assertions-to-match-aria-snapshot)
now works on a [Page](https://playwright.dev/docs/api/class-page), in
addition to a [Locator](https://playwright.dev/docs/api/class-locator) —
equivalent to asserting against `page.locator('body')`.
- New `boxes` option on
[locator.ariaSnapshot()](https://playwright.dev/docs/api/class-locator#locator-aria-snapshot)
/
[page.ariaSnapshot()](https://playwright.dev/docs/api/class-page#page-aria-snapshot)
appends each element's bounding box as `[box=x,y,width,height]`, useful
for AI consumption.

#### 🛑 test.abort()

New
[test.abort()](https://playwright.dev/docs/api/class-test#test-abort)
aborts the currently running test from a fixture, hook, or route handler
with an optional message. Use it when you have detected an unrecoverable
misuse and want to fail the test right away:

```js
test('does not publish to the shared page', async ({ page }) => {
  await page.route('**/publish', route => {
    test.abort('Tests must not publish to the shared page. Use the `clone` option.');
    return route.abort();
  });
  // ...
});
```

#### New APIs

##### Browser, Context and Page

- Event
[browser.on('context')](https://playwright.dev/docs/api/class-browser#browser-event-context)
— fired when a new context is created on the browser.
- [BrowserContext](https://playwright.dev/docs/api/class-browsercontext)
now mirrors lifecycle events from its pages:
[browserContext.on('download')](https://playwright.dev/docs/api/class-browsercontext#browser-context-event-download),
[browserContext.on('frameattached')](https://playwright.dev/docs/api/class-browsercontext#browser-context-event-frame-attached),
[browserContext.on('framedetached')](https://playwright.dev/docs/api/class-browsercontext#browser-context-event-frame-detached),
[browserContext.on('framenavigated')](https://playwright.dev/docs/api/class-browsercontext#browser-context-event-frame-navigated),
[browserContext.on('pageclose')](https://playwright.dev/docs/api/class-browsercontext#browser-context-event-page-close),
[browserContext.on('pageload')](https://playwright.dev/docs/api/class-browsercontext#browser-context-event-page-load).

##### Locators and Assertions

- New option `description` in
[page.getByRole()](https://playwright.dev/docs/api/class-page#page-get-by-role)
/
[locator.getByRole()](https://playwright.dev/docs/api/class-locator#locator-get-by-role)
/
[frame.getByRole()](https://playwright.dev/docs/api/class-frame#frame-get-by-role)
/
[frameLocator.getByRole()](https://playwright.dev/docs/api/class-framelocator#frame-locator-get-by-role)
for matching the [accessible
description](https://www.w3.org/TR/wai-aria-1.2/#dfn-accessible-description).
- New option `pseudo` in
[expect(locator).toHaveCSS()](https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-have-css)
reads computed styles from `::before` or `::after`.
- New option `style` in
[locator.highlight()](https://playwright.dev/docs/api/class-locator#locator-highlight)
applies extra inline CSS to the highlight overlay, plus new
[page.hideHighlight()](https://playwright.dev/docs/api/class-page#page-hide-highlight)
to clear all highlights.

##### Network

-
[webSocketRoute.protocols()](https://playwright.dev/docs/api/class-websocketroute#web-socket-route-protocols)
returns the WebSocket subprotocols requested by the page.
- New option `noDefaults` in
[browserType.connectOverCDP()](https://playwright.dev/docs/api/class-browsertype#browser-type-connect-over-cdp)
disables Playwright's default overrides on the default context (download
behavior, focus emulation, media emulation), so attaching to a user's
daily-driver browser doesn't disturb its state.

##### Errors and Reporting

- New
[webError.location()](https://playwright.dev/docs/api/class-weberror#web-error-location)
mirrors
[consoleMessage.location()](https://playwright.dev/docs/api/class-consolemessage#console-message-location).
-
[consoleMessage.location()](https://playwright.dev/docs/api/class-consolemessage#console-message-location)
now exposes `line` / `column` properties (`lineNumber` / `columnNumber`
are deprecated).
- New
[testInfoError.errorContext](https://playwright.dev/docs/api/class-testinfoerror#test-info-error-error-context)
surfaces additional diagnostic context, such as the aria snapshot of the
receiver at the time of an `expect(...)` matcher failure.
-
[reporter.onError()](https://playwright.dev/docs/api/class-reporter#reporter-on-error)
now receives a `workerInfo` argument with details about the worker for
fixture teardown errors.

##### Test runner

- New `{testFileBaseName}` token in
[testProject.snapshotPathTemplate](https://playwright.dev/docs/api/class-testproject#test-project-snapshot-path-template)
— file name without extension.
- Test runner now errors when a config tries to override a non-option
fixture, and rejects `workers: 0` or negative values.

#### 🛠️ Other improvements

- HTML reporter:
- `npx playwright show-report` accepts `.zip` files directly — no need
to unzip first.
- Steps that contain attachments inside nested children show an
indicator on the parent step.
  - The `repeatEachIndex` is shown in the test header when non-zero.
- Trace Viewer adds a pretty-print toggle for JSON / form request and
response bodies in the network details panel.

#### Breaking Changes ⚠️

- Removed long-deprecated APIs:
- `Locator.ariaRef()` — use the standard
[locator.ariaSnapshot()](https://playwright.dev/docs/api/class-locator#locator-aria-snapshot)
pipeline.
- `handle` option on `BrowserContext.exposeBinding` and
`Page.exposeBinding`.
- `logger` option on `BrowserType.connect` and
`BrowserType.connectOverCDP` — use
[tracing](https://playwright.dev/docs/trace-viewer) instead.
- Context options `videosPath` / `videoSize` — use `recordVideo`
instead.

#### Browser Versions

- Chromium 148.0.7778.96
- Mozilla Firefox 150.0.2
- WebKit 26.4

This version was also tested against the following stable channels:

- Google Chrome 147
- Microsoft Edge 147

</details>

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/parser)</summary>

###
[`v8.59.3`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#8593-2026-05-11)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.59.2...v8.59.3)

This was a version bump only for parser to align it with other projects,
there were no code changes.

See [GitHub
Releases](https://redirect.github.com/typescript-eslint/typescript-eslint/releases/tag/v8.59.3)
for more information.

You can read about our [versioning
strategy](https://typescript-eslint.io/users/versioning) and
[releases](https://typescript-eslint.io/users/releases) on our website.

</details>

<details>
<summary>vitest-dev/eslint-plugin-vitest
(@&#8203;vitest/eslint-plugin)</summary>

###
[`v1.6.17`](https://redirect.github.com/vitest-dev/eslint-plugin-vitest/releases/tag/v1.6.17)

[Compare
Source](https://redirect.github.com/vitest-dev/eslint-plugin-vitest/compare/v1.6.16...v1.6.17)

#####    🐞 Bug Fixes

- Recommend `toBeTypeOf` instead of `expectTypeOf` in
`prefer-expect-type-of`  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;896](https://redirect.github.com/vitest-dev/eslint-plugin-vitest/issues/896)
[<samp>(a4bcd)</samp>](https://redirect.github.com/vitest-dev/eslint-plugin-vitest/commit/a4bcdf5)
- **no-standalone-expect**: Allow expect inside vi.defineHelper
callbacks  -  by
[@&#8203;nami8824](https://redirect.github.com/nami8824) in
[#&#8203;894](https://redirect.github.com/vitest-dev/eslint-plugin-vitest/issues/894)
[<samp>(fd8eb)</samp>](https://redirect.github.com/vitest-dev/eslint-plugin-vitest/commit/fd8eb3c)

#####     [View changes on
GitHub](https://redirect.github.com/vitest-dev/eslint-plugin-vitest/compare/v1.6.16...v1.6.17)

</details>

<details>
<summary>azat-io/eslint-plugin-de-morgan
(eslint-plugin-de-morgan)</summary>

###
[`v2.1.2`](https://redirect.github.com/azat-io/eslint-plugin-de-morgan/blob/HEAD/changelog.md#v212)

[Compare
Source](https://redirect.github.com/azat-io/eslint-plugin-de-morgan/compare/v2.1.1...v2.1.2)

[compare
changes](https://redirect.github.com/azat-io/eslint-plugin-de-morgan/compare/v2.1.1...v2.1.2)

##### 🐞 Bug Fixes

- Avoid invalid autofixes for grouped boolean expressions

([1173aaa](https://redirect.github.com/azat-io/eslint-plugin-de-morgan/commit/1173aaa))

##### ❤️ Contributors

- Azat S. ([@&#8203;azat-io](https://redirect.github.com/azat-io))

</details>

<details>
<summary>future-architect/eslint-plugin-vue-scoped-css
(eslint-plugin-vue-scoped-css)</summary>

###
[`v3.1.0`](https://redirect.github.com/future-architect/eslint-plugin-vue-scoped-css/blob/HEAD/CHANGELOG.md#310)

[Compare
Source](https://redirect.github.com/future-architect/eslint-plugin-vue-scoped-css/compare/v3.0.0...v3.1.0)

##### Minor Changes

- refactor: replace lodash with es-toolkit and vanilla js
([#&#8203;492](https://redirect.github.com/future-architect/eslint-plugin-vue-scoped-css/pull/492))

</details>

<details>
<summary>pnpm/pnpm (pnpm)</summary>

###
[`v11.1.1`](https://redirect.github.com/pnpm/pnpm/blob/HEAD/pnpm/CHANGELOG.md#1111)

[Compare
Source](https://redirect.github.com/pnpm/pnpm/compare/v11.1.0...v11.1.1)

##### Patch Changes

- Skip installability validation when scanning workspace projects in
`checkDepsStatus` (run by `verifyDepsBeforeRun`). Previously the status
check called `findWorkspaceProjects`, which validates each project's
`engines` and `os`/`cpu`/`libc` and warns about useless fields in
non-root manifests — work that the install pipeline already performs.
With no `nodeVersion` threaded through, the engine check also fell back
to the system Node from `PATH` and emitted spurious "Unsupported engine"
warnings before scripts ran. Status-only callers now use
`findWorkspaceProjectsNoCheck`; install paths continue to validate.
- Fixed `pnpm add <alias>:@&#8203;scope/pkg` for [named
registries](https://redirect.github.com/pnpm/pnpm/pull/11324). The local
resolver was claiming any specifier containing `/` as a local directory,
so `pnpm add bit:@&#8203;teambit/bit` (with `bit` configured under
`namedRegistries`) installed a bogus link to `bit:@&#8203;teambit/bit/`
instead of resolving from the configured registry. The local resolver
now runs after the named-registry resolver in the resolution chain.
- Updated `@zkochan/cmd-shim` to 9.0.3. The sh shim it writes for `.cmd`
/ `.bat` targets now escapes the `/C` switch as `//C`, so it survives
the path translation Git Bash applies when launching `cmd.exe`. Without
this, a bare `/C` was rewritten to `C:\` before reaching cmd.exe — the
switch was dropped, cmd started interactively, and the calling script
saw the cmd banner instead of the wrapped command's output. Affects any
cmd-shim-wrapped batch script invoked from Git Bash / MSYS / Cygwin on
Windows. See
[pnpm/cmd-shim#55](https://redirect.github.com/pnpm/cmd-shim/pull/55).

###
[`v11.1.0`](https://redirect.github.com/pnpm/pnpm/blob/HEAD/pnpm/CHANGELOG.md#1110)

[Compare
Source](https://redirect.github.com/pnpm/pnpm/compare/v11.0.9...v11.1.0)

##### Minor Changes

- Added `pnpm audit signatures` to verify ECDSA registry signatures for
installed packages against keys from `/-/npm/v1/keys`
[#&#8203;7909](https://redirect.github.com/pnpm/pnpm/issues/7909).
Scoped registries are respected, and registries without signing keys are
skipped.

- Added support for installing packages from the [GitHub Packages npm
registry](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-npm-registry)
via a built-in `gh:` prefix (e.g. `pnpm add gh:@&#8203;acme/private`),
and, more broadly, for arbitrary named registries in the style of [vlt's
named-registry aliases](https://docs.vlt.sh/cli/registries).
Authentication is picked up from the existing per-URL `.npmrc` entries
(e.g. `//npm.pkg.github.com/:_authToken=...`), so no separate auth
mechanism is required.

Additional aliases — or an override for the built-in `gh` alias, for
GitHub Enterprise Server — can be configured under `namedRegistries` in
`pnpm-workspace.yaml`:

  ```yaml
  namedRegistries:
    gh: https://npm.pkg.github.example.com/
    work: https://npm.work.example.com/
  ```

With this, `work:@&#8203;corp/lib@^2.0.0` resolves against
`https://npm.work.example.com/`.
[#&#8203;11324](https://redirect.github.com/pnpm/pnpm/issues/11324).

- Allow setting sbom spec version using `--sbom-spec-version`
[#&#8203;11389](https://redirect.github.com/pnpm/pnpm/pull/11389).

- Add `--no-runtime` flag (config: `runtime=false`) to skip installing
runtime entries (e.g. Node.js downloaded via `devEngines.runtime`)
without modifying the lockfile. The lockfile keeps the runtime entry so
frozen-lockfile validation still passes; only the runtime fetch and
`.bin` linking are skipped. Useful in CI matrices where the runtime is
provisioned externally (e.g. via `pnpm runtime -g set node <version>`)
before `pnpm install` runs.

- Added the `pnpm bugs` command that opens a package's bug tracker URL
in the browser. With no arguments, it reads the current project's
`package.json`; with one or more package names, it fetches each
package's metadata from the registry and opens its bug tracker. Falls
back to `<repository>/issues` when the `bugs` field is missing
[#&#8203;11279](https://redirect.github.com/pnpm/pnpm/pull/11279).

- Added `pnpm owner` command to manage package owners on the registry.

##### Patch Changes

- Added "published X ago by Y" information to the `pnpm view` command
output, similar to `npm view`. This is useful when comparing against
`minimumReleaseAge`.

  For example, `pnpm view pnpm` now shows:

  ```
  published 17 hours ago by GitHub Actions
  ```

- `pnpm publish` now honors the configured HTTP/HTTPS proxy (including
`https_proxy`/`http_proxy`/`no_proxy` environment variables) when
polling the registry's `doneUrl` during the web-based authentication
flow. Previously the poll bypassed the proxy, causing the registry to
respond `403` from a different source IP and the login to never complete
[#&#8203;11561](https://redirect.github.com/pnpm/pnpm/issues/11561).

- `pnpm add -g` now installs each space-separated package into its own
isolated directory by default. To bundle multiple packages into the same
isolated install (so that they share dependencies and are removed
together), pass them as a comma-separated list. For example:

- `pnpm add -g foo bar` installs `foo` and `bar` as two independent
globals — removing one does not affect the other.
- `pnpm add -g foo,bar qar` bundles `foo` and `bar` into a single
isolated install while `qar` is installed on its own.

Related:
[#&#8203;11587](https://redirect.github.com/pnpm/pnpm/issues/11587).

- `pnpm runtime set <name> <version>` no longer fails in the root of a
multi-package workspace with the `ADDING_TO_ROOT` error. Installing the
workspace root is a valid target for a runtime, so the command now
bypasses that safety check.

- Fix `pnpm --version` hanging for the lifetime of the worker pool after
the version was printed. `main.ts`'s `--version` short-circuit returned
before reaching the command-handler `finally` that calls
`finishWorkers()`, so the worker pool that `switchCliVersion` had
spawned during integrity resolution stayed alive and held the Node event
loop open. The CLI entry now runs `finishWorkers()` from its own
`finally`, so every exit path tears the pool down.

Repro: `pnpm --version` in a workspace whose `devEngines.packageManager`
version already matches the running pnpm + `onFail: "download"`.
`switchCliVersion` resolves the integrity (spawning workers), finds
nothing to swap, returns. The version prints, then the process hangs.

###
[`v11.0.9`](https://redirect.github.com/pnpm/pnpm/blob/HEAD/pnpm/CHANGELOG.md#1109)

[Compare
Source](https://redirect.github.com/pnpm/pnpm/compare/v11.0.8...v11.0.9)

##### Patch Changes

- Fixed installation of GitLab-hosted dependencies. pnpm now downloads
the tarball from
`https://gitlab.com/<user>/<project>/-/archive/<sha>/<project>-<sha>.tar.gz`
instead of the GitLab API endpoint that contained an encoded slash
(`%2F`) between user and project. The encoded slash both triggered `406
Not Acceptable` responses from GitLab and produced virtual store
directory names that Node refused to import
(`ERR_INVALID_MODULE_SPECIFIER`)
[#&#8203;11533](https://redirect.github.com/pnpm/pnpm/issues/11533).
- Honor `NPM_CONFIG_USERCONFIG` (and its lowercase
`npm_config_userconfig` form) as a low-priority fallback when locating
the user-level `.npmrc`. This restores compatibility with environments
that point npm at a custom auth file via that env var — most notably
`actions/setup-node`, which writes registry credentials to
`${runner.temp}/.npmrc` and exports `NPM_CONFIG_USERCONFIG` to reference
it. Without this, GitHub Actions workflows using `actions/setup-node` to
authenticate to private registries broke after upgrading to pnpm v11.
PNPM-prefixed env vars and `npmrcAuthFile` from the global `config.yaml`
continue to take precedence
[#&#8203;11539](https://redirect.github.com/pnpm/pnpm/issues/11539).
- Fix `pnpm pack` not bundling dependencies listed in
`bundleDependencies` (or `bundledDependencies`). The npm-packlist
upgrade in pnpm 11 changed its API to require the caller to pre-populate
the dependency tree, which the wrapper was not doing —
`bundleDependencies` were silently dropped from the tarball
[#&#8203;11519](https://redirect.github.com/pnpm/pnpm/issues/11519).
- Fixed the pnpm CLI crashing with a confusing `SyntaxError: Invalid
regular expression flags` instead of printing a clear "requires Node.js
v22.13" error when launched on an unsupported Node.js version. The
Node.js version check in `bin/pnpm.mjs` was effectively dead code
because the static `import` of the bundled `dist/pnpm.mjs` was hoisted
by the ES module loader and parsed before the check could run
[#&#8203;11546](https://redirect.github.com/pnpm/pnpm/issues/11546).
- Fixed `pnpm --prefix=<dir> install` overwriting the existing
`pnpm-workspace.yaml` in `<dir>` with `set this to true or false`
placeholders. The renamed `--prefix` option (which maps to `dir`) was
not honored when locating the workspace root, so the workspace
manifest's `allowBuilds` settings were not loaded into config and got
clobbered when ignored builds were auto-populated
[#&#8203;11535](https://redirect.github.com/pnpm/pnpm/issues/11535).
- Fixed `pnpm publish --provenance` failing with a 422 from the registry
when the package version contained semver build metadata (e.g.
`1.0.0-canary.0+abc1234`). The `+<build>` segment is now stripped before
packing so that the version embedded in the tarball, the metadata sent
to the registry, and the sigstore provenance subject all agree
[#&#8203;11518](https://redirect.github.com/pnpm/pnpm/issues/11518).

</details>

<details>
<summary>silverwind/rolldown-license-plugin
(rolldown-license-plugin)</summary>

###
[`v3.0.5`](https://redirect.github.com/silverwind/rolldown-license-plugin/releases/tag/3.0.5)

[Compare
Source](https://redirect.github.com/silverwind/rolldown-license-plugin/compare/3.0.4...3.0.5)

- update deps, bump rolldown to 1.0.0 (silverwind)
- Update vitest-config-silverwind to 11.3.3, add Node 26 to CI
(silverwind)
- update deps (silverwind)

</details>

<details>
<summary>swagger-api/swagger-ui (swagger-ui-dist)</summary>

###
[`v5.32.6`](https://redirect.github.com/swagger-api/swagger-ui/releases/tag/v5.32.6)

[Compare
Source](https://redirect.github.com/swagger-api/swagger-ui/compare/v5.32.5...v5.32.6)

##### Bug Fixes

- **deps-dev:** address undici vulnerability
([#&#8203;10870](https://redirect.github.com/swagger-api/swagger-ui/issues/10870))
([35f5a6a](35f5a6a84a))
- **docker:** address CVE-2026-27135 nghttp2-libs vulnerability
([#&#8203;10879](https://redirect.github.com/swagger-api/swagger-ui/issues/10879))
([0a63415](0a63415dfb))

</details>

<details>
<summary>typescript-eslint/typescript-eslint
(typescript-eslint)</summary>

###
[`v8.59.3`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8593-2026-05-11)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.59.2...v8.59.3)

This was a version bump only for typescript-eslint to align it with
other projects, there were no code changes.

See [GitHub
Releases](https://redirect.github.com/typescript-eslint/typescript-eslint/releases/tag/v8.59.3)
for more information.

You can read about our [versioning
strategy](https://typescript-eslint.io/users/versioning) and
[releases](https://typescript-eslint.io/users/releases) on our website.

</details>

<details>
<summary>silverwind/updates (updates)</summary>

###
[`v17.16.11`](https://redirect.github.com/silverwind/updates/releases/tag/17.16.11)

[Compare
Source](https://redirect.github.com/silverwind/updates/compare/17.16.10...17.16.11)

- update deps (silverwind)
- Generalize action discovery (silverwind)
- Fix composite-action tests on Windows (silverwind)
- ci: force bun runtime for tsdown on bun jobs (silverwind)
- Discover composite actions anywhere under .github (silverwind)

###
[`v17.16.10`](https://redirect.github.com/silverwind/updates/releases/tag/17.16.10)

[Compare
Source](https://redirect.github.com/silverwind/updates/compare/17.16.9...17.16.10)

- update deps (silverwind)
- Revert "Drop `process.exit()` to let Node shut down naturally
([#&#8203;137](https://redirect.github.com/silverwind/updates/issues/137))"
(silverwind)
- Drop `process.exit()` to let Node shut down naturally
([#&#8203;137](https://redirect.github.com/silverwind/updates/issues/137))
(silverwind)
- Exclude Node 26 on windows-latest (silverwind)
- Update vitest-config-silverwind to 11.3.3, add Node 26 to CI
(silverwind)
- update deps (silverwind)
- Minor perf and simplification cleanups (silverwind)

</details>

<details>
<summary>vitejs/vite (vite)</summary>

###
[`v8.0.12`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-8012-2026-05-11-small)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v8.0.11...v8.0.12)

##### Features

- update rolldown to 1.0.0
([#&#8203;22401](https://redirect.github.com/vitejs/vite/issues/22401))
([cf0ff41](cf0ff4154b))

##### Bug Fixes

- **deps:** update all non-major dependencies
([#&#8203;22420](https://redirect.github.com/vitejs/vite/issues/22420))
([2be6000](2be6000130))
- **module-runner:** prevent partial-exports race on concurrent imports
of in-flight invalidated re-export chains
([#&#8203;22369](https://redirect.github.com/vitejs/vite/issues/22369))
([f5a22e6](f5a22e62ad))
- refer to `rolldownOptions` instead of deprecated `rollupOptions` in
messages
([#&#8203;22400](https://redirect.github.com/vitejs/vite/issues/22400))
([b675c7b](b675c7b669))
- **worker:** apply `build.target` to worker bundle
([#&#8203;22404](https://redirect.github.com/vitejs/vite/issues/22404))
([3c93fde](3c93fde21f))
- **worker:** forward define to worker bundle transform
([#&#8203;22408](https://redirect.github.com/vitejs/vite/issues/22408))
([d4838a0](d4838a0358))

##### Miscellaneous Chores

- **deps:** update dependency eslint-plugin-n to v18
([#&#8203;22423](https://redirect.github.com/vitejs/vite/issues/22423))
([2fe7bd2](2fe7bd2d73))
- **deps:** update rolldown-related dependencies
([#&#8203;22421](https://redirect.github.com/vitejs/vite/issues/22421))
([66b9eb3](66b9eb3518))

###
[`v8.0.11`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-8011-2026-05-07-small)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v8.0.10...v8.0.11)

##### Features

- update rolldown to 1.0.0-rc.18
([#&#8203;22360](https://redirect.github.com/vitejs/vite/issues/22360))
([3f80524](3f80524aa1))

##### Bug Fixes

- **deps:** update all non-major dependencies
([#&#8203;22334](https://redirect.github.com/vitejs/vite/issues/22334))
([672c962](672c96288f))
- **deps:** update all non-major dependencies
([#&#8203;22382](https://redirect.github.com/vitejs/vite/issues/22382))
([5c0cfcb](5c0cfcb83d))
- **glob:** align hmr matcher options with glob enumeration
([#&#8203;22306](https://redirect.github.com/vitejs/vite/issues/22306))
([30028f9](30028f9451))
- make separate object instance for each environment
([#&#8203;22276](https://redirect.github.com/vitejs/vite/issues/22276))
([7c2aa3b](7c2aa3b40b))

##### Documentation

- **create-vite:** list react-compiler templates in README
([#&#8203;22347](https://redirect.github.com/vitejs/vite/issues/22347))
([7c3a61f](7c3a61f42d))
- explain mergeConfig skips null/undefined
([#&#8203;22325](https://redirect.github.com/vitejs/vite/issues/22325))
([2151f70](2151f701dc))
- mention native config loader in CLI options
([#&#8203;22348](https://redirect.github.com/vitejs/vite/issues/22348))
([0420c5d](0420c5d37b))
- update evan's x handle
([640202a](640202a216))

##### Miscellaneous Chores

- **deps:** update dependency tsdown to ^0.21.10
([#&#8203;22333](https://redirect.github.com/vitejs/vite/issues/22333))
([3b51e05](3b51e05021))
- **deps:** update rolldown-related dependencies
([#&#8203;22383](https://redirect.github.com/vitejs/vite/issues/22383))
([555ff36](555ff36de7))
- **deps:** update transitive packages to fix npm audit alerts
([#&#8203;22316](https://redirect.github.com/vitejs/vite/issues/22316))
([86aee62](86aee6268a))

##### Code Refactoring

- devtools integration
([#&#8203;22312](https://redirect.github.com/vitejs/vite/issues/22312))
([3c8bf06](3c8bf064ec))
- remove unnecessary async
([#&#8203;22296](https://redirect.github.com/vitejs/vite/issues/22296))
([b31fd35](b31fd355d9))
- show direct path type in bad character warning
([#&#8203;22339](https://redirect.github.com/vitejs/vite/issues/22339))
([0c162e9](0c162e96a6))

##### Tests

- **create-vite:** use short help alias
([#&#8203;22389](https://redirect.github.com/vitejs/vite/issues/22389))
([994ab66](994ab66bc4))

</details>

<details>
<summary>vitest-dev/vitest (vitest)</summary>

###
[`v4.1.6`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v4.1.6)

[Compare
Source](https://redirect.github.com/vitest-dev/vitest/compare/v4.1.5...v4.1.6)

#####    🐞 Bug Fixes

- **browser**: Provide project reference in
`ToMatchScreenshotResolvePath`  -  by
[@&#8203;macarie](https://redirect.github.com/macarie) and
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10138](https://redirect.github.com/vitest-dev/vitest/issues/10138)
[<samp>(31882)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/31882607c)
- Global `sequence.concurrent: true` with top-level `test(..., {
concurrent: false })` + depreacte `sequential` test API and options  - 
by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa), **Codex**
and [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10196](https://redirect.github.com/vitest-dev/vitest/issues/10196)
[<samp>(2847d)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/2847dfa2a)
- **browser**: Simplify orchestrator otel carrier  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#&#8203;10285](https://redirect.github.com/vitest-dev/vitest/issues/10285)
[<samp>(18af9)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/18af98cee)

#####    🏎 Performance

- Stringify diff objects only once  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10276](https://redirect.github.com/vitest-dev/vitest/issues/10276)
[<samp>(9f7b1)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/9f7b1528c)

#####     [View changes on
GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v4.1.5...v4.1.6)

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - Only on Monday (`* * * * 1`)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNDEuNSIsInVwZGF0ZWRJblZlciI6IjQzLjE0MS41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->
2026-05-18 05:06:04 +00:00
2026-04-08 01:17:05 +08:00
2024-07-23 12:07:41 +00:00
2025-06-16 12:03:51 +00:00
2023-01-24 18:52:38 +00:00
2026-05-08 04:17:20 +00:00
2026-04-26 11:46:48 +02:00
2016-11-08 08:42:05 +01:00
2026-03-22 08:18:42 -07:00
2026-04-14 23:24:44 +08:00
2026-04-15 17:26:26 +00:00

Gitea

繁體中文 | 简体中文

Purpose

The goal of this project is to make the easiest, fastest, and most painless way of setting up a self-hosted Git service.

As Gitea is written in Go, it works across all the platforms and architectures that are supported by Go, including Linux, macOS, and Windows on x86, amd64, ARM and PowerPC architectures. This project has been forked from Gogs since November of 2016, but a lot has changed.

For online demonstrations, you can visit demo.gitea.com.

For accessing free Gitea service (with a limited number of repositories), you can visit gitea.com.

To quickly deploy your own dedicated Gitea instance on Gitea Cloud, you can start a free trial at cloud.gitea.com.

Documentation

You can find comprehensive documentation on our official documentation website.

It includes installation, administration, usage, development, contributing guides, and more to help you get started and explore all features effectively.

If you have any suggestions or would like to contribute to it, you can visit the documentation repository

Building

From the root of the source tree, run:

TAGS="bindata" make build

The build target is split into two sub-targets:

Internet connectivity is required to download the go and npm modules. When building from the official source tarballs which include pre-built frontend files, the frontend target will not be triggered, making it possible to build without Node.js.

More info: https://docs.gitea.com/installation/install-from-source

Using

After building, a binary file named gitea will be generated in the root of the source tree by default. To run it, use:

./gitea web

Note

If you're interested in using our APIs, we have experimental support with documentation.

Contributing

Expected workflow is: Fork -> Patch -> Push -> Pull Request

Note

  1. YOU MUST READ THE CONTRIBUTORS GUIDE BEFORE STARTING TO WORK ON A PULL REQUEST.
  2. If you have found a vulnerability in the project, please write privately to security@gitea.io. Thanks!

Translating

Crowdin

Translations are done through Crowdin. If you want to translate to a new language, ask one of the managers in the Crowdin project to add a new language there.

You can also just create an issue for adding a language or ask on Discord on the #translation channel. If you need context or find some translation issues, you can leave a comment on the string or ask on Discord. For general translation questions there is a section in the docs. Currently a bit empty, but we hope to fill it as questions pop up.

Get more information from documentation.

Official and Third-Party Projects

We provide an official go-sdk, a CLI tool called tea and an action runner for Gitea Action.

We maintain a list of Gitea-related projects at gitea/awesome-gitea, where you can discover more third-party projects, including SDKs, plugins, themes, and more.

Communication

If you have questions that are not covered by the documentation, you can get in contact with us on our Discord server or create a post in the discourse forum.

Authors

Backers

Thank you to all our backers! 🙏 [Become a backer]

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

FAQ

How do you pronounce Gitea?

Gitea is pronounced /ɡɪti:/ as in "gi-tea" with a hard g.

Why is this not hosted on a Gitea instance?

We're working on it.

Where can I find the security patches?

In the release log or the change log, search for the keyword SECURITY to find the security patches.

License

This project is licensed under the MIT License. See the LICENSE file for the full license text.

Further information

Looking for an overview of the interface? Check it out!

Login/Register Page

Login Register

User Dashboard

Home Issues Pull Requests Milestones

User Profile

Profile

Explore

Repos Users Orgs

Repository

Home Commits Branches Labels Milestones Releases Tags

Repository Issue

List Issue

Repository Pull Requests

List Pull Request File Commits

Repository Actions

List Details

Repository Activity

Activity Contributors Code Frequency Recent Commits

Organization

Home

Description
Git with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD
Readme MIT 1 GiB
Languages
Go 78.1%
Handlebars 12.3%
TypeScript 4.5%
CSS 2%
JavaScript 1.4%
Other 1.6%