diff --git a/package-lock.json b/package-lock.json index b7c33a84..2fd2c294 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,8 +12,8 @@ "packages/*" ], "devDependencies": { - "@lvce-editor/eslint-config": "^18.5.0", - "eslint": "^10.8.1", + "@lvce-editor/eslint-config": "^18.14.2", + "eslint": "^10.11.0", "knip": "^6.32.2", "prettier": "^3.9.6", "typescript": "^6.0.3" @@ -718,6 +718,30 @@ "dev": true, "license": "MIT" }, + "node_modules/@cacheable/memory": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-2.2.0.tgz", + "integrity": "sha512-CTLKqLItRCEixEAewD3/j9DB3/o96gpTPD4eJ1v+DGOlxZRZncRQkGYqqnAGCscYd6RNeXfGeiuCphsPtqyIfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cacheable/utils": "^2.5.0", + "@keyv/bigmap": "^1.3.1", + "hookified": "^1.15.1", + "keyv": "^5.6.0" + } + }, + "node_modules/@cacheable/utils": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-2.5.0.tgz", + "integrity": "sha512-buipgOVDkkPXNR5+xBpDw7Zk2n1EvU7qBJCNUcL7rhQ//kfpOXPAvQ511Os0vpLYJ1pZnvudNytkQt2hst3wqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hashery": "^1.5.1", + "keyv": "^5.6.0" + } + }, "node_modules/@cspell/cspell-bundled-dicts": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-10.0.1.tgz", @@ -2036,9 +2060,9 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.7.2.tgz", - "integrity": "sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==", + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.7.3.tgz", + "integrity": "sha512-IkO+/KEUvwbVpiURZg+P7zF74z5Jxe0UgJxVni+RtoHQ6IZieXaO02kmadomap/q+l6bc/jdPGGqTjhuZnuz1Q==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -2884,12 +2908,29 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@keyv/bigmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-1.3.1.tgz", + "integrity": "sha512-WbzE9sdmQtKy8vrNPa9BRnwZh5UF4s1KTmSK0KUVLo3eff5BlQNNWDnFOouNpKfPKDnms9xynJjsMYjMaT/aFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "hashery": "^1.4.0", + "hookified": "^1.15.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "keyv": "^5.6.0" + } + }, "node_modules/@keyv/serialize": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.1.1.tgz", "integrity": "sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==", - "license": "MIT", - "optional": true + "devOptional": true, + "license": "MIT" }, "node_modules/@lvce-editor/api": { "version": "8.84.0", @@ -2977,9 +3018,9 @@ } }, "node_modules/@lvce-editor/eslint-config": { - "version": "18.5.0", - "resolved": "https://registry.npmjs.org/@lvce-editor/eslint-config/-/eslint-config-18.5.0.tgz", - "integrity": "sha512-rPSzKveZfyBbAB5bgNeCmen0UhGNkc5IEg0r56t3ZeeyNYJCqID26ec+OX9ViniVk5/uqMtd7l2ClXBC66FsyA==", + "version": "18.14.2", + "resolved": "https://registry.npmjs.org/@lvce-editor/eslint-config/-/eslint-config-18.14.2.tgz", + "integrity": "sha512-mAhDK3h7CJKemd1MTeKD0P32//22zVOMUm3ogO6U1V5WrjHXq0AmG+4we75ueA3/Sh7HLBPoBtLONxKomTCfsQ==", "dev": true, "license": "MIT", "workspaces": [ @@ -2991,16 +3032,16 @@ "@eslint/js": "10.0.1", "@eslint/json": "2.0.1", "@eslint/markdown": "8.0.3", - "@lvce-editor/eslint-plugin-devcontainer": "18.5.0", - "@lvce-editor/eslint-plugin-e2e": "18.5.0", - "@lvce-editor/eslint-plugin-eslint-config": "18.5.0", - "@lvce-editor/eslint-plugin-extension-json": "18.5.0", - "@lvce-editor/eslint-plugin-github-actions": "18.5.0", - "@lvce-editor/eslint-plugin-nvmrc": "18.5.0", - "@lvce-editor/eslint-plugin-regex": "18.5.0", - "@lvce-editor/eslint-plugin-rpc": "18.5.0", - "@lvce-editor/eslint-plugin-tsconfig": "18.5.0", - "@lvce-editor/eslint-plugin-virtual-dom": "18.5.0", + "@lvce-editor/eslint-plugin-devcontainer": "18.14.2", + "@lvce-editor/eslint-plugin-e2e": "18.14.2", + "@lvce-editor/eslint-plugin-eslint-config": "18.14.2", + "@lvce-editor/eslint-plugin-extension-json": "18.14.2", + "@lvce-editor/eslint-plugin-github-actions": "18.14.2", + "@lvce-editor/eslint-plugin-nvmrc": "18.14.2", + "@lvce-editor/eslint-plugin-regex": "18.14.2", + "@lvce-editor/eslint-plugin-rpc": "18.14.2", + "@lvce-editor/eslint-plugin-tsconfig": "18.14.2", + "@lvce-editor/eslint-plugin-virtual-dom": "18.14.2", "eslint-plugin-jest": "29.15.4", "eslint-plugin-n": "18.2.1", "eslint-plugin-package-json": "1.5.0", @@ -3011,13 +3052,13 @@ "typescript-eslint": "8.63.0" }, "peerDependencies": { - "eslint": "^10" + "eslint": ">=10.0.0 <11.0.0-0" } }, "node_modules/@lvce-editor/eslint-plugin-devcontainer": { - "version": "18.5.0", - "resolved": "https://registry.npmjs.org/@lvce-editor/eslint-plugin-devcontainer/-/eslint-plugin-devcontainer-18.5.0.tgz", - "integrity": "sha512-QD7hGfqN5ChSRNizZhLwYx8WTwnbnkccBDy5XCC8ZBHjNRs82j6s6QGlR/58CAqdH+0LXUPWGDUtJA7DZ6OW/Q==", + "version": "18.14.2", + "resolved": "https://registry.npmjs.org/@lvce-editor/eslint-plugin-devcontainer/-/eslint-plugin-devcontainer-18.14.2.tgz", + "integrity": "sha512-IrqksX9jCBpv6NTtRin0NM3CNJUsYuxDGulo7jcsZXVEqWoBsinLlFm79VOah4umZSZu4aPM2OXSRZN2A6WYxQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3025,23 +3066,23 @@ } }, "node_modules/@lvce-editor/eslint-plugin-e2e": { - "version": "18.5.0", - "resolved": "https://registry.npmjs.org/@lvce-editor/eslint-plugin-e2e/-/eslint-plugin-e2e-18.5.0.tgz", - "integrity": "sha512-21AaOQzz8I2wBmO32i+IXvAfJqnCjuc66hpHC522L+E3JOVHyCmwo/cl5X162xFdPE5cCpS+1tEoDRoyfkVgPw==", + "version": "18.14.2", + "resolved": "https://registry.npmjs.org/@lvce-editor/eslint-plugin-e2e/-/eslint-plugin-e2e-18.14.2.tgz", + "integrity": "sha512-CwbLHobs/ibVuwDIOgvNWnmLoaUZddZFoDJLmS2ytQqgVXfVKRz4G7RS6fjdFxAUaKH7HTL9wNSOuH78Ycj8Ng==", "dev": true, "license": "MIT" }, "node_modules/@lvce-editor/eslint-plugin-eslint-config": { - "version": "18.5.0", - "resolved": "https://registry.npmjs.org/@lvce-editor/eslint-plugin-eslint-config/-/eslint-plugin-eslint-config-18.5.0.tgz", - "integrity": "sha512-+VKFOWMdo+zI51wKm0a012iaJsPotyOaqcDQqVaKMpDkl2UpyJTjWgoXPICfVuPwBeQs3Fk0jnRmYPjl75va9w==", + "version": "18.14.2", + "resolved": "https://registry.npmjs.org/@lvce-editor/eslint-plugin-eslint-config/-/eslint-plugin-eslint-config-18.14.2.tgz", + "integrity": "sha512-sMoGv/4DUa9rmI+P/Il3FCI0oeE7U+8Fj9SYdufE2MJ6Ny+gNZNEcMiKkDJtW3KpH6I+Bqln28BHRQY8djLJ/w==", "dev": true, "license": "MIT" }, "node_modules/@lvce-editor/eslint-plugin-extension-json": { - "version": "18.5.0", - "resolved": "https://registry.npmjs.org/@lvce-editor/eslint-plugin-extension-json/-/eslint-plugin-extension-json-18.5.0.tgz", - "integrity": "sha512-ox1YqewUF4mQKvd/lU3wjbF/AjcwC2mu8guwd/zez1nSqhdIbaycbqt2Z3d/qrn0z/8LvJ6CI6RdwbH36XcsrA==", + "version": "18.14.2", + "resolved": "https://registry.npmjs.org/@lvce-editor/eslint-plugin-extension-json/-/eslint-plugin-extension-json-18.14.2.tgz", + "integrity": "sha512-Hffp+uLFCLvaZwQCxMOsR/MGoNfmuCtcIHyHpAztDjyIN06EboHOFo/bpx3Jz4VvfFjqCdH1NoNjHuQHvCWFIg==", "dev": true, "license": "MIT", "dependencies": { @@ -3049,9 +3090,9 @@ } }, "node_modules/@lvce-editor/eslint-plugin-github-actions": { - "version": "18.5.0", - "resolved": "https://registry.npmjs.org/@lvce-editor/eslint-plugin-github-actions/-/eslint-plugin-github-actions-18.5.0.tgz", - "integrity": "sha512-Jb7aJFHOtRtsCpVXSXVh2Ned83oDbVc6q8RywiTkXXEuFGrLedW784MkZBAVXVnJrlAkaLG/tgDML6FGbey9pg==", + "version": "18.14.2", + "resolved": "https://registry.npmjs.org/@lvce-editor/eslint-plugin-github-actions/-/eslint-plugin-github-actions-18.14.2.tgz", + "integrity": "sha512-gZdC7JLK4ahXfG3CDsxNqSAh4Kuvy1e78FOXE2TZyR4dA/r9dmSIaRRvRnI/2+zqKYCk9yAOLl33t+DwwumAsg==", "dev": true, "license": "MIT", "dependencies": { @@ -3060,9 +3101,9 @@ } }, "node_modules/@lvce-editor/eslint-plugin-nvmrc": { - "version": "18.5.0", - "resolved": "https://registry.npmjs.org/@lvce-editor/eslint-plugin-nvmrc/-/eslint-plugin-nvmrc-18.5.0.tgz", - "integrity": "sha512-VlaWBBN457IFpNbfYdzjDdIy8o3x+K1Wa5/5HBJ4dI9E6FFOqJ4xUiDYLOPrxakahaPLbF/MhOX8SIdZQh5eVA==", + "version": "18.14.2", + "resolved": "https://registry.npmjs.org/@lvce-editor/eslint-plugin-nvmrc/-/eslint-plugin-nvmrc-18.14.2.tgz", + "integrity": "sha512-nTI4akwyabUpl1p2MmZ+KJoWFwSQllZyFSLpxZMREBXx582YmEOeyauFvhnm/qUx5Yb/YK+csehsgeczf5s6sQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3070,23 +3111,23 @@ } }, "node_modules/@lvce-editor/eslint-plugin-regex": { - "version": "18.5.0", - "resolved": "https://registry.npmjs.org/@lvce-editor/eslint-plugin-regex/-/eslint-plugin-regex-18.5.0.tgz", - "integrity": "sha512-LwWUgrBCw0pXXweHIaUP7f6NwcfxWhE0rEtybgBMTd03tGgcxmnPB16aO8YdvYLiNdHF19eQfswwZq4CEAPXug==", + "version": "18.14.2", + "resolved": "https://registry.npmjs.org/@lvce-editor/eslint-plugin-regex/-/eslint-plugin-regex-18.14.2.tgz", + "integrity": "sha512-8o6YyIniWF1DxV9HaDcD2brDBD/0tq391Y1xGawzWbCZijP9zcm+CcqqByPmNJMxHeinOjiYijlHmEfGydVwHw==", "dev": true, "license": "MIT" }, "node_modules/@lvce-editor/eslint-plugin-rpc": { - "version": "18.5.0", - "resolved": "https://registry.npmjs.org/@lvce-editor/eslint-plugin-rpc/-/eslint-plugin-rpc-18.5.0.tgz", - "integrity": "sha512-tHD0sNCd23aOIEkGCZ4KG4LVcfygyRRzMPeq5p2aLAMP0bDm7kI40ccQDp9dGnjKm1eiqLfd5VFcmVRfOI432Q==", + "version": "18.14.2", + "resolved": "https://registry.npmjs.org/@lvce-editor/eslint-plugin-rpc/-/eslint-plugin-rpc-18.14.2.tgz", + "integrity": "sha512-w9dF7x94vDqv6iPOA8ipQHf5GwKIB8XhViauMMwOKeW4dtb6i0lkchT1SuiqibouGGBxuZI6nHrhO05D8Wxnrg==", "dev": true, "license": "MIT" }, "node_modules/@lvce-editor/eslint-plugin-tsconfig": { - "version": "18.5.0", - "resolved": "https://registry.npmjs.org/@lvce-editor/eslint-plugin-tsconfig/-/eslint-plugin-tsconfig-18.5.0.tgz", - "integrity": "sha512-+uF2f7UfN0YGbLudVarZ4Kz2PtxYSfktIrdF1cxq5P/PH9+1KLPSEqaf75RqIANv7wRxvG59wGS1Z8WDFAPafg==", + "version": "18.14.2", + "resolved": "https://registry.npmjs.org/@lvce-editor/eslint-plugin-tsconfig/-/eslint-plugin-tsconfig-18.14.2.tgz", + "integrity": "sha512-s+AITPGZ8wASpwYrp96DwtMfxNoNt8Mv51LKo6jwgWWROoA1V+Tc8EJIUtJJtHhMGC0qCNnuIAZXeBcCm+pwkQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3094,11 +3135,14 @@ } }, "node_modules/@lvce-editor/eslint-plugin-virtual-dom": { - "version": "18.5.0", - "resolved": "https://registry.npmjs.org/@lvce-editor/eslint-plugin-virtual-dom/-/eslint-plugin-virtual-dom-18.5.0.tgz", - "integrity": "sha512-aQb74E7VjmhWR9w367nff1ZKFnc64ChyJRO63FII0YKLQGEwJbpT1IdrbFsJUWa0DVQQ/a82kQpV83Yy6yElbg==", + "version": "18.14.2", + "resolved": "https://registry.npmjs.org/@lvce-editor/eslint-plugin-virtual-dom/-/eslint-plugin-virtual-dom-18.14.2.tgz", + "integrity": "sha512-bwi80RUdZI22dJWeVU+IEOj/BYqPtfMct6/gIPPkydHfDzanQFao63sQiXH9r4ZwK1208DcdKTYKBOINF/wJaQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "semver": "^7.7.2" + } }, "node_modules/@lvce-editor/file-system-process": { "version": "5.16.1", @@ -7490,6 +7534,20 @@ "node": ">= 0.8" } }, + "node_modules/cacheable": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-2.5.0.tgz", + "integrity": "sha512-60cyAOytib/OzBw1JNSoSV/boK1AtHryDIjvVBk7XbN4ugfkM3+Sry7fEjNgPMGgOjuaZPAp8ruZ0Cxafwyq9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cacheable/memory": "^2.2.0", + "@cacheable/utils": "^2.5.0", + "hookified": "^1.15.0", + "keyv": "^5.6.0", + "qified": "^0.10.1" + } + }, "node_modules/cacheable-lookup": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", @@ -7549,16 +7607,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cacheable-request/node_modules/keyv": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz", - "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==", - "license": "MIT", - "optional": true, - "dependencies": { - "@keyv/serialize": "^1.1.1" - } - }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -8407,9 +8455,9 @@ } }, "node_modules/eslint": { - "version": "10.8.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.8.1.tgz", - "integrity": "sha512-wqA7W2jbsC/BnV9Iv1UZpKVFkO1AdNoSmYW8NWG4HNOBbkAMvIqDZ27pI2f07dqn583NcIC44ckjAcOXDL1QbQ==", + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.11.0.tgz", + "integrity": "sha512-P7a6UEEqb9G95MYAtqkmsTbVXIYyzIfl6NGOIJk162PaahFxFyeGcrlXYFSiagECg4sEm8IseJdZBKR3rx6MsQ==", "dev": true, "license": "MIT", "workspaces": [ @@ -8421,7 +8469,7 @@ "@eslint/config-array": "^0.23.5", "@eslint/config-helpers": "^0.7.0", "@eslint/core": "^1.2.1", - "@eslint/plugin-kit": "^0.7.2", + "@eslint/plugin-kit": "^0.7.3", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", @@ -8436,7 +8484,7 @@ "esquery": "^1.7.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^8.0.0", + "file-entry-cache": "11.1.5 || >11.1.6 <12", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", @@ -9302,16 +9350,13 @@ } }, "node_modules/file-entry-cache": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "version": "11.1.5", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-11.1.5.tgz", + "integrity": "sha512-+PFTHITI08JIGhnNpGNI8T8inUpgZfk3GNEqfT9R2zZV2iFXg3CvqzSl/uEhs7TSGujYRELEANyDvS8Fj7+S7Q==", "dev": true, "license": "MIT", "dependencies": { - "flat-cache": "^4.0.0" - }, - "engines": { - "node": ">=16.0.0" + "flat-cache": "^6.1.23" } }, "node_modules/fill-range": { @@ -9358,23 +9403,21 @@ } }, "node_modules/flat-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "version": "6.1.23", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.23.tgz", + "integrity": "sha512-f++BY9pTk+983xK1FLzlLpmM0i0z+jHmx3QESGkURMXujQZz1k5wzwX6hjnQ8goaD0B+sYnDK1yZ6MTyZfUaqA==", "dev": true, "license": "MIT", "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.4" - }, - "engines": { - "node": ">=16" + "cacheable": "^2.5.0", + "flatted": "^3.4.2", + "hookified": "^1.15.0" } }, "node_modules/flatted": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", - "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.4.tgz", + "integrity": "sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==", "dev": true, "license": "ISC" }, @@ -9797,16 +9840,6 @@ "url": "https://github.com/sindresorhus/got?sponsor=1" } }, - "node_modules/got/node_modules/keyv": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz", - "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==", - "license": "MIT", - "optional": true, - "dependencies": { - "@keyv/serialize": "^1.1.1" - } - }, "node_modules/got/node_modules/type-fest": { "version": "4.41.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", @@ -9859,6 +9892,19 @@ "node": ">=8" } }, + "node_modules/hashery": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/hashery/-/hashery-1.5.1.tgz", + "integrity": "sha512-iZyKG96/JwPz1N55vj2Ie2vXbhu440zfUfJvSwEqEbeLluk7NnapfGqa7LH0mOsnDxTF85Mx8/dyR6HfqcbmbQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "hookified": "^1.15.0" + }, + "engines": { + "node": ">=20" + } + }, "node_modules/hasown": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", @@ -9872,6 +9918,13 @@ "node": ">= 0.4" } }, + "node_modules/hookified": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.15.1.tgz", + "integrity": "sha512-MvG/clsADq1GPM2KGo2nyfaWVyn9naPiXrqIe4jYjXNZQt238kWyOGrsyc/DmRAQ+Re6yeo6yX/yoNCG5KAEVg==", + "dev": true, + "license": "MIT" + }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", @@ -11677,13 +11730,6 @@ "node": ">=6" } }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, - "license": "MIT" - }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -11770,13 +11816,13 @@ } }, "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz", + "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==", + "devOptional": true, "license": "MIT", "dependencies": { - "json-buffer": "3.0.1" + "@keyv/serialize": "^1.1.1" } }, "node_modules/knip": { @@ -13882,6 +13928,26 @@ ], "license": "MIT" }, + "node_modules/qified": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/qified/-/qified-0.10.1.tgz", + "integrity": "sha512-+Owyggi9IxT1ePKGafcI87ubSmxol6smwJ+RAHDQlx9+9cPwFWDiKFFCPuWhr9ignlGpZ9vDQLw67N4dcTVFEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hookified": "^2.1.1" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/qified/node_modules/hookified": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-2.2.0.tgz", + "integrity": "sha512-p/LgFzRN5FeoD3DLS6bkUapeye6E4SI6yJs6KetENd18S+FBthqYq2amJUWpt5z0EQwwHemidjY5OqJGEKm5uA==", + "dev": true, + "license": "MIT" + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", diff --git a/package.json b/package.json index 8460f6fb..ca361739 100644 --- a/package.json +++ b/package.json @@ -37,8 +37,8 @@ "printWidth": 170 }, "devDependencies": { - "@lvce-editor/eslint-config": "^18.5.0", - "eslint": "^10.8.1", + "@lvce-editor/eslint-config": "^18.14.2", + "eslint": "^10.11.0", "knip": "^6.32.2", "prettier": "^3.9.6", "typescript": "^6.0.3" diff --git a/packages/build/src/config.ts b/packages/build/src/config.ts index 20d236cd..1b168f39 100644 --- a/packages/build/src/config.ts +++ b/packages/build/src/config.ts @@ -2,7 +2,7 @@ import { join } from 'node:path' import { pathToFileURL } from 'node:url' import { root } from './root.ts' -export const threshold = 543_000 +export const threshold = 546_000 export const instantiations = 8000 diff --git a/packages/diff-view/src/parts/GetInlineDiffEditorVirtualDom/GetInlineDiffEditorVirtualDom.ts b/packages/diff-view/src/parts/GetInlineDiffEditorVirtualDom/GetInlineDiffEditorVirtualDom.ts index ca85250c..6477fba8 100644 --- a/packages/diff-view/src/parts/GetInlineDiffEditorVirtualDom/GetInlineDiffEditorVirtualDom.ts +++ b/packages/diff-view/src/parts/GetInlineDiffEditorVirtualDom/GetInlineDiffEditorVirtualDom.ts @@ -11,6 +11,9 @@ import { getInlineDiffRows } from '../GetInlineDiffRows/GetInlineDiffRows.ts' import { getScrollBarDom } from '../GetScrollBarDom/GetScrollBarDom.ts' import { mergeClassNames } from '../MergeClassNames/MergeClassNames.ts' +const inlineDiffEditorClassName = mergeClassNames(ClassNames.Viewlet, ClassNames.DiffEditor, ClassNames.InlineDiffEditor) +const inlineDiffEditorContentClassName = mergeClassNames(ClassNames.DiffEditorContent, ClassNames.InlineDiffEditorContent) + export const getInlineDiffEditorVirtualDom = ( contentLeft: string, contentRight: string, @@ -44,14 +47,14 @@ export const getInlineDiffEditorVirtualDom = ( return [ { childCount: (scrollBarActive ? 3 : 2) + (searchVisible ? 1 : 0), - className: mergeClassNames(ClassNames.Viewlet, ClassNames.DiffEditor, ClassNames.InlineDiffEditor), + className: inlineDiffEditorClassName, onWheel: DomEventListenerFunctions.HandleWheel, type: VirtualDomElements.Div, }, ...searchHeaderDom, { childCount: contentChildCount, - className: mergeClassNames(ClassNames.DiffEditorContent, ClassNames.InlineDiffEditorContent), + className: inlineDiffEditorContentClassName, type: VirtualDomElements.Div, }, ...lineNumberDom, diff --git a/packages/diff-view/src/parts/GetLineNumberClassName/GetLineNumberClassName.ts b/packages/diff-view/src/parts/GetLineNumberClassName/GetLineNumberClassName.ts index f7bfc6bf..ac8d544b 100644 --- a/packages/diff-view/src/parts/GetLineNumberClassName/GetLineNumberClassName.ts +++ b/packages/diff-view/src/parts/GetLineNumberClassName/GetLineNumberClassName.ts @@ -5,15 +5,19 @@ import { VisibleLineType, type VisibleLine } from '../VisibleLine/VisibleLine.ts type LineNumberType = VisibleLine['type'] | InlineDiffRow['type'] +const diffEditorLineNumberDeletionClassName = mergeClassNames(ClassNames.DiffEditorLineNumber, ClassNames.DiffEditorLineNumberDeletion) +const diffEditorLineNumberInsertionClassName = mergeClassNames(ClassNames.DiffEditorLineNumber, ClassNames.DiffEditorLineNumberInsertion) +const diffEditorLineNumberMetaClassName = mergeClassNames(ClassNames.DiffEditorLineNumber, ClassNames.DiffEditorLineNumberMeta) + export const getLineNumberClassName = (type: LineNumberType = VisibleLineType.Normal): string => { if (type === VisibleLineType.Removed || type === InlineDiffRowType.Deletion) { - return mergeClassNames(ClassNames.DiffEditorLineNumber, ClassNames.DiffEditorLineNumberDeletion) + return diffEditorLineNumberDeletionClassName } if (type === VisibleLineType.Added || type === InlineDiffRowType.Insertion) { - return mergeClassNames(ClassNames.DiffEditorLineNumber, ClassNames.DiffEditorLineNumberInsertion) + return diffEditorLineNumberInsertionClassName } if (type === InlineDiffRowType.GitButtons || type === InlineDiffRowType.IncomingChange) { - return mergeClassNames(ClassNames.DiffEditorLineNumber, ClassNames.DiffEditorLineNumberMeta) + return diffEditorLineNumberMetaClassName } return ClassNames.DiffEditorLineNumber } diff --git a/packages/diff-view/src/parts/GetVisibleLinesDom/GetLineDom/GetLineDom.ts b/packages/diff-view/src/parts/GetVisibleLinesDom/GetLineDom/GetLineDom.ts index d48f0407..37fc66d9 100644 --- a/packages/diff-view/src/parts/GetVisibleLinesDom/GetLineDom/GetLineDom.ts +++ b/packages/diff-view/src/parts/GetVisibleLinesDom/GetLineDom/GetLineDom.ts @@ -6,10 +6,12 @@ import { mergeClassNames } from '../../MergeClassNames/MergeClassNames.ts' import { getRowClassName } from '../GetRowClassName/GetRowClassName.ts' import { getTokenDom } from '../GetTokenDom/GetTokenDom.ts' +const lineMissingClassName = mergeClassNames(ClassNames.EditorRow, ClassNames.DiffEditorLineMissing) + export const getLineDom = (line: VisibleLine): readonly VirtualDomNode[] => { const children = line.tokens.length === 0 ? [text('')] : line.tokens.flatMap(getTokenDom) const childCount = line.tokens.length === 0 ? 1 : line.tokens.length - const className = line.lineNumber === -1 ? mergeClassNames(ClassNames.EditorRow, ClassNames.DiffEditorLineMissing) : getRowClassName(line.type) + const className = line.lineNumber === -1 ? lineMissingClassName : getRowClassName(line.type) return [ { childCount, diff --git a/packages/diff-view/src/parts/GetWhitespaceToggleDom/GetWhitespaceToggleDom.ts b/packages/diff-view/src/parts/GetWhitespaceToggleDom/GetWhitespaceToggleDom.ts index ec17257b..49489bc7 100644 --- a/packages/diff-view/src/parts/GetWhitespaceToggleDom/GetWhitespaceToggleDom.ts +++ b/packages/diff-view/src/parts/GetWhitespaceToggleDom/GetWhitespaceToggleDom.ts @@ -11,11 +11,11 @@ const getLabel = (showWhitespace: boolean): string => { return showWhitespace ? DiffStrings.hideWhitespace() : DiffStrings.showWhitespace() } +const activeWhitespaceToggleClassName = mergeClassNames(ClassNames.DiffEditorWhitespaceToggle, ClassNames.DiffEditorWhitespaceToggleActive) + export const getWhitespaceToggleDom = (showWhitespace: boolean): readonly VirtualDomNode[] => { const label = getLabel(showWhitespace) - const className = showWhitespace - ? mergeClassNames(ClassNames.DiffEditorWhitespaceToggle, ClassNames.DiffEditorWhitespaceToggleActive) - : ClassNames.DiffEditorWhitespaceToggle + const className = showWhitespace ? activeWhitespaceToggleClassName : ClassNames.DiffEditorWhitespaceToggle return [ { childCount: 1, diff --git a/packages/e2e/src/diff.edit-right-side.ts b/packages/e2e/src/diff.edit-right-side.ts index 85d82b92..5e7db868 100644 --- a/packages/e2e/src/diff.edit-right-side.ts +++ b/packages/e2e/src/diff.edit-right-side.ts @@ -12,6 +12,7 @@ export const test: Test = async ({ Command, DiffView, expect, FileSystem, Locato await DiffView.open(`${tmpDir}/before.txt`, `${tmpDir}/after.txt`) const afterRows = Locator('.DiffEditorContentRight .DiffEditorRows') + const afterRow = afterRows.locator('.EditorRow').first() const input = Locator('.DiffEditorInput') await expect(input).toHaveCount(1) @@ -19,5 +20,5 @@ export const test: Test = async ({ Command, DiffView, expect, FileSystem, Locato await expect(input).toHaveValue('gamma ') await expect(afterRows).toHaveText('gamma beta') - await expect(afterRows.locator('.EditorRow').first()).toHaveClass('EditorRow Insertion') + await expect(afterRow).toHaveClass('EditorRow Insertion') } diff --git a/packages/e2e/src/diff.empty-after-pane-isolation.ts b/packages/e2e/src/diff.empty-after-pane-isolation.ts index bfb0252b..d2db8f58 100644 --- a/packages/e2e/src/diff.empty-after-pane-isolation.ts +++ b/packages/e2e/src/diff.empty-after-pane-isolation.ts @@ -15,8 +15,10 @@ export const test: Test = async ({ DiffView, expect, FileSystem, Locator, Worksp const beforePane = Locator('.DiffEditorContentLeft .DiffEditorRows') const afterPane = Locator('.DiffEditorContentRight .DiffEditorRows') const afterRows = Locator('.DiffEditorContentRight .DiffEditorRows') + const deletionRow = beforePane.locator('..EditorRow.Deletion') + const insertionRow = afterPane.locator('.DiffRow.Insertion') - await expect(beforePane.locator('..EditorRow.Deletion')).toHaveCount(1) + await expect(deletionRow).toHaveCount(1) await expect(afterRows).toHaveText('') - await expect(afterPane.locator('.DiffRow.Insertion')).toHaveCount(0) + await expect(insertionRow).toHaveCount(0) } diff --git a/packages/e2e/src/diff.empty-before-pane-isolation.ts b/packages/e2e/src/diff.empty-before-pane-isolation.ts index 7d160734..f646a178 100644 --- a/packages/e2e/src/diff.empty-before-pane-isolation.ts +++ b/packages/e2e/src/diff.empty-before-pane-isolation.ts @@ -15,8 +15,10 @@ export const test: Test = async ({ DiffView, expect, FileSystem, Locator, Worksp const beforePane = Locator('.DiffEditorContentLeft .DiffEditorRows') const afterPane = Locator('.DiffEditorContentRight .DiffEditorRows') const beforeRows = Locator('.DiffEditorContentLeft .DiffEditorRows') + const deletionRow = beforePane.locator('..EditorRow.Deletion') + const insertionRow = afterPane.locator('.DiffRow.Insertion') await expect(beforeRows).toHaveText('') - await expect(beforePane.locator('..EditorRow.Deletion')).toHaveCount(0) - await expect(afterPane.locator('.DiffRow.Insertion')).toHaveCount(1) + await expect(deletionRow).toHaveCount(0) + await expect(insertionRow).toHaveCount(1) } diff --git a/packages/e2e/src/diff.rust-files.ts b/packages/e2e/src/diff.rust-files.ts index 8c6c350e..d62361ef 100644 --- a/packages/e2e/src/diff.rust-files.ts +++ b/packages/e2e/src/diff.rust-files.ts @@ -26,11 +26,13 @@ export const test: Test = async ({ DiffView, expect, FileSystem, Locator, Worksp const beforePane = Locator('.DiffEditorContentLeft .DiffEditorRows') const afterPane = Locator('.DiffEditorContentRight .DiffEditorRows') + const beforeKeywords = beforePane.locator('.Token.Keyword') + const afterKeywords = afterPane.locator('.Token.Keyword') await expect(beforePane).toContainText('pub fn greet() {') await expect(beforePane).toContainText('let message = "hello";') await expect(afterPane).toContainText('pub fn greet() {') await expect(afterPane).toContainText('let message = "hello, world";') - await expect(beforePane.locator('.Token.Keyword')).toHaveCount(3) - await expect(afterPane.locator('.Token.Keyword')).toHaveCount(3) + await expect(beforeKeywords).toHaveCount(3) + await expect(afterKeywords).toHaveCount(3) } diff --git a/packages/e2e/src/diff.syntax-highlighting-html.ts b/packages/e2e/src/diff.syntax-highlighting-html.ts index 4ac19071..b702dd2a 100644 --- a/packages/e2e/src/diff.syntax-highlighting-html.ts +++ b/packages/e2e/src/diff.syntax-highlighting-html.ts @@ -32,10 +32,11 @@ export const test: Test = async ({ DiffView, expect, FileSystem, Locator, Worksp const beforePane = Locator('.DiffEditorContentLeft .DiffEditorRows') const afterPane = Locator('.DiffEditorContentRight .DiffEditorRows') + const beforeTagNames = beforePane.locator('.Token.TagName') await expect(beforePane).toContainText('') await expect(afterPane).toContainText('') await expect(beforePane).toContainText('