diff --git a/CHANGELOG.md b/CHANGELOG.md index 65f2a0bccf..143150673b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,12 @@ --> +## August 8, 2026 + +📢 https://mastodon.social/@cheeaun/117059654961927208 + +- 🐛 Bug fixes + ## June 22, 2026 📢 https://mastodon.social/@cheeaun/116793733342092207 diff --git a/README.md b/README.md index e8cfced78e..2f53fa0292 100644 --- a/README.md +++ b/README.md @@ -340,7 +340,9 @@ These are self-hosted by other wonderful folks. > Note: Add yours by creating a pull request. -There's also a mobile app wrapper by [@fantinel@hachyderm.io](https://hachyderm.io/@fantinel) called **iPhanpy**: https://github.com/matfantinel/iphanpy +There are also mobile app wrappers: +- **[iPhanpy](https://github.com/matfantinel/iphanpy)** by [@fantinel@hachyderm.io](https://hachyderm.io/@fantinel) (iOS) — [App Store](https://apps.apple.com/app/iphanpy-for-mastodon/id6755365082) +- **[Phandroid](https://code.umrath.dev/thoralf/Phandroid)** by [@thoralf@gruene.social](https://gruene.social/@thoralf) (Android) — [Installation](https://code.umrath.dev/thoralf/Phandroid#installation) ## Costs @@ -378,6 +380,7 @@ Costs involved in running and developing this web app: - dannypsnl (Chinese Traditional) - databio (Catalan) - detected-rage-colette (Japanese) +- dev_urandom (Esperanto) - Dizro (Italian) - Drift6944 (Czech) - drydenwu (Chinese Traditional) @@ -397,7 +400,6 @@ Costs involved in running and developing this web app: - kaliuwu (Polish) - karlafej (Czech) - kleoporte (French) -- Kweerk1223 (Portuguese, Brazilian) - Kytta (German) - llun (Thai) - lorisobi (German) @@ -415,6 +417,7 @@ Costs involved in running and developing this web app: - mojosoeun (Korean) - moreal (Korean) - MrWillCom (Chinese Simplified) +- Mvtbh (Persian) - nclm (French) - NiklasA95 (German) - Nortix08 (German) @@ -426,6 +429,7 @@ Costs involved in running and developing this web app: - radecos (French) - Razem (Czech) - realpixelcode (German) +- REMOVED_USER (Portuguese, Brazilian) - rezahosseinzadeh (Persian) - rwmpelstilzchen (Esperanto, Hebrew) - SadmL (Russian) diff --git a/package-lock.json b/package-lock.json index cf01f2f1ab..a97aa39ef3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,73 +9,74 @@ "version": "0.1.0", "hasInstallScript": true, "dependencies": { - "@formatjs/intl-localematcher": "~0.8.10", - "@formatjs/intl-segmenter": "~12.2.10", - "@formkit/auto-animate": "~0.9.0", + "@formatjs/intl-localematcher": "~0.8.13", + "@formatjs/intl-segmenter": "~12.2.13", + "@formkit/auto-animate": "~0.10.0", "@github/text-expander-element": "~2.9.4", - "@iconify-json/mingcute": "~1.2.7", + "@iconify-json/mingcute": "~1.2.8", "@justinribeiro/lite-youtube": "~1.9.0", - "@lingui/detect-locale": "~6.4.0", - "@lingui/react": "~6.4.0", + "@lingui/detect-locale": "~6.6.0", + "@lingui/react": "~6.6.0", "@szhsin/react-menu": "~4.5.2", "chroma-js": "~3.2.0", "compare-versions": "~6.1.1", - "exifreader": "~4.41.0", + "exifreader": "~4.44.0", "fast-blurhash": "~1.2.0", - "fast-equals": "~6.0.0", + "fast-equals": "~6.0.2", "flexsearch": "~0.8.212", - "fuse.js": "~7.4.2", + "fuse.js": "~7.5.0", "gifuct-js": "~2.1.2", "html-prettify": "~1.0.7", - "idb-keyval": "~6.2.6", + "idb-keyval": "~6.3.0", "intl-locale-textinfo-polyfill": "~3.0.0", "js-cookie": "~3.0.8", "just-debounce-it": "~3.2.0", "lz-string": "~1.5.0", - "masto": "~7.12.0", - "micro-memoize": "~5.1.1", - "p-queue": "~9.3.0", - "p-retry": "~8.0.0", - "preact": "10.29.3", + "masto": "~8.0.0", + "micro-memoize": "~5.1.2", + "p-queue": "~9.3.3", + "p-retry": "~8.0.1", + "preact": "10.29.8", "punycode": "~2.3.1", - "qr": "~0.6.0", + "qr": "~0.7.0", "react-hotkeys-hook": "~5.2.4", - "react-intersection-observer": "~10.0.3", + "react-intersection-observer": "~11.0.1", "react-router-dom": "6.6.2", - "react-zoom-pan-pinch": "~4.0.3", + "react-zoom-pan-pinch": "~4.1.0", "swiped-events": "~1.2.0", - "temml": "~0.13.3", + "temml": "~0.13.5", "tinyld": "~1.3.4", "toastify-js": "~1.12.0", "uid": "~2.0.2", "use-debounce": "~10.1.1", "use-long-press": "~3.3.0", - "use-resize-observer": "~9.1.0", + "use-resize-observer": "~10.0.0", "valtio": "2.3.2", "web-haptics": "~0.0.6" }, "devDependencies": { - "@emnapi/core": "~1.11.1", - "@emnapi/runtime": "~1.11.1", - "@iconify/utils": "~3.1.3", - "@lingui/babel-plugin-lingui-macro": "~6.4.0", - "@lingui/cli": "~6.4.0", - "@lingui/vite-plugin": "~6.4.0", - "@playwright/test": "~1.61.1", - "@preact/preset-vite": "~2.10.5", - "@types/node": "~26.1.0", - "oxfmt": "~0.57.0", - "postcss": "~8.5.16", + "@babel/plugin-transform-runtime": "7.29.7", + "@emnapi/core": "~1.11.3", + "@emnapi/runtime": "~1.11.3", + "@iconify/utils": "~3.1.4", + "@lingui/babel-plugin-lingui-macro": "~6.6.0", + "@lingui/cli": "~6.6.0", + "@lingui/vite-plugin": "~6.6.0", + "@playwright/test": "~1.62.1", + "@preact/preset-vite": "~2.10.6", + "@types/node": "~26.4.1", + "oxfmt": "~0.66.0", + "postcss": "~8.5.26", "postcss-dark-theme-class": "~2.0.0", - "postcss-preset-env": "~11.3.2", - "sonda": "~0.13.1", + "postcss-preset-env": "~11.5.1", + "sonda": "~0.14.0", "twitter-text": "~3.1.0", - "vite": "~8.1.2", + "vite": "~8.2.2", "vite-plugin-generate-file": "~0.3.1", "vite-plugin-html-config": "~2.0.2", "vite-plugin-pwa": "~1.3.0", "vite-plugin-remove-console": "~2.2.0", - "vite-plugin-run": "~0.9.0", + "vite-plugin-run": "~0.9.1", "workbox-cacheable-response": "~7.4.1", "workbox-expiration": "~7.4.1", "workbox-navigation-preload": "~7.4.1", @@ -133,6 +134,7 @@ "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", + "devOptional": true, "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.29.7", @@ -147,6 +149,7 @@ "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz", "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==", + "devOptional": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -156,6 +159,7 @@ "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz", "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", + "devOptional": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.29.7", @@ -186,6 +190,7 @@ "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.7.tgz", "integrity": "sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==", + "devOptional": true, "license": "MIT", "dependencies": { "@babel/parser": "^7.29.7", @@ -215,6 +220,7 @@ "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz", "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==", + "devOptional": true, "license": "MIT", "dependencies": { "@babel/compat-data": "^7.29.7", @@ -288,6 +294,7 @@ "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", + "devOptional": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -311,6 +318,7 @@ "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", + "devOptional": true, "license": "MIT", "dependencies": { "@babel/traverse": "^7.29.7", @@ -324,6 +332,7 @@ "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==", + "devOptional": true, "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.29.7", @@ -414,6 +423,7 @@ "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", + "devOptional": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -423,6 +433,7 @@ "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "devOptional": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -432,6 +443,7 @@ "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==", + "devOptional": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -456,6 +468,7 @@ "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz", "integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==", + "devOptional": true, "license": "MIT", "dependencies": { "@babel/template": "^7.29.7", @@ -469,6 +482,7 @@ "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz", "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==", + "devOptional": true, "license": "MIT", "dependencies": { "@babel/types": "^7.29.7" @@ -1403,6 +1417,41 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.29.7.tgz", + "integrity": "sha512-xmAscdE/AsqRW7vutbPNoUmu/nF5SrLKPs7aoJgEjo35lLKA/Bc0i2rMv/hr1+Y0o1bQCiVtith3u2vdgRL39Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "babel-plugin-polyfill-corejs2": "^0.4.14", + "babel-plugin-polyfill-corejs3": "^0.13.0", + "babel-plugin-polyfill-regenerator": "^0.6.5", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", + "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.5", + "core-js-compat": "^3.43.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, "node_modules/@babel/plugin-transform-shorthand-properties": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", @@ -1666,6 +1715,7 @@ "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", + "devOptional": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.29.7", @@ -1680,6 +1730,7 @@ "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.7.tgz", "integrity": "sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==", + "devOptional": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.29.7", @@ -1698,6 +1749,7 @@ "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", + "devOptional": true, "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.29.7", @@ -1743,9 +1795,9 @@ } }, "node_modules/@csstools/color-helpers": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-6.1.0.tgz", - "integrity": "sha512-064IFJdjTfUqnjpCVpMOdbr8FLQBhinbZj6yRv2An2E41O/pLEXqfFRWqGq/SxlE5PEUYTlvWsG2r8MswAVvkg==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-6.1.1.tgz", + "integrity": "sha512-gLNsunvwf3mCi5u5o46/Z/JcJMnhbHSaZ69rkgPzNM3J4s8hWwpPUQB6/tt0EDFyCiWzxANlx+2LJwpYj4zS1w==", "dev": true, "funding": [ { @@ -1763,9 +1815,9 @@ } }, "node_modules/@csstools/css-calc": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.1.tgz", - "integrity": "sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.3.0.tgz", + "integrity": "sha512-c5ihYsPkdG6JCkU2zTMm4+k6r7RXuGxtWYhu5DHMIiF1FHzrfmHL5so11AoFpUv/tu61xfcmT4AmKoFfMPoqdQ==", "dev": true, "funding": [ { @@ -1787,9 +1839,9 @@ } }, "node_modules/@csstools/css-color-parser": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.9.tgz", - "integrity": "sha512-paQcIaOO53Rk5+YrBaBjm/SgrV4INImjo2BT1DtQRYr+XeTRbeAYlS+jxXp9drqvKmtFnWRJKIalDLhZZDu42A==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.2.2.tgz", + "integrity": "sha512-3QKjR/vxyjcSXBLgb6lP0S3MGdvwbmqSsvLPbYdVORqPDc8FX1HAJ0Spk38bxaRXgvENTA47tlhhbb5Z2e8hEg==", "dev": true, "funding": [ { @@ -1803,8 +1855,8 @@ ], "license": "MIT", "dependencies": { - "@csstools/color-helpers": "^6.1.0", - "@csstools/css-calc": "^3.2.1" + "@csstools/color-helpers": "^6.1.1", + "@csstools/css-calc": "^3.3.0" }, "engines": { "node": ">=20.19.0" @@ -1882,9 +1934,9 @@ } }, "node_modules/@csstools/postcss-alpha-function": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-alpha-function/-/postcss-alpha-function-2.0.7.tgz", - "integrity": "sha512-ueQMpNJfsIUqyOd38Kjc3c7rTaXDLKn0qr9krteAFx3fsSuawXQePAQ02AI5+RbMpdibv+Mfcs4d0AUl/SULsQ==", + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@csstools/postcss-alpha-function/-/postcss-alpha-function-2.0.11.tgz", + "integrity": "sha512-Mge906VP+6eMhwIoyk78SERA8IIobryCc9YWnJzHqhXE9LQCOh3l3E987mdXONr+fiVShJQrmNSGi9pJtKRBpA==", "dev": true, "funding": [ { @@ -1898,10 +1950,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.1.9", + "@csstools/css-color-parser": "^4.2.2", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", - "@csstools/postcss-progressive-custom-properties": "^5.1.1", + "@csstools/postcss-progressive-custom-properties": "^5.1.2", "@csstools/utilities": "^3.0.0" }, "engines": { @@ -1939,9 +1991,9 @@ } }, "node_modules/@csstools/postcss-color-function": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-5.0.6.tgz", - "integrity": "sha512-CHWuCfTg7afbSFMgVajmF1WU/bJ1rGBKGCj3L3tolDXZpQG2ZCQRu10ozfk1I10By9aRqQ43FTnAiDwBnbC+Hg==", + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-5.0.10.tgz", + "integrity": "sha512-BFz0/ooO+smjh36U9dra6BgJp53aSrQIRc9y+9UglDkk4zOA1UUjdKQYkE+zYML6XV+n2JlSsONEZw1psVyCvQ==", "dev": true, "funding": [ { @@ -1955,10 +2007,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.1.9", + "@csstools/css-color-parser": "^4.2.2", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", - "@csstools/postcss-progressive-custom-properties": "^5.1.1", + "@csstools/postcss-progressive-custom-properties": "^5.1.2", "@csstools/utilities": "^3.0.0" }, "engines": { @@ -1969,9 +2021,9 @@ } }, "node_modules/@csstools/postcss-color-function-display-p3-linear": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function-display-p3-linear/-/postcss-color-function-display-p3-linear-2.0.6.tgz", - "integrity": "sha512-65C1CF/d9/ULr7dwmE5TBrRYZVa5sWLZX7mlR7WcBl1YwSYA8ntOvAhEEZmq8B2rBgosrOjZcDLnvFQuGaoRcA==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function-display-p3-linear/-/postcss-color-function-display-p3-linear-2.0.10.tgz", + "integrity": "sha512-PaXL0DhL/BKSviMXduHxQMpB/+76830nLZ+B3zVSQqaXUh1MVsyhQAqkWdX9a1IYoBL3bC/ePo7vq7EBjfMmLw==", "dev": true, "funding": [ { @@ -1985,10 +2037,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.1.9", + "@csstools/css-color-parser": "^4.2.2", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", - "@csstools/postcss-progressive-custom-properties": "^5.1.1", + "@csstools/postcss-progressive-custom-properties": "^5.1.2", "@csstools/utilities": "^3.0.0" }, "engines": { @@ -1999,9 +2051,9 @@ } }, "node_modules/@csstools/postcss-color-mix-function": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-4.0.6.tgz", - "integrity": "sha512-gWXS+Qx4GnIq4lRvBcabAcGF5IBkfcbZ7uoUvQw/3+JYDQVkD8SoKIFRoYhwKAOm+zTDJRYLMsjxWieBh9xOZw==", + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-4.0.10.tgz", + "integrity": "sha512-94vnrOalX1l9VMl6jlocEIgWwNF/CDiCo/xmBWXTvS2OE9yUa7EaCW9j1oM7UIOvmbmBU6fhkcpEyMa06+234Q==", "dev": true, "funding": [ { @@ -2015,10 +2067,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.1.9", + "@csstools/css-color-parser": "^4.2.2", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", - "@csstools/postcss-progressive-custom-properties": "^5.1.1", + "@csstools/postcss-progressive-custom-properties": "^5.1.2", "@csstools/utilities": "^3.0.0" }, "engines": { @@ -2029,9 +2081,9 @@ } }, "node_modules/@csstools/postcss-color-mix-variadic-function-arguments": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-variadic-function-arguments/-/postcss-color-mix-variadic-function-arguments-2.0.6.tgz", - "integrity": "sha512-+bL0RlSDLM/02Z2JgxMK2AIas8IIL4fQkFsjETmMIXFSmOH+iRx1YEKyMbc3SogmiR8zJ41Eid7Q8+bxj7+2Dg==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-variadic-function-arguments/-/postcss-color-mix-variadic-function-arguments-2.0.10.tgz", + "integrity": "sha512-jMukqlDTZMZGutjL1IVV5q6cMzITTIwhT0iEcM6L7wXUXj1AqVV/DK/ubSMRSYK/mrXFcEs5ExeF5S1nurjDfw==", "dev": true, "funding": [ { @@ -2045,10 +2097,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.1.9", + "@csstools/css-color-parser": "^4.2.2", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", - "@csstools/postcss-progressive-custom-properties": "^5.1.1", + "@csstools/postcss-progressive-custom-properties": "^5.1.2", "@csstools/utilities": "^3.0.0" }, "engines": { @@ -2086,9 +2138,9 @@ } }, "node_modules/@csstools/postcss-content-alt-text": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-3.0.2.tgz", - "integrity": "sha512-LUT1eKBzb71pmky0ke2OHJHdcqHl1vtl++qzJei5FioMVWDzxVApElTZsoFwbqV8Et+UmxzieOuhwomuyRullw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-3.0.3.tgz", + "integrity": "sha512-60L0Xf5De+FEXSXsJ6U95LRBZlHxthsBeefNcF1mDzxZUwplxSQnIlmTyo5DTiupkPWwi4Sl9aN80eT0SyxwMw==", "dev": true, "funding": [ { @@ -2104,7 +2156,7 @@ "dependencies": { "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", - "@csstools/postcss-progressive-custom-properties": "^5.1.1", + "@csstools/postcss-progressive-custom-properties": "^5.1.2", "@csstools/utilities": "^3.0.0" }, "engines": { @@ -2115,9 +2167,9 @@ } }, "node_modules/@csstools/postcss-contrast-color-function": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-contrast-color-function/-/postcss-contrast-color-function-3.0.6.tgz", - "integrity": "sha512-7H+LLv2+A5q/l9TdWLnLB7ZgMT92aOVImzVpYSHg9pCEHSeskbqssn05rKb+ysouRM8rbg649Q2g2kIKFqLYvQ==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@csstools/postcss-contrast-color-function/-/postcss-contrast-color-function-3.0.10.tgz", + "integrity": "sha512-HjeekhlpuLGNerTYP9ei53FeHbYDjoj2Uh84mwjZN+HXYMDdcp62qisKZ2h3k2EZ5dTKqPMU9fxXxhV7Ko4YsA==", "dev": true, "funding": [ { @@ -2131,10 +2183,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.1.9", + "@csstools/css-color-parser": "^4.2.2", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", - "@csstools/postcss-progressive-custom-properties": "^5.1.1", + "@csstools/postcss-progressive-custom-properties": "^5.1.2", "@csstools/utilities": "^3.0.0" }, "engines": { @@ -2145,9 +2197,9 @@ } }, "node_modules/@csstools/postcss-exponential-functions": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-3.0.3.tgz", - "integrity": "sha512-mB/NoeHLBHh0LZiVSrFdRDA/NxSfmg4tSN9117IJH9bdC2BzSTVgc82h3Gu/sdBXay6kDH2sA7fbkTigMiEi2A==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-3.0.4.tgz", + "integrity": "sha512-5B1606FXRwW92nHX83MR96tqIyvUusUPsU6mT7NydYiejBwqvpH7gREKbl5f+szITqNKm6Nx4m4AGdvL9zkfoA==", "dev": true, "funding": [ { @@ -2161,7 +2213,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-calc": "^3.2.1", + "@csstools/css-calc": "^3.3.0", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0" }, @@ -2172,6 +2224,29 @@ "postcss": "^8.4" } }, + "node_modules/@csstools/postcss-fit-tolerance-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-fit-tolerance-property/-/postcss-fit-tolerance-property-1.0.0.tgz", + "integrity": "sha512-eGOC0y1doDV3VWIT/LNZfnDhsYLHv9UA8ZiO/ZmiEUCh87d/IgKBZK6pwnqSjLWa9jzP2YclqzRiVEl8Vkf4iw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=20.19.0" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, "node_modules/@csstools/postcss-font-format-keywords": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-5.0.0.tgz", @@ -2226,9 +2301,9 @@ } }, "node_modules/@csstools/postcss-gamut-mapping": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-3.0.6.tgz", - "integrity": "sha512-lopCMFvN6ohy33lLmOY46matUrpL1ymVGOyebflzMb44pXoGy+f27glXCXz0PfQmfv8On3a8eVTIQfkX7nf6gQ==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-3.0.10.tgz", + "integrity": "sha512-zgYoHUZQ9/JrSBc4VL2CKcu4KOKzr+hfKhIp++lWhyIjyicDfpAqY2LcPKqPM5Wk2eFO4umwHKQd0V42O8dw1g==", "dev": true, "funding": [ { @@ -2242,7 +2317,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.1.9", + "@csstools/css-color-parser": "^4.2.2", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0" }, @@ -2254,9 +2329,9 @@ } }, "node_modules/@csstools/postcss-gradients-interpolation-method": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-6.0.6.tgz", - "integrity": "sha512-n23eZrwg8/XT6Ml42AAMd1PqRSm1LlrcGL+cbflpjL84xVZcWsXtHeKVzufg2uxICGnB4/t/iGa4XnOfySusEA==", + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-6.0.10.tgz", + "integrity": "sha512-ZsOU16NeyEHNwOIJfn62Po2xpg1X8ccKT94W0FlUVN8Qs2DpsLM9zKFq0ynAVMs5duf91vyvD8mMxGwAmoZLPA==", "dev": true, "funding": [ { @@ -2270,10 +2345,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.1.9", + "@csstools/css-color-parser": "^4.2.2", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", - "@csstools/postcss-progressive-custom-properties": "^5.1.1", + "@csstools/postcss-progressive-custom-properties": "^5.1.2", "@csstools/utilities": "^3.0.0" }, "engines": { @@ -2284,9 +2359,9 @@ } }, "node_modules/@csstools/postcss-hwb-function": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-5.0.6.tgz", - "integrity": "sha512-KO1PBdiyzsxVOnripQbdMF8jXlBym3CtwEWHGQWfjRB2Q7BIU6sE9GGv2OrgG3TyqPOz5BgAwackYlYlVeHWvA==", + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-5.0.10.tgz", + "integrity": "sha512-rXwzNfAshgW8uK/NBCPHGZ75MPj+4DhEviuZH3BtBblU4yno0dDkQxc3V+TT/qF/n4PUy+SmChaUcjJUNjsPVw==", "dev": true, "funding": [ { @@ -2300,10 +2375,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.1.9", + "@csstools/css-color-parser": "^4.2.2", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", - "@csstools/postcss-progressive-custom-properties": "^5.1.1", + "@csstools/postcss-progressive-custom-properties": "^5.1.2", "@csstools/utilities": "^3.0.0" }, "engines": { @@ -2314,9 +2389,9 @@ } }, "node_modules/@csstools/postcss-ic-unit": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-5.0.2.tgz", - "integrity": "sha512-1Wcp0ACoGKImCL9mYm6EIdqtT2JuJoeFp/06Efa6pRT0y3elLgF3jYer+c3+qUoBhV/2uDKtfWrCwAkHJ0CB9w==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-5.0.3.tgz", + "integrity": "sha512-LkyT+OUkEJPL9bBbLDwM/Jhwy8iI38wgqYe2pyAVTLDmtJlHaOsiGg8fPL6mE/o/Vxoesr44j5OknrCFPnojTw==", "dev": true, "funding": [ { @@ -2330,7 +2405,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^5.1.1", + "@csstools/postcss-progressive-custom-properties": "^5.1.2", "@csstools/utilities": "^3.0.0", "postcss-value-parser": "^4.2.0" }, @@ -2342,9 +2417,9 @@ } }, "node_modules/@csstools/postcss-image-function": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-image-function/-/postcss-image-function-1.0.1.tgz", - "integrity": "sha512-6V7+8npoBxVgO3JbIdKqI6eo1NAIQtO0oNSfLSgH439WYB43/kM+GneG4elkgglRo1ppgVhjXxmNqhI+K4pEzg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-image-function/-/postcss-image-function-1.0.2.tgz", + "integrity": "sha512-P6y1oL5tBnJRitYe4FmHnW4zoDd5grCFWOnEsTkfAXhTJCy+lZ1wqUuluDIT2JYnhwKrOcyBmWEN/qFB9SlGHQ==", "dev": true, "funding": [ { @@ -2360,7 +2435,7 @@ "dependencies": { "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", - "@csstools/postcss-progressive-custom-properties": "^5.1.1", + "@csstools/postcss-progressive-custom-properties": "^5.1.2", "@csstools/utilities": "^3.0.0" }, "engines": { @@ -2421,9 +2496,9 @@ } }, "node_modules/@csstools/postcss-light-dark-function": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-3.0.2.tgz", - "integrity": "sha512-Fu6si5QhRrT5lP7nmXxfowR8zNkYrqoolsWOZxPZBZpVTdoEKazN6v+K53vPcy1EM4Mlj6tSaEjMu4gAwC8yqw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-3.0.3.tgz", + "integrity": "sha512-5P5Y3q0cRNSYh662IJCuzNY/25WKzMGPMpL5f7PQcoNEH6OD9J1lAAK0DakLiopwnJ3dD1Qe2vkC8Yl2GUrZOQ==", "dev": true, "funding": [ { @@ -2439,7 +2514,7 @@ "dependencies": { "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", - "@csstools/postcss-progressive-custom-properties": "^5.1.1", + "@csstools/postcss-progressive-custom-properties": "^5.1.2", "@csstools/utilities": "^3.0.0" }, "engines": { @@ -2572,9 +2647,9 @@ } }, "node_modules/@csstools/postcss-media-minmax": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-3.0.3.tgz", - "integrity": "sha512-ch1tNS+1QayiHTGsyc53zv3AzrSd0zigjbkfLxoeuzzJyn32+P3V7em3u5vLVnqLMzBbEZK//GI13EVTIPRdDA==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-3.0.4.tgz", + "integrity": "sha512-f3V1TsBXGR/TamldN75OMKSVKxvlqvEatn2ipiir/4KTNpB4x5+AsYc3OTtpH6nJQOEHP9n+d3y0k78MRt+SLQ==", "dev": true, "funding": [ { @@ -2588,7 +2663,7 @@ ], "license": "MIT", "dependencies": { - "@csstools/css-calc": "^3.2.1", + "@csstools/css-calc": "^3.3.0", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", "@csstools/media-query-list-parser": "^5.0.0" @@ -2709,9 +2784,9 @@ } }, "node_modules/@csstools/postcss-oklab-function": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-5.0.6.tgz", - "integrity": "sha512-6yZ+OySSaBybv12OfgKFBgCK1Se2mBbhh9eIDbUdWGHJUXZPQoLbtPj8S6Wg0lqe0nTqKgY/l8Ir9lHrm2TUBQ==", + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-5.0.10.tgz", + "integrity": "sha512-cluZAdQNg/ir3mAtqHbjd48KGroD1+Pow7mmDMFuYk1sZ0exm8gnLEavS8scBT5+7MIWW+FK9kW5jtzT4nG8Zw==", "dev": true, "funding": [ { @@ -2725,10 +2800,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.1.9", + "@csstools/css-color-parser": "^4.2.2", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", - "@csstools/postcss-progressive-custom-properties": "^5.1.1", + "@csstools/postcss-progressive-custom-properties": "^5.1.2", "@csstools/utilities": "^3.0.0" }, "engines": { @@ -2762,9 +2837,9 @@ } }, "node_modules/@csstools/postcss-progressive-custom-properties": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-5.1.1.tgz", - "integrity": "sha512-b9+lusgVDTHXRBgYKE9s0RKUyEn6Q/knmMDmYmSrkZjtpb0Nd71pBtgVMf9tSpOIb0K8hyzeyy6JyKFqg5rBJw==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-5.1.2.tgz", + "integrity": "sha512-aGHhh/haanBUxYTqr+mXC52iCNuG/p68CSqz3aoQyqSAgwyxNQGofFYwWo7sd8iQUS8BDoQ/khkPb4ymGyt3aw==", "dev": true, "funding": [ { @@ -2787,6 +2862,29 @@ "postcss": "^8.4" } }, + "node_modules/@csstools/postcss-property-rule-optional-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-property-rule-optional-descriptors/-/postcss-property-rule-optional-descriptors-1.0.0.tgz", + "integrity": "sha512-oPFzJF1R8bbFRYVcGKHFbHjhKUP2unw4tkTTlpa3E1aCI+XUr/4h6vwdWOegkyxPb9v0vk9tixIL+Npyx1L0qA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=20.19.0" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, "node_modules/@csstools/postcss-property-rule-prelude-list": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@csstools/postcss-property-rule-prelude-list/-/postcss-property-rule-prelude-list-2.0.0.tgz", @@ -2815,9 +2913,9 @@ } }, "node_modules/@csstools/postcss-random-function": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@csstools/postcss-random-function/-/postcss-random-function-3.0.3.tgz", - "integrity": "sha512-0EScyKxscGonwpi30Hj9DEAr0X8D2eDhOqqayQXE91gIqGli9UT+deLYqoogZLOy5GT+ncqltMqztc/q+0UkhA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-random-function/-/postcss-random-function-4.0.0.tgz", + "integrity": "sha512-tuPgeglK6Fh0bKstx4sSa4V6NG69ioUtSzcy3R7z5ZbJdKVfU9TqUBfpmT4JnfXfBdbs8vKOnPN04iT4/gkSKQ==", "dev": true, "funding": [ { @@ -2831,7 +2929,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-calc": "^3.2.1", + "@csstools/css-calc": "^3.3.0", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0" }, @@ -2843,9 +2941,9 @@ } }, "node_modules/@csstools/postcss-relative-color-syntax": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-4.0.6.tgz", - "integrity": "sha512-4SUC+qfJE/8sV62oo/fcxNKSBgiSVqE8c7f9TBwvNY3WnD0YHJyEM3eIjXn1CxbMNl7gR6uBVuLuJB3xgr/O1w==", + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-4.0.10.tgz", + "integrity": "sha512-YFKGAzcwEggQNnstX4gNIf+stsMQH8RxBlSt6EWpgbF55BL/+8bUXMKhMT7bffiUddqUMTpMTMxsIAImSHV9xg==", "dev": true, "funding": [ { @@ -2859,10 +2957,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.1.9", + "@csstools/css-color-parser": "^4.2.2", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", - "@csstools/postcss-progressive-custom-properties": "^5.1.1", + "@csstools/postcss-progressive-custom-properties": "^5.1.2", "@csstools/utilities": "^3.0.0" }, "engines": { @@ -2899,9 +2997,9 @@ } }, "node_modules/@csstools/postcss-sign-functions": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@csstools/postcss-sign-functions/-/postcss-sign-functions-2.0.3.tgz", - "integrity": "sha512-2BCPwlpeQweTC/8S8oQFYhYD5kxYkiroLf3AUJV2kVoKkSZ+4WM4rSwySXlKrqXL8HfCryAwVrJg7B0jr/RnOw==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@csstools/postcss-sign-functions/-/postcss-sign-functions-2.0.4.tgz", + "integrity": "sha512-vHfgUnPoKNF687H7ycoisAvoFYBq71X90N7pHclouRUUwZRea8XIJVo+Cq0jgRJEzv9vx+X7XEl+arTqns/C/A==", "dev": true, "funding": [ { @@ -2915,7 +3013,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-calc": "^3.2.1", + "@csstools/css-calc": "^3.3.0", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0" }, @@ -2927,9 +3025,9 @@ } }, "node_modules/@csstools/postcss-stepped-value-functions": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-5.0.3.tgz", - "integrity": "sha512-nXMFQBz5Pi2LLG02iqm2k+scrqwtqJT9ta/gN8S79oBZ23M0E7O3wDJ20//3z5Q6HU5e+K0n+SmmxN6iWtbm6w==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-5.0.4.tgz", + "integrity": "sha512-Wpgrsx1spMx4fJnTs/I6vZyKjw0Jf3RmScRb53RQtXBMHsJEXM1/YmtQ/4vRBpiYyrSrUgvoKaGJCl8p51zQFQ==", "dev": true, "funding": [ { @@ -2943,7 +3041,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-calc": "^3.2.1", + "@csstools/css-calc": "^3.3.0", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0" }, @@ -3008,9 +3106,9 @@ } }, "node_modules/@csstools/postcss-text-decoration-shorthand": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-5.0.4.tgz", - "integrity": "sha512-LHQL1a0CW0j3oBEivwgp1Gqv+VUppWpEyedM9GBzE6yIT6tnZqY9v0ADX1jO6IptTZTdrnBwM+dveDIuUP+pTA==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-5.0.5.tgz", + "integrity": "sha512-BIpgsIO72M/ioe0LfRcqYWi/Dm+ym8RRaQMVRdEKrad4Yqql+xFdqKaUjbOHWL8jpsmiZkbi/fXQdal1HlnjAQ==", "dev": true, "funding": [ { @@ -3024,7 +3122,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/color-helpers": "^6.1.0", + "@csstools/color-helpers": "^6.1.1", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -3035,9 +3133,9 @@ } }, "node_modules/@csstools/postcss-trigonometric-functions": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-5.0.3.tgz", - "integrity": "sha512-p9LTvLj+DFpl5RHbG/X9QGwg7BoMOBsRBZqsUAKKVvCw7MRCsk1P1llTUR/MW5nyZ4IsjFGDtDwTTj1reJjxvg==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-5.0.4.tgz", + "integrity": "sha512-0fC7JEKkC0abryfLVZrYVQyhWqfkaq4qsaSeK+Zy/q2abna0bOuPwV+zO9vu3B6+0pHMf5rEgwcPDiOZAp8UGA==", "dev": true, "funding": [ { @@ -3051,7 +3149,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-calc": "^3.2.1", + "@csstools/css-calc": "^3.3.0", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0" }, @@ -3086,9 +3184,9 @@ } }, "node_modules/@csstools/selector-resolve-nested": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-4.0.0.tgz", - "integrity": "sha512-9vAPxmp+Dx3wQBIUwc1v7Mdisw1kbbaGqXUM8QLTgWg7SoPGYtXBsMXvsFs/0Bn5yoFhcktzxNZGNaUt0VjgjA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-4.0.1.tgz", + "integrity": "sha512-j3vdQu0XwLME5qOTWxm8cnmvsf423R2YL6DbKklCHZwkDm7UdKNu6RPlw4REIJhSlKBICY3B70/7QZdicLqZgg==", "dev": true, "funding": [ { @@ -3155,20 +3253,20 @@ } }, "node_modules/@emnapi/core": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz", - "integrity": "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==", + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.3.tgz", + "integrity": "sha512-zLpS5asjEb7lq8jYLq37N6XKaE41DIexlY1rF/z4/tIl3wo13Sqm28fRyfIsKZD+NZ8mM5RoKkpW/rBcuoSZSg==", "dev": true, "license": "MIT", "dependencies": { - "@emnapi/wasi-threads": "1.2.2", + "@emnapi/wasi-threads": "1.2.3", "tslib": "^2.4.0" } }, "node_modules/@emnapi/runtime": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz", - "integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==", + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.3.tgz", + "integrity": "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==", "dev": true, "license": "MIT", "dependencies": { @@ -3176,9 +3274,9 @@ } }, "node_modules/@emnapi/wasi-threads": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz", - "integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.3.tgz", + "integrity": "sha512-ELEBe8PsLvvJ6QMr0zLt8ffvOHW/dc1m3CEzNMg7aJUv3bMaoDtw2TXyDAwkYBuroxxuHEwhRTLJSe5sya547g==", "dev": true, "license": "MIT", "dependencies": { @@ -3186,33 +3284,33 @@ } }, "node_modules/@formatjs/fast-memoize": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-3.1.6.tgz", - "integrity": "sha512-H5aexk1Le7T9TPmscacZ+1pR6CTa2n1wq+HDVGXhH8TzUlQQpeXzZs91dRtmFHrbeNbjPFPfQujUqm7MHgVoXQ==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-3.1.7.tgz", + "integrity": "sha512-zXfhLpvA6T7+efdt9JLbBwZ00tT7NsBMDVnDu8rpHeNNv8KfRZAMo2gkG0k9lK/Nzc//3kJ9pImsfuJxk3KhUA==", "license": "MIT" }, "node_modules/@formatjs/intl-localematcher": { - "version": "0.8.10", - "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.8.10.tgz", - "integrity": "sha512-P/IC3qws3jH+1fEs+o0RIFgXKRaQlFehjS5W0FPAqdo6hgzawLl+eD0q0JjheQ3XtoOe5n8WSYfX06KQZI/QJA==", + "version": "0.8.13", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.8.13.tgz", + "integrity": "sha512-kHEAFOkeJSPNi7c5PaKaRjxcBrJwzzt81ifUu+8uve1EDW/VJl83KsxmqgqNZLzcFEhSliZGvx3+pk/RH0IOmg==", "license": "MIT", "dependencies": { - "@formatjs/fast-memoize": "3.1.6" + "@formatjs/fast-memoize": "3.1.7" } }, "node_modules/@formatjs/intl-segmenter": { - "version": "12.2.10", - "resolved": "https://registry.npmjs.org/@formatjs/intl-segmenter/-/intl-segmenter-12.2.10.tgz", - "integrity": "sha512-GjzmeSuSgvLMOfte87TgmdfrmSdE6HYmZRvqzMteUMQJHyD61ejPFa7T+oGnruX9kCAqMjPNMrsaMIk1hcvQbg==", + "version": "12.2.13", + "resolved": "https://registry.npmjs.org/@formatjs/intl-segmenter/-/intl-segmenter-12.2.13.tgz", + "integrity": "sha512-jhxNn6FnvlIOYzn+VG4xRjcLRrLHlDGoRd723YuwdsNHZRvvcC4qvnh5xC5udSv0CiwbBKnPY3OzDNni2NxqIw==", "license": "MIT", "dependencies": { - "@formatjs/intl-localematcher": "0.8.10" + "@formatjs/intl-localematcher": "0.8.13" } }, "node_modules/@formkit/auto-animate": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@formkit/auto-animate/-/auto-animate-0.9.0.tgz", - "integrity": "sha512-VhP4zEAacXS3dfTpJpJ88QdLqMTcabMg0jwpOSxZ/VzfQVfl3GkZSCZThhGC5uhq/TxPHPzW0dzr4H9Bb1OgKA==", + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@formkit/auto-animate/-/auto-animate-0.10.0.tgz", + "integrity": "sha512-KGomRttjUfORuPUaR/ZGQw+6xfMrTM+sxnILv7JAd9AmabU9rg9i6gF/iC0Ih+QpKCubJpCA/1DX9UHKE8cX+A==", "license": "MIT" }, "node_modules/@github/combobox-nav": { @@ -3232,9 +3330,9 @@ } }, "node_modules/@iconify-json/mingcute": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@iconify-json/mingcute/-/mingcute-1.2.7.tgz", - "integrity": "sha512-bp4z6F53KAQp99aSL7qPCHL7HWUNGMNKIhfo/dx9pwVHiad/WusUbTOFXEZfpA44syJPzSOxa3O6Pwiq7qZz1g==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@iconify-json/mingcute/-/mingcute-1.2.8.tgz", + "integrity": "sha512-J8VXpRwTpx5yzOzyhx3T4IXnfXIKTWFl3rZ9okcW4c+NMMuwkLvdmM4rkjB83tnYIhg5+kkeMpmw8tvSnxd4rQ==", "license": "Apache-2.0", "dependencies": { "@iconify/types": "*" @@ -3247,9 +3345,9 @@ "license": "MIT" }, "node_modules/@iconify/utils": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-3.1.3.tgz", - "integrity": "sha512-LPKOXPn/zV+zis1oOfGWogaXVpqUybF3ZS6SCZIsz8vg0ivVp9+fVqyYB7xq0aiST/VhUQYGO1qo6uoYSiEJqw==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-3.1.4.tgz", + "integrity": "sha512-b1S7B1k9ohZ+iNTi2ATxbRYG9fTrJmUT0rc46bvVnNxqNRGW7dyo/vRREwyniI5IRN2RSJHDcm+s3BjWrSAjHw==", "dev": true, "license": "MIT", "dependencies": { @@ -3298,626 +3396,162 @@ } }, "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==", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "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==", - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "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==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.11", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", - "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" - } - }, - "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==", - "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==", - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@juggle/resize-observer": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz", - "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==", - "license": "Apache-2.0" - }, - "node_modules/@justinribeiro/lite-youtube": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@justinribeiro/lite-youtube/-/lite-youtube-1.9.0.tgz", - "integrity": "sha512-+VZutWCVEpXNGR00ch/8g8snexv5q8zN0NCJWrXdRBYQe0Oel1HKDl9BVEM7FzZbf/IWPGIdWs4WcGMxXITFKA==", - "license": "MIT" - }, - "node_modules/@lingui/babel-plugin-extract-messages": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@lingui/babel-plugin-extract-messages/-/babel-plugin-extract-messages-6.4.0.tgz", - "integrity": "sha512-b9NatQFU1h0muPCC0QGdSVKE/OEdR4w9FQrKAOFYwH0eF7pD2ArafqyqG6xsw2E+7w4PlZQjzOhihQMxI8a6sA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@lingui/conf": "6.4.0" - }, - "engines": { - "node": ">=22.19.0" - } - }, - "node_modules/@lingui/babel-plugin-lingui-macro": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@lingui/babel-plugin-lingui-macro/-/babel-plugin-lingui-macro-6.4.0.tgz", - "integrity": "sha512-V15kARtjzWgLga/6LOTMMki5pv3F42m9BX8jdI1mBg4yCo1cS0B3szfoBqoveFs7x+nh0iuEPAKcM9lVdSYadw==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.20.12", - "@babel/types": "^7.20.7", - "@lingui/conf": "6.4.0", - "@lingui/message-utils": "6.4.0" - }, - "engines": { - "node": ">=22.19.0" - } - }, - "node_modules/@lingui/cli": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@lingui/cli/-/cli-6.4.0.tgz", - "integrity": "sha512-OqtEPHFmgQlyroQMmpnda6QRnfAqlAYnRVZpZSX3rZpwwaHI1pD7T1EQoK8n7kin9TGhitc1J33wFom7o/+yyg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.21.0", - "@babel/generator": "^7.28.5", - "@babel/parser": "^7.22.0", - "@babel/types": "^7.21.2", - "@lingui/babel-plugin-extract-messages": "6.4.0", - "@lingui/babel-plugin-lingui-macro": "6.4.0", - "@lingui/conf": "6.4.0", - "@lingui/core": "6.4.0", - "@lingui/format-po": "6.4.0", - "@lingui/message-utils": "6.4.0", - "chokidar": "5.0.0", - "cli-table3": "^0.6.5", - "commander": "^14.0.2", - "esbuild": "^0.25.1", - "jiti": "^2.6.1", - "micromatch": "^4.0.7", - "ms": "^2.1.3", - "normalize-path": "^3.0.0", - "ora": "^9.1.0", - "pseudolocale": "^2.2.0", - "source-map": "^0.7.6", - "tinypool": "^2.1.0" - }, - "bin": { - "lingui": "dist/lingui.js" - }, - "engines": { - "node": ">=22.19.0" - } - }, - "node_modules/@lingui/cli/node_modules/@esbuild/aix-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", - "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@lingui/cli/node_modules/@esbuild/android-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", - "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@lingui/cli/node_modules/@esbuild/android-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", - "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@lingui/cli/node_modules/@esbuild/android-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", - "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@lingui/cli/node_modules/@esbuild/darwin-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", - "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@lingui/cli/node_modules/@esbuild/darwin-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", - "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@lingui/cli/node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", - "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@lingui/cli/node_modules/@esbuild/freebsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", - "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@lingui/cli/node_modules/@esbuild/linux-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", - "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@lingui/cli/node_modules/@esbuild/linux-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", - "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@lingui/cli/node_modules/@esbuild/linux-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", - "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@lingui/cli/node_modules/@esbuild/linux-loong64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", - "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@lingui/cli/node_modules/@esbuild/linux-mips64el": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", - "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@lingui/cli/node_modules/@esbuild/linux-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", - "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@lingui/cli/node_modules/@esbuild/linux-riscv64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", - "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@lingui/cli/node_modules/@esbuild/linux-s390x": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", - "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@lingui/cli/node_modules/@esbuild/linux-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", - "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@lingui/cli/node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", - "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@lingui/cli/node_modules/@esbuild/netbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", - "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@lingui/cli/node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", - "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" + "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==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" } }, - "node_modules/@lingui/cli/node_modules/@esbuild/openbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", - "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", - "cpu": [ - "x64" - ], - "dev": true, + "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==", + "devOptional": true, "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" } }, - "node_modules/@lingui/cli/node_modules/@esbuild/openharmony-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", - "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", - "cpu": [ - "arm64" - ], - "dev": true, + "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==", + "devOptional": true, "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], "engines": { - "node": ">=18" + "node": ">=6.0.0" } }, - "node_modules/@lingui/cli/node_modules/@esbuild/sunos-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", - "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", - "cpu": [ - "x64" - ], + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" } }, - "node_modules/@lingui/cli/node_modules/@esbuild/win32-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", - "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", - "cpu": [ - "arm64" - ], - "dev": true, + "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==", + "devOptional": 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==", + "devOptional": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@lingui/cli/node_modules/@esbuild/win32-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", - "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", - "cpu": [ - "ia32" - ], + "node_modules/@justinribeiro/lite-youtube": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@justinribeiro/lite-youtube/-/lite-youtube-1.9.0.tgz", + "integrity": "sha512-+VZutWCVEpXNGR00ch/8g8snexv5q8zN0NCJWrXdRBYQe0Oel1HKDl9BVEM7FzZbf/IWPGIdWs4WcGMxXITFKA==", + "license": "MIT" + }, + "node_modules/@lingui/babel-plugin-extract-messages": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@lingui/babel-plugin-extract-messages/-/babel-plugin-extract-messages-6.6.0.tgz", + "integrity": "sha512-QfCS4SjZYvVZFaiF44e/mLsdzCqQvRSGoVJWkb8nc51FkNpOZkwFLiwLtRnWgvm0ce7GeG51czMsG7RFPPCXqw==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ], + "dependencies": { + "@lingui/conf": "6.6.0" + }, "engines": { - "node": ">=18" + "node": ">=22.19.0" } }, - "node_modules/@lingui/cli/node_modules/@esbuild/win32-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", - "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", - "cpu": [ - "x64" - ], - "dev": true, + "node_modules/@lingui/babel-plugin-lingui-macro": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@lingui/babel-plugin-lingui-macro/-/babel-plugin-lingui-macro-6.6.0.tgz", + "integrity": "sha512-FEBrnIx66lAeD9LGueRIen8IEj+aT7bDaMVmPNIITQNBCm2iC4mNcUtEV1/rAaVpfKKnh5uTdQowWmddB2D7iw==", "license": "MIT", - "optional": true, - "os": [ - "win32" - ], + "dependencies": { + "@lingui/conf": "6.6.0", + "@lingui/message-utils": "6.6.0" + }, "engines": { - "node": ">=18" + "node": ">=22.19.0" + }, + "peerDependencies": { + "@babel/core": "^7.20.12 || ^8.0.0", + "@babel/types": "^7.20.7 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@babel/types": { + "optional": true + } } }, - "node_modules/@lingui/cli/node_modules/esbuild": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", - "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "node_modules/@lingui/cli": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@lingui/cli/-/cli-6.6.0.tgz", + "integrity": "sha512-XtsWns8/m5Rtj+Gwr9j3SqPTk9bVztAbdJ6cbDG2qDFwSpGiXLxqxhqbam4cywjlxYMudsyNQ7E6DPPSgL4x8Q==", "dev": true, - "hasInstallScript": true, "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.0", + "@babel/generator": "^7.28.5", + "@babel/parser": "^7.22.0", + "@babel/types": "^7.21.2", + "@lingui/babel-plugin-extract-messages": "6.6.0", + "@lingui/babel-plugin-lingui-macro": "6.6.0", + "@lingui/conf": "6.6.0", + "@lingui/core": "6.6.0", + "@lingui/format-po": "6.6.0", + "@lingui/message-utils": "6.6.0", + "chokidar": "5.0.0", + "cli-table3": "^0.6.5", + "commander": "^14.0.2", + "jiti": "^2.6.1", + "micromatch": "^4.0.7", + "ms": "^2.1.3", + "normalize-path": "^3.0.0", + "ora": "^9.1.0", + "pseudolocale": "^2.2.0", + "source-map": "^0.7.6", + "tinypool": "^2.1.0" + }, "bin": { - "esbuild": "bin/esbuild" + "lingui": "dist/lingui.js" }, "engines": { - "node": ">=18" + "node": ">=22.19.0" }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.12", - "@esbuild/android-arm": "0.25.12", - "@esbuild/android-arm64": "0.25.12", - "@esbuild/android-x64": "0.25.12", - "@esbuild/darwin-arm64": "0.25.12", - "@esbuild/darwin-x64": "0.25.12", - "@esbuild/freebsd-arm64": "0.25.12", - "@esbuild/freebsd-x64": "0.25.12", - "@esbuild/linux-arm": "0.25.12", - "@esbuild/linux-arm64": "0.25.12", - "@esbuild/linux-ia32": "0.25.12", - "@esbuild/linux-loong64": "0.25.12", - "@esbuild/linux-mips64el": "0.25.12", - "@esbuild/linux-ppc64": "0.25.12", - "@esbuild/linux-riscv64": "0.25.12", - "@esbuild/linux-s390x": "0.25.12", - "@esbuild/linux-x64": "0.25.12", - "@esbuild/netbsd-arm64": "0.25.12", - "@esbuild/netbsd-x64": "0.25.12", - "@esbuild/openbsd-arm64": "0.25.12", - "@esbuild/openbsd-x64": "0.25.12", - "@esbuild/openharmony-arm64": "0.25.12", - "@esbuild/sunos-x64": "0.25.12", - "@esbuild/win32-arm64": "0.25.12", - "@esbuild/win32-ia32": "0.25.12", - "@esbuild/win32-x64": "0.25.12" + "peerDependencies": { + "esbuild": "^0.28.1", + "rolldown": "^1.0.0" + }, + "peerDependenciesMeta": { + "esbuild": { + "optional": true + }, + "rolldown": { + "optional": true + } } }, "node_modules/@lingui/conf": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@lingui/conf/-/conf-6.4.0.tgz", - "integrity": "sha512-C+THkLbda72//6dL7QAVyaxIxOnag8mGWKqrMsyIUHgZpStE05KiF8HDwTCMNiaeQmQPym/D8fVm7m8jCau3EA==", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@lingui/conf/-/conf-6.6.0.tgz", + "integrity": "sha512-4NUxQh6VXZSBocAKATuJJ6+dOF/M3OTd5WtbND7eSi5tZtVKF0qFMcKFfx8aiUJFo+KP/wYnBBiDPvPLkJvqcA==", "license": "MIT", "dependencies": { "jest-validate": "^29.4.3", @@ -3930,13 +3564,13 @@ } }, "node_modules/@lingui/core": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@lingui/core/-/core-6.4.0.tgz", - "integrity": "sha512-DVbgp9tn07t3iByH6snsn1WaM8PxjDacOqf45oLVXyIti98PmXadO2UkO+NgCybHSqm3+7GGV4zTr4777Cc9nA==", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@lingui/core/-/core-6.6.0.tgz", + "integrity": "sha512-vqL7LkU2iDAHcaHYzFGbdYovHLdHamG0Zh7r5F9O7C1J1sEPZSMQfkddk2FFeSZHy5j7Na7hzIGGJTZutgiZRg==", "license": "MIT", "dependencies": { - "@lingui/babel-plugin-lingui-macro": "6.4.0", - "@lingui/message-utils": "6.4.0" + "@lingui/babel-plugin-lingui-macro": "6.6.0", + "@lingui/message-utils": "6.6.0" }, "engines": { "node": ">=22.19.0" @@ -3951,23 +3585,23 @@ } }, "node_modules/@lingui/detect-locale": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@lingui/detect-locale/-/detect-locale-6.4.0.tgz", - "integrity": "sha512-cj2J8k9PwlbnyZfZ3YN1B+dPJMcQ7AK3MlAw8QDezrVlq5lWESudLClpNjpDF1jqf7H3aWF5rhMPCT8DO5uMNQ==", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@lingui/detect-locale/-/detect-locale-6.6.0.tgz", + "integrity": "sha512-QUplAyyZZh3LD3vycCV7eFxTsq2LI8T9n9kBRJXfYpjhzyjptK0WIzewEzStDLL2X39wNc6cAlmymjFE9Arwtg==", "license": "MIT", "engines": { "node": ">=22.19.0" } }, "node_modules/@lingui/format-po": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@lingui/format-po/-/format-po-6.4.0.tgz", - "integrity": "sha512-tu5aNalW9u+xjmcAlNEjfw4ahzMHFeC4nKz+zYHcv44Drpy9/bWnrr5j7Pi4rc9u4PILtXikwAsLh28u284WiA==", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@lingui/format-po/-/format-po-6.6.0.tgz", + "integrity": "sha512-vOUYBYC+81Gl/tJWqEMM2ah+W06M3zWjb78qNwRtl3UhNhoDbduZpNayDQ7RoEA9NtxNQ75Fx7946+0GPnHy7Q==", "dev": true, "license": "MIT", "dependencies": { - "@lingui/conf": "6.4.0", - "@lingui/message-utils": "6.4.0", + "@lingui/conf": "6.6.0", + "@lingui/message-utils": "6.6.0", "pofile-ts": "^4.0.3" }, "engines": { @@ -3975,9 +3609,9 @@ } }, "node_modules/@lingui/message-utils": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@lingui/message-utils/-/message-utils-6.4.0.tgz", - "integrity": "sha512-Bkt2V7vI57/CEVyJCO+93jssN2MhLJ07M6S0d16tHvigNftP5Ndl+2xX1HKWD6eozidc5lOeTZMtrEL9jzXEsg==", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@lingui/message-utils/-/message-utils-6.6.0.tgz", + "integrity": "sha512-XkEcuMjIUjq7KZfTe83jP6UWQvKskpae/Ve7E8M8HEJ3TujHIPLzKn/quEmot6pKRtGwYxQzktGRfs2sPcZaqg==", "license": "MIT", "dependencies": { "@messageformat/date-skeleton": "^1.1.0", @@ -3989,13 +3623,14 @@ } }, "node_modules/@lingui/react": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@lingui/react/-/react-6.4.0.tgz", - "integrity": "sha512-9ui7O/K/X+AXN7TdSEbKq//sNLAJ42dk1GftzAcHL58jKv3CnEyKOPJb2S0L/Ez6li8I0O4KKgRn1BK0Qk/Jqg==", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@lingui/react/-/react-6.6.0.tgz", + "integrity": "sha512-oRZvm8nx47wQB7Y4tQ4K78Ba0Ta0wJLRpT7125zW3J1wq++hMfc9XMqemCau2IDVtCMHGHdlLPiBeyFSIq/0Rw==", "license": "MIT", "dependencies": { - "@lingui/babel-plugin-lingui-macro": "6.4.0", - "@lingui/core": "6.4.0" + "@lingui/babel-plugin-lingui-macro": "6.6.0", + "@lingui/core": "6.6.0", + "use-sync-external-store": "^1.6.0" }, "engines": { "node": ">=22.19.0" @@ -4011,20 +3646,20 @@ } }, "node_modules/@lingui/vite-plugin": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@lingui/vite-plugin/-/vite-plugin-6.4.0.tgz", - "integrity": "sha512-15ogZWydII5TbWwTJJGfJF9OpATxiIbJGearfBv+tj13uv3TlKwLGdmpn/GV8COY8v0irKr7dfdyfxYvxLxSZQ==", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@lingui/vite-plugin/-/vite-plugin-6.6.0.tgz", + "integrity": "sha512-1kZMeGNk5hYQzrEPA3RcXQKb106VC26GqxpXpjVIhS4r2sT4c4gztk70T65VSwyZ7Uyc1pIpXxys3uY2DTfHKw==", "dev": true, "license": "MIT", "dependencies": { - "@lingui/cli": "6.4.0", - "@lingui/conf": "6.4.0" + "@lingui/cli": "6.6.0", + "@lingui/conf": "6.6.0" }, "engines": { "node": ">=22.19.0" }, "peerDependencies": { - "@babel/core": "^7.29.0 || ^8.0.0-rc.1", + "@babel/core": "^7.29.0 || ^8.0.0", "@lingui/babel-plugin-lingui-macro": "^5 || ^6", "@rolldown/plugin-babel": "^0.1.7 || ^0.2.0", "rolldown": "^1.0.0-rc.5", @@ -4069,29 +3704,10 @@ "moo": "^0.5.1" } }, - "node_modules/@napi-rs/wasm-runtime": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.6.tgz", - "integrity": "sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@tybys/wasm-util": "^0.10.3" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Brooooooklyn" - }, - "peerDependencies": { - "@emnapi/core": "^1.7.1", - "@emnapi/runtime": "^1.7.1" - } - }, "node_modules/@oxc-project/types": { - "version": "0.137.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.137.0.tgz", - "integrity": "sha512-WT+Gb24i8hmvo85AIv2oEYouEXkRlKAlT9WaCa3TfLgNCN+GhrJOGZuIlMouAh38Qe4QOx26eUOVsq70qXrywA==", + "version": "0.147.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.147.0.tgz", + "integrity": "sha512-IJ3s6ltHLp45S0bh7phkX+gJO7A1Wuz2EaqpAhb8WjqDwbzMiWKHhyyT42tskaWjEYXtHtVCPpnBJVT9+dcRLg==", "dev": true, "license": "MIT", "funding": { @@ -4099,9 +3715,9 @@ } }, "node_modules/@oxfmt/binding-android-arm-eabi": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-android-arm-eabi/-/binding-android-arm-eabi-0.57.0.tgz", - "integrity": "sha512-qVBsEO+KugOsCmUHcO8iqNnqc65p7PCKpCs8M66mPZ+Ri+CWbcpoQOEJBg2OTu03+0qu++NK1jj6IzvQVs0Sig==", + "version": "0.66.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-android-arm-eabi/-/binding-android-arm-eabi-0.66.0.tgz", + "integrity": "sha512-2Me9eoptv6ERdEuI2P8AOlYdHHraXebJaM6SC0kc2Dfb+mLrep2db+fedBPKaYn673h/vBgvP4tkOdAbaudX6w==", "cpu": [ "arm" ], @@ -4116,9 +3732,9 @@ } }, "node_modules/@oxfmt/binding-android-arm64": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-android-arm64/-/binding-android-arm64-0.57.0.tgz", - "integrity": "sha512-mp6PibWbao3aizijcheOeHQaYEhcUAt8pwLniYbtLfHxL/psFF0BykAwCj+s3c6qIpa8yN8keZICWrqtZ70w8g==", + "version": "0.66.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-android-arm64/-/binding-android-arm64-0.66.0.tgz", + "integrity": "sha512-u7O+bSSF0HGsDKkQQxBqvLGVepu93RA+JKu+ONqvfh4sCnCEbj31wZj4iG5gk3XfRwrmYj0/8catkO2LcblQKQ==", "cpu": [ "arm64" ], @@ -4133,9 +3749,9 @@ } }, "node_modules/@oxfmt/binding-darwin-arm64": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-darwin-arm64/-/binding-darwin-arm64-0.57.0.tgz", - "integrity": "sha512-T+0stuCBqmUVY+aMIvrgXhzGhHO3sD5tNiiEcYqgSdPsnukskQqn2u5qOVD0sv1l7RLdFS5Z/f5Wi9Ktyjr3Eg==", + "version": "0.66.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-darwin-arm64/-/binding-darwin-arm64-0.66.0.tgz", + "integrity": "sha512-/ikyMIVjX/sdo7KtjxoEsSUosfPzveVhT9RWMx9yGqFDKFJ89JAEKuEeLBmurDjrkb4w8tOnAdSO3SBaplY3bw==", "cpu": [ "arm64" ], @@ -4150,9 +3766,9 @@ } }, "node_modules/@oxfmt/binding-darwin-x64": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-darwin-x64/-/binding-darwin-x64-0.57.0.tgz", - "integrity": "sha512-O+3JbqWs/mCI2oi4xfhRO2IVPFJNDDEBV8Odo+ZpmsUOeKJfjXoNH7nDmBEQcDgK7NfjDIyE7kRgYSZcTLDO0A==", + "version": "0.66.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-darwin-x64/-/binding-darwin-x64-0.66.0.tgz", + "integrity": "sha512-q5xUsKeFqawa9NXa6ZGXWimFV19m8MogKPdTaSVDAAk2EQKBmBZRDeluwcl1p8ty/OFc9s9888OKEh3xfPVH0g==", "cpu": [ "x64" ], @@ -4167,9 +3783,9 @@ } }, "node_modules/@oxfmt/binding-freebsd-x64": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-freebsd-x64/-/binding-freebsd-x64-0.57.0.tgz", - "integrity": "sha512-pxwhxVC+JkLX9twOQ/8C/vbuOQcMZyKIDmiRDZfO7yITuVcIdZCiLRqqf4QOxb2+8FWrRXzQpm+1DBKcMpHSSQ==", + "version": "0.66.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-freebsd-x64/-/binding-freebsd-x64-0.66.0.tgz", + "integrity": "sha512-CR+x4VzMY0pRXLK/xFQ/RzsSFkP5t2Z2mef0QY6OP/rTRcMUoMLCOM62/3Fp/t0K+UDoBKxvMyeb6D0zPMjleA==", "cpu": [ "x64" ], @@ -4184,9 +3800,9 @@ } }, "node_modules/@oxfmt/binding-linux-arm-gnueabihf": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-0.57.0.tgz", - "integrity": "sha512-pxBU4zH2imB/MDBfth2rOMeVxXUMjRQLCazagwLARIFH3hVlxZJBlM4nSnHXaIHJK4/qezoFCIORN6AY8Mra4A==", + "version": "0.66.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-0.66.0.tgz", + "integrity": "sha512-ZEYmO/LbH9tTQCADILHGZE4GeOXOAj2VzedHkASNwjmwlwtutJCLpCJbIs37wRGTFgWRoEcD72jpMX+IBJUGjQ==", "cpu": [ "arm" ], @@ -4201,9 +3817,9 @@ } }, "node_modules/@oxfmt/binding-linux-arm-musleabihf": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-0.57.0.tgz", - "integrity": "sha512-JAprOzt8tycYou36ZgEw14DlRHTiN8qdtKANdV3VZIRIvTI/lh/cX13c9pJ/EnDk2GT3FASH7KvCgQ2AufAifQ==", + "version": "0.66.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-0.66.0.tgz", + "integrity": "sha512-hNtR9/oU0CeTkq7JnRkmBQwqe17v2ZaAMLC4VcN7IIOWeRyWDk0knSPWS9iiLmtbZ2RRBBtsG01jQgkZmKCJeQ==", "cpu": [ "arm" ], @@ -4218,9 +3834,9 @@ } }, "node_modules/@oxfmt/binding-linux-arm64-gnu": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.57.0.tgz", - "integrity": "sha512-ajtjaxSaj9xl4BW7REt+Cef/ttzbAq00Bq4z7JUDZEfgFXdwSjH8K9bF+IcIJzZB9lKqMfQ4eHuSFOvvlvtqOg==", + "version": "0.66.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.66.0.tgz", + "integrity": "sha512-uwOVQ8i6I1LT/+eDzfsgrrcZp8Fn6NPVUPn8fF5gdFGekFf0PddF+LEuwsD0/pbNUcKZhDj2rQ5UpITh9gF4iQ==", "cpu": [ "arm64" ], @@ -4238,9 +3854,9 @@ } }, "node_modules/@oxfmt/binding-linux-arm64-musl": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.57.0.tgz", - "integrity": "sha512-p4Y/+RYk9Bk5WO+zHSUXAClRmZ2fbJCejMuCAsU2HhyME4jqf6Ftt/mJYEwIah1wGCBDYOB7wEGV1x5bCEZ6hA==", + "version": "0.66.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.66.0.tgz", + "integrity": "sha512-tTkF2Dmx4nGAjmBlZb+UtTGqR/EK4ZrW9qBfzte07a9XWqzoGGKzpFFlyNDhQe+Uwql94+ReCTeNbhOXscw1Dg==", "cpu": [ "arm64" ], @@ -4258,9 +3874,9 @@ } }, "node_modules/@oxfmt/binding-linux-ppc64-gnu": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-0.57.0.tgz", - "integrity": "sha512-By6tRALAZsno0F4zedmtG+wdMvJiJmJoXM4d3+A9zHE4HRXLqXITwRH8mgrlcXc5yJM2g2W3riRPwTYdgemZLQ==", + "version": "0.66.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-0.66.0.tgz", + "integrity": "sha512-F3cKHUav4yXOHn6GFnwpBhSYsJOYKKf9eqO/9jlEuqPxNw9zb98E9ZFct79gcg8pibUGkbveEu9WDlmXJpDzKw==", "cpu": [ "ppc64" ], @@ -4278,9 +3894,9 @@ } }, "node_modules/@oxfmt/binding-linux-riscv64-gnu": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-0.57.0.tgz", - "integrity": "sha512-skYeG+RgvyzspqVEBsEprL90OYYZfoVNqB3HcCNR6QDJyXKOzfDRT3zncnHmUaFluIlBHuY23mU1b5WGgR98hA==", + "version": "0.66.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-0.66.0.tgz", + "integrity": "sha512-K5fDaNZfDyQMYA/3qL21bqyN0X9T15LLwwbFPt2aHc94+ZG7bh0vZEsy2y7NlRnjjHFSwN+Hzg6ldJtbOriH4Q==", "cpu": [ "riscv64" ], @@ -4298,9 +3914,9 @@ } }, "node_modules/@oxfmt/binding-linux-riscv64-musl": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-0.57.0.tgz", - "integrity": "sha512-FFgACrZOXAXUh5KQh2mt1CDOVOZmn+QzHP71wM9QobNwyQvoFfyAeefVUltW83g3sm7LTiH3yfFqLLVUpA5ZFQ==", + "version": "0.66.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-0.66.0.tgz", + "integrity": "sha512-44Yc+I+qOmTElRcEhm5hUKIUJEQIOugymz4ua4tB0Wox7tGAfIbjzmXz/HDAtw1Ij6gmBwZlzh4hc9679RhWeA==", "cpu": [ "riscv64" ], @@ -4318,9 +3934,9 @@ } }, "node_modules/@oxfmt/binding-linux-s390x-gnu": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-0.57.0.tgz", - "integrity": "sha512-Nm/BAOfQeFiiKd502mZn/GAVKJwtd0RdCg17G3Wz/WSOIQmDi3+7/SZH4BHn1Ye5KvTVH3ua8WvfwLLycNIuvA==", + "version": "0.66.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-0.66.0.tgz", + "integrity": "sha512-1e29Eg9hEj2kRBB19M0seIehPbbXHCk35GvImjDvb79rjjYjXCRmtbUNHJcgoktZAMIzXrTbxDBKmTc1V4bg3A==", "cpu": [ "s390x" ], @@ -4338,9 +3954,9 @@ } }, "node_modules/@oxfmt/binding-linux-x64-gnu": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.57.0.tgz", - "integrity": "sha512-BiSy5Ku3mQqyxS6YIqAJgd403wEUWvI7kerfzPxc2l/txZVmZM0pSj7oDM+4bGBExowxOi7o73jEam1W0EDTZg==", + "version": "0.66.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.66.0.tgz", + "integrity": "sha512-vODY1UQo10gngn0+D4xHKU84F1Twm1LqrzV4SqPXvmQKSd87paehvZ6jqA5wKs6XQrlWul9clYMDVHcoW9CPMA==", "cpu": [ "x64" ], @@ -4358,9 +3974,9 @@ } }, "node_modules/@oxfmt/binding-linux-x64-musl": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-x64-musl/-/binding-linux-x64-musl-0.57.0.tgz", - "integrity": "sha512-BCRkJiotz5s9afLYD2LuMvzAoDYx9H17E/YbDyu4xK7l4zHDPeny9ErSXL//i/nJyaOwRk08x4b8cgJC00+JDg==", + "version": "0.66.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-x64-musl/-/binding-linux-x64-musl-0.66.0.tgz", + "integrity": "sha512-YDzXx2JsT4+HL4MdkVrYjO55NS5lUKNm8rLC4ZPou8+seu0v0jhecSh+ufoO6+xEa8gccEezMlI2WHJi4ApUgw==", "cpu": [ "x64" ], @@ -4378,9 +3994,9 @@ } }, "node_modules/@oxfmt/binding-openharmony-arm64": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-openharmony-arm64/-/binding-openharmony-arm64-0.57.0.tgz", - "integrity": "sha512-4Oaxe1qrGgXfpCJ1C/ERJ2iCtV2rN1R79ga9fsfyVHfSQRu/hVW780u2KDqZWFZ/iGTHODJji0JemxqFZ63eIQ==", + "version": "0.66.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-openharmony-arm64/-/binding-openharmony-arm64-0.66.0.tgz", + "integrity": "sha512-mJjUYd8lj0+j4JkYyEM+5qKBf1Rnrpgjn/SVYKJhicVDqLz566ooa7Fs8zflPqt+dnZDV7X054rVIQX6ZcQNlQ==", "cpu": [ "arm64" ], @@ -4395,9 +4011,9 @@ } }, "node_modules/@oxfmt/binding-win32-arm64-msvc": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.57.0.tgz", - "integrity": "sha512-MYLAsDnhdNsSGheLYhWgbk0vfIrlS84iQYun/y21fX6u0jj8iBtYtbpZMdiqYeuf8U12eVPUjVY2xE2NrCfJ0g==", + "version": "0.66.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.66.0.tgz", + "integrity": "sha512-soV+0vESv7e5ntCHWC61x4gg8OSak6IHHnWsZmHrJFlvMj2AK+kmldErCNkVkrvc1Ts2/++rJXn+IuAb2WMXhw==", "cpu": [ "arm64" ], @@ -4412,9 +4028,9 @@ } }, "node_modules/@oxfmt/binding-win32-ia32-msvc": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.57.0.tgz", - "integrity": "sha512-PBwdzZALJY/jcCx2E6is0yu+cuVXeySTDmwuseD+9j0mHqlRNxwlKgsyRTBed/woPeqfVfuXfWjoq4Cx2Zt3Eg==", + "version": "0.66.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.66.0.tgz", + "integrity": "sha512-YCPi23uRIEYuIKTZohAkKbPFpujQ5QBuUM5iDv+UqbCmTPAkaFsxjsSuB8xlBpRT0G7eP/4HMF+cPDSqHtOD9A==", "cpu": [ "ia32" ], @@ -4429,9 +4045,9 @@ } }, "node_modules/@oxfmt/binding-win32-x64-msvc": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.57.0.tgz", - "integrity": "sha512-bQJdH9i4RRfw55jm7+8/xS7GzHLLTbHx4huhrrDxQJaJtbSDbsyOnODvP1ftT7EG0KFKAYO2S+q6AcioXODx8w==", + "version": "0.66.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.66.0.tgz", + "integrity": "sha512-bwTQcv/JVRPkOqQtMF0X7vpvpncDQiBcXHxZ9S2hR12Hlo8bvBdUR5x5XnxzDZ3kM0qoZw1rv7KaD66Ly+pFWA==", "cpu": [ "x64" ], @@ -4446,25 +4062,25 @@ } }, "node_modules/@playwright/test": { - "version": "1.61.1", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.61.1.tgz", - "integrity": "sha512-8nKv6+0RJSL9FE4jYOEGXnPeM/Hg12qZpmqzZjRh3qM0Y7c3z1mrOTfFLids72RDQYVh9WpLEfR5WdpNX4fkig==", + "version": "1.62.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.62.1.tgz", + "integrity": "sha512-DTcUc8qii+cpHvtOwggMtBRMjKZHXYWdw8syRYu2vtzuq4Wxphqq4NfCs5Zt44L6mA8rfDfj+PHnxFc/FeK6mQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright": "1.61.1" + "playwright": "1.62.1" }, "bin": { "playwright": "cli.js" }, "engines": { - "node": ">=18" + "node": ">=20" } }, "node_modules/@preact/preset-vite": { - "version": "2.10.5", - "resolved": "https://registry.npmjs.org/@preact/preset-vite/-/preset-vite-2.10.5.tgz", - "integrity": "sha512-p0vJpxiVO7KWWazWny3LUZ+saXyZKWv6Ju0bYMWNJRp2YveufRPgSUB1C4MTqGJfz07EehMgfN+AJNwQy+w6Iw==", + "version": "2.10.6", + "resolved": "https://registry.npmjs.org/@preact/preset-vite/-/preset-vite-2.10.6.tgz", + "integrity": "sha512-ZZ5RIT2ZVXg8UxRA8VZpoT8CdpDG7RFIqOT4bELqNBp85+HKvQBbgmh3gsoW1UOQXx26TLe+ZRNKI7q281Kckw==", "dev": true, "license": "MIT", "dependencies": { @@ -4562,10 +4178,27 @@ "node": ">=14" } }, + "node_modules/@rolldown/binding-android-arm-eabi": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm-eabi/-/binding-android-arm-eabi-1.2.6.tgz", + "integrity": "sha512-b+jTcARdTiFLI6jB4a5XjTm0RWd6KcRfQj/I2356fxUZemiho9zQLxo0RtCuMDAyKcLo6cEltkgbQp6d1+sjjQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, "node_modules/@rolldown/binding-android-arm64": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.1.3.tgz", - "integrity": "sha512-DT6Z3PhvioeHMvxo+xHc3KtqggrI7CCTXCmC2h/5zUlp5jVitv7XEy+9q5/7v8IolhlioawpMo8Kg0EEBy7J0g==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.6.tgz", + "integrity": "sha512-lkWU8ZJaRk9q3CIEY1Tc7vIFALp3Xw5NfGJo2hQg5oIqNgxWi1zI+IiDEK3r70BF5Dzol1tcXsnzsRc8NLhG+Q==", "cpu": [ "arm64" ], @@ -4580,9 +4213,9 @@ } }, "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.1.3.tgz", - "integrity": "sha512-0NwgwsjM7LrsuVnXMK3koTpagBNOhloc/BNjKqZjv4V5zI5r13qx69uVhRx+o5Z0yy4Hzq+lpy7TAgUG/ocvrw==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.6.tgz", + "integrity": "sha512-dgR56NYnvAszm7Ob1B2/Vn0e8bUQYZH2UjVaMMtMVOCKFSfjhfLmuA/9+O+F+ajUdG6B/bSssrKW6JJYASa8jA==", "cpu": [ "arm64" ], @@ -4597,9 +4230,9 @@ } }, "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.1.3.tgz", - "integrity": "sha512-YtiBp4disu6V560loT6PjMdiRaWmVvDNrUunAalbiFx2ggeJwxdAsgZMcoGP17uyAsTwAj5V1niksxlHnVQ1Sw==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.6.tgz", + "integrity": "sha512-vpVxFvUCFioJqug7OTvqptkc4yb8UX0AwfDmJpaR/0sWz+BUmqSVAf7c8JkUgnN8YLspb4a/N6NhTyMAmdyQ7Q==", "cpu": [ "x64" ], @@ -4614,9 +4247,9 @@ } }, "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.1.3.tgz", - "integrity": "sha512-yD3EkEdXk2LypPxnf/kSZHirarsI8gcPzc62SukhR9VJTyvV+F9Q/GxWNuCojc7sXyuVC4DxRGhdDK4X8VSsbw==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.6.tgz", + "integrity": "sha512-h1wG6Y6K3JlRswxsI64qQJqBAy4vrLuHgRbc8CZMGSWTOFRY6ghMApM1NKzB2I0n5xV1fjkE18SuVl2QpLeNpA==", "cpu": [ "x64" ], @@ -4631,9 +4264,9 @@ } }, "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.1.3.tgz", - "integrity": "sha512-c+8vieQbsD7HNAHKIA34w0GJ9FedFFuJGD+7E6vz7Q3uqAIugL5p45fhlsj4UaAsHpcmlqugBWMhA0/j7o0sIg==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.6.tgz", + "integrity": "sha512-tbCiqub0q2MVWJKgF5PoAlNWCtQydiOYSLIkd8sByqK/6MMYLJRcSXSYodqYtd0O+Fw7QaVmKKlS4oL94YRZ0w==", "cpu": [ "arm" ], @@ -4648,9 +4281,9 @@ } }, "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.1.3.tgz", - "integrity": "sha512-50jD0uUwLvur7Zz9LHz17kaAdTPjn5wN93hEgjvmYFRZwiR7ZJYovTd5ipyWJDAnXKvZ+wgc+/Ika6dwSF5OcA==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.6.tgz", + "integrity": "sha512-oxK9+baEBPhZG5HB4URY+uU04zJWeZlH6Tb9rB5DK4DF9XR1uXNLXt5Q5ZsugTKayNCNLhkcwz/ye74hRI98dg==", "cpu": [ "arm64" ], @@ -4668,9 +4301,9 @@ } }, "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.1.3.tgz", - "integrity": "sha512-BO9+oPL8K9poZJBfYPsXNtYjPE5uM3qeehT3aFcW4LITOl+iSqhp0abzjR2nWBUNjIZeKXjAEWBZ64WjNoHd6w==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.6.tgz", + "integrity": "sha512-muWCk27FVBEZtv0MsK8gnfSmgczA8KQ0uRVJbTABKhkRfQc38aUrcb7fhi3BNiyseFmgcRsoMfQsSNJ+DbZdSw==", "cpu": [ "arm64" ], @@ -4688,9 +4321,9 @@ } }, "node_modules/@rolldown/binding-linux-ppc64-gnu": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.1.3.tgz", - "integrity": "sha512-f3VpLB1vQ0Eo6ecr/6cekLnvYMFF4YBFoVGkfkvPLq1bAkbAwHYQPZKoAmG6OJyTcxxoC+AvezGx/S1obNC0Mw==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.6.tgz", + "integrity": "sha512-eWDoSfU7Co2qj3vgB3Dt4lj1mG6CoWbcJQkRMP3XJplyCMtuaq3LHvPFjS9QIPvMGWVadJC04Xiy0IdcVPtnwQ==", "cpu": [ "ppc64" ], @@ -4708,9 +4341,9 @@ } }, "node_modules/@rolldown/binding-linux-s390x-gnu": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.1.3.tgz", - "integrity": "sha512-AmurZ26Pqx/RI9N1gzEOCklkKXl927yjfXWUUS0O7Puh8ARM/Ob8qfrD3qnWksScdw6cSrW5PSHE9DyLu7+PtA==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.6.tgz", + "integrity": "sha512-2bWNjRSIayvupRKxXUY2tWG9fYdoUlTqWywHRvE8Eq3GvuQ+f2HeIkve697fIt+IQs/PV8yFsdWuhp1aJ1PdnA==", "cpu": [ "s390x" ], @@ -4728,9 +4361,9 @@ } }, "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.1.3.tgz", - "integrity": "sha512-JJpqs8bRGITDOdbkNKnlojzBabbOHrqjSvDr0IVsZObE1lBcPjxItUEY9eWIDbxaJ3cGrXPWGfGkIxFijg/URg==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.6.tgz", + "integrity": "sha512-KekI0gS0wLxe1UBSQSjenBVwou/JkcQPDzBPICGZjxUv9k3RteHDPBQaiOicZUFKRIH2wKEimGwVpnJsbPzu7w==", "cpu": [ "x64" ], @@ -4748,9 +4381,9 @@ } }, "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.1.3.tgz", - "integrity": "sha512-rSJcdjPxzA/by/6/rYs+v+bXU7UjvnbUWz8MJb6kh6+knqB1dCrtHg0uu7C/4haqJvqdkYHQ5IGn+tCH9GLW/g==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.6.tgz", + "integrity": "sha512-TvtPnfVr+HtyGiDmPK4VWmlNm7QhNNAcK5Q9A7aOXsI8545yCyaoMaicXrFZ72JzeYjaUVk7yT243zT0jzjFKQ==", "cpu": [ "x64" ], @@ -4768,9 +4401,9 @@ } }, "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.1.3.tgz", - "integrity": "sha512-hQ3/PYkDJICgevvyNcVrihVeqq7k1Pp3VZ9lY+dauAYUJKO+auqApvANhvR1An9BhmqYKvW2Mu1F9u4DXSMLxQ==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.6.tgz", + "integrity": "sha512-iOo0VEay2XFhaCcH0sps5XIimkSuOnNaZrf6+ZkoSOQBJPKNU48RkmJv0/lSpipexu5P+ouFgafe5IGr/DiQfg==", "cpu": [ "arm64" ], @@ -4784,29 +4417,10 @@ "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@rolldown/binding-wasm32-wasi": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.1.3.tgz", - "integrity": "sha512-Elcv/BtML9lXrV6JuKITc/grN2kYV9gjsQpW8Jfw4ioK0TOkjBjye0nnyqQNy9STNaI20lXNaQBRrD5gSgR0Yg==", - "cpu": [ - "wasm32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/core": "1.11.1", - "@emnapi/runtime": "1.11.1", - "@napi-rs/wasm-runtime": "^1.1.6" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.1.3.tgz", - "integrity": "sha512-2DrEfhluH9yhiaFApmsjsjwrSYbNcY1oFTzYSP1a535jDbV98zCFanA/96TBUd0iDFcxGmw9QRExwGCXz3U+/g==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.6.tgz", + "integrity": "sha512-y5NTmmasMS455JlOCO4ZM9krIchv3Mvm1crL1iUPGOPgEzSkves9n0SdC5Sjz6+qWDFhd8/JpfWMH8NSWNHe+A==", "cpu": [ "arm64" ], @@ -4821,9 +4435,9 @@ } }, "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.1.3.tgz", - "integrity": "sha512-OL4OMk7UPXOeVGGd3qo5zJyPIljf4AFgk5QAkPPS+OoLuOOozhuaQGC18MxVTnw/06q93gShAJzlwnSCY9YtqA==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.6.tgz", + "integrity": "sha512-np8iZSLfXlAD4kWhiyq/u0Yt8oZDtRQ8lGhQaCXo2rl37KNjeU0GjJuwr4P3oeZ++ROfofsKNBqR5LTO8aXyWQ==", "cpu": [ "x64" ], @@ -5354,9 +4968,9 @@ ] }, "node_modules/@sinclair/typebox": { - "version": "0.27.10", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.10.tgz", - "integrity": "sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==", + "version": "0.27.12", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.12.tgz", + "integrity": "sha512-hhyNJ+nbR6ZR7pToHvllEFun9TL0sbL+tk/ON75lo+Xas054uez98qRbsuNt7MBCyZKK4+8Yli/OAGZhmfBZ/g==", "license": "MIT" }, "node_modules/@szhsin/react-menu": { @@ -5388,17 +5002,6 @@ "node": ">=12" } }, - "node_modules/@tybys/wasm-util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", - "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@types/estree": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", @@ -5431,9 +5034,9 @@ } }, "node_modules/@types/node": { - "version": "26.1.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-26.1.0.tgz", - "integrity": "sha512-O0A1G3xPGy4w7AgQdAQYUlQ+BKk2Oovw8eRpofyp5KdBZULnbe+WqaOVNrm705SHphCiG4XHsACrSmPu1f+Kgw==", + "version": "26.4.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.4.1.tgz", + "integrity": "sha512-k97ENvZWtvA6yqz5/FS6a7duDgOPEeOQOc2iKS/nY6mX6qJUKtLnWzQS+Xj6tXweyj6ZcTAK2Qecetnvi9nCLA==", "license": "MIT", "dependencies": { "undici-types": "~8.3.0" @@ -5722,6 +5325,7 @@ "version": "2.10.29", "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.29.tgz", "integrity": "sha512-Asa2krT+XTPZINCS+2QcyS8WTkObE77RwkydwF7h6DmnKqbvlalz93m/dnphUyCa6SWSP51VgtEUf2FN+gelFQ==", + "devOptional": true, "license": "Apache-2.0", "bin": { "baseline-browser-mapping": "dist/cli.cjs" @@ -5764,6 +5368,7 @@ "version": "4.28.2", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==", + "devOptional": true, "funding": [ { "type": "opencollective", @@ -5866,6 +5471,7 @@ "version": "1.0.30001792", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001792.tgz", "integrity": "sha512-hVLMUZFgR4JJ6ACt1uEESvQN1/dBVqPAKY0hgrV70eN3391K6juAfTjKZLKvOMsx8PxA7gsY1/tLMMTcfFLLpw==", + "devOptional": true, "funding": [ { "type": "opencollective", @@ -6019,6 +5625,7 @@ "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==", + "devOptional": true, "license": "MIT" }, "node_modules/core-js": { @@ -6070,9 +5677,9 @@ } }, "node_modules/css-blank-pseudo": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-8.0.1.tgz", - "integrity": "sha512-C5B2e5hCM4llrQkUms+KnWEMVW8K1n2XvX9G7ppfMZJQ7KAS/4rNnkP1Cs+HhWriOz1mWWTMFD4j1J7s31Dgug==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-8.0.2.tgz", + "integrity": "sha512-slkPVai9igcMmQqbbb6j1Y2PI6kSyKHKYspouvZbU74ZepumYlFmPEDGJWULh1dLtYyPMHoVqFwOByrSBvOq2g==", "dev": true, "funding": [ { @@ -6096,9 +5703,9 @@ } }, "node_modules/css-has-pseudo": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-8.0.0.tgz", - "integrity": "sha512-Uz/bsHRbOeir/5Oeuz85tq/yLJLxX+3dpoRdjNTshs6jjqwUg8XaEZGDd0ci3fw7l53Srw0EkJ8mYan0eW5uGQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-8.0.1.tgz", + "integrity": "sha512-rbAA5luesIpXfRwc88KfJtaLQ2TTFmoUAU1AnolV8GHr+Z796hICAErTZl/PLnif/X18UoteT8G8fnmol3e0rQ==", "dev": true, "funding": [ { @@ -6124,9 +5731,9 @@ } }, "node_modules/css-prefers-color-scheme": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-11.0.0.tgz", - "integrity": "sha512-fv0mgtwUhh2m9iio3Kxc2CkrogjIaRdMFaaqyzSFdii17JF4cfPyMNX72B15ZW2Nrr/NZUpxI4dec1VMHYJvdw==", + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-11.0.1.tgz", + "integrity": "sha512-JjBlS/GDGlqUBXS5duzFsSOMF5NJmnd11tGggppuhZeur7c1DEFWMw4xDPrUlRzfKt6AectVaiV622dZXpOPHA==", "dev": true, "funding": [ { @@ -6177,9 +5784,9 @@ } }, "node_modules/cssdb": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.9.0.tgz", - "integrity": "sha512-J8jOU/hLjaXcO1LldOLraJSQpfLXRKof0I7mtbRyOy2AAXgqst0x9rlgi2qXeD6d0ou3ZLqcPAMqYVbpCbrxEw==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.11.0.tgz", + "integrity": "sha512-VzY/8kcK5M8oCVr/cwh24J8XVlCOITpmzCizKBC28o7Z1s23MMojXoJ3q7a+TQQoMKvxC3YlG0Z9yU10kJF1uQ==", "dev": true, "funding": [ { @@ -6264,6 +5871,7 @@ "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "devOptional": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -6436,6 +6044,7 @@ "version": "1.5.355", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.355.tgz", "integrity": "sha512-LUPZhKzZPYSPme1jEYohpkA+ybYCJztr1quAdBd7E7h3+VOBVcKkwwtBJu41nrjawrRzfb8mtMfzWozoaK0ZIQ==", + "devOptional": true, "license": "ISC" }, "node_modules/emoji-regex": { @@ -6609,6 +6218,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "devOptional": true, "license": "MIT", "engines": { "node": ">=6" @@ -6657,9 +6267,9 @@ "license": "MIT" }, "node_modules/exifreader": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/exifreader/-/exifreader-4.41.0.tgz", - "integrity": "sha512-P3nPeh6GWs5D5RZdRZ6q/LorHPmmeDgKsowduqRabtTFiqMD2bc5eTN+Dhq00O9BCuV2eksu3oOJh4ZaZvkK0A==", + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/exifreader/-/exifreader-4.44.0.tgz", + "integrity": "sha512-NviP4AQgrZHiNZT8IEsXtyaAKLkc0C55dfQ8fyaAXiL59EJLDdsvP/hZhAfTJpdVuHDGHU7GuUZ1qrJtINckvw==", "hasInstallScript": true, "license": "MPL-2.0", "bin": { @@ -6683,9 +6293,9 @@ "license": "MIT" }, "node_modules/fast-equals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-6.0.0.tgz", - "integrity": "sha512-PFhhIGgdM79r5Uztdj9Zb6Tt1zKafqVfdMGwVca1z5z6fbX7DmsySSuJd8HiP6I1j505DCS83cLxo5rmSNeVEA==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-6.0.2.tgz", + "integrity": "sha512-sAjhj9ZhOxYCGiNMnZLaucOqf5ZeFnHNoKoAZiD9thhJ0N8RP85qJK759/97C/3L7NzzmGVB5uiX9AUpySZmUQ==", "license": "MIT", "engines": { "node": ">=6.0.0" @@ -6910,9 +6520,9 @@ } }, "node_modules/fuse.js": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-7.4.2.tgz", - "integrity": "sha512-LVbzjD4WA6UP5B1UnP8wuaXJiLnqMdM/E4fiJXTJ5haJ5b/MBNsK29h2fm6swEoQaVQjvYFWKLE2RanyZIoRVQ==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-7.5.0.tgz", + "integrity": "sha512-sQtrEfA+ez/3G0cCZecF70oqpCRttCexYUG4mUrtWL49ULUzUyxokt5kyqwtKzj1270RaKih+hcP3qLcumccow==", "license": "Apache-2.0", "engines": { "node": ">=10" @@ -6936,6 +6546,7 @@ "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==", + "devOptional": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -7245,9 +6856,9 @@ "license": "ISC" }, "node_modules/idb-keyval": { - "version": "6.2.6", - "resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-6.2.6.tgz", - "integrity": "sha512-FY64UEhw+5liMzMQ1R9Mw6AF0+wyBrg1CIA1z4CjI/EvT5ty/SvQcWZgd8s9sgaNhX10Y8UzScTh89tEAls5nA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-6.3.0.tgz", + "integrity": "sha512-um+2dgAWmYsu615EXpWVwSmapJhON0G43t3Ka/EVaohzPQXSMqKEqeDK/oIW3Ow+BXaF2PvSc+oBTFp793A5Ow==", "license": "Apache-2.0" }, "node_modules/import-meta-resolve": { @@ -7753,15 +7364,6 @@ "dev": true, "license": "ISC" }, - "node_modules/isomorphic-ws": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz", - "integrity": "sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==", - "license": "MIT", - "peerDependencies": { - "ws": "*" - } - }, "node_modules/jackspeak": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.2.3.tgz", @@ -7882,6 +7484,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "devOptional": true, "license": "MIT", "bin": { "jsesc": "bin/jsesc" @@ -7901,6 +7504,7 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "devOptional": true, "license": "MIT", "bin": { "json5": "lib/cli.js" @@ -7955,9 +7559,9 @@ } }, "node_modules/lightningcss": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", - "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.33.0.tgz", + "integrity": "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==", "dev": true, "license": "MPL-2.0", "dependencies": { @@ -7971,23 +7575,23 @@ "url": "https://opencollective.com/parcel" }, "optionalDependencies": { - "lightningcss-android-arm64": "1.32.0", - "lightningcss-darwin-arm64": "1.32.0", - "lightningcss-darwin-x64": "1.32.0", - "lightningcss-freebsd-x64": "1.32.0", - "lightningcss-linux-arm-gnueabihf": "1.32.0", - "lightningcss-linux-arm64-gnu": "1.32.0", - "lightningcss-linux-arm64-musl": "1.32.0", - "lightningcss-linux-x64-gnu": "1.32.0", - "lightningcss-linux-x64-musl": "1.32.0", - "lightningcss-win32-arm64-msvc": "1.32.0", - "lightningcss-win32-x64-msvc": "1.32.0" + "lightningcss-android-arm64": "1.33.0", + "lightningcss-darwin-arm64": "1.33.0", + "lightningcss-darwin-x64": "1.33.0", + "lightningcss-freebsd-x64": "1.33.0", + "lightningcss-linux-arm-gnueabihf": "1.33.0", + "lightningcss-linux-arm64-gnu": "1.33.0", + "lightningcss-linux-arm64-musl": "1.33.0", + "lightningcss-linux-x64-gnu": "1.33.0", + "lightningcss-linux-x64-musl": "1.33.0", + "lightningcss-win32-arm64-msvc": "1.33.0", + "lightningcss-win32-x64-msvc": "1.33.0" } }, "node_modules/lightningcss-android-arm64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", - "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.33.0.tgz", + "integrity": "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==", "cpu": [ "arm64" ], @@ -8006,9 +7610,9 @@ } }, "node_modules/lightningcss-darwin-arm64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", - "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.33.0.tgz", + "integrity": "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==", "cpu": [ "arm64" ], @@ -8027,9 +7631,9 @@ } }, "node_modules/lightningcss-darwin-x64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", - "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.33.0.tgz", + "integrity": "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==", "cpu": [ "x64" ], @@ -8048,9 +7652,9 @@ } }, "node_modules/lightningcss-freebsd-x64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", - "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.33.0.tgz", + "integrity": "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==", "cpu": [ "x64" ], @@ -8069,9 +7673,9 @@ } }, "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", - "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.33.0.tgz", + "integrity": "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==", "cpu": [ "arm" ], @@ -8090,9 +7694,9 @@ } }, "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", - "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.33.0.tgz", + "integrity": "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==", "cpu": [ "arm64" ], @@ -8114,9 +7718,9 @@ } }, "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", - "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.33.0.tgz", + "integrity": "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==", "cpu": [ "arm64" ], @@ -8138,9 +7742,9 @@ } }, "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==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.33.0.tgz", + "integrity": "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==", "cpu": [ "x64" ], @@ -8162,9 +7766,9 @@ } }, "node_modules/lightningcss-linux-x64-musl": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", - "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.33.0.tgz", + "integrity": "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==", "cpu": [ "x64" ], @@ -8186,9 +7790,9 @@ } }, "node_modules/lightningcss-win32-arm64-msvc": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", - "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.33.0.tgz", + "integrity": "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==", "cpu": [ "arm64" ], @@ -8207,9 +7811,9 @@ } }, "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", - "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.33.0.tgz", + "integrity": "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==", "cpu": [ "x64" ], @@ -8287,6 +7891,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "devOptional": true, "license": "ISC", "dependencies": { "yallist": "^3.0.2" @@ -8312,16 +7917,17 @@ } }, "node_modules/masto": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/masto/-/masto-7.12.0.tgz", - "integrity": "sha512-hSqRfaqVhtaRB3+lSJ4YusqBZ/tj4/gtzS0PXZgrg2JLiDFLmsBdmuyVVF2c+QlKSMEKo7grVh3dN8TX1TECVw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/masto/-/masto-8.0.0.tgz", + "integrity": "sha512-S5fD1qmw4tUjCWWJ1/UN1te2l6Sf0rZZY4SfGS6WgLcmPv3T2ygGO/Dd2LjHeiaQpxZgSk17beeMDDs4VtPh7w==", "license": "MIT", "dependencies": { "change-case": "^5.4.4", "events-to-async": "^2.0.2", - "isomorphic-ws": "^5.0.0", - "ts-custom-error": "^3.3.1", - "ws": "^8.18.3" + "ts-custom-error": "^3.3.1" + }, + "engines": { + "node": ">=22.0.0" } }, "node_modules/math-intrinsics": { @@ -8335,12 +7941,12 @@ } }, "node_modules/micro-memoize": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/micro-memoize/-/micro-memoize-5.1.1.tgz", - "integrity": "sha512-QDwluos8YeMijiKxZGwaV4f4tzj0soS6+xcsJhJ3+4wdEIHMyKbIKVUziebOgWX3e6yiijdoaHo+9tyhbnaWXA==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/micro-memoize/-/micro-memoize-5.1.2.tgz", + "integrity": "sha512-dbWHvnmuOCClNkneO6OIIXjEUJCIE0Ftar4DE36aJzXw3SqJCbgGTRxrbjrHq8fR+O3nZiLZmXdODczOnifK6w==", "license": "MIT", "dependencies": { - "fast-equals": "^5.3.3", + "fast-equals": "^5.4.0", "fast-stringify": "^4.0.0" } }, @@ -8449,12 +8055,13 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "devOptional": true, "license": "MIT" }, "node_modules/nanoid": { - "version": "3.3.12", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", - "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", + "version": "3.3.18", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.18.tgz", + "integrity": "sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==", "dev": true, "funding": [ { @@ -8485,6 +8092,7 @@ "version": "2.0.44", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.44.tgz", "integrity": "sha512-5WUyunoPMsvvEhS8AxHtRzP+oA8UCkJ7YRxatWKjngndhDGLiqEVAQKWjFAiAiuL8zMRGzGSJxFnLetoa43qGQ==", + "devOptional": true, "license": "MIT" }, "node_modules/normalize-path": { @@ -8670,9 +8278,9 @@ } }, "node_modules/oxfmt": { - "version": "0.57.0", - "resolved": "https://registry.npmjs.org/oxfmt/-/oxfmt-0.57.0.tgz", - "integrity": "sha512-ZB7Bi+rGDSqmVIo9jwcLyFgjxXvQhDdU+jx+ZrVy6VRiVXK2+CHc4hO3J4dUQjHe7V0ymHB+MDuv5z+NhK07HA==", + "version": "0.66.0", + "resolved": "https://registry.npmjs.org/oxfmt/-/oxfmt-0.66.0.tgz", + "integrity": "sha512-FfvqR8RFtV6JJpRrpkfqyVCQ7HDvZ/VriWFx7veftCgL1B5ZO9qNr+1rvPieycMQnNfVG0PWyJQiy7p0hq1I5w==", "dev": true, "license": "MIT", "dependencies": { @@ -8685,28 +8293,28 @@ "node": "^20.19.0 || >=22.12.0" }, "funding": { - "url": "https://github.com/sponsors/Boshen" + "url": "https://github.com/sponsors/oxc-project" }, "optionalDependencies": { - "@oxfmt/binding-android-arm-eabi": "0.57.0", - "@oxfmt/binding-android-arm64": "0.57.0", - "@oxfmt/binding-darwin-arm64": "0.57.0", - "@oxfmt/binding-darwin-x64": "0.57.0", - "@oxfmt/binding-freebsd-x64": "0.57.0", - "@oxfmt/binding-linux-arm-gnueabihf": "0.57.0", - "@oxfmt/binding-linux-arm-musleabihf": "0.57.0", - "@oxfmt/binding-linux-arm64-gnu": "0.57.0", - "@oxfmt/binding-linux-arm64-musl": "0.57.0", - "@oxfmt/binding-linux-ppc64-gnu": "0.57.0", - "@oxfmt/binding-linux-riscv64-gnu": "0.57.0", - "@oxfmt/binding-linux-riscv64-musl": "0.57.0", - "@oxfmt/binding-linux-s390x-gnu": "0.57.0", - "@oxfmt/binding-linux-x64-gnu": "0.57.0", - "@oxfmt/binding-linux-x64-musl": "0.57.0", - "@oxfmt/binding-openharmony-arm64": "0.57.0", - "@oxfmt/binding-win32-arm64-msvc": "0.57.0", - "@oxfmt/binding-win32-ia32-msvc": "0.57.0", - "@oxfmt/binding-win32-x64-msvc": "0.57.0" + "@oxfmt/binding-android-arm-eabi": "0.66.0", + "@oxfmt/binding-android-arm64": "0.66.0", + "@oxfmt/binding-darwin-arm64": "0.66.0", + "@oxfmt/binding-darwin-x64": "0.66.0", + "@oxfmt/binding-freebsd-x64": "0.66.0", + "@oxfmt/binding-linux-arm-gnueabihf": "0.66.0", + "@oxfmt/binding-linux-arm-musleabihf": "0.66.0", + "@oxfmt/binding-linux-arm64-gnu": "0.66.0", + "@oxfmt/binding-linux-arm64-musl": "0.66.0", + "@oxfmt/binding-linux-ppc64-gnu": "0.66.0", + "@oxfmt/binding-linux-riscv64-gnu": "0.66.0", + "@oxfmt/binding-linux-riscv64-musl": "0.66.0", + "@oxfmt/binding-linux-s390x-gnu": "0.66.0", + "@oxfmt/binding-linux-x64-gnu": "0.66.0", + "@oxfmt/binding-linux-x64-musl": "0.66.0", + "@oxfmt/binding-openharmony-arm64": "0.66.0", + "@oxfmt/binding-win32-arm64-msvc": "0.66.0", + "@oxfmt/binding-win32-ia32-msvc": "0.66.0", + "@oxfmt/binding-win32-x64-msvc": "0.66.0" }, "peerDependencies": { "svelte": "^5.0.0", @@ -8722,9 +8330,9 @@ } }, "node_modules/p-queue": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-9.3.0.tgz", - "integrity": "sha512-7NED7xhQ74Ngp4JP/2e0VZHp7vSWfJfqeiR92jPgxsz6m0Se4P03YoTKa9dDXyZ3r6P616gUXttrB6nnHYKang==", + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-9.3.3.tgz", + "integrity": "sha512-NXAOdnEe5FsZJfT4oK84lE1Y5cFFdWlRuOo5tww8DyNMxyRXwn39fIkUtNLKppcPC+UYU/bXujNCUGDv01y7CA==", "license": "MIT", "dependencies": { "eventemitter3": "^5.0.4", @@ -8738,9 +8346,9 @@ } }, "node_modules/p-retry": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-8.0.0.tgz", - "integrity": "sha512-kFVqH1HxOHp8LupNsOys7bSV09VYTRLxarH/mokO4Rqhk6wGi70E0jh4VzvVGXfEVNggHoHLAMWsQqHyU1Ey9A==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-8.0.1.tgz", + "integrity": "sha512-NAigyu8hfvJe7MsS18mnc4is0MZtau3QMdBklaJKK23oBQb6occO3UPM3vHmTckW8KhfyjMZaUOqdTFEYliHgg==", "license": "MIT", "dependencies": { "is-network-error": "^1.3.0" @@ -8826,12 +8434,13 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "devOptional": true, "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==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", "dev": true, "license": "MIT", "engines": { @@ -8842,35 +8451,35 @@ } }, "node_modules/playwright": { - "version": "1.61.1", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.61.1.tgz", - "integrity": "sha512-DWnY5o3YbLWK4GovuAVwpqL+1VwGNdUGrRr++8j8PtQQzvAVZUIMjKQ90fY689sEJZJBbZVw1rXaOKSTitkzPQ==", + "version": "1.62.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.62.1.tgz", + "integrity": "sha512-0M+L3LAD8/nm554LOla9Ayx0j0tmFZ0FBcoQ7F1VuVHpM/XpiC8RcDzBQB8W5+hA8L22THxELzeF+2WcUzvcLg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright-core": "1.61.1" + "playwright-core": "1.62.1" }, "bin": { "playwright": "cli.js" }, "engines": { - "node": ">=18" + "node": ">=20" }, "optionalDependencies": { "fsevents": "2.3.2" } }, "node_modules/playwright-core": { - "version": "1.61.1", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.61.1.tgz", - "integrity": "sha512-h7Qlt6m4REp25qvIdvbDtVmD4LqVXfpRxhORv9L0jzETM05p4fuPJ3dKyuSXQxDSbXnmS79HAgi9589lGSpLkg==", + "version": "1.62.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.62.1.tgz", + "integrity": "sha512-wPYSwEBJY9GHraISXqyqtx0na0LpO3XEX7jNDhntbex7tzUS7kLnZsOlFruFJB4Hi/rhDMjXGqHewDZ68nYZVw==", "dev": true, "license": "Apache-2.0", "bin": { "playwright-core": "cli.js" }, "engines": { - "node": ">=18" + "node": ">=20" } }, "node_modules/pofile-ts": { @@ -8894,9 +8503,9 @@ } }, "node_modules/postcss": { - "version": "8.5.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.16.tgz", - "integrity": "sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==", + "version": "8.5.26", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.26.tgz", + "integrity": "sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==", "dev": true, "funding": [ { @@ -8914,7 +8523,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.12", + "nanoid": "^3.3.17", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -8965,9 +8574,9 @@ } }, "node_modules/postcss-color-functional-notation": { - "version": "8.0.6", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-8.0.6.tgz", - "integrity": "sha512-JwHsQNb/zzjRN/RFdhWWb3bk6WiNs7KW85+vYtLP1YVL6MgPQn/2qNMgFrjD8Ymg+wfP3XlwtSrYUI+K4zPvHA==", + "version": "8.0.10", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-8.0.10.tgz", + "integrity": "sha512-94ZO53RTmggYRvB2IvYDzwwCmHgPpWF7hgPESa7Am3BQnrO7jVaxf6kAC9WRgd7uWNhXsufwGRGZY4m+/496IQ==", "dev": true, "funding": [ { @@ -8981,10 +8590,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.1.9", + "@csstools/css-color-parser": "^4.2.2", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", - "@csstools/postcss-progressive-custom-properties": "^5.1.1", + "@csstools/postcss-progressive-custom-properties": "^5.1.2", "@csstools/utilities": "^3.0.0" }, "engines": { @@ -9189,9 +8798,9 @@ } }, "node_modules/postcss-double-position-gradients": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-7.0.2.tgz", - "integrity": "sha512-X62YBNOxoCVvoUpV3uxdg5h86nbzJwF0ogLrgHUL73YsX8FJ5pGeOxRuaUcqhHxQ4wcoKY+O55lJAyCGsxZLJA==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-7.0.3.tgz", + "integrity": "sha512-cOW0WTgcIyIAqCKPNt9pESfNecYGpqBI8Y5PwDhtggoMCwwbOJ5mF5WcHZSGT6Zkj76vILAjuvl5r7O5A9uqtg==", "dev": true, "funding": [ { @@ -9205,7 +8814,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^5.1.1", + "@csstools/postcss-progressive-custom-properties": "^5.1.2", "@csstools/utilities": "^3.0.0", "postcss-value-parser": "^4.2.0" }, @@ -9243,9 +8852,9 @@ } }, "node_modules/postcss-focus-within": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-10.0.0.tgz", - "integrity": "sha512-dvql0fzUTG+gcJYp+KTbag5vAjuo94LDYZHkqDV1rnf5gPGer1v/SrmIZBdvKU8moep3HbcbujqGjzSb3DL53Q==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-10.0.1.tgz", + "integrity": "sha512-A5w/D1q/PR6eRqXwwLZPNxNYMSbLOgelxHw2I/HAV4+okY8bxvafbrmuoy+xPuWSXahpVoUO2aw72PYlYEXXAg==", "dev": true, "funding": [ { @@ -9329,9 +8938,9 @@ } }, "node_modules/postcss-lab-function": { - "version": "8.0.6", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-8.0.6.tgz", - "integrity": "sha512-zFU65d+uKFTdkvJWPpEMgRwY0gh7RN5FD4aWfLxbeXeAkITSpODG6nH2GKAdbnA4jWjyPac1lw8osw+1ATMcWg==", + "version": "8.0.10", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-8.0.10.tgz", + "integrity": "sha512-XFM4sXqai1oObhGPQBrUMvjt/oeK8ZCVpgIzR7HwjnHIWbCYrQfv4Enimlije/Efi81Tf7FBaQDOovZHRUFiCQ==", "dev": true, "funding": [ { @@ -9345,10 +8954,10 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^4.1.9", + "@csstools/css-color-parser": "^4.2.2", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0", - "@csstools/postcss-progressive-custom-properties": "^5.1.1", + "@csstools/postcss-progressive-custom-properties": "^5.1.2", "@csstools/utilities": "^3.0.0" }, "engines": { @@ -9385,9 +8994,9 @@ } }, "node_modules/postcss-nesting": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-14.0.0.tgz", - "integrity": "sha512-YGFOfVrjxYfeGTS5XctP1WCI5hu8Lr9SmntjfRC+iX5hCihEO+QZl9Ra+pkjqkgoVdDKvb2JccpElcowhZtzpw==", + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-14.0.1.tgz", + "integrity": "sha512-80MH7KcmMtb7ffSBX82uZwnogltubaXF0sagu+OGD8M9jViR3ngRgCdoTzKCvKEtllB0MW2U7Rgfcub5fR1Bug==", "dev": true, "funding": [ { @@ -9401,7 +9010,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/selector-resolve-nested": "^4.0.0", + "@csstools/selector-resolve-nested": "^4.0.1", "@csstools/selector-specificity": "^6.0.0", "postcss-selector-parser": "^7.1.1" }, @@ -9498,9 +9107,9 @@ } }, "node_modules/postcss-preset-env": { - "version": "11.3.2", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-11.3.2.tgz", - "integrity": "sha512-O7aA42UBH/89RkGy1YXgJqb+LxZ2+zvR8bHn9qyYcYc+lOo4g9TuIpb75nZT1tN77Bd6pX3DMZ+eYohS4MfKQg==", + "version": "11.5.1", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-11.5.1.tgz", + "integrity": "sha512-qRKCvyrSbIF1sLj6DxNCQtlQnhwX80k+e8QPKIZ3DSvzYNMTzqfzfDHkEECtw12uLqNn6NCz4pz532j5EZIHFw==", "dev": true, "funding": [ { @@ -9514,74 +9123,76 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/postcss-alpha-function": "^2.0.7", + "@csstools/postcss-alpha-function": "^2.0.11", "@csstools/postcss-cascade-layers": "^6.0.0", - "@csstools/postcss-color-function": "^5.0.6", - "@csstools/postcss-color-function-display-p3-linear": "^2.0.6", - "@csstools/postcss-color-mix-function": "^4.0.6", - "@csstools/postcss-color-mix-variadic-function-arguments": "^2.0.6", + "@csstools/postcss-color-function": "^5.0.10", + "@csstools/postcss-color-function-display-p3-linear": "^2.0.10", + "@csstools/postcss-color-mix-function": "^4.0.10", + "@csstools/postcss-color-mix-variadic-function-arguments": "^2.0.10", "@csstools/postcss-container-rule-prelude-list": "^1.0.1", - "@csstools/postcss-content-alt-text": "^3.0.2", - "@csstools/postcss-contrast-color-function": "^3.0.6", - "@csstools/postcss-exponential-functions": "^3.0.3", + "@csstools/postcss-content-alt-text": "^3.0.3", + "@csstools/postcss-contrast-color-function": "^3.0.10", + "@csstools/postcss-exponential-functions": "^3.0.4", + "@csstools/postcss-fit-tolerance-property": "^1.0.0", "@csstools/postcss-font-format-keywords": "^5.0.0", "@csstools/postcss-font-width-property": "^1.0.0", - "@csstools/postcss-gamut-mapping": "^3.0.6", - "@csstools/postcss-gradients-interpolation-method": "^6.0.6", - "@csstools/postcss-hwb-function": "^5.0.6", - "@csstools/postcss-ic-unit": "^5.0.2", - "@csstools/postcss-image-function": "^1.0.1", + "@csstools/postcss-gamut-mapping": "^3.0.10", + "@csstools/postcss-gradients-interpolation-method": "^6.0.10", + "@csstools/postcss-hwb-function": "^5.0.10", + "@csstools/postcss-ic-unit": "^5.0.3", + "@csstools/postcss-image-function": "^1.0.2", "@csstools/postcss-initial": "^3.0.0", "@csstools/postcss-is-pseudo-class": "^6.0.0", - "@csstools/postcss-light-dark-function": "^3.0.2", + "@csstools/postcss-light-dark-function": "^3.0.3", "@csstools/postcss-logical-float-and-clear": "^4.0.0", "@csstools/postcss-logical-overflow": "^3.0.0", "@csstools/postcss-logical-overscroll-behavior": "^3.0.0", "@csstools/postcss-logical-resize": "^4.0.0", "@csstools/postcss-logical-viewport-units": "^4.0.0", - "@csstools/postcss-media-minmax": "^3.0.3", + "@csstools/postcss-media-minmax": "^3.0.4", "@csstools/postcss-media-queries-aspect-ratio-number-values": "^4.0.0", "@csstools/postcss-mixins": "^1.0.0", "@csstools/postcss-nested-calc": "^5.0.0", "@csstools/postcss-normalize-display-values": "^5.0.1", - "@csstools/postcss-oklab-function": "^5.0.6", + "@csstools/postcss-oklab-function": "^5.0.10", "@csstools/postcss-position-area-property": "^2.0.0", - "@csstools/postcss-progressive-custom-properties": "^5.1.1", + "@csstools/postcss-progressive-custom-properties": "^5.1.2", + "@csstools/postcss-property-rule-optional-descriptors": "^1.0.0", "@csstools/postcss-property-rule-prelude-list": "^2.0.0", - "@csstools/postcss-random-function": "^3.0.3", - "@csstools/postcss-relative-color-syntax": "^4.0.6", + "@csstools/postcss-random-function": "^4.0.0", + "@csstools/postcss-relative-color-syntax": "^4.0.10", "@csstools/postcss-scope-pseudo-class": "^5.0.0", - "@csstools/postcss-sign-functions": "^2.0.3", - "@csstools/postcss-stepped-value-functions": "^5.0.3", + "@csstools/postcss-sign-functions": "^2.0.4", + "@csstools/postcss-stepped-value-functions": "^5.0.4", "@csstools/postcss-syntax-descriptor-syntax-production": "^2.0.0", "@csstools/postcss-system-ui-font-family": "^2.0.0", - "@csstools/postcss-text-decoration-shorthand": "^5.0.4", - "@csstools/postcss-trigonometric-functions": "^5.0.3", + "@csstools/postcss-text-decoration-shorthand": "^5.0.5", + "@csstools/postcss-trigonometric-functions": "^5.0.4", "@csstools/postcss-unset-value": "^5.0.0", "autoprefixer": "^10.5.0", "browserslist": "^4.28.1", - "css-blank-pseudo": "^8.0.1", - "css-has-pseudo": "^8.0.0", - "css-prefers-color-scheme": "^11.0.0", - "cssdb": "^8.9.0", + "css-blank-pseudo": "^8.0.2", + "css-has-pseudo": "^8.0.1", + "css-prefers-color-scheme": "^11.0.1", + "cssdb": "^8.10.0", "postcss-attribute-case-insensitive": "^8.0.0", "postcss-clamp": "^4.1.0", - "postcss-color-functional-notation": "^8.0.6", + "postcss-color-functional-notation": "^8.0.10", "postcss-color-hex-alpha": "^11.0.0", "postcss-color-rebeccapurple": "^11.0.0", "postcss-custom-media": "^12.0.1", "postcss-custom-properties": "^15.0.1", "postcss-custom-selectors": "^9.0.1", "postcss-dir-pseudo-class": "^10.0.0", - "postcss-double-position-gradients": "^7.0.2", + "postcss-double-position-gradients": "^7.0.3", "postcss-focus-visible": "^11.0.0", - "postcss-focus-within": "^10.0.0", + "postcss-focus-within": "^10.0.1", "postcss-font-variant": "^5.0.0", "postcss-gap-properties": "^7.0.0", "postcss-image-set-function": "^8.0.0", - "postcss-lab-function": "^8.0.6", + "postcss-lab-function": "^8.0.10", "postcss-logical": "^9.0.0", - "postcss-nesting": "^14.0.0", + "postcss-nesting": "^14.0.1", "postcss-opacity-percentage": "^3.0.0", "postcss-overflow-shorthand": "^7.0.0", "postcss-page-break": "^3.0.4", @@ -9681,13 +9292,21 @@ "license": "MIT" }, "node_modules/preact": { - "version": "10.29.3", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.29.3.tgz", - "integrity": "sha512-D9NL1GAnJZhc3RndVs4gDdxEeU9TcHgywMrhhOsnpdlvFjdbx0gAsLUnH6JEhlJH5giL7Tx5biWPUSEXE/HPzw==", + "version": "10.29.8", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.29.8.tgz", + "integrity": "sha512-ej2aVZ+vZ8WO7tvlQWRM9N63A0KzF9q4mWJfDUHgYaIofWY9hu74QdnQrjoPMmZi2/nZ5gN0bJCQF49xQqx09Q==", "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/preact" + }, + "peerDependencies": { + "preact-render-to-string": ">=5" + }, + "peerDependenciesMeta": { + "preact-render-to-string": { + "optional": true + } } }, "node_modules/pretty-bytes": { @@ -9771,9 +9390,9 @@ } }, "node_modules/qr": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/qr/-/qr-0.6.0.tgz", - "integrity": "sha512-P23VoX7SipHALdiIYG+D+LT/6n22dNKwV92FAb3d+Nlki/5WisSsfLt0UDFz2XEBtuwrECTznvu+chKKFCSYhA==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/qr/-/qr-0.7.0.tgz", + "integrity": "sha512-/VrrACmOAwZVipuRITwfEwOL5oAMEHH5PTmBWaGtlTom2Thxaa+rhmna4zU9PRN2uLw2wdccbkHOLGZb1Q9SdA==", "license": "(MIT OR Apache-2.0)", "engines": { "node": ">= 20.19.0" @@ -9817,9 +9436,9 @@ } }, "node_modules/react-intersection-observer": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-10.0.3.tgz", - "integrity": "sha512-luICLMbs0zxTO/70Zy7K5jOXkABPEVSAF8T3FdZUlctsrIaPLmx8TZe2SSA+CY2HGWfz2INyNTnp82pxNNsShA==", + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-11.0.1.tgz", + "integrity": "sha512-BIZ1M40GPSKDIT1MJbXK7SB0BwBaTKr84QfZCs5asKer7YMOYLzMi+RI1F4VStbZLGHoosJmd+aOQDDipUV1gA==", "license": "MIT", "peerDependencies": { "react": "^17.0.0 || ^18.0.0 || ^19.0.0", @@ -9880,9 +9499,9 @@ } }, "node_modules/react-zoom-pan-pinch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/react-zoom-pan-pinch/-/react-zoom-pan-pinch-4.0.3.tgz", - "integrity": "sha512-N2Hi6L78fFmhRra+ORpFSW7WST5x6kxpOPplIvtB0b7b+U2anpo1z1wLgaWRPS2kUSqcraRG+JgBCIlDJnqqAg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/react-zoom-pan-pinch/-/react-zoom-pan-pinch-4.1.0.tgz", + "integrity": "sha512-ezFqWsgRQGKgViTSEMyCusBQXK50bD46NeTLS3HqDLKsVeJ/ctMMq6JSAuMH76GZVb0d4Eowj4oB0Q4PFbjFsw==", "license": "MIT", "engines": { "node": ">=8", @@ -10059,13 +9678,13 @@ } }, "node_modules/rolldown": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.1.3.tgz", - "integrity": "sha512-1F1eEtUBtFvcGm1HQ9TiUIUHPQG7mSAODrhIzjxoUEFuo8OcbrGLiVLkevNgj84TE4lnHvnumwFjhJO5Eu135g==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.6.tgz", + "integrity": "sha512-vMM4q3aixf46GiF1Kok8jDPFsEpXgFWGjUHXNkNHNm+Y2adXAG2dbX91jkti3i0ZRsOlcmbuzAz1poObSHCmUA==", "dev": true, "license": "MIT", "dependencies": { - "@oxc-project/types": "=0.137.0", + "@oxc-project/types": "=0.147.0", "@rolldown/pluginutils": "^1.0.0" }, "bin": { @@ -10075,21 +9694,21 @@ "node": "^20.19.0 || >=22.12.0" }, "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.1.3", - "@rolldown/binding-darwin-arm64": "1.1.3", - "@rolldown/binding-darwin-x64": "1.1.3", - "@rolldown/binding-freebsd-x64": "1.1.3", - "@rolldown/binding-linux-arm-gnueabihf": "1.1.3", - "@rolldown/binding-linux-arm64-gnu": "1.1.3", - "@rolldown/binding-linux-arm64-musl": "1.1.3", - "@rolldown/binding-linux-ppc64-gnu": "1.1.3", - "@rolldown/binding-linux-s390x-gnu": "1.1.3", - "@rolldown/binding-linux-x64-gnu": "1.1.3", - "@rolldown/binding-linux-x64-musl": "1.1.3", - "@rolldown/binding-openharmony-arm64": "1.1.3", - "@rolldown/binding-wasm32-wasi": "1.1.3", - "@rolldown/binding-win32-arm64-msvc": "1.1.3", - "@rolldown/binding-win32-x64-msvc": "1.1.3" + "@rolldown/binding-android-arm-eabi": "1.2.6", + "@rolldown/binding-android-arm64": "1.2.6", + "@rolldown/binding-darwin-arm64": "1.2.6", + "@rolldown/binding-darwin-x64": "1.2.6", + "@rolldown/binding-freebsd-x64": "1.2.6", + "@rolldown/binding-linux-arm-gnueabihf": "1.2.6", + "@rolldown/binding-linux-arm64-gnu": "1.2.6", + "@rolldown/binding-linux-arm64-musl": "1.2.6", + "@rolldown/binding-linux-ppc64-gnu": "1.2.6", + "@rolldown/binding-linux-s390x-gnu": "1.2.6", + "@rolldown/binding-linux-x64-gnu": "1.2.6", + "@rolldown/binding-linux-x64-musl": "1.2.6", + "@rolldown/binding-openharmony-arm64": "1.2.6", + "@rolldown/binding-win32-arm64-msvc": "1.2.6", + "@rolldown/binding-win32-x64-msvc": "1.2.6" } }, "node_modules/rollup": { @@ -10213,6 +9832,7 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "devOptional": true, "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -10410,9 +10030,9 @@ } }, "node_modules/sonda": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/sonda/-/sonda-0.13.1.tgz", - "integrity": "sha512-ocQ4bSr1IaalYphlSga5UlHkywAqOm79ojfmGe8brKgHFMrqPPSjyzz0YDVpPOh9u4VbE5omYY4C9trJSUtzLg==", + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/sonda/-/sonda-0.14.0.tgz", + "integrity": "sha512-NAneRzAkk8KTW1G/Z8n3kUIUjZ8u6B1yRGq1onkD+D93CSOq/aTRVkHHutD/9R6M72Jei3AIpCbkSr8tjzZVdw==", "dev": true, "license": "MIT", "dependencies": { @@ -10676,9 +10296,9 @@ "license": "MIT" }, "node_modules/temml": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/temml/-/temml-0.13.3.tgz", - "integrity": "sha512-GLNEdf5qBWux3adbOxFus4jlds8nCdEIkkKq99m/4GGTfqnsjlVlK/i371Ux7yYSg/WNmOyAkNT/GJlZoJ0v+w==", + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/temml/-/temml-0.13.5.tgz", + "integrity": "sha512-aPkDDgunanpLNL0ql32HbolqLep+w8DRcVXRql7rWrMt/PhczdLgL4UBYYVU3BYjCNjkGq4EqwIicu/zWr1iOg==", "license": "MIT", "engines": { "node": ">=18.13.0" @@ -11080,6 +10700,7 @@ "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==", + "devOptional": true, "funding": [ { "type": "opencollective", @@ -11128,16 +10749,21 @@ } }, "node_modules/use-resize-observer": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/use-resize-observer/-/use-resize-observer-9.1.0.tgz", - "integrity": "sha512-R25VqO9Wb3asSD4eqtcxk8sJalvIOYBqS8MNZlpDSQ4l4xMQxC/J7Id9HoTqPq8FwULIn0PVW+OAqF2dyYbjow==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/use-resize-observer/-/use-resize-observer-10.0.0.tgz", + "integrity": "sha512-bR6D9uOoNB51isaK3yFs12+0Ue81jwHawsvdIyOIq5o+4ekmHn4U207IlBf3zc0fLHckhXLQtFl8moEOKcGGAQ==", + "license": "MIT", + "peerDependencies": { + "react": ">=18.2" + } + }, + "node_modules/use-sync-external-store": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", "license": "MIT", - "dependencies": { - "@juggle/resize-observer": "^3.3.1" - }, "peerDependencies": { - "react": "16.8.0 - 18", - "react-dom": "16.8.0 - 18" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "node_modules/util-deprecate": { @@ -11172,16 +10798,16 @@ } }, "node_modules/vite": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-8.1.2.tgz", - "integrity": "sha512-6YYPbRXTxx6bRXmOn7XdnQAy5DQNHhDgtjhDHI13oe4pY93kkcdGJWxpGwOm++/Wh0QpQhDrpIoVMrmrsI5AGQ==", + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.2.2.tgz", + "integrity": "sha512-cFKLV/PRgAUlIRm5WjMjJ86jrftzpqcgH+Us+DS8mI3CDNiH30Whrz8uHL3+MOLPAgqbMBAqWdAHAphOAM+z/Q==", "dev": true, "license": "MIT", "dependencies": { - "lightningcss": "^1.32.0", - "picomatch": "^4.0.4", - "postcss": "^8.5.16", - "rolldown": "~1.1.3", + "lightningcss": "^1.33.0", + "picomatch": "^4.0.5", + "postcss": "^8.5.26", + "rolldown": "~1.2.4", "tinyglobby": "^0.2.17" }, "bin": { @@ -11198,7 +10824,7 @@ }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", - "@vitejs/devtools": "^0.3.0", + "@vitejs/devtools": "^0.4.0 || ^0.5.0", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", @@ -11314,9 +10940,9 @@ "license": "MIT" }, "node_modules/vite-plugin-run": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/vite-plugin-run/-/vite-plugin-run-0.9.0.tgz", - "integrity": "sha512-Y2jaKIPtnAiQu46LJ798JV5gHRBRzGocOBX/RspfRsDbHZts/oYsvx2vQNxFLqxd0k69j4lQokYZ8dKDAqiTgA==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/vite-plugin-run/-/vite-plugin-run-0.9.1.tgz", + "integrity": "sha512-0WtCNNwJM2iBbYcNfmQjHdQGluZuyKRIXM62MY+x3B4TVuCgA6pChMUFjzD1dxrQwgEl5f6duhY4ewweV7vQJw==", "dev": true, "license": "MIT", "dependencies": { @@ -11787,31 +11413,11 @@ "workbox-core": "7.4.1" } }, - "node_modules/ws": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz", - "integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "devOptional": true, "license": "ISC" }, "node_modules/yoctocolors": { diff --git a/package.json b/package.json index 8c3758af24..0a40e9afb0 100644 --- a/package.json +++ b/package.json @@ -29,73 +29,74 @@ "generate-icons": "node scripts/generate-icons.js" }, "dependencies": { - "@formatjs/intl-localematcher": "~0.8.10", - "@formatjs/intl-segmenter": "~12.2.10", - "@formkit/auto-animate": "~0.9.0", + "@formatjs/intl-localematcher": "~0.8.13", + "@formatjs/intl-segmenter": "~12.2.13", + "@formkit/auto-animate": "~0.10.0", "@github/text-expander-element": "~2.9.4", - "@iconify-json/mingcute": "~1.2.7", + "@iconify-json/mingcute": "~1.2.8", "@justinribeiro/lite-youtube": "~1.9.0", - "@lingui/detect-locale": "~6.4.0", - "@lingui/react": "~6.4.0", + "@lingui/detect-locale": "~6.6.0", + "@lingui/react": "~6.6.0", "@szhsin/react-menu": "~4.5.2", "chroma-js": "~3.2.0", "compare-versions": "~6.1.1", - "exifreader": "~4.41.0", + "exifreader": "~4.44.0", "fast-blurhash": "~1.2.0", - "fast-equals": "~6.0.0", + "fast-equals": "~6.0.2", "flexsearch": "~0.8.212", - "fuse.js": "~7.4.2", + "fuse.js": "~7.5.0", "gifuct-js": "~2.1.2", "html-prettify": "~1.0.7", - "idb-keyval": "~6.2.6", + "idb-keyval": "~6.3.0", "intl-locale-textinfo-polyfill": "~3.0.0", "js-cookie": "~3.0.8", "just-debounce-it": "~3.2.0", "lz-string": "~1.5.0", - "masto": "~7.12.0", - "micro-memoize": "~5.1.1", - "p-queue": "~9.3.0", - "p-retry": "~8.0.0", - "preact": "10.29.3", + "masto": "~8.0.0", + "micro-memoize": "~5.1.2", + "p-queue": "~9.3.3", + "p-retry": "~8.0.1", + "preact": "10.29.8", "punycode": "~2.3.1", - "qr": "~0.6.0", + "qr": "~0.7.0", "react-hotkeys-hook": "~5.2.4", - "react-intersection-observer": "~10.0.3", + "react-intersection-observer": "~11.0.1", "react-router-dom": "6.6.2", - "react-zoom-pan-pinch": "~4.0.3", + "react-zoom-pan-pinch": "~4.1.0", "swiped-events": "~1.2.0", - "temml": "~0.13.3", + "temml": "~0.13.5", "tinyld": "~1.3.4", "toastify-js": "~1.12.0", "uid": "~2.0.2", "use-debounce": "~10.1.1", "use-long-press": "~3.3.0", - "use-resize-observer": "~9.1.0", + "use-resize-observer": "~10.0.0", "valtio": "2.3.2", "web-haptics": "~0.0.6" }, "devDependencies": { - "@emnapi/core": "~1.11.1", - "@emnapi/runtime": "~1.11.1", - "@iconify/utils": "~3.1.3", - "@lingui/babel-plugin-lingui-macro": "~6.4.0", - "@lingui/cli": "~6.4.0", - "@lingui/vite-plugin": "~6.4.0", - "@playwright/test": "~1.61.1", - "@preact/preset-vite": "~2.10.5", - "@types/node": "~26.1.0", - "oxfmt": "~0.57.0", - "postcss": "~8.5.16", + "@babel/plugin-transform-runtime": "7.29.7", + "@emnapi/core": "~1.11.3", + "@emnapi/runtime": "~1.11.3", + "@iconify/utils": "~3.1.4", + "@lingui/babel-plugin-lingui-macro": "~6.6.0", + "@lingui/cli": "~6.6.0", + "@lingui/vite-plugin": "~6.6.0", + "@playwright/test": "~1.62.1", + "@preact/preset-vite": "~2.10.6", + "@types/node": "~26.4.1", + "oxfmt": "~0.66.0", + "postcss": "~8.5.26", "postcss-dark-theme-class": "~2.0.0", - "postcss-preset-env": "~11.3.2", - "sonda": "~0.13.1", + "postcss-preset-env": "~11.5.1", + "sonda": "~0.14.0", "twitter-text": "~3.1.0", - "vite": "~8.1.2", + "vite": "~8.2.2", "vite-plugin-generate-file": "~0.3.1", "vite-plugin-html-config": "~2.0.2", "vite-plugin-pwa": "~1.3.0", "vite-plugin-remove-console": "~2.2.0", - "vite-plugin-run": "~0.9.0", + "vite-plugin-run": "~0.9.1", "workbox-cacheable-response": "~7.4.1", "workbox-expiration": "~7.4.1", "workbox-navigation-preload": "~7.4.1", @@ -105,7 +106,8 @@ }, "//notes": [ "@emnapi/core and @emnapi/runtime are temporary fixes for https://github.com/napi-rs/napi-rs/issues/3174", - "playwright uses @types/node" + "playwright uses @types/node", + "@babel/plugin-transform-runtime pins the 7.x line so npm doesn't auto-install 8.x (which requires @babel/core@^8) as an optional peer of @rolldown/plugin-babel from @lingui/vite-plugin" ], "postcss": { "plugins": { @@ -144,9 +146,9 @@ }, "allowScripts": { "core-js@2.6.12": true, - "exifreader@4.41.0": true, "esbuild@0.25.12": true, "fsevents@2.3.2": true, - "fsevents@2.3.3": true + "fsevents@2.3.3": true, + "exifreader@4.44.0": true } } diff --git a/scripts/generate-icons.js b/scripts/generate-icons.js index b18d2b1337..7fae3c6208 100644 --- a/scripts/generate-icons.js +++ b/scripts/generate-icons.js @@ -9,11 +9,12 @@ validateIconSet(icons); const outputDir = path.join(process.cwd(), 'src/iconify-icons/mingcute'); await fs.mkdir(outputDir, { recursive: true }); -const writePromises = []; +const CONCURRENCY = 64; // Prevent EMFILE errors +const writeTasks = []; parseIconSet(icons, (iconName, iconData) => { // console.log('🧬', iconName); - writePromises.push( + writeTasks.push(() => fs.writeFile( path.join(outputDir, `${iconName}.js`), `export default ${JSON.stringify(iconData)};`, @@ -21,7 +22,9 @@ parseIconSet(icons, (iconName, iconData) => { ); }); -await Promise.all(writePromises); +for (let i = 0; i < writeTasks.length; i += CONCURRENCY) { + await Promise.all(writeTasks.slice(i, i + CONCURRENCY).map((fn) => fn())); +} console.log( `Generated ${Object.keys(icons.icons).length} icons in ${outputDir}`, diff --git a/src/app.css b/src/app.css index 04b87b45b5..1ee5ff2e21 100644 --- a/src/app.css +++ b/src/app.css @@ -1012,8 +1012,8 @@ a[href^='http'][rel*='nofollow']:visited:not(:has(div)) { } .timeline:not(.flat) { > li.timeline-item-container-type-thread.timeline-item-container-middle:not( - .timeline-item-diff-author - ) { + .timeline-item-diff-author + ) { > :is(.status-link, .status-focus) { > .status > .container { > .meta { @@ -1100,8 +1100,8 @@ a[href^='http'][rel*='nofollow']:visited:not(:has(div)) { } } .status-link:active:not( - :has(:is(.media, .poll, .card, .status-card-link, button):active) -) { + :has(:is(.media, .poll, .card, .status-card-link, button):active) + ) { filter: brightness(0.95); } diff --git a/src/components/avatar.jsx b/src/components/avatar.jsx index 0eb7c481f2..95b9672cd0 100644 --- a/src/components/avatar.jsx +++ b/src/components/avatar.jsx @@ -27,6 +27,18 @@ const scheduleTask = ? (fn) => requestIdleCallback(fn, { timeout: 500 }) : (fn) => setTimeout(fn, 1); +function drawAndCountAlpha(img, sampleW, sampleH) { + if (canvas.width !== sampleW) canvas.width = sampleW; + if (canvas.height !== sampleH) canvas.height = sampleH; + ctx.drawImage(img, 0, 0, sampleW, sampleH); + const { data } = ctx.getImageData(0, 0, sampleW, sampleH); + let alphaCount = 0; + for (let i = 3; i < data.length; i += 4) { + if (data[i] <= 128) alphaCount++; + } + return alphaCount; +} + const MISSING_IMAGE_PATH_REGEX = /missing\.png$/; function Avatar({ url, staticUrl, size, alt = '', squircle, ...props }) { @@ -90,25 +102,22 @@ function Avatar({ url, staticUrl, size, alt = '', squircle, ...props }) { const scale = Math.min(1, SIZES.xxxl / Math.max(nw, nh)); const sampleW = Math.max(1, Math.round(nw * scale)); const sampleH = Math.max(1, Math.round(nh * scale)); - if (canvas.width !== sampleW) canvas.width = sampleW; - if (canvas.height !== sampleH) canvas.height = sampleH; - ctx.drawImage(img, 0, 0, sampleW, sampleH); - const { data } = ctx.getImageData(0, 0, sampleW, sampleH); - // Early-exit loop: stop once 10% of pixels have alpha <= 128 - const totalPixels = data.length / 4; - const threshold = totalPixels * 0.1; - let alphaCount = 0; - for (let i = 3; i < data.length; i += 4) { - if (data[i] <= 128 && ++alphaCount > threshold) break; - } - const hasAlpha = alphaCount > threshold; + const totalPixels = sampleW * sampleH; + const alphaCount = drawAndCountAlpha(img, sampleW, sampleH); + // 100% transparent = blank draw, not alpha; don't cache + if (alphaCount === totalPixels) return; + // At least 10% of pixels have alpha <= 128 + const hasAlpha = alphaCount > totalPixels * 0.1; if (hasAlpha) { + // Draw again to confirm + if (drawAndCountAlpha(img, sampleW, sampleH) !== alphaCount) + return; avatarRef.current?.classList.add('has-alpha'); } alphaCache.set(url, hasAlpha); } catch (e) { - // Silent fail - alphaCache.set(url, false); + // Silent fail (tainted canvas is permanent) + if (e?.name === 'SecurityError') alphaCache.set(url, false); } }); }} diff --git a/src/components/background-service.jsx b/src/components/background-service.jsx index 89ad817308..cf88c05a94 100644 --- a/src/components/background-service.jsx +++ b/src/components/background-service.jsx @@ -32,16 +32,40 @@ export default memo(function BackgroundService() { } }); + const checkingLatestNotificationRef = useRef(false); const checkLatestNotification = async (masto, instance, skipCheckMarkers) => { - if (states.notificationsLast) { - const notificationsIterator = masto.v1.notifications - .list({ - limit: 1, - sinceId: states.notificationsLast.id, - }) - .values(); - const { value: notifications } = await notificationsIterator.next(); + // Avoid overlapping checks (e.g. a slow request still in-flight when + // the next poll tick fires) + if (checkingLatestNotificationRef.current) return; + checkingLatestNotificationRef.current = true; + try { + const checkedId = states.notificationsLast?.id; + if (!checkedId) return; + + let notifications; + try { + const notificationsIterator = masto.v1.notifications + .list({ + limit: 1, + sinceId: checkedId, + }) + .values(); + ({ value: notifications } = await notificationsIterator.next()); + } catch (e) { + // Network/server error - bail out quietly, try again on next check + console.error('💥 Failed to check latest notification', e); + return; + } + + // Ignore stale response + if (states.notificationsLast?.id !== checkedId) return; + if (notifications?.length) { + const latestId = notifications[0].id; + + // Nothing new if checkedId itself is returned + if (latestId === checkedId) return; + if (skipCheckMarkers) { states.notificationsShowNew = true; } else { @@ -52,13 +76,35 @@ export default memo(function BackgroundService() { }); lastReadId = markers?.notifications?.lastReadId; } catch (e) {} + + // Stale check again after await + if (states.notificationsLast?.id !== checkedId) return; + if (lastReadId) { - states.notificationsShowNew = notifications[0].id !== lastReadId; + // Also handles race where notifications were just marked as read + // but the marker hasn't landed on the server yet + states.notificationsShowNew = latestId !== lastReadId; } else { states.notificationsShowNew = true; } } + } else if (!skipCheckMarkers && states.notificationsShowNew) { + // Self-heal: clear stuck dot if server says everything's read + try { + const markers = await masto.v1.markers.fetch({ + timeline: 'notifications', + }); + const lastReadId = markers?.notifications?.lastReadId; + if ( + lastReadId === checkedId && + states.notificationsLast?.id === checkedId + ) { + states.notificationsShowNew = false; + } + } catch (e) {} } + } finally { + checkingLatestNotificationRef.current = false; } }; @@ -96,8 +142,9 @@ export default memo(function BackgroundService() { saveStatus(entry.payload, instance, { skipThreading: true, }); + // Only actual notifications show the dot + states.notificationsShowNew = true; } - states.notificationsShowNew = true; } console.log('💥 Streaming notification loop STOPPED'); } catch (e) { diff --git a/src/components/compose-textarea.jsx b/src/components/compose-textarea.jsx index 02b1d4b084..c639c3d9e6 100644 --- a/src/components/compose-textarea.jsx +++ b/src/components/compose-textarea.jsx @@ -1,5 +1,5 @@ import { forwardRef } from 'preact/compat'; -import { useEffect, useRef, useState } from 'preact/hooks'; +import { useRef, useState } from 'preact/hooks'; import { useDebouncedCallback, useThrottledCallback } from 'use-debounce'; import { langDetector } from '../utils/browser-translator'; @@ -32,6 +32,82 @@ const SCAN_RE = new RegExp( const segmenter = new Intl.Segmenter(); +// OpaqueRange + Custom Highlight API, falls back .compose-highlight div +// https://olliewilliams.xyz/blog/opaquerange/ +const supportsNativeTextareaHighlight = + typeof HTMLTextAreaElement.prototype.createValueRange === 'function' && + typeof Highlight === 'function' && + !!CSS.highlights; + +const NATIVE_HIGHLIGHT_NAMES = { + url: 'compose-url', + mention: 'compose-mention', + hashtag: 'compose-hashtag', + 'emoji-shortcode': 'compose-emoji-shortcode', + exceeded: 'compose-exceeded', +}; + +const nativeHighlights = supportsNativeTextareaHighlight + ? Object.fromEntries( + Object.entries(NATIVE_HIGHLIGHT_NAMES).map(([type, name]) => { + const highlight = new Highlight(); + CSS.highlights.set(name, highlight); + return [type, highlight]; + }), + ) + : null; + +// Same highlights as highlightText(), but as [start, end] index ranges in raw text +function getNativeHighlightRanges(text, { maxCharacters = Infinity }) { + const ranges = { + url: [], + mention: [], + hashtag: [], + 'emoji-shortcode': [], + exceeded: [], + }; + + // Exceeded characters limit + const { composerCharacterCount } = states; + if (composerCharacterCount > maxCharacters) { + const segments = segmenter.segment(text); + for (const { index } of segments) { + if (index >= maxCharacters) { + ranges.exceeded.push([index, text.length]); + break; + } + } + return ranges; + } + + for (const match of text.matchAll(urlRegexObj)) { + const url = match[3]; + if (!url) continue; + const start = match.index + match[2].length; + ranges.url.push([start, start + url.length]); + } + for (const match of text.matchAll(MENTION_RE)) { + const mention = match[2]; + if (!mention) continue; + const start = match.index + match[1].length; + ranges.mention.push([start, start + mention.length]); + } + for (const match of text.matchAll(HASHTAG_RE)) { + const hashtag = match[2]; + if (!hashtag) continue; + const start = match.index + match[1].length; + ranges.hashtag.push([start, start + hashtag.length]); + } + for (const match of text.matchAll(SCAN_RE)) { + const shortcode = match[2]; + if (!shortcode) continue; + const start = match.index + match[1].length; + ranges['emoji-shortcode'].push([start, start + shortcode.length]); + } + + return ranges; +} + function highlightText(text, { maxCharacters = Infinity }) { // Exceeded characters limit const { composerCharacterCount } = states; @@ -68,6 +144,8 @@ function highlightText(text, { maxCharacters = Infinity }) { function autoResizeTextarea(textarea) { if (!textarea) return; + // field-sizing: content handles this (see compose.css) + if (CSS.supports('field-sizing', 'content')) return; // writing-mode is vertical, don't do this if (getComputedStyle(textarea).writingMode.includes('vertical')) return; const { value, offsetHeight, scrollHeight, clientHeight } = textarea; @@ -117,7 +195,21 @@ const Textarea = forwardRef((props, ref) => { const slowHighlightPerf = useRef(0); // increment if slow const composeHighlightRef = useRef(); + const throttleHighlightText = useThrottledCallback((text) => { + if (nativeHighlights) { + const textarea = ref.current; + if (!textarea) return; + const ranges = getNativeHighlightRanges(text, { maxCharacters }); + for (const [type, highlight] of Object.entries(nativeHighlights)) { + highlight.clear(); + for (const [start, end] of ranges[type]) { + highlight.add(textarea.createValueRange(start, end)); + } + } + // Slow highlight detection not needed assuming native highlights are faster + return; + } if (!composeHighlightRef.current) return; if (slowHighlightPerf.current > 3) { // After 3 times of lag, disable highlighting @@ -142,19 +234,26 @@ const Textarea = forwardRef((props, ref) => { // Newline to prevent multiple line breaks at the end from being collapsed, no idea why }, 500); - const debouncedAutoDetectLanguage = useDebouncedCallback(() => { - // Make use of the highlightRef to get the DOM - // Clone the dom - const dom = composeHighlightRef.current?.cloneNode(true); - if (!dom) return; - // Remove mark - dom.querySelectorAll('mark').forEach((mark) => { - mark.remove(); - }); - const text = dom.innerText?.trim(); - if (!text) return; + const debouncedAutoDetectLanguage = useDebouncedCallback((text) => { + // Strip highlighted text (URLs, mentions, etc) to avoid confusing the detector + let cleanText = text; + if (composeHighlightRef.current) { + const dom = composeHighlightRef.current.cloneNode(true); + dom.querySelectorAll('mark').forEach((mark) => { + mark.remove(); + }); + cleanText = dom.innerText || text; + } else if (nativeHighlights) { + cleanText = text + .replace(urlRegexObj, '') + .replace(MENTION_RE, '') + .replace(HASHTAG_RE, '') + .replace(SCAN_RE, ''); + } + const trimmedText = cleanText.trim(); + if (!trimmedText) return; (async () => { - const langs = await detectLangs(text); + const langs = await detectLangs(trimmedText); if (langs?.length) { onTrigger?.({ name: 'auto-detect-language', @@ -236,7 +335,7 @@ const Textarea = forwardRef((props, ref) => { autoResizeTextarea(target); props.onInput?.(e); throttleHighlightText(text); - debouncedAutoDetectLanguage(); + debouncedAutoDetectLanguage(text); }} onScroll={(e) => { if (composeHighlightRef.current) { @@ -258,11 +357,13 @@ const Textarea = forwardRef((props, ref) => { } }} /> -