git: aecffeda810f - main - www/evcc: update to 0.316.2

From: Matthias Fechner <mfechner_at_FreeBSD.org>
Date: Mon, 05 Oct 2026 21:23:50 UTC
The branch main has been updated by mfechner:

URL: https://cgit.FreeBSD.org/ports/commit/?id=aecffeda810f54cf392cf8b2c6f451d7b558cc43

commit aecffeda810f54cf392cf8b2c6f451d7b558cc43
Author:     Matthias Fechner <mfechner@FreeBSD.org>
AuthorDate: 2026-10-05 21:08:39 +0000
Commit:     Matthias Fechner <mfechner@FreeBSD.org>
CommitDate: 2026-10-05 21:23:46 +0000

    www/evcc: update to 0.316.2
    
    Switch back to vite for building till vite-plus got full native
    FreeBSD support (vite-plus tries to download linux binaries).
    Switched back to node24, node26 core-dumps while executing npm.
---
 www/evcc/Makefile                      |   63 +-
 www/evcc/distinfo                      |   14 +-
 www/evcc/files/patch-package-lock.json | 4758 +++++++++++++++++++++++++++-----
 www/evcc/files/patch-package.json      |   49 +-
 www/evcc/files/patch-vite.config.ts    |  107 +
 5 files changed, 4257 insertions(+), 734 deletions(-)

diff --git a/www/evcc/Makefile b/www/evcc/Makefile
index 5c7f26189ad7..ee4cefade2c7 100644
--- a/www/evcc/Makefile
+++ b/www/evcc/Makefile
@@ -1,8 +1,8 @@
 PORTNAME=	evcc
-DISTVERSION=	0.315.2
+DISTVERSION=	0.316.2
 CATEGORIES=	www
-MASTER_SITES=	LOCAL/mfechner/${PORTNAME}/:vpcache
-DISTFILES=	${PORTNAME}-vp-cache-${DISTVERSION}${EXTRACT_SUFX}:vpcache
+MASTER_SITES=	LOCAL/mfechner/${PORTNAME}/:npmcache
+DISTFILES=	${PORTNAME}-npm-cache-${DISTVERSION}${EXTRACT_SUFX}:npmcache
 
 MAINTAINER=	mfechner@FreeBSD.org
 COMMENT=	Extensible EV Charge Controller
@@ -13,14 +13,19 @@ LICENSE=	MIT
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
 ONLY_FOR_ARCHS=	amd64
-ONLY_FOR_ARCHS_REASON=	Npm cache only for amd64 generated
+ONLY_FOR_ARCHS_REASON=	Npm cache only for amd64 generated (rolldown freebsd-x64 binding)
 
-BUILD_DEPENDS=	vite-plus>0:devel/vite-plus
+# evcc 0.316.x ships a vite-plus based build, but plain vite 8 is used instead
+# (see patch-package.json / patch-vite.config.ts).  vite 8 publishes official
+# FreeBSD x64 native bindings (rolldown/lightningcss) as npm optional
+# packages, so they are pulled in by the npm cache and no devel/vite-plus
+# port is required.
+BUILD_DEPENDS=	npm-node24>0:www/npm-node24
 
-USES=		gmake go:1.27+,modules,no_targets nodejs:26,build tar:zstd
+USES=		gmake go:1.27+,modules,no_targets nodejs:24,build tar:zstd
 
 # Find here: https://github.com/evcc-io/evcc/releases
-_SHA=		f9cf626eef7a9813040ef2a07bc84f24ace7d913
+_SHA=		7db12597018f97076633cdd8262d434a89893fd2
 
 USE_GITHUB=	yes
 GH_ACCOUNT=	evcc-io
@@ -32,7 +37,10 @@ MAKE_ENV=	npm_config_offline=true TAG_NAME=${DISTVERSION} SHA=${_SHA}
 
 # parallel build failed in my tests, so disable it here
 MAKE_JOBS_UNSAFE=yes
-ALL_TARGET=	default
+# Build the Go binary only; the UI (dist/) is built in pre-build with plain
+# vite.  0.316.x upstream "default"/"ui" targets require the vite-plus "vp"
+# CLI, so we bypass them.
+ALL_TARGET=	build
 
 USERS=		evcc
 GROUPS=		evcc
@@ -40,23 +48,38 @@ GROUPS=		evcc
 PLIST_FILES=	bin/${PORTNAME}
 
 pre-build:
-	@cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} vp env off
-	@echo '{"latest":"","checked_at":'`/bin/date +1"%s"`',"prompted_at":0}' > ${WRKDIR}/.vite-plus/.upgrade-check.json
-	cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} vp install --offline --ignore-scripts --frozen-lockfile
-	@${CP} -f ${LOCALBASE}/lib/vite-plus/libvite_plus_cli.so ${WRKSRC}/node_modules/vite-plus/binding/vite-plus.freebsd-x64.node
-	@${CP} -f ${LOCALBASE}/lib/vite-plus/librolldown_binding.so ${WRKSRC}/node_modules/vite/dist/rolldown/shared/rolldown-binding.freebsd-x64.node
-	@${CP} -f ${LOCALBASE}/lib/vite-plus/librolldown_binding.so ${WRKSRC}/node_modules/@voidzero-dev/vite-plus-core/dist/rolldown/shared/rolldown-binding.freebsd-x64.node
+	# install node deps offline from the .npm cache distfile (extracted to
+	# ${WRKDIR}/.npm; the framework sets HOME=${WRKDIR} so it is npm's default
+	# cache).  The lockfile was generated with "npm install --force" (see
+	# make-npm-cache) so a plain "npm ci" resolves without peer warnings.
+	cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} npm ci
+	# build the UI (dist/) with plain vite; "npm run build" -> "vite build"
+	# (vite 8 ships official FreeBSD x64 native bindings via npm)
+	cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} npm run build
 
 do-install:
 	${INSTALL_PROGRAM} ${WRKSRC}/evcc ${STAGEDIR}${PREFIX}/bin
 
-# (for maintainer) helper target to generate node_modules tarball
-make-vp-cache: patch
+# to update the port
+# update version and _SHA
+# comment DISTFILES
+# make makesum
+# make clean extract do-patch
+# cd work/evcc-*
+# (for maintainer) helper target to generate the .npm cache tarball
+make-npm-cache: patch
 	@cd ${WRKDIR} && ${RM} -r .npm
-	@cd ${WRKSRC} && ${SETENV} HOME=${WRKDIR} vp env off
-	@cd ${WRKSRC} && ${SETENV} HOME=${WRKDIR} vp install --ignore-scripts
+	# --force resolves the (unpinned) storybook/react peer deps into the
+	# lockfile so the offline "npm ci" in pre-build works without peer warnings
+	@cd ${WRKSRC} && ${SETENV} HOME=${WRKDIR} npm install --force
 	@cd ${WRKDIR} \
-		&& ${TAR} -c --zstd -f ${PORTNAME}-vp-cache-${DISTVERSION}${EXTRACT_SUFX} .npm .vite-plus \
-		&& ${ECHO} "Please upload the file: scp ${WRKDIR}/${PORTNAME}-vp-cache-${DISTVERSION}${EXTRACT_SUFX} mfechner@freefall.freebsd.org:public_distfiles/${PORTNAME}/"
+		&& ${TAR} -c --zstd -f ${PORTNAME}-npm-cache-${DISTVERSION}${EXTRACT_SUFX} .npm \
+		&& ${ECHO} "Please upload the file: scp ${WRKDIR}/${PORTNAME}-npm-cache-${DISTVERSION}${EXTRACT_SUFX} mfechner@freefall.freebsd.org:public_distfiles/${PORTNAME}/"
+# cd ../..
+# make makepatch
+# make make-npm-cache
+# cp work/evcc-npm-cache* ../../distfiles/go/www_evcc/evcc-io-evcc-0.316.2_GH0/
+# uncomment DISTFILES
+# make makesum
 
 .include <bsd.port.mk>
diff --git a/www/evcc/distinfo b/www/evcc/distinfo
index 894d35ab7dab..bd7a2b0d2619 100644
--- a/www/evcc/distinfo
+++ b/www/evcc/distinfo
@@ -1,7 +1,7 @@
-TIMESTAMP = 1789805692
-SHA256 (go/www_evcc/evcc-io-evcc-0.315.2_GH0/evcc-vp-cache-0.315.2.tar.zst) = 1b68e77836f97360295189ce03268b61be64a02359a87bd8cd7b12b7522d0fd0
-SIZE (go/www_evcc/evcc-io-evcc-0.315.2_GH0/evcc-vp-cache-0.315.2.tar.zst) = 93416443
-SHA256 (go/www_evcc/evcc-io-evcc-0.315.2_GH0/go.mod) = df9e48e543c2e32a1bceb5d6ae6df7ab88254c923322dcbd63bbc0ab9e67b252
-SIZE (go/www_evcc/evcc-io-evcc-0.315.2_GH0/go.mod) = 12999
-SHA256 (go/www_evcc/evcc-io-evcc-0.315.2_GH0/evcc-io-evcc-0.315.2_GH0.tar.gz) = ebdafee9316e9e89b2f6328657c3c5a5e3aeceb1b2fdfc62cf7705237f298c31
-SIZE (go/www_evcc/evcc-io-evcc-0.315.2_GH0/evcc-io-evcc-0.315.2_GH0.tar.gz) = 3529928
+TIMESTAMP = 1791233058
+SHA256 (go/www_evcc/evcc-io-evcc-0.316.2_GH0/evcc-npm-cache-0.316.2.tar.zst) = 8a15f23ee9e2207cd03245bfb6bd339291bc9268fde3282550d214302a578a7e
+SIZE (go/www_evcc/evcc-io-evcc-0.316.2_GH0/evcc-npm-cache-0.316.2.tar.zst) = 133120255
+SHA256 (go/www_evcc/evcc-io-evcc-0.316.2_GH0/go.mod) = 65f33b035b2bc50db0b4a91e531d3013c990303d6c6d9c4e42c72406bdd04ef5
+SIZE (go/www_evcc/evcc-io-evcc-0.316.2_GH0/go.mod) = 13510
+SHA256 (go/www_evcc/evcc-io-evcc-0.316.2_GH0/evcc-io-evcc-0.316.2_GH0.tar.gz) = 03250e07448396680e38020559b7b0d8a99f2be9c9c42082c4001654409404c8
+SIZE (go/www_evcc/evcc-io-evcc-0.316.2_GH0/evcc-io-evcc-0.316.2_GH0.tar.gz) = 3609377
diff --git a/www/evcc/files/patch-package-lock.json b/www/evcc/files/patch-package-lock.json
index 75a81c9c95ae..4b87a2548c91 100644
--- a/www/evcc/files/patch-package-lock.json
+++ b/www/evcc/files/patch-package-lock.json
@@ -1,739 +1,2895 @@
---- package-lock.json.orig	2026-08-31 16:21:16.000000000 +0200
-+++ package-lock.json	2026-09-07 23:13:26.026463000 +0200
-@@ -62,14 +62,15 @@
+--- package-lock.json.orig	1970-01-01 00:00:00 UTC
++++ package-lock.json
+@@ -62,8 +62,7 @@
          "ts-json-schema-generator": "^2.9.0",
-         "tsx": "^4.23.12",
+         "tsx": "^4.23.13",
          "typescript": "^5.9.3",
 -        "vite": "npm:@voidzero-dev/vite-plus-core@0.2.6",
 -        "vite-plus": "0.2.6",
-+        "vite": "npm:@voidzero-dev/vite-plus-core@0.2.9",
-+        "vite-plus": "0.2.9",
-         "vitest": "4.1.10",
++        "vite": "8.3.2",
+         "vitest": "4.1.11",
          "vue-hot-reload-api": "^2.3.4",
          "vue-tsc": "^3.3.11",
-         "wait-on": "^9.1.0",
-         "ws": "^8.21.3",
--        "yaml": "^2.9.0"
-+        "yaml": "^2.9.0",
-+        "zrender": "^6.1.0"
+@@ -72,7 +71,7 @@
+         "yaml": "^2.9.1"
        },
        "engines": {
-         "node": ">=26.0.0",
-@@ -2829,9 +2830,9 @@
+-        "node": ">=26.0.0",
++        "node": ">=20.19.0",
+         "npm": ">=10.0.0"
        }
      },
-     "node_modules/@oxc-project/runtime": {
+@@ -430,9 +429,9 @@
+       }
+     },
+     "node_modules/@babel/parser": {
+-      "version": "7.29.8",
+-      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.8.tgz",
+-      "integrity": "sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==",
++      "version": "7.29.9",
++      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.9.tgz",
++      "integrity": "sha512-CjXrNHTnvqBVqHgdBysY3vk2T8tpJHb5/RMeHJBTyVa9xgugCB0CJTx/3oO8RV2QRQP391RWpB7D6hLjm8V9uA==",
+       "license": "MIT",
+       "dependencies": {
+         "@babel/types": "^7.29.8"
+@@ -1621,13 +1620,6 @@
+         "node": ">=6.9.0"
+       }
+     },
+-    "node_modules/@blazediff/core": {
+-      "version": "1.9.1",
+-      "resolved": "https://registry.npmjs.org/@blazediff/core/-/core-1.9.1.tgz",
+-      "integrity": "sha512-ehg3jIkYKulZh+8om/O25vkvSsXXwC+skXmyA87FFx6A/45eqOkZsBltMw/TVteb0mloiGT8oGRTcjRAz66zaA==",
+-      "dev": true,
+-      "license": "MIT"
+-    },
+     "node_modules/@codemirror/autocomplete": {
+       "version": "6.20.3",
+       "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.20.3.tgz",
+@@ -1682,18 +1674,18 @@
+       }
+     },
+     "node_modules/@codemirror/state": {
+-      "version": "6.7.5",
+-      "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.7.5.tgz",
+-      "integrity": "sha512-QjLbZmY1Au3JiRrDVYFLRD0BZ3SOKS9pR3yjIkd7u27YY8TFD9/Q9fhPnLV5l1mHFSo3hHU/N31vpwEJOx4owQ==",
++      "version": "6.7.6",
++      "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.7.6.tgz",
++      "integrity": "sha512-kAz+AncRtKuIknedxT1bq4XwXv4UowhbkHU1myPrtVb/jZtImWuV5BXzv5vK6i3kYACsdiZiQKFQQ5Mq7elW8w==",
+       "license": "MIT",
+       "dependencies": {
+         "@marijn/find-cluster-break": "^1.0.0"
+       }
+     },
+     "node_modules/@codemirror/view": {
+-      "version": "6.43.12",
+-      "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.43.12.tgz",
+-      "integrity": "sha512-Nv0vxQ19NAqvB/c2pFzjIzFlzzJl7jmdtNkwOwGbn0Ks9mFAzibvumz7cQem5cRsFA2cEw2fg+uHZGbcHupLQQ==",
++      "version": "6.43.13",
++      "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.43.13.tgz",
++      "integrity": "sha512-sihaFrUzAsYBQsL9J2t69y8nfMQGwcYmggAZsk+kjPbjYZMyuf2hU8tUNTZ+P+isb6XRr8JE22TZlJxBoVdH1A==",
+       "license": "MIT",
+       "dependencies": {
+         "@codemirror/state": "^6.7.0",
+@@ -2258,14 +2250,14 @@
+       }
+     },
+     "node_modules/@intlify/core-base": {
+-      "version": "11.4.12",
+-      "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-11.4.12.tgz",
+-      "integrity": "sha512-tvYUWgMJmk+UvLFa7ck8uRQ9m19tTI9B2e01KCAjBV7+HN2zFLnnORvMO85hM1P8DIw4MTvot1ZSBUdoR+F6jA==",
+-      "license": "MIT",
+-      "dependencies": {
+-        "@intlify/devtools-types": "11.4.12",
+-        "@intlify/message-compiler": "11.4.12",
+-        "@intlify/shared": "11.4.12"
++      "version": "11.4.13",
++      "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-11.4.13.tgz",
++      "integrity": "sha512-3qGv1/j0fl6ZSeehGaznE78A4i3hCaOeOyDh7jq7SV6ch/XGoy96xIrYuALTV3xhIqj2rktsIKcwlLZ3CbOhkA==",
++      "license": "MIT",
++      "dependencies": {
++        "@intlify/devtools-types": "11.4.13",
++        "@intlify/message-compiler": "11.4.13",
++        "@intlify/shared": "11.4.13"
+       },
+       "engines": {
+         "node": ">= 22"
+@@ -2275,13 +2267,13 @@
+       }
+     },
+     "node_modules/@intlify/devtools-types": {
+-      "version": "11.4.12",
+-      "resolved": "https://registry.npmjs.org/@intlify/devtools-types/-/devtools-types-11.4.12.tgz",
+-      "integrity": "sha512-Ctkcs8DQItaEL9HHdkyasFFcZFP59iBvZmrjiA7b72JFq/JlI6c6GPQHN7oEwbYTo8rndPMqNY7SX71aPm4MkA==",
+-      "license": "MIT",
+-      "dependencies": {
+-        "@intlify/core-base": "11.4.12",
+-        "@intlify/shared": "11.4.12"
++      "version": "11.4.13",
++      "resolved": "https://registry.npmjs.org/@intlify/devtools-types/-/devtools-types-11.4.13.tgz",
++      "integrity": "sha512-f38d2yvjNc1/c+BnTLsxTB0729clTtyy7kTxHu4FFlvI6FpmBOp7b9sLYtsKJpXSZ70kIEexvNwDSzLkIlYnlQ==",
++      "license": "MIT",
++      "dependencies": {
++        "@intlify/core-base": "11.4.13",
++        "@intlify/shared": "11.4.13"
+       },
+       "engines": {
+         "node": ">= 22"
+@@ -2291,12 +2283,12 @@
+       }
+     },
+     "node_modules/@intlify/message-compiler": {
+-      "version": "11.4.12",
+-      "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-11.4.12.tgz",
+-      "integrity": "sha512-kBczk9r44fdBYnkC5tXRWa/UaA+e9NglXE3cX7jPnDd2nHzoFHYrKGfIbn8JFZpMA9omexZZo2WxOpTvlHdjsw==",
+-      "license": "MIT",
+-      "dependencies": {
+-        "@intlify/shared": "11.4.12",
++      "version": "11.4.13",
++      "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-11.4.13.tgz",
++      "integrity": "sha512-cjKsDeWUD/i3mj0QtC8hydLCFP5mgZtTU1xZZaN9/O3FG94EXc0rTbecYpifglp26rpoJoIjSlW137VejLKsZw==",
++      "license": "MIT",
++      "dependencies": {
++        "@intlify/shared": "11.4.13",
+         "source-map-js": "^1.0.2"
+       },
+       "engines": {
+@@ -2307,9 +2299,9 @@
+       }
+     },
+     "node_modules/@intlify/shared": {
+-      "version": "11.4.12",
+-      "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-11.4.12.tgz",
+-      "integrity": "sha512-ojfehaXMFrGFcSnK3cJPaMxlrSXT8FwZUG9H4i+WKX4OFD4Yl1WKdTmfwoC0REnwIfTrnt1QhRtd8kwi/te6bQ==",
++      "version": "11.4.13",
++      "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-11.4.13.tgz",
++      "integrity": "sha512-ZjcNgEED1FtTCFb+ohWBdR21k5kvleKtM9peobQtLB83mNIfEhJK86dEbhfk+OcUrybrEbc4eDeE9UbFUVHsjQ==",
+       "license": "MIT",
+       "engines": {
+         "node": ">= 22"
+@@ -2375,15 +2367,15 @@
+       }
+     },
+     "node_modules/@lezer/common": {
+-      "version": "1.5.2",
+-      "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.5.2.tgz",
+-      "integrity": "sha512-sxQE460fPZyU3sdc8lafxiPwJHBzZRy/udNFynGQky1SePYBdhkBl1kOagA9uT3pxR8K09bOrmTUqA9wb/PjSQ==",
++      "version": "1.5.3",
++      "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.5.3.tgz",
++      "integrity": "sha512-H0iErY4e43LpXbYDyBci5W4v/RwTgGV3YzYOlJPiGZ8RY8w51kVE+xLn1tg3Z6UmSfyETvtsUK3r7YsgDQEI7Q==",
+       "license": "MIT"
+     },
+     "node_modules/@lezer/highlight": {
+-      "version": "1.2.3",
+-      "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.2.3.tgz",
+-      "integrity": "sha512-qXdH7UqTvGfdVBINrgKhDsVTJTxactNNxLk7+UMwZhU13lMHaOBlJe9Vqp907ya56Y3+ed2tlqzys7jDkTmW0g==",
++      "version": "1.2.5",
++      "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.2.5.tgz",
++      "integrity": "sha512-O1GMVKgtf5YspFaRzpmqkVgMtIk2HG9uMAbH6wdAIdNh3TVzCsch/+cRi+6l2//UGDKe6NB9BW3cvuR5ezMQ0w==",
+       "license": "MIT",
+       "dependencies": {
+         "@lezer/common": "^1.3.0"
+@@ -2416,9 +2408,9 @@
+       "license": "MIT"
+     },
+     "node_modules/@napi-rs/wasm-runtime": {
+-      "version": "1.2.3",
+-      "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.2.3.tgz",
+-      "integrity": "sha512-UMduMbqO5s5zF2NkNacMT/yK5Y5QiKvWr2+50bzIIxFDwVJ2h49b+oyjaCGPhJxd2/gC2x39EHv/gHVuu36x2Q==",
++      "version": "1.2.5",
++      "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.2.5.tgz",
++      "integrity": "sha512-HshSvXzmBxNzqejd3k/KemgQ3hdREUYFRRrgxOZ+gPljDIsO2SDZrVZMd4Z/HsxudQbE62OVyVFE8z9BCurfjA==",
+       "dev": true,
+       "license": "MIT",
+       "optional": true,
+@@ -2810,16 +2802,6 @@
+         "node": "^20.19.0 || >=22.12.0"
+       }
+     },
+-    "node_modules/@oxc-project/runtime": {
 -      "version": "0.141.0",
 -      "resolved": "https://registry.npmjs.org/@oxc-project/runtime/-/runtime-0.141.0.tgz",
 -      "integrity": "sha512-Z/6jQ0dyvE2fVjMUO7GoD4h+3q0G4lI4BWQNjaPhC4RPxaS4hF1b7/QYKB/Tl+KAQwqqKgMF54ukR/VvV5FILg==",
-+      "version": "0.143.0",
-+      "resolved": "https://registry.npmjs.org/@oxc-project/runtime/-/runtime-0.143.0.tgz",
-+      "integrity": "sha512-zIuXUf+YGIgsPk0xlQmzTY8NCSc8jE/pSfDodlQ9H3EGZABmr+AtIjXRrnpQAXuXzhDSNqZz9cuhud8hDDLvpg==",
-       "devOptional": true,
-       "license": "MIT",
-       "engines": {
-@@ -3186,9 +3187,9 @@
+-      "devOptional": true,
+-      "license": "MIT",
+-      "engines": {
+-        "node": "^20.19.0 || >=22.12.0"
+-      }
+-    },
+     "node_modules/@oxc-project/types": {
+       "version": "0.127.0",
+       "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.127.0.tgz",
+@@ -3167,797 +3149,6 @@
+         "win32"
        ]
      },
-     "node_modules/@oxfmt/binding-android-arm-eabi": {
+-    "node_modules/@oxfmt/binding-android-arm-eabi": {
 -      "version": "0.60.0",
 -      "resolved": "https://registry.npmjs.org/@oxfmt/binding-android-arm-eabi/-/binding-android-arm-eabi-0.60.0.tgz",
 -      "integrity": "sha512-1q4q4Jc8FlOMVojEisyFAVyl8h1yawNv6phjgmhGVEDeyeOdsSnSr9x0+D4mOnEKvpO5L4mxKZ/DP9X6U3A/Mw==",
-+      "version": "0.62.0",
-+      "resolved": "https://registry.npmjs.org/@oxfmt/binding-android-arm-eabi/-/binding-android-arm-eabi-0.62.0.tgz",
-+      "integrity": "sha512-pdsv0C4gPjJ8H1+sd8u0BDx+yLACTL+rgeMIOL1ln4ihSnhw8CWXtYWgvcSkyTfgGBIzFKab+d8rx9Xl4en/Kw==",
-       "cpu": [
-         "arm"
-       ],
-@@ -3203,9 +3204,9 @@
-       }
-     },
-     "node_modules/@oxfmt/binding-android-arm64": {
+-      "cpu": [
+-        "arm"
+-      ],
+-      "dev": true,
+-      "license": "MIT",
+-      "optional": true,
+-      "os": [
+-        "android"
+-      ],
+-      "engines": {
+-        "node": "^20.19.0 || >=22.12.0"
+-      }
+-    },
+-    "node_modules/@oxfmt/binding-android-arm64": {
 -      "version": "0.60.0",
 -      "resolved": "https://registry.npmjs.org/@oxfmt/binding-android-arm64/-/binding-android-arm64-0.60.0.tgz",
 -      "integrity": "sha512-tD41I6nCt9k8SQXft0CSjjU9jg6SwG7uMu7PxodSEHXl+GDW0868oy6tTtoJkyUze8YKFgTpz/k5LuPUnFiGLw==",
-+      "version": "0.62.0",
-+      "resolved": "https://registry.npmjs.org/@oxfmt/binding-android-arm64/-/binding-android-arm64-0.62.0.tgz",
-+      "integrity": "sha512-WC3YQ7uS/KtDrjmqwBviwFKe9qeoi+eXx8aX1z/ffG23Md75myjrJaQqTuJvdOLPoa4EYTjDWH0dHXfwulCVog==",
-       "cpu": [
-         "arm64"
-       ],
-@@ -3220,9 +3221,9 @@
-       }
-     },
-     "node_modules/@oxfmt/binding-darwin-arm64": {
+-      "cpu": [
+-        "arm64"
+-      ],
+-      "dev": true,
+-      "license": "MIT",
+-      "optional": true,
+-      "os": [
+-        "android"
+-      ],
+-      "engines": {
+-        "node": "^20.19.0 || >=22.12.0"
+-      }
+-    },
+-    "node_modules/@oxfmt/binding-darwin-arm64": {
 -      "version": "0.60.0",
 -      "resolved": "https://registry.npmjs.org/@oxfmt/binding-darwin-arm64/-/binding-darwin-arm64-0.60.0.tgz",
 -      "integrity": "sha512-TTpzPug96Zxdyb46KvTyIUQDdsqbumXh2TKG9C23PCT0kF7JkW56Z/quPuG9rqOFKQIi1gpRNZ7DX18LwxXPnw==",
-+      "version": "0.62.0",
-+      "resolved": "https://registry.npmjs.org/@oxfmt/binding-darwin-arm64/-/binding-darwin-arm64-0.62.0.tgz",
-+      "integrity": "sha512-GM8Yf3LjjaR1I8PD0SfeoIlwhsh9GvSF+cQ8sf624Yxnjsyumn95aFzYfKJVefblfDIiOAnZ7QVm2sa21Er/0Q==",
-       "cpu": [
-         "arm64"
-       ],
-@@ -3237,9 +3238,9 @@
-       }
-     },
-     "node_modules/@oxfmt/binding-darwin-x64": {
+-      "cpu": [
+-        "arm64"
+-      ],
+-      "dev": true,
+-      "license": "MIT",
+-      "optional": true,
+-      "os": [
+-        "darwin"
+-      ],
+-      "engines": {
+-        "node": "^20.19.0 || >=22.12.0"
+-      }
+-    },
+-    "node_modules/@oxfmt/binding-darwin-x64": {
 -      "version": "0.60.0",
 -      "resolved": "https://registry.npmjs.org/@oxfmt/binding-darwin-x64/-/binding-darwin-x64-0.60.0.tgz",
 -      "integrity": "sha512-CnOoWgQ7L+JL/YQaRJ+NyATciSfcftncm7y3kqyte1cGtFEGnStaCd1TAyrinkfQ7nRBfHrTs1/vTwUJr3WF2Q==",
-+      "version": "0.62.0",
-+      "resolved": "https://registry.npmjs.org/@oxfmt/binding-darwin-x64/-/binding-darwin-x64-0.62.0.tgz",
-+      "integrity": "sha512-d5THp7F8bCxLqNogEXDORRsQD6dosf3EyFtnXfBer6v+8tGdcWIjoDX9WaXrrF/26zOmL8qHpPTKCEvpBDmZkQ==",
-       "cpu": [
-         "x64"
-       ],
-@@ -3254,9 +3255,9 @@
-       }
-     },
-     "node_modules/@oxfmt/binding-freebsd-x64": {
+-      "cpu": [
+-        "x64"
+-      ],
+-      "dev": true,
+-      "license": "MIT",
+-      "optional": true,
+-      "os": [
+-        "darwin"
+-      ],
+-      "engines": {
+-        "node": "^20.19.0 || >=22.12.0"
+-      }
+-    },
+-    "node_modules/@oxfmt/binding-freebsd-x64": {
 -      "version": "0.60.0",
 -      "resolved": "https://registry.npmjs.org/@oxfmt/binding-freebsd-x64/-/binding-freebsd-x64-0.60.0.tgz",
 -      "integrity": "sha512-ychJo7S3hZxdO6eDZ9zM6F2lM9fpJS3EKS5CAUSWyprdLYxTu4gbaUKV/VBPTcMJwQa2Bpo+643y3OJ537pihA==",
-+      "version": "0.62.0",
-+      "resolved": "https://registry.npmjs.org/@oxfmt/binding-freebsd-x64/-/binding-freebsd-x64-0.62.0.tgz",
-+      "integrity": "sha512-1DnrtXGZooOZ0fHgAXZUaDQzBVh1CM2MNW4oBXyQ2aWKvCHjyljvT9fgBkOM0fEOb96X5eqtcfJ0YUVt9jj66g==",
-       "cpu": [
-         "x64"
-       ],
-@@ -3271,9 +3272,9 @@
-       }
-     },
-     "node_modules/@oxfmt/binding-linux-arm-gnueabihf": {
+-      "cpu": [
+-        "x64"
+-      ],
+-      "dev": true,
+-      "license": "MIT",
+-      "optional": true,
+-      "os": [
+-        "freebsd"
+-      ],
+-      "engines": {
+-        "node": "^20.19.0 || >=22.12.0"
+-      }
+-    },
+-    "node_modules/@oxfmt/binding-linux-arm-gnueabihf": {
 -      "version": "0.60.0",
 -      "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-0.60.0.tgz",
 -      "integrity": "sha512-36IH5o55T2Fx7E0feDttt+mifxN6yk9pWv4KfhAIsP0dFnUq27331OwbpOsZdoXF9soOLWm7mQUz5+UUmyec4g==",
-+      "version": "0.62.0",
-+      "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-0.62.0.tgz",
-+      "integrity": "sha512-4pQDHOYRH+Huqe0StIaWyvk2CVl/aTaqSrbZpA3/pLS2xH24ME7lBgYprhQF2fRkHBzhGGGKliwxFsDdHwx59g==",
-       "cpu": [
-         "arm"
-       ],
-@@ -3288,9 +3289,9 @@
-       }
-     },
-     "node_modules/@oxfmt/binding-linux-arm-musleabihf": {
+-      "cpu": [
+-        "arm"
+-      ],
+-      "dev": true,
+-      "license": "MIT",
+-      "optional": true,
+-      "os": [
+-        "linux"
+-      ],
+-      "engines": {
+-        "node": "^20.19.0 || >=22.12.0"
+-      }
+-    },
+-    "node_modules/@oxfmt/binding-linux-arm-musleabihf": {
 -      "version": "0.60.0",
 -      "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-0.60.0.tgz",
 -      "integrity": "sha512-G1Ve7lAa6sFBolVI2LWHfEAqy0YKh4vnioH8uYO9kAEdgM7mR40IksIx9/Zk4+vbYew/sGa4J9Q4tZ3n9gXDHA==",
-+      "version": "0.62.0",
-+      "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-0.62.0.tgz",
-+      "integrity": "sha512-X0jAaZJFMCVKhB6YyWVTQ/wN2DLsBcZKSMqTS76bF6riT+XZdtg2FPEdjDvdVbunO9cG+tWiVaEs4Zs38lxYog==",
-       "cpu": [
-         "arm"
-       ],
-@@ -3305,9 +3306,9 @@
-       }
-     },
-     "node_modules/@oxfmt/binding-linux-arm64-gnu": {
+-      "cpu": [
+-        "arm"
+-      ],
+-      "dev": true,
+-      "license": "MIT",
+-      "optional": true,
+-      "os": [
+-        "linux"
+-      ],
+-      "engines": {
+-        "node": "^20.19.0 || >=22.12.0"
+-      }
+-    },
+-    "node_modules/@oxfmt/binding-linux-arm64-gnu": {
 -      "version": "0.60.0",
 -      "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.60.0.tgz",
 -      "integrity": "sha512-LTQdRBf6uzj/h7Xk6lKzbGD2hrF/fK4YI9LIN1c0509tPUn8wRa3mCmrFQpEWJPLYGFrLFFMTYW1Ljj6VqW2Hw==",
-+      "version": "0.62.0",
-+      "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.62.0.tgz",
-+      "integrity": "sha512-682Z8T5s8T5ATArYtsejKvbIfd8LEAXyyDkKkoZVq8HND7Vx8TYLlrDjDSeYfodMeVwHOgkj13lJYR8cj6vUSg==",
-       "cpu": [
-         "arm64"
-       ],
-@@ -3325,9 +3326,9 @@
-       }
-     },
-     "node_modules/@oxfmt/binding-linux-arm64-musl": {
+-      "cpu": [
+-        "arm64"
+-      ],
+-      "dev": true,
+-      "libc": [
+-        "glibc"
+-      ],
+-      "license": "MIT",
+-      "optional": true,
+-      "os": [
+-        "linux"
+-      ],
+-      "engines": {
+-        "node": "^20.19.0 || >=22.12.0"
+-      }
+-    },
+-    "node_modules/@oxfmt/binding-linux-arm64-musl": {
 -      "version": "0.60.0",
 -      "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.60.0.tgz",
 -      "integrity": "sha512-2JMo3XPxMPx3hiqddSZYyaH+fKJm6cz0u8n1naYjP/CdOQOZW34i8lKBUfmbWiuFvd6KoYXLmhAyBuvojsYS7Q==",
-+      "version": "0.62.0",
-+      "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.62.0.tgz",
-+      "integrity": "sha512-lk25fAl7KWaLWVJcW0CHEXB7QlQZtx5eDkjpaGMK0hzXTjUe0Wmlu8IKuFHoviSOcEJedRTs4VE/506VqGxGew==",
-       "cpu": [
-         "arm64"
-       ],
-@@ -3345,9 +3346,9 @@
-       }
-     },
-     "node_modules/@oxfmt/binding-linux-ppc64-gnu": {
+-      "cpu": [
+-        "arm64"
+-      ],
+-      "dev": true,
+-      "libc": [
+-        "musl"
+-      ],
+-      "license": "MIT",
+-      "optional": true,
+-      "os": [
+-        "linux"
+-      ],
+-      "engines": {
+-        "node": "^20.19.0 || >=22.12.0"
+-      }
+-    },
+-    "node_modules/@oxfmt/binding-linux-ppc64-gnu": {
 -      "version": "0.60.0",
 -      "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-0.60.0.tgz",
 -      "integrity": "sha512-L3C+nBD13lr306tr/PjM3RMll+BVqgFrIgUyoeHuai5oueJrRLgO3j+GO5/Cbhtkf5PSlHYTI1JY7iqBd1qa6A==",
-+      "version": "0.62.0",
-+      "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-0.62.0.tgz",
-+      "integrity": "sha512-SFyNqHQLwySceWNLhiSldx7wPXRAzP0L0WcW9GegP3uWrpZGJiZlQO85NbHAFPEfxR9PhZ9qSnZryEh7+v+4Gw==",
-       "cpu": [
-         "ppc64"
-       ],
-@@ -3365,9 +3366,9 @@
-       }
-     },
-     "node_modules/@oxfmt/binding-linux-riscv64-gnu": {
+-      "cpu": [
+-        "ppc64"
+-      ],
+-      "dev": true,
+-      "libc": [
+-        "glibc"
+-      ],
+-      "license": "MIT",
+-      "optional": true,
+-      "os": [
+-        "linux"
+-      ],
+-      "engines": {
+-        "node": "^20.19.0 || >=22.12.0"
+-      }
+-    },
+-    "node_modules/@oxfmt/binding-linux-riscv64-gnu": {
 -      "version": "0.60.0",
 -      "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-0.60.0.tgz",
 -      "integrity": "sha512-M4MsmvqlxFiPtSRGyBYQSZxchEf463AOyd+Dh4/9xDpjWBsRtDUTDMFN5EdHinjVK1/eDJQ8MLpcYjpYayaCnA==",
-+      "version": "0.62.0",
-+      "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-0.62.0.tgz",
-+      "integrity": "sha512-KYj55C1ywJfHo6+aKDuEmUtVEdJALsC5GwayDGsI6FGz2GxFqNr/mA8nxVsNbJzm7sE5MRqTQ9ziImSzhYXysA==",
-       "cpu": [
-         "riscv64"
-       ],
-@@ -3385,9 +3386,9 @@
-       }
-     },
-     "node_modules/@oxfmt/binding-linux-riscv64-musl": {
+-      "cpu": [
+-        "riscv64"
+-      ],
+-      "dev": true,
+-      "libc": [
+-        "glibc"
+-      ],
+-      "license": "MIT",
+-      "optional": true,
+-      "os": [
+-        "linux"
+-      ],
+-      "engines": {
+-        "node": "^20.19.0 || >=22.12.0"
+-      }
+-    },
+-    "node_modules/@oxfmt/binding-linux-riscv64-musl": {
 -      "version": "0.60.0",
 -      "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-0.60.0.tgz",
 -      "integrity": "sha512-OH+9UskYuxRB+GxqdGkVN8f5UpwhqG8YscNo1wl8+KJ62cd7wZdGga6iGLJIf8kibF1WBwvlfDUx3cez/VXwFg==",
-+      "version": "0.62.0",
-+      "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-0.62.0.tgz",
-+      "integrity": "sha512-BhZDNo5GOU5nC378RhD0/XpvaEBHsH3HLgJp8YZX3A0InC7oivzA63HsRmiXFLtLSHAstEVrDf6fbC7Rs8Jh/A==",
-       "cpu": [
-         "riscv64"
-       ],
-@@ -3405,9 +3406,9 @@
-       }
-     },
-     "node_modules/@oxfmt/binding-linux-s390x-gnu": {
+-      "cpu": [
+-        "riscv64"
+-      ],
+-      "dev": true,
+-      "libc": [
+-        "musl"
+-      ],
+-      "license": "MIT",
+-      "optional": true,
+-      "os": [
+-        "linux"
+-      ],
+-      "engines": {
+-        "node": "^20.19.0 || >=22.12.0"
+-      }
+-    },
+-    "node_modules/@oxfmt/binding-linux-s390x-gnu": {
 -      "version": "0.60.0",
 -      "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-0.60.0.tgz",
 -      "integrity": "sha512-y7AAFutt9wFWBFOAn6+BHaV39usZmcr3YYH2385f+NHgPNpIF9HpqKp0jgUxPaUOCyG3oaX5VhJduL1Nw164rw==",
-+      "version": "0.62.0",
-+      "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-0.62.0.tgz",
-+      "integrity": "sha512-UyAFmyHkgSgUJ/wOM4p3U8AC2yAFvRH5PNBs7TnK0fObTT/XSWcdr/lAzPSWaekHaZFaMeFZyk9n93Joq3J93A==",
-       "cpu": [
-         "s390x"
-       ],
-@@ -3425,9 +3426,9 @@
-       }
-     },
-     "node_modules/@oxfmt/binding-linux-x64-gnu": {
+-      "cpu": [
+-        "s390x"
+-      ],
+-      "dev": true,
+-      "libc": [
+-        "glibc"
+-      ],
+-      "license": "MIT",
+-      "optional": true,
+-      "os": [
+-        "linux"
+-      ],
+-      "engines": {
+-        "node": "^20.19.0 || >=22.12.0"
+-      }
+-    },
+-    "node_modules/@oxfmt/binding-linux-x64-gnu": {
 -      "version": "0.60.0",
 -      "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.60.0.tgz",
 -      "integrity": "sha512-yKZ9+CXAI+1RO5nH/4Z/9M6DAsfOzd5bw/gtWk81KB4mpalMaRRSXfouc5/tHxazDmBek55HNPepNYBgaCew0Q==",
-+      "version": "0.62.0",
-+      "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.62.0.tgz",
-+      "integrity": "sha512-1iYMP0leytWazFubD/WnINJuIrzRPuoL1aWEJdlGezEzDbTxcd29R4r8IUzP2oWeKst5V02uMJgR2NILlPlG6w==",
-       "cpu": [
-         "x64"
-       ],
-@@ -3445,9 +3446,9 @@
-       }
-     },
-     "node_modules/@oxfmt/binding-linux-x64-musl": {
+-      "cpu": [
+-        "x64"
+-      ],
+-      "dev": true,
+-      "libc": [
+-        "glibc"
+-      ],
+-      "license": "MIT",
+-      "optional": true,
+-      "os": [
+-        "linux"
+-      ],
+-      "engines": {
+-        "node": "^20.19.0 || >=22.12.0"
+-      }
+-    },
+-    "node_modules/@oxfmt/binding-linux-x64-musl": {
 -      "version": "0.60.0",
 -      "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-x64-musl/-/binding-linux-x64-musl-0.60.0.tgz",
 -      "integrity": "sha512-bCUGaF6hJOYnQzLJdHLZbvGsOd5oSvGAyJhPAKum2uyLYUuXmP8vqg690DWi2hqcnIoYpqSqCrjzE5aiUAgwQg==",
-+      "version": "0.62.0",
-+      "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-x64-musl/-/binding-linux-x64-musl-0.62.0.tgz",
-+      "integrity": "sha512-4rA/URtJSTVNVAQz6Q8wf7SaRvOXVy+TizriT9hs/Y1XhLR/R+92uWKRQG8yFWRAIEBbFHJ6WevQcl/G9SXEfw==",
-       "cpu": [
-         "x64"
-       ],
-@@ -3465,9 +3466,9 @@
-       }
-     },
-     "node_modules/@oxfmt/binding-openharmony-arm64": {
+-      "cpu": [
+-        "x64"
+-      ],
+-      "dev": true,
+-      "libc": [
+-        "musl"
+-      ],
+-      "license": "MIT",
+-      "optional": true,
+-      "os": [
+-        "linux"
+-      ],
+-      "engines": {
+-        "node": "^20.19.0 || >=22.12.0"
+-      }
+-    },
+-    "node_modules/@oxfmt/binding-openharmony-arm64": {
 -      "version": "0.60.0",
 -      "resolved": "https://registry.npmjs.org/@oxfmt/binding-openharmony-arm64/-/binding-openharmony-arm64-0.60.0.tgz",
 -      "integrity": "sha512-GrUeZOvzP30ExxfCuQiyofuUGI+OmvAgFwOO5w5p9mGPlxcyuqI+6Sy9fAKFFfLQrqKYWFgc5sYA2Unj/29nPg==",
-+      "version": "0.62.0",
-+      "resolved": "https://registry.npmjs.org/@oxfmt/binding-openharmony-arm64/-/binding-openharmony-arm64-0.62.0.tgz",
-+      "integrity": "sha512-mSZuFHU2ar1KLUjXpI2QBQcJ1VsOB3mOCgQXuXCpKs19dgh4u+OaovNfrWDfiJb+ihJ2+f7YFcaO9bS2dlTCXA==",
-       "cpu": [
-         "arm64"
-       ],
-@@ -3482,9 +3483,9 @@
-       }
-     },
-     "node_modules/@oxfmt/binding-win32-arm64-msvc": {
+-      "cpu": [
+-        "arm64"
+-      ],
+-      "dev": true,
+-      "license": "MIT",
+-      "optional": true,
+-      "os": [
+-        "openharmony"
+-      ],
+-      "engines": {
+-        "node": "^20.19.0 || >=22.12.0"
+-      }
+-    },
+-    "node_modules/@oxfmt/binding-win32-arm64-msvc": {
 -      "version": "0.60.0",
 -      "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.60.0.tgz",
 -      "integrity": "sha512-WD4Q954kUl2TDJV/6q7UnE2rlKk047kXLJsr4bJ2mXRaAqNXcmV3nwKUsGCc3mz/jYDBnXtJEaBErJEybK8iQQ==",
-+      "version": "0.62.0",
-+      "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.62.0.tgz",
-+      "integrity": "sha512-OfwuhkcjDlqC4EgDojtiV9mzpLqeB9KqTOWPOjLEYBVdDCVSxqW3qzp/xcIxsbtI0UgGCnKvAqYKyY25kf5JZw==",
-       "cpu": [
-         "arm64"
-       ],
-@@ -3499,9 +3500,9 @@
-       }
-     },
-     "node_modules/@oxfmt/binding-win32-ia32-msvc": {
+-      "cpu": [
+-        "arm64"
+-      ],
+-      "dev": true,
+-      "license": "MIT",
+-      "optional": true,
+-      "os": [
+-        "win32"
+-      ],
+-      "engines": {
+-        "node": "^20.19.0 || >=22.12.0"
+-      }
+-    },
+-    "node_modules/@oxfmt/binding-win32-ia32-msvc": {
 -      "version": "0.60.0",
 -      "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.60.0.tgz",
 -      "integrity": "sha512-HqDekjr8JXzVDUP1YthDZ1Y3CBEcuZT4WX3B+1kaxj8CvZA8Y2YhcEsXqoSop3tVsgjACxjnFQFDkBo0r/jq1Q==",
-+      "version": "0.62.0",
-+      "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.62.0.tgz",
-+      "integrity": "sha512-P9uDDNFRzghO3X8QAzhkjKhK7JvtABsVn8UYtFX7uor12IAnwNt8nNIctvfWj1JkQU/kE+fmLRPiw7XlrIHsZw==",
-       "cpu": [
-         "ia32"
-       ],
-@@ -3516,9 +3517,9 @@
-       }
-     },
-     "node_modules/@oxfmt/binding-win32-x64-msvc": {
+-      "cpu": [
+-        "ia32"
+-      ],
+-      "dev": true,
+-      "license": "MIT",
+-      "optional": true,
+-      "os": [
+-        "win32"
+-      ],
+-      "engines": {
+-        "node": "^20.19.0 || >=22.12.0"
+-      }
+-    },
+-    "node_modules/@oxfmt/binding-win32-x64-msvc": {
 -      "version": "0.60.0",
 -      "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.60.0.tgz",
 -      "integrity": "sha512-tz78yhmGPKboTMHCHSaUqXK8JrmoSejgDcWeqAtg2s07ZGKQ3rH5Jn8NuXPGNG33CDbY2e9NoQWXIVEmKO21Rw==",
-+      "version": "0.62.0",
-+      "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.62.0.tgz",
-+      "integrity": "sha512-dlI5SY7XYQCiCBafntWagCR6HcAJB/NpsLtdlPx8x08+Osz8Ok1HHz1GZuusegCe/VoJ6pAnF5a4pd5OZAq7qQ==",
-       "cpu": [
-         "x64"
-       ],
-@@ -3617,9 +3618,9 @@
-       ]
-     },
-     "node_modules/@oxlint/binding-android-arm-eabi": {
+-      "cpu": [
+-        "x64"
+-      ],
+-      "dev": true,
+-      "license": "MIT",
+-      "optional": true,
+-      "os": [
+-        "win32"
+-      ],
+-      "engines": {
+-        "node": "^20.19.0 || >=22.12.0"
+-      }
+-    },
+-    "node_modules/@oxlint-tsgolint/darwin-arm64": {
+-      "version": "7.0.2001",
+-      "resolved": "https://registry.npmjs.org/@oxlint-tsgolint/darwin-arm64/-/darwin-arm64-7.0.2001.tgz",
+-      "integrity": "sha512-CUJEdbSZ54+Xy9OXqOhWLTKZKV0BBiV7C2i/ygyVmXtkUNXx5YCzN8DpSSshTAKktoL7S+tnQ/ftFG/i7X896w==",
+-      "cpu": [
+-        "arm64"
+-      ],
+-      "dev": true,
+-      "license": "MIT",
+-      "optional": true,
+-      "os": [
+-        "darwin"
+-      ]
+-    },
+-    "node_modules/@oxlint-tsgolint/darwin-x64": {
+-      "version": "7.0.2001",
+-      "resolved": "https://registry.npmjs.org/@oxlint-tsgolint/darwin-x64/-/darwin-x64-7.0.2001.tgz",
+-      "integrity": "sha512-pXfBb5BqONCcgrXQNUZWXgiYmRSWJzd97S8i41VVOh6ut0tyo+cJ5FKFpczDHxiVNfj/3e7c9B4MtztNdpIVCw==",
+-      "cpu": [
+-        "x64"
+-      ],
+-      "dev": true,
+-      "license": "MIT",
+-      "optional": true,
+-      "os": [
+-        "darwin"
+-      ]
+-    },
+-    "node_modules/@oxlint-tsgolint/linux-arm64": {
+-      "version": "7.0.2001",
+-      "resolved": "https://registry.npmjs.org/@oxlint-tsgolint/linux-arm64/-/linux-arm64-7.0.2001.tgz",
+-      "integrity": "sha512-roP7zujb/QDPzDwEKsFFpzNHHy91/Y7oX9vQXk78ekyZtcQj1QXDIMH33gjDdHBfRl4K9pZ36xhRgrP4Zr+R8A==",
+-      "cpu": [
+-        "arm64"
+-      ],
+-      "dev": true,
+-      "license": "MIT",
+-      "optional": true,
+-      "os": [
+-        "linux"
+-      ]
+-    },
+-    "node_modules/@oxlint-tsgolint/linux-x64": {
+-      "version": "7.0.2001",
+-      "resolved": "https://registry.npmjs.org/@oxlint-tsgolint/linux-x64/-/linux-x64-7.0.2001.tgz",
+-      "integrity": "sha512-UDezNqdECVmngu2TPnjaS1YoAmcTaBoI5lV9vk3VahBxoi+I5r9k3iJTT7qZoYWOXTD/7T7bNcwRgrocR6BscQ==",
+-      "cpu": [
+-        "x64"
+-      ],
+-      "dev": true,
+-      "license": "MIT",
+-      "optional": true,
+-      "os": [
+-        "linux"
+-      ]
+-    },
+-    "node_modules/@oxlint-tsgolint/win32-arm64": {
+-      "version": "7.0.2001",
+-      "resolved": "https://registry.npmjs.org/@oxlint-tsgolint/win32-arm64/-/win32-arm64-7.0.2001.tgz",
+-      "integrity": "sha512-uJZhqB6pdXLuN+AD1F5082byyQti/NPmJA77GtcFlmT2HzRelqbNls3SaIqxpjdFgvSBF9g0yOKGBkGFg7kX8Q==",
+-      "cpu": [
+-        "arm64"
+-      ],
+-      "dev": true,
+-      "license": "MIT",
+-      "optional": true,
+-      "os": [
+-        "win32"
+-      ]
+-    },
+-    "node_modules/@oxlint-tsgolint/win32-x64": {
+-      "version": "7.0.2001",
*** 4338 LINES SKIPPED ***