From fb09f2126b36628928e6888b047582f8995518a2 Mon Sep 17 00:00:00 2001 From: Michelle Date: Mon, 6 Apr 2026 22:07:38 +0400 Subject: [PATCH 01/13] chore: update dependencies and replace vite-tsconfig-paths with native resolve MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Dependencies: - Bump next 16.2.1→16.2.2, tailwindcss 4.1.18→4.2.2, playwright 1.58.2→1.59.1, biome 2.4.9→2.4.10 - Bump baseline-browser-mapping, lefthook, @types/node - Remove vite-tsconfig-paths in favour of Vite's built-in tsconfigPaths resolve option Dropping vite-tsconfig-paths simplifies the Vitest plugin chain with no behaviour change — Vite now supports this natively. Co-Authored-By: Claude Opus 4.6 (1M context) --- .claude/CLAUDE.md | 9 +- biome.json | 2 +- package-lock.json | 1501 ++++++++++++++++++++------------------------- package.json | 15 +- vitest.config.ts | 8 +- 5 files changed, 676 insertions(+), 859 deletions(-) diff --git a/.claude/CLAUDE.md b/.claude/CLAUDE.md index 8d6dcf0..c29c40a 100644 --- a/.claude/CLAUDE.md +++ b/.claude/CLAUDE.md @@ -8,10 +8,11 @@ A starter template repository — not a product. Clone it, add a UI component li ## Tech Stack -- **Framework**: Next.js 16 (App Router, React Compiler, TypeScript strict) -- **Styling**: Tailwind CSS v4 -- **Testing**: Vitest + Testing Library (unit), Playwright (E2E) -- **Quality**: Biome (lint + format, replaces ESLint/Prettier), Lefthook (git hooks) +- **Framework**: Next.js 16.2 (React 19, App Router, React Compiler, TypeScript 6) +- **Styling**: Tailwind CSS 4.2 +- **Testing**: Vitest 4.1 + Testing Library (unit), Playwright 1.59 (E2E) +- **Quality**: Biome 2.4 (lint + format, replaces ESLint/Prettier) +- **Git Hooks**: Lefthook 2.1 - **Deployment**: Vercel (Preview on PR, Production on merge) ## Breaking Changes (Next.js 16 / Tailwind 4) diff --git a/biome.json b/biome.json index 57b2a07..9703e95 100644 --- a/biome.json +++ b/biome.json @@ -1,5 +1,5 @@ { - "$schema": "https://biomejs.dev/schemas/2.4.9/schema.json", + "$schema": "https://biomejs.dev/schemas/2.4.10/schema.json", "vcs": { "enabled": true, "clientKind": "git", diff --git a/package-lock.json b/package-lock.json index b053743..99d342f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,45 +10,40 @@ "dependencies": { "@vercel/analytics": "^2.0.1", "@vercel/speed-insights": "^2.0.0", - "next": "^16.2.1", + "next": "^16.2.2", "next-themes": "^0.4.6", "react": "^19.2.4", "react-dom": "^19.2.4" }, "devDependencies": { - "@biomejs/biome": "^2.4.9", - "@playwright/test": "^1.58.2", + "@biomejs/biome": "^2.4.10", + "@playwright/test": "^1.59.1", "@rolldown/plugin-babel": "^0.2.2", "@tailwindcss/postcss": "^4.2.2", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.2", "@testing-library/user-event": "^14.6.1", - "@types/node": "^25.5.0", + "@types/node": "^25.5.2", "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^6.0.1", "babel-plugin-react-compiler": "1.0.0", - "baseline-browser-mapping": "^2.10.12", + "baseline-browser-mapping": "^2.10.16", "jsdom": "^29.0.1", - "lefthook": "^2.1.4", + "lefthook": "^2.1.5", "markdownlint-cli2": "^0.22.0", - "tailwindcss": "^4.1.18", + "tailwindcss": "^4.2.2", "typescript": "^6.0.2", - "vite-tsconfig-paths": "^6.1.1", "vitest": "^4.1.2" } }, "node_modules/@adobe/css-tools": { "version": "4.4.4", - "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.4.tgz", - "integrity": "sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==", "dev": true, "license": "MIT" }, "node_modules/@alloc/quick-lru": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", "dev": true, "license": "MIT", "engines": { @@ -59,9 +54,7 @@ } }, "node_modules/@asamuzakjp/css-color": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-5.1.1.tgz", - "integrity": "sha512-iGWN8E45Ws0XWx3D44Q1t6vX2LqhCKcwfmwBYCDsFrYFS6m4q/Ks61L2veETaLv+ckDC6+dTETJoaAAb7VjLiw==", + "version": "5.1.5", "dev": true, "license": "MIT", "dependencies": { @@ -77,8 +70,6 @@ }, "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": { "version": "11.2.7", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.7.tgz", - "integrity": "sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -86,9 +77,7 @@ } }, "node_modules/@asamuzakjp/dom-selector": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-7.0.4.tgz", - "integrity": "sha512-jXR6x4AcT3eIrS2fSNAwJpwirOkGcd+E7F7CP3zjdTqz9B/2huHOL8YJZBgekKwLML+u7qB/6P1LXQuMScsx0w==", + "version": "7.0.6", "dev": true, "license": "MIT", "dependencies": { @@ -104,8 +93,6 @@ }, "node_modules/@asamuzakjp/dom-selector/node_modules/lru-cache": { "version": "11.2.7", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.7.tgz", - "integrity": "sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -114,15 +101,11 @@ }, "node_modules/@asamuzakjp/nwsapi": { "version": "2.3.9", - "resolved": "https://registry.npmjs.org/@asamuzakjp/nwsapi/-/nwsapi-2.3.9.tgz", - "integrity": "sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==", "dev": true, "license": "MIT" }, "node_modules/@babel/code-frame": { "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", - "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", "dev": true, "license": "MIT", "peer": true, @@ -137,8 +120,6 @@ }, "node_modules/@babel/compat-data": { "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", - "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", "dev": true, "license": "MIT", "peer": true, @@ -148,8 +129,6 @@ }, "node_modules/@babel/core": { "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", - "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", "dev": true, "license": "MIT", "peer": true, @@ -180,8 +159,6 @@ }, "node_modules/@babel/generator": { "version": "7.29.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", - "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", "dev": true, "license": "MIT", "peer": true, @@ -198,8 +175,6 @@ }, "node_modules/@babel/helper-compilation-targets": { "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", - "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", "dev": true, "license": "MIT", "peer": true, @@ -216,8 +191,6 @@ }, "node_modules/@babel/helper-globals": { "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", - "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", "dev": true, "license": "MIT", "peer": true, @@ -227,8 +200,6 @@ }, "node_modules/@babel/helper-module-imports": { "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", - "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", "dev": true, "license": "MIT", "peer": true, @@ -242,8 +213,6 @@ }, "node_modules/@babel/helper-module-transforms": { "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", - "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", "dev": true, "license": "MIT", "peer": true, @@ -261,8 +230,6 @@ }, "node_modules/@babel/helper-string-parser": { "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", - "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", "devOptional": true, "license": "MIT", "engines": { @@ -271,8 +238,6 @@ }, "node_modules/@babel/helper-validator-identifier": { "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", - "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", "devOptional": true, "license": "MIT", "engines": { @@ -281,8 +246,6 @@ }, "node_modules/@babel/helper-validator-option": { "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", - "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", "dev": true, "license": "MIT", "peer": true, @@ -292,8 +255,6 @@ }, "node_modules/@babel/helpers": { "version": "7.29.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz", - "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==", "dev": true, "license": "MIT", "peer": true, @@ -307,8 +268,6 @@ }, "node_modules/@babel/parser": { "version": "7.29.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz", - "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==", "dev": true, "license": "MIT", "peer": true, @@ -324,8 +283,6 @@ }, "node_modules/@babel/runtime": { "version": "7.29.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.2.tgz", - "integrity": "sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==", "dev": true, "license": "MIT", "engines": { @@ -334,8 +291,6 @@ }, "node_modules/@babel/template": { "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", - "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", "dev": true, "license": "MIT", "peer": true, @@ -350,8 +305,6 @@ }, "node_modules/@babel/traverse": { "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", - "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", "dev": true, "license": "MIT", "peer": true, @@ -370,8 +323,6 @@ }, "node_modules/@babel/types": { "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", - "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", "devOptional": true, "license": "MIT", "dependencies": { @@ -383,9 +334,7 @@ } }, "node_modules/@biomejs/biome": { - "version": "2.4.9", - "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-2.4.9.tgz", - "integrity": "sha512-wvZW92FrwitTcacvCBT8xdAbfbxWfDLwjYMmU3djjqQTh7Ni4ZdiWIT/x5VcZ+RQuxiKzIOzi5D+dcyJDFZMsA==", + "version": "2.4.10", "dev": true, "license": "MIT OR Apache-2.0", "bin": { @@ -399,20 +348,20 @@ "url": "https://opencollective.com/biome" }, "optionalDependencies": { - "@biomejs/cli-darwin-arm64": "2.4.9", - "@biomejs/cli-darwin-x64": "2.4.9", - "@biomejs/cli-linux-arm64": "2.4.9", - "@biomejs/cli-linux-arm64-musl": "2.4.9", - "@biomejs/cli-linux-x64": "2.4.9", - "@biomejs/cli-linux-x64-musl": "2.4.9", - "@biomejs/cli-win32-arm64": "2.4.9", - "@biomejs/cli-win32-x64": "2.4.9" + "@biomejs/cli-darwin-arm64": "2.4.10", + "@biomejs/cli-darwin-x64": "2.4.10", + "@biomejs/cli-linux-arm64": "2.4.10", + "@biomejs/cli-linux-arm64-musl": "2.4.10", + "@biomejs/cli-linux-x64": "2.4.10", + "@biomejs/cli-linux-x64-musl": "2.4.10", + "@biomejs/cli-win32-arm64": "2.4.10", + "@biomejs/cli-win32-x64": "2.4.10" } }, "node_modules/@biomejs/cli-darwin-arm64": { - "version": "2.4.9", - "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.4.9.tgz", - "integrity": "sha512-d5G8Gf2RpH5pYwiHLPA+UpG3G9TLQu4WM+VK6sfL7K68AmhcEQ9r+nkj/DvR/GYhYox6twsHUtmWWWIKfcfQQA==", + "version": "2.4.10", + "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.4.10.tgz", + "integrity": "sha512-vuzzI1cWqDVzOMIkYyHbKqp+AkQq4K7k+UCXWpkYcY/HDn1UxdsbsfgtVpa40shem8Kax4TLDLlx8kMAecgqiw==", "cpu": [ "arm64" ], @@ -427,9 +376,9 @@ } }, "node_modules/@biomejs/cli-darwin-x64": { - "version": "2.4.9", - "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.4.9.tgz", - "integrity": "sha512-LNCLNgqDMG7BLdc3a8aY/dwKPK7+R8/JXJoXjCvZh2gx8KseqBdFDKbhrr7HCWF8SzNhbTaALhTBoh/I6rf9lA==", + "version": "2.4.10", + "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.4.10.tgz", + "integrity": "sha512-14fzASRo+BPotwp7nWULy2W5xeUyFnTaq1V13Etrrxkrih+ez/2QfgFm5Ehtf5vSjtgx/IJycMMpn5kPd5ZNaA==", "cpu": [ "x64" ], @@ -444,13 +393,16 @@ } }, "node_modules/@biomejs/cli-linux-arm64": { - "version": "2.4.9", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.4.9.tgz", - "integrity": "sha512-4adnkAUi6K4C/emPRgYznMOcLlUqZdXWM6aIui4VP4LraE764g6Q4YguygnAUoxKjKIXIWPteKMgRbN0wsgwcg==", + "version": "2.4.10", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.4.10.tgz", + "integrity": "sha512-7MH1CMW5uuxQ/s7FLST63qF8B3Hgu2HRdZ7tA1X1+mk+St4JOuIrqdhIBnnyqeyWJNI+Bww7Es5QZ0wIc1Cmkw==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT OR Apache-2.0", "optional": true, "os": [ @@ -461,13 +413,16 @@ } }, "node_modules/@biomejs/cli-linux-arm64-musl": { - "version": "2.4.9", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.4.9.tgz", - "integrity": "sha512-8RCww5xnPn2wpK4L/QDGDOW0dq80uVWfppPxHIUg6mOs9B6gRmqPp32h1Ls3T8GnW8Wo5A8u7vpTwz4fExN+sw==", + "version": "2.4.10", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.4.10.tgz", + "integrity": "sha512-WrJY6UuiSD/Dh+nwK2qOTu8kdMDlLV3dLMmychIghHPAysWFq1/DGC1pVZx8POE3ZkzKR3PUUnVrtZfMfaJjyQ==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT OR Apache-2.0", "optional": true, "os": [ @@ -478,13 +433,14 @@ } }, "node_modules/@biomejs/cli-linux-x64": { - "version": "2.4.9", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-2.4.9.tgz", - "integrity": "sha512-L10na7POF0Ks/cgLFNF1ZvIe+X4onLkTi5oP9hY+Rh60Q+7fWzKDDCeGyiHUFf1nGIa9dQOOUPGe2MyYg8nMSQ==", + "version": "2.4.10", "cpu": [ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT OR Apache-2.0", "optional": true, "os": [ @@ -495,13 +451,16 @@ } }, "node_modules/@biomejs/cli-linux-x64-musl": { - "version": "2.4.9", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.4.9.tgz", - "integrity": "sha512-5TD+WS9v5vzXKzjetF0hgoaNFHMcpQeBUwKKVi3JbG1e9UCrFuUK3Gt185fyTzvRdwYkJJEMqglRPjmesmVv4A==", + "version": "2.4.10", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.4.10.tgz", + "integrity": "sha512-kDTi3pI6PBN6CiczsWYOyP2zk0IJI08EWEQyDMQWW221rPaaEz6FvjLhnU07KMzLv8q3qSuoB93ua6inSQ55Tw==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT OR Apache-2.0", "optional": true, "os": [ @@ -512,9 +471,9 @@ } }, "node_modules/@biomejs/cli-win32-arm64": { - "version": "2.4.9", - "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.4.9.tgz", - "integrity": "sha512-aDZr0RBC3sMGJOU10BvG7eZIlWLK/i51HRIfScE2lVhfts2dQTreowLiJJd+UYg/tHKxS470IbzpuKmd0MiD6g==", + "version": "2.4.10", + "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.4.10.tgz", + "integrity": "sha512-umwQU6qPzH+ISTf/eHyJ/QoQnJs3V9Vpjz2OjZXe9MVBZ7prgGafMy7yYeRGnlmDAn87AKTF3Q6weLoMGpeqdQ==", "cpu": [ "arm64" ], @@ -529,9 +488,9 @@ } }, "node_modules/@biomejs/cli-win32-x64": { - "version": "2.4.9", - "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-2.4.9.tgz", - "integrity": "sha512-NS4g/2G9SoQ4ktKtz31pvyc/rmgzlcIDCGU/zWbmHJAqx6gcRj2gj5Q/guXhoWTzCUaQZDIqiCQXHS7BcGYc0w==", + "version": "2.4.10", + "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-2.4.10.tgz", + "integrity": "sha512-aW/JU5GuyH4uxMrNYpoC2kjaHlyJGLgIa3XkhPEZI0uKhZhJZU8BuEyJmvgzSPQNGozBwWjC972RaNdcJ9KyJg==", "cpu": [ "x64" ], @@ -547,8 +506,6 @@ }, "node_modules/@bramus/specificity": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@bramus/specificity/-/specificity-2.4.2.tgz", - "integrity": "sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==", "dev": true, "license": "MIT", "dependencies": { @@ -560,8 +517,6 @@ }, "node_modules/@csstools/color-helpers": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-6.0.2.tgz", - "integrity": "sha512-LMGQLS9EuADloEFkcTBR3BwV/CGHV7zyDxVRtVDTwdI2Ca4it0CCVTT9wCkxSgokjE5Ho41hEPgb8OEUwoXr6Q==", "dev": true, "funding": [ { @@ -580,8 +535,6 @@ }, "node_modules/@csstools/css-calc": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.1.1.tgz", - "integrity": "sha512-HJ26Z/vmsZQqs/o3a6bgKslXGFAungXGbinULZO3eMsOyNJHeBBZfup5FiZInOghgoM4Hwnmw+OgbJCNg1wwUQ==", "dev": true, "funding": [ { @@ -604,8 +557,6 @@ }, "node_modules/@csstools/css-color-parser": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.0.2.tgz", - "integrity": "sha512-0GEfbBLmTFf0dJlpsNU7zwxRIH0/BGEMuXLTCvFYxuL1tNhqzTbtnFICyJLTNK4a+RechKP75e7w42ClXSnJQw==", "dev": true, "funding": [ { @@ -632,8 +583,6 @@ }, "node_modules/@csstools/css-parser-algorithms": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-4.0.0.tgz", - "integrity": "sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==", "dev": true, "funding": [ { @@ -655,8 +604,6 @@ }, "node_modules/@csstools/css-syntax-patches-for-csstree": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.2.tgz", - "integrity": "sha512-5GkLzz4prTIpoyeUiIu3iV6CSG3Plo7xRVOFPKI7FVEJ3mZ0A8SwK0XU3Gl7xAkiQ+mDyam+NNp875/C5y+jSA==", "dev": true, "funding": [ { @@ -680,8 +627,6 @@ }, "node_modules/@csstools/css-tokenizer": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-4.0.0.tgz", - "integrity": "sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==", "dev": true, "funding": [ { @@ -700,8 +645,6 @@ }, "node_modules/@emnapi/core": { "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.9.1.tgz", - "integrity": "sha512-mukuNALVsoix/w1BJwFzwXBN/dHeejQtuVzcDsfOEsdpCumXb/E9j8w11h5S54tT1xhifGfbbSm/ICrObRb3KA==", "dev": true, "license": "MIT", "optional": true, @@ -712,8 +655,6 @@ }, "node_modules/@emnapi/runtime": { "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.1.tgz", - "integrity": "sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA==", "license": "MIT", "optional": true, "dependencies": { @@ -722,8 +663,6 @@ }, "node_modules/@emnapi/wasi-threads": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.0.tgz", - "integrity": "sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==", "dev": true, "license": "MIT", "optional": true, @@ -733,8 +672,6 @@ }, "node_modules/@exodus/bytes": { "version": "1.15.0", - "resolved": "https://registry.npmjs.org/@exodus/bytes/-/bytes-1.15.0.tgz", - "integrity": "sha512-UY0nlA+feH81UGSHv92sLEPLCeZFjXOuHhrIo0HQydScuQc8s0A7kL/UdgwgDq8g8ilksmuoF35YVTNphV2aBQ==", "dev": true, "license": "MIT", "engines": { @@ -751,8 +688,6 @@ }, "node_modules/@img/colour": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", - "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==", "license": "MIT", "optional": true, "engines": { @@ -842,6 +777,9 @@ "cpu": [ "arm" ], + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -858,6 +796,9 @@ "cpu": [ "arm64" ], + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -874,6 +815,9 @@ "cpu": [ "ppc64" ], + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -890,6 +834,9 @@ "cpu": [ "riscv64" ], + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -906,6 +853,9 @@ "cpu": [ "s390x" ], + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -917,11 +867,12 @@ }, "node_modules/@img/sharp-libvips-linux-x64": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", - "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", "cpu": [ "x64" ], + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -938,6 +889,9 @@ "cpu": [ "arm64" ], + "libc": [ + "musl" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -954,6 +908,9 @@ "cpu": [ "x64" ], + "libc": [ + "musl" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -970,6 +927,9 @@ "cpu": [ "arm" ], + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -992,6 +952,9 @@ "cpu": [ "arm64" ], + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1014,6 +977,9 @@ "cpu": [ "ppc64" ], + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1036,6 +1002,9 @@ "cpu": [ "riscv64" ], + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1058,6 +1027,9 @@ "cpu": [ "s390x" ], + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1075,11 +1047,12 @@ }, "node_modules/@img/sharp-linux-x64": { "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", - "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", "cpu": [ "x64" ], + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1102,6 +1075,9 @@ "cpu": [ "arm64" ], + "libc": [ + "musl" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1124,6 +1100,9 @@ "cpu": [ "x64" ], + "libc": [ + "musl" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1217,8 +1196,6 @@ }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", - "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "dev": true, "license": "MIT", "dependencies": { @@ -1228,8 +1205,6 @@ }, "node_modules/@jridgewell/remapping": { "version": "2.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", - "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1239,8 +1214,6 @@ }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "license": "MIT", "engines": { @@ -1249,15 +1222,11 @@ }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.31", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", - "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", "dev": true, "license": "MIT", "dependencies": { @@ -1267,8 +1236,6 @@ }, "node_modules/@napi-rs/wasm-runtime": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.2.tgz", - "integrity": "sha512-sNXv5oLJ7ob93xkZ1XnxisYhGYXfaG9f65/ZgYuAu3qt7b3NadcOEhLvx28hv31PgX8SZJRYrAIPQilQmFpLVw==", "dev": true, "license": "MIT", "optional": true, @@ -1285,15 +1252,13 @@ } }, "node_modules/@next/env": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@next/env/-/env-16.2.1.tgz", - "integrity": "sha512-n8P/HCkIWW+gVal2Z8XqXJ6aB3J0tuM29OcHpCsobWlChH/SITBs1DFBk/HajgrwDkqqBXPbuUuzgDvUekREPg==", + "version": "16.2.2", "license": "MIT" }, "node_modules/@next/swc-darwin-arm64": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.2.1.tgz", - "integrity": "sha512-BwZ8w8YTaSEr2HIuXLMLxIdElNMPvY9fLqb20LX9A9OMGtJilhHLbCL3ggyd0TwjmMcTxi0XXt+ur1vWUoxj2Q==", + "version": "16.2.2", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.2.2.tgz", + "integrity": "sha512-B92G3ulrwmkDSEJEp9+XzGLex5wC1knrmCSIylyVeiAtCIfvEJYiN3v5kXPlYt5R4RFlsfO/v++aKV63Acrugg==", "cpu": [ "arm64" ], @@ -1307,9 +1272,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-16.2.1.tgz", - "integrity": "sha512-/vrcE6iQSJq3uL3VGVHiXeaKbn8Es10DGTGRJnRZlkNQQk3kaNtAJg8Y6xuAlrx/6INKVjkfi5rY0iEXorZ6uA==", + "version": "16.2.2", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-16.2.2.tgz", + "integrity": "sha512-7ZwSgNKJNQiwW0CKhNm9B1WS2L1Olc4B2XY0hPYCAL3epFnugMhuw5TMWzMilQ3QCZcCHoYm9NGWTHbr5REFxw==", "cpu": [ "x64" ], @@ -1323,12 +1288,15 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-16.2.1.tgz", - "integrity": "sha512-uLn+0BK+C31LTVbQ/QU+UaVrV0rRSJQ8RfniQAHPghDdgE+SlroYqcmFnO5iNjNfVWCyKZHYrs3Nl0mUzWxbBw==", + "version": "16.2.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-16.2.2.tgz", + "integrity": "sha512-c3m8kBHMziMgo2fICOP/cd/5YlrxDU5YYjAJeQLyFsCqVF8xjOTH/QYG4a2u48CvvZZSj1eHQfBCbyh7kBr30Q==", "cpu": [ "arm64" ], + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -1339,12 +1307,15 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-16.2.1.tgz", - "integrity": "sha512-ssKq6iMRnHdnycGp9hCuGnXJZ0YPr4/wNwrfE5DbmvEcgl9+yv97/Kq3TPVDfYome1SW5geciLB9aiEqKXQjlQ==", + "version": "16.2.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-16.2.2.tgz", + "integrity": "sha512-VKLuscm0P/mIfzt+SDdn2+8TNNJ7f0qfEkA+az7OqQbjzKdBxAHs0UvuiVoCtbwX+dqMEL9U54b5wQ/aN3dHeg==", "cpu": [ "arm64" ], + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -1355,12 +1326,13 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-16.2.1.tgz", - "integrity": "sha512-HQm7SrHRELJ30T1TSmT706IWovFFSRGxfgUkyWJZF/RKBMdbdRWJuFrcpDdE5vy9UXjFOx6L3mRdqH04Mmx0hg==", + "version": "16.2.2", "cpu": [ "x64" ], + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -1371,12 +1343,15 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-16.2.1.tgz", - "integrity": "sha512-aV2iUaC/5HGEpbBkE+4B8aHIudoOy5DYekAKOMSHoIYQ66y/wIVeaRx8MS2ZMdxe/HIXlMho4ubdZs/J8441Tg==", + "version": "16.2.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-16.2.2.tgz", + "integrity": "sha512-CKXRILyErMtUftp+coGcZ38ZwE/Aqq45VMCcRLr2I4OXKrgxIBDXHnBgeX/UMil0S09i2JXaDL3Q+TN8D/cKmg==", "cpu": [ "x64" ], + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -1387,9 +1362,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-16.2.1.tgz", - "integrity": "sha512-IXdNgiDHaSk0ZUJ+xp0OQTdTgnpx1RCfRTalhn3cjOP+IddTMINwA7DXZrwTmGDO8SUr5q2hdP/du4DcrB1GxA==", + "version": "16.2.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-16.2.2.tgz", + "integrity": "sha512-sS/jSk5VUoShUqINJFvNjVT7JfR5ORYj/+/ZpOYbbIohv/lQfduWnGAycq2wlknbOql2xOR0DoV0s6Xfcy49+g==", "cpu": [ "arm64" ], @@ -1403,9 +1378,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-16.2.1.tgz", - "integrity": "sha512-qvU+3a39Hay+ieIztkGSbF7+mccbbg1Tk25hc4JDylf8IHjYmY/Zm64Qq1602yPyQqvie+vf5T/uPwNxDNIoeg==", + "version": "16.2.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-16.2.2.tgz", + "integrity": "sha512-aHaKceJgdySReT7qeck5oShucxWRiiEuwCGK8HHALe6yZga8uyFpLkPgaRw3kkF04U7ROogL/suYCNt/+CuXGA==", "cpu": [ "x64" ], @@ -1420,8 +1395,6 @@ }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "license": "MIT", "dependencies": { @@ -1434,8 +1407,6 @@ }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, "license": "MIT", "engines": { @@ -1444,8 +1415,6 @@ }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "license": "MIT", "dependencies": { @@ -1457,23 +1426,20 @@ } }, "node_modules/@oxc-project/types": { - "version": "0.122.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.122.0.tgz", - "integrity": "sha512-oLAl5kBpV4w69UtFZ9xqcmTi+GENWOcPF7FCrczTiBbmC0ibXxCwyvZGbO39rCVEuLGAZM84DH0pUIyyv/YJzA==", + "version": "0.123.0", "dev": true, "license": "MIT", + "peer": true, "funding": { "url": "https://github.com/sponsors/Boshen" } }, "node_modules/@playwright/test": { - "version": "1.58.2", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.58.2.tgz", - "integrity": "sha512-akea+6bHYBBfA9uQqSYmlJXn61cTa+jbO87xVLCWbTqbWadRVmhxlXATaOjOgcBaWU4ePo0wB41KMFv3o35IXA==", + "version": "1.59.1", "devOptional": true, "license": "Apache-2.0", "dependencies": { - "playwright": "1.58.2" + "playwright": "1.59.1" }, "bin": { "playwright": "cli.js" @@ -1483,9 +1449,9 @@ } }, "node_modules/@rolldown/binding-android-arm64": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.12.tgz", - "integrity": "sha512-pv1y2Fv0JybcykuiiD3qBOBdz6RteYojRFY1d+b95WVuzx211CRh+ytI/+9iVyWQ6koTh5dawe4S/yRfOFjgaA==", + "version": "1.0.0-rc.13", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.13.tgz", + "integrity": "sha512-5ZiiecKH2DXAVJTNN13gNMUcCDg4Jy8ZjbXEsPnqa248wgOVeYRX0iqXXD5Jz4bI9BFHgKsI2qmyJynstbmr+g==", "cpu": [ "arm64" ], @@ -1495,14 +1461,15 @@ "os": [ "android" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.12.tgz", - "integrity": "sha512-cFYr6zTG/3PXXF3pUO+umXxt1wkRK/0AYT8lDwuqvRC+LuKYWSAQAQZjCWDQpAH172ZV6ieYrNnFzVVcnSflAg==", + "version": "1.0.0-rc.13", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.13.tgz", + "integrity": "sha512-tz/v/8G77seu8zAB3A5sK3UFoOl06zcshEzhUO62sAEtrEuW/H1CcyoupOrD+NbQJytYgA4CppXPzlrmp4JZKA==", "cpu": [ "arm64" ], @@ -1512,14 +1479,15 @@ "os": [ "darwin" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.12.tgz", - "integrity": "sha512-ZCsYknnHzeXYps0lGBz8JrF37GpE9bFVefrlmDrAQhOEi4IOIlcoU1+FwHEtyXGx2VkYAvhu7dyBf75EJQffBw==", + "version": "1.0.0-rc.13", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.13.tgz", + "integrity": "sha512-8DakphqOz8JrMYWTJmWA+vDJxut6LijZ8Xcdc4flOlAhU7PNVwo2MaWBF9iXjJAPo5rC/IxEFZDhJ3GC7NHvug==", "cpu": [ "x64" ], @@ -1529,14 +1497,15 @@ "os": [ "darwin" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.12.tgz", - "integrity": "sha512-dMLeprcVsyJsKolRXyoTH3NL6qtsT0Y2xeuEA8WQJquWFXkEC4bcu1rLZZSnZRMtAqwtrF/Ib9Ddtpa/Gkge9Q==", + "version": "1.0.0-rc.13", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.13.tgz", + "integrity": "sha512-4wBQFfjDuXYN/SVI8inBF3Aa+isq40rc6VMFbk5jcpolUBTe5cYnMsHZ51nFWsx3PVyyNN3vgoESki0Hmr/4BA==", "cpu": [ "x64" ], @@ -1546,14 +1515,15 @@ "os": [ "freebsd" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.12.tgz", - "integrity": "sha512-YqWjAgGC/9M1lz3GR1r1rP79nMgo3mQiiA+Hfo+pvKFK1fAJ1bCi0ZQVh8noOqNacuY1qIcfyVfP6HoyBRZ85Q==", + "version": "1.0.0-rc.13", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.13.tgz", + "integrity": "sha512-JW/e4yPIXLms+jmnbwwy5LA/LxVwZUWLN8xug+V200wzaVi5TEGIWQlh8o91gWYFxW609euI98OCCemmWGuPrw==", "cpu": [ "arm" ], @@ -1563,116 +1533,139 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.12.tgz", - "integrity": "sha512-/I5AS4cIroLpslsmzXfwbe5OmWvSsrFuEw3mwvbQ1kDxJ822hFHIx+vsN/TAzNVyepI/j/GSzrtCIwQPeKCLIg==", + "version": "1.0.0-rc.13", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.13.tgz", + "integrity": "sha512-ZfKWpXiUymDnavepCaM6KG/uGydJ4l2nBmMxg60Ci4CbeefpqjPWpfaZM7PThOhk2dssqBAcwLc6rAyr0uTdXg==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.12.tgz", - "integrity": "sha512-V6/wZztnBqlx5hJQqNWwFdxIKN0m38p8Jas+VoSfgH54HSj9tKTt1dZvG6JRHcjh6D7TvrJPWFGaY9UBVOaWPw==", + "version": "1.0.0-rc.13", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.13.tgz", + "integrity": "sha512-bmRg3O6Z0gq9yodKKWCIpnlH051sEfdVwt+6m5UDffAQMUUqU0xjnQqqAUm+Gu7ofAAly9DqiQDtKu2nPDEABA==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-linux-ppc64-gnu": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.12.tgz", - "integrity": "sha512-AP3E9BpcUYliZCxa3w5Kwj9OtEVDYK6sVoUzy4vTOJsjPOgdaJZKFmN4oOlX0Wp0RPV2ETfmIra9x1xuayFB7g==", + "version": "1.0.0-rc.13", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.13.tgz", + "integrity": "sha512-8Wtnbw4k7pMYN9B/mOEAsQ8HOiq7AZ31Ig4M9BKn2So4xRaFEhtCSa4ZJaOutOWq50zpgR4N5+L/opnlaCx8wQ==", "cpu": [ "ppc64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-linux-s390x-gnu": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.12.tgz", - "integrity": "sha512-nWwpvUSPkoFmZo0kQazZYOrT7J5DGOJ/+QHHzjvNlooDZED8oH82Yg67HvehPPLAg5fUff7TfWFHQS8IV1n3og==", + "version": "1.0.0-rc.13", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.13.tgz", + "integrity": "sha512-D/0Nlo8mQuxSMohNJUF2lDXWRsFDsHldfRRgD9bRgktj+EndGPj4DOV37LqDKPYS+osdyhZEH7fTakTAEcW7qg==", "cpu": [ "s390x" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.12.tgz", - "integrity": "sha512-RNrafz5bcwRy+O9e6P8Z/OCAJW/A+qtBczIqVYwTs14pf4iV1/+eKEjdOUta93q2TsT/FI0XYDP3TCky38LMAg==", + "version": "1.0.0-rc.13", "cpu": [ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.12.tgz", - "integrity": "sha512-Jpw/0iwoKWx3LJ2rc1yjFrj+T7iHZn2JDg1Yny1ma0luviFS4mhAIcd1LFNxK3EYu3DHWCps0ydXQ5i/rrJ2ig==", + "version": "1.0.0-rc.13", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.13.tgz", + "integrity": "sha512-PsdONiFRp8hR8KgVjTWjZ9s7uA3uueWL0t74/cKHfM4dR5zXYv4AjB8BvA+QDToqxAFg4ZkcVEqeu5F7inoz5w==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.12.tgz", - "integrity": "sha512-vRugONE4yMfVn0+7lUKdKvN4D5YusEiPilaoO2sgUWpCvrncvWgPMzK00ZFFJuiPgLwgFNP5eSiUlv2tfc+lpA==", + "version": "1.0.0-rc.13", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.13.tgz", + "integrity": "sha512-hCNXgC5dI3TVOLrPT++PKFNZ+1EtS0mLQwfXXXSUD/+rGlB65gZDwN/IDuxLpQP4x8RYYHqGomlUXzpO8aVI2w==", "cpu": [ "arm64" ], @@ -1682,31 +1675,35 @@ "os": [ "openharmony" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-wasm32-wasi": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.12.tgz", - "integrity": "sha512-ykGiLr/6kkiHc0XnBfmFJuCjr5ZYKKofkx+chJWDjitX+KsJuAmrzWhwyOMSHzPhzOHOy7u9HlFoa5MoAOJ/Zg==", + "version": "1.0.0-rc.13", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.13.tgz", + "integrity": "sha512-viLS5C5et8NFtLWw9Sw3M/w4vvnVkbWkO7wSNh3C+7G1+uCkGpr6PcjNDSFcNtmXY/4trjPBqUfcOL+P3sWy/g==", "cpu": [ "wasm32" ], "dev": true, "license": "MIT", "optional": true, + "peer": true, "dependencies": { - "@napi-rs/wasm-runtime": "^1.1.1" + "@emnapi/core": "1.9.1", + "@emnapi/runtime": "1.9.1", + "@napi-rs/wasm-runtime": "^1.1.2" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.12.tgz", - "integrity": "sha512-5eOND4duWkwx1AzCxadcOrNeighiLwMInEADT0YM7xeEOOFcovWZCq8dadXgcRHSf3Ulh1kFo/qvzoFiCLOL1Q==", + "version": "1.0.0-rc.13", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.13.tgz", + "integrity": "sha512-Fqa3Tlt1xL4wzmAYxGNFV36Hb+VfPc9PYU+E25DAnswXv3ODDu/yyWjQDbXMo5AGWkQVjLgQExuVu8I/UaZhPQ==", "cpu": [ "arm64" ], @@ -1716,14 +1713,15 @@ "os": [ "win32" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.12.tgz", - "integrity": "sha512-PyqoipaswDLAZtot351MLhrlrh6lcZPo2LSYE+VDxbVk24LVKAGOuE4hb8xZQmrPAuEtTZW8E6D2zc5EUZX4Lw==", + "version": "1.0.0-rc.13", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.13.tgz", + "integrity": "sha512-/pLI5kPkGEi44TDlnbio3St/5gUFeN51YWNAk/Gnv6mEQBOahRBh52qVFVBpmrnU01n2yysvBML9Ynu7K4kGAQ==", "cpu": [ "x64" ], @@ -1733,14 +1731,13 @@ "os": [ "win32" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/plugin-babel": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@rolldown/plugin-babel/-/plugin-babel-0.2.2.tgz", - "integrity": "sha512-q9pE8+47bQNHb5eWVcE6oXppA+JTSwvnrhH53m0ZuHuK5MLvwsLoWrWzBTFQqQ06BVxz1gp0HblLsch8o6pvZw==", "dev": true, "license": "MIT", "dependencies": { @@ -1768,30 +1765,13 @@ } } }, - "node_modules/@rolldown/plugin-babel/node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/@rolldown/pluginutils": { "version": "1.0.0-rc.7", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.7.tgz", - "integrity": "sha512-qujRfC8sFVInYSPPMLQByRh7zhwkGFS4+tyMQ83srV1qrxL4g8E2tyxVVyxd0+8QeBM1mIk9KbWxkegRr76XzA==", "dev": true, "license": "MIT" }, "node_modules/@sindresorhus/merge-streams": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", - "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", "dev": true, "license": "MIT", "engines": { @@ -1803,15 +1783,11 @@ }, "node_modules/@standard-schema/spec": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", - "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", "dev": true, "license": "MIT" }, "node_modules/@swc/helpers": { "version": "0.5.15", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", - "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.8.0" @@ -1819,8 +1795,6 @@ }, "node_modules/@tailwindcss/node": { "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.2.2.tgz", - "integrity": "sha512-pXS+wJ2gZpVXqFaUEjojq7jzMpTGf8rU6ipJz5ovJV6PUGmlJ+jvIwGrzdHdQ80Sg+wmQxUFuoW1UAAwHNEdFA==", "dev": true, "license": "MIT", "dependencies": { @@ -1835,8 +1809,6 @@ }, "node_modules/@tailwindcss/oxide": { "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.2.2.tgz", - "integrity": "sha512-qEUA07+E5kehxYp9BVMpq9E8vnJuBHfJEC0vPC5e7iL/hw7HR61aDKoVoKzrG+QKp56vhNZe4qwkRmMC0zDLvg==", "dev": true, "license": "MIT", "engines": { @@ -1950,6 +1922,9 @@ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -1967,6 +1942,9 @@ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -1978,12 +1956,13 @@ }, "node_modules/@tailwindcss/oxide-linux-x64-gnu": { "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.2.2.tgz", - "integrity": "sha512-rTAGAkDgqbXHNp/xW0iugLVmX62wOp2PoE39BTCGKjv3Iocf6AFbRP/wZT/kuCxC9QBh9Pu8XPkv/zCZB2mcMg==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2001,6 +1980,9 @@ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -2076,8 +2058,6 @@ }, "node_modules/@tailwindcss/postcss": { "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.2.2.tgz", - "integrity": "sha512-n4goKQbW8RVXIbNKRB/45LzyUqN451deQK0nzIeauVEqjlI49slUlgKYJM2QyUzap/PcpnS7kzSUmPb1sCRvYQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2090,8 +2070,6 @@ }, "node_modules/@testing-library/dom": { "version": "10.4.1", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz", - "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==", "dev": true, "license": "MIT", "peer": true, @@ -2111,8 +2089,6 @@ }, "node_modules/@testing-library/jest-dom": { "version": "6.9.1", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz", - "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==", "dev": true, "license": "MIT", "dependencies": { @@ -2131,15 +2107,11 @@ }, "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { "version": "0.6.3", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", - "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", "dev": true, "license": "MIT" }, "node_modules/@testing-library/react": { "version": "16.3.2", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.3.2.tgz", - "integrity": "sha512-XU5/SytQM+ykqMnAnvB2umaJNIOsLF3PVv//1Ew4CTcpz0/BRyy/af40qqrt7SjKpDdT1saBMc42CUok5gaw+g==", "dev": true, "license": "MIT", "dependencies": { @@ -2166,8 +2138,6 @@ }, "node_modules/@testing-library/user-event": { "version": "14.6.1", - "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.1.tgz", - "integrity": "sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==", "dev": true, "license": "MIT", "engines": { @@ -2180,8 +2150,6 @@ }, "node_modules/@tybys/wasm-util": { "version": "0.10.1", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", - "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", "dev": true, "license": "MIT", "optional": true, @@ -2191,16 +2159,12 @@ }, "node_modules/@types/aria-query": { "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", - "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", "dev": true, "license": "MIT", "peer": true }, "node_modules/@types/chai": { "version": "5.2.3", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", - "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", "dev": true, "license": "MIT", "dependencies": { @@ -2210,8 +2174,6 @@ }, "node_modules/@types/debug": { "version": "4.1.13", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.13.tgz", - "integrity": "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==", "dev": true, "license": "MIT", "dependencies": { @@ -2220,36 +2182,26 @@ }, "node_modules/@types/deep-eql": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", - "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", "dev": true, "license": "MIT" }, "node_modules/@types/estree": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "dev": true, "license": "MIT" }, "node_modules/@types/katex": { "version": "0.16.8", - "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.8.tgz", - "integrity": "sha512-trgaNyfU+Xh2Tc+ABIb44a5AYUpicB3uwirOioeOkNPPbmgRNtcWyDeeFRzjPZENO9Vq8gvVqfhaaXWLlevVwg==", "dev": true, "license": "MIT" }, "node_modules/@types/ms": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", - "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", "dev": true, "license": "MIT" }, "node_modules/@types/node": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.5.0.tgz", - "integrity": "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==", + "version": "25.5.2", "dev": true, "license": "MIT", "dependencies": { @@ -2258,8 +2210,6 @@ }, "node_modules/@types/react": { "version": "19.2.14", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz", - "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", "dev": true, "license": "MIT", "dependencies": { @@ -2268,8 +2218,6 @@ }, "node_modules/@types/react-dom": { "version": "19.2.3", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", - "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", "dev": true, "license": "MIT", "peerDependencies": { @@ -2278,15 +2226,11 @@ }, "node_modules/@types/unist": { "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", "dev": true, "license": "MIT" }, "node_modules/@vercel/analytics": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@vercel/analytics/-/analytics-2.0.1.tgz", - "integrity": "sha512-MTQG6V9qQrt1tsDeF+2Uoo5aPjqbVPys1xvnIftXSJYG2SrwXRHnqEvVoYID7BTruDz4lCd2Z7rM1BdkUehk2g==", "license": "MIT", "peerDependencies": { "@remix-run/react": "^2", @@ -2327,8 +2271,6 @@ }, "node_modules/@vercel/speed-insights": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@vercel/speed-insights/-/speed-insights-2.0.0.tgz", - "integrity": "sha512-jwkNcrTeafWxjmWq4AHBaptSqZiJkYU5adLC9QBSqeim0GcqDMgN5Ievh8OG1rJ6W3A4l1oiP7qr9CWxGuzu3w==", "license": "Apache-2.0", "peerDependencies": { "@sveltejs/kit": "^1 || ^2", @@ -2365,8 +2307,6 @@ }, "node_modules/@vitejs/plugin-react": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.0.1.tgz", - "integrity": "sha512-l9X/E3cDb+xY3SWzlG1MOGt2usfEHGMNIaegaUGFsLkb3RCn/k8/TOXBcab+OndDI4TBtktT8/9BwwW8Vi9KUQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2391,8 +2331,6 @@ }, "node_modules/@vitest/expect": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.2.tgz", - "integrity": "sha512-gbu+7B0YgUJ2nkdsRJrFFW6X7NTP44WlhiclHniUhxADQJH5Szt9mZ9hWnJPJ8YwOK5zUOSSlSvyzRf0u1DSBQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2409,8 +2347,6 @@ }, "node_modules/@vitest/mocker": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.2.tgz", - "integrity": "sha512-Ize4iQtEALHDttPRCmN+FKqOl2vxTiNUhzobQFFt/BM1lRUTG7zRCLOykG/6Vo4E4hnUdfVLo5/eqKPukcWW7Q==", "dev": true, "license": "MIT", "dependencies": { @@ -2436,8 +2372,6 @@ }, "node_modules/@vitest/pretty-format": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.2.tgz", - "integrity": "sha512-dwQga8aejqeuB+TvXCMzSQemvV9hNEtDDpgUKDzOmNQayl2OG241PSWeJwKRH3CiC+sESrmoFd49rfnq7T4RnA==", "dev": true, "license": "MIT", "dependencies": { @@ -2449,8 +2383,6 @@ }, "node_modules/@vitest/runner": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.2.tgz", - "integrity": "sha512-Gr+FQan34CdiYAwpGJmQG8PgkyFVmARK8/xSijia3eTFgVfpcpztWLuP6FttGNfPLJhaZVP/euvujeNYar36OQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2463,8 +2395,6 @@ }, "node_modules/@vitest/snapshot": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.2.tgz", - "integrity": "sha512-g7yfUmxYS4mNxk31qbOYsSt2F4m1E02LFqO53Xpzg3zKMhLAPZAjjfyl9e6z7HrW6LvUdTwAQR3HHfLjpko16A==", "dev": true, "license": "MIT", "dependencies": { @@ -2479,8 +2409,6 @@ }, "node_modules/@vitest/spy": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.2.tgz", - "integrity": "sha512-DU4fBnbVCJGNBwVA6xSToNXrkZNSiw59H8tcuUspVMsBDBST4nfvsPsEHDHGtWRRnqBERBQu7TrTKskmjqTXKA==", "dev": true, "license": "MIT", "funding": { @@ -2489,8 +2417,6 @@ }, "node_modules/@vitest/utils": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.2.tgz", - "integrity": "sha512-xw2/TiX82lQHA06cgbqRKFb5lCAy3axQ4H4SoUFhUsg+wztiet+co86IAMDtF6Vm1hc7J6j09oh/rgDn+JdKIQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2504,8 +2430,6 @@ }, "node_modules/ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "license": "MIT", "peer": true, @@ -2515,8 +2439,6 @@ }, "node_modules/ansi-styles": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", "peer": true, @@ -2529,15 +2451,11 @@ }, "node_modules/argparse": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true, "license": "Python-2.0" }, "node_modules/aria-query": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", - "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -2546,8 +2464,6 @@ }, "node_modules/assertion-error": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", - "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", "dev": true, "license": "MIT", "engines": { @@ -2556,8 +2472,6 @@ }, "node_modules/babel-plugin-react-compiler": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-react-compiler/-/babel-plugin-react-compiler-1.0.0.tgz", - "integrity": "sha512-Ixm8tFfoKKIPYdCCKYTsqv+Fd4IJ0DQqMyEimo+pxUOMUR9cVPlwTrFt9Avu+3cb6Zp3mAzl+t1MrG2fxxKsxw==", "devOptional": true, "license": "MIT", "dependencies": { @@ -2565,9 +2479,9 @@ } }, "node_modules/baseline-browser-mapping": { - "version": "2.10.12", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.12.tgz", - "integrity": "sha512-qyq26DxfY4awP2gIRXhhLWfwzwI+N5Nxk6iQi8EFizIaWIjqicQTE4sLnZZVdeKPRcVNoJOkkpfzoIYuvCKaIQ==", + "version": "2.10.16", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.16.tgz", + "integrity": "sha512-Lyf3aK28zpsD1yQMiiHD4RvVb6UdMoo8xzG2XzFIfR9luPzOpcBlAsT/qfB1XWS1bxWT+UtE4WmQgsp297FYOA==", "license": "Apache-2.0", "bin": { "baseline-browser-mapping": "dist/cli.cjs" @@ -2578,8 +2492,6 @@ }, "node_modules/bidi-js": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.3.tgz", - "integrity": "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==", "dev": true, "license": "MIT", "dependencies": { @@ -2588,8 +2500,6 @@ }, "node_modules/braces": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "license": "MIT", "dependencies": { @@ -2600,9 +2510,7 @@ } }, "node_modules/browserslist": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", - "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "version": "4.28.2", "dev": true, "funding": [ { @@ -2621,11 +2529,11 @@ "license": "MIT", "peer": true, "dependencies": { - "baseline-browser-mapping": "^2.9.0", - "caniuse-lite": "^1.0.30001759", - "electron-to-chromium": "^1.5.263", - "node-releases": "^2.0.27", - "update-browserslist-db": "^1.2.0" + "baseline-browser-mapping": "^2.10.12", + "caniuse-lite": "^1.0.30001782", + "electron-to-chromium": "^1.5.328", + "node-releases": "^2.0.36", + "update-browserslist-db": "^1.2.3" }, "bin": { "browserslist": "cli.js" @@ -2635,9 +2543,7 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001782", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001782.tgz", - "integrity": "sha512-dZcaJLJeDMh4rELYFw1tvSn1bhZWYFOt468FcbHHxx/Z/dFidd1I6ciyFdi3iwfQCyOjqo9upF6lGQYtMiJWxw==", + "version": "1.0.30001785", "funding": [ { "type": "opencollective", @@ -2656,8 +2562,6 @@ }, "node_modules/chai": { "version": "6.2.2", - "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", - "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", "dev": true, "license": "MIT", "engines": { @@ -2666,8 +2570,6 @@ }, "node_modules/character-entities": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", - "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", "dev": true, "license": "MIT", "funding": { @@ -2677,8 +2579,6 @@ }, "node_modules/character-entities-legacy": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", - "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", "dev": true, "license": "MIT", "funding": { @@ -2688,8 +2588,6 @@ }, "node_modules/character-reference-invalid": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", - "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", "dev": true, "license": "MIT", "funding": { @@ -2699,14 +2597,10 @@ }, "node_modules/client-only": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", - "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", "license": "MIT" }, "node_modules/commander": { "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", "dev": true, "license": "MIT", "engines": { @@ -2715,15 +2609,11 @@ }, "node_modules/convert-source-map": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true, "license": "MIT" }, "node_modules/css-tree": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz", - "integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==", "dev": true, "license": "MIT", "dependencies": { @@ -2736,22 +2626,16 @@ }, "node_modules/css.escape": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", - "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", "dev": true, "license": "MIT" }, "node_modules/csstype": { "version": "3.2.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", - "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", "dev": true, "license": "MIT" }, "node_modules/data-urls": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-7.0.0.tgz", - "integrity": "sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA==", "dev": true, "license": "MIT", "dependencies": { @@ -2764,8 +2648,6 @@ }, "node_modules/debug": { "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, "license": "MIT", "dependencies": { @@ -2782,15 +2664,11 @@ }, "node_modules/decimal.js": { "version": "10.6.0", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", - "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", "dev": true, "license": "MIT" }, "node_modules/decode-named-character-reference": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz", - "integrity": "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==", "dev": true, "license": "MIT", "dependencies": { @@ -2803,8 +2681,6 @@ }, "node_modules/dequal": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", "dev": true, "license": "MIT", "engines": { @@ -2813,8 +2689,6 @@ }, "node_modules/detect-libc": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", - "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", "devOptional": true, "license": "Apache-2.0", "engines": { @@ -2823,8 +2697,6 @@ }, "node_modules/devlop": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", - "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", "dev": true, "license": "MIT", "dependencies": { @@ -2837,24 +2709,18 @@ }, "node_modules/dom-accessibility-api": { "version": "0.5.16", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", - "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", "dev": true, "license": "MIT", "peer": true }, "node_modules/electron-to-chromium": { - "version": "1.5.328", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.328.tgz", - "integrity": "sha512-QNQ5l45DzYytThO21403XN3FvK0hOkWDG8viNf6jqS42msJ8I4tGDSpBCgvDRRPnkffafiwAym2X2eHeGD2V0w==", + "version": "1.5.331", "dev": true, "license": "ISC", "peer": true }, "node_modules/enhanced-resolve": { "version": "5.20.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.20.1.tgz", - "integrity": "sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==", "dev": true, "license": "MIT", "dependencies": { @@ -2867,8 +2733,6 @@ }, "node_modules/entities": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -2880,15 +2744,11 @@ }, "node_modules/es-module-lexer": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", - "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==", "dev": true, "license": "MIT" }, "node_modules/escalade": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, "license": "MIT", "peer": true, @@ -2898,8 +2758,6 @@ }, "node_modules/estree-walker": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", "dev": true, "license": "MIT", "dependencies": { @@ -2908,8 +2766,6 @@ }, "node_modules/expect-type": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", - "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -2918,8 +2774,6 @@ }, "node_modules/fast-glob": { "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, "license": "MIT", "dependencies": { @@ -2935,18 +2789,30 @@ }, "node_modules/fastq": { "version": "1.20.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", - "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", "dev": true, "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, + "node_modules/fdir": { + "version": "6.5.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, "node_modules/fill-range": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "license": "MIT", "dependencies": { @@ -2972,8 +2838,6 @@ }, "node_modules/gensync": { "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, "license": "MIT", "peer": true, @@ -2983,8 +2847,6 @@ }, "node_modules/get-east-asian-width": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.5.0.tgz", - "integrity": "sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==", "dev": true, "license": "MIT", "engines": { @@ -2996,8 +2858,6 @@ }, "node_modules/glob-parent": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "license": "ISC", "dependencies": { @@ -3009,8 +2869,6 @@ }, "node_modules/globby": { "version": "16.1.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-16.1.1.tgz", - "integrity": "sha512-dW7vl+yiAJSp6aCekaVnVJxurRv7DCOLyXqEG3RYMYUg7AuJ2jCqPkZTA8ooqC2vtnkaMcV5WfFBMuEnTu1OQg==", "dev": true, "license": "MIT", "dependencies": { @@ -3028,24 +2886,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globrex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", - "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", - "dev": true, - "license": "MIT" - }, "node_modules/graceful-fs": { "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true, "license": "ISC" }, "node_modules/html-encoding-sniffer": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-6.0.0.tgz", - "integrity": "sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==", "dev": true, "license": "MIT", "dependencies": { @@ -3057,8 +2904,6 @@ }, "node_modules/ignore": { "version": "7.0.5", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", - "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", "dev": true, "license": "MIT", "engines": { @@ -3067,8 +2912,6 @@ }, "node_modules/indent-string": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, "license": "MIT", "engines": { @@ -3077,8 +2920,6 @@ }, "node_modules/is-alphabetical": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", - "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", "dev": true, "license": "MIT", "funding": { @@ -3088,8 +2929,6 @@ }, "node_modules/is-alphanumerical": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", - "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", "dev": true, "license": "MIT", "dependencies": { @@ -3103,8 +2942,6 @@ }, "node_modules/is-decimal": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", - "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", "dev": true, "license": "MIT", "funding": { @@ -3114,8 +2951,6 @@ }, "node_modules/is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, "license": "MIT", "engines": { @@ -3124,8 +2959,6 @@ }, "node_modules/is-glob": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "license": "MIT", "dependencies": { @@ -3137,8 +2970,6 @@ }, "node_modules/is-hexadecimal": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", - "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", "dev": true, "license": "MIT", "funding": { @@ -3148,8 +2979,6 @@ }, "node_modules/is-number": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, "license": "MIT", "engines": { @@ -3158,8 +2987,6 @@ }, "node_modules/is-path-inside": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", - "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", "dev": true, "license": "MIT", "engines": { @@ -3171,15 +2998,11 @@ }, "node_modules/is-potential-custom-element-name": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", "dev": true, "license": "MIT" }, "node_modules/jiti": { "version": "2.6.1", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", - "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", "dev": true, "license": "MIT", "bin": { @@ -3188,16 +3011,12 @@ }, "node_modules/js-tokens": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true, "license": "MIT", "peer": true }, "node_modules/js-yaml": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dev": true, "license": "MIT", "dependencies": { @@ -3209,8 +3028,6 @@ }, "node_modules/jsdom": { "version": "29.0.1", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-29.0.1.tgz", - "integrity": "sha512-z6JOK5gRO7aMybVq/y/MlIpKh8JIi68FBKMUtKkK2KH/wMSRlCxQ682d08LB9fYXplyY/UXG8P4XXTScmdjApg==", "dev": true, "license": "MIT", "dependencies": { @@ -3250,8 +3067,6 @@ }, "node_modules/jsdom/node_modules/lru-cache": { "version": "11.2.7", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.7.tgz", - "integrity": "sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -3260,8 +3075,6 @@ }, "node_modules/jsesc": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "dev": true, "license": "MIT", "peer": true, @@ -3274,8 +3087,6 @@ }, "node_modules/json5": { "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, "license": "MIT", "peer": true, @@ -3288,15 +3099,11 @@ }, "node_modules/jsonc-parser": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", - "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", "dev": true, "license": "MIT" }, "node_modules/jsonpointer": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", - "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", "dev": true, "license": "MIT", "engines": { @@ -3305,8 +3112,6 @@ }, "node_modules/katex": { "version": "0.16.44", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.44.tgz", - "integrity": "sha512-EkxoDTk8ufHqHlf9QxGwcxeLkWRR3iOuYfRpfORgYfqc8s13bgb+YtRY59NK5ZpRaCwq1kqA6a5lpX8C/eLphQ==", "dev": true, "funding": [ "https://opencollective.com/katex", @@ -3321,9 +3126,7 @@ } }, "node_modules/lefthook": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/lefthook/-/lefthook-2.1.4.tgz", - "integrity": "sha512-JNfJ5gAn0KADvJ1I6/xMcx70+/6TL6U9gqGkKvPw5RNMfatC7jIg0Evl97HN846xmfz959BV70l8r3QsBJk30w==", + "version": "2.1.5", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -3331,22 +3134,22 @@ "lefthook": "bin/index.js" }, "optionalDependencies": { - "lefthook-darwin-arm64": "2.1.4", - "lefthook-darwin-x64": "2.1.4", - "lefthook-freebsd-arm64": "2.1.4", - "lefthook-freebsd-x64": "2.1.4", - "lefthook-linux-arm64": "2.1.4", - "lefthook-linux-x64": "2.1.4", - "lefthook-openbsd-arm64": "2.1.4", - "lefthook-openbsd-x64": "2.1.4", - "lefthook-windows-arm64": "2.1.4", - "lefthook-windows-x64": "2.1.4" + "lefthook-darwin-arm64": "2.1.5", + "lefthook-darwin-x64": "2.1.5", + "lefthook-freebsd-arm64": "2.1.5", + "lefthook-freebsd-x64": "2.1.5", + "lefthook-linux-arm64": "2.1.5", + "lefthook-linux-x64": "2.1.5", + "lefthook-openbsd-arm64": "2.1.5", + "lefthook-openbsd-x64": "2.1.5", + "lefthook-windows-arm64": "2.1.5", + "lefthook-windows-x64": "2.1.5" } }, "node_modules/lefthook-darwin-arm64": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/lefthook-darwin-arm64/-/lefthook-darwin-arm64-2.1.4.tgz", - "integrity": "sha512-BUAAE9+rUrjr39a+wH/1zHmGrDdwUQ2Yq/z6BQbM/yUb9qtXBRcQ5eOXxApqWW177VhGBpX31aqIlfAZ5Q7wzw==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/lefthook-darwin-arm64/-/lefthook-darwin-arm64-2.1.5.tgz", + "integrity": "sha512-VITTaw8PxxyE26gkZ8UcwIa5ZrWnKNRGLeeSrqri40cQdXvLTEoMq2tjjw7eiL9UcB0waRReDdzydevy9GOPUQ==", "cpu": [ "arm64" ], @@ -3358,9 +3161,9 @@ ] }, "node_modules/lefthook-darwin-x64": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/lefthook-darwin-x64/-/lefthook-darwin-x64-2.1.4.tgz", - "integrity": "sha512-K1ncIMEe84fe+ss1hQNO7rIvqiKy2TJvTFpkypvqFodT7mJXZn7GLKYTIXdIuyPAYthRa9DwFnx5uMoHwD2F1Q==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/lefthook-darwin-x64/-/lefthook-darwin-x64-2.1.5.tgz", + "integrity": "sha512-AvtjYiW0BSGHBGrdvL313seUymrW9FxI+6JJwJ+ZSaa2sH81etrTB0wAwlH1L9VfFwK9+gWvatZBvLfF3L4fPw==", "cpu": [ "x64" ], @@ -3372,9 +3175,9 @@ ] }, "node_modules/lefthook-freebsd-arm64": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/lefthook-freebsd-arm64/-/lefthook-freebsd-arm64-2.1.4.tgz", - "integrity": "sha512-PVUhjOhVN71YaYsVdQyNbFZ4a2jFB2Tg5hKrrn9kaWpx64aLz/XivLjwr8sEuTaP1GRlEWBpW6Bhrcsyo39qFw==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/lefthook-freebsd-arm64/-/lefthook-freebsd-arm64-2.1.5.tgz", + "integrity": "sha512-mXjJwe8jKGWGiBYUxfQY1ab3Nn5NhafqT9q3KJz8m5joGGQj4JD0cbWxF1nVBLBWsDGbWZRZunTCMGcIScT2bQ==", "cpu": [ "arm64" ], @@ -3386,9 +3189,9 @@ ] }, "node_modules/lefthook-freebsd-x64": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/lefthook-freebsd-x64/-/lefthook-freebsd-x64-2.1.4.tgz", - "integrity": "sha512-ZWV9o/LeyWNEBoVO+BhLqxH3rGTba05nkm5NvMjEFSj7LbUNUDbQmupZwtHl1OMGJO66eZP0CalzRfUH6GhBxQ==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/lefthook-freebsd-x64/-/lefthook-freebsd-x64-2.1.5.tgz", + "integrity": "sha512-exD69dCjc1K45BxatDPGoH4NmEvgLKPm4kJLOWn1fTeHRKZwWiFPwnjknEoG2OemlCDHmCU++5X40kMEG0WBlA==", "cpu": [ "x64" ], @@ -3400,9 +3203,9 @@ ] }, "node_modules/lefthook-linux-arm64": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/lefthook-linux-arm64/-/lefthook-linux-arm64-2.1.4.tgz", - "integrity": "sha512-iWN0pGnTjrIvNIcSI1vQBJXUbybTqJ5CLMniPA0olabMXQfPDrdMKVQe+mgdwHK+E3/Y0H0ZNL3lnOj6Sk6szA==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/lefthook-linux-arm64/-/lefthook-linux-arm64-2.1.5.tgz", + "integrity": "sha512-57TDKC5ewWpsCLZQKIJMHumFEObYKVundmPpiWhX491hINRZYYOL/26yrnVnNcidThRzTiTC+HLcuplLcaXtbA==", "cpu": [ "arm64" ], @@ -3414,9 +3217,7 @@ ] }, "node_modules/lefthook-linux-x64": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/lefthook-linux-x64/-/lefthook-linux-x64-2.1.4.tgz", - "integrity": "sha512-96bTBE/JdYgqWYAJDh+/e/0MaxJ25XTOAk7iy/fKoZ1ugf6S0W9bEFbnCFNooXOcxNVTan5xWKfcjJmPIKtsJA==", + "version": "2.1.5", "cpu": [ "x64" ], @@ -3428,9 +3229,9 @@ ] }, "node_modules/lefthook-openbsd-arm64": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/lefthook-openbsd-arm64/-/lefthook-openbsd-arm64-2.1.4.tgz", - "integrity": "sha512-oYUoK6AIJNEr9lUSpIMj6g7sWzotvtc3ryw7yoOyQM6uqmEduw73URV/qGoUcm4nqqmR93ZalZwR2r3Gd61zvw==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/lefthook-openbsd-arm64/-/lefthook-openbsd-arm64-2.1.5.tgz", + "integrity": "sha512-5aSwK7vV3A6t0w9PnxCMiVjQlcvopBP50BtmnnLnNJyAYHnFbZ0Baq5M0WkE9IsUkWSux0fe6fd0jDkuG711MA==", "cpu": [ "arm64" ], @@ -3442,9 +3243,9 @@ ] }, "node_modules/lefthook-openbsd-x64": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/lefthook-openbsd-x64/-/lefthook-openbsd-x64-2.1.4.tgz", - "integrity": "sha512-i/Dv9Jcm68y9cggr1PhyUhOabBGP9+hzQPoiyOhKks7y9qrJl79A8XfG6LHekSuYc2VpiSu5wdnnrE1cj2nfTg==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/lefthook-openbsd-x64/-/lefthook-openbsd-x64-2.1.5.tgz", + "integrity": "sha512-Y+pPdDuENJ8qWnUgL02xxhpjblc0WnwXvWGfqnl3WZrAgHzQpwx3G6469RID/wlNVdHYAlw3a8UkFSMYsTzXvA==", "cpu": [ "x64" ], @@ -3456,9 +3257,9 @@ ] }, "node_modules/lefthook-windows-arm64": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/lefthook-windows-arm64/-/lefthook-windows-arm64-2.1.4.tgz", - "integrity": "sha512-hSww7z+QX4YMnw2lK7DMrs3+w7NtxksuMKOkCKGyxUAC/0m1LAICo0ZbtdDtZ7agxRQQQ/SEbzFRhU5ysNcbjA==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/lefthook-windows-arm64/-/lefthook-windows-arm64-2.1.5.tgz", + "integrity": "sha512-2PlcFBjTzJaMufw0c28kfhB/0zmaRCU0TRPPsil/HU2YNOExod4upPGLk9qjgsOmb2YVWFz6zq6u7+D1yqmzTQ==", "cpu": [ "arm64" ], @@ -3470,9 +3271,9 @@ ] }, "node_modules/lefthook-windows-x64": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/lefthook-windows-x64/-/lefthook-windows-x64-2.1.4.tgz", - "integrity": "sha512-eE68LwnogxwcPgGsbVGPGxmghyMGmU9SdGwcc+uhGnUxPz1jL89oECMWJNc36zjVK24umNeDAzB5KA3lw1MuWw==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/lefthook-windows-x64/-/lefthook-windows-x64-2.1.5.tgz", + "integrity": "sha512-yiAh8qxml6uqy10jDxOdN9fOQpyLxBFY1fgCEAhn7sVJYmJKRhjqSBwZX6LG5MQjzr29KStrIdw7TR3lf3rT7Q==", "cpu": [ "x64" ], @@ -3485,8 +3286,6 @@ }, "node_modules/lightningcss": { "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", - "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", "dev": true, "license": "MPL-2.0", "dependencies": { @@ -3626,6 +3425,9 @@ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -3647,6 +3449,9 @@ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -3662,12 +3467,13 @@ }, "node_modules/lightningcss-linux-x64-gnu": { "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", - "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -3689,6 +3495,9 @@ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -3746,8 +3555,6 @@ }, "node_modules/linkify-it": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", - "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3756,8 +3563,6 @@ }, "node_modules/lru-cache": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "license": "ISC", "peer": true, @@ -3767,8 +3572,6 @@ }, "node_modules/lz-string": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", - "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", "dev": true, "license": "MIT", "peer": true, @@ -3778,8 +3581,6 @@ }, "node_modules/magic-string": { "version": "0.30.21", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", - "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3788,8 +3589,6 @@ }, "node_modules/markdown-it": { "version": "14.1.1", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.1.tgz", - "integrity": "sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA==", "dev": true, "license": "MIT", "dependencies": { @@ -3806,8 +3605,6 @@ }, "node_modules/markdownlint": { "version": "0.40.0", - "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.40.0.tgz", - "integrity": "sha512-UKybllYNheWac61Ia7T6fzuQNDZimFIpCg2w6hHjgV1Qu0w1TV0LlSgryUGzM0bkKQCBhy2FDhEELB73Kb0kAg==", "dev": true, "license": "MIT", "dependencies": { @@ -3830,8 +3627,6 @@ }, "node_modules/markdownlint-cli2": { "version": "0.22.0", - "resolved": "https://registry.npmjs.org/markdownlint-cli2/-/markdownlint-cli2-0.22.0.tgz", - "integrity": "sha512-mOC9BY/XGtdX3M9n3AgERd79F0+S7w18yBBTNIQ453sI87etZfp1z4eajqSMV70CYjbxKe5ktKvT2HCpvcWx9w==", "dev": true, "license": "MIT", "dependencies": { @@ -3857,8 +3652,6 @@ }, "node_modules/markdownlint-cli2-formatter-default": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/markdownlint-cli2-formatter-default/-/markdownlint-cli2-formatter-default-0.0.6.tgz", - "integrity": "sha512-VVDGKsq9sgzu378swJ0fcHfSicUnMxnL8gnLm/Q4J/xsNJ4e5bA6lvAz7PCzIl0/No0lHyaWdqVD2jotxOSFMQ==", "dev": true, "license": "MIT", "funding": { @@ -3870,22 +3663,16 @@ }, "node_modules/mdn-data": { "version": "2.27.1", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz", - "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==", "dev": true, "license": "CC0-1.0" }, "node_modules/mdurl": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", - "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", "dev": true, "license": "MIT" }, "node_modules/merge2": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, "license": "MIT", "engines": { @@ -3894,8 +3681,6 @@ }, "node_modules/micromark": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", - "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", "dev": true, "funding": [ { @@ -3930,8 +3715,6 @@ }, "node_modules/micromark-core-commonmark": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", - "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", "dev": true, "funding": [ { @@ -3965,8 +3748,6 @@ }, "node_modules/micromark-extension-directive": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-4.0.0.tgz", - "integrity": "sha512-/C2nqVmXXmiseSSuCdItCMho7ybwwop6RrrRPk0KbOHW21JKoCldC+8rFOaundDoRBUWBnJJcxeA/Kvi34WQXg==", "dev": true, "license": "MIT", "dependencies": { @@ -3985,8 +3766,6 @@ }, "node_modules/micromark-extension-gfm-autolink-literal": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", - "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", "dev": true, "license": "MIT", "dependencies": { @@ -4002,8 +3781,6 @@ }, "node_modules/micromark-extension-gfm-footnote": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", - "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", "dev": true, "license": "MIT", "dependencies": { @@ -4023,8 +3800,6 @@ }, "node_modules/micromark-extension-gfm-table": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", - "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", "dev": true, "license": "MIT", "dependencies": { @@ -4041,8 +3816,6 @@ }, "node_modules/micromark-extension-math": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-math/-/micromark-extension-math-3.1.0.tgz", - "integrity": "sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==", "dev": true, "license": "MIT", "dependencies": { @@ -4061,8 +3834,6 @@ }, "node_modules/micromark-factory-destination": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", - "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", "dev": true, "funding": [ { @@ -4083,8 +3854,6 @@ }, "node_modules/micromark-factory-label": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", - "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", "dev": true, "funding": [ { @@ -4106,8 +3875,6 @@ }, "node_modules/micromark-factory-space": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", - "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", "dev": true, "funding": [ { @@ -4127,8 +3894,6 @@ }, "node_modules/micromark-factory-title": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", - "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", "dev": true, "funding": [ { @@ -4150,8 +3915,6 @@ }, "node_modules/micromark-factory-whitespace": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", - "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", "dev": true, "funding": [ { @@ -4173,8 +3936,6 @@ }, "node_modules/micromark-util-character": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "dev": true, "funding": [ { @@ -4194,8 +3955,6 @@ }, "node_modules/micromark-util-chunked": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", - "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", "dev": true, "funding": [ { @@ -4214,8 +3973,6 @@ }, "node_modules/micromark-util-classify-character": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", - "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", "dev": true, "funding": [ { @@ -4236,8 +3993,6 @@ }, "node_modules/micromark-util-combine-extensions": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", - "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", "dev": true, "funding": [ { @@ -4257,8 +4012,6 @@ }, "node_modules/micromark-util-decode-numeric-character-reference": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", - "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", "dev": true, "funding": [ { @@ -4277,8 +4030,6 @@ }, "node_modules/micromark-util-encode": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", - "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", "dev": true, "funding": [ { @@ -4294,8 +4045,6 @@ }, "node_modules/micromark-util-html-tag-name": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", - "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", "dev": true, "funding": [ { @@ -4311,8 +4060,6 @@ }, "node_modules/micromark-util-normalize-identifier": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", - "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", "dev": true, "funding": [ { @@ -4331,8 +4078,6 @@ }, "node_modules/micromark-util-resolve-all": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", - "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", "dev": true, "funding": [ { @@ -4351,8 +4096,6 @@ }, "node_modules/micromark-util-sanitize-uri": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", - "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", "dev": true, "funding": [ { @@ -4373,8 +4116,6 @@ }, "node_modules/micromark-util-subtokenize": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", - "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", "dev": true, "funding": [ { @@ -4396,8 +4137,6 @@ }, "node_modules/micromark-util-symbol": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "dev": true, "funding": [ { @@ -4413,8 +4152,6 @@ }, "node_modules/micromark-util-types": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", - "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", "dev": true, "funding": [ { @@ -4430,8 +4167,6 @@ }, "node_modules/micromatch": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, "license": "MIT", "dependencies": { @@ -4442,10 +4177,19 @@ "node": ">=8.6" } }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/min-indent": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", "dev": true, "license": "MIT", "engines": { @@ -4454,15 +4198,11 @@ }, "node_modules/ms": { "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true, "license": "MIT" }, "node_modules/nanoid": { "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", "funding": [ { "type": "github", @@ -4478,12 +4218,10 @@ } }, "node_modules/next": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/next/-/next-16.2.1.tgz", - "integrity": "sha512-VaChzNL7o9rbfdt60HUj8tev4m6d7iC1igAy157526+cJlXOQu5LzsBXNT+xaJnTP/k+utSX5vMv7m0G+zKH+Q==", + "version": "16.2.2", "license": "MIT", "dependencies": { - "@next/env": "16.2.1", + "@next/env": "16.2.2", "@swc/helpers": "0.5.15", "baseline-browser-mapping": "^2.9.19", "caniuse-lite": "^1.0.30001579", @@ -4497,14 +4235,14 @@ "node": ">=20.9.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "16.2.1", - "@next/swc-darwin-x64": "16.2.1", - "@next/swc-linux-arm64-gnu": "16.2.1", - "@next/swc-linux-arm64-musl": "16.2.1", - "@next/swc-linux-x64-gnu": "16.2.1", - "@next/swc-linux-x64-musl": "16.2.1", - "@next/swc-win32-arm64-msvc": "16.2.1", - "@next/swc-win32-x64-msvc": "16.2.1", + "@next/swc-darwin-arm64": "16.2.2", + "@next/swc-darwin-x64": "16.2.2", + "@next/swc-linux-arm64-gnu": "16.2.2", + "@next/swc-linux-arm64-musl": "16.2.2", + "@next/swc-linux-x64-gnu": "16.2.2", + "@next/swc-linux-x64-musl": "16.2.2", + "@next/swc-win32-arm64-msvc": "16.2.2", + "@next/swc-win32-x64-msvc": "16.2.2", "sharp": "^0.34.5" }, "peerDependencies": { @@ -4532,8 +4270,6 @@ }, "node_modules/next-themes": { "version": "0.4.6", - "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.4.6.tgz", - "integrity": "sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==", "license": "MIT", "peerDependencies": { "react": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc", @@ -4542,8 +4278,6 @@ }, "node_modules/next/node_modules/postcss": { "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "funding": [ { "type": "opencollective", @@ -4569,17 +4303,13 @@ } }, "node_modules/node-releases": { - "version": "2.0.36", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.36.tgz", - "integrity": "sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==", + "version": "2.0.37", "dev": true, "license": "MIT", "peer": true }, "node_modules/obug": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz", - "integrity": "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==", "dev": true, "funding": [ "https://github.com/sponsors/sxzz", @@ -4589,8 +4319,6 @@ }, "node_modules/parse-entities": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", - "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", "dev": true, "license": "MIT", "dependencies": { @@ -4609,8 +4337,6 @@ }, "node_modules/parse5": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.0.tgz", - "integrity": "sha512-9m4m5GSgXjL4AjumKzq1Fgfp3Z8rsvjRNbnkVwfu2ImRqE5D0LnY2QfDen18FSY9C573YU5XxSapdHZTZ2WolA==", "dev": true, "license": "MIT", "dependencies": { @@ -4622,8 +4348,6 @@ }, "node_modules/parse5/node_modules/entities": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", - "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -4635,38 +4359,30 @@ }, "node_modules/pathe": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", - "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", "dev": true, "license": "MIT" }, "node_modules/picocolors": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "license": "ISC" }, "node_modules/picomatch": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", - "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "version": "4.0.4", "dev": true, "license": "MIT", "engines": { - "node": ">=8.6" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/playwright": { - "version": "1.58.2", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.58.2.tgz", - "integrity": "sha512-vA30H8Nvkq/cPBnNw4Q8TWz1EJyqgpuinBcHET0YVJVFldr8JDNiU9LaWAE1KqSkRYazuaBhTpB5ZzShOezQ6A==", + "version": "1.59.1", "devOptional": true, "license": "Apache-2.0", "dependencies": { - "playwright-core": "1.58.2" + "playwright-core": "1.59.1" }, "bin": { "playwright": "cli.js" @@ -4679,9 +4395,7 @@ } }, "node_modules/playwright-core": { - "version": "1.58.2", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.58.2.tgz", - "integrity": "sha512-yZkEtftgwS8CsfYo7nm0KE8jsvm6i/PTgVtB8DL726wNf6H2IMsDuxCpJj59KDaxCtSnrWan2AeDqM7JBaultg==", + "version": "1.59.1", "devOptional": true, "license": "Apache-2.0", "bin": { @@ -4693,8 +4407,6 @@ }, "node_modules/postcss": { "version": "8.5.8", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz", - "integrity": "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==", "dev": true, "funding": [ { @@ -4722,8 +4434,6 @@ }, "node_modules/pretty-format": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", "dev": true, "license": "MIT", "peer": true, @@ -4738,8 +4448,6 @@ }, "node_modules/punycode": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, "license": "MIT", "engines": { @@ -4748,8 +4456,6 @@ }, "node_modules/punycode.js": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", - "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", "dev": true, "license": "MIT", "engines": { @@ -4758,8 +4464,6 @@ }, "node_modules/queue-microtask": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, "funding": [ { @@ -4779,8 +4483,6 @@ }, "node_modules/react": { "version": "19.2.4", - "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", - "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==", "license": "MIT", "engines": { "node": ">=0.10.0" @@ -4788,8 +4490,6 @@ }, "node_modules/react-dom": { "version": "19.2.4", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz", - "integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==", "license": "MIT", "dependencies": { "scheduler": "^0.27.0" @@ -4800,16 +4500,12 @@ }, "node_modules/react-is": { "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "dev": true, "license": "MIT", "peer": true }, "node_modules/redent": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", "dev": true, "license": "MIT", "dependencies": { @@ -4822,8 +4518,6 @@ }, "node_modules/require-from-string": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, "license": "MIT", "engines": { @@ -4832,8 +4526,6 @@ }, "node_modules/reusify": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", - "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "dev": true, "license": "MIT", "engines": { @@ -4842,14 +4534,13 @@ } }, "node_modules/rolldown": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.12.tgz", - "integrity": "sha512-yP4USLIMYrwpPHEFB5JGH1uxhcslv6/hL0OyvTuY+3qlOSJvZ7ntYnoWpehBxufkgN0cvXxppuTu5hHa/zPh+A==", + "version": "1.0.0-rc.13", "dev": true, "license": "MIT", + "peer": true, "dependencies": { - "@oxc-project/types": "=0.122.0", - "@rolldown/pluginutils": "1.0.0-rc.12" + "@oxc-project/types": "=0.123.0", + "@rolldown/pluginutils": "1.0.0-rc.13" }, "bin": { "rolldown": "bin/cli.mjs" @@ -4858,34 +4549,31 @@ "node": "^20.19.0 || >=22.12.0" }, "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.0.0-rc.12", - "@rolldown/binding-darwin-arm64": "1.0.0-rc.12", - "@rolldown/binding-darwin-x64": "1.0.0-rc.12", - "@rolldown/binding-freebsd-x64": "1.0.0-rc.12", - "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.12", - "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.12", - "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.12", - "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.12", - "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.12", - "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.12", - "@rolldown/binding-linux-x64-musl": "1.0.0-rc.12", - "@rolldown/binding-openharmony-arm64": "1.0.0-rc.12", - "@rolldown/binding-wasm32-wasi": "1.0.0-rc.12", - "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.12", - "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.12" + "@rolldown/binding-android-arm64": "1.0.0-rc.13", + "@rolldown/binding-darwin-arm64": "1.0.0-rc.13", + "@rolldown/binding-darwin-x64": "1.0.0-rc.13", + "@rolldown/binding-freebsd-x64": "1.0.0-rc.13", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.13", + "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.13", + "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.13", + "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.13", + "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.13", + "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.13", + "@rolldown/binding-linux-x64-musl": "1.0.0-rc.13", + "@rolldown/binding-openharmony-arm64": "1.0.0-rc.13", + "@rolldown/binding-wasm32-wasi": "1.0.0-rc.13", + "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.13", + "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.13" } }, "node_modules/rolldown/node_modules/@rolldown/pluginutils": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.12.tgz", - "integrity": "sha512-HHMwmarRKvoFsJorqYlFeFRzXZqCt2ETQlEDOb9aqssrnVBB1/+xgTGtuTrIk5vzLNX1MjMtTf7W9z3tsSbrxw==", + "version": "1.0.0-rc.13", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/run-parallel": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "funding": [ { @@ -4908,8 +4596,6 @@ }, "node_modules/saxes": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", - "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", "dev": true, "license": "ISC", "dependencies": { @@ -4921,14 +4607,10 @@ }, "node_modules/scheduler": { "version": "0.27.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", - "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", "license": "MIT" }, "node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "license": "ISC", "peer": true, @@ -4938,8 +4620,6 @@ }, "node_modules/sharp": { "version": "0.34.5", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", - "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", "hasInstallScript": true, "license": "Apache-2.0", "optional": true, @@ -4983,8 +4663,6 @@ }, "node_modules/sharp/node_modules/semver": { "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "license": "ISC", "optional": true, "bin": { @@ -4996,15 +4674,11 @@ }, "node_modules/siginfo": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", - "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", "dev": true, "license": "ISC" }, "node_modules/slash": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", - "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", "dev": true, "license": "MIT", "engines": { @@ -5016,8 +4690,6 @@ }, "node_modules/smol-toml": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.6.0.tgz", - "integrity": "sha512-4zemZi0HvTnYwLfrpk/CF9LOd9Lt87kAt50GnqhMpyF9U3poDAP2+iukq2bZsO/ufegbYehBkqINbsWxj4l4cw==", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -5029,8 +4701,6 @@ }, "node_modules/source-map-js": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -5038,22 +4708,16 @@ }, "node_modules/stackback": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", - "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", "dev": true, "license": "MIT" }, "node_modules/std-env": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.0.0.tgz", - "integrity": "sha512-zUMPtQ/HBY3/50VbpkupYHbRroTRZJPRLvreamgErJVys0ceuzMkD44J/QjqhHjOzK42GQ3QZIeFG1OYfOtKqQ==", "dev": true, "license": "MIT" }, "node_modules/string-width": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.1.0.tgz", - "integrity": "sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==", "dev": true, "license": "MIT", "dependencies": { @@ -5069,8 +4733,6 @@ }, "node_modules/strip-ansi": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", - "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "dev": true, "license": "MIT", "dependencies": { @@ -5085,8 +4747,6 @@ }, "node_modules/strip-ansi/node_modules/ansi-regex": { "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "dev": true, "license": "MIT", "engines": { @@ -5098,8 +4758,6 @@ }, "node_modules/strip-indent": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5111,8 +4769,6 @@ }, "node_modules/styled-jsx": { "version": "5.1.6", - "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", - "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", "license": "MIT", "dependencies": { "client-only": "0.0.1" @@ -5134,22 +4790,16 @@ }, "node_modules/symbol-tree": { "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true, "license": "MIT" }, "node_modules/tailwindcss": { "version": "4.2.2", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.2.tgz", - "integrity": "sha512-KWBIxs1Xb6NoLdMVqhbhgwZf2PGBpPEiwOqgI4pFIYbNTfBXiKYyWoTsXgBQ9WFg/OlhnvHaY+AEpW7wSmFo2Q==", "dev": true, "license": "MIT" }, "node_modules/tapable": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.2.tgz", - "integrity": "sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA==", "dev": true, "license": "MIT", "engines": { @@ -5162,15 +4812,11 @@ }, "node_modules/tinybench": { "version": "2.9.0", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", - "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", "dev": true, "license": "MIT" }, "node_modules/tinyexec": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.4.tgz", - "integrity": "sha512-u9r3uZC0bdpGOXtlxUIdwf9pkmvhqJdrVCH9fapQtgy/OeTTMZ1nqH7agtvEfmGui6e1XxjcdrlxvxJvc3sMqw==", "dev": true, "license": "MIT", "engines": { @@ -5179,8 +4825,6 @@ }, "node_modules/tinyglobby": { "version": "0.2.15", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", - "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5194,41 +4838,8 @@ "url": "https://github.com/sponsors/SuperchupuDev" } }, - "node_modules/tinyglobby/node_modules/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/tinyrainbow": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.0.tgz", - "integrity": "sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==", "dev": true, "license": "MIT", "engines": { @@ -5236,29 +4847,23 @@ } }, "node_modules/tldts": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.27.tgz", - "integrity": "sha512-I4FZcVFcqCRuT0ph6dCDpPuO4Xgzvh+spkcTr1gK7peIvxWauoloVO0vuy1FQnijT63ss6AsHB6+OIM4aXHbPg==", + "version": "7.0.28", "dev": true, "license": "MIT", "dependencies": { - "tldts-core": "^7.0.27" + "tldts-core": "^7.0.28" }, "bin": { "tldts": "bin/cli.js" } }, "node_modules/tldts-core": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.27.tgz", - "integrity": "sha512-YQ7uPjgWUibIK6DW5lrKujGwUKhLevU4hcGbP5O6TcIUb+oTjJYJVWPS4nZsIHrEEEG6myk/oqAJUEQmpZrHsg==", + "version": "7.0.28", "dev": true, "license": "MIT" }, "node_modules/to-regex-range": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5270,8 +4875,6 @@ }, "node_modules/tough-cookie": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.1.tgz", - "integrity": "sha512-LktZQb3IeoUWB9lqR5EWTHgW/VTITCXg4D21M+lvybRVdylLrRMnqaIONLVb5mav8vM19m44HIcGq4qASeu2Qw==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -5283,8 +4886,6 @@ }, "node_modules/tr46": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-6.0.0.tgz", - "integrity": "sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==", "dev": true, "license": "MIT", "dependencies": { @@ -5296,14 +4897,10 @@ }, "node_modules/tslib": { "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, "node_modules/typescript": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.2.tgz", - "integrity": "sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ==", "dev": true, "license": "Apache-2.0", "bin": { @@ -5316,15 +4913,11 @@ }, "node_modules/uc.micro": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", - "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", "dev": true, "license": "MIT" }, "node_modules/undici": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/undici/-/undici-7.24.6.tgz", - "integrity": "sha512-Xi4agocCbRzt0yYMZGMA6ApD7gvtUFaxm4ZmeacWI4cZxaF6C+8I8QfofC20NAePiB/IcvZmzkJ7XPa471AEtA==", + "version": "7.24.7", "dev": true, "license": "MIT", "engines": { @@ -5333,15 +4926,11 @@ }, "node_modules/undici-types": { "version": "7.18.2", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", - "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", "dev": true, "license": "MIT" }, "node_modules/unicorn-magic": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.4.0.tgz", - "integrity": "sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw==", "dev": true, "license": "MIT", "engines": { @@ -5353,8 +4942,6 @@ }, "node_modules/update-browserslist-db": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", - "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", "dev": true, "funding": [ { @@ -5385,8 +4972,6 @@ }, "node_modules/vite": { "version": "8.0.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.3.tgz", - "integrity": "sha512-B9ifbFudT1TFhfltfaIPgjo9Z3mDynBTJSUYxTjOQruf/zHH+ezCQKcoqO+h7a9Pw9Nm/OtlXAiGT1axBgwqrQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5461,42 +5046,290 @@ } } }, - "node_modules/vite-tsconfig-paths": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-6.1.1.tgz", - "integrity": "sha512-2cihq7zliibCCZ8P9cKJrQBkfgdvcFkOOc3Y02o3GWUDLgqjWsZudaoiuOwO/gzTzy17cS5F7ZPo4bsnS4DGkg==", + "node_modules/vite/node_modules/@oxc-project/types": { + "version": "0.122.0", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-android-arm64": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.12.tgz", + "integrity": "sha512-pv1y2Fv0JybcykuiiD3qBOBdz6RteYojRFY1d+b95WVuzx211CRh+ytI/+9iVyWQ6koTh5dawe4S/yRfOFjgaA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.12.tgz", + "integrity": "sha512-cFYr6zTG/3PXXF3pUO+umXxt1wkRK/0AYT8lDwuqvRC+LuKYWSAQAQZjCWDQpAH172ZV6ieYrNnFzVVcnSflAg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-darwin-x64": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.12.tgz", + "integrity": "sha512-ZCsYknnHzeXYps0lGBz8JrF37GpE9bFVefrlmDrAQhOEi4IOIlcoU1+FwHEtyXGx2VkYAvhu7dyBf75EJQffBw==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.12.tgz", + "integrity": "sha512-dMLeprcVsyJsKolRXyoTH3NL6qtsT0Y2xeuEA8WQJquWFXkEC4bcu1rLZZSnZRMtAqwtrF/Ib9Ddtpa/Gkge9Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.12.tgz", + "integrity": "sha512-YqWjAgGC/9M1lz3GR1r1rP79nMgo3mQiiA+Hfo+pvKFK1fAJ1bCi0ZQVh8noOqNacuY1qIcfyVfP6HoyBRZ85Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.12.tgz", + "integrity": "sha512-/I5AS4cIroLpslsmzXfwbe5OmWvSsrFuEw3mwvbQ1kDxJ822hFHIx+vsN/TAzNVyepI/j/GSzrtCIwQPeKCLIg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.12.tgz", + "integrity": "sha512-V6/wZztnBqlx5hJQqNWwFdxIKN0m38p8Jas+VoSfgH54HSj9tKTt1dZvG6JRHcjh6D7TvrJPWFGaY9UBVOaWPw==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.12.tgz", + "integrity": "sha512-AP3E9BpcUYliZCxa3w5Kwj9OtEVDYK6sVoUzy4vTOJsjPOgdaJZKFmN4oOlX0Wp0RPV2ETfmIra9x1xuayFB7g==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.12.tgz", + "integrity": "sha512-nWwpvUSPkoFmZo0kQazZYOrT7J5DGOJ/+QHHzjvNlooDZED8oH82Yg67HvehPPLAg5fUff7TfWFHQS8IV1n3og==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.0.0-rc.12", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.12.tgz", + "integrity": "sha512-Jpw/0iwoKWx3LJ2rc1yjFrj+T7iHZn2JDg1Yny1ma0luviFS4mhAIcd1LFNxK3EYu3DHWCps0ydXQ5i/rrJ2ig==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.12.tgz", + "integrity": "sha512-vRugONE4yMfVn0+7lUKdKvN4D5YusEiPilaoO2sgUWpCvrncvWgPMzK00ZFFJuiPgLwgFNP5eSiUlv2tfc+lpA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-wasm32-wasi": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.12.tgz", + "integrity": "sha512-ykGiLr/6kkiHc0XnBfmFJuCjr5ZYKKofkx+chJWDjitX+KsJuAmrzWhwyOMSHzPhzOHOy7u9HlFoa5MoAOJ/Zg==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, "dependencies": { - "debug": "^4.1.1", - "globrex": "^0.1.2", - "tsconfck": "^3.0.3" + "@napi-rs/wasm-runtime": "^1.1.1" }, - "peerDependencies": { - "vite": "*" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/vite-tsconfig-paths/node_modules/tsconfck": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.6.tgz", - "integrity": "sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==", + "node_modules/vite/node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.12.tgz", + "integrity": "sha512-5eOND4duWkwx1AzCxadcOrNeighiLwMInEADT0YM7xeEOOFcovWZCq8dadXgcRHSf3Ulh1kFo/qvzoFiCLOL1Q==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "bin": { - "tsconfck": "bin/tsconfck.js" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": "^18 || >=20" - }, - "peerDependencies": { - "typescript": "^5.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": "^20.19.0 || >=22.12.0" } }, + "node_modules/vite/node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.12.tgz", + "integrity": "sha512-PyqoipaswDLAZtot351MLhrlrh6lcZPo2LSYE+VDxbVk24LVKAGOuE4hb8xZQmrPAuEtTZW8E6D2zc5EUZX4Lw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/pluginutils": { + "version": "1.0.0-rc.12", + "dev": true, + "license": "MIT" + }, "node_modules/vite/node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -5512,23 +5345,40 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/vite/node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "node_modules/vite/node_modules/rolldown": { + "version": "1.0.0-rc.12", "dev": true, "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.122.0", + "@rolldown/pluginutils": "1.0.0-rc.12" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, "engines": { - "node": ">=12" + "node": "^20.19.0 || >=22.12.0" }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.0.0-rc.12", + "@rolldown/binding-darwin-arm64": "1.0.0-rc.12", + "@rolldown/binding-darwin-x64": "1.0.0-rc.12", + "@rolldown/binding-freebsd-x64": "1.0.0-rc.12", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.12", + "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.12", + "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.12", + "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.12", + "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.12", + "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.12", + "@rolldown/binding-linux-x64-musl": "1.0.0-rc.12", + "@rolldown/binding-openharmony-arm64": "1.0.0-rc.12", + "@rolldown/binding-wasm32-wasi": "1.0.0-rc.12", + "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.12", + "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.12" } }, "node_modules/vitest": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.2.tgz", - "integrity": "sha512-xjR1dMTVHlFLh98JE3i/f/WePqJsah4A0FK9cc8Ehp9Udk0AZk6ccpIZhh1qJ/yxVWRZ+Q54ocnD8TXmkhspGg==", "dev": true, "license": "MIT", "dependencies": { @@ -5607,23 +5457,8 @@ } } }, - "node_modules/vitest/node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/w3c-xmlserializer": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", - "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", "dev": true, "license": "MIT", "dependencies": { @@ -5635,8 +5470,6 @@ }, "node_modules/webidl-conversions": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-8.0.1.tgz", - "integrity": "sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -5645,8 +5478,6 @@ }, "node_modules/whatwg-mimetype": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz", - "integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==", "dev": true, "license": "MIT", "engines": { @@ -5655,8 +5486,6 @@ }, "node_modules/whatwg-url": { "version": "16.0.1", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-16.0.1.tgz", - "integrity": "sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==", "dev": true, "license": "MIT", "dependencies": { @@ -5670,8 +5499,6 @@ }, "node_modules/why-is-node-running": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", - "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", "dev": true, "license": "MIT", "dependencies": { @@ -5687,8 +5514,6 @@ }, "node_modules/xml-name-validator": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", - "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", "dev": true, "license": "Apache-2.0", "engines": { @@ -5697,15 +5522,11 @@ }, "node_modules/xmlchars": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "dev": true, "license": "MIT" }, "node_modules/yallist": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true, "license": "ISC", "peer": true diff --git a/package.json b/package.json index 5138ffe..65513e2 100644 --- a/package.json +++ b/package.json @@ -24,31 +24,30 @@ "dependencies": { "@vercel/analytics": "^2.0.1", "@vercel/speed-insights": "^2.0.0", - "next": "^16.2.1", + "next": "^16.2.2", "next-themes": "^0.4.6", "react": "^19.2.4", "react-dom": "^19.2.4" }, "devDependencies": { - "@biomejs/biome": "^2.4.9", - "@playwright/test": "^1.58.2", + "@biomejs/biome": "^2.4.10", + "@playwright/test": "^1.59.1", "@rolldown/plugin-babel": "^0.2.2", "@tailwindcss/postcss": "^4.2.2", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.2", "@testing-library/user-event": "^14.6.1", - "@types/node": "^25.5.0", + "@types/node": "^25.5.2", "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^6.0.1", "babel-plugin-react-compiler": "1.0.0", - "baseline-browser-mapping": "^2.10.12", + "baseline-browser-mapping": "^2.10.16", "jsdom": "^29.0.1", - "lefthook": "^2.1.4", + "lefthook": "^2.1.5", "markdownlint-cli2": "^0.22.0", - "tailwindcss": "^4.1.18", + "tailwindcss": "^4.2.2", "typescript": "^6.0.2", - "vite-tsconfig-paths": "^6.1.1", "vitest": "^4.1.2" } } diff --git a/vitest.config.ts b/vitest.config.ts index 8c67c76..c55ecd6 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -1,14 +1,10 @@ import babel from "@rolldown/plugin-babel"; import react, { reactCompilerPreset } from "@vitejs/plugin-react"; -import tsconfigPaths from "vite-tsconfig-paths"; import { defineConfig } from "vitest/config"; export default defineConfig({ - plugins: [ - tsconfigPaths(), - react(), - babel({ presets: [reactCompilerPreset()] }), - ], + plugins: [react(), babel({ presets: [reactCompilerPreset()] })], + resolve: { tsconfigPaths: true }, test: { allowOnly: !process.env.CI, // Block .only() in CI (explicit, matches Playwright forbidOnly) environment: "jsdom", From 84f05fc5d20df431a586e63bb52bc87a3e6e96e8 Mon Sep 17 00:00:00 2001 From: Michelle Date: Mon, 6 Apr 2026 22:11:41 +0400 Subject: [PATCH 02/13] docs: rename x_docs/ to .xdocs/ and add evaluation reports Directory rename: - Move all docs from x_docs/ to .xdocs/ (hidden directory) - Remove unused images (github-social-thin.jpg, old rough-notes.png) New documents: - HeroUI v3 evaluation report comparing against shadcn/ui - Vercel AGENTS.md vs skills eval comparison Hidden directory keeps project docs out of the file explorer while remaining version-controlled. Co-Authored-By: Claude Opus 4.6 (1M context) --- {x_docs => .xdocs}/images/app_screenshot.jpg | Bin .xdocs/images/nextjs-hero.png | Bin 0 -> 29317 bytes .xdocs/images/rough-notes.png | Bin 0 -> 10170 bytes .../images/template-explained.png | Bin {x_docs => .xdocs}/own/WORDS.md | 0 .xdocs/own/agentmd-over-skills.md | 224 ++++++++++++++++++ .xdocs/own/hero-ui.md | 210 ++++++++++++++++ {x_docs => .xdocs}/own/quick_notes.md | 0 {x_docs => .xdocs}/own/theme_resources.md | 0 {x_docs => .xdocs}/own/zustand.md | 0 {x_docs => .xdocs}/project-setup.md | 0 {x_docs => .xdocs}/reference/README.md | 0 .../reference/default.theme.css | 0 {x_docs => .xdocs}/reference/preflight.css | 0 README.md | 22 +- x_docs/images/github-social-thin.jpg | Bin 16760 -> 0 bytes x_docs/images/rough-notes.png | Bin 9955 -> 0 bytes 17 files changed, 445 insertions(+), 11 deletions(-) rename {x_docs => .xdocs}/images/app_screenshot.jpg (100%) create mode 100755 .xdocs/images/nextjs-hero.png create mode 100755 .xdocs/images/rough-notes.png rename {x_docs => .xdocs}/images/template-explained.png (100%) rename {x_docs => .xdocs}/own/WORDS.md (100%) create mode 100644 .xdocs/own/agentmd-over-skills.md create mode 100644 .xdocs/own/hero-ui.md rename {x_docs => .xdocs}/own/quick_notes.md (100%) rename {x_docs => .xdocs}/own/theme_resources.md (100%) rename {x_docs => .xdocs}/own/zustand.md (100%) rename {x_docs => .xdocs}/project-setup.md (100%) rename {x_docs => .xdocs}/reference/README.md (100%) rename {x_docs => .xdocs}/reference/default.theme.css (100%) rename {x_docs => .xdocs}/reference/preflight.css (100%) delete mode 100755 x_docs/images/github-social-thin.jpg delete mode 100755 x_docs/images/rough-notes.png diff --git a/x_docs/images/app_screenshot.jpg b/.xdocs/images/app_screenshot.jpg similarity index 100% rename from x_docs/images/app_screenshot.jpg rename to .xdocs/images/app_screenshot.jpg diff --git a/.xdocs/images/nextjs-hero.png b/.xdocs/images/nextjs-hero.png new file mode 100755 index 0000000000000000000000000000000000000000..e8686544cb0ddbc57c947a396f104f426b75e081 GIT binary patch literal 29317 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�ST=2zX8j6HACY&X4FZb+g{D!ScFLv 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 E4|@r - published `2026-17-01` + +## Introduction + +We expected [skills](https://agentskills.io/home) to be the solution for teaching coding agents framework-specific knowledge. After building evals focused on Next.js 16 APIs, we found something unexpected. + +A compressed 8KB docs index embedded directly in `AGENTS.md` achieved a 100% pass rate, while skills maxed out at 79% even with explicit instructions telling the agent to use them. Without those instructions, skills performed no better than having no documentation at all. + +Here's what we tried, what we learned, and how you can set this up for your own Next.js projects. + +## The problem we were trying to solve + +AI coding agents rely on training data that becomes outdated. [Next.js 16 introduces](https://nextjs.org/blog/next-16) APIs like `'use cache'`, `connection()`, and `forbidden()` that aren't in current model training data. When agents don't know these APIs, they generate incorrect code or fall back to older patterns. + +The reverse can also be true, where you're running an older Next.js version and the model suggests newer APIs that don't exist in your project yet. We wanted to fix this by giving agents access to version-matched documentation. + +## Two approaches for teaching agents framework knowledge + +Before diving into results, a quick explanation of the two approaches we tested: + +- **Skills** are an [open standard](https://agentskills.io/) for packaging domain knowledge that coding agents can use. A skill bundles prompts, tools, and documentation that an agent can invoke on demand. The idea is that the agent recognizes when it needs framework-specific help, invokes the skill, and gets access to relevant docs. + +- [**`AGENTS.md`**](https://agents.md/) is a markdown file in your project root that provides persistent context to coding agents. Whatever you put in `AGENTS.md` is available to the agent on every turn, without the agent needing to decide to load it. Claude Code uses `CLAUDE.md` for the same purpose. + +We built a Next.js docs skill and an `AGENTS.md` docs index, then ran them through our eval suite to see which performed better. + +## We started by betting on skills + +Skills seemed like the right abstraction. You package your framework docs into a skill, the agent invokes it when working on Next.js tasks, and you get correct code. Clean separation of concerns, minimal context overhead, and the agent only loads what it needs. There's even a growing directory of reusable skills at [skills.sh](https://skills.sh/). + +We expected the agent to encounter a Next.js task, invoke the skill, read version-matched docs, and generate correct code. + +Then we ran the evals. + +## Skills weren't being triggered reliably + +In 56% of eval cases, the skill was never invoked. The agent had access to the documentation but didn't use it. Adding the skill produced no improvement over baseline: + +| Configuration | Pass Rate | vs Baseline | +| :--- | :--- | :--- | +| Baseline (no docs) | 53% | — | +| Skill (default behaviour) | 53% | +0pp | + +Zero improvement. The skill existed, the agent could use it, and the agent chose not to. On the detailed Build/Lint/Test breakdown, the skill actually performed worse than baseline on some metrics (58% vs 63% on tests), suggesting that an unused skill in the environment may introduce noise or distraction. + +This isn't unique to our setup. Agents not reliably using available tools is a [known limitation](https://developers.openai.com/blog/eval-skills) of current models. + +## Explicit instructions helped, but wording was fragile + +We tried adding explicit instructions to `AGENTS.md` telling the agent to use the skill. + +``` +Before writing code, first explore the project structure, +then invoke the nextjs-doc skill for documentation. +``` + +Example instruction added to AGENTS.md to trigger skill usage. + +This improved the trigger rate to 95%+ and boosted the pass rate to 79%. + +| Configuration | Pass Rate | vs Baseline | +| :--- | :--- | :--- | +| Baseline (no docs) | 53% | — | +| Skill (default behaviour) | 53% | +0pp | +| Skill with explicit instructions | 79% | +26pp | + +A solid improvement. But we discovered something unexpected about how the instruction wording affected agent behavior. + +**Different wordings produced dramatically different results:** + +| Instruction | Behaviour | Outcome | +| :--- | :--- | :--- | +| "You MUST invoke the skill" | Reads docs first, anchors on doc patterns | Misses project context | +| "Explore project first, then invoke skill" | Builds mental model first, uses docs as reference | Better results | + +Same skill. Same docs. Different outcomes based on subtle wording changes. + +In one eval (the `'use cache'` directive test), the "invoke first" approach wrote correct `page.tsx` but completely missed the required `next.config.ts` changes. The "explore first" approach got both. + +This fragility concerned us. If small wording tweaks produce large behavioral swings, the approach feels brittle for production use. + +## Building evals we could trust + +Before drawing conclusions, we needed evals we could trust. Our initial test suite had ambiguous prompts, tests that validated implementation details rather than observable behavior, and a focus on APIs already in model training data. We weren't measuring what we actually cared about. + +We hardened the eval suite by removing test leakage, resolving contradictions, and shifting to behavior-based assertions. Most importantly, we added tests targeting Next.js 16 APIs that aren't in model training data. + +**APIs in our focused eval suite:** + +- `connection()` for dynamic rendering +- `'use cache'` directive +- `cacheLife()` and `cacheTag()` +- `forbidden()` and `unauthorized()` +- `proxy.ts` for API proxying +- Async `cookies()` and `headers()` +- `after()`, `updateTag()`, `refresh()` + +All the results that follow come from this hardened eval suite. Every configuration was judged against the same tests, with retries to rule out model variance. + +## The hunch that paid off + +What if we removed the decision entirely? Instead of hoping agents would invoke a skill, we could embed a docs index directly in `AGENTS.md`. Not the full documentation, just an index that tells the agent where to find specific doc files that match your project's Next.js version. The agent can then read those files as needed, getting version-accurate information whether you're on the latest release or maintaining an older project. + +We added a key instruction to the injected content. + +```text +IMPORTANT: Prefer retrieval-led reasoning over pre-training-led reasoning +for any Next.js tasks. +``` + +Key instruction embedded in the docs index + +This tells the agent to consult the docs rather than rely on potentially outdated training data. + +## The results surprised us + +We ran the hardened eval suite across all four configurations: + +![Eval results across all four configurations. AGENTS.md (third column) achieved 100% across Build, Lint, and Test](https://vercel.com/vc-ap-vercel-marketing/_next/image?url=https%3A%2F%2Fassets.vercel.com%2Fimage%2Fupload%2Fcontentful%2Fimage%2Fe5382hct74si%2F5klujg5rHUkECCKEGbllHN%2Fb6cf879ce5a9aa4b88e1c275e460e32f%2FCleanShot_2026-01-21_at_11.19.58_2x.png&w=1920&q=75) + +Eval results across all four configurations. AGENTS.md (third column) achieved 100% across Build, Lint, and Test + +**Final pass rates:** + +| Configuration | Pass Rate | vs Baseline | +| :--- | :--- | :--- | +| Baseline (no docs) | 53% | — | +| Skill (default behaviour) | 53% | +0pp | +| Skill with explicit instructions | 79% | +26pp | +| AGENTS.md docs index | 100% | +47pp | + +On the detailed breakdown, `AGENTS.md` achieved perfect scores across Build, Lint, and Test. + +| Configuration | Build | Lint | Test | +| :--- | :--- | :--- | :--- | +| Baseline | 84% | 95% | 63% | +| Skill (default behaviour) | 84% | 89% | 58% | +| Skill with explicit instructions | 95% | 100% | 84% | +| AGENTS.md | 100% | 100% | 100% | + +This wasn't what we expected. The "dumb" approach (a static markdown file) outperformed the more sophisticated skill-based retrieval, even when we fine-tuned the skill triggers. + +**Why does passive context beat active retrieval?** + +Our working theory comes down to three factors. + +1. **No decision point.** With `AGENTS.md`, there's no moment where the agent must decide "should I look this up?" The information is already present. + +2. **Consistent availability.** Skills load asynchronously and only when invoked. `AGENTS.md` content is in the system prompt for every turn. + +3. **No ordering issues.** Skills create sequencing decisions (read docs first vs. explore project first). Passive context avoids this entirely. + +## Addressing the context bloat concern + +Embedding docs in `AGENTS.md` risks bloating the context window. We addressed this with compression. + +The initial docs injection was around 40KB. We compressed it down to 8KB (an 80% reduction) while maintaining the 100% pass rate. The compressed format uses a pipe-delimited structure that packs the docs index into minimal space: + +```text +[Next.js Docs Index]|root: ./.next-docs +|IMPORTANT: Prefer retrieval-led reasoning over pre-training-led reasoning +|01-app/01-getting-started:{01-installation.mdx,02-project-structure.mdx,...} +|01-app/02-building-your-application/01-routing:{01-defining-routes.mdx,...} +``` + +Minified docs in AGENTS.md + +The full index covers every section of the Next.js documentation: + +![The full compressed docs index. Each line maps a directory path to the doc files it contains](https://vercel.com/vc-ap-vercel-marketing/_next/image?url=https%3A%2F%2Fassets.vercel.com%2Fimage%2Fupload%2Fcontentful%2Fimage%2Fe5382hct74si%2F7FuC0523TmDXUKhQNe8pAB%2F9060456f97c3863cb3b35a6404ca17a1%2Fimage_6_.png&w=1920&q=75) + +The full compressed docs index. Each line maps a directory path to the doc files it contains + +The agent knows where to find docs without having full content in context. When it needs specific information, it reads the relevant file from the `.next-docs/` directory. + +## Try it yourself + +One command sets this up for your Next.js project: + +`npx @next/codemod@canary agents-md` + +This functionality is part of the official [`@next/codemod` package](https://github.com/vercel/next.js/pull/88961). + +This command does three things: + +1. Detects your Next.js version +2. Downloads matching documentation to `.next-docs/` +3. Injects the compressed index into your `AGENTS.md` + +If you're using an agent that respects `AGENTS.md` (like Cursor or other tools), the same approach works. + +## What this means for framework authors + +Skills aren't useless. The `AGENTS.md` approach provides broad, horizontal improvements to how agents work with Next.js across all tasks. Skills work better for vertical, action-specific workflows that users explicitly trigger, like "upgrade my Next.js version," "migrate to the App Router," or [applying framework best practices](https://x.com/huozhi/status/2015881140281004438). The two approaches complement each other. + +That said, for general framework knowledge, passive context currently outperforms on-demand retrieval. If you maintain a framework and want coding agents to generate correct code, consider providing an `AGENTS.md` snippet that users can add to their projects. + +**Practical recommendations:** + +- **Don't wait for skills to improve.** The gap may close as models get better at tool use, but results matter now. + +- **Compress aggressively.** You don't need full docs in context. An index pointing to retrievable files works just as well. + +- **Test with evals.** Build evals targeting APIs not in training data. That's where doc access matters most. + +- **Design for retrieval.** Structure your docs so agents can find and read specific files rather than needing everything upfront. + +The goal is to shift agents from pre-training-led reasoning to retrieval-led reasoning. `AGENTS.md` turns out to be the most reliable way to make that happen. + +_Research and evals by_ [_Jude Gao_](https://x.com/gao_jude)_. CLI available at_ _`npx @next/codemod@canary agents-md`_ diff --git a/.xdocs/own/hero-ui.md b/.xdocs/own/hero-ui.md new file mode 100644 index 0000000..38e5213 --- /dev/null +++ b/.xdocs/own/hero-ui.md @@ -0,0 +1,210 @@ +# 🦸 HeroUI v3 Evaluation Report + +> **Date:** 31 March 2026 +> **Purpose:** Evaluate HeroUI v3.0.1 as an alternative to shadcn/ui for this Next.js 16 starter template +> **Stack:** Next.js 16 · React 19 · Tailwind CSS v4 · TypeScript (strict) · Biome + +--- + +## 🎯 TL;DR + +HeroUI v3 is a **feasible alternative** to shadcn/ui. It ships polished, accessible components out of the box with excellent Tailwind v4 and React 19 support. The key trade-off: HeroUI is a **living npm dependency** (automatic updates, less control) whereas shadcn/ui is **copy-paste code you own** (full control, more maintenance). HeroUI suits teams who want beautiful defaults fast; shadcn/ui suits teams who want total ownership and flexibility. Both have strong AI tooling. Community size and ecosystem maturity still favour shadcn/ui significantly. + +--- + +## 📊 Table 1: Stack Compatibility + +| Requirement | HeroUI v3 | shadcn/ui | Notes | +|---|:---:|:---:|---| +| React 19 | ✅ | ✅ | HeroUI built *for* React 19; shadcn fully updated | +| Next.js 16 (App Router) | ✅ | ✅ | Both provide Next.js integration examples | +| Tailwind CSS v4 | ✅ Full | ✅ Full | Both use `@theme`, CSS variables, OKLCH colours | +| TypeScript (strict) | ✅ | ✅ | Both fully typed with IntelliSense | +| Biome (lint/format) | ✅ | ✅ | Neither conflicts — no ESLint dependency | +| React Server Components | ⚠️ Partial | ⚠️ Partial | Both need `"use client"` for interactive components | +| `next-themes` | ✅ Native | ✅ Native | Both document next-themes integration | +| Dynamic `params` (Promise) | ➖ N/A | ➖ N/A | Component library doesn't affect routing | + +**Verdict:** Both are fully compatible with this project's stack. No blockers either way. + +--- + +## 📊 Table 2: Feature Comparison + +| Feature | HeroUI v3 | shadcn/ui | +|---|---|---| +| **Architecture** | npm package ("living library") — install, import, use | CLI copies code into your project — you own it entirely | +| **Underlying primitives** | React Aria Components (Adobe) | Radix UI (+ Base UI option since CLI v4) | +| **Component count** | ~50–75 (+ 220 in paid Pro tier) | ~50+ (community registries add more) | +| **Variant model** | Semantic: `primary`, `secondary`, `tertiary`, `danger` | Visual: `default`, `destructive`, `outline`, `ghost` | +| **Component pattern** | Compound components (`Alert.Icon`, `Alert.Title`) | Composable primitives (flat imports) | +| **Theming** | CSS variables (OKLCH) + Theme Builder UI tool | CSS variables (OKLCH) + manual token editing | +| **Built-in themes** | 2 (light/dark) + custom theme support | 8 base themes + community themes | +| **Accessibility** | WCAG 2.1 AA via React Aria (automatic) | WAI-ARIA via Radix (solid, but less automated) | +| **Animations** | CSS + GPU-accelerated (no JS runtime) | CSS transitions (manual, minimal by default) | +| **Bundle impact** | Tree-shaken npm dep; mid-range size | Zero runtime dep; you control what ships | +| **Customisation** | 10 styling approaches (Tailwind, BEM, CSS-in-JS, variant fns) | Full source code ownership; modify anything | +| **Updates** | Automatic via npm (bug fixes, new features) | Manual — you patch your own copied code | +| **Styles separation** | `@heroui/styles` is framework-agnostic (usable with Vue/Svelte) | React-only (Radix dependency) | +| **Figma kit** | ✅ Official v3 kit | ✅ Community kits available | +| **Pricing** | Free (MIT) core; Pro tier is paid | Fully free (MIT) | + +--- + +## 📊 Table 3: AI Tooling + +| AI Feature | HeroUI v3 | shadcn/ui | +|---|---|---| +| **LLMs.txt** | ✅ Multiple files: full docs, components-only, patterns-only | ❌ No dedicated llms.txt (docs are open though) | +| **MCP Server** | 🔜 Coming soon (announced) | ✅ Available since Aug 2025 | +| **Agent Skills** | ✅ `heroui-react` skill with scripts (`list_components`, `get_docs`, `get_theme`, etc.) | ✅ `shadcn/skills` covering both Radix and Base UI | +| **Text-to-App** | ✅ HeroUI Chat (natural language → app) | ✅ v0.dev (Vercel's AI-powered UI generator) | +| **Claude Code integration** | ✅ Add llms.txt to `.claude` file or reference URL | ✅ MCP server + skills for component search/install | +| **Cursor/Windsurf** | ✅ Documented integration via `@Docs` and `.windsurfrules` | ✅ Native support in most AI editors | +| **Design System AI** | Theme Builder UI | shadcn/create for visual presets | + +**Verdict:** Both invest heavily in AI developer tooling. HeroUI's `llms.txt` files are more structured for LLM consumption. shadcn's MCP server is already live. Roughly equal — different strengths. + +--- + +## 📊 Table 4: Ecosystem & Community + +| Metric | HeroUI v3 | shadcn/ui | +|---|---|---| +| **npm weekly downloads** | ~81K–120K | ~560K+ | +| **GitHub stars** | ~24K–27K | ~104K+ | +| **Website adoption** | ~39 sites (BuiltWith) | ~14,900 sites (BuiltWith) | +| **First release** | 2021 (as NextUI) | 2023 | +| **Maturity** | v3 is new (2025–2026); rewrite from v2 | 3+ years in production; stable iteration | +| **Stack Overflow coverage** | Limited | Extensive | +| **Third-party integrations** | Growing | Large ecosystem of registries and extensions | +| **Documentation quality** | Thorough; praised by reviewers | Extensive with many examples | +| **Discord/community** | Active Discord + GitHub Discussions | Large community, many tutorials | +| **Backing** | HeroUI Inc. (startup) | Vercel ecosystem (shadcn is a Vercel employee) | + +**Verdict:** shadcn/ui has ~5–14× larger adoption across every metric. This means more answered questions, more community components, and faster bug discovery. HeroUI's community is growing but significantly smaller. + +--- + +## ✅ Advantages of HeroUI over shadcn/ui + +- **🎨 Beautiful out of the box** — Polished defaults with smooth animations; less design work needed to look professional. shadcn requires more customisation to avoid the "every shadcn app looks the same" problem. + +- **♿ Stronger accessibility foundation** — React Aria (Adobe) provides automatic ARIA attributes, keyboard navigation, focus management, and screen reader support. Radix is solid but React Aria is considered more comprehensive. + +- **🔄 Automatic updates** — Bug fixes and new components arrive via `npm update`. With shadcn, you must manually patch your copied components when upstream fixes land. + +- **🏗️ Compound component pattern** — `Alert.Icon`, `Alert.Title`, `Alert.Close` — intuitive, discoverable API. shadcn uses flat imports which are more flexible but less self-documenting. + +- **🎭 Semantic variant naming** — `primary`, `secondary`, `danger` communicate *intent*, not appearance. Easier to maintain a consistent design language across a team. + +- **⚡ CSS-only animations** — GPU-accelerated, no JavaScript runtime overhead. v2's Framer Motion dependency is gone. Lighter bundles. + +- **🧩 Framework-agnostic styles** — `@heroui/styles` can be used with Vue, Svelte, or plain HTML. Useful if the project ever needs a non-React sibling. + +- **📚 Superior LLM documentation** — Dedicated `llms.txt`, `llms-full.txt`, `llms-components.txt`, `llms-patterns.txt` files purpose-built for AI assistants. Well-structured for context-limited models. + +- **🎯 Lower learning curve** — Install, import, use. No CLI ceremony to add each component. Better for beginners and rapid prototyping. + +--- + +## ❌ Disadvantages of HeroUI vs shadcn/ui + +- **📉 Much smaller community** — 5–14× fewer downloads, stars, and production sites. Fewer blog posts, tutorials, and Stack Overflow answers. When you hit an edge case, you're more likely to be on your own. + +- **🔒 Less code ownership** — Components live in `node_modules`. You can customise via props, classes, and variant functions, but you can't modify the component internals without forking. shadcn gives you the actual source. + +- **🐛 v3 known bugs** — Table component lags with 50+ rows (missing `React.memo` on primitives). Chrome-specific bug where Modal/Dropdown leaves popovers stuck on screen. These are documented GitHub issues. + +- **🔀 Migration churn** — NextUI → HeroUI rename + v2 → v3 breaking changes frustrated existing users. GitHub issues show styling regressions (Button colour/radius, modal styles). Track record of disruptive version changes. + +- **💰 Paid Pro tier** — HeroUI Pro (April 2026) introduces paid components and AI tooling. Core remains MIT, but advanced components (220+) cost money. shadcn is entirely free with no premium tier. + +- **📦 208 third-party dependencies** — Larger dependency tree creates security and maintenance surface area. shadcn's copy-paste model has zero runtime dependencies. + +- **🎨 Limited built-in themes** — Only 2 themes (light/dark) vs shadcn's 8+ base themes. Custom themes require manual CSS variable configuration. + +- **⚠️ RSC support incomplete** — Complex interactive components still require `"use client"`. While this is true of both libraries, HeroUI's React Aria foundation means more client-side JavaScript than shadcn's minimal approach. + +- **📋 Smaller component catalogue (free tier)** — ~50–75 free components vs shadcn's 50+ with extensive community registries adding hundreds more. The gap widens when factoring in the shadcn ecosystem. + +--- + +## 🌐 What the Web Says (2026) + +### Positive Sentiment (majority of independent sources) + +> *"Well-designed and intuitive API for beginner and advanced developers"* +> — Shipped.club (ranked HeroUI #6 of 11 best React libraries) + +> *"Beautiful websites regardless of your design experience... gorgeous defaults"* +> — Product Hunt reviews (unanimously 5-star) + +> *"Over 120,000 downloads on npm each week with strong growth"* +> — DEV Community + +> *"Reduces cognitive load for beginners by offering ready-to-use components"* +> — LinkedIn developer testimonial + +### Critical Sentiment (minority but substantive) + +> *"Being a newer library, the community is smaller compared to more established options"* +> — Untitled UI (ranked HeroUI #11 of 14 libraries) + +> *"HeroUI is only React-dependent... 208 third-party dependencies create security and maintenance risk"* +> — daisyUI comparison analysis + +> *"More complex pieces still need client components despite v3 improvements"* +> — Product Hunt reviewer on RSC support + +### Comparison Consensus + +- **For rapid shipping and beautiful defaults:** HeroUI wins +- **For customisation and code ownership:** shadcn/ui wins +- **For enterprise scale:** Neither — MUI or Ant Design preferred +- **For this template project:** Both viable; depends on philosophy preference + +### Sources Consulted + +- Builder.io: "15 Best React UI Libraries for 2026" +- DEV Community: "5 Best React UI Libraries for 2026" +- Untitled UI: "14 Best React UI Component Libraries in 2026" +- daisyUI: "HeroUI vs shadcn/ui" and "daisyUI Alternative to HeroUI" +- Subframe: "NextUI vs Shadcn: Which One is Better" and "NextUI Alternatives" +- Zenn.dev: React component libraries comparison (JP) +- Medium (Hitesh Saha): "Top 5 UI Libraries Compared for 2025" +- Product Hunt: HeroUI/NextUI reviews +- GitHub: heroui-inc/heroui issues and discussions + +--- + +## ⚠️ Known Issues & Risks (HeroUI v3) + +| Issue | Severity | Status | +|---|---|---| +| Table component performance degrades at 50+ rows (missing `React.memo`) | 🟡 Medium | Open on GitHub; wasn't an issue in v2 | +| Chrome: Modal/AlertDialog opened from Dropdown leaves popover stuck | 🟡 Medium | Reported; Chrome-specific | +| Input text cursor jumps to end after mid-text deletion | 🟢 Low | Reported | +| Styling regressions after v2→v3 migration (Button colour/radius) | 🟡 Medium | Multiple reports | +| RSC support not seamless for all interactive components | 🟡 Medium | Partial; ongoing work | +| NextUI → HeroUI rename caused confusion and migration friction | 🟢 Low | One-time; settled now | + +--- + +## 💡 Recommendation + +**Both are viable for this starter template.** The choice comes down to philosophy: + +| If you value... | Choose | +|---|---| +| Beautiful defaults with minimal effort | 🦸 HeroUI | +| Full code ownership and transparency | 🎨 shadcn/ui | +| Automatic bug fixes and updates | 🦸 HeroUI | +| Larger community and ecosystem | 🎨 shadcn/ui | +| Strongest accessibility out of the box | 🦸 HeroUI | +| Zero runtime dependencies | 🎨 shadcn/ui | +| AI-first documentation (llms.txt) | 🦸 HeroUI | +| Mature, battle-tested in production | 🎨 shadcn/ui | +| Everything free, no paid tier | 🎨 shadcn/ui | + +**For this specific project** (a starter template others will clone and build upon), shadcn/ui's copy-paste model arguably fits better — template users get full ownership of every component and can modify anything without fighting a library's API. However, if the goal is to ship polished UIs quickly with less maintenance overhead, HeroUI v3 is a genuinely strong contender that's worth serious consideration. diff --git a/x_docs/own/quick_notes.md b/.xdocs/own/quick_notes.md similarity index 100% rename from x_docs/own/quick_notes.md rename to .xdocs/own/quick_notes.md diff --git a/x_docs/own/theme_resources.md b/.xdocs/own/theme_resources.md similarity index 100% rename from x_docs/own/theme_resources.md rename to .xdocs/own/theme_resources.md diff --git a/x_docs/own/zustand.md b/.xdocs/own/zustand.md similarity index 100% rename from x_docs/own/zustand.md rename to .xdocs/own/zustand.md diff --git a/x_docs/project-setup.md b/.xdocs/project-setup.md similarity index 100% rename from x_docs/project-setup.md rename to .xdocs/project-setup.md diff --git a/x_docs/reference/README.md b/.xdocs/reference/README.md similarity index 100% rename from x_docs/reference/README.md rename to .xdocs/reference/README.md diff --git a/x_docs/reference/default.theme.css b/.xdocs/reference/default.theme.css similarity index 100% rename from x_docs/reference/default.theme.css rename to .xdocs/reference/default.theme.css diff --git a/x_docs/reference/preflight.css b/.xdocs/reference/preflight.css similarity index 100% rename from x_docs/reference/preflight.css rename to .xdocs/reference/preflight.css diff --git a/README.md b/README.md index cd48e4e..30c3859 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ -![Next.js 16 - a modern template repo](x_docs/images/github-social-thin.jpg) +![Next.js 16 - a modern template repo](.xdocs/images/nextjs-hero.png) *A Next.js 16 template with modern tooling and CI/CD automation. Code quality checks (linting, formatting, type checking, testing) run via Lefthook locally and GitHub Actions on PRs. Dependency updates automated via Dependabot. Deployments handled by Vercel: Preview for PRs, Production for main. Assumes Claude Code.*
- - Homepage in light and dark modes with UI library guidance + + Homepage in light and dark modes with UI library guidance

Template homepage with light/dark mode setup — UI component library still needed

@@ -24,9 +24,9 @@ npm run dev # Open http://localhost:3000 to see app running **(2) Install Extensions.** In VSCode/Cursor install the extensions shown in [extensions.json](.vscode/extensions.json) -**(3) GitHub + Vercel Setup.** Follow [x_docs/project-setup.md](x_docs/project-setup.md) to set up GitHub and Vercel. +**(3) GitHub + Vercel Setup.** Follow [.xdocs/project-setup.md](.xdocs/project-setup.md) to set up GitHub and Vercel. -**(4) Housekeeping.** Recommended to remove [x_docs/](x_docs/) (these are my working files). Modify [CLAUDE.md](.claude/CLAUDE.md), [.mcp.json](.mcp.json), and [commands/](.claude/commands) as preferred. +**(4) Housekeeping.** Recommended to remove [.xdocs/](.xdocs/) (these are my working files). Modify [CLAUDE.md](.claude/CLAUDE.md), [.mcp.json](.mcp.json), and [commands/](.claude/commands) as preferred. **(5) Choose UI Library.** Choose one that supports Tailwind 4. [shadcn/ui](https://ui.shadcn.com/) (free) and [HeroUI v3](https://heroui.com/) (free) are both LLM friendly and use semantic tokens — which makes theming easy. shadcn is ubiquitous so theme it well to stand out — [tweak-cn](https://tweakcn.com/) and [theme-generator](https://shadcnstudio.com/theme-generator) are helpful. HeroUI is more visually distinct and extremely LLM friendly; it ships with agent skills too. [Tailwind Plus](https://tailwindcss.com/plus) (paid) offers components ([Catalyst](https://tailwindcss.com/plus/ui-kit)), assembled UI blocks, and full site templates, but doesn't include semantic tokens so centralised theming takes more manual work. @@ -40,7 +40,7 @@ For exact list see [package.json](package.json) | Category | Tool | What it does | | :------- | :--- | :----------- | -| Framework | [Next.js 16.2.1](https://nextjs.org) | Core webapp foundation — routing, rendering, API routes, optimisation, and builds | +| Framework | [Next.js 16.2.2](https://nextjs.org) | Core webapp foundation — routing, rendering, API routes, optimisation, and builds | | Language | [TypeScript 6](https://www.typescriptlang.org) | Static type checking with strict mode enabled | | Styling | [Tailwind CSS v4](https://tailwindcss.com) | Utility-first CSS framework for rapid styling | | | [next-themes](https://github.com/pacocoursey/next-themes) | Light/dark mode theming provider | @@ -65,7 +65,7 @@ When starting a new project from this template, you'll typically add: - Authentication (NextAuth.js, Clerk, or Supabase Auth) - Database/ORM (Neon or Supabase with Prisma or Drizzle. Or try Convex!) -![Explained banner](x_docs/images/template-explained.png) +![Explained banner](.xdocs/images/template-explained.png) ## Next.js Installation Explained @@ -95,7 +95,7 @@ npm install # Install updated versions | :----- | :----- | :------------------ | | ▢ [.gitattributes](.gitattributes) | Git line ending and file type handling | Normalises line endings across platforms for consistent Git diffs | | ▢ [.gitignore](.gitignore) | Files and directories Git should ignore | Prevents build outputs and dependencies from being committed | -| ▢ [.markdownlint.yaml](.markdownlint.yaml) | Markdownlint configuration | Disables strict linting rules for practical writing | +| ▢ [.markdownlint-cli2.yaml](.markdownlint-cli2.yaml) | Markdownlint configuration | Disables strict linting rules for practical writing; supports file ignores | | ▢ [.vscode/extensions.json](.vscode/extensions.json) | VS Code extension recommendations | Useful extensions to use in this Next.js project | | ▢ [.vscode/settings.json](.vscode/settings.json) | VS Code editor and formatting settings | Enables auto-formatting and configures Biome and Tailwind extensions | | 🌺 [.claude/commands/](.claude/commands) | Claude Code repeatable prompts | Write commits, evaluate CodeRabbit comments, post-merge cleanup | @@ -236,7 +236,7 @@ Key CI Takeaways - Fast Feedback — Pre-commit catches 90% of issues locally in ~3s vs ~2min CI wait - Quality Gates — Code is validated 2× (local + CI) before reaching production -![Quick rough notes](x_docs/images/rough-notes.png) +![Quick rough notes](.xdocs/images/rough-notes.png) ## Quick Notes @@ -258,6 +258,6 @@ Key CI Takeaways 5. React components are compiled with React Compiler (matching prod) ``` -(3) GitHub - A branch ruleset to be set up to protect main. Includes checks for GitHub workflow jobs to pass before merging PR to main. See [x_docs/project-setup.md](x_docs/project-setup.md). +(3) GitHub - A branch ruleset to be set up to protect main. Includes checks for GitHub workflow jobs to pass before merging PR to main. See [.xdocs/project-setup.md](.xdocs/project-setup.md). -(4) Vercel For Deploys - When you raise a PR it automatically deploys to Vercel Preview and Playwright e2e tests run on that too in addition to GitHub servers. When you merge the PR into main, you are deploying to Vercel prod. See [x_docs/project-setup.md](x_docs/project-setup.md). +(4) Vercel For Deploys - When you raise a PR it automatically deploys to Vercel Preview and Playwright e2e tests run on that too in addition to GitHub servers. When you merge the PR into main, you are deploying to Vercel prod. See [.xdocs/project-setup.md](.xdocs/project-setup.md). diff --git a/x_docs/images/github-social-thin.jpg b/x_docs/images/github-social-thin.jpg deleted file mode 100755 index 80b2e81cd6c090bf7ddeca1800afc689dc3eb613..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16760 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 f8~XttskXpdpJ>&+o~jvN+ Date: Mon, 6 Apr 2026 22:13:02 +0400 Subject: [PATCH 03/13] chore: migrate markdownlint config to cli2 format and tidy workspace Markdownlint: - Replace .markdownlint.yaml with .markdownlint-cli2.yaml (adds ignores support and node_modules exclusion) - Add MD028 and MD032 rule disables for blockquotes and template lists VS Code: - Hide .ruff_cache directory in file explorer Co-Authored-By: Claude Opus 4.6 (1M context) --- .markdownlint-cli2.yaml | 17 +++++++++++++++++ .markdownlint.yaml | 11 ----------- .vscode/settings.json | 1 + 3 files changed, 18 insertions(+), 11 deletions(-) create mode 100644 .markdownlint-cli2.yaml delete mode 100644 .markdownlint.yaml diff --git a/.markdownlint-cli2.yaml b/.markdownlint-cli2.yaml new file mode 100644 index 0000000..bb0a79b --- /dev/null +++ b/.markdownlint-cli2.yaml @@ -0,0 +1,17 @@ +# Configuration for markdownlint-cli2 and VSCode/Cursor extension +# Extension: davidanson.vscode-markdownlint + +ignores: + - "node_modules/**" + +# Disable only the rules that interfere with practical markdown writing +config: + MD013: false # Line length (inappropriate for markdown) + MD024: false # Allow duplicate headings ("### Example", "### Example") + MD033: false # Allow inline HTML (
, , etc.) + MD036: false # Allow emphasis (bold/italic) without treating it as heading + MD040: false # Fenced code blocks don't need language specified + MD028: false # Allow blank lines between blockquotes (attributed quotes) + MD041: false # First line doesn't need to be h1 + MD060: false # Table column style (compact tables are fine) + MD032: false # Lists in templates don't need surrounding blank lines diff --git a/.markdownlint.yaml b/.markdownlint.yaml deleted file mode 100644 index b2adfb3..0000000 --- a/.markdownlint.yaml +++ /dev/null @@ -1,11 +0,0 @@ -# Configuration for VSCode/Cursor markdownlint extension (matches CodeRabbit AI linter) -# Extension: davidanson.vscode-markdownlint - -# Disable only the rules that interfere with practical markdown writing -MD013: false # Line length (inappropriate for markdown) -MD024: false # Allow duplicate headings ("### Example", "### Example") -MD033: false # Allow inline HTML (
, , etc.) -MD036: false # Allow emphasis (bold/italic) without treating it as heading -MD040: false # Fenced code blocks don't need language specified -MD041: false # First line doesn't need to be h1 -MD060: false # Table column style (compact tables are fine) diff --git a/.vscode/settings.json b/.vscode/settings.json index d8c95cb..69abcd4 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -18,6 +18,7 @@ "files.exclude": { "**/.next": true, // Hide Next.js build output "**/node_modules": true, // Hide npm installed dependencies + "**/.ruff_cache": true, // Hide Ruff linter cache "next-env.d.ts": true, // Hide Next.js file (uneditable) "tsconfig.tsbuildinfo": true // Hide TypeScript build info file }, From 9508d212b2a98c9a36c284e7e6758a9a34d30586 Mon Sep 17 00:00:00 2001 From: Michelle Date: Mon, 6 Apr 2026 22:13:53 +0400 Subject: [PATCH 04/13] rules: update permission syntax and expand coderabbit command Permissions (.claude/settings.json): - Add $schema for validation - Update Bash permission syntax from colon to space separators - Sort allow list alphabetically - Remove extra marketplace registration for playwright-skill Commands: - Expand coderabbit command with structured output, thread resolution, and cleanup steps - Update commit template docs glob to include .xdocs/ Co-Authored-By: Claude Opus 4.6 (1M context) --- .claude/commands/coderabbit.md | 69 ++++++++++++++++++------ .claude/commands/commit.md | 4 +- .claude/settings.json | 99 +++++++++++++++------------------- 3 files changed, 97 insertions(+), 75 deletions(-) diff --git a/.claude/commands/coderabbit.md b/.claude/commands/coderabbit.md index 27198eb..e58a56a 100644 --- a/.claude/commands/coderabbit.md +++ b/.claude/commands/coderabbit.md @@ -1,12 +1,12 @@ --- description: Evaluate CodeRabbit comment and recommend whether to action it -argument-hint: -allowed-tools: Bash(gh api:*), Read, Glob, Grep +argument-hint: +allowed-tools: Read, Glob, Grep, Bash(gh api *), Bash(rm x_coderabbit_*) --- ## 1. Fetch -Parse `$1` to extract owner, repo, and comment ID. +Parse `$1` to extract owner, repo, PR number, and comment ID. ```bash # strips analysis chain, includes diff context @@ -29,31 +29,68 @@ Evaluate the comment `x_coderabbit_COMMENT_ID.md` against the context of our cod | **Valuable** | Worth doing? Good practice? Or is it over-engineering? | | **Elegant** | Is the suggested fix pragmatic and clean? | -## 3. Recommend +## 3. Recommend & Confirm -1. **Summary**: Explain the comment (2-4 simple sentences) +Follow this output structure: -2. **Verdict**: [Action | Skip | Clarify] - - **Action** - Valid and valuable; implement (or with modifications) - - **Skip** - Not applicable, over-engineered, or incorrect - - **Clarify** - Need more information before deciding + +🐰 CodeRabbit Review: [Terse title for comment] -3. **Reasoning**: Why this verdict (2-3 sentences) +📋 Summary: [Explain the comment, 2-4 simple sentences] -## Output Format +🏷️ Verdict: [Action | Skip | Clarify] +- **Action** - Valid and valuable; implement (or with modifications) +- **Skip** - Not applicable, over-engineered, or incorrect +- **Clarify** - Need more information before deciding -Well structured, use emojis, if using tables keep width <100 chars for readability. +💬 Reasoning: [Why this verdict, 2-3 simple sentences] + -## Replying to CodeRabbit on GitHub +**Output Format:** Well structured, use emojis, if using tables keep width <100 chars for readability. -When you recommend skipping a fix, ask whether the user would like to reply to CodeRabbit. +Ask for confirmation before proceeding with the verdict. -To reply to a PR review comment, use `in_reply_to` on the pull comments endpoint: +## 4. Reply To CodeRabbit and Resolve + +After actioning or skipping, offer to reply to CodeRabbit **and** resolve the thread. Reply first, then resolve. Never do either without user confirmation. + + +Keep replies concise. State reason for action or skip. ```bash gh api repos/OWNER/REPO/pulls/PULL_NUMBER/comments \ -f body="@coderabbitai ..." \ -F in_reply_to=COMMENT_ID ``` + + + +Resolve thread: + +```bash +gh api graphql -f query='{ + repository(owner: "OWNER", name: "REPO") { + pullRequest(number: PULL_NUMBER) { + reviewThreads(first: 50) { + nodes { + id + comments(first: 1) { nodes { databaseId } } + } + } + } + } +}' --jq '.data.repository.pullRequest.reviewThreads.nodes[] + | select(.comments.nodes[0].databaseId == COMMENT_ID) | .id' \ +| xargs -I{} gh api graphql -f query='mutation { + resolveReviewThread(input: { threadId: "{}" }) { + thread { isResolved } + } +}' --jq '.data.resolveReviewThread.thread.isResolved' +``` + + +## 5. Wrap-up + +Clean up: `rm x_coderabbit_COMMENT_ID.md` -Never reply to a CodeRabbit comment unless confirmed by the user. +State final summary, in 4-10 words and emoji. diff --git a/.claude/commands/commit.md b/.claude/commands/commit.md index b4cc619..58032f0 100644 --- a/.claude/commands/commit.md +++ b/.claude/commands/commit.md @@ -24,12 +24,10 @@ Additional user instructions: $ARGUMENTS [main_prefix]: [brief main summary in imperative mood] [Section heading]: - - [Significant changes and impact over minor details] - [Write for someone reading this git log in 6 months] [Additional section (for multi-concern commits)]: - - [etc.] [2-3 terse sentences of why / benefit / impact] @@ -46,7 +44,7 @@ Additional user instructions: $ARGUMENTS - `refactor:` code changes that neither fix bugs nor add features - `style:` code formatting, visual consistency, linting fixes; no functional change - `chore:` dev workflow, workspace config, dependency updates, dev tools e.g. `.vscode/**/*`, `pyproject.toml`, `.gitignore` -- `docs:` documentation changes only e.g. `README.md`, `docs/**/*.md`, `x_docs/**/*.md` +- `docs:` documentation changes only e.g. `README.md`, `docs/**/*`, `x_docs/**/*`, `.xdocs/**/*` - `feat:` new feature for users (adds functionality) diff --git a/.claude/settings.json b/.claude/settings.json index a3e6977..f2e2de0 100644 --- a/.claude/settings.json +++ b/.claude/settings.json @@ -1,22 +1,51 @@ { - "extraKnownMarketplaces": { - "playwright-skill": { - "source": { - "source": "github", - "repo": "lackeyjb/playwright-skill" - } - } - }, + "$schema": "https://json.schemastore.org/claude-code-settings.json", + "permissions": { "deny": ["Read(**/.env)", "Read(**/.envrc)"], "ask": [], - "allow": [ - "mcp__ide__getDiagnostics", - - "Bash(claude mcp get:*)", + "Bash(cat *)", + "Bash(claude mcp get *)", "Bash(claude mcp list)", - + "Bash(echo *)", + "Bash(find *)", + "Bash(gh pr checks *)", + "Bash(gh pr list *)", + "Bash(gh run list *)", + "Bash(gh run view *)", + "Bash(git log *)", + "Bash(ls *)", + "Bash(lsof *)", + "Bash(npm outdated)", + "Bash(npm run build)", + "Bash(npm run check)", + "Bash(npm run dev)", + "Bash(npm run lint)", + "Bash(npm run lint:md *)", + "Bash(npm run start)", + "Bash(npm run test)", + "Bash(npm run test:e2e *)", + "Bash(npm run test:unit *)", + "Bash(npm run typecheck)", + "Bash(npx @biomejs/biome *)", + "Bash(npx lefthook *)", + "Bash(npx playwright *)", + "Bash(npx vercel *)", + "Bash(sed *)", + "Bash(tree *)", + "Bash(vercel --help)", + "Bash(vercel env --help)", + "Bash(vercel env ls *)", + "Bash(vercel git --help)", + "Bash(vercel integration --help)", + "Bash(vercel list *)", + "Bash(vercel open)", + "Bash(vercel project ls *)", + "Bash(vercel whoami)", + "Bash(wc *)", + "Bash(xargs *)", + "mcp__ide__getDiagnostics", "mcp__playwright__browser_click", "mcp__playwright__browser_close", "mcp__playwright__browser_console_messages", @@ -29,49 +58,7 @@ "mcp__playwright__browser_snapshot", "mcp__playwright__browser_tabs", "mcp__playwright__browser_take_screenshot", - "mcp__playwright__browser_wait_for", - - "Bash(cat:*)", - "Bash(echo:*)", - "Bash(find:*)", - "Bash(lsof:*)", - "Bash(ls:*)", - "Bash(sed:*)", - "Bash(tree:*)", - "Bash(wc:*)", - "Bash(xargs:*)", - - "Bash(git log:*)", - "Bash(gh pr checks:*)", - "Bash(gh pr list:*)", - "Bash(gh run list:*)", - "Bash(gh run view:*)", - - "Bash(npm outdated)", - "Bash(npm run build)", - "Bash(npm run dev)", - "Bash(npm run start)", - "Bash(npm run check)", - "Bash(npm run lint)", - "Bash(npm run lint:md:*)", - "Bash(npm run test)", - "Bash(npm run test:e2e:*)", - "Bash(npm run test:unit:*)", - "Bash(npm run typecheck)", - "Bash(npx @biomejs/biome:*)", - "Bash(npx lefthook:*)", - "Bash(npx playwright:*)", - - "Bash(npx vercel:*)", - "Bash(vercel --help)", - "Bash(vercel env --help)", - "Bash(vercel env ls:*)", - "Bash(vercel git --help)", - "Bash(vercel integration --help)", - "Bash(vercel list:*)", - "Bash(vercel open)", - "Bash(vercel project ls:*)", - "Bash(vercel whoami)" + "mcp__playwright__browser_wait_for" ] } } From 7a78ca2e4ebff862f718ea6af9efad0974ac9ae3 Mon Sep 17 00:00:00 2001 From: Michelle Date: Sun, 26 Apr 2026 23:52:29 +0400 Subject: [PATCH 05/13] chore: bump dependencies within semver ranges MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Dependency updates: - next 16.2.2 → 16.2.4, react/react-dom 19.2.4 → 19.2.5 - @biomejs/biome 2.4.10 → 2.4.13, typescript 6.0.2 → 6.0.3 - vitest 4.1.2 → 4.1.5, jsdom 29.0.1 → 29.0.2 - @tailwindcss/postcss 4.2.2 → 4.2.4, @types/node 25.5.2 → 25.6.0 - lefthook 2.1.5 → 2.1.6, markdownlint-cli2 0.22.0 → 0.22.1 - @rolldown/plugin-babel 0.2.2 → 0.2.3, baseline-browser-mapping 2.10.16 → 2.10.23 Config: - Bump biome.json $schema URL to match installed CLI (2.4.13) All updates are patch or minor bumps within existing semver ranges. Verified with full pre-commit (biome, tsc, vitest) and pre-push (next build, Playwright) lefthook runs — all green. Co-Authored-By: Claude Opus 4.7 (1M context) --- biome.json | 2 +- package-lock.json | 1552 +++++++++++++++++++++++++-------------------- package.json | 26 +- 3 files changed, 895 insertions(+), 685 deletions(-) diff --git a/biome.json b/biome.json index 9703e95..1fbd985 100644 --- a/biome.json +++ b/biome.json @@ -1,5 +1,5 @@ { - "$schema": "https://biomejs.dev/schemas/2.4.10/schema.json", + "$schema": "https://biomejs.dev/schemas/2.4.13/schema.json", "vcs": { "enabled": true, "clientKind": "git", diff --git a/package-lock.json b/package-lock.json index 99d342f..805a4d1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,40 +10,44 @@ "dependencies": { "@vercel/analytics": "^2.0.1", "@vercel/speed-insights": "^2.0.0", - "next": "^16.2.2", + "next": "^16.2.4", "next-themes": "^0.4.6", - "react": "^19.2.4", - "react-dom": "^19.2.4" + "react": "^19.2.5", + "react-dom": "^19.2.5" }, "devDependencies": { - "@biomejs/biome": "^2.4.10", + "@biomejs/biome": "^2.4.13", "@playwright/test": "^1.59.1", - "@rolldown/plugin-babel": "^0.2.2", - "@tailwindcss/postcss": "^4.2.2", + "@rolldown/plugin-babel": "^0.2.3", + "@tailwindcss/postcss": "^4.2.4", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.2", "@testing-library/user-event": "^14.6.1", - "@types/node": "^25.5.2", + "@types/node": "^25.6.0", "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^6.0.1", "babel-plugin-react-compiler": "1.0.0", - "baseline-browser-mapping": "^2.10.16", - "jsdom": "^29.0.1", - "lefthook": "^2.1.5", - "markdownlint-cli2": "^0.22.0", + "baseline-browser-mapping": "^2.10.23", + "jsdom": "^29.0.2", + "lefthook": "^2.1.6", + "markdownlint-cli2": "^0.22.1", "tailwindcss": "^4.2.2", - "typescript": "^6.0.2", - "vitest": "^4.1.2" + "typescript": "^6.0.3", + "vitest": "^4.1.5" } }, "node_modules/@adobe/css-tools": { "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.4.tgz", + "integrity": "sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==", "dev": true, "license": "MIT" }, "node_modules/@alloc/quick-lru": { "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", "dev": true, "license": "MIT", "engines": { @@ -54,58 +58,60 @@ } }, "node_modules/@asamuzakjp/css-color": { - "version": "5.1.5", + "version": "5.1.11", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-5.1.11.tgz", + "integrity": "sha512-KVw6qIiCTUQhByfTd78h2yD1/00waTmm9uy/R7Ck/ctUyAPj+AEDLkQIdJW0T8+qGgj3j5bpNKK7Q3G+LedJWg==", "dev": true, "license": "MIT", "dependencies": { - "@csstools/css-calc": "^3.1.1", - "@csstools/css-color-parser": "^4.0.2", + "@asamuzakjp/generational-cache": "^1.0.1", + "@csstools/css-calc": "^3.2.0", + "@csstools/css-color-parser": "^4.1.0", "@csstools/css-parser-algorithms": "^4.0.0", - "@csstools/css-tokenizer": "^4.0.0", - "lru-cache": "^11.2.7" + "@csstools/css-tokenizer": "^4.0.0" }, "engines": { "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, - "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": { - "version": "11.2.7", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } - }, "node_modules/@asamuzakjp/dom-selector": { - "version": "7.0.6", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-7.1.1.tgz", + "integrity": "sha512-67RZDnYRc8H/8MLDgQCDE//zoqVFwajkepHZgmXrbwybzXOEwOWGPYGmALYl9J2DOLfFPPs6kKCqmbzV895hTQ==", "dev": true, "license": "MIT", "dependencies": { + "@asamuzakjp/generational-cache": "^1.0.1", "@asamuzakjp/nwsapi": "^2.3.9", "bidi-js": "^1.0.3", "css-tree": "^3.2.1", - "is-potential-custom-element-name": "^1.0.1", - "lru-cache": "^11.2.7" + "is-potential-custom-element-name": "^1.0.1" }, "engines": { "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, - "node_modules/@asamuzakjp/dom-selector/node_modules/lru-cache": { - "version": "11.2.7", + "node_modules/@asamuzakjp/generational-cache": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@asamuzakjp/generational-cache/-/generational-cache-1.0.1.tgz", + "integrity": "sha512-wajfB8KqzMCN2KGNFdLkReeHncd0AslUSrvHVvvYWuU8ghncRJoA50kT3zP9MVL0+9g4/67H+cdvBskj9THPzg==", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT", "engines": { - "node": "20 || >=22" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, "node_modules/@asamuzakjp/nwsapi": { "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@asamuzakjp/nwsapi/-/nwsapi-2.3.9.tgz", + "integrity": "sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==", "dev": true, "license": "MIT" }, "node_modules/@babel/code-frame": { "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", "dev": true, "license": "MIT", "peer": true, @@ -120,6 +126,8 @@ }, "node_modules/@babel/compat-data": { "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", + "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", "dev": true, "license": "MIT", "peer": true, @@ -129,6 +137,8 @@ }, "node_modules/@babel/core": { "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", + "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", "dev": true, "license": "MIT", "peer": true, @@ -159,6 +169,8 @@ }, "node_modules/@babel/generator": { "version": "7.29.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", "dev": true, "license": "MIT", "peer": true, @@ -175,6 +187,8 @@ }, "node_modules/@babel/helper-compilation-targets": { "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", + "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", "dev": true, "license": "MIT", "peer": true, @@ -191,6 +205,8 @@ }, "node_modules/@babel/helper-globals": { "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", "dev": true, "license": "MIT", "peer": true, @@ -200,6 +216,8 @@ }, "node_modules/@babel/helper-module-imports": { "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", + "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", "dev": true, "license": "MIT", "peer": true, @@ -213,6 +231,8 @@ }, "node_modules/@babel/helper-module-transforms": { "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", + "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", "dev": true, "license": "MIT", "peer": true, @@ -230,6 +250,8 @@ }, "node_modules/@babel/helper-string-parser": { "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", "devOptional": true, "license": "MIT", "engines": { @@ -238,6 +260,8 @@ }, "node_modules/@babel/helper-validator-identifier": { "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", "devOptional": true, "license": "MIT", "engines": { @@ -246,6 +270,8 @@ }, "node_modules/@babel/helper-validator-option": { "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", "dev": true, "license": "MIT", "peer": true, @@ -255,6 +281,8 @@ }, "node_modules/@babel/helpers": { "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz", + "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==", "dev": true, "license": "MIT", "peer": true, @@ -268,6 +296,8 @@ }, "node_modules/@babel/parser": { "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz", + "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==", "dev": true, "license": "MIT", "peer": true, @@ -283,6 +313,8 @@ }, "node_modules/@babel/runtime": { "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.2.tgz", + "integrity": "sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==", "dev": true, "license": "MIT", "engines": { @@ -291,6 +323,8 @@ }, "node_modules/@babel/template": { "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", + "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", "dev": true, "license": "MIT", "peer": true, @@ -305,6 +339,8 @@ }, "node_modules/@babel/traverse": { "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", + "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", "dev": true, "license": "MIT", "peer": true, @@ -323,6 +359,8 @@ }, "node_modules/@babel/types": { "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", "devOptional": true, "license": "MIT", "dependencies": { @@ -334,7 +372,9 @@ } }, "node_modules/@biomejs/biome": { - "version": "2.4.10", + "version": "2.4.13", + "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-2.4.13.tgz", + "integrity": "sha512-gLXOwkOBBg0tr7bDsqlkIh4uFeKuMjxvqsrb1Tukww1iDmHcfr4Uu8MoQxp0Rcte+69+osRNWXwHsu/zxT6XqA==", "dev": true, "license": "MIT OR Apache-2.0", "bin": { @@ -348,20 +388,20 @@ "url": "https://opencollective.com/biome" }, "optionalDependencies": { - "@biomejs/cli-darwin-arm64": "2.4.10", - "@biomejs/cli-darwin-x64": "2.4.10", - "@biomejs/cli-linux-arm64": "2.4.10", - "@biomejs/cli-linux-arm64-musl": "2.4.10", - "@biomejs/cli-linux-x64": "2.4.10", - "@biomejs/cli-linux-x64-musl": "2.4.10", - "@biomejs/cli-win32-arm64": "2.4.10", - "@biomejs/cli-win32-x64": "2.4.10" + "@biomejs/cli-darwin-arm64": "2.4.13", + "@biomejs/cli-darwin-x64": "2.4.13", + "@biomejs/cli-linux-arm64": "2.4.13", + "@biomejs/cli-linux-arm64-musl": "2.4.13", + "@biomejs/cli-linux-x64": "2.4.13", + "@biomejs/cli-linux-x64-musl": "2.4.13", + "@biomejs/cli-win32-arm64": "2.4.13", + "@biomejs/cli-win32-x64": "2.4.13" } }, "node_modules/@biomejs/cli-darwin-arm64": { - "version": "2.4.10", - "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.4.10.tgz", - "integrity": "sha512-vuzzI1cWqDVzOMIkYyHbKqp+AkQq4K7k+UCXWpkYcY/HDn1UxdsbsfgtVpa40shem8Kax4TLDLlx8kMAecgqiw==", + "version": "2.4.13", + "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.4.13.tgz", + "integrity": "sha512-2KImO1jhNFBa2oWConyr0x6flxbQpGKv6902uGXpYM62Xyem8U80j441SyUJ8KyngsmKbQjeIv1q2CQfDkNnYg==", "cpu": [ "arm64" ], @@ -376,9 +416,9 @@ } }, "node_modules/@biomejs/cli-darwin-x64": { - "version": "2.4.10", - "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.4.10.tgz", - "integrity": "sha512-14fzASRo+BPotwp7nWULy2W5xeUyFnTaq1V13Etrrxkrih+ez/2QfgFm5Ehtf5vSjtgx/IJycMMpn5kPd5ZNaA==", + "version": "2.4.13", + "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.4.13.tgz", + "integrity": "sha512-BKrJklbaFN4p1Ts4kPBczo+PkbsHQg57kmJ+vON9u2t6uN5okYHaSr7h/MutPCWQgg2lglaWoSmm+zhYW+oOkg==", "cpu": [ "x64" ], @@ -393,9 +433,9 @@ } }, "node_modules/@biomejs/cli-linux-arm64": { - "version": "2.4.10", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.4.10.tgz", - "integrity": "sha512-7MH1CMW5uuxQ/s7FLST63qF8B3Hgu2HRdZ7tA1X1+mk+St4JOuIrqdhIBnnyqeyWJNI+Bww7Es5QZ0wIc1Cmkw==", + "version": "2.4.13", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.4.13.tgz", + "integrity": "sha512-NzkUDSqfvMBrPplKgVr3aXLHZ2NEELvvF4vZxXulEylKWIGqlvNEcwUcj9OLrn75TD3lJ/GIqCVlBwd1MZCuYQ==", "cpu": [ "arm64" ], @@ -413,9 +453,9 @@ } }, "node_modules/@biomejs/cli-linux-arm64-musl": { - "version": "2.4.10", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.4.10.tgz", - "integrity": "sha512-WrJY6UuiSD/Dh+nwK2qOTu8kdMDlLV3dLMmychIghHPAysWFq1/DGC1pVZx8POE3ZkzKR3PUUnVrtZfMfaJjyQ==", + "version": "2.4.13", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.4.13.tgz", + "integrity": "sha512-U5MsuBQW25dXaYtqWWSPM3P96H6Y+fHuja3TQpMNnylocHW0tEbtFTDlUj6oM+YJLntvEkQy4grBvQNUD4+RCg==", "cpu": [ "arm64" ], @@ -433,7 +473,9 @@ } }, "node_modules/@biomejs/cli-linux-x64": { - "version": "2.4.10", + "version": "2.4.13", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-2.4.13.tgz", + "integrity": "sha512-Az3ZZedYRBo9EQzNnD9SxFcR1G5QsGo6VEc2hIyVPZ1rdKwee/7E9oeBBZFpE8Z44ekxsDQBqbiWGW5ShOhUSQ==", "cpu": [ "x64" ], @@ -451,9 +493,9 @@ } }, "node_modules/@biomejs/cli-linux-x64-musl": { - "version": "2.4.10", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.4.10.tgz", - "integrity": "sha512-kDTi3pI6PBN6CiczsWYOyP2zk0IJI08EWEQyDMQWW221rPaaEz6FvjLhnU07KMzLv8q3qSuoB93ua6inSQ55Tw==", + "version": "2.4.13", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.4.13.tgz", + "integrity": "sha512-Z601MienRgTBDza/+u2CH3RSrWoXo9rtr8NK6A4KJzqGgfxx+H3VlyLgTJ4sRo40T3pIsqpTmiOQEvYzQvBRvQ==", "cpu": [ "x64" ], @@ -471,9 +513,9 @@ } }, "node_modules/@biomejs/cli-win32-arm64": { - "version": "2.4.10", - "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.4.10.tgz", - "integrity": "sha512-umwQU6qPzH+ISTf/eHyJ/QoQnJs3V9Vpjz2OjZXe9MVBZ7prgGafMy7yYeRGnlmDAn87AKTF3Q6weLoMGpeqdQ==", + "version": "2.4.13", + "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.4.13.tgz", + "integrity": "sha512-Px9PS2B5/Q183bUwy/5VHqp3J2lzdOCeVGzMpphYfl8oSa7VDCqenBdqWpy6DCy/en4Rbf/Y1RieZF6dJPcc9A==", "cpu": [ "arm64" ], @@ -488,9 +530,9 @@ } }, "node_modules/@biomejs/cli-win32-x64": { - "version": "2.4.10", - "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-2.4.10.tgz", - "integrity": "sha512-aW/JU5GuyH4uxMrNYpoC2kjaHlyJGLgIa3XkhPEZI0uKhZhJZU8BuEyJmvgzSPQNGozBwWjC972RaNdcJ9KyJg==", + "version": "2.4.13", + "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-2.4.13.tgz", + "integrity": "sha512-tTcMkXyBrmHi9BfrD2VNHs/5rYIUKETqsBlYOvSAABwBkJhSDVb5e7wPukftsQbO3WzQkXe6kaztC6WtUOXSoQ==", "cpu": [ "x64" ], @@ -506,6 +548,8 @@ }, "node_modules/@bramus/specificity": { "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@bramus/specificity/-/specificity-2.4.2.tgz", + "integrity": "sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==", "dev": true, "license": "MIT", "dependencies": { @@ -517,6 +561,8 @@ }, "node_modules/@csstools/color-helpers": { "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-6.0.2.tgz", + "integrity": "sha512-LMGQLS9EuADloEFkcTBR3BwV/CGHV7zyDxVRtVDTwdI2Ca4it0CCVTT9wCkxSgokjE5Ho41hEPgb8OEUwoXr6Q==", "dev": true, "funding": [ { @@ -534,7 +580,9 @@ } }, "node_modules/@csstools/css-calc": { - "version": "3.1.1", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.0.tgz", + "integrity": "sha512-bR9e6o2BDB12jzN/gIbjHa5wLJ4UjD1CB9pM7ehlc0ddk6EBz+yYS1EV2MF55/HUxrHcB/hehAyt5vhsA3hx7w==", "dev": true, "funding": [ { @@ -556,7 +604,9 @@ } }, "node_modules/@csstools/css-color-parser": { - "version": "4.0.2", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.0.tgz", + "integrity": "sha512-U0KhLYmy2GVj6q4T3WaAe6NPuFYCPQoE3b0dRGxejWDgcPp8TP7S5rVdM5ZrFaqu4N67X8YaPBw14dQSYx3IyQ==", "dev": true, "funding": [ { @@ -571,7 +621,7 @@ "license": "MIT", "dependencies": { "@csstools/color-helpers": "^6.0.2", - "@csstools/css-calc": "^3.1.1" + "@csstools/css-calc": "^3.2.0" }, "engines": { "node": ">=20.19.0" @@ -583,6 +633,8 @@ }, "node_modules/@csstools/css-parser-algorithms": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-4.0.0.tgz", + "integrity": "sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==", "dev": true, "funding": [ { @@ -603,7 +655,9 @@ } }, "node_modules/@csstools/css-syntax-patches-for-csstree": { - "version": "1.1.2", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.3.tgz", + "integrity": "sha512-SH60bMfrRCJF3morcdk57WklujF4Jr/EsQUzqkarfHXEFcAR1gg7fS/chAE922Sehgzc1/+Tz5H3Ypa1HiEKrg==", "dev": true, "funding": [ { @@ -627,6 +681,8 @@ }, "node_modules/@csstools/css-tokenizer": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-4.0.0.tgz", + "integrity": "sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==", "dev": true, "funding": [ { @@ -644,17 +700,21 @@ } }, "node_modules/@emnapi/core": { - "version": "1.9.1", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", + "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", "dev": true, "license": "MIT", "optional": true, "dependencies": { - "@emnapi/wasi-threads": "1.2.0", + "@emnapi/wasi-threads": "1.2.1", "tslib": "^2.4.0" } }, "node_modules/@emnapi/runtime": { - "version": "1.9.1", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", + "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", "license": "MIT", "optional": true, "dependencies": { @@ -662,7 +722,9 @@ } }, "node_modules/@emnapi/wasi-threads": { - "version": "1.2.0", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", + "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", "dev": true, "license": "MIT", "optional": true, @@ -672,6 +734,8 @@ }, "node_modules/@exodus/bytes": { "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@exodus/bytes/-/bytes-1.15.0.tgz", + "integrity": "sha512-UY0nlA+feH81UGSHv92sLEPLCeZFjXOuHhrIo0HQydScuQc8s0A7kL/UdgwgDq8g8ilksmuoF35YVTNphV2aBQ==", "dev": true, "license": "MIT", "engines": { @@ -688,6 +752,8 @@ }, "node_modules/@img/colour": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", + "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==", "license": "MIT", "optional": true, "engines": { @@ -867,6 +933,8 @@ }, "node_modules/@img/sharp-libvips-linux-x64": { "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", + "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", "cpu": [ "x64" ], @@ -1047,6 +1115,8 @@ }, "node_modules/@img/sharp-linux-x64": { "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", + "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", "cpu": [ "x64" ], @@ -1196,6 +1266,8 @@ }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "dev": true, "license": "MIT", "dependencies": { @@ -1205,6 +1277,8 @@ }, "node_modules/@jridgewell/remapping": { "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1214,6 +1288,8 @@ }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "license": "MIT", "engines": { @@ -1222,11 +1298,15 @@ }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", "dev": true, "license": "MIT", "dependencies": { @@ -1235,7 +1315,9 @@ } }, "node_modules/@napi-rs/wasm-runtime": { - "version": "1.1.2", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz", + "integrity": "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==", "dev": true, "license": "MIT", "optional": true, @@ -1252,13 +1334,15 @@ } }, "node_modules/@next/env": { - "version": "16.2.2", + "version": "16.2.4", + "resolved": "https://registry.npmjs.org/@next/env/-/env-16.2.4.tgz", + "integrity": "sha512-dKkkOzOSwFYe5RX6y26fZgkSpVAlIOJKQHIiydQcrWH6y/97+RceSOAdjZ14Qa3zLduVUy0TXcn+EiM6t4rPgw==", "license": "MIT" }, "node_modules/@next/swc-darwin-arm64": { - "version": "16.2.2", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.2.2.tgz", - "integrity": "sha512-B92G3ulrwmkDSEJEp9+XzGLex5wC1knrmCSIylyVeiAtCIfvEJYiN3v5kXPlYt5R4RFlsfO/v++aKV63Acrugg==", + "version": "16.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.2.4.tgz", + "integrity": "sha512-OXTFFox5EKN1Ym08vfrz+OXxmCcEjT4SFMbNRsWZE99dMqt2Kcusl5MqPXcW232RYkMLQTy0hqgAMEsfEd/l2A==", "cpu": [ "arm64" ], @@ -1272,9 +1356,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "16.2.2", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-16.2.2.tgz", - "integrity": "sha512-7ZwSgNKJNQiwW0CKhNm9B1WS2L1Olc4B2XY0hPYCAL3epFnugMhuw5TMWzMilQ3QCZcCHoYm9NGWTHbr5REFxw==", + "version": "16.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-16.2.4.tgz", + "integrity": "sha512-XhpVnUfmYWvD3YrXu55XdcAkQtOnvaI6wtQa8fuF5fGoKoxIUZ0kWPtcOfqJEWngFF/lOS9l3+O9CcownhiQxQ==", "cpu": [ "x64" ], @@ -1288,9 +1372,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "16.2.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-16.2.2.tgz", - "integrity": "sha512-c3m8kBHMziMgo2fICOP/cd/5YlrxDU5YYjAJeQLyFsCqVF8xjOTH/QYG4a2u48CvvZZSj1eHQfBCbyh7kBr30Q==", + "version": "16.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-16.2.4.tgz", + "integrity": "sha512-Mx/tjlNA3G8kg14QvuGAJ4xBwPk1tUHq56JxZ8CXnZwz1Etz714soCEzGQQzVMz4bEnGPowzkV6Xrp6wAkEWOQ==", "cpu": [ "arm64" ], @@ -1307,9 +1391,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "16.2.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-16.2.2.tgz", - "integrity": "sha512-VKLuscm0P/mIfzt+SDdn2+8TNNJ7f0qfEkA+az7OqQbjzKdBxAHs0UvuiVoCtbwX+dqMEL9U54b5wQ/aN3dHeg==", + "version": "16.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-16.2.4.tgz", + "integrity": "sha512-iVMMp14514u7Nup2umQS03nT/bN9HurK8ufylC3FZNykrwjtx7V1A7+4kvhbDSCeonTVqV3Txnv0Lu+m2oDXNg==", "cpu": [ "arm64" ], @@ -1326,7 +1410,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "16.2.2", + "version": "16.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-16.2.4.tgz", + "integrity": "sha512-EZOvm1aQWgnI/N/xcWOlnS3RQBk0VtVav5Zo7n4p0A7UKyTDx047k8opDbXgBpHl4CulRqRfbw3QrX2w5UOXMQ==", "cpu": [ "x64" ], @@ -1343,9 +1429,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "16.2.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-16.2.2.tgz", - "integrity": "sha512-CKXRILyErMtUftp+coGcZ38ZwE/Aqq45VMCcRLr2I4OXKrgxIBDXHnBgeX/UMil0S09i2JXaDL3Q+TN8D/cKmg==", + "version": "16.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-16.2.4.tgz", + "integrity": "sha512-h9FxsngCm9cTBf71AR4fGznDEDx1hS7+kSEiIRjq5kO1oXWm07DxVGZjCvk0SGx7TSjlUqhI8oOyz7NfwAdPoA==", "cpu": [ "x64" ], @@ -1362,9 +1448,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "16.2.2", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-16.2.2.tgz", - "integrity": "sha512-sS/jSk5VUoShUqINJFvNjVT7JfR5ORYj/+/ZpOYbbIohv/lQfduWnGAycq2wlknbOql2xOR0DoV0s6Xfcy49+g==", + "version": "16.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-16.2.4.tgz", + "integrity": "sha512-3NdJV5OXMSOeJYijX+bjaLge3mJBlh4ybydbT4GFoB/2hAojWHtMhl3CYlYoMrjPuodp0nzFVi4Tj2+WaMg+Ow==", "cpu": [ "arm64" ], @@ -1378,9 +1464,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "16.2.2", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-16.2.2.tgz", - "integrity": "sha512-aHaKceJgdySReT7qeck5oShucxWRiiEuwCGK8HHALe6yZga8uyFpLkPgaRw3kkF04U7ROogL/suYCNt/+CuXGA==", + "version": "16.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-16.2.4.tgz", + "integrity": "sha512-kMVGgsqhO5YTYODD9IPGGhA6iprWidQckK3LmPeW08PIFENRmgfb4MjXHO+p//d+ts2rpjvK5gXWzXSMrPl9cw==", "cpu": [ "x64" ], @@ -1395,6 +1481,8 @@ }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "license": "MIT", "dependencies": { @@ -1407,6 +1495,8 @@ }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, "license": "MIT", "engines": { @@ -1415,6 +1505,8 @@ }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "license": "MIT", "dependencies": { @@ -1426,16 +1518,19 @@ } }, "node_modules/@oxc-project/types": { - "version": "0.123.0", + "version": "0.127.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.127.0.tgz", + "integrity": "sha512-aIYXQBo4lCbO4z0R3FHeucQHpF46l2LbMdxRvqvuRuW2OxdnSkcng5B8+K12spgLDj93rtN3+J2Vac/TIO+ciQ==", "dev": true, "license": "MIT", - "peer": true, "funding": { "url": "https://github.com/sponsors/Boshen" } }, "node_modules/@playwright/test": { "version": "1.59.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.59.1.tgz", + "integrity": "sha512-PG6q63nQg5c9rIi4/Z5lR5IVF7yU5MqmKaPOe0HSc0O2cX1fPi96sUQu5j7eo4gKCkB2AnNGoWt7y4/Xx3Kcqg==", "devOptional": true, "license": "Apache-2.0", "dependencies": { @@ -1449,9 +1544,9 @@ } }, "node_modules/@rolldown/binding-android-arm64": { - "version": "1.0.0-rc.13", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.13.tgz", - "integrity": "sha512-5ZiiecKH2DXAVJTNN13gNMUcCDg4Jy8ZjbXEsPnqa248wgOVeYRX0iqXXD5Jz4bI9BFHgKsI2qmyJynstbmr+g==", + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.17.tgz", + "integrity": "sha512-s70pVGhw4zqGeFnXWvAzJDlvxhlRollagdCCKRgOsgUOH3N1l0LIxf83AtGzmb5SiVM4Hjl5HyarMRfdfj3DaQ==", "cpu": [ "arm64" ], @@ -1461,15 +1556,14 @@ "os": [ "android" ], - "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.0.0-rc.13", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.13.tgz", - "integrity": "sha512-tz/v/8G77seu8zAB3A5sK3UFoOl06zcshEzhUO62sAEtrEuW/H1CcyoupOrD+NbQJytYgA4CppXPzlrmp4JZKA==", + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.17.tgz", + "integrity": "sha512-4ksWc9n0mhlZpZ9PMZgTGjeOPRu8MB1Z3Tz0Mo02eWfWCHMW1zN82Qz/pL/rC+yQa+8ZnutMF0JjJe7PjwasYw==", "cpu": [ "arm64" ], @@ -1479,15 +1573,14 @@ "os": [ "darwin" ], - "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.0.0-rc.13", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.13.tgz", - "integrity": "sha512-8DakphqOz8JrMYWTJmWA+vDJxut6LijZ8Xcdc4flOlAhU7PNVwo2MaWBF9iXjJAPo5rC/IxEFZDhJ3GC7NHvug==", + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.17.tgz", + "integrity": "sha512-SUSDOI6WwUVNcWxd02QEBjLdY1VPHvlEkw6T/8nYG322iYWCTxRb1vzk4E+mWWYehTp7ERibq54LSJGjmouOsw==", "cpu": [ "x64" ], @@ -1497,15 +1590,14 @@ "os": [ "darwin" ], - "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.0.0-rc.13", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.13.tgz", - "integrity": "sha512-4wBQFfjDuXYN/SVI8inBF3Aa+isq40rc6VMFbk5jcpolUBTe5cYnMsHZ51nFWsx3PVyyNN3vgoESki0Hmr/4BA==", + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.17.tgz", + "integrity": "sha512-hwnz3nw9dbJ05EDO/PvcjaaewqqDy7Y1rn1UO81l8iIK1GjenME75dl16ajbvSSMfv66WXSRCYKIqfgq2KCfxw==", "cpu": [ "x64" ], @@ -1515,15 +1607,14 @@ "os": [ "freebsd" ], - "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.0.0-rc.13", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.13.tgz", - "integrity": "sha512-JW/e4yPIXLms+jmnbwwy5LA/LxVwZUWLN8xug+V200wzaVi5TEGIWQlh8o91gWYFxW609euI98OCCemmWGuPrw==", + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.17.tgz", + "integrity": "sha512-IS+W7epTcwANmFSQFrS1SivEXHtl1JtuQA9wlxrZTcNi6mx+FDOYrakGevvvTwgj2JvWiK8B29/qD9BELZPyXQ==", "cpu": [ "arm" ], @@ -1533,15 +1624,14 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.0.0-rc.13", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.13.tgz", - "integrity": "sha512-ZfKWpXiUymDnavepCaM6KG/uGydJ4l2nBmMxg60Ci4CbeefpqjPWpfaZM7PThOhk2dssqBAcwLc6rAyr0uTdXg==", + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.17.tgz", + "integrity": "sha512-e6usGaHKW5BMNZOymS1UcEYGowQMWcgZ71Z17Sl/h2+ZziNJ1a9n3Zvcz6LdRyIW5572wBCTH/Z+bKuZouGk9Q==", "cpu": [ "arm64" ], @@ -1554,15 +1644,14 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.0.0-rc.13", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.13.tgz", - "integrity": "sha512-bmRg3O6Z0gq9yodKKWCIpnlH051sEfdVwt+6m5UDffAQMUUqU0xjnQqqAUm+Gu7ofAAly9DqiQDtKu2nPDEABA==", + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.17.tgz", + "integrity": "sha512-b/CgbwAJpmrRLp02RPfhbudf5tZnN9nsPWK82znefso832etkem8H7FSZwxrOI9djcdTP7U6YfNhbRnh7djErg==", "cpu": [ "arm64" ], @@ -1575,15 +1664,14 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-linux-ppc64-gnu": { - "version": "1.0.0-rc.13", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.13.tgz", - "integrity": "sha512-8Wtnbw4k7pMYN9B/mOEAsQ8HOiq7AZ31Ig4M9BKn2So4xRaFEhtCSa4ZJaOutOWq50zpgR4N5+L/opnlaCx8wQ==", + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.17.tgz", + "integrity": "sha512-4EII1iNGRUN5WwGbF/kOh/EIkoDN9HsupgLQoXfY+D1oyJm7/F4t5PYU5n8SWZgG0FEwakyM8pGgwcBYruGTlA==", "cpu": [ "ppc64" ], @@ -1596,15 +1684,14 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-linux-s390x-gnu": { - "version": "1.0.0-rc.13", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.13.tgz", - "integrity": "sha512-D/0Nlo8mQuxSMohNJUF2lDXWRsFDsHldfRRgD9bRgktj+EndGPj4DOV37LqDKPYS+osdyhZEH7fTakTAEcW7qg==", + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.17.tgz", + "integrity": "sha512-AH8oq3XqQo4IibpVXvPeLDI5pzkpYn0WiZAfT05kFzoJ6tQNzwRdDYQ45M8I/gslbodRZwW8uxLhbSBbkv96rA==", "cpu": [ "s390x" ], @@ -1617,13 +1704,14 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.0.0-rc.13", + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.17.tgz", + "integrity": "sha512-cLnjV3xfo7KslbU41Z7z8BH/E1y5mzUYzAqih1d1MDaIGZRCMqTijqLv76/P7fyHuvUcfGsIpqCdddbxLLK9rA==", "cpu": [ "x64" ], @@ -1636,15 +1724,14 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.0.0-rc.13", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.13.tgz", - "integrity": "sha512-PsdONiFRp8hR8KgVjTWjZ9s7uA3uueWL0t74/cKHfM4dR5zXYv4AjB8BvA+QDToqxAFg4ZkcVEqeu5F7inoz5w==", + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.17.tgz", + "integrity": "sha512-0phclDw1spsL7dUB37sIARuis2tAgomCJXAHZlpt8PXZ4Ba0dRP1e+66lsRqrfhISeN9bEGNjQs+T/Fbd7oYGw==", "cpu": [ "x64" ], @@ -1657,15 +1744,14 @@ "os": [ "linux" ], - "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.0.0-rc.13", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.13.tgz", - "integrity": "sha512-hCNXgC5dI3TVOLrPT++PKFNZ+1EtS0mLQwfXXXSUD/+rGlB65gZDwN/IDuxLpQP4x8RYYHqGomlUXzpO8aVI2w==", + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.17.tgz", + "integrity": "sha512-0ag/hEgXOwgw4t8QyQvUCxvEg+V0KBcA6YuOx9g0r02MprutRF5dyljgm3EmR02O292UX7UeS6HzWHAl6KgyhA==", "cpu": [ "arm64" ], @@ -1675,35 +1761,33 @@ "os": [ "openharmony" ], - "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-wasm32-wasi": { - "version": "1.0.0-rc.13", - "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.13.tgz", - "integrity": "sha512-viLS5C5et8NFtLWw9Sw3M/w4vvnVkbWkO7wSNh3C+7G1+uCkGpr6PcjNDSFcNtmXY/4trjPBqUfcOL+P3sWy/g==", + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.17.tgz", + "integrity": "sha512-LEXei6vo0E5wTGwpkJ4KoT3OZJRnglwldt5ziLzOlc6qqb55z4tWNq2A+PFqCJuvWWdP53CVhG1Z9NtToDPJrA==", "cpu": [ "wasm32" ], "dev": true, "license": "MIT", "optional": true, - "peer": true, "dependencies": { - "@emnapi/core": "1.9.1", - "@emnapi/runtime": "1.9.1", - "@napi-rs/wasm-runtime": "^1.1.2" + "@emnapi/core": "1.10.0", + "@emnapi/runtime": "1.10.0", + "@napi-rs/wasm-runtime": "^1.1.4" }, "engines": { - "node": ">=14.0.0" + "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.0.0-rc.13", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.13.tgz", - "integrity": "sha512-Fqa3Tlt1xL4wzmAYxGNFV36Hb+VfPc9PYU+E25DAnswXv3ODDu/yyWjQDbXMo5AGWkQVjLgQExuVu8I/UaZhPQ==", + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.17.tgz", + "integrity": "sha512-gUmyzBl3SPMa6hrqFUth9sVfcLBlYsbMzBx5PlexMroZStgzGqlZ26pYG89rBb45Mnia+oil6YAIFeEWGWhoZA==", "cpu": [ "arm64" ], @@ -1713,15 +1797,14 @@ "os": [ "win32" ], - "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.0.0-rc.13", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.13.tgz", - "integrity": "sha512-/pLI5kPkGEi44TDlnbio3St/5gUFeN51YWNAk/Gnv6mEQBOahRBh52qVFVBpmrnU01n2yysvBML9Ynu7K4kGAQ==", + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.17.tgz", + "integrity": "sha512-3hkiolcUAvPB9FLb3UZdfjVVNWherN1f/skkGWJP/fgSQhYUZpSIRr0/I8ZK9TkF3F7kxvJAk0+IcKvPHk9qQg==", "cpu": [ "x64" ], @@ -1731,17 +1814,18 @@ "os": [ "win32" ], - "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/plugin-babel": { - "version": "0.2.2", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@rolldown/plugin-babel/-/plugin-babel-0.2.3.tgz", + "integrity": "sha512-+zEk16yGlz1F9STiRr6uG9hmIXb6nprjLczV/htGptYuLoCuxb+itZ03RKCEeOhBpDDd1NU7qF6x1VLMUp62bw==", "dev": true, "license": "MIT", "dependencies": { - "picomatch": "^4.0.3" + "picomatch": "^4.0.4" }, "engines": { "node": ">=22.12.0 || ^24.0.0" @@ -1767,11 +1851,15 @@ }, "node_modules/@rolldown/pluginutils": { "version": "1.0.0-rc.7", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.7.tgz", + "integrity": "sha512-qujRfC8sFVInYSPPMLQByRh7zhwkGFS4+tyMQ83srV1qrxL4g8E2tyxVVyxd0+8QeBM1mIk9KbWxkegRr76XzA==", "dev": true, "license": "MIT" }, "node_modules/@sindresorhus/merge-streams": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", + "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", "dev": true, "license": "MIT", "engines": { @@ -1783,18 +1871,24 @@ }, "node_modules/@standard-schema/spec": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", "dev": true, "license": "MIT" }, "node_modules/@swc/helpers": { "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", + "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.8.0" } }, "node_modules/@tailwindcss/node": { - "version": "4.2.2", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.2.4.tgz", + "integrity": "sha512-Ai7+yQPxz3ddrDQzFfBKdHEVBg0w3Zl83jnjuwxnZOsnH9pGn93QHQtpU0p/8rYWxvbFZHneni6p1BSLK4DkGA==", "dev": true, "license": "MIT", "dependencies": { @@ -1804,35 +1898,37 @@ "lightningcss": "1.32.0", "magic-string": "^0.30.21", "source-map-js": "^1.2.1", - "tailwindcss": "4.2.2" + "tailwindcss": "4.2.4" } }, "node_modules/@tailwindcss/oxide": { - "version": "4.2.2", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.2.4.tgz", + "integrity": "sha512-9El/iI069DKDSXwTvB9J4BwdO5JhRrOweGaK25taBAvBXyXqJAX+Jqdvs8r8gKpsI/1m0LeJLyQYTf/WLrBT1Q==", "dev": true, "license": "MIT", "engines": { "node": ">= 20" }, "optionalDependencies": { - "@tailwindcss/oxide-android-arm64": "4.2.2", - "@tailwindcss/oxide-darwin-arm64": "4.2.2", - "@tailwindcss/oxide-darwin-x64": "4.2.2", - "@tailwindcss/oxide-freebsd-x64": "4.2.2", - "@tailwindcss/oxide-linux-arm-gnueabihf": "4.2.2", - "@tailwindcss/oxide-linux-arm64-gnu": "4.2.2", - "@tailwindcss/oxide-linux-arm64-musl": "4.2.2", - "@tailwindcss/oxide-linux-x64-gnu": "4.2.2", - "@tailwindcss/oxide-linux-x64-musl": "4.2.2", - "@tailwindcss/oxide-wasm32-wasi": "4.2.2", - "@tailwindcss/oxide-win32-arm64-msvc": "4.2.2", - "@tailwindcss/oxide-win32-x64-msvc": "4.2.2" + "@tailwindcss/oxide-android-arm64": "4.2.4", + "@tailwindcss/oxide-darwin-arm64": "4.2.4", + "@tailwindcss/oxide-darwin-x64": "4.2.4", + "@tailwindcss/oxide-freebsd-x64": "4.2.4", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.2.4", + "@tailwindcss/oxide-linux-arm64-gnu": "4.2.4", + "@tailwindcss/oxide-linux-arm64-musl": "4.2.4", + "@tailwindcss/oxide-linux-x64-gnu": "4.2.4", + "@tailwindcss/oxide-linux-x64-musl": "4.2.4", + "@tailwindcss/oxide-wasm32-wasi": "4.2.4", + "@tailwindcss/oxide-win32-arm64-msvc": "4.2.4", + "@tailwindcss/oxide-win32-x64-msvc": "4.2.4" } }, "node_modules/@tailwindcss/oxide-android-arm64": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.2.2.tgz", - "integrity": "sha512-dXGR1n+P3B6748jZO/SvHZq7qBOqqzQ+yFrXpoOWWALWndF9MoSKAT3Q0fYgAzYzGhxNYOoysRvYlpixRBBoDg==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.2.4.tgz", + "integrity": "sha512-e7MOr1SAn9U8KlZzPi1ZXGZHeC5anY36qjNwmZv9pOJ8E4Q6jmD1vyEHkQFmNOIN7twGPEMXRHmitN4zCMN03g==", "cpu": [ "arm64" ], @@ -1847,9 +1943,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-arm64": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.2.2.tgz", - "integrity": "sha512-iq9Qjr6knfMpZHj55/37ouZeykwbDqF21gPFtfnhCCKGDcPI/21FKC9XdMO/XyBM7qKORx6UIhGgg6jLl7BZlg==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.2.4.tgz", + "integrity": "sha512-tSC/Kbqpz/5/o/C2sG7QvOxAKqyd10bq+ypZNf+9Fi2TvbVbv1zNpcEptcsU7DPROaSbVgUXmrzKhurFvo5eDg==", "cpu": [ "arm64" ], @@ -1864,9 +1960,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-x64": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.2.2.tgz", - "integrity": "sha512-BlR+2c3nzc8f2G639LpL89YY4bdcIdUmiOOkv2GQv4/4M0vJlpXEa0JXNHhCHU7VWOKWT/CjqHdTP8aUuDJkuw==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.2.4.tgz", + "integrity": "sha512-yPyUXn3yO/ufR6+Kzv0t4fCg2qNr90jxXc5QqBpjlPNd0NqyDXcmQb/6weunH/MEDXW5dhyEi+agTDiqa3WsGg==", "cpu": [ "x64" ], @@ -1881,9 +1977,9 @@ } }, "node_modules/@tailwindcss/oxide-freebsd-x64": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.2.2.tgz", - "integrity": "sha512-YUqUgrGMSu2CDO82hzlQ5qSb5xmx3RUrke/QgnoEx7KvmRJHQuZHZmZTLSuuHwFf0DJPybFMXMYf+WJdxHy/nQ==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.2.4.tgz", + "integrity": "sha512-BoMIB4vMQtZsXdGLVc2z+P9DbETkiopogfWZKbWwM8b/1Vinbs4YcUwo+kM/KeLkX3Ygrf4/PsRndKaYhS8Eiw==", "cpu": [ "x64" ], @@ -1898,9 +1994,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.2.2.tgz", - "integrity": "sha512-FPdhvsW6g06T9BWT0qTwiVZYE2WIFo2dY5aCSpjG/S/u1tby+wXoslXS0kl3/KXnULlLr1E3NPRRw0g7t2kgaQ==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.2.4.tgz", + "integrity": "sha512-7pIHBLTHYRAlS7V22JNuTh33yLH4VElwKtB3bwchK/UaKUPpQ0lPQiOWcbm4V3WP2I6fNIJ23vABIvoy2izdwA==", "cpu": [ "arm" ], @@ -1915,9 +2011,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.2.2.tgz", - "integrity": "sha512-4og1V+ftEPXGttOO7eCmW7VICmzzJWgMx+QXAJRAhjrSjumCwWqMfkDrNu1LXEQzNAwz28NCUpucgQPrR4S2yw==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.2.4.tgz", + "integrity": "sha512-+E4wxJ0ZGOzSH325reXTWB48l42i93kQqMvDyz5gqfRzRZ7faNhnmvlV4EPGJU3QJM/3Ab5jhJ5pCRUsKn6OQw==", "cpu": [ "arm64" ], @@ -1935,9 +2031,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-musl": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.2.2.tgz", - "integrity": "sha512-oCfG/mS+/+XRlwNjnsNLVwnMWYH7tn/kYPsNPh+JSOMlnt93mYNCKHYzylRhI51X+TbR+ufNhhKKzm6QkqX8ag==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.2.4.tgz", + "integrity": "sha512-bBADEGAbo4ASnppIziaQJelekCxdMaxisrk+fB7Thit72IBnALp9K6ffA2G4ruj90G9XRS2VQ6q2bCKbfFV82g==", "cpu": [ "arm64" ], @@ -1955,7 +2051,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-gnu": { - "version": "4.2.2", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.2.4.tgz", + "integrity": "sha512-7Mx25E4WTfnht0TVRTyC00j3i0M+EeFe7wguMDTlX4mRxafznw0CA8WJkFjWYH5BlgELd1kSjuU2JiPnNZbJDA==", "cpu": [ "x64" ], @@ -1973,9 +2071,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-musl": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.2.2.tgz", - "integrity": "sha512-XW3t3qwbIwiSyRCggeO2zxe3KWaEbM0/kW9e8+0XpBgyKU4ATYzcVSMKteZJ1iukJ3HgHBjbg9P5YPRCVUxlnQ==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.2.4.tgz", + "integrity": "sha512-2wwJRF7nyhOR0hhHoChc04xngV3iS+akccHTGtz965FwF0up4b2lOdo6kI1EbDaEXKgvcrFBYcYQQ/rrnWFVfA==", "cpu": [ "x64" ], @@ -1993,9 +2091,9 @@ } }, "node_modules/@tailwindcss/oxide-wasm32-wasi": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.2.2.tgz", - "integrity": "sha512-eKSztKsmEsn1O5lJ4ZAfyn41NfG7vzCg496YiGtMDV86jz1q/irhms5O0VrY6ZwTUkFy/EKG3RfWgxSI3VbZ8Q==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.2.4.tgz", + "integrity": "sha512-FQsqApeor8Fo6gUEklzmaa9994orJZZDBAlQpK2Mq+DslRKFJeD6AjHpBQ0kZFQohVr8o85PPh8eOy86VlSCmw==", "bundleDependencies": [ "@napi-rs/wasm-runtime", "@emnapi/core", @@ -2023,9 +2121,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.2.2.tgz", - "integrity": "sha512-qPmaQM4iKu5mxpsrWZMOZRgZv1tOZpUm+zdhhQP0VhJfyGGO3aUKdbh3gDZc/dPLQwW4eSqWGrrcWNBZWUWaXQ==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.2.4.tgz", + "integrity": "sha512-L9BXqxC4ToVgwMFqj3pmZRqyHEztulpUJzCxUtLjobMCzTPsGt1Fa9enKbOpY2iIyVtaHNeNvAK8ERP/64sqGQ==", "cpu": [ "arm64" ], @@ -2040,9 +2138,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-x64-msvc": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.2.2.tgz", - "integrity": "sha512-1T/37VvI7WyH66b+vqHj/cLwnCxt7Qt3WFu5Q8hk65aOvlwAhs7rAp1VkulBJw/N4tMirXjVnylTR72uI0HGcA==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.2.4.tgz", + "integrity": "sha512-ESlKG0EpVJQwRjXDDa9rLvhEAh0mhP1sF7sap9dNZT0yyl9SAG6T7gdP09EH0vIv0UNTlo6jPWyujD6559fZvw==", "cpu": [ "x64" ], @@ -2057,19 +2155,23 @@ } }, "node_modules/@tailwindcss/postcss": { - "version": "4.2.2", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.2.4.tgz", + "integrity": "sha512-wgAVj6nUWAolAu8YFvzT2cTBIElWHkjZwFYovF+xsqKsW2ADxM/X2opxj5NsF/qVccAOjRNe8X2IdPzMsWyHTg==", "dev": true, "license": "MIT", "dependencies": { "@alloc/quick-lru": "^5.2.0", - "@tailwindcss/node": "4.2.2", - "@tailwindcss/oxide": "4.2.2", + "@tailwindcss/node": "4.2.4", + "@tailwindcss/oxide": "4.2.4", "postcss": "^8.5.6", - "tailwindcss": "4.2.2" + "tailwindcss": "4.2.4" } }, "node_modules/@testing-library/dom": { "version": "10.4.1", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz", + "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==", "dev": true, "license": "MIT", "peer": true, @@ -2089,6 +2191,8 @@ }, "node_modules/@testing-library/jest-dom": { "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz", + "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==", "dev": true, "license": "MIT", "dependencies": { @@ -2107,11 +2211,15 @@ }, "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { "version": "0.6.3", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", + "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", "dev": true, "license": "MIT" }, "node_modules/@testing-library/react": { "version": "16.3.2", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.3.2.tgz", + "integrity": "sha512-XU5/SytQM+ykqMnAnvB2umaJNIOsLF3PVv//1Ew4CTcpz0/BRyy/af40qqrt7SjKpDdT1saBMc42CUok5gaw+g==", "dev": true, "license": "MIT", "dependencies": { @@ -2138,6 +2246,8 @@ }, "node_modules/@testing-library/user-event": { "version": "14.6.1", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.1.tgz", + "integrity": "sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==", "dev": true, "license": "MIT", "engines": { @@ -2150,6 +2260,8 @@ }, "node_modules/@tybys/wasm-util": { "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", + "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", "dev": true, "license": "MIT", "optional": true, @@ -2159,12 +2271,16 @@ }, "node_modules/@types/aria-query": { "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", "dev": true, "license": "MIT", "peer": true }, "node_modules/@types/chai": { "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", "dev": true, "license": "MIT", "dependencies": { @@ -2174,6 +2290,8 @@ }, "node_modules/@types/debug": { "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.13.tgz", + "integrity": "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==", "dev": true, "license": "MIT", "dependencies": { @@ -2182,34 +2300,46 @@ }, "node_modules/@types/deep-eql": { "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", "dev": true, "license": "MIT" }, "node_modules/@types/estree": { "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "dev": true, "license": "MIT" }, "node_modules/@types/katex": { "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.8.tgz", + "integrity": "sha512-trgaNyfU+Xh2Tc+ABIb44a5AYUpicB3uwirOioeOkNPPbmgRNtcWyDeeFRzjPZENO9Vq8gvVqfhaaXWLlevVwg==", "dev": true, "license": "MIT" }, "node_modules/@types/ms": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", "dev": true, "license": "MIT" }, "node_modules/@types/node": { - "version": "25.5.2", + "version": "25.6.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.6.0.tgz", + "integrity": "sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~7.18.0" + "undici-types": "~7.19.0" } }, "node_modules/@types/react": { "version": "19.2.14", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz", + "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", "dev": true, "license": "MIT", "dependencies": { @@ -2218,6 +2348,8 @@ }, "node_modules/@types/react-dom": { "version": "19.2.3", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", + "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", "dev": true, "license": "MIT", "peerDependencies": { @@ -2226,11 +2358,15 @@ }, "node_modules/@types/unist": { "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", "dev": true, "license": "MIT" }, "node_modules/@vercel/analytics": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@vercel/analytics/-/analytics-2.0.1.tgz", + "integrity": "sha512-MTQG6V9qQrt1tsDeF+2Uoo5aPjqbVPys1xvnIftXSJYG2SrwXRHnqEvVoYID7BTruDz4lCd2Z7rM1BdkUehk2g==", "license": "MIT", "peerDependencies": { "@remix-run/react": "^2", @@ -2271,6 +2407,8 @@ }, "node_modules/@vercel/speed-insights": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@vercel/speed-insights/-/speed-insights-2.0.0.tgz", + "integrity": "sha512-jwkNcrTeafWxjmWq4AHBaptSqZiJkYU5adLC9QBSqeim0GcqDMgN5Ievh8OG1rJ6W3A4l1oiP7qr9CWxGuzu3w==", "license": "Apache-2.0", "peerDependencies": { "@sveltejs/kit": "^1 || ^2", @@ -2307,6 +2445,8 @@ }, "node_modules/@vitejs/plugin-react": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.0.1.tgz", + "integrity": "sha512-l9X/E3cDb+xY3SWzlG1MOGt2usfEHGMNIaegaUGFsLkb3RCn/k8/TOXBcab+OndDI4TBtktT8/9BwwW8Vi9KUQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2330,14 +2470,16 @@ } }, "node_modules/@vitest/expect": { - "version": "4.1.2", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.5.tgz", + "integrity": "sha512-PWBaRY5JoKuRnHlUHfpV/KohFylaDZTupcXN1H9vYryNLOnitSw60Mw9IAE2r67NbwwzBw/Cc/8q9BK3kIX8Kw==", "dev": true, "license": "MIT", "dependencies": { "@standard-schema/spec": "^1.1.0", "@types/chai": "^5.2.2", - "@vitest/spy": "4.1.2", - "@vitest/utils": "4.1.2", + "@vitest/spy": "4.1.5", + "@vitest/utils": "4.1.5", "chai": "^6.2.2", "tinyrainbow": "^3.1.0" }, @@ -2346,11 +2488,13 @@ } }, "node_modules/@vitest/mocker": { - "version": "4.1.2", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.5.tgz", + "integrity": "sha512-/x2EmFC4mT4NNzqvC3fmesuV97w5FC903KPmey4gsnJiMQ3Be1IlDKVaDaG8iqaLFHqJ2FVEkxZk5VmeLjIItw==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "4.1.2", + "@vitest/spy": "4.1.5", "estree-walker": "^3.0.3", "magic-string": "^0.30.21" }, @@ -2371,7 +2515,9 @@ } }, "node_modules/@vitest/pretty-format": { - "version": "4.1.2", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.5.tgz", + "integrity": "sha512-7I3q6l5qr03dVfMX2wCo9FxwSJbPdwKjy2uu/YPpU3wfHvIL4QHwVRp57OfGrDFeUJ8/8QdfBKIV12FTtLn00g==", "dev": true, "license": "MIT", "dependencies": { @@ -2382,11 +2528,13 @@ } }, "node_modules/@vitest/runner": { - "version": "4.1.2", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.5.tgz", + "integrity": "sha512-2D+o7Pr82IEO46YPpoA/YU0neeyr6FTerQb5Ro7BUnBuv6NQtT/kmVnczngiMEBhzgqz2UZYl5gArejsyERDSQ==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/utils": "4.1.2", + "@vitest/utils": "4.1.5", "pathe": "^2.0.3" }, "funding": { @@ -2394,12 +2542,14 @@ } }, "node_modules/@vitest/snapshot": { - "version": "4.1.2", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.5.tgz", + "integrity": "sha512-zypXEt4KH/XgKGPUz4eC2AvErYx0My5hfL8oDb1HzGFpEk1P62bxSohdyOmvz+d9UJwanI68MKwr2EquOaOgMQ==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "4.1.2", - "@vitest/utils": "4.1.2", + "@vitest/pretty-format": "4.1.5", + "@vitest/utils": "4.1.5", "magic-string": "^0.30.21", "pathe": "^2.0.3" }, @@ -2408,7 +2558,9 @@ } }, "node_modules/@vitest/spy": { - "version": "4.1.2", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.5.tgz", + "integrity": "sha512-2lNOsh6+R2Idnf1TCZqSwYlKN2E/iDlD8sgU59kYVl+OMDmvldO1VDk39smRfpUNwYpNRVn3w4YfuC7KfbBnkQ==", "dev": true, "license": "MIT", "funding": { @@ -2416,11 +2568,13 @@ } }, "node_modules/@vitest/utils": { - "version": "4.1.2", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.5.tgz", + "integrity": "sha512-76wdkrmfXfqGjueGgnb45ITPyUi1ycZ4IHgC2bhPDUfWHklY/q3MdLOAB+TF1e6xfl8NxNY0ZYaPCFNWSsw3Ug==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "4.1.2", + "@vitest/pretty-format": "4.1.5", "convert-source-map": "^2.0.0", "tinyrainbow": "^3.1.0" }, @@ -2430,6 +2584,8 @@ }, "node_modules/ansi-regex": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "license": "MIT", "peer": true, @@ -2439,6 +2595,8 @@ }, "node_modules/ansi-styles": { "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", "peer": true, @@ -2451,11 +2609,15 @@ }, "node_modules/argparse": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true, "license": "Python-2.0" }, "node_modules/aria-query": { "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -2464,6 +2626,8 @@ }, "node_modules/assertion-error": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", "dev": true, "license": "MIT", "engines": { @@ -2472,6 +2636,8 @@ }, "node_modules/babel-plugin-react-compiler": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-react-compiler/-/babel-plugin-react-compiler-1.0.0.tgz", + "integrity": "sha512-Ixm8tFfoKKIPYdCCKYTsqv+Fd4IJ0DQqMyEimo+pxUOMUR9cVPlwTrFt9Avu+3cb6Zp3mAzl+t1MrG2fxxKsxw==", "devOptional": true, "license": "MIT", "dependencies": { @@ -2479,9 +2645,9 @@ } }, "node_modules/baseline-browser-mapping": { - "version": "2.10.16", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.16.tgz", - "integrity": "sha512-Lyf3aK28zpsD1yQMiiHD4RvVb6UdMoo8xzG2XzFIfR9luPzOpcBlAsT/qfB1XWS1bxWT+UtE4WmQgsp297FYOA==", + "version": "2.10.23", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.23.tgz", + "integrity": "sha512-xwVXGqevyKPsiuQdLj+dZMVjidjJV508TBqexND5HrF89cGdCYCJFB3qhcxRHSeMctdCfbR1jrxBajhDy7o29g==", "license": "Apache-2.0", "bin": { "baseline-browser-mapping": "dist/cli.cjs" @@ -2492,6 +2658,8 @@ }, "node_modules/bidi-js": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.3.tgz", + "integrity": "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==", "dev": true, "license": "MIT", "dependencies": { @@ -2500,6 +2668,8 @@ }, "node_modules/braces": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "license": "MIT", "dependencies": { @@ -2511,6 +2681,8 @@ }, "node_modules/browserslist": { "version": "4.28.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", + "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==", "dev": true, "funding": [ { @@ -2543,7 +2715,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001785", + "version": "1.0.30001791", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001791.tgz", + "integrity": "sha512-yk0l/YSrOnFZk3UROpDLQD9+kC1l4meK/wed583AXrzoarMGJcbRi2Q4RaUYbKxYAsZ8sWmaSa/DsLmdBeI1vQ==", "funding": [ { "type": "opencollective", @@ -2562,6 +2736,8 @@ }, "node_modules/chai": { "version": "6.2.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", + "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", "dev": true, "license": "MIT", "engines": { @@ -2570,6 +2746,8 @@ }, "node_modules/character-entities": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", "dev": true, "license": "MIT", "funding": { @@ -2579,6 +2757,8 @@ }, "node_modules/character-entities-legacy": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", "dev": true, "license": "MIT", "funding": { @@ -2588,6 +2768,8 @@ }, "node_modules/character-reference-invalid": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", + "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", "dev": true, "license": "MIT", "funding": { @@ -2597,10 +2779,14 @@ }, "node_modules/client-only": { "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", "license": "MIT" }, "node_modules/commander": { "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", "dev": true, "license": "MIT", "engines": { @@ -2609,11 +2795,15 @@ }, "node_modules/convert-source-map": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true, "license": "MIT" }, "node_modules/css-tree": { "version": "3.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz", + "integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==", "dev": true, "license": "MIT", "dependencies": { @@ -2626,16 +2816,22 @@ }, "node_modules/css.escape": { "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", "dev": true, "license": "MIT" }, "node_modules/csstype": { "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", "dev": true, "license": "MIT" }, "node_modules/data-urls": { "version": "7.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-7.0.0.tgz", + "integrity": "sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA==", "dev": true, "license": "MIT", "dependencies": { @@ -2648,6 +2844,8 @@ }, "node_modules/debug": { "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, "license": "MIT", "dependencies": { @@ -2664,11 +2862,15 @@ }, "node_modules/decimal.js": { "version": "10.6.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", "dev": true, "license": "MIT" }, "node_modules/decode-named-character-reference": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz", + "integrity": "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==", "dev": true, "license": "MIT", "dependencies": { @@ -2681,6 +2883,8 @@ }, "node_modules/dequal": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", "dev": true, "license": "MIT", "engines": { @@ -2689,6 +2893,8 @@ }, "node_modules/detect-libc": { "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", "devOptional": true, "license": "Apache-2.0", "engines": { @@ -2697,6 +2903,8 @@ }, "node_modules/devlop": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", "dev": true, "license": "MIT", "dependencies": { @@ -2709,23 +2917,29 @@ }, "node_modules/dom-accessibility-api": { "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", "dev": true, "license": "MIT", "peer": true }, "node_modules/electron-to-chromium": { - "version": "1.5.331", + "version": "1.5.344", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.344.tgz", + "integrity": "sha512-4MxfbmNDm+KPh066EZy+eUnkcDPcZ35wNmOWzFuh/ijvHsve6kbLTLURy88uCNK5FbpN+yk2nQY6BYh1GEt+wg==", "dev": true, "license": "ISC", "peer": true }, "node_modules/enhanced-resolve": { - "version": "5.20.1", + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.21.0.tgz", + "integrity": "sha512-otxSQPw4lkOZWkHpB3zaEQs6gWYEsmX4xQF68ElXC/TWvGxGMSGOvoNbaLXm6/cS/fSfHtsEdw90y20PCd+sCA==", "dev": true, "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", - "tapable": "^2.3.0" + "tapable": "^2.3.3" }, "engines": { "node": ">=10.13.0" @@ -2733,6 +2947,8 @@ }, "node_modules/entities": { "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -2743,12 +2959,16 @@ } }, "node_modules/es-module-lexer": { - "version": "2.0.0", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.1.0.tgz", + "integrity": "sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==", "dev": true, "license": "MIT" }, "node_modules/escalade": { "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, "license": "MIT", "peer": true, @@ -2758,6 +2978,8 @@ }, "node_modules/estree-walker": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", "dev": true, "license": "MIT", "dependencies": { @@ -2766,6 +2988,8 @@ }, "node_modules/expect-type": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", + "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -2774,6 +2998,8 @@ }, "node_modules/fast-glob": { "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, "license": "MIT", "dependencies": { @@ -2789,6 +3015,8 @@ }, "node_modules/fastq": { "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", "dev": true, "license": "ISC", "dependencies": { @@ -2797,6 +3025,8 @@ }, "node_modules/fdir": { "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, "license": "MIT", "engines": { @@ -2813,6 +3043,8 @@ }, "node_modules/fill-range": { "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "license": "MIT", "dependencies": { @@ -2838,6 +3070,8 @@ }, "node_modules/gensync": { "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, "license": "MIT", "peer": true, @@ -2847,6 +3081,8 @@ }, "node_modules/get-east-asian-width": { "version": "1.5.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.5.0.tgz", + "integrity": "sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==", "dev": true, "license": "MIT", "engines": { @@ -2858,6 +3094,8 @@ }, "node_modules/glob-parent": { "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "license": "ISC", "dependencies": { @@ -2868,7 +3106,9 @@ } }, "node_modules/globby": { - "version": "16.1.1", + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-16.2.0.tgz", + "integrity": "sha512-QrJia2qDf5BB/V6HYlDTs0I0lBahyjLzpGQg3KT7FnCdTonAyPy2RtY802m2k4ALx6Dp752f82WsOczEVr3l6Q==", "dev": true, "license": "MIT", "dependencies": { @@ -2888,11 +3128,15 @@ }, "node_modules/graceful-fs": { "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true, "license": "ISC" }, "node_modules/html-encoding-sniffer": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-6.0.0.tgz", + "integrity": "sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==", "dev": true, "license": "MIT", "dependencies": { @@ -2904,6 +3148,8 @@ }, "node_modules/ignore": { "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", "dev": true, "license": "MIT", "engines": { @@ -2912,6 +3158,8 @@ }, "node_modules/indent-string": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, "license": "MIT", "engines": { @@ -2920,6 +3168,8 @@ }, "node_modules/is-alphabetical": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", "dev": true, "license": "MIT", "funding": { @@ -2929,6 +3179,8 @@ }, "node_modules/is-alphanumerical": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", "dev": true, "license": "MIT", "dependencies": { @@ -2942,6 +3194,8 @@ }, "node_modules/is-decimal": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", "dev": true, "license": "MIT", "funding": { @@ -2951,6 +3205,8 @@ }, "node_modules/is-extglob": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, "license": "MIT", "engines": { @@ -2959,6 +3215,8 @@ }, "node_modules/is-glob": { "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "license": "MIT", "dependencies": { @@ -2970,6 +3228,8 @@ }, "node_modules/is-hexadecimal": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", + "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", "dev": true, "license": "MIT", "funding": { @@ -2979,6 +3239,8 @@ }, "node_modules/is-number": { "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, "license": "MIT", "engines": { @@ -2987,6 +3249,8 @@ }, "node_modules/is-path-inside": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", + "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", "dev": true, "license": "MIT", "engines": { @@ -2998,11 +3262,15 @@ }, "node_modules/is-potential-custom-element-name": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", "dev": true, "license": "MIT" }, "node_modules/jiti": { "version": "2.6.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", "dev": true, "license": "MIT", "bin": { @@ -3011,12 +3279,16 @@ }, "node_modules/js-tokens": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true, "license": "MIT", "peer": true }, "node_modules/js-yaml": { "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dev": true, "license": "MIT", "dependencies": { @@ -3027,12 +3299,14 @@ } }, "node_modules/jsdom": { - "version": "29.0.1", + "version": "29.0.2", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-29.0.2.tgz", + "integrity": "sha512-9VnGEBosc/ZpwyOsJBCQ/3I5p7Q5ngOY14a9bf5btenAORmZfDse1ZEheMiWcJ3h81+Fv7HmJFdS0szo/waF2w==", "dev": true, "license": "MIT", "dependencies": { - "@asamuzakjp/css-color": "^5.0.1", - "@asamuzakjp/dom-selector": "^7.0.3", + "@asamuzakjp/css-color": "^5.1.5", + "@asamuzakjp/dom-selector": "^7.0.6", "@bramus/specificity": "^2.4.2", "@csstools/css-syntax-patches-for-csstree": "^1.1.1", "@exodus/bytes": "^1.15.0", @@ -3066,7 +3340,9 @@ } }, "node_modules/jsdom/node_modules/lru-cache": { - "version": "11.2.7", + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.5.tgz", + "integrity": "sha512-NxVFwLAnrd9i7KUBxC4DrUhmgjzOs+1Qm50D3oF1/oL+r1NpZ4gA7xvG0/zJ8evR7zIKn4vLf7qTNduWFtCrRw==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -3075,6 +3351,8 @@ }, "node_modules/jsesc": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "dev": true, "license": "MIT", "peer": true, @@ -3087,6 +3365,8 @@ }, "node_modules/json5": { "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, "license": "MIT", "peer": true, @@ -3099,11 +3379,15 @@ }, "node_modules/jsonc-parser": { "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", "dev": true, "license": "MIT" }, "node_modules/jsonpointer": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", "dev": true, "license": "MIT", "engines": { @@ -3111,7 +3395,9 @@ } }, "node_modules/katex": { - "version": "0.16.44", + "version": "0.16.45", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.45.tgz", + "integrity": "sha512-pQpZbdBu7wCTmQUh7ufPmLr0pFoObnGUoL/yhtwJDgmmQpbkg/0HSVti25Fu4rmd1oCR6NGWe9vqTWuWv3GcNA==", "dev": true, "funding": [ "https://opencollective.com/katex", @@ -3126,7 +3412,9 @@ } }, "node_modules/lefthook": { - "version": "2.1.5", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/lefthook/-/lefthook-2.1.6.tgz", + "integrity": "sha512-w9sBoR0mdN+kJc3SB85VzpiAAl451/rxdCRcZlwW71QLjkeH3EBQFgc4VMj5apePychYDHAlqEWTB8J8JK/j1Q==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -3134,22 +3422,22 @@ "lefthook": "bin/index.js" }, "optionalDependencies": { - "lefthook-darwin-arm64": "2.1.5", - "lefthook-darwin-x64": "2.1.5", - "lefthook-freebsd-arm64": "2.1.5", - "lefthook-freebsd-x64": "2.1.5", - "lefthook-linux-arm64": "2.1.5", - "lefthook-linux-x64": "2.1.5", - "lefthook-openbsd-arm64": "2.1.5", - "lefthook-openbsd-x64": "2.1.5", - "lefthook-windows-arm64": "2.1.5", - "lefthook-windows-x64": "2.1.5" + "lefthook-darwin-arm64": "2.1.6", + "lefthook-darwin-x64": "2.1.6", + "lefthook-freebsd-arm64": "2.1.6", + "lefthook-freebsd-x64": "2.1.6", + "lefthook-linux-arm64": "2.1.6", + "lefthook-linux-x64": "2.1.6", + "lefthook-openbsd-arm64": "2.1.6", + "lefthook-openbsd-x64": "2.1.6", + "lefthook-windows-arm64": "2.1.6", + "lefthook-windows-x64": "2.1.6" } }, "node_modules/lefthook-darwin-arm64": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/lefthook-darwin-arm64/-/lefthook-darwin-arm64-2.1.5.tgz", - "integrity": "sha512-VITTaw8PxxyE26gkZ8UcwIa5ZrWnKNRGLeeSrqri40cQdXvLTEoMq2tjjw7eiL9UcB0waRReDdzydevy9GOPUQ==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/lefthook-darwin-arm64/-/lefthook-darwin-arm64-2.1.6.tgz", + "integrity": "sha512-hyB7eeiX78BS66f70byTJacDLC/xV1vgMv9n+idFUsrM7J3Udd/ag9Ag5NP3t0eN0EqQqAtrNnt35EH01lxnRQ==", "cpu": [ "arm64" ], @@ -3161,9 +3449,9 @@ ] }, "node_modules/lefthook-darwin-x64": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/lefthook-darwin-x64/-/lefthook-darwin-x64-2.1.5.tgz", - "integrity": "sha512-AvtjYiW0BSGHBGrdvL313seUymrW9FxI+6JJwJ+ZSaa2sH81etrTB0wAwlH1L9VfFwK9+gWvatZBvLfF3L4fPw==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/lefthook-darwin-x64/-/lefthook-darwin-x64-2.1.6.tgz", + "integrity": "sha512-5Ka6cFxiH83krt+OMRQtmS6zqoZR5SLXSudLjTbZA1c3ZqF0+dqkeb4XcB6plx6WR0GFizabuc6Bi3iXPIe1eQ==", "cpu": [ "x64" ], @@ -3175,9 +3463,9 @@ ] }, "node_modules/lefthook-freebsd-arm64": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/lefthook-freebsd-arm64/-/lefthook-freebsd-arm64-2.1.5.tgz", - "integrity": "sha512-mXjJwe8jKGWGiBYUxfQY1ab3Nn5NhafqT9q3KJz8m5joGGQj4JD0cbWxF1nVBLBWsDGbWZRZunTCMGcIScT2bQ==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/lefthook-freebsd-arm64/-/lefthook-freebsd-arm64-2.1.6.tgz", + "integrity": "sha512-VswyOg5CVN3rMaOJ2HtnkltiMKgFHW/wouWxXsV8RxSa4tgWOKxM0EmSXi8qc2jX+LRga6B0uOY6toXS01zWxA==", "cpu": [ "arm64" ], @@ -3189,9 +3477,9 @@ ] }, "node_modules/lefthook-freebsd-x64": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/lefthook-freebsd-x64/-/lefthook-freebsd-x64-2.1.5.tgz", - "integrity": "sha512-exD69dCjc1K45BxatDPGoH4NmEvgLKPm4kJLOWn1fTeHRKZwWiFPwnjknEoG2OemlCDHmCU++5X40kMEG0WBlA==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/lefthook-freebsd-x64/-/lefthook-freebsd-x64-2.1.6.tgz", + "integrity": "sha512-vXsCUFYuVwrVWwcypB7Zt2Hf+5pl1V1la7ZfvGYZaTRURu0zF/XUnMF/nOz/PebGv0f4x/iOWXWwP7E42xRWsg==", "cpu": [ "x64" ], @@ -3203,9 +3491,9 @@ ] }, "node_modules/lefthook-linux-arm64": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/lefthook-linux-arm64/-/lefthook-linux-arm64-2.1.5.tgz", - "integrity": "sha512-57TDKC5ewWpsCLZQKIJMHumFEObYKVundmPpiWhX491hINRZYYOL/26yrnVnNcidThRzTiTC+HLcuplLcaXtbA==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/lefthook-linux-arm64/-/lefthook-linux-arm64-2.1.6.tgz", + "integrity": "sha512-WDJiQhJdZOvKORZd+kF/ms2l6NSsXzdA9ahflyr65V90AC4jES223W8VtEMbGPUtHuGWMEZ/v/XvwlWv0Ioz9g==", "cpu": [ "arm64" ], @@ -3217,7 +3505,9 @@ ] }, "node_modules/lefthook-linux-x64": { - "version": "2.1.5", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/lefthook-linux-x64/-/lefthook-linux-x64-2.1.6.tgz", + "integrity": "sha512-C18nCd7nTX1AVL4TcvwMmLAO1VI1OuGluIOTjiPkBQ746Ls1HhL5rl//jMPACmT28YmxIQJ2ZcLPNmhvEVBZvw==", "cpu": [ "x64" ], @@ -3229,9 +3519,9 @@ ] }, "node_modules/lefthook-openbsd-arm64": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/lefthook-openbsd-arm64/-/lefthook-openbsd-arm64-2.1.5.tgz", - "integrity": "sha512-5aSwK7vV3A6t0w9PnxCMiVjQlcvopBP50BtmnnLnNJyAYHnFbZ0Baq5M0WkE9IsUkWSux0fe6fd0jDkuG711MA==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/lefthook-openbsd-arm64/-/lefthook-openbsd-arm64-2.1.6.tgz", + "integrity": "sha512-mZOMxM8HiPxVFXDO3PtCUbH4GB8rkveXhsgXF27oAZTYVzQ3gO9vT6r/pxit6msqRXz3fvcwimLVJgb8eRsa8A==", "cpu": [ "arm64" ], @@ -3243,9 +3533,9 @@ ] }, "node_modules/lefthook-openbsd-x64": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/lefthook-openbsd-x64/-/lefthook-openbsd-x64-2.1.5.tgz", - "integrity": "sha512-Y+pPdDuENJ8qWnUgL02xxhpjblc0WnwXvWGfqnl3WZrAgHzQpwx3G6469RID/wlNVdHYAlw3a8UkFSMYsTzXvA==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/lefthook-openbsd-x64/-/lefthook-openbsd-x64-2.1.6.tgz", + "integrity": "sha512-sG9ALLZSnnMOfXu+B7SmxFhJhuoAh4bqi5En5aaHJET48TqrLOcWWZuH+7ArFM6gr/U5KfSUvdmHFmY8WqCcIg==", "cpu": [ "x64" ], @@ -3257,9 +3547,9 @@ ] }, "node_modules/lefthook-windows-arm64": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/lefthook-windows-arm64/-/lefthook-windows-arm64-2.1.5.tgz", - "integrity": "sha512-2PlcFBjTzJaMufw0c28kfhB/0zmaRCU0TRPPsil/HU2YNOExod4upPGLk9qjgsOmb2YVWFz6zq6u7+D1yqmzTQ==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/lefthook-windows-arm64/-/lefthook-windows-arm64-2.1.6.tgz", + "integrity": "sha512-lD8yFWY4Csuljd0Rqs7EQaySC0VvDf7V3rN1FhRMUISTRDHutebIom1Loc8ckQPvKYGC6mftT9k0GvipsS+Brw==", "cpu": [ "arm64" ], @@ -3271,9 +3561,9 @@ ] }, "node_modules/lefthook-windows-x64": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/lefthook-windows-x64/-/lefthook-windows-x64-2.1.5.tgz", - "integrity": "sha512-yiAh8qxml6uqy10jDxOdN9fOQpyLxBFY1fgCEAhn7sVJYmJKRhjqSBwZX6LG5MQjzr29KStrIdw7TR3lf3rT7Q==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/lefthook-windows-x64/-/lefthook-windows-x64-2.1.6.tgz", + "integrity": "sha512-q4z2n3xucLscoWiyMwFViEj3N8MDSkPulMwcJYuCYFHoPhP1h+icqNu7QRLGYj6AnVrCQweiUJY3Tb2X+GbD/A==", "cpu": [ "x64" ], @@ -3286,6 +3576,8 @@ }, "node_modules/lightningcss": { "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", + "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", "dev": true, "license": "MPL-2.0", "dependencies": { @@ -3467,6 +3759,8 @@ }, "node_modules/lightningcss-linux-x64-gnu": { "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", + "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", "cpu": [ "x64" ], @@ -3555,6 +3849,8 @@ }, "node_modules/linkify-it": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3563,6 +3859,8 @@ }, "node_modules/lru-cache": { "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "license": "ISC", "peer": true, @@ -3572,6 +3870,8 @@ }, "node_modules/lz-string": { "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", "dev": true, "license": "MIT", "peer": true, @@ -3581,6 +3881,8 @@ }, "node_modules/magic-string": { "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3589,6 +3891,8 @@ }, "node_modules/markdown-it": { "version": "14.1.1", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.1.tgz", + "integrity": "sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA==", "dev": true, "license": "MIT", "dependencies": { @@ -3605,6 +3909,8 @@ }, "node_modules/markdownlint": { "version": "0.40.0", + "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.40.0.tgz", + "integrity": "sha512-UKybllYNheWac61Ia7T6fzuQNDZimFIpCg2w6hHjgV1Qu0w1TV0LlSgryUGzM0bkKQCBhy2FDhEELB73Kb0kAg==", "dev": true, "license": "MIT", "dependencies": { @@ -3626,11 +3932,13 @@ } }, "node_modules/markdownlint-cli2": { - "version": "0.22.0", + "version": "0.22.1", + "resolved": "https://registry.npmjs.org/markdownlint-cli2/-/markdownlint-cli2-0.22.1.tgz", + "integrity": "sha512-X14ZbytybDCXAViDmtN4DKLt9ZTrRn+oOrxTYlg3a65jS6QcYYbAkGPh/En2L/GDNbFYJ6lKaQSUNrrbN1bPrw==", "dev": true, "license": "MIT", "dependencies": { - "globby": "16.1.1", + "globby": "16.2.0", "js-yaml": "4.1.1", "jsonc-parser": "3.3.1", "jsonpointer": "5.0.1", @@ -3638,7 +3946,7 @@ "markdownlint": "0.40.0", "markdownlint-cli2-formatter-default": "0.0.6", "micromatch": "4.0.8", - "smol-toml": "1.6.0" + "smol-toml": "1.6.1" }, "bin": { "markdownlint-cli2": "markdownlint-cli2-bin.mjs" @@ -3652,6 +3960,8 @@ }, "node_modules/markdownlint-cli2-formatter-default": { "version": "0.0.6", + "resolved": "https://registry.npmjs.org/markdownlint-cli2-formatter-default/-/markdownlint-cli2-formatter-default-0.0.6.tgz", + "integrity": "sha512-VVDGKsq9sgzu378swJ0fcHfSicUnMxnL8gnLm/Q4J/xsNJ4e5bA6lvAz7PCzIl0/No0lHyaWdqVD2jotxOSFMQ==", "dev": true, "license": "MIT", "funding": { @@ -3663,16 +3973,22 @@ }, "node_modules/mdn-data": { "version": "2.27.1", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz", + "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==", "dev": true, "license": "CC0-1.0" }, "node_modules/mdurl": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", "dev": true, "license": "MIT" }, "node_modules/merge2": { "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, "license": "MIT", "engines": { @@ -3681,6 +3997,8 @@ }, "node_modules/micromark": { "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", "dev": true, "funding": [ { @@ -3715,6 +4033,8 @@ }, "node_modules/micromark-core-commonmark": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", + "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", "dev": true, "funding": [ { @@ -3748,6 +4068,8 @@ }, "node_modules/micromark-extension-directive": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-4.0.0.tgz", + "integrity": "sha512-/C2nqVmXXmiseSSuCdItCMho7ybwwop6RrrRPk0KbOHW21JKoCldC+8rFOaundDoRBUWBnJJcxeA/Kvi34WQXg==", "dev": true, "license": "MIT", "dependencies": { @@ -3766,6 +4088,8 @@ }, "node_modules/micromark-extension-gfm-autolink-literal": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", + "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", "dev": true, "license": "MIT", "dependencies": { @@ -3781,6 +4105,8 @@ }, "node_modules/micromark-extension-gfm-footnote": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", "dev": true, "license": "MIT", "dependencies": { @@ -3800,6 +4126,8 @@ }, "node_modules/micromark-extension-gfm-table": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", + "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", "dev": true, "license": "MIT", "dependencies": { @@ -3816,6 +4144,8 @@ }, "node_modules/micromark-extension-math": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-math/-/micromark-extension-math-3.1.0.tgz", + "integrity": "sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==", "dev": true, "license": "MIT", "dependencies": { @@ -3834,6 +4164,8 @@ }, "node_modules/micromark-factory-destination": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", "dev": true, "funding": [ { @@ -3854,6 +4186,8 @@ }, "node_modules/micromark-factory-label": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", "dev": true, "funding": [ { @@ -3875,6 +4209,8 @@ }, "node_modules/micromark-factory-space": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", "dev": true, "funding": [ { @@ -3894,6 +4230,8 @@ }, "node_modules/micromark-factory-title": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", "dev": true, "funding": [ { @@ -3915,6 +4253,8 @@ }, "node_modules/micromark-factory-whitespace": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", "dev": true, "funding": [ { @@ -3936,6 +4276,8 @@ }, "node_modules/micromark-util-character": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "dev": true, "funding": [ { @@ -3955,6 +4297,8 @@ }, "node_modules/micromark-util-chunked": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", "dev": true, "funding": [ { @@ -3973,6 +4317,8 @@ }, "node_modules/micromark-util-classify-character": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", "dev": true, "funding": [ { @@ -3993,6 +4339,8 @@ }, "node_modules/micromark-util-combine-extensions": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", "dev": true, "funding": [ { @@ -4012,6 +4360,8 @@ }, "node_modules/micromark-util-decode-numeric-character-reference": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", "dev": true, "funding": [ { @@ -4030,6 +4380,8 @@ }, "node_modules/micromark-util-encode": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", "dev": true, "funding": [ { @@ -4045,6 +4397,8 @@ }, "node_modules/micromark-util-html-tag-name": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", "dev": true, "funding": [ { @@ -4060,6 +4414,8 @@ }, "node_modules/micromark-util-normalize-identifier": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", "dev": true, "funding": [ { @@ -4078,6 +4434,8 @@ }, "node_modules/micromark-util-resolve-all": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", "dev": true, "funding": [ { @@ -4096,6 +4454,8 @@ }, "node_modules/micromark-util-sanitize-uri": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", "dev": true, "funding": [ { @@ -4116,6 +4476,8 @@ }, "node_modules/micromark-util-subtokenize": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", + "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", "dev": true, "funding": [ { @@ -4137,6 +4499,8 @@ }, "node_modules/micromark-util-symbol": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "dev": true, "funding": [ { @@ -4152,6 +4516,8 @@ }, "node_modules/micromark-util-types": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", + "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", "dev": true, "funding": [ { @@ -4167,6 +4533,8 @@ }, "node_modules/micromatch": { "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, "license": "MIT", "dependencies": { @@ -4179,6 +4547,8 @@ }, "node_modules/micromatch/node_modules/picomatch": { "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", "dev": true, "license": "MIT", "engines": { @@ -4190,6 +4560,8 @@ }, "node_modules/min-indent": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", "dev": true, "license": "MIT", "engines": { @@ -4198,11 +4570,15 @@ }, "node_modules/ms": { "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true, "license": "MIT" }, "node_modules/nanoid": { "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", "funding": [ { "type": "github", @@ -4218,10 +4594,12 @@ } }, "node_modules/next": { - "version": "16.2.2", + "version": "16.2.4", + "resolved": "https://registry.npmjs.org/next/-/next-16.2.4.tgz", + "integrity": "sha512-kPvz56wF5frc+FxlHI5qnklCzbq53HTwORaWBGdT0vNoKh1Aya9XC8aPauH4NJxqtzbWsS5mAbctm4cr+EkQ2Q==", "license": "MIT", "dependencies": { - "@next/env": "16.2.2", + "@next/env": "16.2.4", "@swc/helpers": "0.5.15", "baseline-browser-mapping": "^2.9.19", "caniuse-lite": "^1.0.30001579", @@ -4235,14 +4613,14 @@ "node": ">=20.9.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "16.2.2", - "@next/swc-darwin-x64": "16.2.2", - "@next/swc-linux-arm64-gnu": "16.2.2", - "@next/swc-linux-arm64-musl": "16.2.2", - "@next/swc-linux-x64-gnu": "16.2.2", - "@next/swc-linux-x64-musl": "16.2.2", - "@next/swc-win32-arm64-msvc": "16.2.2", - "@next/swc-win32-x64-msvc": "16.2.2", + "@next/swc-darwin-arm64": "16.2.4", + "@next/swc-darwin-x64": "16.2.4", + "@next/swc-linux-arm64-gnu": "16.2.4", + "@next/swc-linux-arm64-musl": "16.2.4", + "@next/swc-linux-x64-gnu": "16.2.4", + "@next/swc-linux-x64-musl": "16.2.4", + "@next/swc-win32-arm64-msvc": "16.2.4", + "@next/swc-win32-x64-msvc": "16.2.4", "sharp": "^0.34.5" }, "peerDependencies": { @@ -4270,6 +4648,8 @@ }, "node_modules/next-themes": { "version": "0.4.6", + "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.4.6.tgz", + "integrity": "sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==", "license": "MIT", "peerDependencies": { "react": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc", @@ -4278,6 +4658,8 @@ }, "node_modules/next/node_modules/postcss": { "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "funding": [ { "type": "opencollective", @@ -4303,13 +4685,17 @@ } }, "node_modules/node-releases": { - "version": "2.0.37", + "version": "2.0.38", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.38.tgz", + "integrity": "sha512-3qT/88Y3FbH/Kx4szpQQ4HzUbVrHPKTLVpVocKiLfoYvw9XSGOX2FmD2d6DrXbVYyAQTF2HeF6My8jmzx7/CRw==", "dev": true, "license": "MIT", "peer": true }, "node_modules/obug": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz", + "integrity": "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==", "dev": true, "funding": [ "https://github.com/sponsors/sxzz", @@ -4319,6 +4705,8 @@ }, "node_modules/parse-entities": { "version": "4.0.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", + "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", "dev": true, "license": "MIT", "dependencies": { @@ -4336,22 +4724,26 @@ } }, "node_modules/parse5": { - "version": "8.0.0", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.1.tgz", + "integrity": "sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==", "dev": true, "license": "MIT", "dependencies": { - "entities": "^6.0.0" + "entities": "^8.0.0" }, "funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" } }, "node_modules/parse5/node_modules/entities": { - "version": "6.0.1", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-8.0.0.tgz", + "integrity": "sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA==", "dev": true, "license": "BSD-2-Clause", "engines": { - "node": ">=0.12" + "node": ">=20.19.0" }, "funding": { "url": "https://github.com/fb55/entities?sponsor=1" @@ -4359,15 +4751,21 @@ }, "node_modules/pathe": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", "dev": true, "license": "MIT" }, "node_modules/picocolors": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "license": "ISC" }, "node_modules/picomatch": { "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true, "license": "MIT", "engines": { @@ -4379,6 +4777,8 @@ }, "node_modules/playwright": { "version": "1.59.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.59.1.tgz", + "integrity": "sha512-C8oWjPR3F81yljW9o5OxcWzfh6avkVwDD2VYdwIGqTkl+OGFISgypqzfu7dOe4QNLL2aqcWBmI3PMtLIK233lw==", "devOptional": true, "license": "Apache-2.0", "dependencies": { @@ -4396,6 +4796,8 @@ }, "node_modules/playwright-core": { "version": "1.59.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.59.1.tgz", + "integrity": "sha512-HBV/RJg81z5BiiZ9yPzIiClYV/QMsDCKUyogwH9p3MCP6IYjUFu/MActgYAvK0oWyV9NlwM3GLBjADyWgydVyg==", "devOptional": true, "license": "Apache-2.0", "bin": { @@ -4406,7 +4808,9 @@ } }, "node_modules/postcss": { - "version": "8.5.8", + "version": "8.5.12", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.12.tgz", + "integrity": "sha512-W62t/Se6rA0Az3DfCL0AqJwXuKwBeYg6nOaIgzP+xZ7N5BFCI7DYi1qs6ygUYT6rvfi6t9k65UMLJC+PHZpDAA==", "dev": true, "funding": [ { @@ -4434,6 +4838,8 @@ }, "node_modules/pretty-format": { "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", "dev": true, "license": "MIT", "peer": true, @@ -4448,6 +4854,8 @@ }, "node_modules/punycode": { "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, "license": "MIT", "engines": { @@ -4456,6 +4864,8 @@ }, "node_modules/punycode.js": { "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", "dev": true, "license": "MIT", "engines": { @@ -4464,6 +4874,8 @@ }, "node_modules/queue-microtask": { "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, "funding": [ { @@ -4482,30 +4894,38 @@ "license": "MIT" }, "node_modules/react": { - "version": "19.2.4", + "version": "19.2.5", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.5.tgz", + "integrity": "sha512-llUJLzz1zTUBrskt2pwZgLq59AemifIftw4aB7JxOqf1HY2FDaGDxgwpAPVzHU1kdWabH7FauP4i1oEeer2WCA==", "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { - "version": "19.2.4", + "version": "19.2.5", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.5.tgz", + "integrity": "sha512-J5bAZz+DXMMwW/wV3xzKke59Af6CHY7G4uYLN1OvBcKEsWOs4pQExj86BBKamxl/Ik5bx9whOrvBlSDfWzgSag==", "license": "MIT", "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { - "react": "^19.2.4" + "react": "^19.2.5" } }, "node_modules/react-is": { "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "dev": true, "license": "MIT", "peer": true }, "node_modules/redent": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", "dev": true, "license": "MIT", "dependencies": { @@ -4518,6 +4938,8 @@ }, "node_modules/require-from-string": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, "license": "MIT", "engines": { @@ -4526,6 +4948,8 @@ }, "node_modules/reusify": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "dev": true, "license": "MIT", "engines": { @@ -4534,13 +4958,14 @@ } }, "node_modules/rolldown": { - "version": "1.0.0-rc.13", + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.17.tgz", + "integrity": "sha512-ZrT53oAKrtA4+YtBWPQbtPOxIbVDbxT0orcYERKd63VJTF13zPcgXTvD4843L8pcsI7M6MErt8QtON6lrB9tyA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { - "@oxc-project/types": "=0.123.0", - "@rolldown/pluginutils": "1.0.0-rc.13" + "@oxc-project/types": "=0.127.0", + "@rolldown/pluginutils": "1.0.0-rc.17" }, "bin": { "rolldown": "bin/cli.mjs" @@ -4549,31 +4974,34 @@ "node": "^20.19.0 || >=22.12.0" }, "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.0.0-rc.13", - "@rolldown/binding-darwin-arm64": "1.0.0-rc.13", - "@rolldown/binding-darwin-x64": "1.0.0-rc.13", - "@rolldown/binding-freebsd-x64": "1.0.0-rc.13", - "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.13", - "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.13", - "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.13", - "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.13", - "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.13", - "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.13", - "@rolldown/binding-linux-x64-musl": "1.0.0-rc.13", - "@rolldown/binding-openharmony-arm64": "1.0.0-rc.13", - "@rolldown/binding-wasm32-wasi": "1.0.0-rc.13", - "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.13", - "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.13" + "@rolldown/binding-android-arm64": "1.0.0-rc.17", + "@rolldown/binding-darwin-arm64": "1.0.0-rc.17", + "@rolldown/binding-darwin-x64": "1.0.0-rc.17", + "@rolldown/binding-freebsd-x64": "1.0.0-rc.17", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.17", + "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.17", + "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.17", + "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.17", + "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.17", + "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.17", + "@rolldown/binding-linux-x64-musl": "1.0.0-rc.17", + "@rolldown/binding-openharmony-arm64": "1.0.0-rc.17", + "@rolldown/binding-wasm32-wasi": "1.0.0-rc.17", + "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.17", + "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.17" } }, "node_modules/rolldown/node_modules/@rolldown/pluginutils": { - "version": "1.0.0-rc.13", + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.17.tgz", + "integrity": "sha512-n8iosDOt6Ig1UhJ2AYqoIhHWh/isz0xpicHTzpKBeotdVsTEcxsSA/i3EVM7gQAj0rU27OLAxCjzlj15IWY7bg==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/run-parallel": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "funding": [ { @@ -4596,6 +5024,8 @@ }, "node_modules/saxes": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", "dev": true, "license": "ISC", "dependencies": { @@ -4607,10 +5037,14 @@ }, "node_modules/scheduler": { "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", "license": "MIT" }, "node_modules/semver": { "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "license": "ISC", "peer": true, @@ -4620,6 +5054,8 @@ }, "node_modules/sharp": { "version": "0.34.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", + "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", "hasInstallScript": true, "license": "Apache-2.0", "optional": true, @@ -4663,6 +5099,8 @@ }, "node_modules/sharp/node_modules/semver": { "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "license": "ISC", "optional": true, "bin": { @@ -4674,11 +5112,15 @@ }, "node_modules/siginfo": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", "dev": true, "license": "ISC" }, "node_modules/slash": { "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", "dev": true, "license": "MIT", "engines": { @@ -4689,7 +5131,9 @@ } }, "node_modules/smol-toml": { - "version": "1.6.0", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.6.1.tgz", + "integrity": "sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg==", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -4701,6 +5145,8 @@ }, "node_modules/source-map-js": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -4708,16 +5154,22 @@ }, "node_modules/stackback": { "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", "dev": true, "license": "MIT" }, "node_modules/std-env": { - "version": "4.0.0", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.1.0.tgz", + "integrity": "sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==", "dev": true, "license": "MIT" }, "node_modules/string-width": { "version": "8.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.1.0.tgz", + "integrity": "sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==", "dev": true, "license": "MIT", "dependencies": { @@ -4733,6 +5185,8 @@ }, "node_modules/strip-ansi": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "dev": true, "license": "MIT", "dependencies": { @@ -4747,6 +5201,8 @@ }, "node_modules/strip-ansi/node_modules/ansi-regex": { "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "dev": true, "license": "MIT", "engines": { @@ -4758,6 +5214,8 @@ }, "node_modules/strip-indent": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4769,6 +5227,8 @@ }, "node_modules/styled-jsx": { "version": "5.1.6", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", + "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", "license": "MIT", "dependencies": { "client-only": "0.0.1" @@ -4790,16 +5250,22 @@ }, "node_modules/symbol-tree": { "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true, "license": "MIT" }, "node_modules/tailwindcss": { - "version": "4.2.2", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.4.tgz", + "integrity": "sha512-HhKppgO81FQof5m6TEnuBWCZGgfRAWbaeOaGT00KOy/Pf/j6oUihdvBpA7ltCeAvZpFhW3j0PTclkxsd4IXYDA==", "dev": true, "license": "MIT" }, "node_modules/tapable": { - "version": "2.3.2", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", + "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", "dev": true, "license": "MIT", "engines": { @@ -4812,11 +5278,15 @@ }, "node_modules/tinybench": { "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", "dev": true, "license": "MIT" }, "node_modules/tinyexec": { - "version": "1.0.4", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.1.1.tgz", + "integrity": "sha512-VKS/ZaQhhkKFMANmAOhhXVoIfBXblQxGX1myCQ2faQrfmobMftXeJPcZGp0gS07ocvGJWDLZGyOZDadDBqYIJg==", "dev": true, "license": "MIT", "engines": { @@ -4824,12 +5294,14 @@ } }, "node_modules/tinyglobby": { - "version": "0.2.15", + "version": "0.2.16", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", + "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", "dev": true, "license": "MIT", "dependencies": { "fdir": "^6.5.0", - "picomatch": "^4.0.3" + "picomatch": "^4.0.4" }, "engines": { "node": ">=12.0.0" @@ -4840,6 +5312,8 @@ }, "node_modules/tinyrainbow": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.0.tgz", + "integrity": "sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==", "dev": true, "license": "MIT", "engines": { @@ -4848,6 +5322,8 @@ }, "node_modules/tldts": { "version": "7.0.28", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.28.tgz", + "integrity": "sha512-+Zg3vWhRUv8B1maGSTFdev9mjoo8Etn2Ayfs4cnjlD3CsGkxXX4QyW3j2WJ0wdjYcYmy7Lx2RDsZMhgCWafKIw==", "dev": true, "license": "MIT", "dependencies": { @@ -4859,11 +5335,15 @@ }, "node_modules/tldts-core": { "version": "7.0.28", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.28.tgz", + "integrity": "sha512-7W5Efjhsc3chVdFhqtaU0KtK32J37Zcr9RKtID54nG+tIpcY79CQK/veYPODxtD/LJ4Lue66jvrQzIX2Z2/pUQ==", "dev": true, "license": "MIT" }, "node_modules/to-regex-range": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4875,6 +5355,8 @@ }, "node_modules/tough-cookie": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.1.tgz", + "integrity": "sha512-LktZQb3IeoUWB9lqR5EWTHgW/VTITCXg4D21M+lvybRVdylLrRMnqaIONLVb5mav8vM19m44HIcGq4qASeu2Qw==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -4886,6 +5368,8 @@ }, "node_modules/tr46": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-6.0.0.tgz", + "integrity": "sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==", "dev": true, "license": "MIT", "dependencies": { @@ -4897,10 +5381,14 @@ }, "node_modules/tslib": { "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, "node_modules/typescript": { - "version": "6.0.2", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", "dev": true, "license": "Apache-2.0", "bin": { @@ -4913,11 +5401,15 @@ }, "node_modules/uc.micro": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", "dev": true, "license": "MIT" }, "node_modules/undici": { - "version": "7.24.7", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.25.0.tgz", + "integrity": "sha512-xXnp4kTyor2Zq+J1FfPI6Eq3ew5h6Vl0F/8d9XU5zZQf1tX9s2Su1/3PiMmUANFULpmksxkClamIZcaUqryHsQ==", "dev": true, "license": "MIT", "engines": { @@ -4925,12 +5417,16 @@ } }, "node_modules/undici-types": { - "version": "7.18.2", + "version": "7.19.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.19.2.tgz", + "integrity": "sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==", "dev": true, "license": "MIT" }, "node_modules/unicorn-magic": { "version": "0.4.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.4.0.tgz", + "integrity": "sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw==", "dev": true, "license": "MIT", "engines": { @@ -4942,6 +5438,8 @@ }, "node_modules/update-browserslist-db": { "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", "dev": true, "funding": [ { @@ -4971,15 +5469,17 @@ } }, "node_modules/vite": { - "version": "8.0.3", + "version": "8.0.10", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.10.tgz", + "integrity": "sha512-rZuUu9j6J5uotLDs+cAA4O5H4K1SfPliUlQwqa6YEwSrWDZzP4rhm00oJR5snMewjxF5V/K3D4kctsUTsIU9Mw==", "dev": true, "license": "MIT", "dependencies": { "lightningcss": "^1.32.0", "picomatch": "^4.0.4", - "postcss": "^8.5.8", - "rolldown": "1.0.0-rc.12", - "tinyglobby": "^0.2.15" + "postcss": "^8.5.10", + "rolldown": "1.0.0-rc.17", + "tinyglobby": "^0.2.16" }, "bin": { "vite": "bin/vite.js" @@ -4996,7 +5496,7 @@ "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "@vitejs/devtools": "^0.1.0", - "esbuild": "^0.27.0", + "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", "sass": "^1.70.0", @@ -5046,290 +5546,6 @@ } } }, - "node_modules/vite/node_modules/@oxc-project/types": { - "version": "0.122.0", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/Boshen" - } - }, - "node_modules/vite/node_modules/@rolldown/binding-android-arm64": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.12.tgz", - "integrity": "sha512-pv1y2Fv0JybcykuiiD3qBOBdz6RteYojRFY1d+b95WVuzx211CRh+ytI/+9iVyWQ6koTh5dawe4S/yRfOFjgaA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/vite/node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.12.tgz", - "integrity": "sha512-cFYr6zTG/3PXXF3pUO+umXxt1wkRK/0AYT8lDwuqvRC+LuKYWSAQAQZjCWDQpAH172ZV6ieYrNnFzVVcnSflAg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/vite/node_modules/@rolldown/binding-darwin-x64": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.12.tgz", - "integrity": "sha512-ZCsYknnHzeXYps0lGBz8JrF37GpE9bFVefrlmDrAQhOEi4IOIlcoU1+FwHEtyXGx2VkYAvhu7dyBf75EJQffBw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/vite/node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.12.tgz", - "integrity": "sha512-dMLeprcVsyJsKolRXyoTH3NL6qtsT0Y2xeuEA8WQJquWFXkEC4bcu1rLZZSnZRMtAqwtrF/Ib9Ddtpa/Gkge9Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/vite/node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.12.tgz", - "integrity": "sha512-YqWjAgGC/9M1lz3GR1r1rP79nMgo3mQiiA+Hfo+pvKFK1fAJ1bCi0ZQVh8noOqNacuY1qIcfyVfP6HoyBRZ85Q==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/vite/node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.12.tgz", - "integrity": "sha512-/I5AS4cIroLpslsmzXfwbe5OmWvSsrFuEw3mwvbQ1kDxJ822hFHIx+vsN/TAzNVyepI/j/GSzrtCIwQPeKCLIg==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/vite/node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.12.tgz", - "integrity": "sha512-V6/wZztnBqlx5hJQqNWwFdxIKN0m38p8Jas+VoSfgH54HSj9tKTt1dZvG6JRHcjh6D7TvrJPWFGaY9UBVOaWPw==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/vite/node_modules/@rolldown/binding-linux-ppc64-gnu": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.12.tgz", - "integrity": "sha512-AP3E9BpcUYliZCxa3w5Kwj9OtEVDYK6sVoUzy4vTOJsjPOgdaJZKFmN4oOlX0Wp0RPV2ETfmIra9x1xuayFB7g==", - "cpu": [ - "ppc64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/vite/node_modules/@rolldown/binding-linux-s390x-gnu": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.12.tgz", - "integrity": "sha512-nWwpvUSPkoFmZo0kQazZYOrT7J5DGOJ/+QHHzjvNlooDZED8oH82Yg67HvehPPLAg5fUff7TfWFHQS8IV1n3og==", - "cpu": [ - "s390x" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/vite/node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.0.0-rc.12", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/vite/node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.12.tgz", - "integrity": "sha512-Jpw/0iwoKWx3LJ2rc1yjFrj+T7iHZn2JDg1Yny1ma0luviFS4mhAIcd1LFNxK3EYu3DHWCps0ydXQ5i/rrJ2ig==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/vite/node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.12.tgz", - "integrity": "sha512-vRugONE4yMfVn0+7lUKdKvN4D5YusEiPilaoO2sgUWpCvrncvWgPMzK00ZFFJuiPgLwgFNP5eSiUlv2tfc+lpA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/vite/node_modules/@rolldown/binding-wasm32-wasi": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.12.tgz", - "integrity": "sha512-ykGiLr/6kkiHc0XnBfmFJuCjr5ZYKKofkx+chJWDjitX+KsJuAmrzWhwyOMSHzPhzOHOy7u9HlFoa5MoAOJ/Zg==", - "cpu": [ - "wasm32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@napi-rs/wasm-runtime": "^1.1.1" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/vite/node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.12.tgz", - "integrity": "sha512-5eOND4duWkwx1AzCxadcOrNeighiLwMInEADT0YM7xeEOOFcovWZCq8dadXgcRHSf3Ulh1kFo/qvzoFiCLOL1Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/vite/node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.12.tgz", - "integrity": "sha512-PyqoipaswDLAZtot351MLhrlrh6lcZPo2LSYE+VDxbVk24LVKAGOuE4hb8xZQmrPAuEtTZW8E6D2zc5EUZX4Lw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/vite/node_modules/@rolldown/pluginutils": { - "version": "1.0.0-rc.12", - "dev": true, - "license": "MIT" - }, "node_modules/vite/node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -5345,50 +5561,20 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/vite/node_modules/rolldown": { - "version": "1.0.0-rc.12", - "dev": true, - "license": "MIT", - "dependencies": { - "@oxc-project/types": "=0.122.0", - "@rolldown/pluginutils": "1.0.0-rc.12" - }, - "bin": { - "rolldown": "bin/cli.mjs" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.0.0-rc.12", - "@rolldown/binding-darwin-arm64": "1.0.0-rc.12", - "@rolldown/binding-darwin-x64": "1.0.0-rc.12", - "@rolldown/binding-freebsd-x64": "1.0.0-rc.12", - "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.12", - "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.12", - "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.12", - "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.12", - "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.12", - "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.12", - "@rolldown/binding-linux-x64-musl": "1.0.0-rc.12", - "@rolldown/binding-openharmony-arm64": "1.0.0-rc.12", - "@rolldown/binding-wasm32-wasi": "1.0.0-rc.12", - "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.12", - "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.12" - } - }, "node_modules/vitest": { - "version": "4.1.2", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.5.tgz", + "integrity": "sha512-9Xx1v3/ih3m9hN+SbfkUyy0JAs72ap3r7joc87XL6jwF0jGg6mFBvQ1SrwaX+h8BlkX6Hz9shdd1uo6AF+ZGpg==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/expect": "4.1.2", - "@vitest/mocker": "4.1.2", - "@vitest/pretty-format": "4.1.2", - "@vitest/runner": "4.1.2", - "@vitest/snapshot": "4.1.2", - "@vitest/spy": "4.1.2", - "@vitest/utils": "4.1.2", + "@vitest/expect": "4.1.5", + "@vitest/mocker": "4.1.5", + "@vitest/pretty-format": "4.1.5", + "@vitest/runner": "4.1.5", + "@vitest/snapshot": "4.1.5", + "@vitest/spy": "4.1.5", + "@vitest/utils": "4.1.5", "es-module-lexer": "^2.0.0", "expect-type": "^1.3.0", "magic-string": "^0.30.21", @@ -5416,10 +5602,12 @@ "@edge-runtime/vm": "*", "@opentelemetry/api": "^1.9.0", "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", - "@vitest/browser-playwright": "4.1.2", - "@vitest/browser-preview": "4.1.2", - "@vitest/browser-webdriverio": "4.1.2", - "@vitest/ui": "4.1.2", + "@vitest/browser-playwright": "4.1.5", + "@vitest/browser-preview": "4.1.5", + "@vitest/browser-webdriverio": "4.1.5", + "@vitest/coverage-istanbul": "4.1.5", + "@vitest/coverage-v8": "4.1.5", + "@vitest/ui": "4.1.5", "happy-dom": "*", "jsdom": "*", "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" @@ -5443,6 +5631,12 @@ "@vitest/browser-webdriverio": { "optional": true }, + "@vitest/coverage-istanbul": { + "optional": true + }, + "@vitest/coverage-v8": { + "optional": true + }, "@vitest/ui": { "optional": true }, @@ -5459,6 +5653,8 @@ }, "node_modules/w3c-xmlserializer": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", + "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", "dev": true, "license": "MIT", "dependencies": { @@ -5470,6 +5666,8 @@ }, "node_modules/webidl-conversions": { "version": "8.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-8.0.1.tgz", + "integrity": "sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -5478,6 +5676,8 @@ }, "node_modules/whatwg-mimetype": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz", + "integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==", "dev": true, "license": "MIT", "engines": { @@ -5486,6 +5686,8 @@ }, "node_modules/whatwg-url": { "version": "16.0.1", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-16.0.1.tgz", + "integrity": "sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==", "dev": true, "license": "MIT", "dependencies": { @@ -5499,6 +5701,8 @@ }, "node_modules/why-is-node-running": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", "dev": true, "license": "MIT", "dependencies": { @@ -5514,6 +5718,8 @@ }, "node_modules/xml-name-validator": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", "dev": true, "license": "Apache-2.0", "engines": { @@ -5522,11 +5728,15 @@ }, "node_modules/xmlchars": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "dev": true, "license": "MIT" }, "node_modules/yallist": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true, "license": "ISC", "peer": true diff --git a/package.json b/package.json index 65513e2..767563e 100644 --- a/package.json +++ b/package.json @@ -24,30 +24,30 @@ "dependencies": { "@vercel/analytics": "^2.0.1", "@vercel/speed-insights": "^2.0.0", - "next": "^16.2.2", + "next": "^16.2.4", "next-themes": "^0.4.6", - "react": "^19.2.4", - "react-dom": "^19.2.4" + "react": "^19.2.5", + "react-dom": "^19.2.5" }, "devDependencies": { - "@biomejs/biome": "^2.4.10", + "@biomejs/biome": "^2.4.13", "@playwright/test": "^1.59.1", - "@rolldown/plugin-babel": "^0.2.2", - "@tailwindcss/postcss": "^4.2.2", + "@rolldown/plugin-babel": "^0.2.3", + "@tailwindcss/postcss": "^4.2.4", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.2", "@testing-library/user-event": "^14.6.1", - "@types/node": "^25.5.2", + "@types/node": "^25.6.0", "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^6.0.1", "babel-plugin-react-compiler": "1.0.0", - "baseline-browser-mapping": "^2.10.16", - "jsdom": "^29.0.1", - "lefthook": "^2.1.5", - "markdownlint-cli2": "^0.22.0", + "baseline-browser-mapping": "^2.10.23", + "jsdom": "^29.0.2", + "lefthook": "^2.1.6", + "markdownlint-cli2": "^0.22.1", "tailwindcss": "^4.2.2", - "typescript": "^6.0.2", - "vitest": "^4.1.2" + "typescript": "^6.0.3", + "vitest": "^4.1.5" } } From 789dae541c73fcb3de27d0aba403dc5915fec9ef Mon Sep 17 00:00:00 2001 From: Michelle Date: Mon, 27 Apr 2026 00:50:38 +0400 Subject: [PATCH 06/13] rules: adopt git-utils plugin and remove superseded local commands Plugin setup: - Register michellepace/my-claude-marketplace in extraKnownMarketplaces - Enable git-utils@my-claude-marketplace at project scope so collaborators inherit the same workflow commands Removed local commands (now provided by the plugin): - .claude/commands/coderabbit.md - .claude/commands/commit.md - .claude/commands/merge-cleanup.md Settings tidy: - Reorder permissions block (allow, deny, ask) for consistency Docs: - Bump README Next.js version reference to 16.2.4 Centralises commit, merge-cleanup, and CodeRabbit workflows in the shared marketplace plugin, removing local copies that would drift over time. --- .claude/commands/coderabbit.md | 96 ------------------------------- .claude/commands/commit.md | 56 ------------------ .claude/commands/merge-cleanup.md | 22 ------- .claude/settings.json | 18 ++++-- README.md | 2 +- 5 files changed, 15 insertions(+), 179 deletions(-) delete mode 100644 .claude/commands/coderabbit.md delete mode 100644 .claude/commands/commit.md delete mode 100644 .claude/commands/merge-cleanup.md diff --git a/.claude/commands/coderabbit.md b/.claude/commands/coderabbit.md deleted file mode 100644 index e58a56a..0000000 --- a/.claude/commands/coderabbit.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -description: Evaluate CodeRabbit comment and recommend whether to action it -argument-hint: -allowed-tools: Read, Glob, Grep, Bash(gh api *), Bash(rm x_coderabbit_*) ---- - -## 1. Fetch - -Parse `$1` to extract owner, repo, PR number, and comment ID. - -```bash -# strips analysis chain, includes diff context -gh api repos/OWNER/REPO/pulls/comments/COMMENT_ID \ - --jq '"## Diff context\n\n```diff\n" + .diff_hunk + "\n```\n\n## Comment\n\n" + (.body | gsub("
\\s*🧩 Analysis chain[\\s\\S]*?
\\s*"; ""))' \ - > x_coderabbit_COMMENT_ID.md -``` - -**Important:** Write `x_coderabbit_COMMENT_ID.md` to the project root. - -## 2. Evaluate - -CodeRabbit AI is not always right. - -Evaluate the comment `x_coderabbit_COMMENT_ID.md` against the context of our codebase and files it references. Assess: - -| Criterion | Question | -|-----------|----------| -| **Contextually valid** | Does it make sense with full codebase context? | -| **Valuable** | Worth doing? Good practice? Or is it over-engineering? | -| **Elegant** | Is the suggested fix pragmatic and clean? | - -## 3. Recommend & Confirm - -Follow this output structure: - - -🐰 CodeRabbit Review: [Terse title for comment] - -📋 Summary: [Explain the comment, 2-4 simple sentences] - -🏷️ Verdict: [Action | Skip | Clarify] -- **Action** - Valid and valuable; implement (or with modifications) -- **Skip** - Not applicable, over-engineered, or incorrect -- **Clarify** - Need more information before deciding - -💬 Reasoning: [Why this verdict, 2-3 simple sentences] - - -**Output Format:** Well structured, use emojis, if using tables keep width <100 chars for readability. - -Ask for confirmation before proceeding with the verdict. - -## 4. Reply To CodeRabbit and Resolve - -After actioning or skipping, offer to reply to CodeRabbit **and** resolve the thread. Reply first, then resolve. Never do either without user confirmation. - - -Keep replies concise. State reason for action or skip. - -```bash -gh api repos/OWNER/REPO/pulls/PULL_NUMBER/comments \ - -f body="@coderabbitai ..." \ - -F in_reply_to=COMMENT_ID -``` - - - -Resolve thread: - -```bash -gh api graphql -f query='{ - repository(owner: "OWNER", name: "REPO") { - pullRequest(number: PULL_NUMBER) { - reviewThreads(first: 50) { - nodes { - id - comments(first: 1) { nodes { databaseId } } - } - } - } - } -}' --jq '.data.repository.pullRequest.reviewThreads.nodes[] - | select(.comments.nodes[0].databaseId == COMMENT_ID) | .id' \ -| xargs -I{} gh api graphql -f query='mutation { - resolveReviewThread(input: { threadId: "{}" }) { - thread { isResolved } - } -}' --jq '.data.resolveReviewThread.thread.isResolved' -``` - - -## 5. Wrap-up - -Clean up: `rm x_coderabbit_COMMENT_ID.md` - -State final summary, in 4-10 words and emoji. diff --git a/.claude/commands/commit.md b/.claude/commands/commit.md deleted file mode 100644 index 58032f0..0000000 --- a/.claude/commands/commit.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -description: Create git commit message following template -argument-hint: "[additional instructions]" ---- - -# Create a clear Git commit message for **staged** changes - -Additional user instructions: $ARGUMENTS - -1. Analyse staged changes with commands in `` tags -2. Read and adhere to these rules in `` tags -3. Apply commit template `