{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":729737921,"defaultBranch":"main","name":"chinese-chart","ownerLogin":"SebastianGoeb","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-12-10T07:29:29.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/3440852?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1726609339.0","currentOid":""},"activityList":{"items":[{"before":"525f19270dc3a49d3c9b00b8f2c51d80d303924a","after":"1a75f0c5dcc26493a7afaecf008f0ba4c2168582","ref":"refs/heads/renovate/major-eslint-monorepo","pushedAt":"2024-09-18T00:28:13.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"},"commit":{"message":"chore(deps): update dependency eslint to v9","shortMessageHtmlLink":"chore(deps): update dependency eslint to v9"}},{"before":"b913ea778e2abc3408aacb931e54ac4f61baed46","after":null,"ref":"refs/heads/renovate/npm-vite-vulnerability","pushedAt":"2024-09-17T21:42:19.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"}},{"before":"38f441e2c6d77d8b9213d6edb361c643da8b5a77","after":"170b9a839d9b94d4e4f72cb1e0d40dd334e38984","ref":"refs/heads/main","pushedAt":"2024-09-17T21:42:18.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"},"commit":{"message":"chore(deps): update dependency vite to v5.4.6 [security] (#176)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Adoption | Passing | Confidence |\n|---|---|---|---|---|---|\n| [vite](https://vitejs.dev)\n([source](https://redirect.github.com/vitejs/vite/tree/HEAD/packages/vite))\n| [`5.4.5` ->\n`5.4.6`](https://renovatebot.com/diffs/npm/vite/5.4.5/5.4.6) |\n[![age](https://developer.mend.io/api/mc/badges/age/npm/vite/5.4.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/5.4.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/5.4.5/5.4.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/5.4.5/5.4.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n\n### GitHub Vulnerability Alerts\n\n####\n[CVE-2024-45811](https://redirect.github.com/vitejs/vite/security/advisories/GHSA-9cwx-2883-4wfx)\n\n### Summary\nThe contents of arbitrary files can be returned to the browser.\n\n### Details\n`@fs` denies access to files outside of Vite serving allow list. Adding\n`?import&raw` to the URL bypasses this limitation and returns the file\ncontent if it exists.\n\n### PoC\n```sh\n$ npm create vite@latest\n$ cd vite-project/\n$ npm install\n$ npm run dev\n\n$ echo \"top secret content\" > /tmp/secret.txt\n\n# expected behaviour\n$ curl \"http://localhost:5173/@​fs/tmp/secret.txt\"\n\n \n

403 Restricted

\n

The request url "/tmp/secret.txt" is outside of Vite serving allow list.\n\n# security bypassed\n$ curl \"http://localhost:5173/@​fs/tmp/secret.txt?import&raw\"\nexport default \"top secret content\\n\"\n//# sourceMappingURL=data:application/json;base64,eyJ2...\n```\n\n####\n[CVE-2024-45812](https://redirect.github.com/vitejs/vite/security/advisories/GHSA-64vr-g452-qvp3)\n\n### Summary\n\nWe discovered a DOM Clobbering vulnerability in Vite when building\nscripts to `cjs`/`iife`/`umd` output format. The DOM Clobbering gadget\nin the module can lead to cross-site scripting (XSS) in web pages where\nscriptless attacker-controlled HTML elements (e.g., an img tag with an\nunsanitized name attribute) are present.\n\nNote that, we have identified similar security issues in Webpack:\nhttps://github.com/webpack/webpack/security/advisories/GHSA-4vvj-4cpr-p986\n\n### Details\n\n**Backgrounds**\n\nDOM Clobbering is a type of code-reuse attack where the attacker first\nembeds a piece of non-script, seemingly benign HTML markups in the\nwebpage (e.g. through a post or comment) and leverages the gadgets\n(pieces of js code) living in the existing javascript code to transform\nit into executable code. More for information about DOM Clobbering, here\nare some references:\n\n[1] https://scnps.co/papers/sp23_domclob.pdf\n[2] https://research.securitum.com/xss-in-amp4email-dom-clobbering/\n\n**Gadgets found in Vite**\n\nWe have identified a DOM Clobbering vulnerability in Vite bundled\nscripts, particularly when the scripts dynamically import other scripts\nfrom the assets folder and the developer sets the build output format to\n`cjs`, `iife`, or `umd`. In such cases, Vite replaces relative paths\nstarting with `__VITE_ASSET__` using the URL retrieved from\n`document.currentScript`.\n\nHowever, this implementation is vulnerable to a DOM Clobbering attack.\nThe `document.currentScript` lookup can be shadowed by an attacker via\nthe browser's named DOM tree element access mechanism. This manipulation\nallows an attacker to replace the intended script element with a\nmalicious HTML element. When this happens, the src attribute of the\nattacker-controlled element is used as the URL for importing scripts,\npotentially leading to the dynamic loading of scripts from an\nattacker-controlled server.\n\n```\nconst relativeUrlMechanisms = {\n amd: (relativePath) => {\n if (relativePath[0] !== \".\") relativePath = \"./\" + relativePath;\n return getResolveUrl(\n `require.toUrl('${escapeId(relativePath)}'), document.baseURI`\n );\n },\n cjs: (relativePath) => `(typeof document === 'undefined' ? ${getFileUrlFromRelativePath(\n relativePath\n )} : ${getRelativeUrlFromDocument(relativePath)})`,\n es: (relativePath) => getResolveUrl(\n `'${escapeId(partialEncodeURIPath(relativePath))}', import.meta.url`\n ),\n iife: (relativePath) => getRelativeUrlFromDocument(relativePath),\n // NOTE: make sure rollup generate `module` params\n system: (relativePath) => getResolveUrl(\n `'${escapeId(partialEncodeURIPath(relativePath))}', module.meta.url`\n ),\n umd: (relativePath) => `(typeof document === 'undefined' && typeof location === 'undefined' ? ${getFileUrlFromRelativePath(\n relativePath\n )} : ${getRelativeUrlFromDocument(relativePath, true)})`\n};\n```\n\n### PoC\n\nConsidering a website that contains the following `main.js` script, the\ndevloper decides to use the Vite to bundle up the program with the\nfollowing configuration.\n\n```\n// main.js\nimport extraURL from './extra.js?url'\nvar s = document.createElement('script')\ns.src = extraURL\ndocument.head.append(s)\n```\n\n```\n// extra.js\nexport default \"https://myserver/justAnOther.js\"\n```\n\n```\n// vite.config.js\nimport { defineConfig } from 'vite'\n\nexport default defineConfig({\n build: {\n assetsInlineLimit: 0, // To avoid inline assets for PoC\n rollupOptions: {\n output: {\n format: \"cjs\"\n },\n },\n },\n base: \"./\",\n});\n```\n\nAfter running the build command, the developer will get following bundle\nas the output.\n\n```\n// dist/index-DDmIg9VD.js\n\"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);\n```\n\nAdding the Vite bundled script, `dist/index-DDmIg9VD.js`, as part of the\nweb page source code, the page could load the `extra.js` file from the\nattacker's domain, `attacker.controlled.server`. The attacker only needs\nto insert an `img` tag with the `name` attribute set to `currentScript`.\nThis can be done through a website's feature that allows users to embed\ncertain script-less HTML (e.g., markdown renderers, web email clients,\nforums) or via an HTML injection vulnerability in third-party JavaScript\nloaded on the page.\n\n```\n\n\n\n Vite Example\n \n \n \n\n\n\n\n\n```\n\n### Impact\n\nThis vulnerability can result in cross-site scripting (XSS) attacks on\nwebsites that include Vite-bundled files (configured with an output\nformat of `cjs`, `iife`, or `umd`) and allow users to inject certain\nscriptless HTML tags without properly sanitizing the name or id\nattributes.\n\n### Patch\n\n```\n// https://github.com/vitejs/vite/blob/main/packages/vite/src/node/build.ts#L1296\nconst getRelativeUrlFromDocument = (relativePath: string, umd = false) =>\n getResolveUrl(\n `'${escapeId(partialEncodeURIPath(relativePath))}', ${\n umd ? `typeof document === 'undefined' ? location.href : ` : ''\n }document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT' && document.currentScript.src || document.baseURI`,\n )\n```\n\n---\n\n### Release Notes\n\n

\nvitejs/vite (vite)\n\n###\n[`v5.4.6`](https://redirect.github.com/vitejs/vite/releases/tag/v5.4.6)\n\n[Compare\nSource](https://redirect.github.com/vitejs/vite/compare/v5.4.5...v5.4.6)\n\nPlease refer to\n[CHANGELOG.md](https://redirect.github.com/vitejs/vite/blob/v5.4.6/packages/vite/CHANGELOG.md)\nfor details.\n\n
\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"\" (UTC), Automerge - At any time (no\nschedule defined).\n\n🚦 **Automerge**: Enabled.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about these\nupdates again.\n\n---\n\n- [ ] If you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/SebastianGoeb/chinese-chart).\n\n\n\nCo-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>","shortMessageHtmlLink":"chore(deps): update dependency vite to v5.4.6 [security] (#176)"}},{"before":null,"after":"b913ea778e2abc3408aacb931e54ac4f61baed46","ref":"refs/heads/renovate/npm-vite-vulnerability","pushedAt":"2024-09-17T21:41:42.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"},"commit":{"message":"chore(deps): update dependency vite to v5.4.6 [security]","shortMessageHtmlLink":"chore(deps): update dependency vite to v5.4.6 [security]"}},{"before":"1f69013b72142eb084a45076f8daa092478b79db","after":"525f19270dc3a49d3c9b00b8f2c51d80d303924a","ref":"refs/heads/renovate/major-eslint-monorepo","pushedAt":"2024-09-16T00:28:34.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"},"commit":{"message":"chore(deps): update dependency eslint to v9","shortMessageHtmlLink":"chore(deps): update dependency eslint to v9"}},{"before":"e0b39a5e30b4507b19d5b327482ed473e4953bb2","after":"4305ff1681767b7395147a7ca3a8604f3417ebbd","ref":"refs/heads/gh-pages","pushedAt":"2024-09-16T00:28:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Deploying to gh-pages from @ SebastianGoeb/chinese-chart@38f441e2c6d77d8b9213d6edb361c643da8b5a77 🚀","shortMessageHtmlLink":"Deploying to gh-pages from @ 38f441e 🚀"}},{"before":"b940c212d70a5a12f95f5bbd0fb0c22d4cf1825c","after":null,"ref":"refs/heads/renovate/all-minor-patch","pushedAt":"2024-09-16T00:27:38.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"}},{"before":"98a57d43c623ab5a75859b86b9cf30f9fca42af9","after":"38f441e2c6d77d8b9213d6edb361c643da8b5a77","ref":"refs/heads/main","pushedAt":"2024-09-16T00:27:37.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"},"commit":{"message":"fix(deps): update all non-major dependencies (#175)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Adoption | Passing | Confidence |\n|---|---|---|---|---|---|\n| [@solidjs/router](https://redirect.github.com/solidjs/solid-router) |\n[`0.14.3` ->\n`0.14.5`](https://renovatebot.com/diffs/npm/@solidjs%2frouter/0.14.3/0.14.5)\n|\n[![age](https://developer.mend.io/api/mc/badges/age/npm/@solidjs%2frouter/0.14.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@solidjs%2frouter/0.14.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@solidjs%2frouter/0.14.3/0.14.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@solidjs%2frouter/0.14.3/0.14.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n|\n[@typescript-eslint/eslint-plugin](https://typescript-eslint.io/packages/eslint-plugin)\n([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin))\n| [`8.4.0` ->\n`8.5.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/8.4.0/8.5.0)\n|\n[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2feslint-plugin/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2feslint-plugin/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2feslint-plugin/8.4.0/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2feslint-plugin/8.4.0/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n|\n[@typescript-eslint/parser](https://typescript-eslint.io/packages/parser)\n([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser))\n| [`8.4.0` ->\n`8.5.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/8.4.0/8.5.0)\n|\n[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fparser/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2fparser/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2fparser/8.4.0/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fparser/8.4.0/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n| [postcss](https://postcss.org/)\n([source](https://redirect.github.com/postcss/postcss)) | [`8.4.45` ->\n`8.4.47`](https://renovatebot.com/diffs/npm/postcss/8.4.45/8.4.47) |\n[![age](https://developer.mend.io/api/mc/badges/age/npm/postcss/8.4.47?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/postcss/8.4.47?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/postcss/8.4.45/8.4.47?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/postcss/8.4.45/8.4.47?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n| [tailwindcss](https://tailwindcss.com)\n([source](https://redirect.github.com/tailwindlabs/tailwindcss)) |\n[`3.4.10` ->\n`3.4.11`](https://renovatebot.com/diffs/npm/tailwindcss/3.4.10/3.4.11) |\n[![age](https://developer.mend.io/api/mc/badges/age/npm/tailwindcss/3.4.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/tailwindcss/3.4.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/tailwindcss/3.4.10/3.4.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/tailwindcss/3.4.10/3.4.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n| [typescript](https://www.typescriptlang.org/)\n([source](https://redirect.github.com/microsoft/TypeScript)) | [`5.5.4`\n-> `5.6.2`](https://renovatebot.com/diffs/npm/typescript/5.5.4/5.6.2) |\n[![age](https://developer.mend.io/api/mc/badges/age/npm/typescript/5.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typescript/5.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typescript/5.5.4/5.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typescript/5.5.4/5.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n| [vite](https://vitejs.dev)\n([source](https://redirect.github.com/vitejs/vite/tree/HEAD/packages/vite))\n| [`5.4.3` ->\n`5.4.5`](https://renovatebot.com/diffs/npm/vite/5.4.3/5.4.5) |\n[![age](https://developer.mend.io/api/mc/badges/age/npm/vite/5.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/5.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/5.4.3/5.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/5.4.3/5.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n| [vitest](https://redirect.github.com/vitest-dev/vitest)\n([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest))\n| [`2.0.5` ->\n`2.1.1`](https://renovatebot.com/diffs/npm/vitest/2.0.5/2.1.1) |\n[![age](https://developer.mend.io/api/mc/badges/age/npm/vitest/2.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vitest/2.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vitest/2.0.5/2.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitest/2.0.5/2.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n\n---\n\n### Release Notes\n\n
\nsolidjs/solid-router (@​solidjs/router)\n\n###\n[`v0.14.5`](https://redirect.github.com/solidjs/solid-router/blob/HEAD/CHANGELOG.md#0145)\n\n##### Patch Changes\n\n-\n[`5c87acc`](https://redirect.github.com/solidjs/solid-router/commit/5c87acc):\nfix partial matches in single flight mutations\n\n###\n[`v0.14.4`](https://redirect.github.com/solidjs/solid-router/blob/HEAD/CHANGELOG.md#0144)\n\n##### Patch Changes\n\n-\n[`098dccb`](https://redirect.github.com/solidjs/solid-router/commit/098dccb):\nfix\n[#​474](https://redirect.github.com/solidjs/solid-router/issues/474)\nimproper search parameter resolution while routing\n-\n[`f8f30df`](https://redirect.github.com/solidjs/solid-router/commit/f8f30df):\nfix initial state including \\_depth\n\n
\n\n
\ntypescript-eslint/typescript-eslint\n(@​typescript-eslint/eslint-plugin)\n\n###\n[`v8.5.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#850-2024-09-09)\n\n[Compare\nSource](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.4.0...v8.5.0)\n\n##### 🚀 Features\n\n- **eslint-plugin:** \\[no-duplicate-type-constituents] prevent\nunnecessary \\`\n\n- **eslint-plugin:** \\[no-unsafe-argument] differentiate error types\n\n##### 🩹 Fixes\n\n- **eslint-plugin:** \\[no-unnecessary-type-assertion] fix\nTSNonNullExpression fixer\n\n- **eslint-plugin:** \\[no-misused-promises] handle static method\n\n- **eslint-plugin:** \\[no-unnecessary-type-parameters] fix AST quick\npath scope analysis\n\n- **eslint-plugin:** \\[consistent-type-assertions] access parser\nservices lazily\n\n##### ❤️ Thank You\n\n-\n[`f44da95`](https://redirect.github.com/typescript-eslint/typescript-eslint/commit/f44da958e)\n- Josh Goldberg ✨\n- Kirk Waiblinger\n- YeonJuan\n\nYou can read about our [versioning\nstrategy](https://main--typescript-eslint.netlify.app/users/versioning)\nand\n[releases](https://main--typescript-eslint.netlify.app/users/releases)\non our website.\n\n
\n\n
\ntypescript-eslint/typescript-eslint\n(@​typescript-eslint/parser)\n\n###\n[`v8.5.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#850-2024-09-09)\n\n[Compare\nSource](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.4.0...v8.5.0)\n\nThis was a version bump only for parser to align it with other projects,\nthere were no code changes.\n\nYou can read about our [versioning\nstrategy](https://main--typescript-eslint.netlify.app/users/versioning)\nand\n[releases](https://main--typescript-eslint.netlify.app/users/releases)\non our website.\n\n
\n\n
\npostcss/postcss (postcss)\n\n###\n[`v8.4.47`](https://redirect.github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8447)\n\n[Compare\nSource](https://redirect.github.com/postcss/postcss/compare/8.4.46...8.4.47)\n\n- Removed debug code.\n\n###\n[`v8.4.46`](https://redirect.github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8446)\n\n[Compare\nSource](https://redirect.github.com/postcss/postcss/compare/8.4.45...8.4.46)\n\n- Fixed `Cannot read properties of undefined (reading 'before')`.\n\n
\n\n
\ntailwindlabs/tailwindcss (tailwindcss)\n\n###\n[`v3.4.11`](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v3.4.10...v3.4.11)\n\n[Compare\nSource](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v3.4.10...v3.4.11)\n\n
\n\n
\nmicrosoft/TypeScript (typescript)\n\n###\n[`v5.6.2`](https://redirect.github.com/microsoft/TypeScript/compare/v5.5.4...a7e3374f13327483fbe94e32806d65785b0b6cda)\n\n[Compare\nSource](https://redirect.github.com/microsoft/TypeScript/compare/v5.5.4...v5.6.2)\n\n
\n\n
\nvitejs/vite (vite)\n\n###\n[`v5.4.5`](https://redirect.github.com/vitejs/vite/releases/tag/v5.4.5)\n\n[Compare\nSource](https://redirect.github.com/vitejs/vite/compare/v5.4.4...v5.4.5)\n\nPlease refer to\n[CHANGELOG.md](https://redirect.github.com/vitejs/vite/blob/v5.4.5/packages/vite/CHANGELOG.md)\nfor details.\n\n###\n[`v5.4.4`](https://redirect.github.com/vitejs/vite/releases/tag/v5.4.4)\n\n[Compare\nSource](https://redirect.github.com/vitejs/vite/compare/v5.4.3...v5.4.4)\n\nPlease refer to\n[CHANGELOG.md](https://redirect.github.com/vitejs/vite/blob/v5.4.4/packages/vite/CHANGELOG.md)\nfor details.\n\n
\n\n
\nvitest-dev/vitest (vitest)\n\n###\n[`v2.1.1`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v2.1.1)\n\n[Compare\nSource](https://redirect.github.com/vitest-dev/vitest/compare/v2.1.0...v2.1.1)\n\n#####    🐞 Bug Fixes\n\n- **browser**:\n- Make example test callbacks async  -  by\n[@​aqandrew](https://redirect.github.com/aqandrew) in\n[https://github.com/vitest-dev/vitest/issues/6484](https://redirect.github.com/vitest-dev/vitest/issues/6484)\n[(16aa7)](https://redirect.github.com/vitest-dev/vitest/commit/16aa76c2)\n- Optimize vitest-browser-vue correctly  -  by\n[@​sheremet-va](https://redirect.github.com/sheremet-va) in\n[https://github.com/vitest-dev/vitest/issues/6490](https://redirect.github.com/vitest-dev/vitest/issues/6490)\n[(5cbb0)](https://redirect.github.com/vitest-dev/vitest/commit/5cbb0bba)\n- **workspace**:\n- Resolve glob pattern once to avoid name collision  -  by\n[@​sheremet-va](https://redirect.github.com/sheremet-va) in\n[https://github.com/vitest-dev/vitest/issues/6489](https://redirect.github.com/vitest-dev/vitest/issues/6489)\n[(36b5a)](https://redirect.github.com/vitest-dev/vitest/commit/36b5aceb)\n\n#####     [View changes on\nGitHub](https://redirect.github.com/vitest-dev/vitest/compare/v2.1.0...v2.1.1)\n\n###\n[`v2.1.0`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v2.1.0)\n\n[Compare\nSource](https://redirect.github.com/vitest-dev/vitest/compare/v2.0.5...v2.1.0)\n\nThis release makes another big change to the Browser Mode by introducing\n[locators API](https://vitest.dev/guide/browser/locators.html):\n\n```ts\ntest('renders blog posts', async () => {\n const screen = page.render()\n\n await expect.element(screen.getByRole('heading', { name: 'Blog' })).toBeInTheDocument()\n\n const [firstPost] = screen.getByRole('listitem').all()\n\n await firstPost.getByRole('button', { name: 'Delete' }).click()\n\n expect(screen.getByRole('listitem').all()).toHaveLength(3)\n})\n```\n\nYou can use either\n[vitest-browser-vue](https://redirect.github.com/vitest-dev/vitest-browser-vue),\n[vitest-browser-svelte\n](https://redirect.github.com/vitest-dev/vitest-browser-svelte) or\n[vitest-browser-react](https://redirect.github.com/vitest-dev/vitest-browser-react)\nto render components and make assertions using locators. Locators are\nalso available on the `page` object from `@vitest/browser/context`.\n\n#####    🚀 Features\n\n- **api**:\n- Make spec into a class instead of a tuple  -  by\n[@​sheremet-va](https://redirect.github.com/sheremet-va) in\n[https://github.com/vitest-dev/vitest/issues/6355](https://redirect.github.com/vitest-dev/vitest/issues/6355)\n[(874a1)](https://redirect.github.com/vitest-dev/vitest/commit/874a121e)\n- **browser**:\n- Move page.config to server.config, add more docs  -  by\n[@​sheremet-va](https://redirect.github.com/sheremet-va) in\n[https://github.com/vitest-dev/vitest/issues/6252](https://redirect.github.com/vitest-dev/vitest/issues/6252)\n[(af2b8)](https://redirect.github.com/vitest-dev/vitest/commit/af2b813c)\n- Make iframe scalable, improve documentation  -  by\n[@​sheremet-va](https://redirect.github.com/sheremet-va) in\n[https://github.com/vitest-dev/vitest/issues/6257](https://redirect.github.com/vitest-dev/vitest/issues/6257)\n[(74ca1)](https://redirect.github.com/vitest-dev/vitest/commit/74ca11a4)\n- Introduce built-in locators  -  by\n[@​sheremet-va](https://redirect.github.com/sheremet-va) in\n[https://github.com/vitest-dev/vitest/issues/6084](https://redirect.github.com/vitest-dev/vitest/issues/6084)\n[(3347f)](https://redirect.github.com/vitest-dev/vitest/commit/3347f83e)\n- Support v8 coverage  -  by\n[@​AriPerkkio](https://redirect.github.com/AriPerkkio) in\n[https://github.com/vitest-dev/vitest/issues/6273](https://redirect.github.com/vitest-dev/vitest/issues/6273)\n[(34199)](https://redirect.github.com/vitest-dev/vitest/commit/34199bdf)\n- Support `userEvent.upload` in playwright provider  -  by\n[@​sheremet-va](https://redirect.github.com/sheremet-va) in\n[https://github.com/vitest-dev/vitest/issues/6442](https://redirect.github.com/vitest-dev/vitest/issues/6442)\n[(cf148)](https://redirect.github.com/vitest-dev/vitest/commit/cf148645)\n- Support `--inspect`  -  by\n[@​AriPerkkio](https://redirect.github.com/AriPerkkio) in\n[https://github.com/vitest-dev/vitest/issues/6433](https://redirect.github.com/vitest-dev/vitest/issues/6433)\n[(0499a)](https://redirect.github.com/vitest-dev/vitest/commit/0499a315)\n- Support `--inspect-brk`  -  by\n[@​AriPerkkio](https://redirect.github.com/AriPerkkio) in\n[https://github.com/vitest-dev/vitest/issues/6434](https://redirect.github.com/vitest-dev/vitest/issues/6434)\n[(7ab0f)](https://redirect.github.com/vitest-dev/vitest/commit/7ab0f4a8)\n- **cli**:\n- Extend existing list command to output only a list of file names  - \nby [@​Ma-hawaj](https://redirect.github.com/Ma-hawaj) and\n[@​sheremet-va](https://redirect.github.com/sheremet-va) in\n[https://github.com/vitest-dev/vitest/issues/6392](https://redirect.github.com/vitest-dev/vitest/issues/6392)\n[(008f0)](https://redirect.github.com/vitest-dev/vitest/commit/008f00b2)\n- **coverage**:\n- Add `--exclude-after-remap`  -  by\n[@​AriPerkkio](https://redirect.github.com/AriPerkkio) in\n[https://github.com/vitest-dev/vitest/issues/6309](https://redirect.github.com/vitest-dev/vitest/issues/6309)\n[(5932a)](https://redirect.github.com/vitest-dev/vitest/commit/5932a7f9)\n- **mocker**:\n- Introduce\n[@​vitest/mocker](https://redirect.github.com/vitest/mocker)\npackage, allow `{ spy: true }` instead of a factory  -  by\n[@​sheremet-va](https://redirect.github.com/sheremet-va) in\n[https://github.com/vitest-dev/vitest/issues/6289](https://redirect.github.com/vitest-dev/vitest/issues/6289)\n[(95f02)](https://redirect.github.com/vitest-dev/vitest/commit/95f0203f)\n- **vitest**:\n- Add \"provide\" option  -  by\n[@​sheremet-va](https://redirect.github.com/sheremet-va) in\n[https://github.com/vitest-dev/vitest/issues/6253](https://redirect.github.com/vitest-dev/vitest/issues/6253)\n[(4409d)](https://redirect.github.com/vitest-dev/vitest/commit/4409d779)\n- Add return type and promisable mockFactory  -  by\n[@​syi0808](https://redirect.github.com/syi0808) and\n[@​sheremet-va](https://redirect.github.com/sheremet-va) in\n[https://github.com/vitest-dev/vitest/issues/6139](https://redirect.github.com/vitest-dev/vitest/issues/6139)\n[(f5e0b)](https://redirect.github.com/vitest-dev/vitest/commit/f5e0b987)\n- Add `vi.advanceTimersToNextFrame`  -  by\n[@​bnjm](https://redirect.github.com/bnjm) and\n[@​sheremet-va](https://redirect.github.com/sheremet-va) in\n[https://github.com/vitest-dev/vitest/issues/6347](https://redirect.github.com/vitest-dev/vitest/issues/6347)\n[(8ff63)](https://redirect.github.com/vitest-dev/vitest/commit/8ff63560)\n- Allow env to be stubbed to undefined  -  by\n[@​JSanchezIO](https://redirect.github.com/JSanchezIO) and\n[@​sheremet-va](https://redirect.github.com/sheremet-va) in\n[https://github.com/vitest-dev/vitest/issues/6359](https://redirect.github.com/vitest-dev/vitest/issues/6359)\n[(c3b27)](https://redirect.github.com/vitest-dev/vitest/commit/c3b2757c)\n\n#####    🐞 Bug Fixes\n\n- Correctly resolve nested mocks with `index` file  -  by\n[@​sheremet-va](https://redirect.github.com/sheremet-va) in\n[https://github.com/vitest-dev/vitest/issues/6266](https://redirect.github.com/vitest-dev/vitest/issues/6266)\n[(081cf)](https://redirect.github.com/vitest-dev/vitest/commit/081cfe03)\n- Don't panic when coverage.reporter is a string  -  by\n[@​sheremet-va](https://redirect.github.com/sheremet-va) in\n[https://github.com/vitest-dev/vitest/issues/6267](https://redirect.github.com/vitest-dev/vitest/issues/6267)\n[(7b37d)](https://redirect.github.com/vitest-dev/vitest/commit/7b37d27b)\n- Align RawMatcherFn type definition with Jest  -  by\n[@​wheresrhys](https://redirect.github.com/wheresrhys) in\n[https://github.com/vitest-dev/vitest/issues/6351](https://redirect.github.com/vitest-dev/vitest/issues/6351)\n[(d09f0)](https://redirect.github.com/vitest-dev/vitest/commit/d09f00c7)\n- Cjs build of vite node server  -  by\n[@​AkaraChen](https://redirect.github.com/AkaraChen) in\n[https://github.com/vitest-dev/vitest/issues/6389](https://redirect.github.com/vitest-dev/vitest/issues/6389)\n[(12e70)](https://redirect.github.com/vitest-dev/vitest/commit/12e702bd)\n- Allow inlining vite's cached dependencies  -  by\n[@​chriswheeldon-peakon](https://redirect.github.com/chriswheeldon-peakon)\nin\n[https://github.com/vitest-dev/vitest/issues/6284](https://redirect.github.com/vitest-dev/vitest/issues/6284)\n[(03208)](https://redirect.github.com/vitest-dev/vitest/commit/03208017)\n- Print unexpected error message if peer dependencies have a different\nversion  -  by\n[@​sheremet-va](https://redirect.github.com/sheremet-va) in\n[https://github.com/vitest-dev/vitest/issues/6446](https://redirect.github.com/vitest-dev/vitest/issues/6446)\n[(b992b)](https://redirect.github.com/vitest-dev/vitest/commit/b992b346)\n- Ignore importer when resolving Vitest  -  by\n[@​sheremet-va](https://redirect.github.com/sheremet-va) in\n[https://github.com/vitest-dev/vitest/issues/6469](https://redirect.github.com/vitest-dev/vitest/issues/6469)\n[(0b447)](https://redirect.github.com/vitest-dev/vitest/commit/0b447226)\n- `expect.getState().testPath` always returns correct path  -  by\n[@​sheremet-va](https://redirect.github.com/sheremet-va) in\n[https://github.com/vitest-dev/vitest/issues/6472](https://redirect.github.com/vitest-dev/vitest/issues/6472)\n[(ac698)](https://redirect.github.com/vitest-dev/vitest/commit/ac698b1c)\n- UserEvent works consistently between providers  -  by\n[@​sheremet-va](https://redirect.github.com/sheremet-va) in\n[https://github.com/vitest-dev/vitest/issues/6480](https://redirect.github.com/vitest-dev/vitest/issues/6480)\n[(0b4da)](https://redirect.github.com/vitest-dev/vitest/commit/0b4da69e)\n- **browser**:\n- Print correct stack trace for unhandled errors  -  by\n[@​sheremet-va](https://redirect.github.com/sheremet-va) in\n[https://github.com/vitest-dev/vitest/issues/6134](https://redirect.github.com/vitest-dev/vitest/issues/6134)\n[(1da6c)](https://redirect.github.com/vitest-dev/vitest/commit/1da6cebe)\n- Use documentElement as the root for selector  -  by\n[@​sheremet-va](https://redirect.github.com/sheremet-va)\n[(d8077)](https://redirect.github.com/vitest-dev/vitest/commit/d807767f)\n- Keep querying elements even if locator is created with elementLocator,\nadd pubic @​vitest/browser/utils  -  by\n[@​sheremet-va](https://redirect.github.com/sheremet-va) in\n[https://github.com/vitest-dev/vitest/issues/6296](https://redirect.github.com/vitest-dev/vitest/issues/6296)\n[(30dc5)](https://redirect.github.com/vitest-dev/vitest/commit/30dc5793)\n- Produce valid config file if preview provider is used  -  by\n[@​sheremet-va](https://redirect.github.com/sheremet-va) in\n[https://github.com/vitest-dev/vitest/issues/6305](https://redirect.github.com/vitest-dev/vitest/issues/6305)\n[(7f0ae)](https://redirect.github.com/vitest-dev/vitest/commit/7f0ae292)\n- Correctly run in-source tests in the browser  -  by\n[@​sheremet-va](https://redirect.github.com/sheremet-va) in\n[https://github.com/vitest-dev/vitest/issues/6440](https://redirect.github.com/vitest-dev/vitest/issues/6440)\n[(c8531)](https://redirect.github.com/vitest-dev/vitest/commit/c853126e)\n- Exclude missed packages from optimization, print help message  -  by\n[@​sheremet-va](https://redirect.github.com/sheremet-va) in\n[https://github.com/vitest-dev/vitest/issues/6445](https://redirect.github.com/vitest-dev/vitest/issues/6445)\n[(8d883)](https://redirect.github.com/vitest-dev/vitest/commit/8d883cf0)\n- Define mocker as a dependency  -  by\n[@​sheremet-va](https://redirect.github.com/sheremet-va) in\n[https://github.com/vitest-dev/vitest/issues/6476](https://redirect.github.com/vitest-dev/vitest/issues/6476)\n[(9560a)](https://redirect.github.com/vitest-dev/vitest/commit/9560ab7f)\n- **coverage**:\n- Warn if `vitest` and `@vitest/*` versions don't match  -  by\n[@​AriPerkkio](https://redirect.github.com/AriPerkkio) in\n[https://github.com/vitest-dev/vitest/issues/6317](https://redirect.github.com/vitest-dev/vitest/issues/6317)\n[(e662c)](https://redirect.github.com/vitest-dev/vitest/commit/e662c7b2)\n- V8 to support source maps with multiple sources  -  by\n[@​AriPerkkio](https://redirect.github.com/AriPerkkio) and\n[@​sheremet-va](https://redirect.github.com/sheremet-va) in\n[https://github.com/vitest-dev/vitest/issues/6120](https://redirect.github.com/vitest-dev/vitest/issues/6120)\n[(1f6cb)](https://redirect.github.com/vitest-dev/vitest/commit/1f6cb59f)\n- V8 to warn instead of crash when conversion fails  -  by\n[@​AriPerkkio](https://redirect.github.com/AriPerkkio) in\n[https://github.com/vitest-dev/vitest/issues/6318](https://redirect.github.com/vitest-dev/vitest/issues/6318)\n[(91dea)](https://redirect.github.com/vitest-dev/vitest/commit/91dea8c1)\n- Use project specific `vitenode` for uncovered files  -  by\n[@​AriPerkkio](https://redirect.github.com/AriPerkkio) in\n[https://github.com/vitest-dev/vitest/issues/6044](https://redirect.github.com/vitest-dev/vitest/issues/6044)\n[(da52d)](https://redirect.github.com/vitest-dev/vitest/commit/da52d23f)\n- **runner**:\n- Use `performance.now` instead of `Date.now` for duration  -  by\n[@​LuciNyan](https://redirect.github.com/LuciNyan) in\n[https://github.com/vitest-dev/vitest/issues/6382](https://redirect.github.com/vitest-dev/vitest/issues/6382)\n[(fe489)](https://redirect.github.com/vitest-dev/vitest/commit/fe489432)\n- Async assertion auto await should timeout  -  by\n[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in\n[https://github.com/vitest-dev/vitest/issues/6391](https://redirect.github.com/vitest-dev/vitest/issues/6391)\n[(ad6e7)](https://redirect.github.com/vitest-dev/vitest/commit/ad6e72fc)\n- **snapshot**:\n- Reject multiple `toMatchInlineSnapshot` updates at the same location\n -  by [@​hi-ogawa](https://redirect.github.com/hi-ogawa) in\n[https://github.com/vitest-dev/vitest/issues/6332](https://redirect.github.com/vitest-dev/vitest/issues/6332)\n[(1606f)](https://redirect.github.com/vitest-dev/vitest/commit/1606f34f)\n- Improve inline snapshot inside loop rejection  -  by\n[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in\n[https://github.com/vitest-dev/vitest/issues/6339](https://redirect.github.com/vitest-dev/vitest/issues/6339)\n[(e0368)](https://redirect.github.com/vitest-dev/vitest/commit/e03683c5)\n- **typecheck**:\n- Run both runtime and typecheck tests if `typecheck.include` overlaps\nwith `include`  -  by\n[@​sheremet-va](https://redirect.github.com/sheremet-va) in\n[https://github.com/vitest-dev/vitest/issues/6256](https://redirect.github.com/vitest-dev/vitest/issues/6256)\n[(153ff)](https://redirect.github.com/vitest-dev/vitest/commit/153ff01b)\n- **types**:\n- Allow Callbacks Passed to before\\*/after\\* to Return Anything  -  by\n[@​LuciNyan](https://redirect.github.com/LuciNyan) in\n[https://github.com/vitest-dev/vitest/issues/6393](https://redirect.github.com/vitest-dev/vitest/issues/6393)\n[(f6217)](https://redirect.github.com/vitest-dev/vitest/commit/f6217a22)\n- **ui**:\n- Remove \"filters\" flickering  -  by\n[@​sheremet-va](https://redirect.github.com/sheremet-va) in\n[https://github.com/vitest-dev/vitest/issues/6463](https://redirect.github.com/vitest-dev/vitest/issues/6463)\n[(0223b)](https://redirect.github.com/vitest-dev/vitest/commit/0223bb79)\n- Render project name consistently  -  by\n[@​sheremet-va](https://redirect.github.com/sheremet-va) in\n[https://github.com/vitest-dev/vitest/issues/6329](https://redirect.github.com/vitest-dev/vitest/issues/6329)\n[(94a18)](https://redirect.github.com/vitest-dev/vitest/commit/94a186ec)\n- **vite-node**:\n- Disable watcher if hmr is disabled  -  by\n[@​sheremet-va](https://redirect.github.com/sheremet-va) in\n[https://github.com/vitest-dev/vitest/issues/6251](https://redirect.github.com/vitest-dev/vitest/issues/6251)\n[(c51c6)](https://redirect.github.com/vitest-dev/vitest/commit/c51c67aa)\n- Fix watch on vite 6  -  by\n[@​hi-ogawa](https://redirect.github.com/hi-ogawa) in\n[https://github.com/vitest-dev/vitest/issues/6422](https://redirect.github.com/vitest-dev/vitest/issues/6422)\n[(c3ac4)](https://redirect.github.com/vitest-dev/vitest/commit/c3ac43c1)\n- **vitest**:\n- Update json reporter output  -  by\n[@​Emiyaaaaa](https://redirect.github.com/Emiyaaaaa) in\n[https://github.com/vitest-dev/vitest/issues/6064](https://redirect.github.com/vitest-dev/vitest/issues/6064)\n[(c9979)](https://redirect.github.com/vitest-dev/vitest/commit/c997937b)\n- Add more type guards for --merge-reports  -  by\n[@​sheremet-va](https://redirect.github.com/sheremet-va) in\n[https://github.com/vitest-dev/vitest/issues/6307](https://redirect.github.com/vitest-dev/vitest/issues/6307)\n[(0a5d8)](https://redirect.github.com/vitest-dev/vitest/commit/0a5d8169)\n- Always resolve vitest to the root version  -  by\n[@​sheremet-va](https://redirect.github.com/sheremet-va) in\n[https://github.com/vitest-dev/vitest/issues/6369](https://redirect.github.com/vitest-dev/vitest/issues/6369)\n[(163d7)](https://redirect.github.com/vitest-dev/vitest/commit/163d7624)\n- Dispose vmForks listeners to avoid memory leak  -  by\n[@​sheremet-va](https://redirect.github.com/sheremet-va) in\n[https://github.com/vitest-dev/vitest/issues/6448](https://redirect.github.com/vitest-dev/vitest/issues/6448)\n[(2673c)](https://redirect.github.com/vitest-dev/vitest/commit/2673c3bb)\n- **workspace**:\n- Correctly resolve workspace globs and file paths  -  by\n[@​sheremet-va](https://redirect.github.com/sheremet-va) in\n[https://github.com/vitest-dev/vitest/issues/6316](https://redirect.github.com/vitest-dev/vitest/issues/6316)\n[(afdcb)](https://redirect.github.com/vitest-dev/vitest/commit/afdcb8f2)\n\n#####     [View changes on\nGitHub](https://redirect.github.com/vitest-dev/vitest/compare/v2.0.5...v2.1.0)\n\n
\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"before 4am on Monday\" (UTC),\nAutomerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Enabled.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get\n[config\nhelp](https://redirect.github.com/renovatebot/renovate/discussions) if\nthat's undesired.\n\n---\n\n- [ ] If you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\nView the [repository job\nlog](https://developer.mend.io/github/SebastianGoeb/chinese-chart).\n\n\n\nCo-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>","shortMessageHtmlLink":"fix(deps): update all non-major dependencies (#175)"}},{"before":null,"after":"b940c212d70a5a12f95f5bbd0fb0c22d4cf1825c","ref":"refs/heads/renovate/all-minor-patch","pushedAt":"2024-09-16T00:26:57.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"},"commit":{"message":"fix(deps): update all non-major dependencies","shortMessageHtmlLink":"fix(deps): update all non-major dependencies"}},{"before":"62e111e381491c62432a510e86014d07f3548765","after":"1f69013b72142eb084a45076f8daa092478b79db","ref":"refs/heads/renovate/major-eslint-monorepo","pushedAt":"2024-09-09T04:02:24.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"},"commit":{"message":"chore(deps): update dependency eslint to v9","shortMessageHtmlLink":"chore(deps): update dependency eslint to v9"}},{"before":"ff79f03a8ec379c10f840764fa79d41608e2208f","after":null,"ref":"refs/heads/renovate/all-minor-patch","pushedAt":"2024-09-09T01:14:14.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"}},{"before":"1a9a00d7159c00dec2149be762701cb31ec972df","after":"98a57d43c623ab5a75859b86b9cf30f9fca42af9","ref":"refs/heads/main","pushedAt":"2024-09-09T01:14:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"},"commit":{"message":"chore(deps): update all non-major dependencies (#174)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Adoption | Passing | Confidence | Type |\nUpdate |\n|---|---|---|---|---|---|---|---|\n|\n[@tailwindcss/forms](https://redirect.github.com/tailwindlabs/tailwindcss-forms)\n| [`0.5.8` ->\n`0.5.9`](https://renovatebot.com/diffs/npm/@tailwindcss%2fforms/0.5.8/0.5.9)\n|\n[![age](https://developer.mend.io/api/mc/badges/age/npm/@tailwindcss%2fforms/0.5.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@tailwindcss%2fforms/0.5.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@tailwindcss%2fforms/0.5.8/0.5.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@tailwindcss%2fforms/0.5.8/0.5.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n| devDependencies | patch |\n|\n[@typescript-eslint/eslint-plugin](https://typescript-eslint.io/packages/eslint-plugin)\n([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin))\n| [`8.3.0` ->\n`8.4.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/8.3.0/8.4.0)\n|\n[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2feslint-plugin/8.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2feslint-plugin/8.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2feslint-plugin/8.3.0/8.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2feslint-plugin/8.3.0/8.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n| devDependencies | minor |\n|\n[@typescript-eslint/parser](https://typescript-eslint.io/packages/parser)\n([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser))\n| [`8.3.0` ->\n`8.4.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/8.3.0/8.4.0)\n|\n[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fparser/8.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2fparser/8.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2fparser/8.3.0/8.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fparser/8.3.0/8.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n| devDependencies | minor |\n|\n[JamesIves/github-pages-deploy-action](https://redirect.github.com/JamesIves/github-pages-deploy-action)\n| `v4.6.3` -> `v4.6.4` |\n[![age](https://developer.mend.io/api/mc/badges/age/github-tags/JamesIves%2fgithub-pages-deploy-action/v4.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![adoption](https://developer.mend.io/api/mc/badges/adoption/github-tags/JamesIves%2fgithub-pages-deploy-action/v4.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![passing](https://developer.mend.io/api/mc/badges/compatibility/github-tags/JamesIves%2fgithub-pages-deploy-action/v4.6.3/v4.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![confidence](https://developer.mend.io/api/mc/badges/confidence/github-tags/JamesIves%2fgithub-pages-deploy-action/v4.6.3/v4.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n| action | patch |\n| [postcss](https://postcss.org/)\n([source](https://redirect.github.com/postcss/postcss)) | [`8.4.43` ->\n`8.4.45`](https://renovatebot.com/diffs/npm/postcss/8.4.43/8.4.45) |\n[![age](https://developer.mend.io/api/mc/badges/age/npm/postcss/8.4.45?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/postcss/8.4.45?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/postcss/8.4.43/8.4.45?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/postcss/8.4.43/8.4.45?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n| devDependencies | patch |\n| [vite](https://vitejs.dev)\n([source](https://redirect.github.com/vitejs/vite/tree/HEAD/packages/vite))\n| [`5.4.2` ->\n`5.4.3`](https://renovatebot.com/diffs/npm/vite/5.4.2/5.4.3) |\n[![age](https://developer.mend.io/api/mc/badges/age/npm/vite/5.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/5.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/5.4.2/5.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/5.4.2/5.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n| overrides | patch |\n| [vite](https://vitejs.dev)\n([source](https://redirect.github.com/vitejs/vite/tree/HEAD/packages/vite))\n| [`5.4.2` ->\n`5.4.3`](https://renovatebot.com/diffs/npm/vite/5.4.2/5.4.3) |\n[![age](https://developer.mend.io/api/mc/badges/age/npm/vite/5.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/5.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/5.4.2/5.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/5.4.2/5.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n| devDependencies | patch |\n|\n[vite-plugin-pwa](https://redirect.github.com/vite-pwa/vite-plugin-pwa)\n| [`0.20.2` ->\n`0.20.5`](https://renovatebot.com/diffs/npm/vite-plugin-pwa/0.20.2/0.20.5)\n|\n[![age](https://developer.mend.io/api/mc/badges/age/npm/vite-plugin-pwa/0.20.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite-plugin-pwa/0.20.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite-plugin-pwa/0.20.2/0.20.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite-plugin-pwa/0.20.2/0.20.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n| devDependencies | patch |\n\n---\n\n### Release Notes\n\n
\ntailwindlabs/tailwindcss-forms\n(@​tailwindcss/forms)\n\n###\n[`v0.5.9`](https://redirect.github.com/tailwindlabs/tailwindcss-forms/blob/HEAD/CHANGELOG.md#059---2024-09-05)\n\n[Compare\nSource](https://redirect.github.com/tailwindlabs/tailwindcss-forms/compare/v0.5.8...v0.5.9)\n\n##### Fixed\n\n- Fallback to static chevron color if theme is using variables\n([#​167](https://redirect.github.com/tailwindlabs/tailwindcss-forms/pull/167))\n\n
\n\n
\ntypescript-eslint/typescript-eslint\n(@​typescript-eslint/eslint-plugin)\n\n###\n[`v8.4.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#840-2024-09-02)\n\n[Compare\nSource](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.3.0...v8.4.0)\n\nThis was a version bump only for eslint-plugin to align it with other\nprojects, there were no code changes.\n\nYou can read about our [versioning\nstrategy](https://main--typescript-eslint.netlify.app/users/versioning)\nand\n[releases](https://main--typescript-eslint.netlify.app/users/releases)\non our website.\n\n
\n\n
\ntypescript-eslint/typescript-eslint\n(@​typescript-eslint/parser)\n\n###\n[`v8.4.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#840-2024-09-02)\n\n[Compare\nSource](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.3.0...v8.4.0)\n\nThis was a version bump only for parser to align it with other projects,\nthere were no code changes.\n\nYou can read about our [versioning\nstrategy](https://main--typescript-eslint.netlify.app/users/versioning)\nand\n[releases](https://main--typescript-eslint.netlify.app/users/releases)\non our website.\n\n
\n\n
\nJamesIves/github-pages-deploy-action\n(JamesIves/github-pages-deploy-action)\n\n###\n[`v4.6.4`](https://redirect.github.com/JamesIves/github-pages-deploy-action/releases/tag/v4.6.4)\n\n[Compare\nSource](https://redirect.github.com/JamesIves/github-pages-deploy-action/compare/v4.6.3...v4.6.4)\n\n\n\n#### What's Changed\n\n#### What's Changed\n\n##### Bug Fixes 🐝\n\n- fix: resolved an issue where the default config was not being applied\nto the non-action version of the project.\n\n##### Build 🔧\n\n- build(deps): bump actions/checkout from 3 to 4 by\n[@​dependabot](https://redirect.github.com/dependabot) in\n[https://github.com/JamesIves/github-pages-deploy-action/pull/1639](https://redirect.github.com/JamesIves/github-pages-deploy-action/pull/1639)\n- build(deps): bump the misc group across 1 directory with 6 updates by\n[@​dependabot](https://redirect.github.com/dependabot) in\n[https://github.com/JamesIves/github-pages-deploy-action/pull/1642](https://redirect.github.com/JamesIves/github-pages-deploy-action/pull/1642)\n- build(deps): bump the misc group across 1 directory with 8 updates by\n[@​dependabot](https://redirect.github.com/dependabot) in\n[https://github.com/JamesIves/github-pages-deploy-action/pull/1648](https://redirect.github.com/JamesIves/github-pages-deploy-action/pull/1648)\n- build(deps-dev): bump ts-jest from 29.2.2 to 29.2.3 in the misc group\nby [@​dependabot](https://redirect.github.com/dependabot) in\n[https://github.com/JamesIves/github-pages-deploy-action/pull/1649](https://redirect.github.com/JamesIves/github-pages-deploy-action/pull/1649)\n- build(deps): bump micromatch from 4.0.4 to 4.0.8 by\n[@​dependabot](https://redirect.github.com/dependabot) in\n[https://github.com/JamesIves/github-pages-deploy-action/pull/1679](https://redirect.github.com/JamesIves/github-pages-deploy-action/pull/1679)\n\n**Full Changelog**:\nhttps://github.com/JamesIves/github-pages-deploy-action/compare/v4...v4.6.4\n\n
\n\n
\npostcss/postcss (postcss)\n\n###\n[`v8.4.45`](https://redirect.github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8445)\n\n[Compare\nSource](https://redirect.github.com/postcss/postcss/compare/8.4.44...8.4.45)\n\n- Removed unnecessary fix which could lead to infinite loop.\n\n###\n[`v8.4.44`](https://redirect.github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8444)\n\n[Compare\nSource](https://redirect.github.com/postcss/postcss/compare/8.4.43...8.4.44)\n\n- Another way to fix `markClean is not a function` error.\n\n
\n\n
\nvitejs/vite (vite)\n\n###\n[`v5.4.3`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small543-2024-09-03-small)\n\n[Compare\nSource](https://redirect.github.com/vitejs/vite/compare/v5.4.2...v5.4.3)\n\n- fix: allow getting URL of JS files in publicDir\n([#​17915](https://redirect.github.com/vitejs/vite/issues/17915))\n([943ece1](https://redirect.github.com/vitejs/vite/commit/943ece177e7709b3ba574e810afce347c51d4442)),\ncloses\n[#​17915](https://redirect.github.com/vitejs/vite/issues/17915)\n- fix: cjs warning respect the logLevel flag\n([#​17993](https://redirect.github.com/vitejs/vite/issues/17993))\n([dc3c14f](https://redirect.github.com/vitejs/vite/commit/dc3c14f39fcd57867c8ae81b75ae768b53b4b880)),\ncloses\n[#​17993](https://redirect.github.com/vitejs/vite/issues/17993)\n- fix: improve CJS warning trace information\n([#​17926](https://redirect.github.com/vitejs/vite/issues/17926))\n([5c5f82c](https://redirect.github.com/vitejs/vite/commit/5c5f82c84bb64309875b42eee9d4dd525ab42e8c)),\ncloses\n[#​17926](https://redirect.github.com/vitejs/vite/issues/17926)\n- fix: only remove entry assets handled by Vite core\n([#​17916](https://redirect.github.com/vitejs/vite/issues/17916))\n([ebfaa7e](https://redirect.github.com/vitejs/vite/commit/ebfaa7e6019783f308db5e759a6a67abb7cc626c)),\ncloses\n[#​17916](https://redirect.github.com/vitejs/vite/issues/17916)\n- fix: waitForRequestIdle locked\n([#​17982](https://redirect.github.com/vitejs/vite/issues/17982))\n([ad13760](https://redirect.github.com/vitejs/vite/commit/ad1376018a94b42540a8488d897cc520849e1228)),\ncloses\n[#​17982](https://redirect.github.com/vitejs/vite/issues/17982)\n- fix(css): fix directory index import in sass modern api\n([#​17960](https://redirect.github.com/vitejs/vite/issues/17960))\n([9b001ba](https://redirect.github.com/vitejs/vite/commit/9b001baa70c8489ac5550107c110a5dca281cda4)),\ncloses\n[#​17960](https://redirect.github.com/vitejs/vite/issues/17960)\n- fix(css): fix sass `file://` reference\n([#​17909](https://redirect.github.com/vitejs/vite/issues/17909))\n([561b940](https://redirect.github.com/vitejs/vite/commit/561b940f6f963fbb78058a6e23b4adad53a2edb9)),\ncloses\n[#​17909](https://redirect.github.com/vitejs/vite/issues/17909)\n- fix(css): fix sass modern source map\n([#​17938](https://redirect.github.com/vitejs/vite/issues/17938))\n([d428e7e](https://redirect.github.com/vitejs/vite/commit/d428e7e3a05f8da5ea00bb1b6a0827a5cc225899)),\ncloses\n[#​17938](https://redirect.github.com/vitejs/vite/issues/17938)\n- fix(deps): bump tsconfck\n([#​17990](https://redirect.github.com/vitejs/vite/issues/17990))\n([8c661b2](https://redirect.github.com/vitejs/vite/commit/8c661b20e92f33eb2e3ba3841b20dd6f6076f1ef)),\ncloses\n[#​17990](https://redirect.github.com/vitejs/vite/issues/17990)\n- fix(html): rewrite assets url in