diff --git a/.vscode/settings.json b/.vscode/settings.json index 2736dd2e19..5d1ad38ecf 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,4 +1,4 @@ { "typescript.tsdk": "node_modules/typescript/lib", - "references.preferredLocation": "view" + "references.preferredLocation": "view", } \ No newline at end of file diff --git a/eslint.config.js b/eslint.config.js index bad46f251d..a7dc73b4d1 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -26,12 +26,7 @@ export default [ }, { rules: { - //todo remove the following rules once fixed: https://github.com/eslint/eslint/issues/19134 - // start - '@typescript-eslint/no-unused-expressions': 'off', - '@typescript-eslint/dot-notation': 'off', - '@typescript-eslint/no-empty-function': 'off', - //end + '@typescript-eslint/switch-exhaustiveness-check': 'off', 'import/default': 'off', 'import/no-unresolved': 'off', 'react-refresh/only-export-components': 'off', diff --git a/package-lock.json b/package-lock.json index d6928d85f7..42c2dd91bc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -43,8 +43,8 @@ "ml-tree-similarity": "^2.2.0", "multiplet-analysis": "^2.1.2", "nmr-correlation": "^2.3.3", - "nmr-load-save": "^1.2.0", - "nmr-processing": "^12.12.3", + "nmr-load-save": "^2.0.4", + "nmr-processing": "^14.0.3", "nmredata": "^0.9.11", "numeral": "^2.0.6", "openchemlib": "^8.17.0", @@ -125,12 +125,13 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.25.9.tgz", - "integrity": "sha512-z88xeGxnzehn2sqZ8UdGQEvYErF1odv2CftxInpSYJt6uHuPe9YjahKZITGs3l5LeI9d2ROG+obuDAoSlqbNfQ==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "license": "MIT", "dependencies": { - "@babel/highlight": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", "picocolors": "^1.0.0" }, "engines": { @@ -138,9 +139,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.25.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.8.tgz", - "integrity": "sha512-ZsysZyXY4Tlx+Q53XdnOFmqwfB9QDTHYxaZYajWRoBLuLEAwI2UIbtxOjWh/cFaa9IKUlcB+DDuoskLuKu56JA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", + "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", "dev": true, "license": "MIT", "peer": true, @@ -149,23 +150,23 @@ } }, "node_modules/@babel/core": { - "version": "7.25.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.8.tgz", - "integrity": "sha512-Oixnb+DzmRT30qu9d3tJSQkxuygWm32DFykT4bRoORPa9hZ/L4KhVB/XiRm6KG+roIEM7DBQlmg27kw2HZkdZg==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.25.7", - "@babel/generator": "^7.25.7", - "@babel/helper-compilation-targets": "^7.25.7", - "@babel/helper-module-transforms": "^7.25.7", - "@babel/helpers": "^7.25.7", - "@babel/parser": "^7.25.8", - "@babel/template": "^7.25.7", - "@babel/traverse": "^7.25.7", - "@babel/types": "^7.25.8", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -181,12 +182,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.9.tgz", - "integrity": "sha512-omlUGkr5EaoIJrhLf9CJ0TvjBRpd9+AXRG//0GEQ9THSo8wPiTlbpy1/Ow8ZTrbXpjd9FHXfbFQx32I04ht0FA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", + "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", "license": "MIT", "dependencies": { - "@babel/types": "^7.25.9", + "@babel/parser": "^7.26.2", + "@babel/types": "^7.26.0", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" @@ -209,15 +211,15 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.7.tgz", - "integrity": "sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@babel/compat-data": "^7.25.7", - "@babel/helper-validator-option": "^7.25.7", + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -276,14 +278,13 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.9.tgz", - "integrity": "sha512-TvLZY/F3+GvdRYFZFyxMvnsKi+4oJdgZzU3BoGN9Uc2d9C6zfNwJcKKhjqLAhK8i46mv93jsO74fDh3ih6rpHA==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-simple-access": "^7.25.9", "@babel/helper-validator-identifier": "^7.25.9", "@babel/traverse": "^7.25.9" }, @@ -392,42 +393,27 @@ } }, "node_modules/@babel/helpers": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.7.tgz", - "integrity": "sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@babel/template": "^7.25.7", - "@babel/types": "^7.25.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.9.tgz", - "integrity": "sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw==", - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.9.tgz", - "integrity": "sha512-aI3jjAAO1fh7vY/pBGsn1i9LDbRP43+asrRlkPuTXW5yHXtd1NgTEMudbBoDDxrf1daEEfPJqR+JBMakzrR4Dg==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", "license": "MIT", "dependencies": { - "@babel/types": "^7.25.9" + "@babel/types": "^7.26.0" }, "bin": { "parser": "bin/babel-parser.js" @@ -617,9 +603,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.7.tgz", - "integrity": "sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", + "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", "license": "MIT", "dependencies": { "regenerator-runtime": "^0.14.0" @@ -661,9 +647,9 @@ } }, "node_modules/@babel/types": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.9.tgz", - "integrity": "sha512-OwS2CM5KocvQ/k7dFJa8i5bNGJP0hXWfVCfDkqRFP1IreH1JDC7wG6eCYCi0+McbfT8OR/kNqsI0UU0xP9H6PQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.25.9", @@ -1174,9 +1160,9 @@ "license": "MIT" }, "node_modules/@cspell/dict-npm": { - "version": "5.1.11", - "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.1.11.tgz", - "integrity": "sha512-5ricJyVMw5TmqR0NfsZS8jEJu1+DLzyUXyjpVFnffPuEtz9jF2XswLK0swZqc9uwWrz0M7IhGVCnmq90srVZCA==", + "version": "5.1.13", + "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.1.13.tgz", + "integrity": "sha512-7S1Pwq16M4sqvv/op7iHErc6Diz+DXsBYRMS0dDj6HUS44VXMvgejXa3RMd5jwBmcHzkInFm3DW1eb2exBs0cg==", "dev": true, "license": "MIT" }, @@ -1226,9 +1212,9 @@ "license": "MIT" }, "node_modules/@cspell/dict-rust": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@cspell/dict-rust/-/dict-rust-4.0.9.tgz", - "integrity": "sha512-Dhr6TIZsMV92xcikKIWei6p/qswS4M+gTkivpWwz4/1oaVk2nRrxJmCdRoVkJlZkkAc17rjxrS12mpnJZI0iWw==", + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/@cspell/dict-rust/-/dict-rust-4.0.10.tgz", + "integrity": "sha512-6o5C8566VGTTctgcwfF3Iy7314W0oMlFFSQOadQ0OEdJ9Z9ERX/PDimrzP3LGuOrvhtEFoK8pj+BLnunNwRNrw==", "dev": true, "license": "MIT" }, @@ -1240,9 +1226,9 @@ "license": "MIT" }, "node_modules/@cspell/dict-software-terms": { - "version": "4.1.14", - "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-4.1.14.tgz", - "integrity": "sha512-p3oZQSQTgdu3UjZ5aaEeU5aKRD00j/oZzt51ohbhhJ94UYECi8te8SfcA45UbGkylSSGcAtJWkuwjCLMiKAgyQ==", + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-4.1.17.tgz", + "integrity": "sha512-QORIk1R5DV8oOQ+oAlUWE7UomaJwUucqu2srrc2+PmkoI6R1fJwwg2uHCPBWlIb4PGDNEdXLv9BAD13H+0wytQ==", "dev": true, "license": "MIT" }, @@ -1332,9 +1318,9 @@ } }, "node_modules/@csstools/css-parser-algorithms": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.2.tgz", - "integrity": "sha512-6tC/MnlEvs5suR4Ahef4YlBccJDHZuxGsAlxXmybWjZ5jPxlzLSMlRZ9mVHSRvlD+CmtE7+hJ+UQbfXrws/rUQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz", + "integrity": "sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==", "dev": true, "funding": [ { @@ -1351,13 +1337,13 @@ "node": ">=18" }, "peerDependencies": { - "@csstools/css-tokenizer": "^3.0.2" + "@csstools/css-tokenizer": "^3.0.3" } }, "node_modules/@csstools/css-tokenizer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.2.tgz", - "integrity": "sha512-IuTRcD53WHsXPCZ6W7ubfGqReTJ9Ra0yRRFmXYP/Re8hFYYfoIYIK4080X5luslVLWimhIeFq0hj09urVMQzTw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz", + "integrity": "sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==", "dev": true, "funding": [ { @@ -1991,17 +1977,20 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", "dev": true, "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, + "funding": { + "url": "https://opencollective.com/eslint" + }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } @@ -2134,9 +2123,9 @@ } }, "node_modules/@floating-ui/dom": { - "version": "1.6.11", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.11.tgz", - "integrity": "sha512-qkMCxSR24v2vGkhYDo/UzxfJN3D4syqSjyuTFz6C7XcpU1pASPRieNI0Kj5VP3/503mOfYiGY891ugBX1GlABQ==", + "version": "1.6.12", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.12.tgz", + "integrity": "sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==", "license": "MIT", "dependencies": { "@floating-ui/core": "^1.6.0", @@ -3087,9 +3076,9 @@ } }, "node_modules/@rc-component/trigger": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-2.2.3.tgz", - "integrity": "sha512-X1oFIpKoXAMXNDYCviOmTfuNuYxE4h5laBsyCqVAVMjNHxoF3/uiyA7XdegK1XbCvBbCZ6P6byWrEoDRpKL8+A==", + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-2.2.5.tgz", + "integrity": "sha512-F1EJ4KjFpGAHAjuKvOyZB/6IZDkVx0bHl0M4fQM5wXcmm7lgTgVSSnR3bXwdmS6jOJGHOqfDxIJW3WUvwMIXhQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3119,9 +3108,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", - "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==", + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.27.3.tgz", + "integrity": "sha512-EzxVSkIvCFxUd4Mgm4xR9YXrcp976qVaHnqom/Tgm+vU79k4vV4eYTjmRvGfeoW8m9LVcsAy/lGjcgVegKEhLQ==", "cpu": [ "arm" ], @@ -3133,9 +3122,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz", - "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==", + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.27.3.tgz", + "integrity": "sha512-LJc5pDf1wjlt9o/Giaw9Ofl+k/vLUaYsE2zeQGH85giX2F+wn/Cg8b3c5CDP3qmVmeO5NzwVUzQQxwZvC2eQKw==", "cpu": [ "arm64" ], @@ -3147,9 +3136,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz", - "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==", + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.27.3.tgz", + "integrity": "sha512-OuRysZ1Mt7wpWJ+aYKblVbJWtVn3Cy52h8nLuNSzTqSesYw1EuN6wKp5NW/4eSre3mp12gqFRXOKTcN3AI3LqA==", "cpu": [ "arm64" ], @@ -3161,9 +3150,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz", - "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==", + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.27.3.tgz", + "integrity": "sha512-xW//zjJMlJs2sOrCmXdB4d0uiilZsOdlGQIC/jjmMWT47lkLLoB1nsNhPUcnoqyi5YR6I4h+FjBpILxbEy8JRg==", "cpu": [ "x64" ], @@ -3174,10 +3163,38 @@ "darwin" ] }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.27.3.tgz", + "integrity": "sha512-58E0tIcwZ+12nK1WiLzHOD8I0d0kdrY/+o7yFVPRHuVGY3twBwzwDdTIBGRxLmyjciMYl1B/U515GJy+yn46qw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.27.3.tgz", + "integrity": "sha512-78fohrpcVwTLxg1ZzBMlwEimoAJmY6B+5TsyAZ3Vok7YabRBUvjYTsRXPTjGEvv/mfgVBepbW28OlMEz4w8wGA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz", - "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==", + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.27.3.tgz", + "integrity": "sha512-h2Ay79YFXyQi+QZKo3ISZDyKaVD7uUvukEHTOft7kh00WF9mxAaxZsNs3o/eukbeKuH35jBvQqrT61fzKfAB/Q==", "cpu": [ "arm" ], @@ -3189,9 +3206,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz", - "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==", + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.27.3.tgz", + "integrity": "sha512-Sv2GWmrJfRY57urktVLQ0VKZjNZGogVtASAgosDZ1aUB+ykPxSi3X1nWORL5Jk0sTIIwQiPH7iE3BMi9zGWfkg==", "cpu": [ "arm" ], @@ -3203,9 +3220,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz", - "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==", + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.27.3.tgz", + "integrity": "sha512-FPoJBLsPW2bDNWjSrwNuTPUt30VnfM8GPGRoLCYKZpPx0xiIEdFip3dH6CqgoT0RnoGXptaNziM0WlKgBc+OWQ==", "cpu": [ "arm64" ], @@ -3217,9 +3234,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz", - "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==", + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.27.3.tgz", + "integrity": "sha512-TKxiOvBorYq4sUpA0JT+Fkh+l+G9DScnG5Dqx7wiiqVMiRSkzTclP35pE6eQQYjP4Gc8yEkJGea6rz4qyWhp3g==", "cpu": [ "arm64" ], @@ -3231,9 +3248,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz", - "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==", + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.27.3.tgz", + "integrity": "sha512-v2M/mPvVUKVOKITa0oCFksnQQ/TqGrT+yD0184/cWHIu0LoIuYHwox0Pm3ccXEz8cEQDLk6FPKd1CCm+PlsISw==", "cpu": [ "ppc64" ], @@ -3245,9 +3262,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz", - "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==", + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.27.3.tgz", + "integrity": "sha512-LdrI4Yocb1a/tFVkzmOE5WyYRgEBOyEhWYJe4gsDWDiwnjYKjNs7PS6SGlTDB7maOHF4kxevsuNBl2iOcj3b4A==", "cpu": [ "riscv64" ], @@ -3259,9 +3276,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz", - "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==", + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.27.3.tgz", + "integrity": "sha512-d4wVu6SXij/jyiwPvI6C4KxdGzuZOvJ6y9VfrcleHTwo68fl8vZC5ZYHsCVPUi4tndCfMlFniWgwonQ5CUpQcA==", "cpu": [ "s390x" ], @@ -3273,9 +3290,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", - "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.27.3.tgz", + "integrity": "sha512-/6bn6pp1fsCGEY5n3yajmzZQAh+mW4QPItbiWxs69zskBzJuheb3tNynEjL+mKOsUSFK11X4LYF2BwwXnzWleA==", "cpu": [ "x64" ], @@ -3287,9 +3304,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz", - "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==", + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.27.3.tgz", + "integrity": "sha512-nBXOfJds8OzUT1qUreT/en3eyOXd2EH5b0wr2bVB5999qHdGKkzGzIyKYaKj02lXk6wpN71ltLIaQpu58YFBoQ==", "cpu": [ "x64" ], @@ -3301,9 +3318,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz", - "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==", + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.27.3.tgz", + "integrity": "sha512-ogfbEVQgIZOz5WPWXF2HVb6En+kWzScuxJo/WdQTqEgeyGkaa2ui5sQav9Zkr7bnNCLK48uxmmK0TySm22eiuw==", "cpu": [ "arm64" ], @@ -3315,9 +3332,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz", - "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==", + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.27.3.tgz", + "integrity": "sha512-ecE36ZBMLINqiTtSNQ1vzWc5pXLQHlf/oqGp/bSbi7iedcjcNb6QbCBNG73Euyy2C+l/fn8qKWEwxr+0SSfs3w==", "cpu": [ "ia32" ], @@ -3329,9 +3346,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz", - "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==", + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.27.3.tgz", + "integrity": "sha512-vliZLrDmYKyaUoMzEbMTg2JkerfBjn03KmAw9CykO0Zzkzoyd7o3iZNam/TpyWNjNT+Cz2iO3P9Smv2wgrR+Eg==", "cpu": [ "x64" ], @@ -3360,15 +3377,15 @@ } }, "node_modules/@swc/core": { - "version": "1.7.36", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.7.36.tgz", - "integrity": "sha512-bu7ymMX+LCJOSSrKank25Jaq66ymLVA9fOUuy4ck3/6rbXdLw+pIJPnIDKQ9uNcxww8KDxOuJk9Ui9pqR+aGFw==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.9.2.tgz", + "integrity": "sha512-dYyEkO6mRYtZFpnOsnYzv9rY69fHAHoawYOjGOEcxk9WYtaJhowMdP/w6NcOKnz2G7GlZaenjkzkMa6ZeQeMsg==", "dev": true, "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { "@swc/counter": "^0.1.3", - "@swc/types": "^0.1.13" + "@swc/types": "^0.1.15" }, "engines": { "node": ">=10" @@ -3378,16 +3395,16 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-darwin-arm64": "1.7.36", - "@swc/core-darwin-x64": "1.7.36", - "@swc/core-linux-arm-gnueabihf": "1.7.36", - "@swc/core-linux-arm64-gnu": "1.7.36", - "@swc/core-linux-arm64-musl": "1.7.36", - "@swc/core-linux-x64-gnu": "1.7.36", - "@swc/core-linux-x64-musl": "1.7.36", - "@swc/core-win32-arm64-msvc": "1.7.36", - "@swc/core-win32-ia32-msvc": "1.7.36", - "@swc/core-win32-x64-msvc": "1.7.36" + "@swc/core-darwin-arm64": "1.9.2", + "@swc/core-darwin-x64": "1.9.2", + "@swc/core-linux-arm-gnueabihf": "1.9.2", + "@swc/core-linux-arm64-gnu": "1.9.2", + "@swc/core-linux-arm64-musl": "1.9.2", + "@swc/core-linux-x64-gnu": "1.9.2", + "@swc/core-linux-x64-musl": "1.9.2", + "@swc/core-win32-arm64-msvc": "1.9.2", + "@swc/core-win32-ia32-msvc": "1.9.2", + "@swc/core-win32-x64-msvc": "1.9.2" }, "peerDependencies": { "@swc/helpers": "*" @@ -3399,9 +3416,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.7.36", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.7.36.tgz", - "integrity": "sha512-8vDczXzCgv3ceTPhEivlpGprN44YlrCK1nbfU9g2TrhV/Aiqi09W/eM5zLesdoM1Z3mJl492gc/8nlTkpDdusw==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.9.2.tgz", + "integrity": "sha512-nETmsCoY29krTF2PtspEgicb3tqw7Ci5sInTI03EU5zpqYbPjoPH99BVTjj0OsF53jP5MxwnLI5Hm21lUn1d6A==", "cpu": [ "arm64" ], @@ -3416,9 +3433,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.7.36", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.7.36.tgz", - "integrity": "sha512-Pa2Gao7+Wf5m3SsK4abKRtd48AtoUnJInvaC3d077swBfgZjbjUbQvcpdc2dOeQtWwo49rFqUZJonMsL0jnPgQ==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.9.2.tgz", + "integrity": "sha512-9gD+bwBz8ZByjP6nZTXe/hzd0tySIAjpDHgkFiUrc+5zGF+rdTwhcNrzxNHJmy6mw+PW38jqII4uspFHUqqxuQ==", "cpu": [ "x64" ], @@ -3433,9 +3450,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.7.36", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.7.36.tgz", - "integrity": "sha512-3YsMWd7V+WZEjbfBnLkkz/olcRBa8nyoK0iIOnNARJBMcYaJxjkJSMZpmSojCnIVwvjA1N83CPAbUL+W+fCnHg==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.9.2.tgz", + "integrity": "sha512-kYq8ief1Qrn+WmsTWAYo4r+Coul4dXN6cLFjiPZ29Cv5pyU+GFvSPAB4bEdMzwy99rCR0u2P10UExaeCjurjvg==", "cpu": [ "arm" ], @@ -3450,9 +3467,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.7.36", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.7.36.tgz", - "integrity": "sha512-lqM3aBB7kJazJYOwHeA5OGNLqXoQPZ/76b3dV+XcjN1GhD0CcXz6mW5PRYVin6OSN1eKrKBKJjtDA1mqADDEvw==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.9.2.tgz", + "integrity": "sha512-n0W4XiXlmEIVqxt+rD3ZpkogsEWUk1jJ+i5bQNgB+1JuWh0fBE8c/blDgTQXa0GB5lTPVDZQussgdNOCnAZwiA==", "cpu": [ "arm64" ], @@ -3467,9 +3484,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.7.36", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.7.36.tgz", - "integrity": "sha512-bqei2YDzvUfG0pth5W2xJaj0eG4XWYk0d/NJ75vBX6bkIzK6dC8iuKQ41jOfUWonnrAs7rTDDJW0sTn/evvRdw==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.9.2.tgz", + "integrity": "sha512-8xzrOmsyCC1zrx2Wzx/h8dVsdewO1oMCwBTLc1gSJ/YllZYTb04pNm6NsVbzUX2tKddJVRgSJXV10j/NECLwpA==", "cpu": [ "arm64" ], @@ -3484,9 +3501,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.7.36", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.7.36.tgz", - "integrity": "sha512-03maXTUyaBjeCxlDltmdzHje1ryQt1C4OWmmNgSSRXjLb+GNnAenwOJMSrcvHP/aNClD2pwsFCnYKDGy+sYE6w==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.9.2.tgz", + "integrity": "sha512-kZrNz/PjRQKcchWF6W292jk3K44EoVu1ad5w+zbS4jekIAxsM8WwQ1kd+yjUlN9jFcF8XBat5NKIs9WphJCVXg==", "cpu": [ "x64" ], @@ -3501,9 +3518,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.7.36", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.7.36.tgz", - "integrity": "sha512-XXysqLkvjtQnXm1zHqLhy00UYPv/gk5OtwR732X+piNisnEbcJBqI8Qp9O7YvLWllRcoP8IMBGDWLGdGLSpViA==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.9.2.tgz", + "integrity": "sha512-TTIpR4rjMkhX1lnFR+PSXpaL83TrQzp9znRdp2TzYrODlUd/R20zOwSo9vFLCyH6ZoD47bccY7QeGZDYT3nlRg==", "cpu": [ "x64" ], @@ -3518,9 +3535,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.7.36", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.7.36.tgz", - "integrity": "sha512-k7+dmb13a/zPw+E4XYfPmLZFWJgcOcBRKIjYl9nQErtYsgsg3Ji6TBbsvJVETy23lNHyewZ17V5Vq6NzaG0hzg==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.9.2.tgz", + "integrity": "sha512-+Eg2d4icItKC0PMjZxH7cSYFLWk0aIp94LNmOw6tPq0e69ax6oh10upeq0D1fjWsKLmOJAWEvnXlayZcijEXDw==", "cpu": [ "arm64" ], @@ -3535,9 +3552,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.7.36", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.7.36.tgz", - "integrity": "sha512-ridD3ay6YM2PEYHZXXFN+edYEv0FOynaqOBP+NSnGNHA35azItIjoIe+KNi4WltGtAjpKCHSpjGCNfna12wdYQ==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.9.2.tgz", + "integrity": "sha512-nLWBi4vZDdM/LkiQmPCakof8Dh1/t5EM7eudue04V1lIcqx9YHVRS3KMwEaCoHLGg0c312Wm4YgrWQd9vwZ5zQ==", "cpu": [ "ia32" ], @@ -3552,9 +3569,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.7.36", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.7.36.tgz", - "integrity": "sha512-j1z2Z1Ln9d0E3dHsPkC1K9XDh0ojhRPwV+GfRTu4D61PE+aYhYLvbJC6xPvL4/204QrStRS7eDu3m+BcDp3rgQ==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.9.2.tgz", + "integrity": "sha512-ik/k+JjRJBFkXARukdU82tSVx0CbExFQoQ78qTO682esbYXzjdB5eLVkoUbwen299pnfr88Kn4kyIqFPTje8Xw==", "cpu": [ "x64" ], @@ -3576,9 +3593,9 @@ "license": "Apache-2.0" }, "node_modules/@swc/types": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.13.tgz", - "integrity": "sha512-JL7eeCk6zWCbiYQg2xQSdLXQJl8Qoc9rXmG2cEKvHe3CKwMHwHGpfOb8frzNLmbycOo6I51qxnLnn9ESf4I20Q==", + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.15.tgz", + "integrity": "sha512-XKaZ+dzDIQ9Ot9o89oJQ/aluI17+VvUnIpYJTcZtvv1iYX6MzHh3Ik2CSR7MdPKpPwfZXHBeCingb2b4PoDVdw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -3586,9 +3603,9 @@ } }, "node_modules/@tanstack/query-core": { - "version": "5.59.13", - "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.59.13.tgz", - "integrity": "sha512-Oou0bBu/P8+oYjXsJQ11j+gcpLAMpqW42UlokQYEz4dE7+hOtVO9rVuolJKgEccqzvyFzqX4/zZWY+R/v1wVsQ==", + "version": "5.60.5", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.60.5.tgz", + "integrity": "sha512-jiS1aC3XI3BJp83ZiTuDLerTmn9P3U95r6p+6/SNauLJaYxfIC4dMuWygwnBHIZxjn2zJqEpj3nysmPieoxfPQ==", "license": "MIT", "funding": { "type": "github", @@ -3596,12 +3613,12 @@ } }, "node_modules/@tanstack/react-query": { - "version": "5.59.14", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.59.14.tgz", - "integrity": "sha512-2cM4x3Ka4Thl7/wnjf++EMGA2Is/RgPynn83D4kfGiJOGSjb5T2D3EEOlC8Nt6U2htLS3imOXjOSMEjC3K7JNg==", + "version": "5.60.5", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.60.5.tgz", + "integrity": "sha512-M77bOsPwj1wYE56gk7iJvxGAr4IC12NWdIDhT+Eo8ldkWRHMvIR8I/rufIvT1OXoV/bl7EECwuRuMlxxWtvW2Q==", "license": "MIT", "dependencies": { - "@tanstack/query-core": "5.59.13" + "@tanstack/query-core": "5.60.5" }, "funding": { "type": "github", @@ -4037,17 +4054,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.9.0.tgz", - "integrity": "sha512-Y1n621OCy4m7/vTXNlCbMVp87zSd7NH0L9cXD8aIpOaNlzeWxIK4+Q19A68gSmTNRZn92UjocVUWDthGxtqHFg==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.15.0.tgz", + "integrity": "sha512-+zkm9AR1Ds9uLWN3fkoeXgFppaQ+uEVtfOV62dDmsy9QCNqlRHWNEck4yarvRNrvRcHQLGfqBNui3cimoz8XAg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.9.0", - "@typescript-eslint/type-utils": "8.9.0", - "@typescript-eslint/utils": "8.9.0", - "@typescript-eslint/visitor-keys": "8.9.0", + "@typescript-eslint/scope-manager": "8.15.0", + "@typescript-eslint/type-utils": "8.15.0", + "@typescript-eslint/utils": "8.15.0", + "@typescript-eslint/visitor-keys": "8.15.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -4071,16 +4088,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.9.0.tgz", - "integrity": "sha512-U+BLn2rqTTHnc4FL3FJjxaXptTxmf9sNftJK62XLz4+GxG3hLHm/SUNaaXP5Y4uTiuYoL5YLy4JBCJe3+t8awQ==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.15.0.tgz", + "integrity": "sha512-7n59qFpghG4uazrF9qtGKBZXn7Oz4sOMm8dwNWDQY96Xlm2oX67eipqcblDj+oY1lLCbf1oltMZFpUso66Kl1A==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/scope-manager": "8.9.0", - "@typescript-eslint/types": "8.9.0", - "@typescript-eslint/typescript-estree": "8.9.0", - "@typescript-eslint/visitor-keys": "8.9.0", + "@typescript-eslint/scope-manager": "8.15.0", + "@typescript-eslint/types": "8.15.0", + "@typescript-eslint/typescript-estree": "8.15.0", + "@typescript-eslint/visitor-keys": "8.15.0", "debug": "^4.3.4" }, "engines": { @@ -4100,14 +4117,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.9.0.tgz", - "integrity": "sha512-bZu9bUud9ym1cabmOYH9S6TnbWRzpklVmwqICeOulTCZ9ue2/pczWzQvt/cGj2r2o1RdKoZbuEMalJJSYw3pHQ==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.15.0.tgz", + "integrity": "sha512-QRGy8ADi4J7ii95xz4UoiymmmMd/zuy9azCaamnZ3FM8T5fZcex8UfJcjkiEZjJSztKfEBe3dZ5T/5RHAmw2mA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.9.0", - "@typescript-eslint/visitor-keys": "8.9.0" + "@typescript-eslint/types": "8.15.0", + "@typescript-eslint/visitor-keys": "8.15.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -4118,14 +4135,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.9.0.tgz", - "integrity": "sha512-JD+/pCqlKqAk5961vxCluK+clkppHY07IbV3vett97KOV+8C6l+CPEPwpUuiMwgbOz/qrN3Ke4zzjqbT+ls+1Q==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.15.0.tgz", + "integrity": "sha512-UU6uwXDoI3JGSXmcdnP5d8Fffa2KayOhUUqr/AiBnG1Gl7+7ut/oyagVeSkh7bxQ0zSXV9ptRh/4N15nkCqnpw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.9.0", - "@typescript-eslint/utils": "8.9.0", + "@typescript-eslint/typescript-estree": "8.15.0", + "@typescript-eslint/utils": "8.15.0", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -4136,6 +4153,9 @@ "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + }, "peerDependenciesMeta": { "typescript": { "optional": true @@ -4143,9 +4163,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.9.0.tgz", - "integrity": "sha512-SjgkvdYyt1FAPhU9c6FiYCXrldwYYlIQLkuc+LfAhCna6ggp96ACncdtlbn8FmnG72tUkXclrDExOpEYf1nfJQ==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.15.0.tgz", + "integrity": "sha512-n3Gt8Y/KyJNe0S3yDCD2RVKrHBC4gTUcLTebVBXacPy091E6tNspFLKRXlk3hwT4G55nfr1n2AdFqi/XMxzmPQ==", "dev": true, "license": "MIT", "engines": { @@ -4157,14 +4177,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.9.0.tgz", - "integrity": "sha512-9iJYTgKLDG6+iqegehc5+EqE6sqaee7kb8vWpmHZ86EqwDjmlqNNHeqDVqb9duh+BY6WCNHfIGvuVU3Tf9Db0g==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.15.0.tgz", + "integrity": "sha512-1eMp2JgNec/niZsR7ioFBlsh/Fk0oJbhaqO0jRyQBMgkz7RrFfkqF9lYYmBoGBaSiLnu8TAPQTwoTUiSTUW9dg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "8.9.0", - "@typescript-eslint/visitor-keys": "8.9.0", + "@typescript-eslint/types": "8.15.0", + "@typescript-eslint/visitor-keys": "8.15.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -4225,16 +4245,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.9.0.tgz", - "integrity": "sha512-PKgMmaSo/Yg/F7kIZvrgrWa1+Vwn036CdNUvYFEkYbPwOH4i8xvkaRlu148W3vtheWK9ckKRIz7PBP5oUlkrvQ==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.15.0.tgz", + "integrity": "sha512-k82RI9yGhr0QM3Dnq+egEpz9qB6Un+WLYhmoNcvl8ltMEededhh7otBVVIDDsEEttauwdY/hQoSsOv13lxrFzQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.9.0", - "@typescript-eslint/types": "8.9.0", - "@typescript-eslint/typescript-estree": "8.9.0" + "@typescript-eslint/scope-manager": "8.15.0", + "@typescript-eslint/types": "8.15.0", + "@typescript-eslint/typescript-estree": "8.15.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -4245,17 +4265,22 @@ }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.9.0.tgz", - "integrity": "sha512-Ht4y38ubk4L5/U8xKUBfKNYGmvKvA1CANoxiTRMM+tOLk3lbF3DvzZCxJCRSE+2GdCMSh6zq9VZJc3asc1XuAA==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.15.0.tgz", + "integrity": "sha512-h8vYOulWec9LhpwfAdZf2bjr8xIp0KNKnpgqSz0qqYYKAW/QZKw3ktRndbiAtUz4acH4QLQavwZBYCc0wulA/Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.9.0", - "eslint-visitor-keys": "^3.4.3" + "@typescript-eslint/types": "8.15.0", + "eslint-visitor-keys": "^4.2.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -4265,19 +4290,6 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/@vitejs/plugin-react-swc": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.7.1.tgz", @@ -4567,15 +4579,19 @@ } }, "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/arch": { @@ -4837,9 +4853,9 @@ "license": "MIT" }, "node_modules/attr-accept": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.4.tgz", - "integrity": "sha512-2pA6xFIbdTUDCAwjN8nQwI+842VwzbDUXO2IYlpPXQIORgKnavorcr4Ce3rwh+zsNg9zK7QPsdvDj3Lum4WX4w==", + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.5.tgz", + "integrity": "sha512-0bDNnY/u6pPwHDMoF0FieU354oBi0a8rD9FcsLwzcGWbc8KS8KPIi7y+s13OlVY+gMWc/9xEMUgNE6Qm8ZllYQ==", "license": "MIT", "engines": { "node": ">=4" @@ -4936,19 +4952,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/boxen/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/boxen/node_modules/type-fest": { "version": "2.19.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", @@ -4987,9 +4990,9 @@ } }, "node_modules/browserslist": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", - "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", "dev": true, "funding": [ { @@ -5007,10 +5010,10 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001663", - "electron-to-chromium": "^1.5.28", + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.0" + "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" @@ -5020,16 +5023,16 @@ } }, "node_modules/brukerconverter": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/brukerconverter/-/brukerconverter-7.0.3.tgz", - "integrity": "sha512-zxZWk6BO74hFRak9TUIQhRcZjkTdvn9EuCQgbbLT6uB3lxDMxy/wTVasubIOphwioKY8N075YdqHudVaq5XN2g==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/brukerconverter/-/brukerconverter-7.0.4.tgz", + "integrity": "sha512-G8Jx2f+hV02Zvkw+nXB1MpTFJaJhsuinrt+XQv/SFjA88rWYCrxw3WIMmHx06Bp19Zw03BYMdHy0YDMpyjplbw==", "license": "MIT", "dependencies": { "cheminfo-types": "^1.7.3", "filelist-utils": "^1.11.0", "iobuffer": "^5.3.2", "is-any-array": "^2.0.1", - "jcampconverter": "^9.6.4", + "jcampconverter": "^10.0.1", "ml-spectra-processing": "^14.5.0" } }, @@ -5119,9 +5122,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001668", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001668.tgz", - "integrity": "sha512-nWLrdxqCdblixUO+27JtGJJE/txpJlyUy5YN1u53wLZkP0emYCo5zgS6QYft7VUYR42LGgi/S5hdLZTrnyIddw==", + "version": "1.0.30001680", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001680.tgz", + "integrity": "sha512-rPQy70G6AGUMnbwS1z6Xg+RkHYPAi18ihs47GH0jcxIG7wArmPgY3XbS2sRdBbxJljp3thdT8BIqv9ccCypiPA==", "dev": true, "funding": [ { @@ -5168,17 +5171,16 @@ } }, "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, "engines": { - "node": ">=4" + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/chalk-template": { @@ -5197,28 +5199,6 @@ "url": "https://github.com/chalk/chalk-template?sponsor=1" } }, - "node_modules/chalk-template/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chalk/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==", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/change-case": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", @@ -5274,9 +5254,9 @@ "license": "MIT" }, "node_modules/ci-info": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.0.0.tgz", - "integrity": "sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.1.0.tgz", + "integrity": "sha512-HutrvTNsF48wnxkzERIXOe5/mlcfFcbfCmwcg6CJnizbSue78AbDt+1cgl26zwn61WFxhcPykPfZrbqjGmBb4A==", "dev": true, "funding": [ { @@ -5382,18 +5362,23 @@ } }, "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "license": "MIT", "dependencies": { - "color-name": "1.1.3" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, "license": "MIT" }, "node_modules/colord": { @@ -5540,13 +5525,13 @@ } }, "node_modules/core-js-compat": { - "version": "3.38.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.1.tgz", - "integrity": "sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==", + "version": "3.39.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz", + "integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.23.3" + "browserslist": "^4.24.2" }, "funding": { "type": "opencollective", @@ -5805,19 +5790,6 @@ "node": ">=18" } }, - "node_modules/cspell/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/cspell/node_modules/semver": { "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", @@ -5841,6 +5813,20 @@ "node": ">=12 || >=16" } }, + "node_modules/css-tree": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.0.1.tgz", + "integrity": "sha512-8Fxxv+tGhORlshCdCwnNJytvlvq46sOLSYEx2ZIGurahWvMucSRnyjPA3AmrMq4VPRYbHVpWj5VkiVasrM2H4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.12.1", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", @@ -6485,23 +6471,23 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.38", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.38.tgz", - "integrity": "sha512-VbeVexmZ1IFh+5EfrYz1I0HTzHVIlJa112UEWhciPyeOcKJGeTv6N8WnG4wsQB81DGCaVEGhpSb6o6a8WYFXXg==", + "version": "1.5.63", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.63.tgz", + "integrity": "sha512-ddeXKuY9BHo/mw145axlyWjlJ1UBt4WK3AlvkT7W2AbqfRQoacVoRUCF6wL3uIx/8wT9oLKXzI+rFqHHscByaA==", "dev": true, "license": "ISC" }, "node_modules/emdb": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/emdb/-/emdb-3.3.8.tgz", - "integrity": "sha512-Mf/rzM6LQ1lRBbhPIGCHw46KilyY+e9HmYp4FYAGFMd5o6diHpyFzfqImSi5LKzYQXVc3LQiK4Meg34GKux4iw==", + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/emdb/-/emdb-3.3.9.tgz", + "integrity": "sha512-mV7KLCANU/AH698c4nuCJAgxb12Cn2WU+DPt2ERBcUVXn/PsbYW+EB2bhd0wg6mQG5bZKvGexmOvNEIFKd0GdA==", "license": "MIT", "dependencies": { "chemical-elements": "^2.1.2", "chemical-groups": "^2.2.1", - "isotopic-distribution": "^3.3.3", + "isotopic-distribution": "^3.4.0", "jszip": "^3.10.1", - "mass-fragmentation": "^1.10.5", + "mass-fragmentation": "^1.11.0", "mf-finder": "^3.4.5", "mf-from-google-sheet": "^3.1.5", "mf-generator": "^3.3.5", @@ -6510,7 +6496,7 @@ "mf-utilities": "^3.2.5", "ml-regression-theil-sen": "^3.0.0", "ml-spectra-processing": "^14.6.0", - "ms-spectrum": "^3.6.8", + "ms-spectrum": "^3.6.9", "nucleotide": "^3.1.6", "openchemlib-utils": "^6.4.1", "peaks-similarity": "^3.1.1", @@ -6557,9 +6543,9 @@ } }, "node_modules/es-abstract": { - "version": "1.23.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", - "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "version": "1.23.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.5.tgz", + "integrity": "sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==", "dev": true, "license": "MIT", "dependencies": { @@ -6578,7 +6564,7 @@ "function.prototype.name": "^1.1.6", "get-intrinsic": "^1.2.4", "get-symbol-description": "^1.0.2", - "globalthis": "^1.0.3", + "globalthis": "^1.0.4", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.2", "has-proto": "^1.0.3", @@ -6594,10 +6580,10 @@ "is-string": "^1.0.7", "is-typed-array": "^1.1.13", "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", + "object-inspect": "^1.13.3", "object-keys": "^1.1.1", "object.assign": "^4.1.5", - "regexp.prototype.flags": "^1.5.2", + "regexp.prototype.flags": "^1.5.3", "safe-array-concat": "^1.1.2", "safe-regex-test": "^1.0.3", "string.prototype.trim": "^1.2.9", @@ -6641,9 +6627,9 @@ } }, "node_modules/es-iterator-helpers": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.1.0.tgz", - "integrity": "sha512-/SurEfycdyssORP/E+bj4sEu1CWw4EmLDsHynHwSXQ7utgbrMRWW195pTrCjFgFCddf/UkYm3oqKPRq5i8bJbw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.0.tgz", + "integrity": "sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q==", "dev": true, "license": "MIT", "dependencies": { @@ -6655,6 +6641,7 @@ "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", "globalthis": "^1.0.4", + "gopd": "^1.0.1", "has-property-descriptors": "^1.0.2", "has-proto": "^1.0.3", "has-symbols": "^1.0.3", @@ -6884,9 +6871,9 @@ } }, "node_modules/eslint-config-cheminfo-react/node_modules/globals": { - "version": "15.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.11.0.tgz", - "integrity": "sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==", + "version": "15.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.12.0.tgz", + "integrity": "sha512-1+gLErljJFhbOVyaetcwJiJ4+eLe45S2E7P5UiZ9xGfeq3ATQf5DOv9G7MH3gGbKQLkzmNh2DxfZwLdw+j6oTQ==", "dev": true, "license": "MIT", "engines": { @@ -6912,9 +6899,9 @@ } }, "node_modules/eslint-config-cheminfo/node_modules/globals": { - "version": "15.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.11.0.tgz", - "integrity": "sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==", + "version": "15.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.12.0.tgz", + "integrity": "sha512-1+gLErljJFhbOVyaetcwJiJ4+eLe45S2E7P5UiZ9xGfeq3ATQf5DOv9G7MH3gGbKQLkzmNh2DxfZwLdw+j6oTQ==", "dev": true, "license": "MIT", "engines": { @@ -7019,9 +7006,9 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "50.4.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-50.4.1.tgz", - "integrity": "sha512-OXIq+JJQPCLAKL473/esioFOwbXyRE5MAQ4HbZjcp3e+K3zdxt2uDpGs3FR+WezUXNStzEtTfgx15T+JFrVwBA==", + "version": "50.5.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-50.5.0.tgz", + "integrity": "sha512-xTkshfZrUbiSHXBwZ/9d5ulZ2OcHXxSvm/NPo494H/hadLRJwOq5PMV0EUpMqsb9V+kQo+9BAgi6Z7aJtdBp2A==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -7058,9 +7045,9 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.37.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.1.tgz", - "integrity": "sha512-xwTnwDqzbDRA8uJ7BMxPs/EXRB3i8ZfnOIp8BsxEQkT0nHPp+WWceqGgo6rKb9ctNi8GJLDT4Go5HAWELa/WMg==", + "version": "7.37.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz", + "integrity": "sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==", "dev": true, "license": "MIT", "dependencies": { @@ -7069,7 +7056,7 @@ "array.prototype.flatmap": "^1.3.2", "array.prototype.tosorted": "^1.1.4", "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.19", + "es-iterator-helpers": "^1.1.0", "estraverse": "^5.3.0", "hasown": "^2.0.2", "jsx-ast-utils": "^2.4.1 || ^3.0.0", @@ -7104,9 +7091,9 @@ } }, "node_modules/eslint-plugin-react-refresh": { - "version": "0.4.12", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.12.tgz", - "integrity": "sha512-9neVjoGv20FwYtCP6CB1dzR1vr57ZDNOXst21wd2xJ/cTlM2xLq0GWVlSNTdMn/4BtP6cHYBMCSp1wFBJ9jBsg==", + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.14.tgz", + "integrity": "sha512-aXvzCTK7ZBv1e7fahFuR3Z/fyQQSIQ711yPgYRj+Oj64tyTgO4iQIDmYXDBqvSWQ/FA4OSCsXOStlF+noU0/NA==", "dev": true, "license": "MIT", "peerDependencies": { @@ -7166,9 +7153,9 @@ } }, "node_modules/eslint-plugin-unicorn/node_modules/globals": { - "version": "15.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.11.0.tgz", - "integrity": "sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==", + "version": "15.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.12.0.tgz", + "integrity": "sha512-1+gLErljJFhbOVyaetcwJiJ4+eLe45S2E7P5UiZ9xGfeq3ATQf5DOv9G7MH3gGbKQLkzmNh2DxfZwLdw+j6oTQ==", "dev": true, "license": "MIT", "engines": { @@ -7221,22 +7208,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/eslint/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -7254,26 +7225,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, "node_modules/eslint/node_modules/file-entry-cache": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", @@ -7301,29 +7252,6 @@ "node": ">=16" } }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/espree": { "version": "10.3.0", "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", @@ -7521,11 +7449,11 @@ "license": "MIT" }, "node_modules/fast-uri": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.2.tgz", - "integrity": "sha512-GR6f0hD7XXyNJa25Tb9BuIdN0tdr+0BMi6/CJPH3wJO1JjNG3n/VsSw38AwRdKZABm8lGbPfakLRkYzx2V9row==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", "dev": true, - "license": "MIT" + "license": "BSD-3-Clause" }, "node_modules/fastest-levenshtein": { "version": "1.0.16", @@ -7669,9 +7597,9 @@ } }, "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", "dev": true, "license": "ISC" }, @@ -8063,9 +7991,9 @@ "license": "MIT" }, "node_modules/gyromagnetic-ratio": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gyromagnetic-ratio/-/gyromagnetic-ratio-1.2.0.tgz", - "integrity": "sha512-Pgo5kU9Wd2WZ5KMChPyfFuimkfOq7CUPsmpmm/wcDBPJD2YOcAd7aCbZ0Xt+80h+yjqAhqVnXBxjQhoqIcAXJw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/gyromagnetic-ratio/-/gyromagnetic-ratio-1.2.1.tgz", + "integrity": "sha512-cOkHEsIwHNKe8v/wED9NWa8wvzLx0rpBarUrEpvzdgECMpVQzrLJkaFYsdSxnhaUtWX4uNFxX01PJeFayDCpVA==", "license": "MIT" }, "node_modules/has-bigints": { @@ -8079,12 +8007,13 @@ } }, "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/has-own-prop": { @@ -8886,9 +8815,9 @@ } }, "node_modules/isotopic-distribution": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/isotopic-distribution/-/isotopic-distribution-3.3.3.tgz", - "integrity": "sha512-ize5xogT2PtruMjhT5/n5qj+MAwc6eqIaespZf2dMfHRIojWfAaXqYb+9rKXy86plVt3YGO4xysKmVX10uOUew==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/isotopic-distribution/-/isotopic-distribution-3.4.0.tgz", + "integrity": "sha512-+syg7ZOvYFrLiCKcti8Px+8v+GqiyOlKC8CMA+Qgkf3V1v2yf58gezT5gK0JpC5z/SPEDQFoKFo2myJwC3ni0Q==", "license": "MIT", "dependencies": { "chemical-elements": "^2.1.2", @@ -8922,29 +8851,6 @@ "node": ">=10" } }, - "node_modules/istanbul-lib-report/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/istanbul-lib-source-maps": { "version": "5.0.6", "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz", @@ -9017,15 +8923,15 @@ } }, "node_modules/jcampconverter": { - "version": "9.6.4", - "resolved": "https://registry.npmjs.org/jcampconverter/-/jcampconverter-9.6.4.tgz", - "integrity": "sha512-6T8bPCImT2NQudVCBM5h47YFHMtpIAYFlcf6pCV3uP/AdceGtjGLA1iJVukhA2U2WPtzWax67aRvSfdknJEzFg==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/jcampconverter/-/jcampconverter-10.0.1.tgz", + "integrity": "sha512-1yQ9Q35K2A64Q5NQ7AN/w6KbooviQAQ33Yo6p4vMFAyntR09n/OzR65CubbCogp3bVCm+pdQ3RCkfrcKqTabRQ==", "license": "MIT", "dependencies": { - "cheminfo-types": "^1.7.2", - "dynamic-typing": "^1.0.0", + "cheminfo-types": "^1.8.0", + "dynamic-typing": "^1.0.1", "ensure-string": "^1.2.0", - "gyromagnetic-ratio": "^1.1.1", + "gyromagnetic-ratio": "^1.2.0", "ml-array-median": "^1.1.6" } }, @@ -9360,9 +9266,9 @@ } }, "node_modules/mass-fragmentation": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/mass-fragmentation/-/mass-fragmentation-1.10.5.tgz", - "integrity": "sha512-Y6ubQMTAvoLbFpeeOssue1EpHdnO5Oc/8EnGq9p2UiUU2ExEZRhW9P8OFVJoIcVAIC/Hbx8rot8uUnBRWOipqg==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/mass-fragmentation/-/mass-fragmentation-1.11.0.tgz", + "integrity": "sha512-nb6QK/uK69yOKglKpKTxnmGuRu3P3mfVAG1msIUcOG4rFfUil/aqgY7ewqyGfbAu3vvVFisteVUSR72Yie30qw==", "license": "MIT", "dependencies": { "mf-parser": "^3.2.5", @@ -9381,6 +9287,13 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/mdn-data": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.1.tgz", + "integrity": "sha512-rsfnCbOHjqrhWxwt5/wtSLzpoKTzW7OXdT5lLOIH1OTYhWu9rRJveGq0sKvDZODABH7RX+uoR+DYcpFnq4Tf6Q==", + "dev": true, + "license": "CC0-1.0" + }, "node_modules/median-quickselect": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/median-quickselect/-/median-quickselect-1.0.1.tgz", @@ -9842,9 +9755,9 @@ } }, "node_modules/ml-regression-exponential": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ml-regression-exponential/-/ml-regression-exponential-3.0.1.tgz", - "integrity": "sha512-oCKda88AooF76M5ocdfl2YZbdU/TpiU/KQ9NSV6nr9r/5r9jCZkak4sH0quKUNnwZcgcdZdryGpmUT9yP8qHpQ==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/ml-regression-exponential/-/ml-regression-exponential-3.0.2.tgz", + "integrity": "sha512-drV4ZSGKMMVNETVa7+/z15Uq9C0F69wNsJbhPvVbERgYRSmoGg+e0X7BYK75TzUvFY8IlYZmvVQOZK334slpbQ==", "license": "MIT", "dependencies": { "ml-regression-base": "^4.0.0", @@ -10023,13 +9936,13 @@ "license": "MIT" }, "node_modules/ms-spectrum": { - "version": "3.6.8", - "resolved": "https://registry.npmjs.org/ms-spectrum/-/ms-spectrum-3.6.8.tgz", - "integrity": "sha512-0UdezGLNO0uI5Bm9kDetF+LG/H+vbVY0moz58yh+5D3neW8jzl0IJZ3Q5WPYS9KqOfn3pMXL9meC6y8Oe8t1dg==", + "version": "3.6.9", + "resolved": "https://registry.npmjs.org/ms-spectrum/-/ms-spectrum-3.6.9.tgz", + "integrity": "sha512-tYZqZS5BWBpKIZ+Nu7Q77kle6GNxJrpYVoBdk216poINl9mfA9Sl0qQyj2ozuIJpiXLTRicFV2HdF2jhacUjjA==", "license": "MIT", "dependencies": { "cheminfo-types": "^1.8.0", - "emdb": "^3.3.8", + "emdb": "^3.3.9", "is-any-array": "^2.0.1", "mf-parser": "^3.2.5", "mf-utilities": "^3.2.5", @@ -10108,51 +10021,36 @@ } }, "node_modules/nmr-load-save": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/nmr-load-save/-/nmr-load-save-1.2.0.tgz", - "integrity": "sha512-CjfxjqV9U6DyAm/IlJ5ehaWaD9QJ3xjl2U0UZ2swlddjy/FDDz4Ym7IGDWNKpmqUhXGUck17KRSjAZRmq/ED1A==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/nmr-load-save/-/nmr-load-save-2.0.4.tgz", + "integrity": "sha512-+HnY0Zlg9Texd5ZKjdPPE8mxCd7SstjwLXutMgw/NJQfHBG8swDB9OfITPhM+ibO60U6o9I3VoCoDqIE+gADrw==", "license": "MIT", "dependencies": { "@lukeed/uuid": "^2.0.1", "@types/lodash.merge": "^4.6.9", - "brukerconverter": "^7.0.3", - "cheminfo-types": "^1.8.0", + "brukerconverter": "^7.0.4", + "cheminfo-types": "^1.8.1", "convert-to-jcamp": "^5.4.11", "filelist-utils": "^1.11.2", - "gyromagnetic-ratio": "^1.2.0", + "gyromagnetic-ratio": "^1.2.1", "is-any-array": "^2.0.1", - "jcampconverter": "^9.6.4", + "jcampconverter": "^10.0.1", "jeolconverter": "^1.0.3", "lodash.merge": "^4.6.2", - "ml-spectra-processing": "^14.6.0", + "ml-spectra-processing": "^14.6.2", "nmr-correlation": "^2.3.3", - "nmr-processing": "^13.0.1", + "nmr-processing": "^14.0.2", "nmredata": "^0.9.11", - "openchemlib": "^8.15.0", + "openchemlib": "^8.17.0", "openchemlib-utils": "^6.4.1", "sdf-parser": "^6.0.1", "varian-converter": "^1.0.0" } }, - "node_modules/nmr-load-save/node_modules/d3-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", - "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==", - "license": "BSD-3-Clause" - }, - "node_modules/nmr-load-save/node_modules/d3-interpolate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", - "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", - "license": "BSD-3-Clause", - "dependencies": { - "d3-color": "1 - 2" - } - }, - "node_modules/nmr-load-save/node_modules/nmr-processing": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/nmr-processing/-/nmr-processing-13.0.1.tgz", - "integrity": "sha512-U1r4PjZzAqbrBqgBkn27jF87GoRrxRGT9zlXXVcmbf4dgcmKOCo3FGd+ZXR9VLgZVsL64BGkpM+H1EDjfglBqg==", + "node_modules/nmr-processing": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/nmr-processing/-/nmr-processing-14.0.3.tgz", + "integrity": "sha512-r8GwbV/LRV9DPbLSMpWX7gIQxLr8IxPCas+fYsowkSlz29MQUqBpiJmO44rR0Lb1El4YjM9NaOT/zXZ27U7ZcA==", "license": "MIT", "dependencies": { "@lukeed/uuid": "^2.0.1", @@ -10161,7 +10059,7 @@ "binary-search": "^1.3.6", "d3-color": "^2.0.0", "d3-interpolate": "^2.0.1", - "gyromagnetic-ratio": "^1.2.0", + "gyromagnetic-ratio": "^1.2.1", "is-any-array": "^2.0.1", "linear-sum-assignment": "^1.0.7", "lodash.omit": "^4.5.0", @@ -10178,54 +10076,14 @@ "ml-regression-exponential": "^3.0.1", "ml-regression-polynomial": "^3.0.1", "ml-savitzky-golay-generalized": "^4.2.0", - "ml-signal-processing": "^1.0.4", - "ml-simple-clustering": "^0.1.0", - "ml-sparse-matrix": "^2.1.0", - "ml-spectra-processing": "^14.5.1", - "ml-tree-set": "^0.1.1", - "nmr-correlation": "^2.3.3", - "numeral": "^2.0.6", - "openchemlib-utils": "^6.1.0", - "spectrum-generator": "^8.0.11" - } - }, - "node_modules/nmr-processing": { - "version": "12.12.3", - "resolved": "https://registry.npmjs.org/nmr-processing/-/nmr-processing-12.12.3.tgz", - "integrity": "sha512-WNJFkPYeyRhQHOFPpgcp0ZT7Os7PATGduOYHphmzUjiVePLK1KdukBRajc89FEaeoSN5af18v/BugBiIsvzqEw==", - "license": "MIT", - "dependencies": { - "@lukeed/uuid": "^2.0.1", - "@types/d3-color": "^3.1.3", - "@types/d3-interpolate": "^3.0.4", - "binary-search": "^1.3.6", - "d3-color": "^2.0.0", - "d3-interpolate": "^2.0.1", - "gyromagnetic-ratio": "^1.2.0", - "is-any-array": "^2.0.1", - "linear-sum-assignment": "^1.0.7", - "lodash.omit": "^4.5.0", - "ml-airpls": "^2.0.0", - "ml-direct": "^1.0.0", - "ml-gsd": "^12.1.6", - "ml-hclust": "^3.1.0", - "ml-levenberg-marquardt": "^4.1.3", - "ml-matrix": "^6.11.1", - "ml-matrix-convolution": "^1.0.0", - "ml-matrix-peaks-finder": "^1.0.0", - "ml-peak-shape-generator": "^4.1.2", - "ml-regression-base": "^4.0.0", - "ml-regression-exponential": "^3.0.1", - "ml-regression-polynomial": "^3.0.1", - "ml-savitzky-golay-generalized": "^4.2.0", - "ml-signal-processing": "^1.0.4", + "ml-signal-processing": "^1.1.1", "ml-simple-clustering": "^0.1.0", "ml-sparse-matrix": "^2.1.0", - "ml-spectra-processing": "^14.5.1", + "ml-spectra-processing": "^14.6.0", "ml-tree-set": "^0.1.1", "nmr-correlation": "^2.3.3", "numeral": "^2.0.6", - "openchemlib-utils": "^6.1.0", + "openchemlib-utils": "^6.4.1", "spectrum-generator": "^8.0.11" } }, @@ -10366,9 +10224,9 @@ } }, "node_modules/object-inspect": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", - "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", + "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", "dev": true, "license": "MIT", "engines": { @@ -10730,9 +10588,9 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.1.tgz", - "integrity": "sha512-CgeuL5uom6j/ZVrg7G/+1IXqRY8JXX4Hghfy5YE0EhoYQWvndP1kufu58cmZLNIDKnRhZrXfdS9urVWx98AipQ==", + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", + "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==", "dev": true, "license": "ISC", "engines": { @@ -10788,9 +10646,9 @@ "license": "MIT" }, "node_modules/picocolors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", - "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "license": "ISC" }, "node_modules/picomatch": { @@ -10859,9 +10717,9 @@ } }, "node_modules/postcss": { - "version": "8.4.47", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", - "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", "dev": true, "funding": [ { @@ -10880,7 +10738,7 @@ "license": "MIT", "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.1.0", + "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, "engines": { @@ -11007,6 +10865,16 @@ "integrity": "sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==", "license": "MIT" }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -11530,6 +11398,19 @@ "react-dom": ">=18.0.0" } }, + "node_modules/react-science/node_modules/jcampconverter": { + "version": "9.6.4", + "resolved": "https://registry.npmjs.org/jcampconverter/-/jcampconverter-9.6.4.tgz", + "integrity": "sha512-6T8bPCImT2NQudVCBM5h47YFHMtpIAYFlcf6pCV3uP/AdceGtjGLA1iJVukhA2U2WPtzWax67aRvSfdknJEzFg==", + "license": "MIT", + "dependencies": { + "cheminfo-types": "^1.7.2", + "dynamic-typing": "^1.0.0", + "ensure-string": "^1.2.0", + "gyromagnetic-ratio": "^1.1.1", + "ml-array-median": "^1.1.6" + } + }, "node_modules/react-style-singleton": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", @@ -11925,9 +11806,9 @@ "license": "Unlicense" }, "node_modules/rollup": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz", - "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==", + "version": "4.27.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.27.3.tgz", + "integrity": "sha512-SLsCOnlmGt9VoZ9Ek8yBK8tAdmPHeppkw+Xa7yDlCEhDTvwYei03JlWo1fdc7YTfLZ4tD8riJCUyAgTbszk1fQ==", "dev": true, "license": "MIT", "dependencies": { @@ -11941,22 +11822,24 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.24.0", - "@rollup/rollup-android-arm64": "4.24.0", - "@rollup/rollup-darwin-arm64": "4.24.0", - "@rollup/rollup-darwin-x64": "4.24.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.24.0", - "@rollup/rollup-linux-arm-musleabihf": "4.24.0", - "@rollup/rollup-linux-arm64-gnu": "4.24.0", - "@rollup/rollup-linux-arm64-musl": "4.24.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0", - "@rollup/rollup-linux-riscv64-gnu": "4.24.0", - "@rollup/rollup-linux-s390x-gnu": "4.24.0", - "@rollup/rollup-linux-x64-gnu": "4.24.0", - "@rollup/rollup-linux-x64-musl": "4.24.0", - "@rollup/rollup-win32-arm64-msvc": "4.24.0", - "@rollup/rollup-win32-ia32-msvc": "4.24.0", - "@rollup/rollup-win32-x64-msvc": "4.24.0", + "@rollup/rollup-android-arm-eabi": "4.27.3", + "@rollup/rollup-android-arm64": "4.27.3", + "@rollup/rollup-darwin-arm64": "4.27.3", + "@rollup/rollup-darwin-x64": "4.27.3", + "@rollup/rollup-freebsd-arm64": "4.27.3", + "@rollup/rollup-freebsd-x64": "4.27.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.27.3", + "@rollup/rollup-linux-arm-musleabihf": "4.27.3", + "@rollup/rollup-linux-arm64-gnu": "4.27.3", + "@rollup/rollup-linux-arm64-musl": "4.27.3", + "@rollup/rollup-linux-powerpc64le-gnu": "4.27.3", + "@rollup/rollup-linux-riscv64-gnu": "4.27.3", + "@rollup/rollup-linux-s390x-gnu": "4.27.3", + "@rollup/rollup-linux-x64-gnu": "4.27.3", + "@rollup/rollup-linux-x64-musl": "4.27.3", + "@rollup/rollup-win32-arm64-msvc": "4.27.3", + "@rollup/rollup-win32-ia32-msvc": "4.27.3", + "@rollup/rollup-win32-x64-msvc": "4.27.3", "fsevents": "~2.3.2" } }, @@ -12178,22 +12061,6 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/serve/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/serve/node_modules/chalk": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.1.tgz", @@ -12240,36 +12107,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/serve/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/serve/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/serve/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/serve/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -12277,19 +12114,6 @@ "dev": true, "license": "MIT" }, - "node_modules/serve/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", @@ -12427,42 +12251,6 @@ "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/slice-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, "node_modules/smart-array-filter": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/smart-array-filter/-/smart-array-filter-4.0.2.tgz", @@ -13003,20 +12791,6 @@ } } }, - "node_modules/stylelint/node_modules/css-tree": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.0.0.tgz", - "integrity": "sha512-o88DVQ6GzsABn1+6+zo2ct801dBO5OASVyxbbvA2W20ue2puSh/VOuqUj90eUeMSX/xqGqBmOKiRQN7tJOuBXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "mdn-data": "2.10.0", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" - } - }, "node_modules/stylelint/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -13044,13 +12818,6 @@ "node": ">= 4" } }, - "node_modules/stylelint/node_modules/mdn-data": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.10.0.tgz", - "integrity": "sha512-qq7C3EtK3yJXMwz1zAab65pjl+UhohqMOctTgcqjLOWABqmwj+me02LSsCuEUxnst9X1lCBpoE0WArGKgdGDzw==", - "dev": true, - "license": "CC0-1.0" - }, "node_modules/stylelint/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -13092,15 +12859,16 @@ "license": "MIT" }, "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/supports-hyperlinks": { @@ -13120,29 +12888,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/supports-hyperlinks/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", @@ -13484,9 +13229,9 @@ "license": "MIT" }, "node_modules/ts-api-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", - "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.0.tgz", + "integrity": "sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==", "dev": true, "license": "MIT", "engines": { @@ -13643,15 +13388,15 @@ } }, "node_modules/typescript-eslint": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.9.0.tgz", - "integrity": "sha512-AuD/FXGYRQyqyOBCpNLldMlsCGvmDNxptQ3Dp58/NXeB+FqyvTfXmMyba3PYa0Vi9ybnj7G8S/yd/4Cw8y47eA==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.15.0.tgz", + "integrity": "sha512-wY4FRGl0ZI+ZU4Jo/yjdBu0lVTSML58pu6PgGtJmCufvzfV565pUF6iACQt092uFOd49iLOTX/sEVmHtbSrS+w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.9.0", - "@typescript-eslint/parser": "8.9.0", - "@typescript-eslint/utils": "8.9.0" + "@typescript-eslint/eslint-plugin": "8.15.0", + "@typescript-eslint/parser": "8.15.0", + "@typescript-eslint/utils": "8.15.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -13660,6 +13405,9 @@ "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + }, "peerDependenciesMeta": { "typescript": { "optional": true @@ -13765,16 +13513,6 @@ "punycode": "^2.1.0" } }, - "node_modules/uri-js/node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/use-callback-ref": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.2.tgz", @@ -14281,42 +14019,6 @@ "node": ">=8" } }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", diff --git a/package.json b/package.json index aff8d11203..06a8fcbcc3 100644 --- a/package.json +++ b/package.json @@ -88,8 +88,8 @@ "ml-tree-similarity": "^2.2.0", "multiplet-analysis": "^2.1.2", "nmr-correlation": "^2.3.3", - "nmr-load-save": "^1.2.0", - "nmr-processing": "^12.12.3", + "nmr-load-save": "^2.0.4", + "nmr-processing": "^14.0.3", "nmredata": "^0.9.11", "numeral": "^2.0.6", "openchemlib": "^8.17.0", diff --git a/src/component/1d/ApodizationLine.tsx b/src/component/1d/ApodizationLine.tsx index 2cc9f306c8..32468bbdef 100644 --- a/src/component/1d/ApodizationLine.tsx +++ b/src/component/1d/ApodizationLine.tsx @@ -1,7 +1,11 @@ +import merge from 'lodash/merge.js'; import type { Spectrum1D } from 'nmr-load-save'; -import { apodization, Filters } from 'nmr-processing'; +import { + Filters1D, + createApodizationWindowData, + default1DApodization, +} from 'nmr-processing'; -import { defaultApodizationOptions } from '../../data/constants/DefaultApodizationOptions.js'; import { useChartData } from '../context/ChartContext.js'; import { useScaleChecked } from '../context/ScaleContext.js'; import { useActiveSpectrum } from '../hooks/useActiveSpectrum.js'; @@ -26,11 +30,11 @@ function useWindowYScale() { }); } -function ApodizationLine() { +export function ApodizationLine() { const { toolOptions: { selectedTool, - data: { apodizationOptions }, + data: { apodizationOptions: externalApodizationOptions }, }, } = useChartData(); const activeSpectrum = useActiveSpectrum(); @@ -39,44 +43,25 @@ function ApodizationLine() { const xyReduce = useXYReduce(XYReducerDomainAxis.XAxis); const scaleY = useWindowYScale(); - if (!activeSpectrum?.id || selectedTool !== Filters.apodization.id) { + if (!activeSpectrum?.id || selectedTool !== Filters1D.apodization.name) { return null; } const paths = () => { const pathBuilder = new PathBuilder(); - const { re, im = [], x } = spectrum.data; - - const { lineBroadening, gaussBroadening, lineBroadeningCenter } = - apodizationOptions || defaultApodizationOptions; + const { re, x } = spectrum.data; + const apodizationOptions = merge( + default1DApodization, + externalApodizationOptions, + ); const length = re.length; const dw = (x[length - 1] - x[0]) / (length - 1); - const { windowData: y } = apodization( - { re, im }, - { - apply: false, - compose: { - length, - shapes: [ - { - start: 0, - shape: { - kind: 'lorentzToGauss', - options: { - length, - dw, - exponentialHz: - gaussBroadening > 0 ? lineBroadening : -lineBroadening, - gaussianHz: gaussBroadening, - center: lineBroadeningCenter, - }, - }, - }, - ], - }, - }, - ); + + const y = createApodizationWindowData({ + windowOptions: { dw, length }, + shapes: apodizationOptions, + }); if (x && y) { const pathPoints = xyReduce({ x, y }); @@ -102,5 +87,3 @@ function ApodizationLine() { /> ); } - -export default ApodizationLine; diff --git a/src/component/1d/Chart1D.tsx b/src/component/1d/Chart1D.tsx index a46479327b..81e779b6a5 100644 --- a/src/component/1d/Chart1D.tsx +++ b/src/component/1d/Chart1D.tsx @@ -1,7 +1,7 @@ import SpectrumInfoBlock from '../1d-2d/components/SpectrumInfoBlock.js'; import { usePreferences } from '../context/PreferencesContext.js'; -import ApodizationLine from './ApodizationLine.js'; +import { ApodizationLine } from './ApodizationLine.js'; import ExclusionZonesAnnotations from './ExclusionZonesAnnotations.js'; import LinesSeries from './LinesSeries.js'; import SimilarityTree from './SimilarityTree.js'; diff --git a/src/component/1d/ExclusionZoneAnnotation.tsx b/src/component/1d/ExclusionZoneAnnotation.tsx index fccbb1f334..d630e601c8 100644 --- a/src/component/1d/ExclusionZoneAnnotation.tsx +++ b/src/component/1d/ExclusionZoneAnnotation.tsx @@ -1,6 +1,6 @@ /** @jsxImportSource @emotion/react */ import { css } from '@emotion/react'; -import { Filters } from 'nmr-processing'; +import { Filters1D } from 'nmr-processing'; import { memo } from 'react'; import type { ExclusionZone } from '../../data/types/data1d/ExclusionZone.js'; @@ -31,7 +31,7 @@ function ExclusionZoneAnnotation({ }: ExclusionZoneProps) { const { scaleX, scaleY } = useScaleChecked(); const type = - filterId === Filters.signalProcessing.id + filterId === Filters1D.signalProcessing.name ? HighlightEventSource.MATRIX_GENERATION_EXCLUSION_ZONE : HighlightEventSource.EXCLUSION_ZONE; const highlight = useHighlight([], { @@ -50,7 +50,7 @@ function ExclusionZoneAnnotation({ width={`${scaleX()(zone.from) - scaleX()(zone.to)}`} height="10px" style={{ - fill: filterId === Filters.signalProcessing.id ? 'gray' : color, + fill: filterId === Filters1D.signalProcessing.name ? 'gray' : color, opacity, }} {...highlight.onHover} diff --git a/src/component/1d/ExclusionZonesAnnotations.tsx b/src/component/1d/ExclusionZonesAnnotations.tsx index 43e0ae4452..a8e1d4743f 100644 --- a/src/component/1d/ExclusionZonesAnnotations.tsx +++ b/src/component/1d/ExclusionZonesAnnotations.tsx @@ -1,5 +1,5 @@ import type { Spectrum1D } from 'nmr-load-save'; -import { Filters } from 'nmr-processing'; +import { Filters1D } from 'nmr-processing'; import { memo } from 'react'; import type { ExclusionZone } from '../../data/types/data1d/ExclusionZone.js'; @@ -76,11 +76,14 @@ function getExclusionZones( ): Array<{ id: string; zones: ExclusionZone[] }> { const zones: Array<{ id: string; zones: ExclusionZone[] }> = []; for (const filter of data.filters) { - if (filter.name === Filters.exclusionZones.id && filter.flag) { - zones.push({ id: Filters.exclusionZones.id, zones: filter.value }); - } else if (filter.name === Filters.signalProcessing.id && filter.flag) { + if (filter.name === Filters1D.exclusionZones.name && filter.enabled) { + zones.push({ id: Filters1D.exclusionZones.name, zones: filter.value }); + } else if ( + filter.name === Filters1D.signalProcessing.name && + filter.enabled + ) { zones.push({ - id: Filters.signalProcessing.id, + id: Filters1D.signalProcessing.name, zones: filter.value.exclusionsZones, }); } diff --git a/src/component/1d/matrix/useMatrix.ts b/src/component/1d/matrix/useMatrix.ts index a6e5bb6cf2..831f599581 100644 --- a/src/component/1d/matrix/useMatrix.ts +++ b/src/component/1d/matrix/useMatrix.ts @@ -1,14 +1,11 @@ import type { NumberArray } from 'cheminfo-types'; import type { Spectrum } from 'nmr-load-save'; -import { Filters } from 'nmr-processing'; import { useMemo } from 'react'; import { isSpectrum1D } from '../../../data/data1d/Spectrum1D/index.js'; import { useChartData } from '../../context/ChartContext.js'; import useSpectraByActiveNucleus from '../../hooks/useSpectraPerNucleus.js'; -const { signalProcessing } = Filters; - /** * This method will slice the array from the fromIndex to the toIndex and add the first and last element of the original array * if needed @@ -53,9 +50,9 @@ export function useMatrix() { for (let i = 0; i < spectra.length; i++) { const spectrum = spectra[i]; const filter = spectrum.filters.find( - (filter) => filter.name === signalProcessing.id, + (filter) => filter.name === 'signalProcessing', ); - if (isSpectrum1D(spectrum) && filter?.flag) { + if (isSpectrum1D(spectrum) && filter?.enabled) { matrixY[i] = spectrum.data.re; } } diff --git a/src/component/1d/multiAnalysis/MultiAnalysisRanges.tsx b/src/component/1d/multiAnalysis/MultiAnalysisRanges.tsx index 387ae11b75..0173a87c0c 100644 --- a/src/component/1d/multiAnalysis/MultiAnalysisRanges.tsx +++ b/src/component/1d/multiAnalysis/MultiAnalysisRanges.tsx @@ -1,5 +1,5 @@ import type { SpectraAnalysisColumns } from 'nmr-load-save'; -import { AnalysisColumnsTypes } from 'nmr-load-save'; +import { ANALYSIS_COLUMN_TYPES } from 'nmr-load-save'; import { memo } from 'react'; import { useChartData } from '../../context/ChartContext.js'; @@ -19,7 +19,7 @@ function MultiAnalysisRangesInner({ activeTab, }: MultiAnalysisRangesInnerProps) { const ranges = Object.keys(columns).filter( - (key) => columns[key].type !== AnalysisColumnsTypes.FORMULA, + (key) => columns[key].type !== ANALYSIS_COLUMN_TYPES.FORMULA, ); if (!ranges || ranges.length === 0) { diff --git a/src/component/2d/1d-tracer/phase-correction-traces/SpectrumPhaseTrace.tsx b/src/component/2d/1d-tracer/phase-correction-traces/SpectrumPhaseTrace.tsx index c4cfb94359..eb8ea8703a 100644 --- a/src/component/2d/1d-tracer/phase-correction-traces/SpectrumPhaseTrace.tsx +++ b/src/component/2d/1d-tracer/phase-correction-traces/SpectrumPhaseTrace.tsx @@ -1,5 +1,5 @@ import type { Spectrum1D, Spectrum2D } from 'nmr-load-save'; -import { Filters } from 'nmr-processing'; +import { Filters1D } from 'nmr-processing'; import type { ReactNode } from 'react'; import { getSlice } from '../../../../data/data2d/Spectrum2D/index.js'; @@ -143,7 +143,7 @@ function InnerSpectrumPhaseTrace(props: InnerSpectrumPhaseTraceProps) { info: { isComplex: true, isFid: false }, }; - Filters.phaseCorrection.apply(spectrum as unknown as Spectrum1D, { + Filters1D.phaseCorrection.apply(spectrum as Spectrum1D, { ph0, ph1, }); diff --git a/src/component/2d/utilities/DimensionLayout.ts b/src/component/2d/utilities/DimensionLayout.ts index 588f1da4df..4deda6e427 100644 --- a/src/component/2d/utilities/DimensionLayout.ts +++ b/src/component/2d/utilities/DimensionLayout.ts @@ -51,9 +51,7 @@ interface StartEndProps { endY?: number; } -type DimensionType = { - [key in Layout]: Required; -}; +type DimensionType = Record>; function getLayoutID( dimension: DimensionType, diff --git a/src/component/elements/Sections.tsx b/src/component/elements/Sections.tsx index bc1c7a3169..f28673aef2 100644 --- a/src/component/elements/Sections.tsx +++ b/src/component/elements/Sections.tsx @@ -13,11 +13,13 @@ import { createContext, useContext, useMemo } from 'react'; interface SelectionsContextState { overflow: boolean; renderActiveSectionContentOnly: boolean; + matchContentHeight: boolean; } const selectionState: SelectionsContextState = { overflow: false, renderActiveSectionContentOnly: false, + matchContentHeight: false, }; const SectionsContext = createContext(selectionState); @@ -36,10 +38,13 @@ interface ActiveProps { overflow?: boolean; } -const Container = styled.div<{ overflow: boolean }>( - ({ overflow }) => ` +const Container = styled.div<{ + overflow: boolean; + matchContentHeight: boolean; +}>( + ({ overflow, matchContentHeight }) => ` width: 100%; - height: 100%; + height: ${matchContentHeight ? 'auto' : '100%'}; display: flex; flex-direction: column; overflow: ${overflow ? 'auto' : 'hidden'}; @@ -139,6 +144,7 @@ interface BaseSectionProps { rightElement?: ReactNode | ((isOpen) => ReactNode); leftElement?: ReactNode | ((isOpen) => ReactNode); headerStyle?: CSSProperties; + arrowProps?: { style?: CSSProperties; hide?: boolean }; } interface SectionItemProps extends BaseSectionProps { @@ -147,13 +153,13 @@ interface SectionItemProps extends BaseSectionProps { children?: ReactNode | ((options: { isOpen?: boolean }) => ReactNode); isOpen: boolean; sticky?: boolean; - matchContentHeight?: boolean; } interface SectionProps { children?: ReactNode; overflow?: boolean; renderActiveSectionContentOnly?: boolean; + matchContentHeight?: boolean; } export function Sections(props: SectionProps) { @@ -161,14 +167,17 @@ export function Sections(props: SectionProps) { children, overflow = false, renderActiveSectionContentOnly = false, + matchContentHeight = false, } = props; const state = useMemo(() => { - return { overflow, renderActiveSectionContentOnly }; - }, [overflow, renderActiveSectionContentOnly]); + return { overflow, renderActiveSectionContentOnly, matchContentHeight }; + }, [overflow, renderActiveSectionContentOnly, matchContentHeight]); return ( - {children} + + {children} + ); } @@ -196,10 +205,10 @@ function SectionItem(props: SectionItemProps) { headerStyle, isOpen, sticky = false, - matchContentHeight = false, + arrowProps = { hide: false, style: {} }, } = props; - const { overflow } = useSections(); + const { overflow, matchContentHeight } = useSections(); return ( {children} @@ -260,6 +270,7 @@ function MainSectionHeader(props: MainSectionHeaderProps) { leftElement, headerStyle = {}, sticky, + arrowProps, } = props; return (
- + {!arrowProps?.hide && ( + + )}
); diff --git a/src/component/header/SimpleApodizationOptionsPanel.tsx b/src/component/header/SimpleApodizationOptionsPanel.tsx index 7a94bc22f7..7d7d4bc4bc 100644 --- a/src/component/header/SimpleApodizationOptionsPanel.tsx +++ b/src/component/header/SimpleApodizationOptionsPanel.tsx @@ -1,8 +1,8 @@ import { Checkbox } from '@blueprintjs/core'; -import type { Filter } from 'nmr-processing'; -import { Filters } from 'nmr-processing'; import { memo } from 'react'; +import type { ExtractFilterEntry } from '../../data/types/common/ExtractFilterEntry.js'; +import { useToaster } from '../context/ToasterContext.js'; import ActionButtons from '../elements/ActionButtons.js'; import Label from '../elements/Label.js'; import { NumberInput2Controller } from '../elements/NumberInput2Controller.js'; @@ -13,37 +13,53 @@ import { headerLabelStyle } from './Header.js'; import { HeaderWrapper } from './HeaderWrapper.js'; interface ApodizationOptionsInnerPanelProps { - filter: Filter | null; + filter: ExtractFilterEntry<'apodization'> | null; } function ApodizationOptionsInnerPanel( props: ApodizationOptionsInnerPanelProps, ) { + const toaster = useToaster(); + const { formMethods, submitHandler, handleApplyFilter, handleCancelFilter } = + useSharedApodization(props.filter, { applyFilterOnload: true }); + const { register, handleSubmit, control, formState: { isValid }, - submitHandler, - handleApplyFilter, - handleCancelFilter, - } = useSharedApodization(props.filter, { applyFilterOnload: true }); + watch, + } = formMethods; + + const isExponentialActive = watch('options.exponential.apply') || false; const { onChange: onLivePreviewFieldChange, ...livePreviewFieldOptions } = register('livePreview'); + function handleClick() { + if (!isExponentialActive) { + toaster.show({ + intent: 'danger', + message: + 'Activate "Exponential" filter from the Processing panel first', + }); + } + } + return ( @@ -70,6 +86,6 @@ function ApodizationOptionsInnerPanel( const MemoizedApodizationPanel = memo(ApodizationOptionsInnerPanel); export function SimpleApodizationOptionsPanel() { - const filter = useFilter(Filters.apodization.id); + const filter = useFilter('apodization'); return ; } diff --git a/src/component/header/SimpleBaseLineCorrectionOptionsPanel.tsx b/src/component/header/SimpleBaseLineCorrectionOptionsPanel.tsx index fdd74034b3..03d0657c97 100644 --- a/src/component/header/SimpleBaseLineCorrectionOptionsPanel.tsx +++ b/src/component/header/SimpleBaseLineCorrectionOptionsPanel.tsx @@ -1,10 +1,9 @@ import { Checkbox } from '@blueprintjs/core'; import { Select } from '@blueprintjs/select'; -import type { Filter } from 'nmr-processing'; -import { Filters } from 'nmr-processing'; import { memo } from 'react'; import { Button } from 'react-science/ui'; +import type { ExtractFilterEntry } from '../../data/types/common/ExtractFilterEntry.js'; import ActionButtons from '../elements/ActionButtons.js'; import Label from '../elements/Label.js'; import { NumberInput2Controller } from '../elements/NumberInput2Controller.js'; @@ -19,11 +18,12 @@ import { headerLabelStyle } from './Header.js'; import { HeaderWrapper } from './HeaderWrapper.js'; interface BaseLineCorrectionInnerPanelProps { - filter: Filter | null; + filter: ExtractFilterEntry<'baselineCorrection'> | null; } function BaseLineCorrectionInnerPanel( props: BaseLineCorrectionInnerPanelProps, ) { + const { filter } = props; const { register, reset, @@ -35,7 +35,7 @@ function BaseLineCorrectionInnerPanel( control, algorithm, defaultAlgorithmSelectProps, - } = useBaselineCorrection(props.filter); + } = useBaselineCorrection(filter); const { onChange: onLivePreviewChange, ...otherLivePreviewRegisterOptions } = register(`livePreview`); @@ -48,10 +48,7 @@ function BaseLineCorrectionInnerPanel( itemsEqual="value" onItemSelect={(item) => { onAlgorithmChange(item); - const { values } = getBaselineData( - item.value, - props?.filter?.value || {}, - ); + const { values } = getBaselineData(item.value, filter?.value); reset(values); setTimeout(() => { submitHandler(); @@ -138,6 +135,7 @@ function BaseLineCorrectionInnerPanel( const MemoizedBaseLineCorrectionPanel = memo(BaseLineCorrectionInnerPanel); export function SimpleBaseLineCorrectionOptionsPanel() { - const filter = useFilter(Filters.baselineCorrection.id); + const filter = useFilter('baselineCorrection'); + return ; } diff --git a/src/component/header/SimplePhaseCorrectionOptionsPanel.tsx b/src/component/header/SimplePhaseCorrectionOptionsPanel.tsx index c1619b4db1..0b30e55c59 100644 --- a/src/component/header/SimplePhaseCorrectionOptionsPanel.tsx +++ b/src/component/header/SimplePhaseCorrectionOptionsPanel.tsx @@ -1,5 +1,4 @@ import { Select } from '@blueprintjs/select'; -import { Filters } from 'nmr-processing'; import { Button } from 'react-science/ui'; import ActionButtons from '../elements/ActionButtons.js'; @@ -14,7 +13,7 @@ import { import { HeaderWrapper } from './HeaderWrapper.js'; export function SimplePhaseCorrectionOptionsPanel() { - const filter = useFilter(Filters.phaseCorrection.id); + const filter = useFilter('phaseCorrection'); const { handleApplyFilter, diff --git a/src/component/header/SimplePhaseCorrectionTwoDimensionsPanel.tsx b/src/component/header/SimplePhaseCorrectionTwoDimensionsPanel.tsx index 5463c6dde3..0a87721338 100644 --- a/src/component/header/SimplePhaseCorrectionTwoDimensionsPanel.tsx +++ b/src/component/header/SimplePhaseCorrectionTwoDimensionsPanel.tsx @@ -1,6 +1,5 @@ /** @jsxImportSource @emotion/react */ import { Select } from '@blueprintjs/select'; -import { Filters } from 'nmr-processing'; import { FaRulerHorizontal, FaRulerVertical } from 'react-icons/fa'; import { MdLooksTwo } from 'react-icons/md'; import { Button, Toolbar } from 'react-science/ui'; @@ -19,7 +18,7 @@ import { headerLabelStyle } from './Header.js'; import { HeaderWrapper } from './HeaderWrapper.js'; export function SimplePhaseCorrectionTwoDimensionsPanel() { - const filter = useFilter(Filters.phaseCorrectionTwoDimensions.id); + const filter = useFilter('phaseCorrectionTwoDimensions'); const { ph0Ref, ph1Ref, diff --git a/src/component/header/SimpleZeroFillingOptionsPanel.tsx b/src/component/header/SimpleZeroFillingOptionsPanel.tsx index 704cb2cdf9..33542abac5 100644 --- a/src/component/header/SimpleZeroFillingOptionsPanel.tsx +++ b/src/component/header/SimpleZeroFillingOptionsPanel.tsx @@ -1,5 +1,4 @@ import { Checkbox } from '@blueprintjs/core'; -import { Filters } from 'nmr-processing'; import ActionButtons from '../elements/ActionButtons.js'; import Label from '../elements/Label.js'; @@ -14,7 +13,7 @@ import { headerLabelStyle } from './Header.js'; import { HeaderWrapper } from './HeaderWrapper.js'; export function SimpleZeroFillingOptionsPanel() { - const filter = useFilter(Filters.zeroFilling.id); + const filter = useFilter('zeroFilling'); const { control, submitHandler, register, handleCancelFilter } = useZeroFilling(filter, { applyFilterOnload: true }); diff --git a/src/component/hooks/useFilter.ts b/src/component/hooks/useFilter.ts index de9839f5fa..234cf1ffcb 100644 --- a/src/component/hooks/useFilter.ts +++ b/src/component/hooks/useFilter.ts @@ -1,16 +1,31 @@ -import type { Spectrum1D } from 'nmr-load-save'; -import type { Filter } from 'nmr-processing'; +import type { Spectrum1D, Spectrum2D } from 'nmr-load-save'; +import type { Filter1DEntry, Filter2DEntry } from 'nmr-processing'; import { useMemo } from 'react'; +import type { FilterEntry } from '../../data/types/common/FilterEntry.js'; + import useSpectrum from './useSpectrum.js'; +import type { ExtractFilterEntry } from '../../data/types/common/ExtractFilterEntry.js'; const emptyData = { filters: {} }; +type FilterReturnType = T extends Filter1DEntry['name'] + ? ExtractFilterEntry + : T extends Filter2DEntry['name'] + ? ExtractFilterEntry + : null; + +export function useFilter( + filterID: T, +): FilterReturnType | null { + const { filters } = useSpectrum(emptyData) as Spectrum1D | Spectrum2D; + + return useMemo(() => { + const filter = filters.find((filter) => filter.name === filterID); -export function useFilter(filterID: string): Filter | null { - const { filters } = useSpectrum(emptyData) as Spectrum1D; + if (filter) { + return filter as FilterReturnType; + } - return useMemo( - () => filters.find((filter) => filter.name === filterID) || null, - [filterID, filters], - ); + return null; + }, [filterID, filters]); } diff --git a/src/component/hooks/usePanelPreferences.ts b/src/component/hooks/usePanelPreferences.ts index 4b9f8ca923..b3e0dbceeb 100644 --- a/src/component/hooks/usePanelPreferences.ts +++ b/src/component/hooks/usePanelPreferences.ts @@ -165,7 +165,6 @@ export function usePanelPreferencesByNuclei( nuclei: string[], ): UsePanelPreferencesByNucleiResult { const { current } = usePreferences(); - return useMemo(() => { // eslint-disable-next-line @typescript-eslint/no-unused-vars const { nuclei: omitNuclei = null, ...restPreferences } = diff --git a/src/component/modal/EditPeakShapeModal.tsx b/src/component/modal/EditPeakShapeModal.tsx index b0a53d78ed..9e54472d9d 100644 --- a/src/component/modal/EditPeakShapeModal.tsx +++ b/src/component/modal/EditPeakShapeModal.tsx @@ -25,7 +25,9 @@ function getKindDefaultValues(kind: Kind) { return { kind, fwhm: 500, - ...(kind === 'pseudoVoigt' && { mu: 0.5 }), + ...(kind === 'pseudoVoigt' + ? { mu: 0.5 } + : kind === 'generalizedLorentzian' && { gamma: 0.5 }), }; } function getValues(peak: Peak1D, kind: Kind): Shape { @@ -61,6 +63,10 @@ const KINDS: Array<{ label: string; value: Kind }> = [ value: 'pseudoVoigt', label: 'PseudoVoigt', }, + { + value: 'generalizedLorentzian', + label: 'Generalized Lorentzian', + }, ]; const labelStyle: LabelStyle = { @@ -148,6 +154,16 @@ function InnerEditPeakShapeModal(props: Required) { )} + {kind === 'generalizedLorentzian' && ( + + )} diff --git a/src/component/modal/setting/settings-tabs/DatabasesTabContent.tsx b/src/component/modal/setting/settings-tabs/DatabasesTabContent.tsx index 951387f723..82bb1ab648 100644 --- a/src/component/modal/setting/settings-tabs/DatabasesTabContent.tsx +++ b/src/component/modal/setting/settings-tabs/DatabasesTabContent.tsx @@ -4,7 +4,7 @@ import { css } from '@emotion/react'; import { v4 } from '@lukeed/uuid'; import type { CustomWorkspaces, Database } from 'nmr-load-save'; import { useCallback, useMemo } from 'react'; -import { Controller, useFormContext, useWatch } from 'react-hook-form'; +import { Controller, useFormContext } from 'react-hook-form'; import { FaLink, FaPlus, FaRegTrashAlt } from 'react-icons/fa'; import { Button } from 'react-science/ui'; @@ -34,12 +34,10 @@ function DatabasesTabContent({ currentWorkspace, originalWorkspaces, }: DatabasesTabContentProps) { - const { setValue, register, control } = useFormContext(); + const { setValue, register, control, watch } = + useFormContext(); - const databases: Database[] = - useWatch({ - name: 'databases.data', - }) || []; + const databases: Database[] = watch('databases.data') || []; const addHandler = useCallback( (data: readonly any[], index = 0) => { diff --git a/src/component/modal/setting/settings-tabs/ExportTabContent.tsx b/src/component/modal/setting/settings-tabs/ExportTabContent.tsx index 074b837e95..de61105584 100644 --- a/src/component/modal/setting/settings-tabs/ExportTabContent.tsx +++ b/src/component/modal/setting/settings-tabs/ExportTabContent.tsx @@ -11,10 +11,9 @@ import type { AdvanceExportSettings, BasicExportSettings, ExportPreferences, - ExportSettings, } from 'nmr-load-save'; import { useState } from 'react'; -import { Controller, useFormContext, useWatch } from 'react-hook-form'; +import { Controller, useFormContext } from 'react-hook-form'; import { CheckController } from '../../../elements/CheckController.js'; import Label from '../../../elements/Label.js'; @@ -79,12 +78,10 @@ export function ExportOptions(props: ExportOptionsProps) { control, formState: { isValid, errors }, getValues, + watch, } = useFormContext(); const defaultValue = getValues(path); - const currentOptions = useWatch({ - name: path, - defaultValue, - }); + const currentOptions = watch(path) || defaultValue; const { dpi = 0, @@ -102,7 +99,7 @@ export function ExportOptions(props: ExportOptionsProps) { enableAspectRatio, changeSize, changeUnit, - } = useExportConfigurer(currentOptions as ExportSettings); + } = useExportConfigurer(currentOptions); let sizesList: SizeItem[] = []; diff --git a/src/component/modal/setting/settings-tabs/ExternalAPIsTabContent.tsx b/src/component/modal/setting/settings-tabs/ExternalAPIsTabContent.tsx index 3a03ecce97..536a105187 100644 --- a/src/component/modal/setting/settings-tabs/ExternalAPIsTabContent.tsx +++ b/src/component/modal/setting/settings-tabs/ExternalAPIsTabContent.tsx @@ -2,7 +2,7 @@ import { Classes } from '@blueprintjs/core'; import type { ExternalAPI } from 'nmr-load-save'; import { EXTERNAL_API_KEYS } from 'nmr-load-save'; import { useCallback, useMemo } from 'react'; -import { useFormContext, useWatch } from 'react-hook-form'; +import { useFormContext } from 'react-hook-form'; import { FaPlus, FaRegTrashAlt } from 'react-icons/fa'; import { Button } from 'react-science/ui'; @@ -22,12 +22,9 @@ function getKeyPath( } export function ExternalAPIsTabContent() { - const { control, setValue } = useFormContext(); + const { control, setValue, watch } = useFormContext(); - const fields: ExternalAPI[] = - useWatch({ - name: 'externalAPIs', - }) || []; + const fields: ExternalAPI[] = watch('externalAPIs') || []; const addHandler = useCallback( (data: readonly any[], index: number) => { diff --git a/src/component/modal/setting/settings-tabs/InfoBlockTabContent.tsx b/src/component/modal/setting/settings-tabs/InfoBlockTabContent.tsx index 1fa45c0ea9..0679c7ce4d 100644 --- a/src/component/modal/setting/settings-tabs/InfoBlockTabContent.tsx +++ b/src/component/modal/setting/settings-tabs/InfoBlockTabContent.tsx @@ -1,7 +1,7 @@ import { Checkbox, Classes } from '@blueprintjs/core'; import type { InfoBlockField } from 'nmr-load-save'; import { useCallback, useMemo } from 'react'; -import { useFormContext, useWatch } from 'react-hook-form'; +import { useFormContext } from 'react-hook-form'; import { FaPlus, FaRegTrashAlt } from 'react-icons/fa'; import { Button } from 'react-science/ui'; @@ -24,16 +24,14 @@ function getKeyPath( } function InfoBlockTabContent() { - const { control, setValue, register } = useFormContext(); + const { control, setValue, register, watch } = + useFormContext(); const { data } = useChartData(); const { datalist, paths } = useMemo( () => getSpectraObjectPaths(data), [data], ); - const fields: InfoBlockField[] = - useWatch({ - name: 'infoBlock.fields', - }) || []; + const fields: InfoBlockField[] = watch('infoBlock.fields') || []; const addHandler = useCallback( (data: readonly any[], index: number) => { diff --git a/src/component/modal/setting/settings-tabs/NucleiTabContent.tsx b/src/component/modal/setting/settings-tabs/NucleiTabContent.tsx index 8ecfd92165..18476583d3 100644 --- a/src/component/modal/setting/settings-tabs/NucleiTabContent.tsx +++ b/src/component/modal/setting/settings-tabs/NucleiTabContent.tsx @@ -1,7 +1,7 @@ import { Classes } from '@blueprintjs/core'; import type { NucleiPreferences } from 'nmr-load-save'; import { useCallback, useMemo } from 'react'; -import { useFormContext, useWatch } from 'react-hook-form'; +import { useFormContext } from 'react-hook-form'; import { FaPlus, FaRegTrashAlt } from 'react-icons/fa'; import { Button } from 'react-science/ui'; @@ -21,12 +21,9 @@ function getKeyPath( } function NucleiTabContent() { - const { control, setValue } = useFormContext(); + const { control, setValue, watch } = useFormContext(); - const fields: NucleiPreferences[] = - useWatch({ - name: 'nuclei', - }) || []; + const fields: NucleiPreferences[] = watch('nuclei') || []; const addHandler = useCallback( (data: readonly any[], index: number) => { diff --git a/src/component/modal/setting/settings-tabs/OnLoadProcessingTabContent.tsx b/src/component/modal/setting/settings-tabs/OnLoadProcessingTabContent.tsx index f23ddd71fa..87f06c0e4e 100644 --- a/src/component/modal/setting/settings-tabs/OnLoadProcessingTabContent.tsx +++ b/src/component/modal/setting/settings-tabs/OnLoadProcessingTabContent.tsx @@ -1,22 +1,22 @@ import { Checkbox, Tab, Tabs } from '@blueprintjs/core'; -import type { WorkspacePreferences } from 'nmr-load-save'; -import type { BaseFilter } from 'nmr-processing'; -import { useFormContext, useWatch } from 'react-hook-form'; +import type { + AutoProcessingFilterEntry, + WorkspacePreferences, +} from 'nmr-load-save'; +import { useFormContext } from 'react-hook-form'; import IsotopesViewer from '../../../elements/IsotopesViewer.js'; import Label from '../../../elements/Label.js'; import ReactTable from '../../../elements/ReactTable/ReactTable.js'; import type { CustomColumn } from '../../../elements/ReactTable/utility/addCustomColumn.js'; import type { WorkspaceWithSource } from '../../../reducer/preferences/preferencesReducer.js'; +import { getFilterLabel } from '../../../../data/getFilterLabel.js'; function OnLoadProcessingTabContent() { - const { register, control } = useFormContext(); + const { register, watch } = useFormContext(); const isExperimentalFeatures = - useWatch({ - control, - name: 'display.general.experimentalFeatures.display', - }) || false; + watch('display.general.experimentalFeatures.display') || false; return (