diff --git a/package-lock.json b/package-lock.json index 2f07b10f18..39d922a0f6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -89,11 +89,11 @@ "@vitest/coverage-v8": "^4.1.7", "@zakodium/tsconfig": "^1.0.5", "cross-env": "^10.1.0", - "cspell": "^10.0.0", + "cspell": "^10.0.1", "eslint": "^9.39.2", - "eslint-config-cheminfo-react": "^20.0.1", - "eslint-config-cheminfo-typescript": "^22.0.0", - "knip": "^6.14.2", + "eslint-config-cheminfo-react": "^20.1.0", + "eslint-config-cheminfo-typescript": "^22.1.0", + "knip": "^6.16.1", "modern-normalize": "^3.0.1", "postcss": "^8.5.15", "postcss-styled-syntax": "^0.7.1", @@ -104,7 +104,7 @@ "react-router-dom": "^7.15.1", "rimraf": "^6.1.3", "serve": "^14.2.6", - "stylelint": "^17.12.0", + "stylelint": "^17.13.0", "stylelint-config-standard": "^40.0.0", "typescript": "~6.0.3", "vite": "^8.0.14", @@ -571,9 +571,9 @@ } }, "node_modules/@cspell/cspell-bundled-dicts": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-10.0.0.tgz", - "integrity": "sha512-ci410HEkng2582oOjlRHQtlGXwh+rUC/mVcN9dObLHpKhvPgzn2S6vT56pARstxxZpcCUG/oLhn3dCqdJlVzmA==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-10.0.1.tgz", + "integrity": "sha512-WvkSDNX4Uyyj/ZgbPO6L38iFNMfK1EqsH1FteRiI2qLz6QZMXRFrIt12OqiWIplzZDDaVpBH9FCJOPJll0fjCQ==", "dev": true, "license": "MIT", "dependencies": { @@ -642,22 +642,22 @@ } }, "node_modules/@cspell/cspell-json-reporter": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-10.0.0.tgz", - "integrity": "sha512-hq5dui2ngYMZKbBauX7K1tkqlu81sX/uaCO49ZJLPjeZsE1auZLtHehDLfAr/ZXoj/dLYeQMSKiaJyE+qLVPHA==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-10.0.1.tgz", + "integrity": "sha512-/nes1RGILec3WCBcoMOd0byNTBtnJuPaVz/+ZzqYkLtY7x58VMcBG5kyP6hPyN8cIwjRADE/SR43gwdXuqk/FA==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-types": "10.0.0" + "@cspell/cspell-types": "10.0.1" }, "engines": { "node": ">=22.18.0" } }, "node_modules/@cspell/cspell-performance-monitor": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@cspell/cspell-performance-monitor/-/cspell-performance-monitor-10.0.0.tgz", - "integrity": "sha512-2vMh2pLt2dg/ArYvWjMP4v9HCm0pRhONsEJyc8oHdZyOYvX7trixX894I0M39+VBf3yWtPCEgYRh1UDXNIZRig==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@cspell/cspell-performance-monitor/-/cspell-performance-monitor-10.0.1.tgz", + "integrity": "sha512-9tVcHXwRnbazUv4WSG0h3MqV4+LgmLNgSALAQUflPPW0EMxTf7C4Dmv9cgxJyCEQrdnVKCr58nPPaahhz9LJUg==", "dev": true, "license": "MIT", "engines": { @@ -665,9 +665,9 @@ } }, "node_modules/@cspell/cspell-pipe": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-10.0.0.tgz", - "integrity": "sha512-qcgHhQvtEX8LSwIVsWrdUgiGim52lN3jT+ghlkdp72v+nBcGKsS2frEKTmbGLug+xcqppkzs6Q6VmsFp1MGtfA==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-10.0.1.tgz", + "integrity": "sha512-HPeXMD9AZ3V/qPkvQaPcak+C7cJ2z7JTHN8smd6J8L2aThLRky2cHc2OyeaHPSHB7WA47b4z2n5u5nawZhv5VQ==", "dev": true, "license": "MIT", "engines": { @@ -675,9 +675,9 @@ } }, "node_modules/@cspell/cspell-resolver": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-10.0.0.tgz", - "integrity": "sha512-8H+IUDB7SmrpcRugQ5f55qG81ZShk6nQRk+natLz41TEY98D8/LCmjHEkh/vhDPph9pVJmNUp7JcM2E1UHEa2g==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-10.0.1.tgz", + "integrity": "sha512-PIzkZHD1fGUQx1XteK2d1iQ0Mzq/maYcoB4jkvAiiR6WqP3MWYNKFdI9z+R5pOq5KgMfW+5Ig1q0oSR6h8irlA==", "dev": true, "license": "MIT", "dependencies": { @@ -688,9 +688,9 @@ } }, "node_modules/@cspell/cspell-service-bus": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-10.0.0.tgz", - "integrity": "sha512-V7eigqg/TOoKwNK4Q18wr9KGxA8U5SFcoWVS8RyAxv4mQ+yNKHhvHEbRBifjPbQDer66afOrclb2UbqkIy2SOw==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-10.0.1.tgz", + "integrity": "sha512-y6NcIGP2IdXaBL4PVH8vxsr7K27wzz3Ech87UtUtrDSXAiVEOvXgAIknEOUVp59rTlUE8Rn4IRURC6f/hgMyfw==", "dev": true, "license": "MIT", "engines": { @@ -698,9 +698,9 @@ } }, "node_modules/@cspell/cspell-types": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-10.0.0.tgz", - "integrity": "sha512-IQA++Idqb8fZzkCbHq3+T+9yG9WpeaBxomOrG2KcR/Pj0CgnovzuApYKL2cc35UWLePboKinMeqEPiweFpHVug==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-10.0.1.tgz", + "integrity": "sha512-kLgLShnWADDVreKC63pBrWkcvxgZzFIfO34Jhx/SWfuOIA3cD8AXT+HjyuLfoGJ7mUb58hv2kUziKzEy4INb1w==", "dev": true, "license": "MIT", "engines": { @@ -708,13 +708,13 @@ } }, "node_modules/@cspell/cspell-worker": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@cspell/cspell-worker/-/cspell-worker-10.0.0.tgz", - "integrity": "sha512-V5bjMldNksilnja3fu8muQmkW5/guyua1yNVOhoE2r7othSvjuDlGMl8g2bQSrWjp+UXu0dP/BEZ6JC/IfNwTA==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@cspell/cspell-worker/-/cspell-worker-10.0.1.tgz", + "integrity": "sha512-L2bJerfuYOls2wEknm8FmynLtj/G7O4UqX9I/HznRggEW6i2yZIxagDetpVDNowpyavNHJ3SJtUFiyMiZc16Sw==", "dev": true, "license": "MIT", "dependencies": { - "cspell-lib": "10.0.0" + "cspell-lib": "10.0.1" }, "engines": { "node": ">=22.18.0" @@ -742,13 +742,13 @@ "license": "MIT" }, "node_modules/@cspell/dict-bash": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-bash/-/dict-bash-4.2.2.tgz", - "integrity": "sha512-kyWbwtX3TsCf5l49gGQIZkRLaB/P8g73GDRm41Zu8Mv51kjl2H7Au0TsEvHv7jzcsRLS6aUYaZv6Zsvk1fOz+Q==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/@cspell/dict-bash/-/dict-bash-4.2.3.tgz", + "integrity": "sha512-ljUZoKHbDqw5Sx0qpL2qTUlmkmr+vhZH/sCNrNaBZKTbdgiswErSnIF1jRbGmEitJNxHRHWsuZyVgnTGfVO1Yw==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/dict-shell": "1.1.2" + "@cspell/dict-shell": "1.2.0" } }, "node_modules/@cspell/dict-companies": { @@ -780,9 +780,9 @@ "license": "MIT" }, "node_modules/@cspell/dict-css": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-css/-/dict-css-4.1.1.tgz", - "integrity": "sha512-y/Vgo6qY08e1t9OqR56qjoFLBCpi4QfWMf2qzD1l9omRZwvSMQGRPz4x0bxkkkU4oocMAeztjzCsmLew//c/8w==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-css/-/dict-css-4.1.2.tgz", + "integrity": "sha512-+ylGoKdwZ2sVOCOnU2Eq5wDZx+RaVX3HoKyNHGGsFvhSw6IidQ6tH/mAPKBDofViHJoWCPNlklE0lTr6MDG3QA==", "dev": true, "license": "MIT" }, @@ -794,9 +794,9 @@ "license": "MIT" }, "node_modules/@cspell/dict-data-science": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/@cspell/dict-data-science/-/dict-data-science-2.0.13.tgz", - "integrity": "sha512-l1HMEhBJkPmw4I2YGVu2eBSKM89K9pVF+N6qIr5Uo5H3O979jVodtuwP8I7LyPrJnC6nz28oxeGRCLh9xC5CVA==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/@cspell/dict-data-science/-/dict-data-science-2.0.14.tgz", + "integrity": "sha512-jl6Ds4u5u5JT+yY30pWQpAbdCHfy3lCcNkLbpL/AZKoUaLEoXbaYsps9xQtvD7DyaiXxiLZkdH2yHHXtoFtZyg==", "dev": true, "license": "MIT" }, @@ -829,9 +829,9 @@ "license": "MIT" }, "node_modules/@cspell/dict-en_us": { - "version": "4.4.33", - "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.4.33.tgz", - "integrity": "sha512-zWftVqfUStDA37wO1ZNDN1qMJOfcxELa8ucHW8W8wBAZY3TK5Nb6deLogCK/IJi/Qljf30dwwuqqv84Qqle9Tw==", + "version": "4.4.35", + "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.4.35.tgz", + "integrity": "sha512-xWpxBCc/FzzMMo/A+0qwARVaIIhR0Ql8yhhv4rvsvg+GfQF+LG9yzg2GwTM5N2rjvzmM3nKuR9zxFZq2I6fJSg==", "dev": true, "license": "MIT" }, @@ -843,9 +843,9 @@ "license": "CC BY-SA 4.0" }, "node_modules/@cspell/dict-en-gb-mit": { - "version": "3.1.22", - "resolved": "https://registry.npmjs.org/@cspell/dict-en-gb-mit/-/dict-en-gb-mit-3.1.22.tgz", - "integrity": "sha512-xE5Vg6gGdMkZ1Ep6z9SJMMioGkkT1GbxS5Mm0U3Ey1/H68P0G7cJcyiVr1CARxFbLqKE4QUpoV1o6jz1Z5Yl9Q==", + "version": "3.1.24", + "resolved": "https://registry.npmjs.org/@cspell/dict-en-gb-mit/-/dict-en-gb-mit-3.1.24.tgz", + "integrity": "sha512-Oowb/Uzkh7OmDRdCcETzMc9imEb4IpLlHJXoYjX8A8DS2X/54gqSjI915JFB8hKtFjBko5OM0BLQ+6cZhFEMmQ==", "dev": true, "license": "MIT" }, @@ -990,13 +990,13 @@ "license": "MIT" }, "node_modules/@cspell/dict-markdown": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/@cspell/dict-markdown/-/dict-markdown-2.0.16.tgz", - "integrity": "sha512-976RRqKv6cwhrxdFCQP2DdnBVB86BF57oQtPHy4Zbf4jF/i2Oy29MCrxirnOBalS1W6KQeto7NdfDXRAwkK4PQ==", + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@cspell/dict-markdown/-/dict-markdown-2.0.17.tgz", + "integrity": "sha512-H8bAxih6U8NOnSPL7R8My+tqjaB4tmnJTjERuz4zYqmf+cH+5xshX3UVgKlwWFcyjsYfv/zEDuRdMctQv1q6HQ==", "dev": true, "license": "MIT", "peerDependencies": { - "@cspell/dict-css": "^4.1.1", + "@cspell/dict-css": "^4.1.2", "@cspell/dict-html": "^4.0.15", "@cspell/dict-html-symbol-entities": "^4.0.5", "@cspell/dict-typescript": "^3.2.3" @@ -1017,9 +1017,9 @@ "license": "MIT" }, "node_modules/@cspell/dict-npm": { - "version": "5.2.38", - "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.2.38.tgz", - "integrity": "sha512-21ucGRPYYhr91C2cDBoMPTrcIOStQv33xOqJB0JLoC5LAs2Sfj9EoPGhGb+gIFVHz6Ia7JQWE2SJsOVFJD1wmg==", + "version": "5.2.41", + "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.2.41.tgz", + "integrity": "sha512-To3xsfRmMBYVXtWVEdUgV35M9a/JZ54dSuoY6m6D3uHKKL3I326Wmy4xifZ3PU8MQaWhyEH7zbIcUEtKwTQMcA==", "dev": true, "license": "MIT" }, @@ -1045,13 +1045,13 @@ "license": "MIT" }, "node_modules/@cspell/dict-python": { - "version": "4.2.26", - "resolved": "https://registry.npmjs.org/@cspell/dict-python/-/dict-python-4.2.26.tgz", - "integrity": "sha512-hbjN6BjlSgZOG2dA2DtvYNGBM5Aq0i0dHaZjMOI9K/9vRicVvKbcCiBSSrR3b+jwjhQL5ff7HwG5xFaaci0GQA==", + "version": "4.2.27", + "resolved": "https://registry.npmjs.org/@cspell/dict-python/-/dict-python-4.2.27.tgz", + "integrity": "sha512-Rj6xQgYS4X6ienjgAZF+njA0GRY4oSPouJWv0vfikCTn6EWlfk0V6Dy1HP3Migj1O+IC2NmespgVq+BZNSp8OA==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/dict-data-science": "^2.0.13" + "@cspell/dict-data-science": "^2.0.14" } }, "node_modules/@cspell/dict-r": { @@ -1083,9 +1083,9 @@ "license": "MIT" }, "node_modules/@cspell/dict-shell": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-shell/-/dict-shell-1.1.2.tgz", - "integrity": "sha512-WqOUvnwcHK1X61wAfwyXq04cn7KYyskg90j4lLg3sGGKMW9Sq13hs91pqrjC44Q+lQLgCobrTkMDw9Wyl9nRFA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-shell/-/dict-shell-1.2.0.tgz", + "integrity": "sha512-PVctvT22lJ49niMiakO8xieY7ELCAzjSqhejWR7bAMb5AZ9F4WDEs+XdGMnoVHWeXq7K5rcepLPmEJb+37zzIw==", "dev": true, "license": "MIT" }, @@ -1146,13 +1146,13 @@ "license": "MIT" }, "node_modules/@cspell/dynamic-import": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-10.0.0.tgz", - "integrity": "sha512-fMqu/5Ma1Q5ZCR/Par+Q4pvaTKmx5pKZzQmkwld2hNounVdk2OaIPM9MzpNn6I1mLk5J+wTnIZmfcWNAzNP9aQ==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-10.0.1.tgz", + "integrity": "sha512-mP1gdq00aIcH8HxNMqnH11X6BKxLcneDtFgl/ecjIKnaGKwi44m8AndP5Kr4ODaYdl8UUw9O3dJh7KaQXnLHZQ==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/url": "10.0.0", + "@cspell/url": "10.0.1", "import-meta-resolve": "^4.2.0" }, "engines": { @@ -1160,9 +1160,9 @@ } }, "node_modules/@cspell/filetypes": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@cspell/filetypes/-/filetypes-10.0.0.tgz", - "integrity": "sha512-UP57j9yrDtlCHpFxc/eGho1m8DP5olfu9KRWwd5fiqL9nMSE2rUJtPzQyvqmDwO5bVZt3B+fTVdo4gxuiqw25A==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@cspell/filetypes/-/filetypes-10.0.1.tgz", + "integrity": "sha512-Z5S35giU5IW49fBBq6BksUbE8PC4IYPfaKuwl5Nl9jkf/OkAKiBmCowKX45NzRUQInwK/GSqqIUifrNeI6LdLw==", "dev": true, "license": "MIT", "engines": { @@ -1170,9 +1170,9 @@ } }, "node_modules/@cspell/rpc": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@cspell/rpc/-/rpc-10.0.0.tgz", - "integrity": "sha512-QrpOZMwz2pAjvl6Hky2PauYoMpLCASn3osjn7uKUbgFV70sahyj6tmx4rRgRX7vHu2WQLZev+YsuO4EujiBDOg==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@cspell/rpc/-/rpc-10.0.1.tgz", + "integrity": "sha512-axSRKv3zEAmBm66iD/FV/MPmE4/Yf7c3PZiwTW894Yd3iEhtn3KPKeTrqQ2/tDrhB1Z2qTsap/Hue0MK4o5WXg==", "dev": true, "license": "MIT", "engines": { @@ -1180,9 +1180,9 @@ } }, "node_modules/@cspell/strong-weak-map": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-10.0.0.tgz", - "integrity": "sha512-JRsato0s2IjYdsng+AGL6oAqgZVQgih5aWKdmxs21H6EdhMaoFDmRE5kXm/RT5a6OMdtnzQM9DqeToqBChWIOQ==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-10.0.1.tgz", + "integrity": "sha512-lenN1DVyPi8nJLSMSJJ670ddTjyiruLueuSZO1qLcxBqUhgxDt/mALu9N/1m6WdOVcg6m/5cLiZVg2KOo2UzRw==", "dev": true, "license": "MIT", "engines": { @@ -1190,9 +1190,9 @@ } }, "node_modules/@cspell/url": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@cspell/url/-/url-10.0.0.tgz", - "integrity": "sha512-q+0pHQ8DbqjemyaOn/mTtBRbCuKDqhnsVbZ6J9zkTsxPgMpccjy0s5oLXwomfrrxMRBH+UcbERwtUmE+SbnoIQ==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@cspell/url/-/url-10.0.1.tgz", + "integrity": "sha512-abYYgI29wJhWIfWTYrYuzRYDcHQUQ1N5ylnhxYn1NJnIQMqUWGLbDmt12JABtZ+R6h6UNatQrS7rhP86etvJyQ==", "dev": true, "license": "MIT", "engines": { @@ -1555,15 +1555,15 @@ "license": "MIT" }, "node_modules/@es-joy/jsdoccomment": { - "version": "0.86.0", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.86.0.tgz", - "integrity": "sha512-ukZmRQ81WiTpDWO6D/cTBM7XbrNtutHKvAVnZN/8pldAwLoJArGOvkNyxPTBGsPjsoaQBJxlH+tE2TNA/92Qgw==", + "version": "0.87.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.87.0.tgz", + "integrity": "sha512-mFXZloZMzuJZXSHUmAFu/pXTk0ZJTJBluuAkrvbzidpTN8W6F2bpRFuedSH+85kbdlRLJqc+gfN+kD3JOLJK5g==", "dev": true, "license": "MIT", "dependencies": { - "@types/estree": "^1.0.8", - "@typescript-eslint/types": "^8.58.0", - "comment-parser": "1.4.6", + "@types/estree": "^1.0.9", + "@typescript-eslint/types": "^8.59.4", + "comment-parser": "1.4.7", "esquery": "^1.7.0", "jsdoc-type-pratt-parser": "~7.2.0" }, @@ -1967,9 +1967,9 @@ } }, "node_modules/@oxc-parser/binding-android-arm-eabi": { - "version": "0.130.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-android-arm-eabi/-/binding-android-arm-eabi-0.130.0.tgz", - "integrity": "sha512-h/xYU8/7ADWzVSf5I+YalLpj33LOy9CI/zgbJNIZ5eunRBG+Czqa3lZsvuPHHf3rOt6z1c5+UzoxjbAzAvhwVw==", + "version": "0.133.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-android-arm-eabi/-/binding-android-arm-eabi-0.133.0.tgz", + "integrity": "sha512-l/44caGse+VpnY9gx0yvvc5QnnG3yG1FO3KZgYvNL1GZrfK86zIwAOgGEVlxDyRymzrU/KHiblPFpevKOmJmUA==", "cpu": [ "arm" ], @@ -1984,9 +1984,9 @@ } }, "node_modules/@oxc-parser/binding-android-arm64": { - "version": "0.130.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-android-arm64/-/binding-android-arm64-0.130.0.tgz", - "integrity": "sha512-oFWFJrsGv9siFM4HjMqKNB7IuIZD/SMmZdCXl8xyx7lDplGvPKyewpOo272rSWgMXe2Wx7bWI0Yj+gkHv4qbeg==", + "version": "0.133.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-android-arm64/-/binding-android-arm64-0.133.0.tgz", + "integrity": "sha512-KUHmPMziLBp4u+zbrLdB7iWS7KshuZe+RAp7ELnY9SI9nNXBZ+dp8fiBqWOxhXqn+FQg3a4UcQhwmsJOKV8Jjg==", "cpu": [ "arm64" ], @@ -2001,9 +2001,9 @@ } }, "node_modules/@oxc-parser/binding-darwin-arm64": { - "version": "0.130.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-darwin-arm64/-/binding-darwin-arm64-0.130.0.tgz", - "integrity": "sha512-sGUzupdTplK9jQg7eJZ878HfEgQjJNBc6dAYVWJ9W5aU+J8rLfRJhTVsKThiu1pNwm6Y1qKCcbC6WhNWSXR3Ig==", + "version": "0.133.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-darwin-arm64/-/binding-darwin-arm64-0.133.0.tgz", + "integrity": "sha512-q8dWmnU/8ea2tga9w2f1PinQ5rcMPDUGkF64T189b65YMjUomET4oy5oRldOr4AwOQkneOG/Zttnz1Dvrc62wg==", "cpu": [ "arm64" ], @@ -2018,9 +2018,9 @@ } }, "node_modules/@oxc-parser/binding-darwin-x64": { - "version": "0.130.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-darwin-x64/-/binding-darwin-x64-0.130.0.tgz", - "integrity": "sha512-PsB4cdCISbC00Uy8eiD8bc2AkGWjZqrSrJnkBFuG2ptrrf6mZ2F5gLFSjOAVMMgZPg8B1D7OydJwLWSfyI2Plg==", + "version": "0.133.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-darwin-x64/-/binding-darwin-x64-0.133.0.tgz", + "integrity": "sha512-cOKeIELIB2bJnCKwqx4Rdj+1Lss/U6uCbLxRySZrhyOOQa1flKhwZFjEHRHxk8fU1NKmhK5OnTdPQ4CpjuFuVw==", "cpu": [ "x64" ], @@ -2035,9 +2035,9 @@ } }, "node_modules/@oxc-parser/binding-freebsd-x64": { - "version": "0.130.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-freebsd-x64/-/binding-freebsd-x64-0.130.0.tgz", - "integrity": "sha512-DgABp3l38hS77JbXCV4qk1+n6DPym5u8zzwuweokezm2tX194nDSJDENbDRECxVsiNbprKATLbk+Z5wlHT0OHw==", + "version": "0.133.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-freebsd-x64/-/binding-freebsd-x64-0.133.0.tgz", + "integrity": "sha512-OpaSv4pW3KgFrMYQxTaS0aOE4T1DQF3qZE/4B6uqqv1KgPWWd4UQhJALi8PJPX1RRV5K7ThKXRfF7qGg2+3l1A==", "cpu": [ "x64" ], @@ -2052,9 +2052,9 @@ } }, "node_modules/@oxc-parser/binding-linux-arm-gnueabihf": { - "version": "0.130.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-0.130.0.tgz", - "integrity": "sha512-4Kn3CTEmwFrzhTSC/JuUW16qovmaMdX7jeSKbL8w0pLtLww7To1a2XJi9Z5uD8QWUkfUHhqfV+VD6dVzBnWzoA==", + "version": "0.133.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-0.133.0.tgz", + "integrity": "sha512-JGK1wlGrGwxBIlVSF7KWTX1/ru6BEtf28fRROztDRkLfiW+Kxa4onnriezMIiogfn9hVw2KzYcKiLjkLR2ns8A==", "cpu": [ "arm" ], @@ -2069,9 +2069,9 @@ } }, "node_modules/@oxc-parser/binding-linux-arm-musleabihf": { - "version": "0.130.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-0.130.0.tgz", - "integrity": "sha512-D35KZM3F4rRu1uAFKyBlg3Gaf/ybCjyaPR1hfgvk5ex8NtcTmRgc0JgSighEyNg96TPrFhemFba68SZuxaha8w==", + "version": "0.133.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-0.133.0.tgz", + "integrity": "sha512-yuZO533Ftonxn/iyoqQzURzLQHMspvsIyfiCSNi1t/ER4eIQaR0SsmUOUm5b/lmSig7IWIUa5/BrbEkAPwcilQ==", "cpu": [ "arm" ], @@ -2086,13 +2086,16 @@ } }, "node_modules/@oxc-parser/binding-linux-arm64-gnu": { - "version": "0.130.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.130.0.tgz", - "integrity": "sha512-Q9o7oVlo955KHwS8l1u0bCzIx+JsZUA3XToLXC+MsMhye/9LeBQbt84nh120cl2XLy+TEzvugYDiHShg5yaX6Q==", + "version": "0.133.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.133.0.tgz", + "integrity": "sha512-hvpbqT5pN2rR+3+xtWeizwfR/aZ0vGceg6TqYMl+ToxMpk9/tmnX7kSvQnfEUkoua8mhogzvIKsAkn0wxgblBA==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2103,13 +2106,16 @@ } }, "node_modules/@oxc-parser/binding-linux-arm64-musl": { - "version": "0.130.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.130.0.tgz", - "integrity": "sha512-EiJ/gC0ljbcwVpycC8YWw6ggMbtsPX8XMOt0mPx0aqWeMsNR+L9m05Flbvd5T+GlivG+GkSWQL7tM9SRFpM/dw==", + "version": "0.133.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.133.0.tgz", + "integrity": "sha512-wJQGamIosQBoJHW9+S5XxrtKRo3eyJxsnS1XCPrqN0LHi8uw1pTqqTfn3t/NVuvbBg7Pumn4ez9Eidgcn0xbEg==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -2120,13 +2126,16 @@ } }, "node_modules/@oxc-parser/binding-linux-ppc64-gnu": { - "version": "0.130.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-0.130.0.tgz", - "integrity": "sha512-b+h/lsLLurp756dMGizNs5uPaJfyEdWrTcV5t8M609jWm1DEHB1StpRXCkyvwtkJx3m+qL5BNQ0dEKan/4yGFA==", + "version": "0.133.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-0.133.0.tgz", + "integrity": "sha512-Koaz32/O5+abIfrNGdyndgRvdOZ9jEf5/z3Ep9h3h2QWpdDiUQpVwgH0OcMXCs+l9aXxPLtkupqyVig9W6FDKw==", "cpu": [ "ppc64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2137,13 +2146,16 @@ } }, "node_modules/@oxc-parser/binding-linux-riscv64-gnu": { - "version": "0.130.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-0.130.0.tgz", - "integrity": "sha512-O19Cil83XAyjEFfo8WhkMwY58ALqZ7ckjGL+25mjMIuF84urWBeANH0FC8B8BsSSygWU3/1aY3ADdDbp+wlBnw==", + "version": "0.133.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-0.133.0.tgz", + "integrity": "sha512-R4vOjWzxhnNWHnVLeiB6jNuIifdy9vcMXZGPc7StXcxBovI+U2zg1QhZ9o8OjV80oGivs1lX5NfPLzk4IPqlRA==", "cpu": [ "riscv64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2154,13 +2166,16 @@ } }, "node_modules/@oxc-parser/binding-linux-riscv64-musl": { - "version": "0.130.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-0.130.0.tgz", - "integrity": "sha512-BgXRVC0+83n3YzCscLQjj6nbyeBIVeZYPTI4fFMAE4WNm2+4RXhWp03IVizL7esIz36kgmT48aebk1iM+cs8sw==", + "version": "0.133.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-0.133.0.tgz", + "integrity": "sha512-iwgBNUTHiMdxARLYuM0SBlnYeb19iw1Ea5M+4ERZupCsBMLArti6FyZ6UfFjJxIiTDr2oW2DGQFxlQVQ/dW9rA==", "cpu": [ "riscv64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -2171,13 +2186,16 @@ } }, "node_modules/@oxc-parser/binding-linux-s390x-gnu": { - "version": "0.130.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-0.130.0.tgz", - "integrity": "sha512-6tJz0xvnGhsokE7N1WlUSBXibpYmT9xSJFS1Ce41Km/+8gQvdlW8MLhRv8PD0L7ix8vRG0FDDepp3jdOFzdVdw==", + "version": "0.133.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-0.133.0.tgz", + "integrity": "sha512-ZwZNo8FZmB/gVfboQl+wXilBigGl+6nQQs+nITOeAP/HcAOjiHl6XZJL9F/KXNEspODQcbjAiyjUbeCJd9a0fA==", "cpu": [ "s390x" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2188,13 +2206,16 @@ } }, "node_modules/@oxc-parser/binding-linux-x64-gnu": { - "version": "0.130.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.130.0.tgz", - "integrity": "sha512-9aCWj83dp3heTQGmGnZGdIWgxjZrr/7VQ0TGFHH5PKByxJKF2Hcr4qvaSUHhhGEa3MSsDjTL1YDP8RAgdL5/Cg==", + "version": "0.133.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.133.0.tgz", + "integrity": "sha512-govCvWx1dBlED3uu4qXctxpRcouu9I8Kn+DBktGCl760JtlGJzc9l/OmPJKlYWSbrRqKkMZehNeZ/4Wfma7uSA==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2205,13 +2226,16 @@ } }, "node_modules/@oxc-parser/binding-linux-x64-musl": { - "version": "0.130.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-x64-musl/-/binding-linux-x64-musl-0.130.0.tgz", - "integrity": "sha512-afXt87aZBqrUVli8TB/I8H1G50RDWcwirjWtXGXYqJ2ZqWEiErH7V72j3LUSDZaivmtu2OLX0KQ/mbhP81mr7A==", + "version": "0.133.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-x64-musl/-/binding-linux-x64-musl-0.133.0.tgz", + "integrity": "sha512-ssTlpXD5Mq9uCssDJPzlRWqBt4Y7Zzd9i+XZhWmK/9Y6KUIuAxVYTYiI8lxcGWi0+3/Cz4A8q9UrD4NK9Y2j7g==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -2222,9 +2246,9 @@ } }, "node_modules/@oxc-parser/binding-openharmony-arm64": { - "version": "0.130.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-openharmony-arm64/-/binding-openharmony-arm64-0.130.0.tgz", - "integrity": "sha512-I0NCrZV/YZuCGWgqwNN/GO/iXlLF2z+Wgc7u+Aa9N4P51oYeIa0XT+zVBUne4csO9GqxskXgI4g8JzzWGRpfOw==", + "version": "0.133.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-openharmony-arm64/-/binding-openharmony-arm64-0.133.0.tgz", + "integrity": "sha512-51aByfXhPtLEdWG4a2Ihdw6cPWV1ei1AarALpFdDP8MLWDLE2NuUMgbo3DERR2Kt8fT/ok1GUvBiLxVGke9uUQ==", "cpu": [ "arm64" ], @@ -2239,9 +2263,9 @@ } }, "node_modules/@oxc-parser/binding-wasm32-wasi": { - "version": "0.130.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-wasm32-wasi/-/binding-wasm32-wasi-0.130.0.tgz", - "integrity": "sha512-sJgQkGaBX0WJvPUDfwciex6IcTk5O5NLQ1bhEb6f3nBruh1GshKMRSMt2bxZlYrgBzjyBbJzsnO+InPG0bg+fA==", + "version": "0.133.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-wasm32-wasi/-/binding-wasm32-wasi-0.133.0.tgz", + "integrity": "sha512-2e16tkKp+wDO2GTAmXfxbBcCmGEaFPIJEIRBBmVKNVXSc8/fJsSIaBGyFTPHM9ST5GNWgJcYIt94rDTks+PLwA==", "cpu": [ "wasm32" ], @@ -2258,9 +2282,9 @@ } }, "node_modules/@oxc-parser/binding-win32-arm64-msvc": { - "version": "0.130.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.130.0.tgz", - "integrity": "sha512-bjcma99sQrNh6RY4mPO9yTkfxql6TDFoN3HWdK31RCKXwNhcDgJXW/l8PUtzKNiQ+9vpKJfJtQq+LklBuxSOBA==", + "version": "0.133.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.133.0.tgz", + "integrity": "sha512-KPTNDKbxH1cglrqTyVeXHb4Pk4oksz8EcE1/v8zqU7N4UXbiHfA/IwtXZ2U77fnRAWBbgVkl/lZbL7o3hRdejg==", "cpu": [ "arm64" ], @@ -2275,9 +2299,9 @@ } }, "node_modules/@oxc-parser/binding-win32-ia32-msvc": { - "version": "0.130.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.130.0.tgz", - "integrity": "sha512-hRYbv6HhpSTzT4xTiIkadLI7upLQxuOdLPR/9nL1fTjwhgutBTPXrwaAPb/jTFVx6/8C7Jb5HcUKhmNwloTbFA==", + "version": "0.133.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.133.0.tgz", + "integrity": "sha512-Una1bNYv9zCavQrfnDR9wuZVB3itLjCEH4Oz7i6CwAJN/Xq9b+zbbcxmvdkKvvJt4Ngc/MBmIYlbLo3zS4TQ0A==", "cpu": [ "ia32" ], @@ -2292,9 +2316,9 @@ } }, "node_modules/@oxc-parser/binding-win32-x64-msvc": { - "version": "0.130.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.130.0.tgz", - "integrity": "sha512-RBpA9TsRucJq6HNVNCFF1iKg+QeTkLdZf7hi4xaOGCPvMZWvDHjQgSOEZMUpuW4JNciHbxNhLEYmz5CVygjVGQ==", + "version": "0.133.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.133.0.tgz", + "integrity": "sha512-kjBhCiOGSYTwDJQuuZa7a94JbP8htWu7J0X1KwH74kV2K5eYf6eyJRYmkpCDvr0XEL8tMxYI4WU1VekblFCLgg==", "cpu": [ "x64" ], @@ -2309,9 +2333,9 @@ } }, "node_modules/@oxc-project/types": { - "version": "0.130.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.130.0.tgz", - "integrity": "sha512-ibD2usx9JRu7f5pu2tMKMI4cpA4NgXJQoYRP4pQ7Pxmn1l6k/53qWtQWZayhYy3X4QZkt90Ot+mJEaeXouio6Q==", + "version": "0.133.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.133.0.tgz", + "integrity": "sha512-KzkdCd6Uxqnf6l3HOw1xfatAlUURA0g14cvBYFyJ5SaNOQbOUvBr9PKArcPcrNIeRsBdgcUzOGrhKveVpvOIGA==", "dev": true, "license": "MIT", "funding": { @@ -2319,9 +2343,9 @@ } }, "node_modules/@oxc-resolver/binding-android-arm-eabi": { - "version": "11.19.1", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-android-arm-eabi/-/binding-android-arm-eabi-11.19.1.tgz", - "integrity": "sha512-aUs47y+xyXHUKlbhqHUjBABjvycq6YSD7bpxSW7vplUmdzAlJ93yXY6ZR0c1o1x5A/QKbENCvs3+NlY8IpIVzg==", + "version": "11.20.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-android-arm-eabi/-/binding-android-arm-eabi-11.20.0.tgz", + "integrity": "sha512-IjfWOXRgJFNdORDl+Uf1aibNgZY2guOD3zmOhx1BGVb/MIiqlFTdmjpQNplSN58lhWehnX4UNqC3QwpUo8pjJg==", "cpu": [ "arm" ], @@ -2333,9 +2357,9 @@ ] }, "node_modules/@oxc-resolver/binding-android-arm64": { - "version": "11.19.1", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-android-arm64/-/binding-android-arm64-11.19.1.tgz", - "integrity": "sha512-oolbkRX+m7Pq2LNjr/kKgYeC7bRDMVTWPgxBGMjSpZi/+UskVo4jsMU3MLheZV55jL6c3rNelPl4oD60ggYmqA==", + "version": "11.20.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-android-arm64/-/binding-android-arm64-11.20.0.tgz", + "integrity": "sha512-QqslZAuFQG8Q9xm7JuIn8JUbvywhSBMVhuQHtYW+auirZJloS41oxUUaBXk7uUhZJgp44c5zQLeVvmFaDQB+2Q==", "cpu": [ "arm64" ], @@ -2347,9 +2371,9 @@ ] }, "node_modules/@oxc-resolver/binding-darwin-arm64": { - "version": "11.19.1", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-darwin-arm64/-/binding-darwin-arm64-11.19.1.tgz", - "integrity": "sha512-nUC6d2i3R5B12sUW4O646qD5cnMXf2oBGPLIIeaRfU9doJRORAbE2SGv4eW6rMqhD+G7nf2Y8TTJTLiiO3Q/dQ==", + "version": "11.20.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-darwin-arm64/-/binding-darwin-arm64-11.20.0.tgz", + "integrity": "sha512-MUcavykj2ewlR+kc5arpg4tC2RvzJkUxWtNv74pf7lcNk00GpIpN43vXMj+j6r4eMmfZhlb8hueKoIb8e9kAGQ==", "cpu": [ "arm64" ], @@ -2361,9 +2385,9 @@ ] }, "node_modules/@oxc-resolver/binding-darwin-x64": { - "version": "11.19.1", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-darwin-x64/-/binding-darwin-x64-11.19.1.tgz", - "integrity": "sha512-cV50vE5+uAgNcFa3QY1JOeKDSkM/9ReIcc/9wn4TavhW/itkDGrXhw9jaKnkQnGbjJ198Yh5nbX/Gr2mr4Z5jQ==", + "version": "11.20.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-darwin-x64/-/binding-darwin-x64-11.20.0.tgz", + "integrity": "sha512-BGB16nRUK5Etiv//ihPyzj8Lj1px0mhh4YIfe0FDf045ywknfSm0GEbiRESpr6Q4K82AvnyaRIhhluHByvS4bg==", "cpu": [ "x64" ], @@ -2375,9 +2399,9 @@ ] }, "node_modules/@oxc-resolver/binding-freebsd-x64": { - "version": "11.19.1", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-freebsd-x64/-/binding-freebsd-x64-11.19.1.tgz", - "integrity": "sha512-xZOQiYGFxtk48PBKff+Zwoym7ScPAIVp4c14lfLxizO2LTTTJe5sx9vQNGrBymrf/vatSPNMD4FgsaaRigPkqw==", + "version": "11.20.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-freebsd-x64/-/binding-freebsd-x64-11.20.0.tgz", + "integrity": "sha512-JZgtePaqj3qmD5XFHJaSLWzHRxQu0LaPkdoM1KJXYADvAaa83ijXHclV3ej3CueeW0wxfIAbGCZVP45J0CA7uQ==", "cpu": [ "x64" ], @@ -2389,9 +2413,9 @@ ] }, "node_modules/@oxc-resolver/binding-linux-arm-gnueabihf": { - "version": "11.19.1", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-11.19.1.tgz", - "integrity": "sha512-lXZYWAC6kaGe/ky2su94e9jN9t6M0/6c+GrSlCqL//XO1cxi5lpAhnJYdyrKfm0ZEr/c7RNyAx3P7FSBcBd5+A==", + "version": "11.20.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-11.20.0.tgz", + "integrity": "sha512-hOQ/p3ry3v3SchUBXicrrnszaI/UmYzM4wtS4RGfwgVUX7a+HbyQSzJ5aOzu+o6XZkFkS3ZXN4PZAzhOb77OSg==", "cpu": [ "arm" ], @@ -2403,9 +2427,9 @@ ] }, "node_modules/@oxc-resolver/binding-linux-arm-musleabihf": { - "version": "11.19.1", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-11.19.1.tgz", - "integrity": "sha512-veG1kKsuK5+t2IsO9q0DErYVSw2azvCVvWHnfTOS73WE0STdLLB7Q1bB9WR+yHPQM76ASkFyRbogWo1GR1+WbQ==", + "version": "11.20.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-11.20.0.tgz", + "integrity": "sha512-2ArPksaw0AqeuGBfoS715VF+JvJQAhD2niWgjE5hVO+L+nAfikVQopvngCMX9x4BD8itWoQ3dnikrQyl5Ho5Jg==", "cpu": [ "arm" ], @@ -2417,13 +2441,16 @@ ] }, "node_modules/@oxc-resolver/binding-linux-arm64-gnu": { - "version": "11.19.1", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-11.19.1.tgz", - "integrity": "sha512-heV2+jmXyYnUrpUXSPugqWDRpnsQcDm2AX4wzTuvgdlZfoNYO0O3W2AVpJYaDn9AG4JdM6Kxom8+foE7/BcSig==", + "version": "11.20.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-11.20.0.tgz", + "integrity": "sha512-0bJnmYFp62JdZ4nVMDUZ/C58BCZOCcqgKtnUlp7L9Ojf/czIN+3j72YlLPeWLkzlr6SlYvIQA4SGV/HyO0d+qg==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2431,13 +2458,16 @@ ] }, "node_modules/@oxc-resolver/binding-linux-arm64-musl": { - "version": "11.19.1", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm64-musl/-/binding-linux-arm64-musl-11.19.1.tgz", - "integrity": "sha512-jvo2Pjs1c9KPxMuMPIeQsgu0mOJF9rEb3y3TdpsrqwxRM+AN6/nDDwv45n5ZrUnQMsdBy5gIabioMKnQfWo9ew==", + "version": "11.20.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm64-musl/-/binding-linux-arm64-musl-11.20.0.tgz", + "integrity": "sha512-wKHHzPKZo7Ufhv/Bt6yxT7FOgnIgW4gwXcJUipkShGp68W3wGVqvr1Sr0fY65lN0Oy6y41+g2kIDvkgZaMMUkw==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -2445,13 +2475,16 @@ ] }, "node_modules/@oxc-resolver/binding-linux-ppc64-gnu": { - "version": "11.19.1", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-11.19.1.tgz", - "integrity": "sha512-vLmdNxWCdN7Uo5suays6A/+ywBby2PWBBPXctWPg5V0+eVuzsJxgAn6MMB4mPlshskYbppjpN2Zg83ArHze9gQ==", + "version": "11.20.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-11.20.0.tgz", + "integrity": "sha512-RN8goF7Ie0B79L4i4G6OeBocTgSC56vJbQ65VJje+oXnldVpLnOU7j/AQ/dP94TcCS+Yh6WG8u3Qt4ETteXFNQ==", "cpu": [ "ppc64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2459,13 +2492,16 @@ ] }, "node_modules/@oxc-resolver/binding-linux-riscv64-gnu": { - "version": "11.19.1", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-11.19.1.tgz", - "integrity": "sha512-/b+WgR+VTSBxzgOhDO7TlMXC1ufPIMR6Vj1zN+/x+MnyXGW7prTLzU9eW85Aj7Th7CCEG9ArCbTeqxCzFWdg2w==", + "version": "11.20.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-11.20.0.tgz", + "integrity": "sha512-5l1yU6/xQEqLZRzxqmMxJfWPslpwCmBsdDGaBvABPehxquCXDC7dd7oraNdKSJUMDXSM7VvVj8H2D2FTjU7oWw==", "cpu": [ "riscv64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2473,13 +2509,16 @@ ] }, "node_modules/@oxc-resolver/binding-linux-riscv64-musl": { - "version": "11.19.1", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-11.19.1.tgz", - "integrity": "sha512-YlRdeWb9j42p29ROh+h4eg/OQ3dTJlpHSa+84pUM9+p6i3djtPz1q55yLJhgW9XfDch7FN1pQ/Vd6YP+xfRIuw==", + "version": "11.20.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-11.20.0.tgz", + "integrity": "sha512-xHEvkbgz6UC+A3JOyDQy76LkUaxsNSfIr3/GV8slwZsnuooJiIB34gzJfsyvR4JdCYNUUPsRJc/w/oWkODu+hg==", "cpu": [ "riscv64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -2487,13 +2526,16 @@ ] }, "node_modules/@oxc-resolver/binding-linux-s390x-gnu": { - "version": "11.19.1", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-11.19.1.tgz", - "integrity": "sha512-EDpafVOQWF8/MJynsjOGFThcqhRHy417sRyLfQmeiamJ8qVhSKAn2Dn2VVKUGCjVB9C46VGjhNo7nOPUi1x6uA==", + "version": "11.20.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-11.20.0.tgz", + "integrity": "sha512-aWPDUUmSeyHvlW+SoEUd+JIJsQhVhu6a5tBpDRMu058naPAchTgAVGCFy35zjbnFlt0i8hLWziff6HX0D3LU4g==", "cpu": [ "s390x" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2501,13 +2543,16 @@ ] }, "node_modules/@oxc-resolver/binding-linux-x64-gnu": { - "version": "11.19.1", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-x64-gnu/-/binding-linux-x64-gnu-11.19.1.tgz", - "integrity": "sha512-NxjZe+rqWhr+RT8/Ik+5ptA3oz7tUw361Wa5RWQXKnfqwSSHdHyrw6IdcTfYuml9dM856AlKWZIUXDmA9kkiBQ==", + "version": "11.20.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-x64-gnu/-/binding-linux-x64-gnu-11.20.0.tgz", + "integrity": "sha512-x2YeSimvhJjKLVD8KSu8f/rqU1potcdEMkApIPJqjZWN7c2Fpt4g2X32WDg1p+XDAmyT7nuQGe0vnhvXeLbH+g==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2515,13 +2560,16 @@ ] }, "node_modules/@oxc-resolver/binding-linux-x64-musl": { - "version": "11.19.1", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-x64-musl/-/binding-linux-x64-musl-11.19.1.tgz", - "integrity": "sha512-cM/hQwsO3ReJg5kR+SpI69DMfvNCp+A/eVR4b4YClE5bVZwz8rh2Nh05InhwI5HR/9cArbEkzMjcKgTHS6UaNw==", + "version": "11.20.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-x64-musl/-/binding-linux-x64-musl-11.20.0.tgz", + "integrity": "sha512-kcRLEIxpZefeYfLChjpgFf3ilBzRDZ+yobMrpRsQlSrxuFGtm3U6PMU7AaEpMqo3NfDGVyJJseAjnRLzMFHjwQ==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -2529,9 +2577,9 @@ ] }, "node_modules/@oxc-resolver/binding-openharmony-arm64": { - "version": "11.19.1", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-openharmony-arm64/-/binding-openharmony-arm64-11.19.1.tgz", - "integrity": "sha512-QF080IowFB0+9Rh6RcD19bdgh49BpQHUW5TajG1qvWHvmrQznTZZjYlgE2ltLXyKY+qs4F/v5xuX1XS7Is+3qA==", + "version": "11.20.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-openharmony-arm64/-/binding-openharmony-arm64-11.20.0.tgz", + "integrity": "sha512-HHcfnApSZGtKhTiHqe8OZruOZe5XuFQH5/E0Yhj3u8fnFvzkM4/k6WjacUf4SvA0SPEAbfbgYmVPuo0VX/fIBQ==", "cpu": [ "arm64" ], @@ -2543,9 +2591,9 @@ ] }, "node_modules/@oxc-resolver/binding-wasm32-wasi": { - "version": "11.19.1", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-wasm32-wasi/-/binding-wasm32-wasi-11.19.1.tgz", - "integrity": "sha512-w8UCKhX826cP/ZLokXDS6+milN8y4X7zidsAttEdWlVoamTNf6lhBJldaWr3ukTDiye7s4HRcuPEPOXNC432Vg==", + "version": "11.20.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-wasm32-wasi/-/binding-wasm32-wasi-11.20.0.tgz", + "integrity": "sha512-Tn0y1XOFYHNfK1wp1Z5QK8Rcld/bsOwRISQXfqAZ5IBpv8Gz1IvV39fUWNprqNdRizgcvFhOzWwFun2zkJsyBg==", "cpu": [ "wasm32" ], @@ -2553,16 +2601,18 @@ "license": "MIT", "optional": true, "dependencies": { - "@napi-rs/wasm-runtime": "^1.1.1" + "@emnapi/core": "1.10.0", + "@emnapi/runtime": "1.10.0", + "@napi-rs/wasm-runtime": "^1.1.4" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@oxc-resolver/binding-win32-arm64-msvc": { - "version": "11.19.1", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-11.19.1.tgz", - "integrity": "sha512-nJ4AsUVZrVKwnU/QRdzPCCrO0TrabBqgJ8pJhXITdZGYOV28TIYystV1VFLbQ7DtAcaBHpocT5/ZJnF78YJPtQ==", + "version": "11.20.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-11.20.0.tgz", + "integrity": "sha512-qPi25YNPe4YenS8MgsQU2+bIFHxxpLx1LVna2444cEHqNPhNjvWf9zqj4aWE43H9LpAsTmkkAlA3eL5ElBU3mA==", "cpu": [ "arm64" ], @@ -2573,24 +2623,10 @@ "win32" ] }, - "node_modules/@oxc-resolver/binding-win32-ia32-msvc": { - "version": "11.19.1", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-11.19.1.tgz", - "integrity": "sha512-EW+ND5q2Tl+a3pH81l1QbfgbF3HmqgwLfDfVithRFheac8OTcnbXt/JxqD2GbDkb7xYEqy1zNaVFRr3oeG8npA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, "node_modules/@oxc-resolver/binding-win32-x64-msvc": { - "version": "11.19.1", - "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-win32-x64-msvc/-/binding-win32-x64-msvc-11.19.1.tgz", - "integrity": "sha512-6hIU3RQu45B+VNTY4Ru8ppFwjVS/S5qwYyGhBotmjxfEKk41I2DlGtRfGJndZ5+6lneE2pwloqunlOyZuX/XAw==", + "version": "11.20.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-win32-x64-msvc/-/binding-win32-x64-msvc-11.20.0.tgz", + "integrity": "sha512-Wb14jWEW8huH6It9F6sXd9vrYmIS7pMrgkU6sxpLxkP+9z+wRgs71hUEhRpcn8FOXAFa27FVWfY2tRpbfTzfLw==", "cpu": [ "x64" ], @@ -3410,17 +3446,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.59.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.59.3.tgz", - "integrity": "sha512-PwFvSKsXGShKGW6n5bZOhGHEcCZXM8HofLK9fNsEwZXzFRjoY+XT1Vsf1zgyXdwTr0ZYz1/2tkZ0DBTT9jZjhw==", + "version": "8.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.61.0.tgz", + "integrity": "sha512-bFNvl9ZczlVb+wR2Akszf3gHfKVj/8WanXaGJ3UstTA7brNKg0cNdk6X1Psu5V7MZ2oQtzZKOEzIUehaoxbDGw==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.59.3", - "@typescript-eslint/type-utils": "8.59.3", - "@typescript-eslint/utils": "8.59.3", - "@typescript-eslint/visitor-keys": "8.59.3", + "@typescript-eslint/scope-manager": "8.61.0", + "@typescript-eslint/type-utils": "8.61.0", + "@typescript-eslint/utils": "8.61.0", + "@typescript-eslint/visitor-keys": "8.61.0", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.5.0" @@ -3433,7 +3469,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.59.3", + "@typescript-eslint/parser": "^8.61.0", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } @@ -3449,16 +3485,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.59.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.59.3.tgz", - "integrity": "sha512-HPwA+hVkfcriajbNvTmZv4VRauibay+cWArYUYq7u7W7PmGShMxbPxLvrwDme55a6d5alG3nrYfhyJ/G28XlLg==", + "version": "8.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.61.0.tgz", + "integrity": "sha512-5B7PfA2e1NQGCnDHd/0lW7W3gvp3d59Ryw54FYO8Uswxo9f6ikw3AZV+Xj/TvpImmpsiYyUqAfhC6kJID1jF6w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.59.3", - "@typescript-eslint/types": "8.59.3", - "@typescript-eslint/typescript-estree": "8.59.3", - "@typescript-eslint/visitor-keys": "8.59.3", + "@typescript-eslint/scope-manager": "8.61.0", + "@typescript-eslint/types": "8.61.0", + "@typescript-eslint/typescript-estree": "8.61.0", + "@typescript-eslint/visitor-keys": "8.61.0", "debug": "^4.4.3" }, "engines": { @@ -3474,14 +3510,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.59.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.59.3.tgz", - "integrity": "sha512-ECiUWa/KYRGDFUqTNehaRgzDshnJfkTABJxVemHk4ko22gcr0ukloKjWvyQ64g8YCV/UI47kN1dbmjf/GaQYng==", + "version": "8.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.61.0.tgz", + "integrity": "sha512-DV42F7MLJO6Rax7SK1yg43tcnEfGUrurSpSxKuVX+a3RCTzBlH3fuxprrOJXKCJGAaw82xXocikJ0uQaqwXgGA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.59.3", - "@typescript-eslint/types": "^8.59.3", + "@typescript-eslint/tsconfig-utils": "^8.61.0", + "@typescript-eslint/types": "^8.61.0", "debug": "^4.4.3" }, "engines": { @@ -3496,14 +3532,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.59.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.59.3.tgz", - "integrity": "sha512-t2LvZnoEfzKtnPjgeEu41xw5gxq9mQVfYy4OoZ4Vlt0sk3JwxmhCca/AR7DwOiHrjWgjAj6as4AhRLKSDfvZIA==", + "version": "8.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.61.0.tgz", + "integrity": "sha512-IWdXFHFSb6mlC3HPc7QsLDm5zYEbUla6trDEHf32D3/dnuUyXd87plScSNXSbm0/RxMvObpI17sv/EDTGrGZkA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.59.3", - "@typescript-eslint/visitor-keys": "8.59.3" + "@typescript-eslint/types": "8.61.0", + "@typescript-eslint/visitor-keys": "8.61.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3514,9 +3550,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.59.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.59.3.tgz", - "integrity": "sha512-PcIJHjmaREXLgIAIzLnSY9VucEzz8FKXsRgFa1DmdGCK/5tJpW03TKJF01Q6VZd1lLdz2sIKPWaDUZN9dp//dw==", + "version": "8.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.61.0.tgz", + "integrity": "sha512-O5Amvdv9ztMpxpf+vmFULGG78IE6Qwdr3bCGvqwG4nwc9H2qXkOYJJnRbRHyMkQTjv1d03olqwwwzHLMqpFePQ==", "dev": true, "license": "MIT", "engines": { @@ -3531,15 +3567,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.59.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.59.3.tgz", - "integrity": "sha512-g71d8QD8UaiHGvrJwyIS1hCX5r63w6Jll+4VEYhEAHXTDIqX1JgxhTAbEHtKntL9kuc4jRo7/GWw5xfCepSccQ==", + "version": "8.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.61.0.tgz", + "integrity": "sha512-TuBiQYIkd97yBfInHCTKVYMbX4kvEmpOEuixIuzCU9p8BGT1SfyyO0d0IfDMbPIHcjn/hWnusUX5e8v5Xg+X8A==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.59.3", - "@typescript-eslint/typescript-estree": "8.59.3", - "@typescript-eslint/utils": "8.59.3", + "@typescript-eslint/types": "8.61.0", + "@typescript-eslint/typescript-estree": "8.61.0", + "@typescript-eslint/utils": "8.61.0", "debug": "^4.4.3", "ts-api-utils": "^2.5.0" }, @@ -3556,9 +3592,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.59.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.59.3.tgz", - "integrity": "sha512-ePFoH0g4ludssdRFqqDxQePCxU4WQyRa9+XVwjm7yLn0FKhMeoetC+qBEEI1Eyb1pGSDveTIT09Bvw2WhlGayg==", + "version": "8.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.61.0.tgz", + "integrity": "sha512-9QTQpZ5Iin4CdIodfbDQFSeiSJKidgYJYug1P9CC2xWgUTvlmixViqDZNciMjwLBZyJnG4tGmPl97rVAFb1AJg==", "dev": true, "license": "MIT", "engines": { @@ -3570,16 +3606,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.59.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.59.3.tgz", - "integrity": "sha512-CbRjVRAf7Lr9Kr8RopKcbY45p2VfmmHrm0ygOCYFi7oU8q19m0Fs/6iHS7kNOmwpp+ob07ZVcAqlxUod9lYdmg==", + "version": "8.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.61.0.tgz", + "integrity": "sha512-42zatd5qSvvcV1JdDBCLxYRznvP4eIHpPoZXdkPFnAmanA4FuZ5dibSnCBggY8hQnqajPpoGjXFdZ7fIJKQnlA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.59.3", - "@typescript-eslint/tsconfig-utils": "8.59.3", - "@typescript-eslint/types": "8.59.3", - "@typescript-eslint/visitor-keys": "8.59.3", + "@typescript-eslint/project-service": "8.61.0", + "@typescript-eslint/tsconfig-utils": "8.61.0", + "@typescript-eslint/types": "8.61.0", + "@typescript-eslint/visitor-keys": "8.61.0", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", @@ -3637,16 +3673,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.59.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.59.3.tgz", - "integrity": "sha512-JAvT14goBzRzzzZyqq3P9BLArIxTtQURUtFgQ/V7FO+eU+Gg6ES+5ymOPP1wRxXcxAYeivCk4uS3jCKWI1K8Zg==", + "version": "8.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.61.0.tgz", + "integrity": "sha512-3bzFt7ImFMW/jVYwJamDoe/dMOdFLSC6pom6rRjdh4SZJEYupyMzem8e7vKZLclLfpHjlwSAXOUxtKxGXUiLqA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.59.3", - "@typescript-eslint/types": "8.59.3", - "@typescript-eslint/typescript-estree": "8.59.3" + "@typescript-eslint/scope-manager": "8.61.0", + "@typescript-eslint/types": "8.61.0", + "@typescript-eslint/typescript-estree": "8.61.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3661,13 +3697,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.59.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.59.3.tgz", - "integrity": "sha512-f1UQF7ggd42YiwI5wGrRaPsa+P0CINBlrkLPmGfpq/u/I/oVtecoEIfFR9ag/oa1sLOsRNZ6xehf6qMZhQGBDg==", + "version": "8.61.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.61.0.tgz", + "integrity": "sha512-QVLZu3ZPQEE+HICQyAMZ2yLQhxf0meY/wx6Hx14YcTNj13JB3qHlX3lJ02L3fLGHgERRH71kvYDwiXIguT3AjQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.59.3", + "@typescript-eslint/types": "8.61.0", "eslint-visitor-keys": "^5.0.0" }, "engines": { @@ -3749,9 +3785,9 @@ } }, "node_modules/@vitest/eslint-plugin": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/@vitest/eslint-plugin/-/eslint-plugin-1.6.18.tgz", - "integrity": "sha512-J6U4X0jH3NwTuYouvrJn6I8ypTOU+GhKEjyVwpoPnDuc23usa/xi/R0caWLBbNp3xLy3/rL1YkuJuneTMVV4Mg==", + "version": "1.6.20", + "resolved": "https://registry.npmjs.org/@vitest/eslint-plugin/-/eslint-plugin-1.6.20.tgz", + "integrity": "sha512-xRwWHFG0Utp6hXtbGiWk4VdKXCGdExD8kbWrrmFEiG5dk8anOJ+vbWbeOa8EbkocKQRTsx7JAWETccZiBgFp/Q==", "dev": true, "license": "MIT", "dependencies": { @@ -4810,29 +4846,6 @@ "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", "license": "MIT" }, - "node_modules/clean-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz", - "integrity": "sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/clean-regexp/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/cli-boxes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", @@ -4917,9 +4930,9 @@ } }, "node_modules/comment-json": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.6.2.tgz", - "integrity": "sha512-R2rze/hDX30uul4NZoIZ76ImSJLFxn/1/ZxtKC1L77y2X1k+yYu1joKbAtMA2Fg3hZrTOiw0I5mwVMo0cf250w==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-5.0.0.tgz", + "integrity": "sha512-uiqLcOiVDJtBP8WGkZHEP+FZIhTzP1dxvn59EfoYUi9gqupjrBWVQkO2atDrbnKPwLeotFYDsuNb26uBMqB+hw==", "dev": true, "license": "MIT", "dependencies": { @@ -4931,9 +4944,9 @@ } }, "node_modules/comment-parser": { - "version": "1.4.6", - "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.6.tgz", - "integrity": "sha512-ObxuY6vnbWTN6Od72xfwN9DbzC7Y2vv8u1Soi9ahRKL37gb6y1qk6/dgjs+3JWuXJHWvsg3BXIwzd/rkmAwavg==", + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.7.tgz", + "integrity": "sha512-0h+uSNtQGW3D98eQt3jJ8L06Fves8hncB4V/PKdw/Qb8Hnk19VaKuTr55UNRYiSoVa7WwrFls+rh3ux9agmkeQ==", "dev": true, "license": "MIT", "engines": { @@ -5124,33 +5137,33 @@ } }, "node_modules/cspell": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/cspell/-/cspell-10.0.0.tgz", - "integrity": "sha512-R25gsSR1SLlcGyw48fwJwp0PjXrVdl7RDO/Dm5+s4DvC1uQSlyiUxsr/8ZtbyC/MPeUJFQN9B4luqLlSm0WelQ==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/cspell/-/cspell-10.0.1.tgz", + "integrity": "sha512-Gg6w/flT3fKfl3la62hfTnhtNnDQ+9mU7kUhVqw/axl/Ms4oENw0oJMkWFIoj4f6nL/SDPz7KcPXd2XbkKFNmQ==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-json-reporter": "10.0.0", - "@cspell/cspell-performance-monitor": "10.0.0", - "@cspell/cspell-pipe": "10.0.0", - "@cspell/cspell-types": "10.0.0", - "@cspell/cspell-worker": "10.0.0", - "@cspell/dynamic-import": "10.0.0", - "@cspell/url": "10.0.0", + "@cspell/cspell-json-reporter": "10.0.1", + "@cspell/cspell-performance-monitor": "10.0.1", + "@cspell/cspell-pipe": "10.0.1", + "@cspell/cspell-types": "10.0.1", + "@cspell/cspell-worker": "10.0.1", + "@cspell/dynamic-import": "10.0.1", + "@cspell/url": "10.0.1", "ansi-regex": "^6.2.2", "chalk": "^5.6.2", "chalk-template": "^1.1.2", "commander": "^14.0.3", - "cspell-config-lib": "10.0.0", - "cspell-dictionary": "10.0.0", - "cspell-gitignore": "10.0.0", - "cspell-glob": "10.0.0", - "cspell-io": "10.0.0", - "cspell-lib": "10.0.0", + "cspell-config-lib": "10.0.1", + "cspell-dictionary": "10.0.1", + "cspell-gitignore": "10.0.1", + "cspell-glob": "10.0.1", + "cspell-io": "10.0.1", + "cspell-lib": "10.0.1", "fast-json-stable-stringify": "^2.1.0", "flatted": "^3.4.2", - "semver": "^7.7.4", - "tinyglobby": "^0.2.15" + "semver": "^7.8.1", + "tinyglobby": "^0.2.16" }, "bin": { "cspell": "bin.mjs", @@ -5164,32 +5177,32 @@ } }, "node_modules/cspell-config-lib": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/cspell-config-lib/-/cspell-config-lib-10.0.0.tgz", - "integrity": "sha512-HWK7SRnJ3N/kOThw/uzmXmQYCzBxu58Jkq2hHyte1voDl118BeNFoaNRWMpYdHbBi3kCj8gaZu8wGtm+Zmdhxw==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/cspell-config-lib/-/cspell-config-lib-10.0.1.tgz", + "integrity": "sha512-hMpo/0j6k7pbiqrLDOLJKD2IGP9XwhjKf2miiM6p84Xeo4nyuFZaxxDCQ68R851HSYFrrdltgpoipMbj1h2Tnw==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-types": "10.0.0", - "comment-json": "^4.6.2", + "@cspell/cspell-types": "10.0.1", + "comment-json": "^5.0.0", "smol-toml": "^1.6.1", - "yaml": "^2.8.3" + "yaml": "^2.9.0" }, "engines": { "node": ">=22.18.0" } }, "node_modules/cspell-dictionary": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-10.0.0.tgz", - "integrity": "sha512-KubSoEAJO+77KPSSWjoLCz0+MIWVNq3joGTSyxucAZrBSJD64Y1O4BHHr1aj6XHIZwXhWWNScQlrQR3OcIulng==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-10.0.1.tgz", + "integrity": "sha512-3cZ659vgsZWkzGQJR/sNqGDVt/OnvTSieLKI76V++4t1bHJfochb9ZrrwsuMsb1VPGiyqClUP1/O6WrefF/FVg==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-performance-monitor": "10.0.0", - "@cspell/cspell-pipe": "10.0.0", - "@cspell/cspell-types": "10.0.0", - "cspell-trie-lib": "10.0.0", + "@cspell/cspell-performance-monitor": "10.0.1", + "@cspell/cspell-pipe": "10.0.1", + "@cspell/cspell-types": "10.0.1", + "cspell-trie-lib": "10.0.1", "fast-equals": "^6.0.0" }, "engines": { @@ -5197,15 +5210,15 @@ } }, "node_modules/cspell-gitignore": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-10.0.0.tgz", - "integrity": "sha512-55XLH9Y52eR7QgyV28Uaw8V9cN1YZ3PQIyrN9YBR4ndQNBKJxO9+jX1nwSspwnccCZiE/N+GGxFzRBb75JDSCw==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-10.0.1.tgz", + "integrity": "sha512-wN23U61Mx6qPJN3CesOmBU9vnbJ0jQm/ylK0iaVui3CcnO7Zzl5qLu5mPHUzGQGm8yso6qjyxqo16Ho7LpZGOQ==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/url": "10.0.0", - "cspell-glob": "10.0.0", - "cspell-io": "10.0.0" + "@cspell/url": "10.0.1", + "cspell-glob": "10.0.1", + "cspell-io": "10.0.1" }, "bin": { "cspell-gitignore": "bin.mjs" @@ -5215,13 +5228,13 @@ } }, "node_modules/cspell-glob": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-10.0.0.tgz", - "integrity": "sha512-bXS35fMcA9X7GEkfnWBfoPd/vTnxxfXW+YHt6tWxu5fejfs00qUbjWp1oLC9FxRaXWxIkfsYp2mi1k1jYl4RVw==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-10.0.1.tgz", + "integrity": "sha512-7bII9J3aSSpZDwhx7w+zfQXbMxHZQ3be0ilUp5bHrsjz6o07v/NqOHMGcwKdPn1sw2dxDz9sv057xE5pqXnSdw==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/url": "10.0.0", + "@cspell/url": "10.0.1", "picomatch": "^4.0.4" }, "engines": { @@ -5229,14 +5242,14 @@ } }, "node_modules/cspell-grammar": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-10.0.0.tgz", - "integrity": "sha512-49udtYzkcCYEIDJbFOb4IwiAJebOYZnYvG6o6Ep19Tq0Xwjk7i4vxUprNiFNDCWFbcbJRPE9cpwQUVwp5WFGLw==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-10.0.1.tgz", + "integrity": "sha512-xC9AFYmaI9wsO//a7S5tdDGKGJVD5UEEsTg+Up2fi7lPfXIryisYmV6tePNL1SEg0idYss4ja8LUZ3Mib09BjQ==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-pipe": "10.0.0", - "@cspell/cspell-types": "10.0.0" + "@cspell/cspell-pipe": "10.0.1", + "@cspell/cspell-types": "10.0.1" }, "bin": { "cspell-grammar": "bin.mjs" @@ -5246,42 +5259,42 @@ } }, "node_modules/cspell-io": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-10.0.0.tgz", - "integrity": "sha512-NQCAUhx9DwKApxPuFl7EK1K1XSaQEAPld45yjjwv93xF8rJkEGkgzOwjbqafwAD20eKYv1a7oj/9EC0S5jETSw==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-10.0.1.tgz", + "integrity": "sha512-8C2ka07faxflnaqEBO3pektS21XViE/SEHT7F5ZD1ou7FyMR5u3xawTBJSczClfsxLt/WYeztBYrpmGAjmjksw==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-service-bus": "10.0.0", - "@cspell/url": "10.0.0" + "@cspell/cspell-service-bus": "10.0.1", + "@cspell/url": "10.0.1" }, "engines": { "node": ">=22.18.0" } }, "node_modules/cspell-lib": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-10.0.0.tgz", - "integrity": "sha512-PowW6JEjuv/F2aFEirZvBxpzHdchOnpsUJbeIcFcai0++taLTbHQObROBEBf7e0S8DnHpVD5TZkqrTME5e44wg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@cspell/cspell-bundled-dicts": "10.0.0", - "@cspell/cspell-performance-monitor": "10.0.0", - "@cspell/cspell-pipe": "10.0.0", - "@cspell/cspell-resolver": "10.0.0", - "@cspell/cspell-types": "10.0.0", - "@cspell/dynamic-import": "10.0.0", - "@cspell/filetypes": "10.0.0", - "@cspell/rpc": "10.0.0", - "@cspell/strong-weak-map": "10.0.0", - "@cspell/url": "10.0.0", - "cspell-config-lib": "10.0.0", - "cspell-dictionary": "10.0.0", - "cspell-glob": "10.0.0", - "cspell-grammar": "10.0.0", - "cspell-io": "10.0.0", - "cspell-trie-lib": "10.0.0", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-10.0.1.tgz", + "integrity": "sha512-RpsIPiLzc4/YMW8BMRKpyJ81x439qjYWcqgdKeXnMkbKM88J9PexzutfFf/4v97v96KzfNitEzMpbI0uj8OeUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspell/cspell-bundled-dicts": "10.0.1", + "@cspell/cspell-performance-monitor": "10.0.1", + "@cspell/cspell-pipe": "10.0.1", + "@cspell/cspell-resolver": "10.0.1", + "@cspell/cspell-types": "10.0.1", + "@cspell/dynamic-import": "10.0.1", + "@cspell/filetypes": "10.0.1", + "@cspell/rpc": "10.0.1", + "@cspell/strong-weak-map": "10.0.1", + "@cspell/url": "10.0.1", + "cspell-config-lib": "10.0.1", + "cspell-dictionary": "10.0.1", + "cspell-glob": "10.0.1", + "cspell-grammar": "10.0.1", + "cspell-io": "10.0.1", + "cspell-trie-lib": "10.0.1", "env-paths": "^4.0.0", "gensequence": "^8.0.8", "import-fresh": "^4.0.0", @@ -5308,16 +5321,16 @@ } }, "node_modules/cspell-trie-lib": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-10.0.0.tgz", - "integrity": "sha512-R8qrMx10E/bm3Lecslwxn9XYo5NzSRK1rtandEX5n9UmEYHoBXjZELkg5+TOnV8VgrVaJSK57XtcGrbKp/4kSg==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-10.0.1.tgz", + "integrity": "sha512-BFvhalSkRQFjKrZ//FKK7fRGrZFpifnxB5AwCkzsIsBZqicsfafcQ1xP21qpb0QqyV/IomjNgviG+tRJs+0rMw==", "dev": true, "license": "MIT", "engines": { "node": ">=22.18.0" }, "peerDependencies": { - "@cspell/cspell-types": "10.0.0" + "@cspell/cspell-types": "10.0.1" } }, "node_modules/css-functions-list": { @@ -5703,6 +5716,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/detect-indent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-7.0.2.tgz", + "integrity": "sha512-y+8xyqdGLL+6sh0tVeHcfP/QDd8gUgbasolJJpY7NgeQGSZ739bDtSiaiDgtoicy+mtYB81dKLxO9xRhCyIB3A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/detect-libc": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", @@ -6094,35 +6120,35 @@ } }, "node_modules/eslint-config-cheminfo": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-cheminfo/-/eslint-config-cheminfo-18.0.0.tgz", - "integrity": "sha512-HT+ITdvTKCyUtIPTnpZjkE/qEHI1TSLxGrqPyT69G3TWEOAoF1N5LhIgAk3nU9DM4phseMJFYGZt8o8K/oJ24g==", + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-cheminfo/-/eslint-config-cheminfo-18.1.0.tgz", + "integrity": "sha512-NtRJQkwbHRmQLMV5JKOxXQvvHxJpni4FHPBkfMbBXPmgEo0r0dnIs2Kgw2vKfe1YwCM3ygXDxU/sq2e+STWZRA==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/eslint-plugin": "^1.6.15", + "@vitest/eslint-plugin": "^1.6.20", "eslint-plugin-import": "^2.32.0", - "eslint-plugin-jsdoc": "^62.9.0", - "eslint-plugin-unicorn": "^64.0.0", - "globals": "^17.5.0" + "eslint-plugin-jsdoc": "^63.0.2", + "eslint-plugin-unicorn": "^65.0.1", + "globals": "^17.6.0" }, "peerDependencies": { "eslint": "^9.39.1" } }, "node_modules/eslint-config-cheminfo-react": { - "version": "20.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-cheminfo-react/-/eslint-config-cheminfo-react-20.0.1.tgz", - "integrity": "sha512-IYLLv0E164Q2M7KKAZh38/zWluzK3c8ACrnPo8V+FwE7lnDGdh7xNL/NnwFnxLwCNbecGe/2AfpzAdjcIVH8og==", + "version": "20.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-cheminfo-react/-/eslint-config-cheminfo-react-20.1.0.tgz", + "integrity": "sha512-v+SGbfRA44z4V2m4hgh2xti2oYSJ5W5QNHtQ2nVhfBEFb4rGCzxqIkNCsjm3VH6PZtRGGbGQbRaUdkdqdF/bDw==", "dev": true, "license": "MIT", "dependencies": { "eslint-config-cheminfo": "^18.0.0", "eslint-plugin-react": "^7.37.5", - "eslint-plugin-react-hooks": "^7.0.1", + "eslint-plugin-react-hooks": "^7.1.1", "eslint-plugin-react-refresh": "^0.5.2", - "eslint-plugin-react-you-might-not-need-an-effect": "^0.9.3", - "globals": "^17.5.0" + "eslint-plugin-react-you-might-not-need-an-effect": "^1.0.0", + "globals": "^17.6.0" }, "peerDependencies": { "eslint": "^9.39.1" @@ -6142,14 +6168,14 @@ } }, "node_modules/eslint-config-cheminfo-typescript": { - "version": "22.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-cheminfo-typescript/-/eslint-config-cheminfo-typescript-22.0.0.tgz", - "integrity": "sha512-MvLFzQL9njK9DL3HyHW5wEYsP1n7MEmg/T9M0CctFUgVS1bzzxBJoqCJh/c+SDILYF+aXP1bb6dqq+4B5oq09A==", + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-cheminfo-typescript/-/eslint-config-cheminfo-typescript-22.1.0.tgz", + "integrity": "sha512-S5HIGOn8Hc0cypGj9Bhd0hqNGgJRBbK1uiRR8Udsy9JoqWCQFt7k1IUbHdjl2jPBJ/ug6THskT0TIaLGvUBsqA==", "dev": true, "license": "MIT", "dependencies": { - "eslint-config-cheminfo": "^18.0.0", - "typescript-eslint": "^8.58.2" + "eslint-config-cheminfo": "^18.1.0", + "typescript-eslint": "^8.61.0" }, "peerDependencies": { "eslint": "^9.39.1", @@ -6298,29 +6324,29 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "62.9.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-62.9.0.tgz", - "integrity": "sha512-PY7/X4jrVgoIDncUmITlUqK546Ltmx/Pd4Hdsu4CvSjryQZJI2mEV4vrdMufyTetMiZ5taNSqvK//BTgVUlNkA==", + "version": "63.0.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-63.0.2.tgz", + "integrity": "sha512-0TchoK1uS4VxHSo3P4CyWQ31Lm+6zsT+xkHMC5KbFKwgOf8YrXPf1Bl8EP7kpgw1wfe/Ui5jz5mSX7ou8WAVuw==", "dev": true, "license": "BSD-3-Clause", "dependencies": { - "@es-joy/jsdoccomment": "~0.86.0", + "@es-joy/jsdoccomment": "~0.87.0", "@es-joy/resolve.exports": "1.2.0", "are-docs-informative": "^0.0.2", - "comment-parser": "1.4.6", + "comment-parser": "1.4.7", "debug": "^4.4.3", "escape-string-regexp": "^4.0.0", "espree": "^11.2.0", "esquery": "^1.7.0", "html-entities": "^2.6.0", - "object-deep-merge": "^2.0.0", + "object-deep-merge": "^2.0.1", "parse-imports-exports": "^0.2.4", - "semver": "^7.7.4", + "semver": "^7.8.2", "spdx-expression-parse": "^4.0.0", "to-valid-identifier": "^1.0.0" }, "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" + "node": "^22.13.0 || >=24" }, "peerDependencies": { "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0" @@ -6421,9 +6447,9 @@ } }, "node_modules/eslint-plugin-react-you-might-not-need-an-effect": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-you-might-not-need-an-effect/-/eslint-plugin-react-you-might-not-need-an-effect-0.9.3.tgz", - "integrity": "sha512-44cce7LndBnpDRWBTQ8p7ircIdl2rJBP5+V9Ik64E935UB47uA9ZMU1Uv160lAMhtvoPYqXBjQ+tojr5JF3mFQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-you-might-not-need-an-effect/-/eslint-plugin-react-you-might-not-need-an-effect-1.0.0.tgz", + "integrity": "sha512-8exakZ5dCJdZb7TA3P8vD47HlnM3IllA9sjKzU22wyLEx0PZBDjFPxT5+5Rb10tSE6uWmwoBsgClIDNuJ8UW6g==", "dev": true, "license": "MIT", "dependencies": { @@ -6484,9 +6510,9 @@ } }, "node_modules/eslint-plugin-unicorn": { - "version": "64.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-64.0.0.tgz", - "integrity": "sha512-rNZwalHh8i0UfPlhNwg5BTUO1CMdKNmjqe+TgzOTZnpKoi8VBgsW7u9qCHIdpxEzZ1uwrJrPF0uRb7l//K38gA==", + "version": "65.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-65.0.1.tgz", + "integrity": "sha512-daCrQrgxOoOz2uMPWB3Y3vvv/5q+ncwICI8IjoebiwtW87CaY4tAN5EEiRXTYVnf7qi1v1BGBdHOSnZLV0rx6A==", "dev": true, "license": "MIT", "dependencies": { @@ -6494,15 +6520,14 @@ "@eslint-community/eslint-utils": "^4.9.1", "change-case": "^5.4.4", "ci-info": "^4.4.0", - "clean-regexp": "^1.0.0", "core-js-compat": "^3.49.0", + "detect-indent": "^7.0.2", "find-up-simple": "^1.0.1", "globals": "^17.4.0", "indent-string": "^5.0.0", "is-builtin-module": "^5.0.0", "jsesc": "^3.1.0", "pluralize": "^8.0.0", - "regexp-tree": "^0.1.27", "regjsparser": "^0.13.0", "semver": "^7.7.4", "strip-indent": "^4.1.1" @@ -8463,9 +8488,9 @@ } }, "node_modules/knip": { - "version": "6.14.2", - "resolved": "https://registry.npmjs.org/knip/-/knip-6.14.2.tgz", - "integrity": "sha512-Vg3JhIINjZew1I7qAFI4UHemW1mc4azP/BxJvsq9eGDfxpGO7oVCuD/bsWkog9TO/ZwwJeAeOMFZ1kd9jnY9+Q==", + "version": "6.16.1", + "resolved": "https://registry.npmjs.org/knip/-/knip-6.16.1.tgz", + "integrity": "sha512-TKMn1rxgH6h9vXR9Y0B+Cq7AdPTr9EI02IwoT65NzqYUkvoDQAaJ/aPybiFpAhZ1px6cNYYwXf86iHkBgzCo9w==", "dev": true, "funding": [ { @@ -8483,9 +8508,8 @@ "formatly": "^0.3.0", "get-tsconfig": "4.14.0", "jiti": "^2.7.0", - "minimist": "^1.2.8", - "oxc-parser": "^0.130.0", - "oxc-resolver": "^11.19.1", + "oxc-parser": "^0.133.0", + "oxc-resolver": "^11.20.0", "picomatch": "^4.0.4", "smol-toml": "^1.6.1", "strip-json-comments": "5.0.3", @@ -9739,9 +9763,9 @@ } }, "node_modules/object-deep-merge": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/object-deep-merge/-/object-deep-merge-2.0.0.tgz", - "integrity": "sha512-3DC3UMpeffLTHiuXSy/UG4NOIYTLlY9u3V82+djSCLYClWobZiS4ivYzpIUWrRY/nfsJ8cWsKyG3QfyLePmhvg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object-deep-merge/-/object-deep-merge-2.0.1.tgz", + "integrity": "sha512-aKttDKcU3pyZqKcCkDhsMn70WmZFG2JGDQLP9EcLyTSIFQRCPWLAmBZRLJnrVUrhPG1jETEEbfdgbNtJf1LyMg==", "dev": true, "license": "MIT" }, @@ -9956,13 +9980,13 @@ } }, "node_modules/oxc-parser": { - "version": "0.130.0", - "resolved": "https://registry.npmjs.org/oxc-parser/-/oxc-parser-0.130.0.tgz", - "integrity": "sha512-X0PJ+NmOok8qP3vK9uaW431ngkdM9UPEK7KG466urtIL2+EYTEgbZK2yqe2MWKJKBjRlFweP/pJPx0x9muMEVw==", + "version": "0.133.0", + "resolved": "https://registry.npmjs.org/oxc-parser/-/oxc-parser-0.133.0.tgz", + "integrity": "sha512-661RSx+ZcjBmjBYid+Fpp/2F5EbtildpeoZh5HdgnGs+jZ03nqQEQW8yGkt4BGyOC3OMPDQQRl8M5kqD2/g6jw==", "dev": true, "license": "MIT", "dependencies": { - "@oxc-project/types": "^0.130.0" + "@oxc-project/types": "^0.133.0" }, "engines": { "node": "^20.19.0 || >=22.12.0" @@ -9971,58 +9995,57 @@ "url": "https://github.com/sponsors/Boshen" }, "optionalDependencies": { - "@oxc-parser/binding-android-arm-eabi": "0.130.0", - "@oxc-parser/binding-android-arm64": "0.130.0", - "@oxc-parser/binding-darwin-arm64": "0.130.0", - "@oxc-parser/binding-darwin-x64": "0.130.0", - "@oxc-parser/binding-freebsd-x64": "0.130.0", - "@oxc-parser/binding-linux-arm-gnueabihf": "0.130.0", - "@oxc-parser/binding-linux-arm-musleabihf": "0.130.0", - "@oxc-parser/binding-linux-arm64-gnu": "0.130.0", - "@oxc-parser/binding-linux-arm64-musl": "0.130.0", - "@oxc-parser/binding-linux-ppc64-gnu": "0.130.0", - "@oxc-parser/binding-linux-riscv64-gnu": "0.130.0", - "@oxc-parser/binding-linux-riscv64-musl": "0.130.0", - "@oxc-parser/binding-linux-s390x-gnu": "0.130.0", - "@oxc-parser/binding-linux-x64-gnu": "0.130.0", - "@oxc-parser/binding-linux-x64-musl": "0.130.0", - "@oxc-parser/binding-openharmony-arm64": "0.130.0", - "@oxc-parser/binding-wasm32-wasi": "0.130.0", - "@oxc-parser/binding-win32-arm64-msvc": "0.130.0", - "@oxc-parser/binding-win32-ia32-msvc": "0.130.0", - "@oxc-parser/binding-win32-x64-msvc": "0.130.0" + "@oxc-parser/binding-android-arm-eabi": "0.133.0", + "@oxc-parser/binding-android-arm64": "0.133.0", + "@oxc-parser/binding-darwin-arm64": "0.133.0", + "@oxc-parser/binding-darwin-x64": "0.133.0", + "@oxc-parser/binding-freebsd-x64": "0.133.0", + "@oxc-parser/binding-linux-arm-gnueabihf": "0.133.0", + "@oxc-parser/binding-linux-arm-musleabihf": "0.133.0", + "@oxc-parser/binding-linux-arm64-gnu": "0.133.0", + "@oxc-parser/binding-linux-arm64-musl": "0.133.0", + "@oxc-parser/binding-linux-ppc64-gnu": "0.133.0", + "@oxc-parser/binding-linux-riscv64-gnu": "0.133.0", + "@oxc-parser/binding-linux-riscv64-musl": "0.133.0", + "@oxc-parser/binding-linux-s390x-gnu": "0.133.0", + "@oxc-parser/binding-linux-x64-gnu": "0.133.0", + "@oxc-parser/binding-linux-x64-musl": "0.133.0", + "@oxc-parser/binding-openharmony-arm64": "0.133.0", + "@oxc-parser/binding-wasm32-wasi": "0.133.0", + "@oxc-parser/binding-win32-arm64-msvc": "0.133.0", + "@oxc-parser/binding-win32-ia32-msvc": "0.133.0", + "@oxc-parser/binding-win32-x64-msvc": "0.133.0" } }, "node_modules/oxc-resolver": { - "version": "11.19.1", - "resolved": "https://registry.npmjs.org/oxc-resolver/-/oxc-resolver-11.19.1.tgz", - "integrity": "sha512-qE/CIg/spwrTBFt5aKmwe3ifeDdLfA2NESN30E42X/lII5ClF8V7Wt6WIJhcGZjp0/Q+nQ+9vgxGk//xZNX2hg==", + "version": "11.20.0", + "resolved": "https://registry.npmjs.org/oxc-resolver/-/oxc-resolver-11.20.0.tgz", + "integrity": "sha512-CblytBiV/a/ZXY34dsVU2NxhIOxMXst8CvDCtyBelVITgd7PLrKzbEbA6oKLdPjvDKDzCiW48qzmzZ+mYaqn+g==", "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/Boshen" }, "optionalDependencies": { - "@oxc-resolver/binding-android-arm-eabi": "11.19.1", - "@oxc-resolver/binding-android-arm64": "11.19.1", - "@oxc-resolver/binding-darwin-arm64": "11.19.1", - "@oxc-resolver/binding-darwin-x64": "11.19.1", - "@oxc-resolver/binding-freebsd-x64": "11.19.1", - "@oxc-resolver/binding-linux-arm-gnueabihf": "11.19.1", - "@oxc-resolver/binding-linux-arm-musleabihf": "11.19.1", - "@oxc-resolver/binding-linux-arm64-gnu": "11.19.1", - "@oxc-resolver/binding-linux-arm64-musl": "11.19.1", - "@oxc-resolver/binding-linux-ppc64-gnu": "11.19.1", - "@oxc-resolver/binding-linux-riscv64-gnu": "11.19.1", - "@oxc-resolver/binding-linux-riscv64-musl": "11.19.1", - "@oxc-resolver/binding-linux-s390x-gnu": "11.19.1", - "@oxc-resolver/binding-linux-x64-gnu": "11.19.1", - "@oxc-resolver/binding-linux-x64-musl": "11.19.1", - "@oxc-resolver/binding-openharmony-arm64": "11.19.1", - "@oxc-resolver/binding-wasm32-wasi": "11.19.1", - "@oxc-resolver/binding-win32-arm64-msvc": "11.19.1", - "@oxc-resolver/binding-win32-ia32-msvc": "11.19.1", - "@oxc-resolver/binding-win32-x64-msvc": "11.19.1" + "@oxc-resolver/binding-android-arm-eabi": "11.20.0", + "@oxc-resolver/binding-android-arm64": "11.20.0", + "@oxc-resolver/binding-darwin-arm64": "11.20.0", + "@oxc-resolver/binding-darwin-x64": "11.20.0", + "@oxc-resolver/binding-freebsd-x64": "11.20.0", + "@oxc-resolver/binding-linux-arm-gnueabihf": "11.20.0", + "@oxc-resolver/binding-linux-arm-musleabihf": "11.20.0", + "@oxc-resolver/binding-linux-arm64-gnu": "11.20.0", + "@oxc-resolver/binding-linux-arm64-musl": "11.20.0", + "@oxc-resolver/binding-linux-ppc64-gnu": "11.20.0", + "@oxc-resolver/binding-linux-riscv64-gnu": "11.20.0", + "@oxc-resolver/binding-linux-riscv64-musl": "11.20.0", + "@oxc-resolver/binding-linux-s390x-gnu": "11.20.0", + "@oxc-resolver/binding-linux-x64-gnu": "11.20.0", + "@oxc-resolver/binding-linux-x64-musl": "11.20.0", + "@oxc-resolver/binding-openharmony-arm64": "11.20.0", + "@oxc-resolver/binding-wasm32-wasi": "11.20.0", + "@oxc-resolver/binding-win32-arm64-msvc": "11.20.0", + "@oxc-resolver/binding-win32-x64-msvc": "11.20.0" } }, "node_modules/p-limit": { @@ -11014,16 +11037,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/regexp-tree": { - "version": "0.1.27", - "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", - "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==", - "dev": true, - "license": "MIT", - "bin": { - "regexp-tree": "bin/regexp-tree" - } - }, "node_modules/regexp.prototype.flags": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", @@ -11348,9 +11361,9 @@ } }, "node_modules/semver": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.0.tgz", - "integrity": "sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==", + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.4.tgz", + "integrity": "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==", "dev": true, "license": "ISC", "bin": { @@ -11986,9 +11999,9 @@ } }, "node_modules/stylelint": { - "version": "17.12.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-17.12.0.tgz", - "integrity": "sha512-KIlzWXMHUvgfPUR0R7TK3H80yCIi0uoivUwf+6Az4yrHJD1Q3c1qIkh/H5Z0i/K3QXgtq/UMEkWyBUSUwnpnOg==", + "version": "17.13.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-17.13.0.tgz", + "integrity": "sha512-G1WYzMerp7ihOaIe9VJCHLt12MoAD2QLf1AFerYP37+BCRBUK5UCpq8e/mN+zCIaJPKQcaxhE4WlPmqdiOx/gw==", "dev": true, "funding": [ { @@ -12002,9 +12015,9 @@ ], "license": "MIT", "dependencies": { - "@csstools/css-calc": "^3.2.0", + "@csstools/css-calc": "^3.2.1", "@csstools/css-parser-algorithms": "^4.0.0", - "@csstools/css-syntax-patches-for-csstree": "^1.1.3", + "@csstools/css-syntax-patches-for-csstree": "^1.1.4", "@csstools/css-tokenizer": "^4.0.0", "@csstools/media-query-list-parser": "^5.0.0", "@csstools/selector-resolve-nested": "^4.0.0", @@ -12028,7 +12041,7 @@ "micromatch": "^4.0.8", "normalize-path": "^3.0.0", "picocolors": "^1.1.1", - "postcss": "^8.5.14", + "postcss": "^8.5.15", "postcss-safe-parser": "^7.0.1", "postcss-selector-parser": "^7.1.1", "postcss-value-parser": "^4.2.0", @@ -12613,16 +12626,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.59.3", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.59.3.tgz", - "integrity": "sha512-KgusgyDgG4LI8Ih/sWaCtZ06tckLAS5CvT5A4D1Q7bYVoAAyzwiZvE4BmwDHkhRVkvhRBepKeASoFzQetha7Fg==", + "version": "8.61.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.61.0.tgz", + "integrity": "sha512-8y31Rd0eGTrDKqhy6vT0HtzhN+YLjQizwX3aA3hPXP/ynSfnrBXcQY5IzsP9/DM7+klX4IUncZZjkchP0z+rUw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.59.3", - "@typescript-eslint/parser": "8.59.3", - "@typescript-eslint/typescript-estree": "8.59.3", - "@typescript-eslint/utils": "8.59.3" + "@typescript-eslint/eslint-plugin": "8.61.0", + "@typescript-eslint/parser": "8.61.0", + "@typescript-eslint/typescript-estree": "8.61.0", + "@typescript-eslint/utils": "8.61.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" diff --git a/package.json b/package.json index 79d66d625f..a902edfe64 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "clean-lib": "rimraf lib", "cspell": "cspell lint \"**/*.tsx\"", "dev": "vite --host localhost --port 3000 --open", - "eslint": "eslint . --cache --max-warnings=97", + "eslint": "eslint . --cache --max-warnings=126", "eslint-fix": "node --run eslint -- --fix", "install:clean": "rm -rf node_modules/ && rm -rf package-lock.json && npm install && npm start", "knip": "knip", @@ -143,11 +143,11 @@ "@vitest/coverage-v8": "^4.1.7", "@zakodium/tsconfig": "^1.0.5", "cross-env": "^10.1.0", - "cspell": "^10.0.0", + "cspell": "^10.0.1", "eslint": "^9.39.2", - "eslint-config-cheminfo-react": "^20.0.1", - "eslint-config-cheminfo-typescript": "^22.0.0", - "knip": "^6.14.2", + "eslint-config-cheminfo-react": "^20.1.0", + "eslint-config-cheminfo-typescript": "^22.1.0", + "knip": "^6.16.1", "modern-normalize": "^3.0.1", "postcss": "^8.5.15", "postcss-styled-syntax": "^0.7.1", @@ -158,7 +158,7 @@ "react-router-dom": "^7.15.1", "rimraf": "^6.1.3", "serve": "^14.2.6", - "stylelint": "^17.12.0", + "stylelint": "^17.13.0", "stylelint-config-standard": "^40.0.0", "typescript": "~6.0.3", "vite": "^8.0.14", diff --git a/src/component/1d-2d/components/SpectrumInfoBlock.tsx b/src/component/1d-2d/components/SpectrumInfoBlock.tsx index 22d70e500a..1e9d495247 100644 --- a/src/component/1d-2d/components/SpectrumInfoBlock.tsx +++ b/src/component/1d-2d/components/SpectrumInfoBlock.tsx @@ -75,11 +75,9 @@ function SpectrumInfoBlock() { const infoFields = fields.filter((field) => field.visible); const totalSpace = verticalSpace * - ((infoFields?.length < 2 + ((infoFields?.length < 2 || infoFields?.length - (infoFields?.length % 2) ? 2 - : infoFields?.length - (infoFields?.length % 2) - ? 2 - : 1) || 0); + : 1) || 0); const [ ref, diff --git a/src/component/elements/Button.tsx b/src/component/elements/Button.tsx index 402bdc4680..cf4f57822a 100644 --- a/src/component/elements/Button.tsx +++ b/src/component/elements/Button.tsx @@ -203,7 +203,7 @@ const styles: Style = { type TooltipOrientation = 'vertical' | 'horizontal'; //based on the tooltip from react-science -const toolTipStyle = (orientation: TooltipOrientation) => { +const tooltipStyle = (orientation: TooltipOrientation) => { const common: CSSObject = { display: 'none', position: 'absolute', @@ -306,7 +306,7 @@ function Button(props: ButtonProps) { {props.children} {toolTip && ( -
+
, ) { return ( - , ) { return ( - ` display: flex; flex:none; - flex: ${isOpen && !matchContentHeight ? (isOverflow ? '1' : isOverflow ? '1' : '1 1 1px') : 'none'}; + flex: ${isOpen && !matchContentHeight ? (isOverflow ? '1' : '1 1 1px') : 'none'}; flex-direction: column; `, ); diff --git a/src/component/elements/export/ExportManager.tsx b/src/component/elements/export/ExportManager.tsx index 681459baec..18dd7bc1cd 100644 --- a/src/component/elements/export/ExportManager.tsx +++ b/src/component/elements/export/ExportManager.tsx @@ -11,7 +11,7 @@ import { import { useChartData } from '../../context/ChartContext.js'; import { usePreferences } from '../../context/PreferencesContext.js'; import { useToaster } from '../../context/ToasterContext.js'; -import { useExportViewPort } from '../../hooks/useExport.js'; +import { useExportViewport } from '../../hooks/useExport.js'; import { useWorkspaceExportSettings } from '../../hooks/useWorkspaceExportSettings.js'; import { ExportContent } from './ExportContent.js'; @@ -89,7 +89,7 @@ export function ExportManagerController(props: ExportManagerControllerProps) { ); const { saveAsPNGHandler, saveAsSVGHandler, copyPNGToClipboardHandler } = - useExportViewPort(); + useExportViewport(); function handleCloseExportOptionsDialog() { triggerExport(null); diff --git a/src/component/elements/export/utilities/exportOptionValidationSchema.ts b/src/component/elements/export/utilities/exportOptionValidationSchema.ts index 372ac6987f..8e2d07bb8a 100644 --- a/src/component/elements/export/utilities/exportOptionValidationSchema.ts +++ b/src/component/elements/export/utilities/exportOptionValidationSchema.ts @@ -63,10 +63,8 @@ const advanceExportOptionValidationSchema = Yup.object().shape({ .test( 'width-test', `Width should be less or equal to ${MAX_PIXEL}`, - // eslint-disable-next-line func-names - function (value) { - // eslint-disable-next-line no-invalid-this - const { unit, dpi } = this.parent; + (value, context) => { + const { unit, dpi } = context.parent; return testSize(value, unit, dpi); }, ), @@ -76,10 +74,8 @@ const advanceExportOptionValidationSchema = Yup.object().shape({ .test( 'height-test', `Height should be less or equal to ${MAX_PIXEL}`, - // eslint-disable-next-line func-names - function (value) { - // eslint-disable-next-line no-invalid-this - const { unit, dpi } = this.parent; + (value, context) => { + const { unit, dpi } = context.parent; return testSize(value, unit, dpi); }, ), diff --git a/src/component/elements/ToolBarButton.tsx b/src/component/elements/toolbar_button.tsx similarity index 76% rename from src/component/elements/ToolBarButton.tsx rename to src/component/elements/toolbar_button.tsx index 21c8fbf94a..f4467d1db8 100644 --- a/src/component/elements/ToolBarButton.tsx +++ b/src/component/elements/toolbar_button.tsx @@ -1,7 +1,7 @@ import type { ToolbarItemProps } from 'react-science/ui'; import { Toolbar } from 'react-science/ui'; -export function ToolBarButton(props: ToolbarItemProps) { +export function ToolbarButton(props: ToolbarItemProps) { return ( diff --git a/src/component/hooks/useExport.tsx b/src/component/hooks/useExport.tsx index 4cdf7c6c4f..1d90608c09 100644 --- a/src/component/hooks/useExport.tsx +++ b/src/component/hooks/useExport.tsx @@ -80,7 +80,7 @@ export function useExport() { }; } -export function useExportViewPort() { +export function useExportViewport() { const toaster = useToaster(); const state = useChartData(); diff --git a/src/component/hooks/useWorkspaceAction.ts b/src/component/hooks/useWorkspaceAction.ts index ec0aad86a7..6e403d470c 100644 --- a/src/component/hooks/useWorkspaceAction.ts +++ b/src/component/hooks/useWorkspaceAction.ts @@ -33,11 +33,11 @@ export function useWorkspaceAction() { workspaceName: string, data?: Omit, ) { - const workSpaceData = data ?? current; - const newWorkSpace = lodashMerge( + const workspaceData = data ?? current; + const newWorkspace = lodashMerge( {}, workspaceDefaultProperties, - workSpaceData, + workspaceData, { version: 1, label: workspaceName, @@ -49,7 +49,7 @@ export function useWorkspaceAction() { const settings = { ...localData, currentWorkspace: workspaceKey, - workspaces: { ...localData?.workspaces, [workspaceKey]: newWorkSpace }, + workspaces: { ...localData?.workspaces, [workspaceKey]: newWorkspace }, }; updateSettings(settings as Settings); @@ -57,7 +57,7 @@ export function useWorkspaceAction() { type: 'ADD_WORKSPACE', payload: { workspaceKey, - data: newWorkSpace, + data: newWorkspace, }, }); } diff --git a/src/component/main/InnerNMRiumContents.tsx b/src/component/main/InnerNMRiumContents.tsx index c6f00cba97..417e8a4d48 100644 --- a/src/component/main/InnerNMRiumContents.tsx +++ b/src/component/main/InnerNMRiumContents.tsx @@ -14,7 +14,7 @@ import { PrintContent } from '../elements/print/PrintContent.js'; import { Header } from '../header/Header.js'; import DropZone from '../loader/DropZone.js'; import { PanelsBar } from '../panels/PanelsBar.js'; -import ToolBar from '../toolbar/ToolBar.js'; +import NMRToolbar from '../toolbar/nmr_toolbar.tsx'; import { useNMRiumRefAPI } from './NMRiumRefAPI.js'; import { NMRiumViewer } from './NMRiumViewer.js'; @@ -144,7 +144,7 @@ export function InnerNMRiumContents(props: InnerNMRiumContentsProps) { > - + Damiano Banfi and Luc Patiny{' '} @@ -70,7 +70,7 @@ function AboutPredictionModal() {
  • Andrés M. Castillo, Luc Patiny and Julien Wist{' '} @@ -89,7 +89,7 @@ function AboutPredictionModal() {
  • Yuri Binev, Maria M. B. Marques and João Aires-de-Sousa{' '} @@ -101,7 +101,7 @@ function AboutPredictionModal() {
  • João Aires-de-Sousa, Markus C. Hemmer and Johann Gasteiger{' '} @@ -118,7 +118,7 @@ function AboutPredictionModal() {
  • Steinbeck, Christoph, Stefan Krause, and Stefan Kuhn{' '} diff --git a/src/component/modal/AboutSpectrumSimulationModal.tsx b/src/component/modal/AboutSpectrumSimulationModal.tsx index b9290bc669..ae3a42677c 100644 --- a/src/component/modal/AboutSpectrumSimulationModal.tsx +++ b/src/component/modal/AboutSpectrumSimulationModal.tsx @@ -63,7 +63,7 @@ function AboutSpectrumSimulationModal() {
  • Andrés M. Castillo, Luc Patiny and Julien Wist{' '} diff --git a/src/component/modal/LoadJCAMPModal.tsx b/src/component/modal/LoadJCAMPModal.tsx index 7e9e5c6fc6..cb5e5b74ba 100644 --- a/src/component/modal/LoadJCAMPModal.tsx +++ b/src/component/modal/LoadJCAMPModal.tsx @@ -23,7 +23,7 @@ const loadFormValidation = Yup.object({ (url) => { try { const fileURL = new URL(url); - const extension = fileURL.pathname.split('.')?.[1] || ''; + const extension = fileURL.pathname.split('.', 2)[1] || ''; if (allowedExtensions.has(extension)) { return true; } diff --git a/src/component/modal/editRange/forms/components/NewSignalTab.tsx b/src/component/modal/editRange/forms/components/NewSignalTab.tsx index 4bd9e193ac..acecf27469 100644 --- a/src/component/modal/editRange/forms/components/NewSignalTab.tsx +++ b/src/component/modal/editRange/forms/components/NewSignalTab.tsx @@ -123,9 +123,8 @@ export function NewSignalTab(props: NewSignalTabProps) { function getSignalValidationSchema(range: Range) { return Yup.object().shape({ delta: Yup.number() - .test(`test-range`, '', function testNewSignalDelta(value) { - // eslint-disable-next-line no-invalid-this - const { path, createError } = this; + .test(`test-range`, '', function testNewSignalDelta(value, context) { + const { path, createError } = context; if (value && value >= range.from && value <= range.to) { return true; } diff --git a/src/component/modal/editRange/forms/validation/EditRangeValidation.ts b/src/component/modal/editRange/forms/validation/EditRangeValidation.ts index 70125543d0..18d94acc3d 100644 --- a/src/component/modal/editRange/forms/validation/EditRangeValidation.ts +++ b/src/component/modal/editRange/forms/validation/EditRangeValidation.ts @@ -1,4 +1,3 @@ -/* eslint-disable no-invalid-this */ import * as Yup from 'yup'; import { hasCouplingConstant } from '../../../../panels/extra/utilities/MultiplicityUtilities.js'; @@ -14,10 +13,10 @@ const editRangeFormValidation = Yup.object().shape({ coupling: Yup.mixed().test( 'checkValue', '', - function testCoupling(value) { - const { path, createError } = this; + function testCoupling(value, context) { + const { path, createError } = context; const hasCoupling = hasCouplingConstant( - this.parent.multiplicity, + context.parent.multiplicity, ); if ((!hasCoupling && !value) || (hasCoupling && value)) { @@ -36,18 +35,18 @@ const editRangeFormValidation = Yup.object().shape({ .test( 'checkMultiplicity', 'Massive multiplicity requires exactly one coupling', - function test(js) { + function test(js, context) { const multiplicity: string = js?.map((j) => j.multiplicity).join('') || ''; if (multiplicity.includes('m') && js && js?.length > 1) { - return this.createError({ + return context.createError({ message: 'Massive multiplicity requires exactly one coupling', }); } if (multiplicity.includes('s') && js && js?.length > 1) { - return this.createError({ + return context.createError({ message: 'Singlet multiplicity requires exactly one coupling', }); } diff --git a/src/component/modal/metaImportation/MetaImportationModal.tsx b/src/component/modal/metaImportation/MetaImportationModal.tsx index ef00feba63..01edeb65ad 100644 --- a/src/component/modal/metaImportation/MetaImportationModal.tsx +++ b/src/component/modal/metaImportation/MetaImportationModal.tsx @@ -160,7 +160,7 @@ function InnerMetaImportationModal({ const errors = mapErrors(parseResult?.errors || []); - const metaData: ParseResult['data'] = parseResult?.data || []; + const metadata: ParseResult['data'] = parseResult?.data || []; const columns = useMemo(() => { const fields = parseResult?.meta.fields || []; @@ -305,7 +305,7 @@ function InnerMetaImportationModal({
    ) : (
    - + {item.label} {item.source !== 'user' && ( Read Only @@ -115,7 +115,7 @@ const style = { alignItems: 'center', }; -const WorkSpaceIndicator = (props: { source: WorkSpaceSource }) => { +const WorkspaceIndicator = (props: { source: WorkSpaceSource }) => { let letter = ''; let backgroundColor = 'red'; diff --git a/src/component/modal/setting/tanstack_general_settings/validation.ts b/src/component/modal/setting/tanstack_general_settings/validation.ts index dc05c06d61..d3af90d0b1 100644 --- a/src/component/modal/setting/tanstack_general_settings/validation.ts +++ b/src/component/modal/setting/tanstack_general_settings/validation.ts @@ -18,7 +18,7 @@ import { displayPanelsValidation } from './validation/panels_tab_validation.js'; import { spectraColorsTabValidation } from './validation/spectra_colors_tab_validation.ts'; import { spectraLabelTabValidation } from './validation/spectra_label_tab_validation.ts'; import { infoBlockTabValidation } from './validation/title_block_tab_validation.js'; -import { toolBarButtonsValidation } from './validation/tools_tab_validation.ts'; +import { toolbarButtonsValidation } from './validation/tools_tab_validation.ts'; /** * The type for the workspace preferences is `WorkspaceWithSource` @@ -30,7 +30,7 @@ import { toolBarButtonsValidation } from './validation/tools_tab_validation.ts'; const displayValidation = z.object({ general: displayGeneralValidation, panels: displayPanelsValidation, - toolBarButtons: toolBarButtonsValidation, + toolBarButtons: toolbarButtonsValidation, }); export const workspaceValidation = z.object({ diff --git a/src/component/modal/setting/tanstack_general_settings/validation/tools_tab_validation.ts b/src/component/modal/setting/tanstack_general_settings/validation/tools_tab_validation.ts index fcb06e2f78..97468a2a4b 100644 --- a/src/component/modal/setting/tanstack_general_settings/validation/tools_tab_validation.ts +++ b/src/component/modal/setting/tanstack_general_settings/validation/tools_tab_validation.ts @@ -1,6 +1,6 @@ import { z } from 'zod'; -export const toolBarButtonsValidation = z +export const toolbarButtonsValidation = z .object({ zoom: z.boolean().optional(), zoomOut: z.boolean().optional(), diff --git a/src/component/modal/setting/tanstack_general_settings/workspaces/actions.tsx b/src/component/modal/setting/tanstack_general_settings/workspaces/actions.tsx index 31c21d6e8f..f5acdc401a 100644 --- a/src/component/modal/setting/tanstack_general_settings/workspaces/actions.tsx +++ b/src/component/modal/setting/tanstack_general_settings/workspaces/actions.tsx @@ -56,12 +56,12 @@ function ResetWorkspaceButton(props: WorkspacesProps) { }, [current, currentName, formValues, originalWorkspaces]); function handleReset() { - const workSpaceDisplayPreferences = getPreferencesByWorkspace( + const workspaceDisplayPreferences = getPreferencesByWorkspace( currentName, originalWorkspaces, ); - reset(unsafeWorkspaceToForm(workSpaceDisplayPreferences)); + reset(unsafeWorkspaceToForm(workspaceDisplayPreferences)); } return ( diff --git a/src/component/panels/IntegralsPanel/IntegralPanel.tsx b/src/component/panels/IntegralsPanel/IntegralPanel.tsx index 17246e11d2..883cd2a2ec 100644 --- a/src/component/panels/IntegralsPanel/IntegralPanel.tsx +++ b/src/component/panels/IntegralsPanel/IntegralPanel.tsx @@ -123,9 +123,9 @@ function IntegralPanelInner(props: IntegralPanelInnerProps) { total={total} counter={filteredData?.length} onDelete={handleDeleteAll} - deleteToolTip="Delete All Integrals" + deleteTooltip="Delete All Integrals" onFilter={handleOnFilter} - filterToolTip={ + filterTooltip={ filterIsActive ? 'Show all integrals' : 'Hide integrals out of view' } onSettingClick={settingsPanelHandler} diff --git a/src/component/panels/MatrixGenerationPanel/FiltersOptions.tsx b/src/component/panels/MatrixGenerationPanel/FiltersOptions.tsx index 505ad96c8b..93501a0fb2 100644 --- a/src/component/panels/MatrixGenerationPanel/FiltersOptions.tsx +++ b/src/component/panels/MatrixGenerationPanel/FiltersOptions.tsx @@ -1,5 +1,4 @@ import { Button, Classes } from '@blueprintjs/core'; -import type { ReactNode } from 'react'; import { useFormContext, useWatch } from 'react-hook-form'; import { FaPlus, FaRegTrashAlt } from 'react-icons/fa'; @@ -139,7 +138,7 @@ function FiltersPanelGroupHeader({ index }: { index: number }) { function handleSelectFilter(value: any, index: number) { const clonedFilters = filters.slice(); - clonedFilters.splice(index, 1, value); + clonedFilters[index] = value; setValue('filters', clonedFilters); } @@ -214,18 +213,6 @@ function FiltersPanelGroupHeader({ index }: { index: number }) { ); } -// eslint-disable-next-line @typescript-eslint/no-unused-vars -function FieldInfo(props: { children: ReactNode; description: string }) { - return ( -
    - {props.children} - - {props.description} - -
    - ); -} - function LevelLabel({ field, children }: any) { const { name, level } = field; diff --git a/src/component/panels/PeaksPanel/PeaksPanel.tsx b/src/component/panels/PeaksPanel/PeaksPanel.tsx index 0b19199ee3..a9161f5234 100644 --- a/src/component/panels/PeaksPanel/PeaksPanel.tsx +++ b/src/component/panels/PeaksPanel/PeaksPanel.tsx @@ -203,9 +203,9 @@ function PeaksPanelInner(props: PeaksPanelInnerProps) { total={total} counter={filteredPeaks.length} onDelete={handleDeleteAll} - deleteToolTip="Delete All Peaks" + deleteTooltip="Delete All Peaks" onFilter={handleOnFilter} - filterToolTip={ + filterTooltip={ filterIsActive ? 'Show all peaks' : 'Hide peaks out of view' } onSettingClick={settingsPanelHandler} diff --git a/src/component/panels/RangesPanel/RangesHeader.tsx b/src/component/panels/RangesPanel/RangesHeader.tsx index 51a63d3dd7..e7d5daa97b 100644 --- a/src/component/panels/RangesPanel/RangesHeader.tsx +++ b/src/component/panels/RangesPanel/RangesHeader.tsx @@ -350,9 +350,9 @@ function RangesHeader(props: RangesHeaderProps) { total={total} counter={filterCounter} onDelete={handleDeleteAll} - deleteToolTip="Delete All Ranges" + deleteTooltip="Delete All Ranges" onFilter={onFilterActivated} - filterToolTip={ + filterTooltip={ isFilterActive ? 'Show all ranges' : 'Hide ranges out of view' } onSettingClick={onSettingClick} diff --git a/src/component/panels/SpectraPanel/SpectraPanelHeader.tsx b/src/component/panels/SpectraPanel/SpectraPanelHeader.tsx index 958b67f972..2b593341b9 100644 --- a/src/component/panels/SpectraPanel/SpectraPanelHeader.tsx +++ b/src/component/panels/SpectraPanel/SpectraPanelHeader.tsx @@ -378,7 +378,7 @@ function SpectraPanelHeaderInner({ onDelete={handleDelete} total={data?.length} counter={spectraLengthPerTab} - deleteToolTip="Delete selected spectra" + deleteTooltip="Delete selected spectra" disableDelete={!hasActiveSpectra} onSettingClick={onSettingClick} leftButtons={leftButtons} diff --git a/src/component/panels/SummaryPanel/SummaryPanel.tsx b/src/component/panels/SummaryPanel/SummaryPanel.tsx index c6743d303f..a1e3de607b 100644 --- a/src/component/panels/SummaryPanel/SummaryPanel.tsx +++ b/src/component/panels/SummaryPanel/SummaryPanel.tsx @@ -264,7 +264,7 @@ function SummaryPanel() { const additionalColumnData = useMemo(() => { const _selectedAdditionalColumnsAtomType = - selectedAdditionalColumnsAtomType.split('-')[0]; + selectedAdditionalColumnsAtomType.split('-', 1)[0]; if (!filteredCorrelationsData) { return []; } @@ -434,11 +434,7 @@ function SummaryPanel() { options?: CorrelationOptions, ) => { if ( - action === 'add' || - action === 'move' || - action === 'remove' || - action === 'unmove' || - action === 'setPathLength' + ['add', 'move', 'remove', 'unmove', 'setPathLength'].includes(action) ) { if (link && !link.pseudo) { if (action === 'remove') { @@ -480,7 +476,7 @@ function SummaryPanel() { total={total} counter={filteredCorrelationsData?.values.length} onFilter={handleOnFilter} - filterToolTip={ + filterTooltip={ filterIsActive ? 'Show all correlations' : 'Hide correlations out of view' diff --git a/src/component/panels/SummaryPanel/utilities/Utilities.ts b/src/component/panels/SummaryPanel/utilities/Utilities.ts index 4f1de4656a..9dfcf0c52b 100644 --- a/src/component/panels/SummaryPanel/utilities/Utilities.ts +++ b/src/component/panels/SummaryPanel/utilities/Utilities.ts @@ -26,7 +26,7 @@ import type { DisplayerMode } from '../../../reducer/Reducer.js'; import { ErrorColors } from '../CorrelationTable/Constants.js'; function getAtomType(nucleus: string): string { - return nucleus.split(/\d+/)[1]; + return nucleus.split(/\d+/, 2)[1]; } function getLabelColor(correlationData: any, correlation: any) { diff --git a/src/component/panels/ZonesPanel/ZonesPanel.tsx b/src/component/panels/ZonesPanel/ZonesPanel.tsx index 6984bd0dda..afa0ca3e8e 100644 --- a/src/component/panels/ZonesPanel/ZonesPanel.tsx +++ b/src/component/panels/ZonesPanel/ZonesPanel.tsx @@ -201,9 +201,9 @@ const MemoizedZonesPanel = memo(function ZonesPanelInner( total={total} counter={tableData?.length} onDelete={handleDeleteAll} - deleteToolTip="Delete All Zones" + deleteTooltip="Delete All Zones" onFilter={handleOnFilter} - filterToolTip={ + filterTooltip={ filterIsActive ? 'Show all zones' : 'Hide zones out of view' } onSettingClick={settingsPanelHandler} diff --git a/src/component/panels/databasePanel/DatabasePanel.tsx b/src/component/panels/databasePanel/DatabasePanel.tsx index b27a12616d..05e562238d 100644 --- a/src/component/panels/databasePanel/DatabasePanel.tsx +++ b/src/component/panels/databasePanel/DatabasePanel.tsx @@ -76,7 +76,7 @@ export interface DatabaseSearchKeywords { searchKeywords: string; } -export interface DataBaseSearchResultEntry { +export interface DatabaseSearchResultEntry { data: DatabaseNMREntry[]; databases: Array<{ key: string; value: string }>; solvents: Array<{ label: string; value: string }>; @@ -137,7 +137,7 @@ function DatabasePanelInner({ useState(emptyKeywords); const databaseInstance = useRef(null); const databaseDataRef = useRef([]); - const [result, setResult] = useState({ + const [result, setResult] = useState({ data: [], databases: [], solvents: [], diff --git a/src/component/panels/databasePanel/DatabaseSearchOptions.tsx b/src/component/panels/databasePanel/DatabaseSearchOptions.tsx index e30a0fac11..aedc4e67e0 100644 --- a/src/component/panels/databasePanel/DatabaseSearchOptions.tsx +++ b/src/component/panels/databasePanel/DatabaseSearchOptions.tsx @@ -9,13 +9,13 @@ import { useChartData } from '../../context/ChartContext.js'; import { useDispatch } from '../../context/DispatchContext.js'; import Input from '../../elements/Input.js'; import Select from '../../elements/Select.js'; -import { ToolBarButton } from '../../elements/ToolBarButton.js'; +import { ToolbarButton } from '../../elements/toolbar_button.tsx'; import useToolsFunctions from '../../hooks/useToolsFunctions.js'; import { options } from '../../toolbar/ToolTypes.js'; import type { - DataBaseSearchResultEntry, DatabaseSearchKeywords, + DatabaseSearchResultEntry, Databases, } from './DatabasePanel.js'; @@ -23,7 +23,7 @@ interface DatabaseSearchOptionsProps { databases: Databases; defaultDatabase: string; keywords: DatabaseSearchKeywords; - result: DataBaseSearchResultEntry; + result: DatabaseSearchResultEntry; idCode?: string; total: number; onKeywordsChange: (k: Partial) => void; @@ -94,7 +94,7 @@ export function DatabaseSearchOptions(props: DatabaseSearchOptionsProps) { paddingBottom: '2px', }} > - } active={showSimilarityTree} @@ -120,7 +120,7 @@ export function DatabaseSearchOptions(props: DatabaseSearchOptionsProps) {
    - } active={selectedTool === options.databaseRangesSelection.id} diff --git a/src/component/panels/filtersPanel/FilterPanel.tsx b/src/component/panels/filtersPanel/FilterPanel.tsx index 3d30f34174..b6db5a60af 100644 --- a/src/component/panels/filtersPanel/FilterPanel.tsx +++ b/src/component/panels/filtersPanel/FilterPanel.tsx @@ -39,7 +39,7 @@ export default function FiltersPanel() { return ( void; onFilter?: () => void; onSettingClick?: () => void; @@ -47,9 +47,9 @@ function DefaultPanelHeader(props: DefaultPanelHeaderProps) { total, counter, onDelete, - deleteToolTip = 'Delete', + deleteTooltip = 'Delete', onFilter, - filterToolTip = '', + filterTooltip = '', children, onSettingClick, disableDelete = false, @@ -80,7 +80,7 @@ function DefaultPanelHeader(props: DefaultPanelHeaderProps) { } intent="danger" disabled={!total || disableDelete} @@ -91,7 +91,7 @@ function DefaultPanelHeader(props: DefaultPanelHeaderProps) { } /> diff --git a/src/component/panels/informationPanel/InformationEditionModal.tsx b/src/component/panels/informationPanel/InformationEditionModal.tsx index 833b6e14c4..7499d901b1 100644 --- a/src/component/panels/informationPanel/InformationEditionModal.tsx +++ b/src/component/panels/informationPanel/InformationEditionModal.tsx @@ -120,9 +120,8 @@ const metaInfoValidationSchema = object() .shape({ metaInfo: metaInfoArraySchema, }) - .test('Unique', 'Key need te be unique', function check(values) { - // eslint-disable-next-line no-invalid-this - return checkUniqueByKey(values.metaInfo, 'key', this, 'metaInfo'); + .test('Unique', 'Key need te be unique', function check(values, context) { + return checkUniqueByKey(values.metaInfo, 'key', context, 'metaInfo'); }); interface InformationEditionModalProps { diff --git a/src/component/panels/informationPanel/InformationPanel.tsx b/src/component/panels/informationPanel/InformationPanel.tsx index 44d177f283..a5e6e68176 100644 --- a/src/component/panels/informationPanel/InformationPanel.tsx +++ b/src/component/panels/informationPanel/InformationPanel.tsx @@ -53,7 +53,7 @@ export function InformationPanel() { [customInfo, info, meta], ); - const toolTipProps: Omit = { + const tooltipProps: Omit = { intent: !activeSpectra ? 'danger' : 'none', }; @@ -75,7 +75,7 @@ export function InformationPanel() { 1} - tooltipProps={toolTipProps} + tooltipProps={tooltipProps} icon={} onClick={handleToggleInformationBlock} active={infoBlock.visible} @@ -86,7 +86,7 @@ export function InformationPanel() { /> } onClick={() => { openDialog('informationModal'); diff --git a/src/component/panels/multipleAnalysisPanel/MultipleSpectraAnalysisPanel.tsx b/src/component/panels/multipleAnalysisPanel/MultipleSpectraAnalysisPanel.tsx index e3d6688976..07cec8b6af 100644 --- a/src/component/panels/multipleAnalysisPanel/MultipleSpectraAnalysisPanel.tsx +++ b/src/component/panels/multipleAnalysisPanel/MultipleSpectraAnalysisPanel.tsx @@ -137,7 +137,7 @@ function MultipleSpectraAnalysisPanelInner({ {!isFlipped && ( diff --git a/src/component/panels/multipleAnalysisPanel/preferences/index.tsx b/src/component/panels/multipleAnalysisPanel/preferences/index.tsx index 1bb95ccec7..4d57536207 100644 --- a/src/component/panels/multipleAnalysisPanel/preferences/index.tsx +++ b/src/component/panels/multipleAnalysisPanel/preferences/index.tsx @@ -34,10 +34,13 @@ const preferencesSchema = Yup.object({ columns: Yup.lazy((data: any) => { return Yup.array() .of(columnSchema(data)) - .test('Unique', 'must be unique column name', function check(nuclei) { - // eslint-disable-next-line no-invalid-this - return checkUniqueByKey(nuclei, 'tempKey', this); - }); + .test( + 'Unique', + 'must be unique column name', + function check(nuclei, context) { + return checkUniqueByKey(nuclei, 'tempKey', context); + }, + ); }), resortSpectra: Yup.boolean(), }), @@ -148,7 +151,7 @@ function columnSchema(columns: any) { formula: Yup.string().test( 'required', 'Please enter formula field', - function checkRequired() { + function checkRequired(_, context) { const errors: Yup.ValidationError[] = []; for (let index = 0; index < columns.length; index++) { const column = columns[index]; @@ -157,11 +160,9 @@ function columnSchema(columns: any) { (!column.formula || column.formula === '') ) { errors.push( - // eslint-disable-next-line no-invalid-this - this.createError({ + context.createError({ message: `${column.tempKey} formula value is required`, - // eslint-disable-next-line no-invalid-this - path: `${this.path}[${index}].formula`, + path: `${context.path}[${index}].formula`, }), ); } diff --git a/src/component/reducer/actions/MoleculeActions.ts b/src/component/reducer/actions/MoleculeActions.ts index 5cf75ea8e4..3df89f8467 100644 --- a/src/component/reducer/actions/MoleculeActions.ts +++ b/src/component/reducer/actions/MoleculeActions.ts @@ -47,10 +47,12 @@ type AddMoleculesAction = ActionType< >; type SetMoleculeAction = ActionType< 'SET_MOLECULE', - Required> & - Omit & { - mappings?: ReturnType; - } + { + id: string; + label: string; + molfile: string; + mappings?: ReturnType; + } >; type DeleteMoleculeAction = ActionType< 'DELETE_MOLECULE', @@ -320,7 +322,11 @@ function handlePredictSpectraFromMolecule( }); id = moleculeObj?.id; } else { - setMolecule(draft, { id: crypto.randomUUID(), label: '', ...molecule }); + setMolecule(draft, { + id, + label: molecule.label ?? '', + molfile: molecule.molfile, + }); } if (id) { diff --git a/src/component/reducer/actions/RangesActions.ts b/src/component/reducer/actions/RangesActions.ts index 7fe4a2e576..c067b69961 100644 --- a/src/component/reducer/actions/RangesActions.ts +++ b/src/component/reducer/actions/RangesActions.ts @@ -340,12 +340,15 @@ function handleSaveEditedRange( // remove assignments in assignment hook data // for now: clear all assignments for this range because signals or levels to store might have changed const rangeIndex = getRangeIndex(spectrum, _editedRowData.id); + if (rangeIndex === -1) { + throw new Error('unreachable'); + } if (_editedRowData.id === 'new') { _editedRowData.id = crypto.randomUUID(); } - spectrum.ranges.values.splice(rangeIndex, 1, _editedRowData); + spectrum.ranges.values[rangeIndex] = _editedRowData; updateRangesRelativeValues(spectrum); handleUpdateCorrelations(draft); resetSelectedTool(draft); diff --git a/src/component/toolbar/ToolBar.tsx b/src/component/toolbar/nmr_toolbar.tsx similarity index 99% rename from src/component/toolbar/ToolBar.tsx rename to src/component/toolbar/nmr_toolbar.tsx index 4b99557045..c53383d401 100644 --- a/src/component/toolbar/ToolBar.tsx +++ b/src/component/toolbar/nmr_toolbar.tsx @@ -94,7 +94,7 @@ function useExportList() { return exportMenu; } -export default function ToolBar() { +export default function NMRToolbar() { const { toolOptions: { selectedTool }, } = useChartData(); diff --git a/src/data/data1d/database.ts b/src/data/data1d/database.ts index 2bd9c82522..4dd790cc22 100644 --- a/src/data/data1d/database.ts +++ b/src/data/data1d/database.ts @@ -5,12 +5,12 @@ import * as OCL from 'openchemlib'; import { MoleculesDB } from 'openchemlib-utils'; import { filter } from 'smart-array-filter'; -interface DataBaseSignal { +interface DatabaseSignal { assignment: string; delta: number; } -interface DataBaseBasic { +interface DatabaseBasic { spectrumID: string; index: number; names: string[]; @@ -21,10 +21,10 @@ interface DataBaseBasic { coordinates: string; }; } -interface DataBaseRange { +interface DatabaseRange { from: number; to: number; - signals: DataBaseSignal[]; + signals: DatabaseSignal[]; } export interface LocalDatabase { @@ -38,7 +38,7 @@ export const DATA_BASES: LocalDatabase[] = [ { key: 'local_solvent', label: 'Solvent database', - value: prepareDataBase([...protonImpurities, ...carbonImpurities]), + value: prepareDatabase([...protonImpurities, ...carbonImpurities]), }, ]; @@ -48,7 +48,7 @@ interface Coupling { } export type PrepareDataResult = Partial< - DataBaseBasic & DataBaseRange & DataBaseSignal & Coupling + DatabaseBasic & DatabaseRange & DatabaseSignal & Coupling >; export interface InitiateDatabaseResult { @@ -152,7 +152,7 @@ function prepareMoleculesDB(array: DatabaseNMREntry[]) { return moleculesDB; } -function prepareDataBase(array: DatabaseNMREntry[]) { +function prepareDatabase(array: DatabaseNMREntry[]) { return array.map((item) => { item.ranges = item.ranges.map((range) => ({ id: crypto.randomUUID(), diff --git a/src/data/molecules/MoleculeManager.ts b/src/data/molecules/MoleculeManager.ts index 1dafdadada..e40a9aef17 100644 --- a/src/data/molecules/MoleculeManager.ts +++ b/src/data/molecules/MoleculeManager.ts @@ -61,9 +61,9 @@ export function addMolfile( export function setMolfile( molecules: StateMoleculeExtended[], - currentMolecule: StateMolecule, + moleculeData: { id: string; molfile: string; label: string }, ) { - const { molfile, id, label } = currentMolecule; + const { molfile, id, label } = moleculeData; // try to parse molfile // this will throw if the molecule can not be parsed ! const _mol = initMolecule({ @@ -72,7 +72,8 @@ export function setMolfile( label, }); const molIndex = molecules.findIndex((m) => m.id === id); - molecules.splice(molIndex, 1, _mol); + if (molIndex === -1) throw new Error('unreachable'); + molecules[molIndex] = _mol; } export function extractNumber(value: string) { diff --git a/src/demo/Sidebar.tsx b/src/demo/Sidebar.tsx index dd3a89717c..68d6c68b6b 100644 --- a/src/demo/Sidebar.tsx +++ b/src/demo/Sidebar.tsx @@ -12,7 +12,7 @@ interface MenuStatus { isMenuClosed: boolean; } -const SideBarContainer = styled.div` +const SidebarContainer = styled.div` position: fixed; top: 0; bottom: 0; @@ -52,7 +52,7 @@ const MenuButton = styled.button` } `; -const SideBarHeader = styled.div` +const SidebarHeader = styled.div` align-items: center; border-bottom: 1px solid #eee; display: flex; @@ -80,7 +80,7 @@ const Title = styled.a` white-space: nowrap; `; -const SideBarWrapper = styled.div` +const SidebarWrapper = styled.div` position: relative; display: ${({ isMenuClosed }) => (isMenuClosed ? 'none' : 'block')}; height: calc(100vh - 75px); @@ -105,16 +105,16 @@ export default memo(function Sidebar(props: SidebarProps) { }, [routes]); return ( - - + + NMRium - - + + {/* @ts-expect-error menu typings are wrong */} { @@ -133,7 +133,7 @@ export default memo(function Sidebar(props: SidebarProps) { > {menu} - - + + ); }); diff --git a/src/demo/views/Test.tsx b/src/demo/views/Test.tsx index b10960acc0..040309f85f 100644 --- a/src/demo/views/Test.tsx +++ b/src/demo/views/Test.tsx @@ -82,9 +82,9 @@ export default function Test(props: any) { void loadData(file, baseURL).then(setData); }, [baseURL, file, props]); - const [viewCallBack, setViewCallBack] = useState({}); - const [dataCallBack, setDataCallBack] = useState({}); - const [settingsCallBack, setSettingsCallBack] = useState({}); + const [viewCallback, setViewCallback] = useState({}); + const [dataCallback, setDataCallback] = useState({}); + const [settingsCallback, setSettingsCallback] = useState({}); const dropFileHandler = useCallback((dropFiles: File[]) => { void (async () => { try { @@ -105,25 +105,25 @@ export default function Test(props: any) { switch (source) { case 'view': { incrementViewCount(); - setViewCallBack({ activate: true, data: view }); + setViewCallback({ activate: true, data: view }); setTimeout(() => { - setViewCallBack(({ data }: any) => ({ data, activate: false })); + setViewCallback(({ data }: any) => ({ data, activate: false })); }, 500); break; } case 'data': { incrementDataCount(); - setDataCallBack({ activate: true, data }); + setDataCallback({ activate: true, data }); setTimeout(() => { - setDataCallBack(({ data }: any) => ({ data, activate: false })); + setDataCallback(({ data }: any) => ({ data, activate: false })); }, 500); break; } case 'settings': { incrementSettingsCount(); - setSettingsCallBack({ activate: true, data: settings }); + setSettingsCallback({ activate: true, data: settings }); setTimeout(() => { - setSettingsCallBack(({ data }: any) => ({ data, activate: false })); + setSettingsCallback(({ data }: any) => ({ data, activate: false })); }, 500); break; } @@ -202,27 +202,27 @@ export default function Test(props: any) {

    {dataCount} - Data Change:

    - +

    {viewCount} - View Change:

    - +

    {settingsCount} - Settings Change:

    - +
    diff --git a/test-e2e/panels/spectra.test.ts b/test-e2e/panels/spectra.test.ts index 711efa18d4..1ffe1c55b4 100644 --- a/test-e2e/panels/spectra.test.ts +++ b/test-e2e/panels/spectra.test.ts @@ -55,37 +55,22 @@ test('Should Zoom', async ({ page }) => { expect(path).not.toMatch(previousPath); }); -test('Check change spectrum color, Should be white', async ({ page }) => { +test('Check change spectrum color, Should be green', async ({ page }) => { const nmrium = await NmriumPage.create(page); await nmrium.open1D(); - const whiteSpectrumLine = nmrium.page.locator( - '_react=Line[display.color = "#ffffffff"]', + const greenSpectrumLine = nmrium.page.locator( + '_react=Line[display.color = "#007d34ff"]', ); // There should be no white spectrum line at the beginning. - await expect(whiteSpectrumLine).toBeHidden(); - - // Open Change color modal + await expect(greenSpectrumLine).toBeHidden(); + // Open Change colour modal. await nmrium.page.click('_react=ColorIndicator'); - await nmrium.page.hover('_react=Saturation'); - // Change color by move to the top-left of the color picker (white) - const saturationBox = nmrium.page.locator('_react=Saturation'); - const box = await saturationBox.boundingBox(); - - if (box) { - const startX = box.x + box.width - 1; - const startY = box.y + box.height - 1; - const targetX = box.x; - const targetY = box.y; - await nmrium.page.mouse.move(startX, startY, { steps: 15 }); - await nmrium.page.mouse.down(); - await nmrium.page.mouse.move(targetX, targetY, { steps: 15 }); - await nmrium.page.mouse.up(); - } - - // The line should now be white. - await expect(whiteSpectrumLine).toBeVisible(); + // Select the green colour preset. + await nmrium.page.getByTitle('#007D34').click(); + // The line should now be green. + await expect(greenSpectrumLine).toBeVisible(); }); test('Should 2d deactivate spectrum', async ({ page }) => { diff --git a/test-e2e/panels/structures.test.ts b/test-e2e/panels/structures.test.ts index bc6d6a6d02..c57d8757e3 100644 --- a/test-e2e/panels/structures.test.ts +++ b/test-e2e/panels/structures.test.ts @@ -10,6 +10,8 @@ async function checkMoleculeStructureIsExists( const locator = nmrium.page.locator( `_react=MoleculePanel >> _react=MoleculeStructure >> nth=${index} >> svg`, ); + // This would have to be fixed in OpenChemLib. + // eslint-disable-next-line unicorn/prefer-https await expect(locator).toHaveAttribute('xmlns', 'http://www.w3.org/2000/svg'); await expect(locator).toBeVisible(); }