diff --git a/.ncurc.yml b/.ncurc.yml index 08eb21d..0670403 100644 --- a/.ncurc.yml +++ b/.ncurc.yml @@ -4,3 +4,4 @@ reject: - react-dom - '@types/react' - '@types/react-dom' + - eslint diff --git a/package-lock.json b/package-lock.json index bf369e3..584c831 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,77 +9,42 @@ "version": "1.2.0", "license": "MIT", "dependencies": { - "@blueprintjs/core": "^6.16.0", - "@blueprintjs/icons": "^6.11.0", - "@blueprintjs/select": "^6.3.0", + "@blueprintjs/core": "^6.18.0", + "@blueprintjs/icons": "^6.13.0", "@emotion/styled": "^11.14.1", "@vitejs/plugin-react": "^6.0.2", - "@zakodium/nmrium-core": "^0.7.30", - "@zakodium/nmrium-core-plugins": "^0.7.39", + "@zakodium/nmrium-core": "^0.7.62", + "@zakodium/nmrium-core-plugins": "^0.7.83", "fifo-logger": "^2.0.1", - "filelist-utils": "^1.11.3", - "nmr-processing": "^22.13.0", - "nmrium": "^2.2.0", - "openchemlib": "^9.23.0", - "react-science": "^19.11.0" + "nmrium": "^2.6.0", + "openchemlib": "^9.25.0", + "react-science": "^23.0.1" }, "devDependencies": { "@babel/plugin-transform-modules-commonjs": "^7.29.7", "@babel/preset-react": "^7.29.7", "@babel/preset-typescript": "^7.29.7", - "@playwright/test": "^1.61.0", + "@playwright/test": "^1.62.1", "@simbathesailor/use-what-changed": "^2.0.0", "@types/jest": "^30.0.0", - "@types/node": "^25.9.3", + "@types/node": "^26.2.0", "@types/react": "^18.3.3", "@types/react-dom": "^18.3.0", - "@types/react-router-dom": "^5.3.3", "cross-env": "^10.1.0", "eslint": "^9.39.2", "eslint-config-cheminfo-react": "^20.1.0", "eslint-config-cheminfo-typescript": "^22.1.0", "jest": "^30.4.2", - "prettier": "3.8.4", + "prettier": "3.9.6", "react": "^18.3.1", "react-dom": "^18.3.1", - "react-router-dom": "^7.17.0", + "react-router-dom": "^7.18.2", "serve": "^14.2.6", "typescript": "^6.0.3", - "vite": "^8.0.16", + "vite": "^8.2.2", "vite-plugin-pwa": "^1.3.0" } }, - "node_modules/@atlaskit/pragmatic-drag-and-drop": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@atlaskit/pragmatic-drag-and-drop/-/pragmatic-drag-and-drop-1.8.1.tgz", - "integrity": "sha512-uXWNPpL8n4OmTVbduH7nq8pk8htqGo/prR5cYEE8sVCPJGAUMWn6lzvWTfI+4VCeQvHiDRODVz4YzH06OVAxhw==", - "license": "Apache-2.0", - "dependencies": { - "@babel/runtime": "^7.0.0", - "bind-event-listener": "^3.0.0", - "raf-schd": "^4.0.3" - } - }, - "node_modules/@atlaskit/pragmatic-drag-and-drop-auto-scroll": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@atlaskit/pragmatic-drag-and-drop-auto-scroll/-/pragmatic-drag-and-drop-auto-scroll-2.1.5.tgz", - "integrity": "sha512-InLvVhZAHPBfv3CxuG4AfOQuhNJjaFy69YBfodPMWtRFQNQAKa9Yb3vL9Ho6qsD9qKUBuJa4A5k7QddaXQ4Eyw==", - "license": "Apache-2.0", - "dependencies": { - "@atlaskit/pragmatic-drag-and-drop": "^1.7.0", - "@babel/runtime": "^7.0.0" - } - }, - "node_modules/@atlaskit/pragmatic-drag-and-drop-hitbox": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@atlaskit/pragmatic-drag-and-drop-hitbox/-/pragmatic-drag-and-drop-hitbox-1.2.0.tgz", - "integrity": "sha512-eWJvvuHZOC4Yk+Li7QpS+JM2F/I50/3PhMvEcyvcHbXI0FP0kCDD1MiF8Hv7uSOxpk5JNqKoOmK8e1ncOzTgqA==", - "license": "Apache-2.0", - "dependencies": { - "@atlaskit/pragmatic-drag-and-drop": "^1.8.0", - "@babel/runtime": "^7.0.0" - } - }, "node_modules/@babel/code-frame": { "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", @@ -1981,13 +1946,13 @@ } }, "node_modules/@blueprintjs/core": { - "version": "6.16.0", - "resolved": "https://registry.npmjs.org/@blueprintjs/core/-/core-6.16.0.tgz", - "integrity": "sha512-xVamwaXDsWxekKmfgx1RuS79V8vqAEn8rYdZLmTLbObZwrZ4Vj7sy/S0Qri5wMid4hVYncSExlXcurWvHoRgrA==", + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/@blueprintjs/core/-/core-6.18.0.tgz", + "integrity": "sha512-EQVKWl/RFrPHfD42Bcicvxqwjwh+OnNSroXOdmnJZC+FP1xlcawOjTl38ewgJEaCZ6txcqiw/CGAft7/8zJ4RQ==", "license": "Apache-2.0", "dependencies": { "@blueprintjs/colors": "^5.1.16", - "@blueprintjs/icons": "^6.11.0", + "@blueprintjs/icons": "^6.13.0", "@floating-ui/react": "^0.27.13", "@popperjs/core": "^2.11.8", "classnames": "^2.3.1", @@ -2012,9 +1977,9 @@ } }, "node_modules/@blueprintjs/icons": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@blueprintjs/icons/-/icons-6.11.0.tgz", - "integrity": "sha512-LKNsI2ukS+Q/cRlghzdQcEVHu8tdTw+aXtgjSqecjxOcnjy+mItcMR5DCdwTHMMejEtrFNTwAlrvsz9MFYc1iA==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/@blueprintjs/icons/-/icons-6.13.0.tgz", + "integrity": "sha512-wEQgADFPwufKiKeF/L5K21bKgouuIbIdYPvMPFv2tt7reSuCEftX0dZpga+21JY4KvEJIz+xtVJoqMmXBesiwQ==", "license": "Apache-2.0", "dependencies": { "change-case": "^4.1.2", @@ -2037,6 +2002,7 @@ "resolved": "https://registry.npmjs.org/@blueprintjs/select/-/select-6.3.0.tgz", "integrity": "sha512-m+tQ6PIG/qWfGUwx2DFZs7nKZfMwx4OKPT4yO5aVe9JCqVkJGs+ZdEfjFO4zf6PF6lD0e9Yxyis497YJh1lawA==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@blueprintjs/colors": "^5.1.16", "@blueprintjs/core": "^6.16.0", @@ -2065,6 +2031,7 @@ "version": "1.10.0", "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", + "dev": true, "license": "MIT", "optional": true, "dependencies": { @@ -2076,6 +2043,7 @@ "version": "1.10.0", "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", + "dev": true, "license": "MIT", "optional": true, "dependencies": { @@ -2086,6 +2054,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", + "dev": true, "license": "MIT", "optional": true, "dependencies": { @@ -2252,17 +2221,17 @@ "license": "MIT" }, "node_modules/@es-joy/jsdoccomment": { - "version": "0.87.0", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.87.0.tgz", - "integrity": "sha512-mFXZloZMzuJZXSHUmAFu/pXTk0ZJTJBluuAkrvbzidpTN8W6F2bpRFuedSH+85kbdlRLJqc+gfN+kD3JOLJK5g==", + "version": "0.91.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.91.0.tgz", + "integrity": "sha512-vgqlMGNNhZxwDYbUNIHj3Hskb4R28iqdXx90ufHyt/NeuTQkeqjTDslAs9I0/GCAfbxP5BpH5WsL1R1fht5Lxg==", "dev": true, "license": "MIT", "dependencies": { "@types/estree": "^1.0.9", - "@typescript-eslint/types": "^8.59.4", + "@typescript-eslint/types": "^8.65.0", "comment-parser": "1.4.7", "esquery": "^1.7.0", - "jsdoc-type-pratt-parser": "~7.2.0" + "jsdoc-type-pratt-parser": "~8.0.0" }, "engines": { "node": "^20.19.0 || ^22.13.0 || >=24" @@ -2362,9 +2331,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.5.tgz", - "integrity": "sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.6.tgz", + "integrity": "sha512-l2Ul9PrHsPCKcEY/ac7VgFj9D80C7S68sOKc618SyHDPK36s1XcFebXY0iTzUVn4Yq+YbwvSnDmCz9yxjX+QrA==", "dev": true, "license": "MIT", "dependencies": { @@ -2374,7 +2343,7 @@ "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", - "js-yaml": "^4.1.1", + "js-yaml": "^4.3.0", "minimatch": "^3.1.5", "strip-json-comments": "^3.1.1" }, @@ -2385,10 +2354,54 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/@eslint/eslintrc/node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@eslint/js": { - "version": "9.39.4", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.4.tgz", - "integrity": "sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==", + "version": "9.39.5", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.5.tgz", + "integrity": "sha512-QywQuszQh77pIXCsq998c8hbhSTI/azTty1Z6N53dmAudKHhy573j3yvRLsX2BSp8YpLtoCEG8E9DJe+8zUh4A==", "dev": true, "license": "MIT", "engines": { @@ -2475,18 +2488,6 @@ "integrity": "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==", "license": "MIT" }, - "node_modules/@hookform/resolvers": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-5.4.0.tgz", - "integrity": "sha512-EIsqr/t/qbinPIhGjMdtvutIN1Kk4uwbROE9/UQ93CAVGR7GkA7Y92+fX80OzXi/OB67jVFYwKGO1WzkxmkFZw==", - "license": "MIT", - "dependencies": { - "@standard-schema/utils": "^0.3.0" - }, - "peerDependencies": { - "react-hook-form": "^7.55.0" - } - }, "node_modules/@humanfs/core": { "version": "0.19.2", "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.2.tgz", @@ -2613,9 +2614,9 @@ } }, "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", - "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", + "version": "3.15.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.15.1.tgz", + "integrity": "sha512-S99WuO3HlhO3XN41EtYUNl9zzXjoJx7QvmipxsJVxtCBT0YHEFy+iOJhjSvrmV12nYhWpZaM8lPHkJm0yUMbag==", "dev": true, "license": "MIT", "dependencies": { @@ -3090,6 +3091,7 @@ "version": "1.1.5", "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.5.tgz", "integrity": "sha512-AWPoBRJ9tsnVhor4sjO7rkni+7p+2IAEFj6cx06UgP10jkQHqay/36uRV/bFkgrh18D9vb4cr8Q0Pthskgzy+Q==", + "dev": true, "license": "MIT", "optional": true, "dependencies": { @@ -3105,9 +3107,9 @@ } }, "node_modules/@oxc-project/types": { - "version": "0.133.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.133.0.tgz", - "integrity": "sha512-KzkdCd6Uxqnf6l3HOw1xfatAlUURA0g14cvBYFyJ5SaNOQbOUvBr9PKArcPcrNIeRsBdgcUzOGrhKveVpvOIGA==", + "version": "0.146.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.146.0.tgz", + "integrity": "sha512-XC0QsnnhVe7sLIWmYmdPw7x5P0h4W8vUU3Nv1ySgWXtvCz8NizoAEpGXA0sOYoJQV2Rl13LgURAHQ5cI5ILCSA==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/Boshen" @@ -3138,19 +3140,19 @@ } }, "node_modules/@playwright/test": { - "version": "1.61.0", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.61.0.tgz", - "integrity": "sha512-cKA5B6lpFEMyMGjxF54QihfYpB4FkEGH+qZhtArDEG+wezQAJY8Pq6C7T1SjWz+FFzt3TbyoXBQYk/0292TdJA==", + "version": "1.62.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.62.1.tgz", + "integrity": "sha512-DTcUc8qii+cpHvtOwggMtBRMjKZHXYWdw8syRYu2vtzuq4Wxphqq4NfCs5Zt44L6mA8rfDfj+PHnxFc/FeK6mQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright": "1.61.0" + "playwright": "1.62.1" }, "bin": { "playwright": "cli.js" }, "engines": { - "node": ">=18" + "node": ">=20" } }, "node_modules/@popperjs/core": { @@ -3163,14 +3165,21 @@ "url": "https://opencollective.com/popperjs" } }, + "node_modules/@radix-ui/primitive": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.7.tgz", + "integrity": "sha512-rqWnm76nYT8HoNNqEjpgJ7Pw/DrBj5iBTrmEPo6HTX5+VJyBNOqTdv4g89G63HuR5g0AaENoAcH7Is5fF2kZ8Q==", + "license": "MIT" + }, "node_modules/@radix-ui/react-use-controllable-state": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.3.tgz", - "integrity": "sha512-PLzC90MS+ReootmjC597dvopoelpZ8Q61HJkDXZSExitIq7PL55vHNnesAHwguHK0aPfBnpdNzQtv1uliaqQrA==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.6.tgz", + "integrity": "sha512-uEQJGT97ZA/TgP/Hydw47lHu+/vQj6z/0jA+WeTbK1o9Rx45GImjpD0tc3W5ad3D6XTSR6e1yEO0FvGq6WQfVQ==", "license": "MIT", "dependencies": { - "@radix-ui/react-use-effect-event": "0.0.3", - "@radix-ui/react-use-layout-effect": "1.1.2" + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-use-effect-event": "0.0.5", + "@radix-ui/react-use-layout-effect": "1.1.4" }, "peerDependencies": { "@types/react": "*", @@ -3183,12 +3192,12 @@ } }, "node_modules/@radix-ui/react-use-effect-event": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.3.tgz", - "integrity": "sha512-6c8ZqvPTWILEKnyVkP53EGRCcpnJiKTC21sS/6R1GF5xKyHJJWQEPfkqlcgUkdRQivd6tb23abUwe4ngWmY0JA==", + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.5.tgz", + "integrity": "sha512-7cshFL8HGS/7HEiHH+9kL9HBwp2sa9yX18Knwek6KYWmXwM7pegMgta2AXMQKI+rq3JnfSj9x8wYqFMTdG1Jgg==", "license": "MIT", "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.2" + "@radix-ui/react-use-layout-effect": "1.1.4" }, "peerDependencies": { "@types/react": "*", @@ -3201,9 +3210,9 @@ } }, "node_modules/@radix-ui/react-use-layout-effect": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.2.tgz", - "integrity": "sha512-jrBWOxZITuGcnjRCM2t2U5ZPkCLxD+Ym6DjfssS5haTj2iiak/DOb64JeN6OdLfLgptb6/e2kKR+ZuTrGoZTPA==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.4.tgz", + "integrity": "sha512-K20DkRkUwDnxEYMBPcg3Y6voLkEy5p5QQmszZgLngKKiC7dzBR/aEuK3w1qlx2JWDUNH6FluahYdgR3BP+QbYw==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -3215,10 +3224,26 @@ } } }, + "node_modules/@rolldown/binding-android-arm-eabi": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm-eabi/-/binding-android-arm-eabi-1.2.5.tgz", + "integrity": "sha512-DLe/i+l8ynIBY7XEQ191TeZvCoowIGa18R+dIV30GW7DiOtp74i/xX8hs8GUjW5ARV7VZuie3d6AumSmCwbeRA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, "node_modules/@rolldown/binding-android-arm64": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.3.tgz", - "integrity": "sha512-454rs7jHngixp/NMxd5srYD57OnzSlZ/eFTETjORQHLwJG1lRtmNOJcBerZlfu4GjKqeq8aCCIQrMdHyhI51Hw==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.5.tgz", + "integrity": "sha512-zXcwKlQApYAOELHd8PwKDFkagYF9Wy4e0RJ+0qnzl9Pjnpj75TEG8ufv40p2J7kCEfwZAsNiuzRIyNNMWT38ig==", "cpu": [ "arm64" ], @@ -3232,9 +3257,9 @@ } }, "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.3.tgz", - "integrity": "sha512-PcAhP+ynjURNyy8SKGl5DQP94aGuB/7JrXJb/t7P+hanXvQVMWzUvRRhBAcg/lNRadBhoUPqSoP4xw5tR/KBEA==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.5.tgz", + "integrity": "sha512-dK4QakI42nzWgJT5sm4y4y/O//D4OxM75/cH28RLV+nzIN9AY+YsbuUVrUTjlLjXR6vpyxFbSsbmNuJ6BP9sww==", "cpu": [ "arm64" ], @@ -3248,9 +3273,9 @@ } }, "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.3.tgz", - "integrity": "sha512-9YpfeUvSE2RS7wysJ81uOZkXJz7f7Q55H2Gvp3VEw/EsahqDtrphrZ0EwDLK5vvKOzaCrBsjF8JmnMLcUt78Gg==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.5.tgz", + "integrity": "sha512-fqSALaUu1Wjd1nK2uW2kJDWdLCc8lx1IcY+MTY26Aurfdx19anlzhqXOgCFbBFQnlFDTn4TC1/7Nz4Bl2mLP3A==", "cpu": [ "x64" ], @@ -3264,9 +3289,9 @@ } }, "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.3.tgz", - "integrity": "sha512-yB1IlAsSNHncV6SCTL27/MVGR5htvQsoGxIv5KMGXALp+Ll1wYsn+x98M9MW7qa+NdSbvrrY7ANI4wLJ0n1e6g==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.5.tgz", + "integrity": "sha512-/vCnNxlkxs9tKxNDcyWUePpJ/PgTzxIaVhoM5SmG8UV+GR/IcPam4VYxi7GIMo7PSDuNqlJqvprqii9NqqVCMw==", "cpu": [ "x64" ], @@ -3280,9 +3305,9 @@ } }, "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.3.tgz", - "integrity": "sha512-Yi30IVAAfLUCy2MseFjbB1jAMDl1VMCAas5StnYp8da9+CKvMd2H2cbEjWcw5NPaPqzvYkVIaF1nNUG+b7u/sw==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.5.tgz", + "integrity": "sha512-abk0NLA519LxRCszmbE0jYKuQ9YPocOXTiOXOo6Yr+YAT95VH+PtqYAjOJvGKt3viEd/x4qzabAlwd5bHOOARg==", "cpu": [ "arm" ], @@ -3296,9 +3321,9 @@ } }, "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.3.tgz", - "integrity": "sha512-jsO7R8To+AdlYgUmN5sHSCZbfhtMBkO0WUx8iORQnPcMMdgr7qM2DQmMwgabs3GhNztdmoKkMKQFHD6DTMCIQw==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.5.tgz", + "integrity": "sha512-Y7eALiJ8lr0M2HH103Js+g7V34wf6snlpZLAsHI90uLhr3PVlNsbFVAXJC9d/V6BnPyKtpSwI+NcB/RLxsQxuA==", "cpu": [ "arm64" ], @@ -3315,9 +3340,9 @@ } }, "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.3.tgz", - "integrity": "sha512-VWkUHwWriDciit80wleYwKILoR/KMvxh/IdwS/paX+ZgpuRpCrKLUdadJbc0NpBEiyhpYawsJ73j9aCvOH+f7Q==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.5.tgz", + "integrity": "sha512-xMvZgnbZg4YVnR/AX2b3oOPDTFYJvUVaJg5FedA/LuvexAtXibZQej4cnTkw3rjsJ/ggUROB64TdtETiim+FYA==", "cpu": [ "arm64" ], @@ -3334,9 +3359,9 @@ } }, "node_modules/@rolldown/binding-linux-ppc64-gnu": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.3.tgz", - "integrity": "sha512-5f1laC0SlIR0yDbFCd8acUhvJIag6N3zC5P7oUPN6wX0aOma+uKJ0wBDH5aq7I1PVI2ttTlhJwzwRIBnLiSGEg==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.5.tgz", + "integrity": "sha512-GRjeqTUDHTo5GwntsLaAMcBahG3nlpjftXWZLN73HiYQlhwEowvarFgQnRnQZtIp4keXX7quXFbG38uPZBa2EA==", "cpu": [ "ppc64" ], @@ -3353,9 +3378,9 @@ } }, "node_modules/@rolldown/binding-linux-s390x-gnu": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.3.tgz", - "integrity": "sha512-Iq4ko0r4XsgbrF/LunNgHtAGLRRVE2kXonAXQ/MV0mC6jQpMOhW1SvtZja2EhC/kd05++bP78dsqBeIQyYJ6Yg==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.5.tgz", + "integrity": "sha512-vLNTR45F2Uwc8AufkNXPmB4VliaXs+FvcheEogIzOXzO4l+LzieXF5A/TWxLy5HtqpsRCHUfd0lPVrrdgXdLHQ==", "cpu": [ "s390x" ], @@ -3372,9 +3397,9 @@ } }, "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.3.tgz", - "integrity": "sha512-B8m6tD5+/N5FeNQFbKlLA/2yVq9ycQP1SeedyEYYKWBNR3ZQbkvIUcNnDNM03lO1l5F2roiiFJGgvoLLyZXtSg==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.5.tgz", + "integrity": "sha512-Mgj59/HTuYeK9Gz2MA+mBWKnHsAgkBSec15ZMb1st3oIfFbX7gCjOae7GydHhzcyQi9Z/7M1QuN9bR3oFqF0jQ==", "cpu": [ "x64" ], @@ -3391,9 +3416,9 @@ } }, "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.3.tgz", - "integrity": "sha512-pSdpdUJHkuCxun9LE7jvgUB9qsRgaiyNNCX7m/AvHTcq67AiT/Yhoxvw5zPfhrM8k/BfP8ce/hMOpthKDpEUow==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.5.tgz", + "integrity": "sha512-mY8AP0/ichsbhAxGnLa3d3+MwV0EfgrPND2bplI3Ym8T6R2pJ0N87bvrKVwNXmdy3jnr6eQBecdqx/HMknBmpA==", "cpu": [ "x64" ], @@ -3410,9 +3435,9 @@ } }, "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.3.tgz", - "integrity": "sha512-OXXS3RKJgX2uLwM+gYyuH5omcH8fL1LJs96pZGgtetVCahON57+d4SJHzTgZiOjxgGkSnpXpOsWuPDGAKAigEg==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.5.tgz", + "integrity": "sha512-8SLssA2oweAxyRgDp789ACfRb/3P+zNRJpzZxSizxF9m8NUDQ4+3xjo8ttjhVGGw6Qxb70oZiEtIjaKikCO7Yw==", "cpu": [ "arm64" ], @@ -3425,28 +3450,10 @@ "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@rolldown/binding-wasm32-wasi": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.3.tgz", - "integrity": "sha512-JTtb8BWFynicNSoPrehsCzBtOKjZ6jhMiPFEmOiuXg1Fl8dn2KHQob+GuPSGR0dryQa1PQJbzjF3dqO/whhjLg==", - "cpu": [ - "wasm32" - ], - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/core": "1.10.0", - "@emnapi/runtime": "1.10.0", - "@napi-rs/wasm-runtime": "^1.1.4" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.3.tgz", - "integrity": "sha512-gEdFFEN70A/jxb2svrWsN3aDL7OUtmvlOy+6fa2jxG8K0wQ1ZbdeLGnidov6Yu5/733dI5ySfzFlQ/cb0bSz1g==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.5.tgz", + "integrity": "sha512-vGbruD5zquhoc8D9SViXgN2FBJtNdTyQ4DtG+SWiEGlJiAzoKcZ2xp+xuXCffhubVdt0NJlTZqkeRuERy7g8Cw==", "cpu": [ "arm64" ], @@ -3460,9 +3467,9 @@ } }, "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.3.tgz", - "integrity": "sha512-eXB7CHuaQdqmJcc3koCNtNPmT/bj2gc999kUFgBxG8Ac0NdgXc4rkCHhqrgrhN3zddvvvrgzj1e90SuSfmyIXA==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.5.tgz", + "integrity": "sha512-e/SXpgISz+IoqVcSSI0rx/d/he8zqLex+/rCWpnHpmVfmPIUjag9H6P7zotf0gJHwPUhQxZ/mF8tr6acebT9yw==", "cpu": [ "x64" ], @@ -4011,7 +4018,7 @@ "version": "0.34.49", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.49.tgz", "integrity": "sha512-brySQQs7Jtn0joV8Xh9ZV/hZb9Ozb0pmazDIASBkYKCjXrXU3mpcFahmK/z4YDhGkQvP9mWJbVyahdtU5wQA+A==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/@sindresorhus/base62": { @@ -4054,9 +4061,9 @@ "license": "MIT" }, "node_modules/@tanstack/devtools-event-client": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@tanstack/devtools-event-client/-/devtools-event-client-0.4.3.tgz", - "integrity": "sha512-OZI6QyULw0FI0wjgmeYzCIfbgPsOEzwJtCpa69XrfLMtNXLGnz3d/dIabk7frg0TmHo+Ah49w5I4KC7Tufwsvw==", + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@tanstack/devtools-event-client/-/devtools-event-client-0.4.4.tgz", + "integrity": "sha512-6T5Yop/793YI+H+5J8Hsyj4kCih9sl4t3ElLgKioW5hk3ocn+ZdSJ94tT7vL7uabxSugWYBZlOTMPzEw2puvQw==", "license": "MIT", "bin": { "intent": "bin/intent.js" @@ -4070,9 +4077,9 @@ } }, "node_modules/@tanstack/form-core": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/@tanstack/form-core/-/form-core-1.33.0.tgz", - "integrity": "sha512-AV4Pw9Dk4orFsuPBcDssfWMJFs+yMYBae7zZ4oTqrCf4ftNGQKxvrQRZeqKHG6A4TkiLeSvf2kzIjcVkrW7E6w==", + "version": "1.33.5", + "resolved": "https://registry.npmjs.org/@tanstack/form-core/-/form-core-1.33.5.tgz", + "integrity": "sha512-3dfx9MBP0aq5sXKteikG629X9oviptrQj0IFRk9YGcb+lB7Kv5x8S17oOSk1wUWgjQZ4xVJEMbKwOAODymocgA==", "license": "MIT", "dependencies": { "@tanstack/devtools-event-client": "^0.4.1", @@ -4098,12 +4105,12 @@ } }, "node_modules/@tanstack/react-form": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/@tanstack/react-form/-/react-form-1.33.0.tgz", - "integrity": "sha512-unaee+VS4MvKo+s1dmgGUXI4902VeAhuaUbKsQbhFe3MceOpB3JpAUGCDpyzjQPXVFkFY0COKfLrUNX2XZYW4g==", + "version": "1.33.5", + "resolved": "https://registry.npmjs.org/@tanstack/react-form/-/react-form-1.33.5.tgz", + "integrity": "sha512-LlRB28qJwO/QCGaHvWnbdh4haBgTFiZVmzA2uzxSBS3YA7/IqrQ6HOBK70CkFQ+DbflZ7NawsmSln13h5iIdTA==", "license": "MIT", "dependencies": { - "@tanstack/form-core": "1.33.0", + "@tanstack/form-core": "1.33.5", "@tanstack/react-store": "^0.11.0" }, "funding": { @@ -4119,13 +4126,13 @@ } } }, - "node_modules/@tanstack/react-form/node_modules/@tanstack/react-store": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@tanstack/react-store/-/react-store-0.11.0.tgz", - "integrity": "sha512-tX4YXh3PDkmpvGQWkWqKpzs/MSqbtuwY9dWdWhtV9Q50PmO+jOkUKIWIX4G85dwt7lxdHLXsiaEKPdKmC8F41w==", + "node_modules/@tanstack/react-store": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/@tanstack/react-store/-/react-store-0.11.1.tgz", + "integrity": "sha512-HaIGKI3YLmjBYIvy5DFDY23oNaYZIsTZfngey07Uh5iLVJgM3bIGCnZeOFOqzjFld9JHWcaHJnasD/bKoGKwJQ==", "license": "MIT", "dependencies": { - "@tanstack/store": "0.11.0", + "@tanstack/store": "0.11.1", "use-sync-external-store": "^1.6.0" }, "funding": { @@ -4137,33 +4144,13 @@ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, - "node_modules/@tanstack/react-table": { - "version": "8.21.3", - "resolved": "https://registry.npmjs.org/@tanstack/react-table/-/react-table-8.21.3.tgz", - "integrity": "sha512-5nNMTSETP4ykGegmVkhjcS8tTLW6Vl4axfEGQN3v0zdHYbK4UfoqfPChclTrJ4EoK9QynqAu9oUf8VEmrpZ5Ww==", - "license": "MIT", - "dependencies": { - "@tanstack/table-core": "8.21.3" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "react": ">=16.8", - "react-dom": ">=16.8" - } - }, "node_modules/@tanstack/react-virtual": { - "version": "3.14.3", - "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.14.3.tgz", - "integrity": "sha512-k/cnHPVaOfn46hSbiY6n4Dzf4QjCGWSF40zR5QIIYUqPAjpA6TN7InfYmcMiDVQGP2iUn9xsRbAl8u1v3UmeVQ==", + "version": "3.14.10", + "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.14.10.tgz", + "integrity": "sha512-SRyoUbdFMRHuYXMijV5H4ZarQWpXkj3iANq8OFre+pybeVap8ZJjZ3Nz9bVjx4d8PfobVUQUdKyyyHYk3E+djw==", "license": "MIT", "dependencies": { - "@tanstack/virtual-core": "3.17.1" + "@tanstack/virtual-core": "3.17.8" }, "funding": { "type": "github", @@ -4175,32 +4162,19 @@ } }, "node_modules/@tanstack/store": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@tanstack/store/-/store-0.11.0.tgz", - "integrity": "sha512-WlzzCt3xi0G6pCAJu1U+2jiECwabETDpQDi3hfkFZvJii9AuZqEKbOiVarX1/bWhTNjU486yQtJCCasi/0q+Cw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - } - }, - "node_modules/@tanstack/table-core": { - "version": "8.21.3", - "resolved": "https://registry.npmjs.org/@tanstack/table-core/-/table-core-8.21.3.tgz", - "integrity": "sha512-ldZXEhOBb8Is7xLs01fR3YEc3DERiz5silj8tnGkFZytt1abEvl/GhUmCE0PMLaMPTa3Jk4HbKmRlHmu+gCftg==", + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/@tanstack/store/-/store-0.11.1.tgz", + "integrity": "sha512-mzTOBhypOuDJAy/D8n2MfUZ1HFkXnmSETviRyhqEC8LUE7/IZQExOTxMANj3KjTofYTkFNpBY67qaVrT41YccA==", "license": "MIT", - "engines": { - "node": ">=12" - }, "funding": { "type": "github", "url": "https://github.com/sponsors/tannerlinsley" } }, "node_modules/@tanstack/virtual-core": { - "version": "3.17.1", - "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.17.1.tgz", - "integrity": "sha512-VZyW2Uiml5tmBZwPGrSD3Sz73OxzljQMCmzYHsUTPEuTsERf5xwa+uWb01xEzkz3ZSYTjj8NEb/mKHvgKxyZdA==", + "version": "3.17.8", + "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.17.8.tgz", + "integrity": "sha512-BfEvehNpOT75r5Ksc5xW6NZuXujTfb7nlSEyVu4XHG3gdxNg1KqXruWbDewXOUaUYIo4oRbSfkjIajz4MAT8tA==", "license": "MIT", "funding": { "type": "github", @@ -4227,6 +4201,7 @@ "version": "0.10.2", "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.2.tgz", "integrity": "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==", + "dev": true, "license": "MIT", "optional": true, "dependencies": { @@ -4300,13 +4275,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/history": { - "version": "4.7.11", - "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", - "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", @@ -4360,13 +4328,13 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "25.9.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.9.3.tgz", - "integrity": "sha512-603BddQMv3pUcr4U2dhujk83N2tTDVr/34wII2B6bJy6g+8WD6yUb11jszNs0gdi4PesVWl7ABt8nYMVpnLUcg==", + "version": "26.2.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.2.0.tgz", + "integrity": "sha512-5IviulTZeRNp2vAJ514cc/HUlY5nZ9fCbq9DMyC52BrhFZACo3nI0R7qBxhQmo/d27NFe96ur/b7Wwxklda+kg==", "devOptional": true, "license": "MIT", "dependencies": { - "undici-types": ">=7.24.0 <7.24.7" + "undici-types": "~8.3.0" } }, "node_modules/@types/parse-json": { @@ -4401,29 +4369,6 @@ "@types/react": "^18.0.0" } }, - "node_modules/@types/react-router": { - "version": "5.1.20", - "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz", - "integrity": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*" - } - }, - "node_modules/@types/react-router-dom": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", - "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router": "*" - } - }, "node_modules/@types/resolve": { "version": "1.20.2", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", @@ -4462,79 +4407,15 @@ "dev": true, "license": "MIT" }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.61.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.61.1.tgz", - "integrity": "sha512-ZPlVl3PB3et/59Ne0fv/sci6ZXz4T4Hp4nTJ56i/Y0gR89ARb+KphojTq6j+56E5PIezmOIOOWyY+aWQFd+IkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.61.1", - "@typescript-eslint/type-utils": "8.61.1", - "@typescript-eslint/utils": "8.61.1", - "@typescript-eslint/visitor-keys": "8.61.1", - "ignore": "^7.0.5", - "natural-compare": "^1.4.0", - "ts-api-utils": "^2.5.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^8.61.1", - "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", - "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "8.61.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.61.1.tgz", - "integrity": "sha512-PJ5vePq5/ognBbrIcoC5+SHO5dfpeLPzP9FpLkzWrguoYQEeeSjlJpVwOpo1JRSTEi7dRcwNy4h4dzV70PqHcg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/scope-manager": "8.61.1", - "@typescript-eslint/types": "8.61.1", - "@typescript-eslint/typescript-estree": "8.61.1", - "@typescript-eslint/visitor-keys": "8.61.1", - "debug": "^4.4.3" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.1.0" - } - }, "node_modules/@typescript-eslint/project-service": { - "version": "8.61.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.61.1.tgz", - "integrity": "sha512-PrC4JYGmR241lYnfhmKGTXkFqv8+ymbTFgSAY0fVXpY82/QkMw5TZPl+vGzuDDU2QYJk9fIDOBTntF+yDv9LEA==", + "version": "8.67.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.67.0.tgz", + "integrity": "sha512-cvE8c7ulYeXN9fYuszhCeCsbzyVEXuhrRCybnBre7TUmqb5nRmBfQAwCj0O3WJFDeyAZt4VYv51vMCC9LHSdYw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.61.1", - "@typescript-eslint/types": "^8.61.1", + "@typescript-eslint/tsconfig-utils": "^8.67.0", + "@typescript-eslint/types": "^8.67.0", "debug": "^4.4.3" }, "engines": { @@ -4549,14 +4430,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.61.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.61.1.tgz", - "integrity": "sha512-L2bdIeoQS8FlKAvONAr20w6OcLXeB+qiDKbAooS9A0Ben+iSIkBef0FxqwKWYqt5sa0i4KJtxVyVmhMylKzF5w==", + "version": "8.67.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.67.0.tgz", + "integrity": "sha512-EgvsleTwS4E+WzzSvem8fAUubLwatMNF1B5hHSLQxcvs7q2dtRhGyujHwLJSYlG41niJ7GP24Aha2+0mb1b2kg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.61.1", - "@typescript-eslint/visitor-keys": "8.61.1" + "@typescript-eslint/types": "8.67.0", + "@typescript-eslint/visitor-keys": "8.67.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -4567,35 +4448,11 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.61.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.61.1.tgz", - "integrity": "sha512-UN/H4di+OO7EWx2ovME+8t31YO+KVnK0RRKEHR3kOt21/Ay8BOq3M1OMvWs5vNiqcFCYGYoxK3MXPZzmMUE+yg==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "8.61.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.61.1.tgz", - "integrity": "sha512-GYRicKmVK0C4fsKgaACaknOUAq9Oa2kwsjnpFhFcS/5p4Ht5IP9OVLbgIgcK4SRk92nVHFluurg1lumD9dBcLw==", + "version": "8.67.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.67.0.tgz", + "integrity": "sha512-vV+LUSv5njUWsknE71fqKTlXUva+R76SaeORd6Zojcunk/6DvKFXONU3BrAs2H49mbygUXt6gbYunzwqNwlhdg==", "dev": true, "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.61.1", - "@typescript-eslint/typescript-estree": "8.61.1", - "@typescript-eslint/utils": "8.61.1", - "debug": "^4.4.3", - "ts-api-utils": "^2.5.0" - }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -4604,14 +4461,13 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/types": { - "version": "8.61.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.61.1.tgz", - "integrity": "sha512-G+CRlPqLv7Bz1IZVs03x5K59F1veqL0EJUROAdGhKsEq8qOiRiZbI+HUojPq5l0fEGOKModD9br6lObhB8zkoA==", + "version": "8.67.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.67.0.tgz", + "integrity": "sha512-sBtgslww8nsMYUjhdPBiSyUqSzT8uR6g93A2QXnQC8+cGdjz0CyaOdqHDRJb1AtORbZCNUJBBeFA/tNR2uQmww==", "dev": true, "license": "MIT", "engines": { @@ -4623,16 +4479,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.61.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.61.1.tgz", - "integrity": "sha512-u+oQD3BqYWPc8YV9Zab4vaJElJuwOLPRc10Jm1o/qS+6Qwen14HCWwx0Seo4LnSn2wxea2Ik8DxPt2/FHmuhrg==", + "version": "8.67.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.67.0.tgz", + "integrity": "sha512-EKQBCE9yNlRJYm7jdTW5AhDacDUmSwQb0FAJAmK2EKYrNXIsa2vxcSZx6PvJ/dEdI6lS+Y9W+EXckLj0iPFGcw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.61.1", - "@typescript-eslint/tsconfig-utils": "8.61.1", - "@typescript-eslint/types": "8.61.1", - "@typescript-eslint/visitor-keys": "8.61.1", + "@typescript-eslint/project-service": "8.67.0", + "@typescript-eslint/tsconfig-utils": "8.67.0", + "@typescript-eslint/types": "8.67.0", + "@typescript-eslint/visitor-keys": "8.67.0", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", @@ -4661,26 +4517,26 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz", - "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==", + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz", + "integrity": "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==", "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^4.0.2" }, "engines": { - "node": "18 || 20 || >=22" + "node": "20 || >=22" } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "10.2.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", - "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", + "version": "10.2.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", + "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^5.0.5" + "brace-expansion": "^5.0.8" }, "engines": { "node": "18 || 20 || >=22" @@ -4690,9 +4546,9 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.4.tgz", - "integrity": "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==", + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", "dev": true, "license": "ISC", "bin": { @@ -4703,16 +4559,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.61.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.61.1.tgz", - "integrity": "sha512-1+P/3Dj6jvtybE1q0HQ6yBt/gq+oKJyLdEv4HdnqasaEXRSYCAsD59mXEVQnM/ULNdQxbX77tdG4jPRjIS6knA==", + "version": "8.67.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.67.0.tgz", + "integrity": "sha512-U9D1FdwEWBwok3hxxSdhclMb0twvt9QnjIQ0VfQ1AiX2epnpSgv2ubVDsayOFyY8K6FX+AQ7E0FKWVG3iKsj1A==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.61.1", - "@typescript-eslint/types": "8.61.1", - "@typescript-eslint/typescript-estree": "8.61.1" + "@typescript-eslint/scope-manager": "8.67.0", + "@typescript-eslint/types": "8.67.0", + "@typescript-eslint/typescript-estree": "8.67.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -4727,13 +4583,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.61.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.61.1.tgz", - "integrity": "sha512-6fJ9MHWtK14C1DSkiMlHUSOmrVebL7150xZJBlJiL62jjhIA4JmOq6flwBgDxIdBKKdoiZRel+dfPD5MLfny3w==", + "version": "8.67.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.67.0.tgz", + "integrity": "sha512-fkv8dHRDqfGtTHuJeebdrQ7cX6Ad4WAS00rgHh9UGvMycF1mjBfsxry1XsLIFhWZ6Judlh6UdzK+TYlbpCXgnA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.61.1", + "@typescript-eslint/types": "8.67.0", "eslint-visitor-keys": "^5.0.0" }, "engines": { @@ -4744,19 +4600,6 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", - "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/@ungap/structured-clone": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.1.tgz", @@ -5133,9 +4976,9 @@ } }, "node_modules/@vitest/eslint-plugin": { - "version": "1.6.20", - "resolved": "https://registry.npmjs.org/@vitest/eslint-plugin/-/eslint-plugin-1.6.20.tgz", - "integrity": "sha512-xRwWHFG0Utp6hXtbGiWk4VdKXCGdExD8kbWrrmFEiG5dk8anOJ+vbWbeOa8EbkocKQRTsx7JAWETccZiBgFp/Q==", + "version": "1.6.27", + "resolved": "https://registry.npmjs.org/@vitest/eslint-plugin/-/eslint-plugin-1.6.27.tgz", + "integrity": "sha512-X1RCAfwbatG4GFbJ/1PIHP9MSZMt0JJThqbYID+vS4L783k6QGlLPe421wQE8dHXuGCcenVLsydiM4qzsYWxhg==", "dev": true, "license": "MIT", "dependencies": { @@ -5164,80 +5007,122 @@ } }, "node_modules/@zakodium/nmr-types": { - "version": "0.5.14", - "resolved": "https://registry.npmjs.org/@zakodium/nmr-types/-/nmr-types-0.5.14.tgz", - "integrity": "sha512-TEgAajDAvfGSafwQBCEesrfDJVpTq7bfRnkorLKXiflNLJzjpsIk68sgm3NfVuo7Dv7d0kTmgNAbKk0gpX66bQ==", + "version": "0.5.25", + "resolved": "https://registry.npmjs.org/@zakodium/nmr-types/-/nmr-types-0.5.25.tgz", + "integrity": "sha512-Flxfn3CoC7J9mSwEcFFRO0omp9aqbf6t8+M1j4BUWbeLJAw6IZu4mdWSLgHZRvCo/VRF9EW7MlOy3BZdv3RcRQ==", "license": "CC-BY-NC-SA-4.0", "dependencies": { - "ml-peak-shape-generator": "^5.1.0", - "ml-signal-processing": "^2.2.1", - "ml-spectra-processing": "^14.28.1" - } - }, - "node_modules/@zakodium/nmr-types/node_modules/ml-peak-shape-generator": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ml-peak-shape-generator/-/ml-peak-shape-generator-5.1.0.tgz", - "integrity": "sha512-W2Vx/+R65zyr/B13p5TLyqwjTgIzwR0xtjRyQ2ZSxDHdVaXxb6m+ajyyaHJqGG5mYzeqi97nGvpklhz0jrsbrg==", - "license": "MIT", - "dependencies": { - "cheminfo-types": "^1.15.0" + "cheminfo-types": "^1.15.0", + "ml-peak-shape-generator": "^5.5.0", + "ml-signal-processing": "^2.2.2", + "ml-spectra-processing": "^14.33.0", + "zod": "^4.4.3" } }, "node_modules/@zakodium/nmrium-core": { - "version": "0.7.30", - "resolved": "https://registry.npmjs.org/@zakodium/nmrium-core/-/nmrium-core-0.7.30.tgz", - "integrity": "sha512-uds3UysKrAgm38Yt2swNnt8nmf5SHqt1LuVnewwDTolztl3Lead0RtgOYsRjnL30k6gpvGrgaoENkIMxSY0/kQ==", + "version": "0.7.62", + "resolved": "https://registry.npmjs.org/@zakodium/nmrium-core/-/nmrium-core-0.7.62.tgz", + "integrity": "sha512-bwD4wttFKuXmNNotWuVZI6ddpuO2A0Ul2xi2NIrywHjJiNpJ4HiEX5oBBEboBa+UuuSonhTOKA6iKXbH2jQgWw==", "license": "CC-BY-NC-SA-4.0", "dependencies": { + "@zakodium/utils": "^0.5.1", "cheminfo-types": "^1.15.0", "fifo-logger": "^2.0.1", - "file-collection": "^6.6.1", + "file-collection": "^6.7.0", "is-any-array": "^3.0.0", "lodash.merge": "^4.6.2", - "ml-spectra-processing": "^14.28.1", - "nmr-correlation": "^2.3.5" + "ml-spectra-processing": "^14.33.0" }, "peerDependencies": { "zod": "^4.4.3" } }, "node_modules/@zakodium/nmrium-core-plugins": { - "version": "0.7.39", - "resolved": "https://registry.npmjs.org/@zakodium/nmrium-core-plugins/-/nmrium-core-plugins-0.7.39.tgz", - "integrity": "sha512-WFO8UmUB4ZGwO+eCTjC1RfUBeCtv+raQmsuVx6L7zf1/BuD0N3Lq0q+JpKkdn85sfFGckyejJr1yo2qd91EVMQ==", + "version": "0.7.83", + "resolved": "https://registry.npmjs.org/@zakodium/nmrium-core-plugins/-/nmrium-core-plugins-0.7.83.tgz", + "integrity": "sha512-Y7IFXV7dTcUIxaJrHwWV6HtLcLeBQp0Ehs2VJ+QW54I1GVVd+E7d62Ufa5USAe84N60jrAcli7X46TtGLalfvw==", "license": "CC-BY-NC-SA-4.0", "dependencies": { "@date-fns/utc": "^2.1.1", - "@zakodium/nmrium-core": "^0.7.30", + "@zakodium/nmrium-core": "^0.7.62", "cheminfo-types": "^1.15.0", - "convert-to-jcamp": "^7.0.0", - "date-fns": "^4.1.0", - "file-collection": "^6.6.1", + "convert-to-jcamp": "^7.0.1", + "date-fns": "^4.4.0", + "file-collection": "^6.7.0", "gyromagnetic-ratio": "^2.0.0", "is-any-array": "^3.0.0", - "jcampconverter": "^12.3.3", + "jcampconverter": "^12.5.5", "linear-sum-assignment": "^1.0.9", "lodash.merge": "^4.6.2", - "ml-spectra-processing": "^14.28.1", - "nmr-processing": "^22.13.0", - "openchemlib": "^9.22.0", - "openchemlib-utils": "^8.15.0", - "sdf-parser": "^8.0.0", + "ml-spectra-processing": "^14.33.0", + "nmr-processing": "^22.23.5", + "openchemlib": "^9.24.0", + "openchemlib-utils": "^8.17.1", + "sdf-parser": "^9.0.0", "ts-pattern": "^5.9.0", "zod": "^4.4.3" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } } }, "node_modules/@zakodium/pdnd-esm": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@zakodium/pdnd-esm/-/pdnd-esm-1.0.2.tgz", - "integrity": "sha512-eyamAVS2KNGx89hyZEWkGb35Xir89WQP4AvoDEDZmMlY6EdvHTZc5XwNcJmBPXquZ9cy6Bw0t/PdOxsvM/tYhA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@zakodium/pdnd-esm/-/pdnd-esm-1.1.1.tgz", + "integrity": "sha512-Ue2arpLA+S5+TIWwJ81db/QOa3asU3FbNJjuyCR3XbnEDpAekO05DiwBtfo3SKV1FH4jsMnzOH1u88ka/9VJHg==", "license": "MIT", "dependencies": { - "@atlaskit/pragmatic-drag-and-drop": "^1.7.7", - "@atlaskit/pragmatic-drag-and-drop-auto-scroll": "^2.1.2", - "@atlaskit/pragmatic-drag-and-drop-hitbox": "^1.1.0" + "@atlaskit/pragmatic-drag-and-drop": "^3.0.0", + "@atlaskit/pragmatic-drag-and-drop-auto-scroll": "^3.0.1", + "@atlaskit/pragmatic-drag-and-drop-hitbox": "^2.1.0" + } + }, + "node_modules/@zakodium/pdnd-esm/node_modules/@atlaskit/pragmatic-drag-and-drop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@atlaskit/pragmatic-drag-and-drop/-/pragmatic-drag-and-drop-3.0.0.tgz", + "integrity": "sha512-EEKBELv757wrvhMHBAoFcXjfzGZ4Y2FJ2xnSsWovsOKywkN1Q4IWRH52hQpPmJnATLcmO9viVhoXWSXFBLKSLQ==", + "license": "Apache-2.0", + "dependencies": { + "@babel/runtime": "^7.0.0", + "bind-event-listener": "^3.0.0", + "raf-schd": "^4.0.3" + } + }, + "node_modules/@zakodium/pdnd-esm/node_modules/@atlaskit/pragmatic-drag-and-drop-auto-scroll": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@atlaskit/pragmatic-drag-and-drop-auto-scroll/-/pragmatic-drag-and-drop-auto-scroll-3.1.0.tgz", + "integrity": "sha512-YfxLci5SA2MwdJKIVpnEZfbiOGWQIQnD1NvUgqFq96v33PGVWQy13k07KxeSkR/M8E6VBiYRoglelyCdRmyyBQ==", + "license": "Apache-2.0", + "dependencies": { + "@atlaskit/pragmatic-drag-and-drop": "^3.0.0", + "@babel/runtime": "^7.0.0" + } + }, + "node_modules/@zakodium/pdnd-esm/node_modules/@atlaskit/pragmatic-drag-and-drop-hitbox": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@atlaskit/pragmatic-drag-and-drop-hitbox/-/pragmatic-drag-and-drop-hitbox-2.1.0.tgz", + "integrity": "sha512-88krJVd1OcPHy0EFcJx0CjT1AOTB/1AneVvDWOhU4FH6NYDgTNF69euj8GUE07r0KK3L+9V77MKQhaOtwq2mXA==", + "license": "Apache-2.0", + "dependencies": { + "@atlaskit/pragmatic-drag-and-drop": "^3.0.0", + "@babel/runtime": "^7.0.0" } }, + "node_modules/@zakodium/utils": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@zakodium/utils/-/utils-0.5.1.tgz", + "integrity": "sha512-aRtHXol0w/nL4ZYiVNicw/7batBasftRDmYSCXj54AWf1MvLrKZNk9hthzp8I+wm7jL938HAIv8eg/45J+XyOg==", + "license": "MIT" + }, "node_modules/@zeit/schemas": { "version": "2.36.0", "resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.36.0.tgz", @@ -5246,9 +5131,9 @@ "license": "MIT" }, "node_modules/@zip.js/zip.js": { - "version": "2.8.26", - "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.8.26.tgz", - "integrity": "sha512-RQ4h9F6DOiHxpdocUDrOl6xBM+yOtz+LkUol47AVWcfebGBDpZ7w7Xvz9PS24JgXvLGiXXzSAfdCdVy1tPlaFA==", + "version": "2.8.57", + "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.8.57.tgz", + "integrity": "sha512-cd5a0s7CS0MOD52f7FW4ju84wc/+b+YNu5XIG72PfXRLk6rInEdvIrB/BjR8D8hS4fMKuYJOBjv6FoLh3e7DHw==", "license": "BSD-3-Clause", "engines": { "bun": ">=0.7.0", @@ -5662,12 +5547,12 @@ "license": "MIT" }, "node_modules/attr-accept": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.5.tgz", - "integrity": "sha512-0bDNnY/u6pPwHDMoF0FieU354oBi0a8rD9FcsLwzcGWbc8KS8KPIi7y+s13OlVY+gMWc/9xEMUgNE6Qm8ZllYQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-4.0.0.tgz", + "integrity": "sha512-hmCnJClmeKNKlsBHgbM8yLZRiQZ4/20UXbLJb6OUT16eWcM5/xNZerr80a/zCYob768KIGq++aLrQNTuwPsIOQ==", "license": "MIT", "engines": { - "node": ">=4" + "node": ">= 22" } }, "node_modules/available-typed-arrays": { @@ -5863,16 +5748,15 @@ } }, "node_modules/baselines": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/baselines/-/baselines-1.1.10.tgz", - "integrity": "sha512-0vnNogyITQFjWVd6QXgtcJ0t+WLc9Yan+///PTjSfp4yfMxjwUG8IO7+yfvI++yIXVvoq3u6fEE1H3tV6WqAcw==", + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/baselines/-/baselines-1.1.11.tgz", + "integrity": "sha512-QQXHyIIw5K31XQ2X5x4AUfm3WsOy0OliuXkh2r8BC663OvK09dGpiLspUgww51gcZdH0QgzRiqRozyHPInojAg==", "license": "MIT", "dependencies": { - "ml-airpls": "^2.1.1", - "ml-array-sequential-fill": "^2.0.0", - "ml-baseline-correction-regression": "^2.0.1", - "ml-rolling-ball-baseline": "^2.0.3", - "ml-spectra-processing": "^14.28.1" + "ml-airpls": "^2.2.0", + "ml-baseline-correction-regression": "^2.0.2", + "ml-rolling-ball-baseline": "^3.0.0", + "ml-spectra-processing": "^14.29.2" } }, "node_modules/binary-search": { @@ -5950,9 +5834,9 @@ } }, "node_modules/brace-expansion": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.15.tgz", - "integrity": "sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==", + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz", + "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==", "dev": true, "license": "MIT", "dependencies": { @@ -6012,9 +5896,9 @@ "license": "MIT" }, "node_modules/builtin-modules": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-5.2.0.tgz", - "integrity": "sha512-02yxLeyxF4dNl6SlY6/5HfRSrSdZ/sCPoxy2kZNP5dZZX8LSAD9aE2gtJIUgWrsQTiMPl3mxESyrobSwvRGisQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-5.3.0.tgz", + "integrity": "sha512-hMQUl2bUFG339QygPM97E+mc8OY1IAchORZxm4a/frcYwKzozMzRVDBwHW0NjOqGElLm2O37AVQE8ikxlZHrMQ==", "dev": true, "license": "MIT", "engines": { @@ -6209,9 +6093,9 @@ } }, "node_modules/chemical-elements": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chemical-elements/-/chemical-elements-2.3.1.tgz", - "integrity": "sha512-hmutq/3yUAmyBjmHKvkobON5MJt6QmdBppiAHRhWNQ3NA6j2sHhVNBh/R1rND6TAzn8XobgVYQLu5cDUUsLgqQ==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chemical-elements/-/chemical-elements-2.3.2.tgz", + "integrity": "sha512-3q1h/yFUqTFitGAEShu5AcC9KWHZqtFDuiqxgnViVx77zIvrVJH1jSNHPzQGSsCkCe+czVcFdF/E9XyexOIuaw==", "license": "MIT" }, "node_modules/chemical-groups": { @@ -6221,9 +6105,9 @@ "license": "MIT" }, "node_modules/cheminfo-font": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/cheminfo-font/-/cheminfo-font-1.27.0.tgz", - "integrity": "sha512-NcxL5m44Lqto6U9AaWO41wfz5qRlMY/qq8jqVQU7VLscQ1InDyAcseMCck7XTUjgspHyd5yiOCl0KMxEEJhLMg==", + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/cheminfo-font/-/cheminfo-font-1.28.0.tgz", + "integrity": "sha512-WeK2NOWdtVjVVx9kiRUWvt38+z+CIPX+0lslNCHrL/8zQEzKiFqMIzbDAFb5AmRG8wqi5lNEGBh7S2WL8k/xOQ==", "license": "CC-BY-4.0" }, "node_modules/cheminfo-types": { @@ -6556,17 +6440,15 @@ "license": "MIT" }, "node_modules/convert-to-jcamp": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/convert-to-jcamp/-/convert-to-jcamp-7.0.0.tgz", - "integrity": "sha512-l4H6pn/8z+DmLxKXc5q25GpxFgLeJu+k/7hcqEjdyEhFneGtS0BAN9ndAb6qp8qhku3wEFWnbDj5KuHUdoxiZg==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/convert-to-jcamp/-/convert-to-jcamp-7.0.1.tgz", + "integrity": "sha512-UmGfwNBC814cdYHv1FXFTBwkK3BSbQ5+UO2wG7KSpz9kZoX3ybtzY4H7TDb/ZETB2z111caS56eIvCTXOG689Q==", "license": "MIT", "dependencies": { "cheminfo-types": "^1.15.0", "is-any-array": "^3.0.0", - "ml-array-max": "^2.0.0", - "ml-array-min": "^2.0.0", - "ml-matrix": "^6.12.2", - "ml-spectra-processing": "^14.28.1" + "ml-matrix": "^6.13.0", + "ml-spectra-processing": "^14.29.2" } }, "node_modules/cookie": { @@ -6597,12 +6479,6 @@ "url": "https://opencollective.com/core-js" } }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "license": "MIT" - }, "node_modules/cosmiconfig": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", @@ -7310,9 +7186,9 @@ } }, "node_modules/es-iterator-helpers": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.3.3.tgz", - "integrity": "sha512-0PuBxFi+4uPanB97iDxCLWuHeYud2FALrw5HFZGtAF38UpJDbDC8frwp2cnDyae692CQ0dou60UwWfhgsa4U/g==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.4.0.tgz", + "integrity": "sha512-c/A0P0oxkACDc+cKWw8evLXK83oBKgn0qPOqCYT4x9uolpCIJAcYvJC9QYKNDRPsTeGyCrQ326jrvgZWdCdK5Q==", "dev": true, "license": "MIT", "dependencies": { @@ -7422,9 +7298,10 @@ } }, "node_modules/eslint": { - "version": "9.39.4", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.4.tgz", - "integrity": "sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==", + "version": "9.39.5", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.5.tgz", + "integrity": "sha512-DgZS62aPLXKlnxILS/AYCoRvHaZeXceIzlXPkkGGzJWSow1aEk0lbTlxUSlyjC8jcaKxAdOnTDz+o1JFSBsyjw==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, "license": "MIT", "dependencies": { @@ -7433,8 +7310,8 @@ "@eslint/config-array": "^0.21.2", "@eslint/config-helpers": "^0.4.2", "@eslint/core": "^0.17.0", - "@eslint/eslintrc": "^3.3.5", - "@eslint/js": "9.39.4", + "@eslint/eslintrc": "^3.3.6", + "@eslint/js": "9.39.5", "@eslint/plugin-kit": "^0.4.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", @@ -7481,7 +7358,35 @@ } } }, - "node_modules/eslint-config-cheminfo": { + "node_modules/eslint-config-cheminfo-react": { + "version": "20.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-cheminfo-react/-/eslint-config-cheminfo-react-20.1.0.tgz", + "integrity": "sha512-v+SGbfRA44z4V2m4hgh2xti2oYSJ5W5QNHtQ2nVhfBEFb4rGCzxqIkNCsjm3VH6PZtRGGbGQbRaUdkdqdF/bDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-config-cheminfo": "^18.0.0", + "eslint-plugin-react": "^7.37.5", + "eslint-plugin-react-hooks": "^7.1.1", + "eslint-plugin-react-refresh": "^0.5.2", + "eslint-plugin-react-you-might-not-need-an-effect": "^1.0.0", + "globals": "^17.6.0" + }, + "peerDependencies": { + "eslint": "^9.39.1" + } + }, + "node_modules/eslint-config-cheminfo-react/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-config-cheminfo-react/node_modules/eslint-config-cheminfo": { "version": "18.1.0", "resolved": "https://registry.npmjs.org/eslint-config-cheminfo/-/eslint-config-cheminfo-18.1.0.tgz", "integrity": "sha512-NtRJQkwbHRmQLMV5JKOxXQvvHxJpni4FHPBkfMbBXPmgEo0r0dnIs2Kgw2vKfe1YwCM3ygXDxU/sq2e+STWZRA==", @@ -7498,35 +7403,95 @@ "eslint": "^9.39.1" } }, - "node_modules/eslint-config-cheminfo-react": { - "version": "20.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-cheminfo-react/-/eslint-config-cheminfo-react-20.1.0.tgz", - "integrity": "sha512-v+SGbfRA44z4V2m4hgh2xti2oYSJ5W5QNHtQ2nVhfBEFb4rGCzxqIkNCsjm3VH6PZtRGGbGQbRaUdkdqdF/bDw==", + "node_modules/eslint-config-cheminfo-react/node_modules/eslint-config-cheminfo/node_modules/eslint-plugin-import": { + "version": "2.32.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", + "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", "dev": true, "license": "MIT", "dependencies": { - "eslint-config-cheminfo": "^18.0.0", - "eslint-plugin-react": "^7.37.5", - "eslint-plugin-react-hooks": "^7.1.1", - "eslint-plugin-react-refresh": "^0.5.2", - "eslint-plugin-react-you-might-not-need-an-effect": "^1.0.0", - "globals": "^17.6.0" + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.9", + "array.prototype.findlastindex": "^1.2.6", + "array.prototype.flat": "^1.3.3", + "array.prototype.flatmap": "^1.3.3", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.1", + "hasown": "^2.0.2", + "is-core-module": "^2.16.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.1", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.9", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" }, "peerDependencies": { - "eslint": "^9.39.1" + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" } }, - "node_modules/eslint-config-cheminfo-react/node_modules/globals": { - "version": "17.6.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-17.6.0.tgz", - "integrity": "sha512-sepffkT8stwnIYbsMBpoCHJuJM5l98FUF2AnE07hfvE0m/qp3R586hw4jF4uadbhvg1ooIdzuu7CsfD2jzCaNA==", + "node_modules/eslint-config-cheminfo-react/node_modules/eslint-plugin-react": { + "version": "7.37.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", + "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", "dev": true, "license": "MIT", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.3", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.2.1", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.9", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.1", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.12", + "string.prototype.repeat": "^1.0.0" + }, "engines": { - "node": ">=18" + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-config-cheminfo-react/node_modules/resolve": { + "version": "2.0.0-next.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.7.tgz", + "integrity": "sha512-tqt+NBWwyaMgw3zDsnygx4CByWjQEJHOPMdslYhppaQSJUtL/D4JO9CcBBlhPoI8lz9oJIDXkwXfhF4aWqP8xQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.2", + "node-exports-info": "^1.6.0", + "object-keys": "^1.1.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/eslint-config-cheminfo-typescript": { @@ -7544,17 +7509,178 @@ "typescript": ">=5.7.3" } }, - "node_modules/eslint-config-cheminfo/node_modules/globals": { - "version": "17.6.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-17.6.0.tgz", - "integrity": "sha512-sepffkT8stwnIYbsMBpoCHJuJM5l98FUF2AnE07hfvE0m/qp3R586hw4jF4uadbhvg1ooIdzuu7CsfD2jzCaNA==", + "node_modules/eslint-config-cheminfo-typescript/node_modules/eslint-config-cheminfo": { + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-cheminfo/-/eslint-config-cheminfo-18.1.0.tgz", + "integrity": "sha512-NtRJQkwbHRmQLMV5JKOxXQvvHxJpni4FHPBkfMbBXPmgEo0r0dnIs2Kgw2vKfe1YwCM3ygXDxU/sq2e+STWZRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/eslint-plugin": "^1.6.20", + "eslint-plugin-import": "^2.32.0", + "eslint-plugin-jsdoc": "^63.0.2", + "eslint-plugin-unicorn": "^65.0.1", + "globals": "^17.6.0" + }, + "peerDependencies": { + "eslint": "^9.39.1" + } + }, + "node_modules/eslint-config-cheminfo-typescript/node_modules/eslint-config-cheminfo/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-config-cheminfo-typescript/node_modules/eslint-config-cheminfo/node_modules/eslint-plugin-import": { + "version": "2.32.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", + "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", "dev": true, "license": "MIT", + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.9", + "array.prototype.findlastindex": "^1.2.6", + "array.prototype.flat": "^1.3.3", + "array.prototype.flatmap": "^1.3.3", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.1", + "hasown": "^2.0.2", + "is-core-module": "^2.16.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.1", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.9", + "tsconfig-paths": "^3.15.0" + }, "engines": { - "node": ">=18" + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "node_modules/eslint-config-cheminfo-typescript/node_modules/ignore": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.6.tgz", + "integrity": "sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/eslint-config-cheminfo-typescript/node_modules/typescript-eslint": { + "version": "8.67.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.67.0.tgz", + "integrity": "sha512-S2udFs8tCKEKffuJ4TB1idGUZiXdCPGi3IPBGWXarbLQ5UPXORV8QEVzJ4gCRduURMb5EkpNCdjbk0eDIuI8Yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.67.0", + "@typescript-eslint/parser": "8.67.0", + "@typescript-eslint/typescript-estree": "8.67.0", + "@typescript-eslint/utils": "8.67.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/eslint-config-cheminfo-typescript/node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.67.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.67.0.tgz", + "integrity": "sha512-Un7Heoyj65NREbKAyIrFxeM143NZpExWmy1Nep4DLeQOeLlTeumPjoNKnBrU5D5moWXbPJgRa5Uwcdu0faVNGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.12.2", + "@typescript-eslint/scope-manager": "8.67.0", + "@typescript-eslint/type-utils": "8.67.0", + "@typescript-eslint/utils": "8.67.0", + "@typescript-eslint/visitor-keys": "8.67.0", + "ignore": "^7.0.5", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.5.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.67.0", + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/eslint-config-cheminfo-typescript/node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils": { + "version": "8.67.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.67.0.tgz", + "integrity": "sha512-aVWDXbRmdXO9siTfX4ditQI1T9+zVcNazT48EJCD0v40/9RIFoUgZ05CmGEq9H2gixRpjUn/iplwvlcvutJW/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.67.0", + "@typescript-eslint/typescript-estree": "8.67.0", + "@typescript-eslint/utils": "8.67.0", + "debug": "^4.4.3", + "ts-api-utils": "^2.5.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/eslint-config-cheminfo-typescript/node_modules/typescript-eslint/node_modules/@typescript-eslint/parser": { + "version": "8.67.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.67.0.tgz", + "integrity": "sha512-fUBfTuuEulWqX6V8+O3PtScV01tzYYRUDTAirHFKoRAt7nOzoGiPt0M/bB47wWNy0coOOcgEwAMUtBpykMxl6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.67.0", + "@typescript-eslint/types": "8.67.0", + "@typescript-eslint/typescript-estree": "8.67.0", + "@typescript-eslint/visitor-keys": "8.67.0", + "debug": "^4.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/eslint-import-resolver-node": { @@ -7604,68 +7730,24 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.13.0.tgz", - "integrity": "sha512-bLohSkT6469rRs8czj0tLTD8vaeIS/whvPRJVjDr7IuoTT1k5DYDERlNycjDj/HkOlvQdYurmfZ/g3fG5bgeLQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^3.2.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.32.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", - "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.14.0.tgz", + "integrity": "sha512-W2WCRZ9Dqntd+2u8jJcVMV2PKulc6RdLgUUoh/yQr3uB6lo/ZOeGx11sv60/8S4QFFKNslAlWhr9u0Ef7ZW6Ig==", "dev": true, "license": "MIT", "dependencies": { - "@rtsao/scc": "^1.1.0", - "array-includes": "^3.1.9", - "array.prototype.findlastindex": "^1.2.6", - "array.prototype.flat": "^1.3.3", - "array.prototype.flatmap": "^1.3.3", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.12.1", - "hasown": "^2.0.2", - "is-core-module": "^2.16.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.8", - "object.groupby": "^1.0.3", - "object.values": "^1.2.1", - "semver": "^6.3.1", - "string.prototype.trimend": "^1.0.9", - "tsconfig-paths": "^3.15.0" + "debug": "^3.2.7" }, "engines": { "node": ">=4" }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, - "node_modules/eslint-plugin-import/node_modules/debug": { + "node_modules/eslint-module-utils/node_modules/debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", @@ -7676,13 +7758,13 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "63.0.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-63.0.5.tgz", - "integrity": "sha512-AzI9bgKhV9li049/mIblX0c41DeWMMfH9qNsRasc+fAxwURRKChIp03Pk57M7UTf+Y6hifTJ89kQyCOoOLtEDw==", + "version": "63.3.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-63.3.3.tgz", + "integrity": "sha512-xI4IeVRzRFA2DGHrPLIxF3U+oJHU3FE+P9Zb27fVs5dPHgfcpoAs0PyCbznVhK7pwR+9BPUztFeXSgpw/CL4Yg==", "dev": true, "license": "BSD-3-Clause", "dependencies": { - "@es-joy/jsdoccomment": "~0.87.0", + "@es-joy/jsdoccomment": "~0.91.0", "@es-joy/resolve.exports": "1.2.0", "are-docs-informative": "^0.0.2", "comment-parser": "1.4.7", @@ -7693,8 +7775,8 @@ "html-entities": "^2.6.0", "object-deep-merge": "^2.0.1", "parse-imports-exports": "^0.2.4", - "semver": "^7.8.2", - "spdx-expression-parse": "^4.0.0", + "semver": "^7.8.5", + "spdx-expression-parse": "^5.0.0", "to-valid-identifier": "^1.0.0" }, "engines": { @@ -7704,41 +7786,10 @@ "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0" } }, - "node_modules/eslint-plugin-jsdoc/node_modules/eslint-visitor-keys": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", - "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-plugin-jsdoc/node_modules/espree": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-11.2.0.tgz", - "integrity": "sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.16.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^5.0.1" - }, - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/eslint-plugin-jsdoc/node_modules/semver": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.4.tgz", - "integrity": "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==", + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", "dev": true, "license": "ISC", "bin": { @@ -7748,39 +7799,6 @@ "node": ">=10" } }, - "node_modules/eslint-plugin-react": { - "version": "7.37.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", - "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-includes": "^3.1.8", - "array.prototype.findlast": "^1.2.5", - "array.prototype.flatmap": "^1.3.3", - "array.prototype.tosorted": "^1.1.4", - "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.2.1", - "estraverse": "^5.3.0", - "hasown": "^2.0.2", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.9", - "object.fromentries": "^2.0.8", - "object.values": "^1.2.1", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.5", - "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.12", - "string.prototype.repeat": "^1.0.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" - } - }, "node_modules/eslint-plugin-react-hooks": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.1.1.tgz", @@ -7843,30 +7861,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.7.tgz", - "integrity": "sha512-tqt+NBWwyaMgw3zDsnygx4CByWjQEJHOPMdslYhppaQSJUtL/D4JO9CcBBlhPoI8lz9oJIDXkwXfhF4aWqP8xQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "is-core-module": "^2.16.2", - "node-exports-info": "^1.6.0", - "object-keys": "^1.1.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/eslint-plugin-unicorn": { "version": "65.0.1", "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-65.0.1.tgz", @@ -7907,23 +7901,10 @@ "dev": true, "license": "MIT" }, - "node_modules/eslint-plugin-unicorn/node_modules/globals": { - "version": "17.6.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-17.6.0.tgz", - "integrity": "sha512-sepffkT8stwnIYbsMBpoCHJuJM5l98FUF2AnE07hfvE0m/qp3R586hw4jF4uadbhvg1ooIdzuu7CsfD2jzCaNA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/eslint-plugin-unicorn/node_modules/semver": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.4.tgz", - "integrity": "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==", + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", "dev": true, "license": "ISC", "bin": { @@ -7951,6 +7932,19 @@ } }, "node_modules/eslint-visitor-keys": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", @@ -7963,7 +7957,7 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/espree": { + "node_modules/eslint/node_modules/espree": { "version": "10.4.0", "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", @@ -7981,6 +7975,24 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/espree": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-11.2.0.tgz", + "integrity": "sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.16.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^5.0.1" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -8130,7 +8142,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/fast-json-stable-stringify": { @@ -8148,10 +8160,10 @@ "license": "MIT" }, "node_modules/fast-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.2.tgz", - "integrity": "sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==", - "dev": true, + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.6.tgz", + "integrity": "sha512-7Ical1vFEMr0onbVzEDIreM22I4khW+fzyQPwvAFWBp1iwdshSZRsL4jjRvPG9JP1uiqMHRto+YU6R2/CzDz5Q==", + "devOptional": true, "funding": [ { "type": "github", @@ -8207,12 +8219,12 @@ } }, "node_modules/file-collection": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/file-collection/-/file-collection-6.6.1.tgz", - "integrity": "sha512-YJtg82Xo3pqhfXdM3tT7+vYAYj2GgC+J4jQvhYT2GDk3UsochfrHr7BxGEiQQmjIPu05ogQx9ZJ1VclhNViPJQ==", + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/file-collection/-/file-collection-6.7.0.tgz", + "integrity": "sha512-IQEIgbRZIJgU91DVQXMjq6zSK0lcwsG/p1Sx0HqfvdsSrCnjtvcME9xsNB5qzNVZH8TyJ9sYJDt1QvIWoVvnNQ==", "license": "MIT", "dependencies": { - "@zip.js/zip.js": "^2.8.15", + "@zip.js/zip.js": "^2.8.23", "cheminfo-types": "^1.10.0" } }, @@ -8236,23 +8248,14 @@ "license": "MIT" }, "node_modules/file-selector": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/file-selector/-/file-selector-2.1.2.tgz", - "integrity": "sha512-QgXo+mXTe8ljeqUFaX3QVHc5osSItJ/Km+xpocx0aSqWGMSCf6qYs/VnzZgS864Pjn5iceMRFigeAV7AfTlaig==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-selector/-/file-selector-5.0.1.tgz", + "integrity": "sha512-v0g/PTeuQgvKCBrVRsfVudvwXlRHSWHEQkVgKawgCGHkEpKA1clp3Om5jvEVhz8G9W/mOYjJH9FhkH4C888PgQ==", "license": "MIT", - "dependencies": { - "tslib": "^2.7.0" - }, "engines": { - "node": ">= 12" + "node": ">= 22" } }, - "node_modules/file-selector/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, "node_modules/filelist": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.6.tgz", @@ -8263,22 +8266,10 @@ "minimatch": "^5.0.1" } }, - "node_modules/filelist-utils": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/filelist-utils/-/filelist-utils-1.11.3.tgz", - "integrity": "sha512-KB3d9ruIVHSz53SL1FscfP+QXv1lkPDYE48JoKJ49N1b0AqI6Ux1LLG7ipVCuTlMpBMVW/I1sKEhdvBB4wgsiA==", - "deprecated": "Please use file-collection instead", - "license": "MIT", - "dependencies": { - "cheminfo-types": "^1.7.3", - "jszip": "^3.10.1", - "pako": "^2.1.0" - } - }, "node_modules/filelist/node_modules/brace-expansion": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.1.tgz", - "integrity": "sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.4.tgz", + "integrity": "sha512-hGfVzPxthbf3+2yjg/RBs60cB0FhqBS/zvdV/4wn4/BmN0bNMMHPc4V/BbFieqf1TKAGGAHnY4eSjajCl0f2Xg==", "dev": true, "license": "MIT", "dependencies": { @@ -8642,9 +8633,9 @@ } }, "node_modules/glob/node_modules/brace-expansion": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.1.tgz", - "integrity": "sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.4.tgz", + "integrity": "sha512-hGfVzPxthbf3+2yjg/RBs60cB0FhqBS/zvdV/4wn4/BmN0bNMMHPc4V/BbFieqf1TKAGGAHnY4eSjajCl0f2Xg==", "dev": true, "license": "MIT", "dependencies": { @@ -8668,9 +8659,9 @@ } }, "node_modules/globals": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "version": "17.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-17.11.0.tgz", + "integrity": "sha512-Z2I8hM+PbJDXQDq3Icgpzv+mPdwr68iZUU9d5WW4FuXfDUQfkZaZuvjMv42/5crNyw154+9+VWXbYrUgDXbxNw==", "dev": true, "license": "MIT", "engines": { @@ -8909,16 +8900,10 @@ "node": ">= 4" } }, - "node_modules/immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", - "license": "MIT" - }, "node_modules/immer": { - "version": "11.1.8", - "resolved": "https://registry.npmjs.org/immer/-/immer-11.1.8.tgz", - "integrity": "sha512-/tbkHMW7y10Lx6i1crLjD4/OhNkRG+Fo7byZHtah0547nIeXYcpIXaUh0IAQY6gO5459qpGGYapcEOHtFXkIuA==", + "version": "11.1.18", + "resolved": "https://registry.npmjs.org/immer/-/immer-11.1.18.tgz", + "integrity": "sha512-EQyQtLiYW029lyoczMl/Hh4Xu7cDecSc58JRYpHyL4tIAu3eqd1yJzQX04d2BZHDkzFFvm6qJEJWOtfDSWAXbQ==", "license": "MIT", "funding": { "type": "opencollective", @@ -9000,6 +8985,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, "license": "ISC" }, "node_modules/ini": { @@ -9560,12 +9546,6 @@ "node": ">=8" } }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "license": "MIT" - }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -9710,9 +9690,9 @@ } }, "node_modules/jcampconverter": { - "version": "12.3.3", - "resolved": "https://registry.npmjs.org/jcampconverter/-/jcampconverter-12.3.3.tgz", - "integrity": "sha512-Ayu6hbf5AM1eahyMp0EmnuDQnG2KRKYODq1SE6ITwcv3no2YCvbeQOvoRqdxwhV3t11PtESr57jvWvfttagvdw==", + "version": "12.5.5", + "resolved": "https://registry.npmjs.org/jcampconverter/-/jcampconverter-12.5.5.tgz", + "integrity": "sha512-D5s2gsklqBv6IASEjp1gze7d0gG1BsRcNDm7ZC8esMfv1iVVVoVuehkp0Kg3SRJ09k3N9r1RSTUe1KQeYlxQ2g==", "license": "CC-BY-NC-SA-4.0", "dependencies": { "cheminfo-types": "^1.15.0", @@ -9720,7 +9700,7 @@ "ensure-string": "^2.0.0", "gyromagnetic-ratio": "^2.0.0", "ml-array-median": "^2.0.0", - "openchemlib": "^9.22.0" + "openchemlib": "^9.24.0" } }, "node_modules/jest": { @@ -10323,9 +10303,9 @@ "license": "MIT" }, "node_modules/js-yaml": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.2.0.tgz", - "integrity": "sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.1.tgz", + "integrity": "sha512-CY6crGq313MX8GkwvB7tzgp99vjQxY1++5y10/BKN/GUfHqWaOGQMNZkBvqSzsZKWk/ijwHlWzzkLulsGHhjWQ==", "dev": true, "funding": [ { @@ -10346,9 +10326,9 @@ } }, "node_modules/jsdoc-type-pratt-parser": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-7.2.0.tgz", - "integrity": "sha512-dh140MMgjyg3JhJZY/+iEzW+NO5xR2gpbDFKHqotCmexElVntw7GjWjt511+C/Ef02RU5TKYrJo/Xlzk+OLaTw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-8.0.0.tgz", + "integrity": "sha512-uQu/fXVqVaMg6gM8/E5G5+eygVcZ1NV0Z51CvqhNa2bDWxvHMl484ETr6vph4oPyC+KUcbP/w2W2pewfCiR9aQ==", "dev": true, "license": "MIT", "engines": { @@ -10446,24 +10426,6 @@ "node": ">=4.0" } }, - "node_modules/jszip": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", - "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", - "license": "(MIT OR GPL-3.0-or-later)", - "dependencies": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "setimmediate": "^1.0.5" - } - }, - "node_modules/jszip/node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "license": "(MIT AND Zlib)" - }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -10498,19 +10460,10 @@ "node": ">= 0.8.0" } }, - "node_modules/lie": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "license": "MIT", - "dependencies": { - "immediate": "~3.0.5" - } - }, "node_modules/lightningcss": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", - "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.33.0.tgz", + "integrity": "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==", "license": "MPL-2.0", "dependencies": { "detect-libc": "^2.0.3" @@ -10523,23 +10476,23 @@ "url": "https://opencollective.com/parcel" }, "optionalDependencies": { - "lightningcss-android-arm64": "1.32.0", - "lightningcss-darwin-arm64": "1.32.0", - "lightningcss-darwin-x64": "1.32.0", - "lightningcss-freebsd-x64": "1.32.0", - "lightningcss-linux-arm-gnueabihf": "1.32.0", - "lightningcss-linux-arm64-gnu": "1.32.0", - "lightningcss-linux-arm64-musl": "1.32.0", - "lightningcss-linux-x64-gnu": "1.32.0", - "lightningcss-linux-x64-musl": "1.32.0", - "lightningcss-win32-arm64-msvc": "1.32.0", - "lightningcss-win32-x64-msvc": "1.32.0" + "lightningcss-android-arm64": "1.33.0", + "lightningcss-darwin-arm64": "1.33.0", + "lightningcss-darwin-x64": "1.33.0", + "lightningcss-freebsd-x64": "1.33.0", + "lightningcss-linux-arm-gnueabihf": "1.33.0", + "lightningcss-linux-arm64-gnu": "1.33.0", + "lightningcss-linux-arm64-musl": "1.33.0", + "lightningcss-linux-x64-gnu": "1.33.0", + "lightningcss-linux-x64-musl": "1.33.0", + "lightningcss-win32-arm64-msvc": "1.33.0", + "lightningcss-win32-x64-msvc": "1.33.0" } }, "node_modules/lightningcss-android-arm64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", - "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.33.0.tgz", + "integrity": "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==", "cpu": [ "arm64" ], @@ -10557,9 +10510,9 @@ } }, "node_modules/lightningcss-darwin-arm64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", - "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.33.0.tgz", + "integrity": "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==", "cpu": [ "arm64" ], @@ -10577,9 +10530,9 @@ } }, "node_modules/lightningcss-darwin-x64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", - "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.33.0.tgz", + "integrity": "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==", "cpu": [ "x64" ], @@ -10597,9 +10550,9 @@ } }, "node_modules/lightningcss-freebsd-x64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", - "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.33.0.tgz", + "integrity": "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==", "cpu": [ "x64" ], @@ -10617,9 +10570,9 @@ } }, "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", - "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.33.0.tgz", + "integrity": "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==", "cpu": [ "arm" ], @@ -10637,9 +10590,9 @@ } }, "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", - "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.33.0.tgz", + "integrity": "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==", "cpu": [ "arm64" ], @@ -10660,9 +10613,9 @@ } }, "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", - "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.33.0.tgz", + "integrity": "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==", "cpu": [ "arm64" ], @@ -10683,9 +10636,9 @@ } }, "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", - "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.33.0.tgz", + "integrity": "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==", "cpu": [ "x64" ], @@ -10706,9 +10659,9 @@ } }, "node_modules/lightningcss-linux-x64-musl": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", - "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.33.0.tgz", + "integrity": "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==", "cpu": [ "x64" ], @@ -10729,9 +10682,9 @@ } }, "node_modules/lightningcss-win32-arm64-msvc": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", - "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.33.0.tgz", + "integrity": "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==", "cpu": [ "arm64" ], @@ -10749,9 +10702,9 @@ } }, "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", - "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.33.0.tgz", + "integrity": "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==", "cpu": [ "x64" ], @@ -10811,7 +10764,6 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true, "license": "MIT" }, "node_modules/lodash.escaperegexp": { @@ -10937,13 +10889,13 @@ "license": "MIT" }, "node_modules/mf-parser": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/mf-parser/-/mf-parser-3.9.1.tgz", - "integrity": "sha512-hg2IFEYmxPvtOuxRdAG3q/tqmxK0qC1LX5CGS9P4EfCViHCs7Ys8I3wgUIcvMp4WGkZ8Wz3kjDfinislGzrSTw==", + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/mf-parser/-/mf-parser-3.9.2.tgz", + "integrity": "sha512-b/ZweyvktEly+zg3DMI/9UmwX3RriuwNh6kB0xd+NgI0wzDgl3fqyZGa4E8Gbp149N0jAXfT70FQgqGb53GvBg==", "license": "MIT", "dependencies": { "atom-sorter": "^2.2.1", - "chemical-elements": "^2.3.1", + "chemical-elements": "^2.3.2", "chemical-groups": "^2.2.3" } }, @@ -11082,15 +11034,6 @@ "ml-array-min": "^2.0.0" } }, - "node_modules/ml-array-sequential-fill": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ml-array-sequential-fill/-/ml-array-sequential-fill-2.0.0.tgz", - "integrity": "sha512-T5bYm+rY4UNojxcpK58C7GIUovB7lT8CBSmmVXH/PGVeR2lNdP1EcL5Bo6h8bsCWXPTHmrrMqLfPv9DnrzurmQ==", - "license": "MIT", - "dependencies": { - "is-any-array": "^3.0.0" - } - }, "node_modules/ml-array-sum": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ml-array-sum/-/ml-array-sum-2.0.0.tgz", @@ -11172,25 +11115,16 @@ } }, "node_modules/ml-gsd": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/ml-gsd/-/ml-gsd-14.1.0.tgz", - "integrity": "sha512-63kVpc2TceWTatbzZJHHTuR8wV1p9B9uWDHzOHqhfza2icfgz5rsONib5xWdUeN+9PCq4eosjky/aYRxjt8yow==", + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/ml-gsd/-/ml-gsd-14.2.2.tgz", + "integrity": "sha512-StCT452wMNVXgRrDFO+YqdNRotn1JE0Ee6r3FUL2fw8AFBPOQKz+iB+gRLccTVukWyEtooon0/JY4XoS6pCHnA==", "license": "MIT", "dependencies": { "cheminfo-types": "^1.15.0", - "ml-peak-shape-generator": "^5.1.0", + "ml-peak-shape-generator": "^5.5.0", "ml-savitzky-golay-generalized": "^5.0.0", - "ml-spectra-fitting": "^6.1.0", - "ml-spectra-processing": "^14.28.1" - } - }, - "node_modules/ml-gsd/node_modules/ml-peak-shape-generator": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ml-peak-shape-generator/-/ml-peak-shape-generator-5.1.0.tgz", - "integrity": "sha512-W2Vx/+R65zyr/B13p5TLyqwjTgIzwR0xtjRyQ2ZSxDHdVaXxb6m+ajyyaHJqGG5mYzeqi97nGvpklhz0jrsbrg==", - "license": "MIT", - "dependencies": { - "cheminfo-types": "^1.15.0" + "ml-spectra-fitting": "^6.2.2", + "ml-spectra-processing": "^14.29.0" } }, "node_modules/ml-hash-table": { @@ -11216,19 +11150,19 @@ } }, "node_modules/ml-levenberg-marquardt": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ml-levenberg-marquardt/-/ml-levenberg-marquardt-5.0.1.tgz", - "integrity": "sha512-sOaxcZ2aIBiRrPi3v7RmqSuNmjNKHURUB9Ft2Vcr8MWes152VF1DDkcZz3N8Nj/cWbFB359cNg/o7Z99vt58Iw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ml-levenberg-marquardt/-/ml-levenberg-marquardt-5.1.0.tgz", + "integrity": "sha512-yBYlUQV8+zCmz3CT7Qzt4o2o+UvOx9oxaG/HTgrMjcZRjRxVIAHm8mZM3L0GS2hLMUJpzSLilZdLb4Z5WkgdJw==", "license": "MIT", "dependencies": { "is-any-array": "^3.0.0", - "ml-matrix": "^6.12.2" + "ml-matrix": "^6.14.0" } }, "node_modules/ml-matrix": { - "version": "6.12.2", - "resolved": "https://registry.npmjs.org/ml-matrix/-/ml-matrix-6.12.2.tgz", - "integrity": "sha512-GC+BnW+pBh8Auap8goAxY0senAmF0IEoc3HNVSfnfbvGw0buuDIYb9kAKMS1l+GiwJ1rfK2bzJ8IHhwjzATSFA==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ml-matrix/-/ml-matrix-6.15.0.tgz", + "integrity": "sha512-wFa1v6KP8bKp+fj0nYmRs1Pb5K4zRkXGKsOvLinvILENFIADncm4XlOI+S1M7yuACMGfI6cfk0IifDgd4j5xmw==", "license": "MIT", "dependencies": { "is-any-array": "^3.0.0", @@ -11236,31 +11170,31 @@ } }, "node_modules/ml-matrix-convolution": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ml-matrix-convolution/-/ml-matrix-convolution-1.0.0.tgz", - "integrity": "sha512-+gS36VTRjBMtUDXlKlAgSs+pZLfOEY0JF/64QRRNq+6KIPCfPlzVO3P41iSEjp1NPwofhLcIJBgKIZyH6ylSVA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ml-matrix-convolution/-/ml-matrix-convolution-2.0.0.tgz", + "integrity": "sha512-XuEZf4ZTffAz7oDMG4olkh9aZmsIMr343gPTY+ZvnLWTlMiG+TegRbP4fpA1ju7/IK9q8u3TcC2cxf/N3ydtRA==", "license": "MIT", "dependencies": { - "ml-fft": "1.3.5" + "ml-fft": "^1.3.5" } }, "node_modules/ml-matrix-peaks-finder": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ml-matrix-peaks-finder/-/ml-matrix-peaks-finder-1.0.0.tgz", - "integrity": "sha512-a3SZrvADI6kAbOvICnnNbacC+UB6xPRbgbKxGhFeISUCoe4M3g3RMp9UaUFNFA/rRjWNtW+rGioeOH8UNPZT/Q==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ml-matrix-peaks-finder/-/ml-matrix-peaks-finder-2.0.1.tgz", + "integrity": "sha512-PSMwStdTMtnLAhnKlFuKU0PCeQhSZxyNuKPx/t9qQ2N/00+ZkQRoY/+pGlJSG3V7BG5Rz8xz90tyYDno7FDlhw==", "license": "MIT", "dependencies": { "ml-disjoint-set": "^1.0.0", - "ml-matrix-convolution": "^1.0.0" + "ml-matrix-convolution": "^2.0.0" } }, "node_modules/ml-peak-shape-generator": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/ml-peak-shape-generator/-/ml-peak-shape-generator-4.2.0.tgz", - "integrity": "sha512-BDtR0rhUor5/4J9pJOEMRnD+QQ5v6ohx+o6MfRRg2e2IOTeZfp/uJcy5Y852v5CsNec1GmYMkd5PYrY0245qlQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/ml-peak-shape-generator/-/ml-peak-shape-generator-5.5.0.tgz", + "integrity": "sha512-DyBq/u5S+/0F49Hm0OWHwWvPPM1aaCZIs/eI7/fUTWfIm86Yu03YXWMQ3874eq33MLZVgM8KguGkfeGDffCLog==", "license": "MIT", "dependencies": { - "cheminfo-types": "^1.1.0" + "cheminfo-types": "^1.15.0" } }, "node_modules/ml-regression-base": { @@ -11304,9 +11238,9 @@ } }, "node_modules/ml-rolling-ball-baseline": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/ml-rolling-ball-baseline/-/ml-rolling-ball-baseline-2.0.4.tgz", - "integrity": "sha512-WQAnnNERkBFIfNyzDkfJNaUQ3irGinawRT3bdK4755hApSC8q3YY12iL4g8zCtJGfQ4GlYWhEhmBTly//T2YSw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ml-rolling-ball-baseline/-/ml-rolling-ball-baseline-3.0.0.tgz", + "integrity": "sha512-iX3eleZX8qVmyHDd4odE0nItsh4V1Ce0z4VOCfvk9g4HWCPbny7etx0Xx2ur55CrLc4A+8tkWdVBbJvq+LaCrA==", "license": "MIT", "dependencies": { "is-any-array": "^3.0.0", @@ -11320,46 +11254,20 @@ "license": "MIT", "dependencies": { "cheminfo-types": "^1.15.0", - "is-any-array": "^3.0.0" - } - }, - "node_modules/ml-signal-processing": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ml-signal-processing/-/ml-signal-processing-2.2.1.tgz", - "integrity": "sha512-K+KG8CwvU5Dtp1v/BkyFFKZFkOrN1YKjYbKLdTVvhUPQlQG7Dw6K8L5XoAOGEAI/TrZnr+X+PTxoVJBl8PXK/w==", - "license": "MIT", - "dependencies": { - "baselines": "^1.1.10", - "cheminfo-types": "^1.15.0", - "ml-gsd": "^13.1.1", - "ml-savitzky-golay-generalized": "^5.0.0", - "ml-spectra-processing": "^14.28.1" - } - }, - "node_modules/ml-signal-processing/node_modules/ml-gsd": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/ml-gsd/-/ml-gsd-13.1.2.tgz", - "integrity": "sha512-MXdQEE/HRQO1e4LZ0EBcj23vnKCsLjWebiNQFDmun9vHji0BzC+/kOQf/2qosIZXiKgFZlaCVRC/veL2vdum+w==", - "license": "MIT", - "dependencies": { - "cheminfo-types": "^1.15.0", - "ml-peak-shape-generator": "^4.2.0", - "ml-savitzky-golay-generalized": "^5.0.0", - "ml-spectra-fitting": "^5.0.1", - "ml-spectra-processing": "^14.28.1" + "is-any-array": "^3.0.0" } }, - "node_modules/ml-signal-processing/node_modules/ml-spectra-fitting": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ml-spectra-fitting/-/ml-spectra-fitting-5.0.1.tgz", - "integrity": "sha512-uqSc01tED7PNYYEvtPCAp7QGybZVi1K0HgHlqu5cAxjbpfnDS+XcOc2rTPprf8GoZ9Y3xL/fxyY4Gc5+Dh7e4A==", + "node_modules/ml-signal-processing": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ml-signal-processing/-/ml-signal-processing-2.2.2.tgz", + "integrity": "sha512-XMP+bkHWxt2nniruCxaqvuyoABLC8lJNboNo1ctuoTXfTZDlKSXstT7Rww9ai3K8cjVGuCbGGwuhM4dI+XQQvw==", "license": "MIT", "dependencies": { - "cheminfo-types": "^1.7.2", - "ml-direct": "^1.0.0", - "ml-levenberg-marquardt": "^5.0.0", - "ml-peak-shape-generator": "^4.1.4", - "ml-spectra-processing": "^14.2.0" + "baselines": "^1.1.10", + "cheminfo-types": "^1.15.0", + "ml-gsd": "^14.2.0", + "ml-savitzky-golay-generalized": "^5.0.0", + "ml-spectra-processing": "^14.29.1" } }, "node_modules/ml-simple-clustering": { @@ -11378,38 +11286,29 @@ } }, "node_modules/ml-spectra-fitting": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ml-spectra-fitting/-/ml-spectra-fitting-6.1.0.tgz", - "integrity": "sha512-qCILP7xEU2sowZGoEalmxMdISM2LZSmwYXjxJYP4sqNRYRFA1Jxv84WnxwMTiNPNIa+wREhajmZamfuMm1blSQ==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ml-spectra-fitting/-/ml-spectra-fitting-6.2.2.tgz", + "integrity": "sha512-5fB+KVdoZPf0/7tiI7z7NdKY0r5BezljLl0XSNu+vCaM1ROCkiS+g4az8MK3hppYtV1ag/QlIAWjimLlHSoQXQ==", "license": "MIT", "dependencies": { - "cheminfo-types": "^1.7.2", + "cheminfo-types": "^1.15.0", "ml-direct": "^1.0.0", - "ml-levenberg-marquardt": "^5.0.0", + "ml-levenberg-marquardt": "^5.0.1", "ml-peak-shape-generator": "^5.1.0", - "ml-spectra-processing": "^14.2.0" - } - }, - "node_modules/ml-spectra-fitting/node_modules/ml-peak-shape-generator": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ml-peak-shape-generator/-/ml-peak-shape-generator-5.1.0.tgz", - "integrity": "sha512-W2Vx/+R65zyr/B13p5TLyqwjTgIzwR0xtjRyQ2ZSxDHdVaXxb6m+ajyyaHJqGG5mYzeqi97nGvpklhz0jrsbrg==", - "license": "MIT", - "dependencies": { - "cheminfo-types": "^1.15.0" + "ml-spectra-processing": "^14.29.0" } }, "node_modules/ml-spectra-processing": { - "version": "14.29.0", - "resolved": "https://registry.npmjs.org/ml-spectra-processing/-/ml-spectra-processing-14.29.0.tgz", - "integrity": "sha512-825CS864krbjMv7OB0mbjgAmyOL5ymj1OGa0gAzz1h1Dcd3Eeol2DaOimSiPYmRhW+iYhpeQnb7cSU0mlSK6+g==", + "version": "14.33.0", + "resolved": "https://registry.npmjs.org/ml-spectra-processing/-/ml-spectra-processing-14.33.0.tgz", + "integrity": "sha512-zg71v6exRvPpzDh9SiN5iNAIG8yTFpzfJrRCRSb/hWf5gMsik7q60DkO5ew4knR7xF4DbjYmNWeqLq8gWcQdEQ==", "license": "MIT", "dependencies": { "binary-search": "^1.3.6", "cheminfo-types": "^1.15.0", "fft.js": "^4.0.4", "is-any-array": "^3.0.0", - "ml-matrix": "^6.12.2", + "ml-matrix": "^6.14.0", "ml-xsadd": "^3.0.1" } }, @@ -11454,9 +11353,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.12", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", - "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", + "version": "3.3.18", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.18.tgz", + "integrity": "sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==", "funding": [ { "type": "github", @@ -11510,21 +11409,10 @@ "integrity": "sha512-+z6QY1SxkDk6CQJAeaIZKmcNubBCRP7J8DMQUBglz/sSkNsZoJ1kULjqk9skNPPplzs4i9PFhYrvNDdtQleF/A==", "license": "MIT" }, - "node_modules/nmr-correlation": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/nmr-correlation/-/nmr-correlation-2.3.5.tgz", - "integrity": "sha512-WmJXckcF+epK0u2DVv+LBahvtlbFiCbTtXQsYmq07fze6i6XLPHnFcE1q6HKtiYYbePd6ks2PMOmWQEDdU2XbA==", - "license": "MIT", - "dependencies": { - "cheminfo-types": "^1.8.1", - "ml-matrix-peaks-finder": "^1.0.0", - "ml-peak-shape-generator": "^4.1.4" - } - }, "node_modules/nmr-processing": { - "version": "22.13.0", - "resolved": "https://registry.npmjs.org/nmr-processing/-/nmr-processing-22.13.0.tgz", - "integrity": "sha512-udS0fxLjJgojI382/6LZvBGLs+z+edoiULrqNjHYCQdFCgsEp6JYBNnHABY29myvXGN9ml17Clhc/qLaUJDe3w==", + "version": "22.23.5", + "resolved": "https://registry.npmjs.org/nmr-processing/-/nmr-processing-22.23.5.tgz", + "integrity": "sha512-B/7co/EGOv2TKi8zaVHfZ5SN6zVWzQ1Y+QQKzytV0W5mwe4397zQ/VPQI8LBJzXmW6br2iANYDjfJ63+Ddjq7w==", "license": "CC-BY-NC-SA-4.0", "dependencies": { "binary-search": "^1.3.6", @@ -11536,98 +11424,48 @@ "ml-airpls": "^2.2.0", "ml-convolution": "^2.0.0", "ml-direct": "^1.0.0", - "ml-gsd": "^14.1.0", + "ml-gsd": "^14.2.2", "ml-hclust": "^4.0.0", - "ml-levenberg-marquardt": "^5.0.1", - "ml-matrix": "^6.12.2", + "ml-levenberg-marquardt": "^5.1.0", + "ml-matrix": "^6.15.0", "ml-matrix-convolution": "^2.0.0", - "ml-matrix-peaks-finder": "^2.0.0", - "ml-peak-shape-generator": "^5.1.0", + "ml-matrix-peaks-finder": "^2.0.1", + "ml-peak-shape-generator": "^5.5.0", "ml-regression-base": "^4.0.1", "ml-regression-exponential": "^3.0.2", "ml-regression-polynomial": "^4.0.0", "ml-regression-simple-linear": "^3.0.1", "ml-savitzky-golay-generalized": "^5.0.0", - "ml-signal-processing": "^2.2.1", + "ml-signal-processing": "^2.2.2", "ml-simple-clustering": "^1.0.0", "ml-sparse-matrix": "^3.1.0", - "ml-spectra-processing": "^14.28.1", + "ml-spectra-processing": "^14.33.0", "ml-tree-set": "^1.0.1", "multiplet-analysis": "^3.0.2", - "nmr-correlation": "^3.0.0", "numeral": "^2.0.6", - "openchemlib": "^9.22.0", - "openchemlib-utils": "^8.15.0", + "openchemlib": "^9.24.0", + "openchemlib-utils": "^8.17.1", "spectrum-generator": "^8.2.1" } }, - "node_modules/nmr-processing/node_modules/ml-matrix-convolution": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ml-matrix-convolution/-/ml-matrix-convolution-2.0.0.tgz", - "integrity": "sha512-XuEZf4ZTffAz7oDMG4olkh9aZmsIMr343gPTY+ZvnLWTlMiG+TegRbP4fpA1ju7/IK9q8u3TcC2cxf/N3ydtRA==", - "license": "MIT", - "dependencies": { - "ml-fft": "^1.3.5" - } - }, - "node_modules/nmr-processing/node_modules/ml-matrix-peaks-finder": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ml-matrix-peaks-finder/-/ml-matrix-peaks-finder-2.0.0.tgz", - "integrity": "sha512-dbXMpiWFZEMRP4XgD53+vuLJpa/fDXyJDL0A9SXHG0GRZUwq+B+BUYx1OhYrdoCkAROe+b554VCoH1wpQINTiQ==", - "license": "MIT", - "dependencies": { - "ml-disjoint-set": "^1.0.0", - "ml-matrix-convolution": "^2.0.0" - } - }, - "node_modules/nmr-processing/node_modules/ml-peak-shape-generator": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ml-peak-shape-generator/-/ml-peak-shape-generator-5.1.0.tgz", - "integrity": "sha512-W2Vx/+R65zyr/B13p5TLyqwjTgIzwR0xtjRyQ2ZSxDHdVaXxb6m+ajyyaHJqGG5mYzeqi97nGvpklhz0jrsbrg==", - "license": "MIT", - "dependencies": { - "cheminfo-types": "^1.15.0" - } - }, - "node_modules/nmr-processing/node_modules/nmr-correlation": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/nmr-correlation/-/nmr-correlation-3.0.1.tgz", - "integrity": "sha512-0iuce3dLBpdcHn0Q/SX3gHvshRCUyN8X6iL6Y97VcK7JS3g8yZSQCIKjft8jsAOUzWP1rX8c1aCxw3BnCjrBEQ==", - "license": "MIT", - "dependencies": { - "cheminfo-types": "^1.8.1", - "ml-matrix-peaks-finder": "^2.0.0", - "ml-peak-shape-generator": "^4.2.0" - } - }, - "node_modules/nmr-processing/node_modules/nmr-correlation/node_modules/ml-peak-shape-generator": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/ml-peak-shape-generator/-/ml-peak-shape-generator-4.2.0.tgz", - "integrity": "sha512-BDtR0rhUor5/4J9pJOEMRnD+QQ5v6ohx+o6MfRRg2e2IOTeZfp/uJcy5Y852v5CsNec1GmYMkd5PYrY0245qlQ==", - "license": "MIT", - "dependencies": { - "cheminfo-types": "^1.1.0" - } - }, "node_modules/nmrium": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nmrium/-/nmrium-2.2.0.tgz", - "integrity": "sha512-FzitAv24+kP4nyNkaPKDqkNLUapRuatp/Y5NvpIuY3jeWY2z3vXjd/jkIQQqM4tJq3wC3TMZ59nTKv6CAFs1tQ==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/nmrium/-/nmrium-2.6.0.tgz", + "integrity": "sha512-345YtEf0G59jawiys4mXbMPloJ4RAwXODdwbrvlEOGi4H6aIUBrKaMxvK4ddGpMD/4xnYDjlQcVXAlL+Ka76GA==", "license": "MIT", "dependencies": { - "@atlaskit/pragmatic-drag-and-drop": "^1.8.1", - "@atlaskit/pragmatic-drag-and-drop-hitbox": "^1.2.0", "@emotion/react": "^11.14.0", "@emotion/styled": "^11.14.1", - "@hookform/resolvers": "^5.4.0", - "@tanstack/react-form": "^1.33.0", - "@tanstack/react-table": "^8.21.3", - "@zakodium/nmr-types": "^0.5.12", - "@zakodium/nmrium-core": "^0.7.24", - "@zakodium/nmrium-core-plugins": "^0.7.32", - "@zakodium/pdnd-esm": "^1.0.2", - "@zip.js/zip.js": "^2.8.26", - "cheminfo-font": "^1.27.0", + "@hookform/resolvers": "^5.9.1", + "@tanstack/react-form": "^1.33.5", + "@tanstack/react-store": "^0.11.1", + "@zakodium/nmr-types": "^0.5.25", + "@zakodium/nmrium-core": "^0.7.62", + "@zakodium/nmrium-core-plugins": "^0.7.83", + "@zakodium/pdnd-esm": "^1.1.1", + "@zakodium/utils": "^0.5.1", + "@zip.js/zip.js": "^2.8.53", + "cheminfo-font": "^1.28.0", "cheminfo-types": "^1.15.0", "clipboard-polyfill": "^4.1.1", "d3-array": "^3.2.4", @@ -11639,37 +11477,39 @@ "file-collection": "^6.6.1", "file-saver": "^2.0.5", "get-jpaths": "^1.4.1", - "immer": "^11.1.8", + "immer": "^11.1.18", "lodash": "^4.18.1", - "mf-parser": "^3.9.1", + "mf-parser": "^3.9.2", "ml-array-mean": "^2.0.0", "ml-array-median": "^2.0.0", "ml-conrec": "^6.0.0", - "ml-gsd": "^14.1.0", - "ml-signal-processing": "^2.2.1", - "ml-spectra-processing": "^14.29.0", + "ml-gsd": "^14.2.2", + "ml-peak-shape-generator": "^5.5.0", + "ml-signal-processing": "^2.2.2", + "ml-spectra-processing": "^14.33.0", "ml-tree-similarity": "^2.2.0", - "nmr-correlation": "2.3.3", - "nmr-processing": "^22.12.0", + "nmr-processing": "^22.23.2", "numeral": "^2.0.6", - "openchemlib": "^9.22.1", - "openchemlib-utils": "^8.15.1", - "papaparse": "^5.5.3", + "openchemlib": "^9.25.0", + "openchemlib-utils": "^8.18.0", + "papaparse": "^5.6.0", "react-d3-utils": "^3.1.2", - "react-dropzone": "^15.0.0", - "react-error-boundary": "^6.1.2", - "react-hook-form": "^7.78.0", - "react-icons": "^5.6.0", + "react-draggable": "=4.5.0", + "react-dropzone": "^20.1.0", + "react-error-boundary": "^6.1.3", + "react-hook-form": "^7.85.0", + "react-icons": "^5.7.0", "react-inspector": "^9.0.0", "react-mf": "^3.1.1", - "react-ocl": "^8.7.1", + "react-ocl": "^8.7.2", "react-ocl-nmr": "^4.1.1", "react-plot": "^3.1.2", "react-rnd": "^10.5.3", - "react-science": "^19.11.0", + "react-science": "^23.0.1", "react-table": "^7.8.0", "smart-array-filter": "^5.0.0", "ts-pattern": "^5.9.0", + "usehooks-ts": "^3.1.1", "yup": "^1.7.1", "zod": "^4.4.3" }, @@ -11681,16 +11521,128 @@ "react-dom": ">=18.0.0" } }, - "node_modules/nmrium/node_modules/nmr-correlation": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/nmr-correlation/-/nmr-correlation-2.3.3.tgz", - "integrity": "sha512-RSdzZGsE2HeitUEhA7Dc1048eu6Web/SH5UjrbFEpddVNwvPGKQUZfQ5uoygcaTpKfq2lTddi2Ln9MDYjfyOgg==", + "node_modules/nmrium/node_modules/@hookform/resolvers": { + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-5.9.1.tgz", + "integrity": "sha512-7b7vsbraJxKgjVSA1Nur9tLwj539WGJUBLA7QNvXnFoT2pM5Z7G+6rlukk4B2/QrTZy6huRtH6wKeESPKuIr6w==", + "license": "MIT", + "dependencies": { + "@standard-schema/utils": "^0.3.0" + }, + "peerDependencies": { + "@sinclair/typebox": ">=0.25.24", + "@standard-schema/spec": "^1.0.0", + "@typeschema/main": ">=0.13.7", + "@vinejs/vine": "^2.0.0 || ^3.0.0 || ^4.0.0", + "ajv": "^8.12.0", + "ajv-errors": "^3.0.0", + "ajv-formats": "^2.1.1", + "arktype": "^2.0.0", + "ata-validator": "^1.2.0", + "class-transformer": ">=0.4.0", + "class-validator": ">=0.12.0", + "computed-types": "^1.0.0", + "effect": "^3.10.3", + "fluentvalidation-ts": "^3.0.0", + "fp-ts": "^2.7.0", + "io-ts": "^2.0.0", + "joi": "^17.0.0 || ^18.0.0", + "nope-validator": ">=0.12.0", + "react-hook-form": "^7.55.0", + "superstruct": ">=0.12.0", + "typanion": "^3.3.2", + "valibot": ">=0.31.0 || ^1.0.0-beta.4 || ^1.0.0-rc", + "vest": ">=6.0.0", + "yup": "^1.0.0", + "zod": "^3.25.0 || ^4.0.0" + }, + "peerDependenciesMeta": { + "@sinclair/typebox": { + "optional": true + }, + "@standard-schema/spec": { + "optional": true + }, + "@typeschema/main": { + "optional": true + }, + "@vinejs/vine": { + "optional": true + }, + "ajv": { + "optional": true + }, + "ajv-errors": { + "optional": true + }, + "ajv-formats": { + "optional": true + }, + "arktype": { + "optional": true + }, + "ata-validator": { + "optional": true + }, + "class-transformer": { + "optional": true + }, + "class-validator": { + "optional": true + }, + "computed-types": { + "optional": true + }, + "effect": { + "optional": true + }, + "fluentvalidation-ts": { + "optional": true + }, + "fp-ts": { + "optional": true + }, + "io-ts": { + "optional": true + }, + "joi": { + "optional": true + }, + "nope-validator": { + "optional": true + }, + "superstruct": { + "optional": true + }, + "typanion": { + "optional": true + }, + "valibot": { + "optional": true + }, + "vest": { + "optional": true + }, + "yup": { + "optional": true + }, + "zod": { + "optional": true + } + } + }, + "node_modules/nmrium/node_modules/react-draggable": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/react-draggable/-/react-draggable-4.5.0.tgz", + "integrity": "sha512-VC+HBLEZ0XJxnOxVAZsdRi8rD04Iz3SiiKOoYzamjylUcju/hP9np/aZdLHf/7WOD268WMoNJMvYfB5yAK45cw==", "license": "MIT", "dependencies": { - "cheminfo-types": "^1.4.0", - "lodash": "^4.17.21", - "ml-matrix-peaks-finder": "^1.0.0", - "ml-peak-shape-generator": "^4.1.1" + "clsx": "^2.1.1", + "prop-types": "^15.8.1" + }, + "peerDependencies": { + "react": ">= 16.3.0", + "react-dom": ">= 16.3.0" } }, "node_modules/no-case": { @@ -11955,27 +11907,27 @@ } }, "node_modules/openchemlib": { - "version": "9.23.0", - "resolved": "https://registry.npmjs.org/openchemlib/-/openchemlib-9.23.0.tgz", - "integrity": "sha512-kRFwKyXNl/ElbAoy41+dfbdZikJ7/0xcKm1bkciRD6dAeiq4Eb2TT04ePctCBBG26Iov+GgxeZqJHFLiG7Qp1Q==", + "version": "9.25.0", + "resolved": "https://registry.npmjs.org/openchemlib/-/openchemlib-9.25.0.tgz", + "integrity": "sha512-FGTaZLJRTGXNC7khx8QvX/EiQBHpH1ncUbT7YXDJhw/Y/aDUKe5WrUIqTguMEtSs3GUHcRUjNUhfkpxulx2UXw==", "license": "BSD-3-Clause" }, "node_modules/openchemlib-utils": { - "version": "8.15.1", - "resolved": "https://registry.npmjs.org/openchemlib-utils/-/openchemlib-utils-8.15.1.tgz", - "integrity": "sha512-WAAGa5LVIm7FMjO/16kETp55ig/+OeHMw1JoTxfCfP8OwNLJ+7aKSncaw2dQEMZYlAGVHoonzee3aj7QKsrokw==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/openchemlib-utils/-/openchemlib-utils-8.18.0.tgz", + "integrity": "sha512-9iYB94owF30VGZzPBrZMghEfTS498xn9jE1RfWIg9h3U8N4XskJw3Gw7XJX2mSx8N7dnLKNhikV3IJFz28TdaQ==", "license": "MIT", "dependencies": { "atom-sorter": "^2.2.1", "ensure-string": "^2.0.0", - "get-value": "^4.0.1", + "get-value": "^4.1.0", "ml-floyd-warshall": "^3.0.1", - "ml-matrix": "^6.12.2", - "papaparse": "^5.5.3", - "sdf-parser": "^8.0.0" + "ml-matrix": "^6.15.0", + "papaparse": "^5.6.0", + "sdf-parser": "^9.0.0" }, "peerDependencies": { - "openchemlib": ">=9.20.1" + "openchemlib": ">=9.25.0" } }, "node_modules/optionator": { @@ -12063,16 +12015,10 @@ "dev": true, "license": "BlueOak-1.0.0" }, - "node_modules/pako": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", - "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==", - "license": "(MIT AND Zlib)" - }, "node_modules/papaparse": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.5.3.tgz", - "integrity": "sha512-5QvjGxYVjxO59MGU2lHVYpRWBBtKHnlIAcSe1uNFCkkptUh63NFRj0FJQm7nR67puEruUci/ZkjmEFrjCAyP4A==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.6.0.tgz", + "integrity": "sha512-N2vuNQAYGK1/4vs6HJX86+VYU6OkiSTgdJz3JQfTk1y51cFCO/U8gnaeTF4iNE4r57Tt0sV47dUua1/19pxO6Q==", "license": "MIT" }, "node_modules/param-case": { @@ -12242,9 +12188,9 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", "license": "MIT", "engines": { "node": ">=12" @@ -12333,35 +12279,35 @@ } }, "node_modules/playwright": { - "version": "1.61.0", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.61.0.tgz", - "integrity": "sha512-Z+7BeeqQPRRzklHsVFP4KTGIyMxKUmfeRA4WisM6G3/XW6nwGeX6fX9qYaDa+CiUqpOkb2f6X3nar05R3kSuJQ==", + "version": "1.62.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.62.1.tgz", + "integrity": "sha512-0M+L3LAD8/nm554LOla9Ayx0j0tmFZ0FBcoQ7F1VuVHpM/XpiC8RcDzBQB8W5+hA8L22THxELzeF+2WcUzvcLg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright-core": "1.61.0" + "playwright-core": "1.62.1" }, "bin": { "playwright": "cli.js" }, "engines": { - "node": ">=18" + "node": ">=20" }, "optionalDependencies": { "fsevents": "2.3.2" } }, "node_modules/playwright-core": { - "version": "1.61.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.61.0.tgz", - "integrity": "sha512-caX7TrY3Ml6egyDX0WUcTHDxodl/b51y5wJOdCEA36QviK/s2g081hvmGs8eaE3DWb6NYZQ6BjO/QkNRPenoPA==", + "version": "1.62.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.62.1.tgz", + "integrity": "sha512-wPYSwEBJY9GHraISXqyqtx0na0LpO3XEX7jNDhntbex7tzUS7kLnZsOlFruFJB4Hi/rhDMjXGqHewDZ68nYZVw==", "dev": true, "license": "Apache-2.0", "bin": { "playwright-core": "cli.js" }, "engines": { - "node": ">=18" + "node": ">=20" } }, "node_modules/playwright/node_modules/fsevents": { @@ -12400,9 +12346,9 @@ } }, "node_modules/postcss": { - "version": "8.5.15", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz", - "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==", + "version": "8.5.26", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.26.tgz", + "integrity": "sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==", "funding": [ { "type": "opencollective", @@ -12419,7 +12365,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.12", + "nanoid": "^3.3.17", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -12438,9 +12384,9 @@ } }, "node_modules/prettier": { - "version": "3.8.4", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.4.tgz", - "integrity": "sha512-N2MylSdi48+5N/6S5j+maeHbUSIzzZ5uOcX5Hm4QpV8Dkb1HFjfAKTKX6yNPJQD9AhcT3ifHNB66tWTTJDi11Q==", + "version": "3.9.6", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.6.tgz", + "integrity": "sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g==", "dev": true, "license": "MIT", "bin": { @@ -12495,12 +12441,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "license": "MIT" - }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -12650,29 +12590,40 @@ } }, "node_modules/react-dropzone": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-15.0.0.tgz", - "integrity": "sha512-lGjYV/EoqEjEWPnmiSvH4v5IoIAwQM2W4Z1C0Q/Pw2xD0eVzKPS359BQTUMum+1fa0kH2nrKjuavmTPOGhpLPg==", + "version": "20.1.1", + "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-20.1.1.tgz", + "integrity": "sha512-2cilRFP8bsjDOHpV0sJ6XY8pzJhmz4/cQ6s9yeckOACWYDR+n4MGGtnJh3Rycq/9SLhDWugqDx1z5mtfmOOZhw==", "license": "MIT", "dependencies": { - "attr-accept": "^2.2.4", - "file-selector": "^2.1.0", - "prop-types": "^15.8.1" + "attr-accept": "^4.0.0", + "file-selector": "^5.0.0" }, "engines": { - "node": ">= 10.13" + "node": ">= 22" }, "peerDependencies": { - "react": ">= 16.8 || 18.0.0" + "@types/react": "*", + "react": ">= 18" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, "node_modules/react-error-boundary": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-6.1.2.tgz", - "integrity": "sha512-3DpCr5HVdZ0caUjYE/kIHBEJN0mNP3ZCgf16c48uJ5TbWjorKVp+YG8W3XqlJ7vJAVNw6wNIImyPXmFydwmyng==", + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-6.1.3.tgz", + "integrity": "sha512-GnSKpCohFi2nQmJCWwP8O8wub7zexlePvpsejvQr35vS5RTouS1+utTNOmyc540yw5vyOXnSL1rBWsCQDmkyUA==", "license": "MIT", "peerDependencies": { + "@types/react": "^18.0.0 || ^19.0.0", "react": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, "node_modules/react-fast-compare": { @@ -12697,9 +12648,9 @@ } }, "node_modules/react-hook-form": { - "version": "7.79.0", - "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.79.0.tgz", - "integrity": "sha512-mhYp/MTmXvzYX6AJcJVko0rktoIhhmRnEouObj4wF5i/tCttgJvnp1+9wRkpITZjDTqpo4IOSJqu0dBlPlV/Lw==", + "version": "7.86.0", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.86.0.tgz", + "integrity": "sha512-4kbWJrh5jPZt1+YqVcXcGKffGcXV/XVbozknLh0Yjh0KhpoAkus21TAQhzRYqNwFkkObmnSvRlZZ3GT+ehoIrA==", "license": "MIT", "engines": { "node": ">=18.0.0" @@ -12713,9 +12664,9 @@ } }, "node_modules/react-icons": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.6.0.tgz", - "integrity": "sha512-RH93p5ki6LfOiIt0UtDyNg/cee+HLVR6cHHtW3wALfo+eOHTp8RnU2kRkI6E+H19zMIs03DyxUG/GfZMOGvmiA==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.7.0.tgz", + "integrity": "sha512-LBLy340Rzqy6+/yVhZKT3B/QpP1BZaesGqasf09HPOBzRarcDIFH0WwXlXQfE7q7ipxK4MSiC5DIBWURCny6fw==", "license": "MIT", "peerDependencies": { "react": "*" @@ -12766,9 +12717,9 @@ } }, "node_modules/react-ocl": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/react-ocl/-/react-ocl-8.7.1.tgz", - "integrity": "sha512-FGXS/BPRnMSYEFqm08mylp6TWSOFd9dD0JJBK2QnmxtkxZpov0q55jZ6AwhdWa2lnel8inbdS5eW7GWnrewYbg==", + "version": "8.7.2", + "resolved": "https://registry.npmjs.org/react-ocl/-/react-ocl-8.7.2.tgz", + "integrity": "sha512-cPMuSxRjmxNuTd7D8PCFpq50iqdpClcdHVdzgzx2UpeQ3JbIXH1FxKwkbZIHELF/Q5sngBWc+YcZcqI2J0AFWg==", "license": "MIT", "dependencies": { "@emotion/styled": "^11.14.1", @@ -12850,9 +12801,9 @@ "license": "0BSD" }, "node_modules/react-router": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.18.0.tgz", - "integrity": "sha512-pTTGt8J+ji1NOmYnjzT+bAJy/1zD+Jp4ziO6cL7T3ZLvXKtusO7BpFqlRXitqpcPVqllsIXFHRMt+2/k3Xn6HQ==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.18.2.tgz", + "integrity": "sha512-aUVMjFm3GAPTTZL7oYr5E7ETiqfQCHRLH+B+5afnICvf0r7kkK4eR6SMuwbSTJw/7t+12khT/Kahij49fqOCIg==", "dev": true, "license": "MIT", "dependencies": { @@ -12873,13 +12824,13 @@ } }, "node_modules/react-router-dom": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.18.0.tgz", - "integrity": "sha512-Fi0yY6kgtKae/Th2xibdWK0KSdYZ4B53Gyf6wRtomOKWgpNm7H7+DyfDhncdz9FKbpS+1jmDhg3F4WoGJ+yFOA==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.18.2.tgz", + "integrity": "sha512-AIKJ/jgGlFb3EbfCXk5Gzshiwt+l3mqbCrNjmEWMMjqQxNJ3svBa6bgzFyCC2Sw3RA0VWF1kg3uQf2OFhxb8hw==", "dev": true, "license": "MIT", "dependencies": { - "react-router": "7.18.0" + "react-router": "7.18.2" }, "engines": { "node": ">=20.0.0" @@ -12890,37 +12841,72 @@ } }, "node_modules/react-science": { - "version": "19.11.0", - "resolved": "https://registry.npmjs.org/react-science/-/react-science-19.11.0.tgz", - "integrity": "sha512-xH8V/2N7qwjSPR7lTIsdUAO2BSw64OPOIvNPUIstJXN6hCTuA0VOyYKvEDwR3yDZjTSfrjNlOyuBCVTwm4LBIw==", + "version": "23.0.1", + "resolved": "https://registry.npmjs.org/react-science/-/react-science-23.0.1.tgz", + "integrity": "sha512-pT9164/dHPFkNVFhj0HUgNfMK6GJVY3jPca8v/2na6AXmxcHDOQfFvrXGTlB9z0zB9GiEzx/LD0Pd6SQ8X3NXA==", "license": "MIT", "dependencies": { - "@atlaskit/pragmatic-drag-and-drop": "^1.8.0", - "@atlaskit/pragmatic-drag-and-drop-auto-scroll": "^2.1.5", - "@atlaskit/pragmatic-drag-and-drop-hitbox": "^1.1.0", "@emotion/styled": "^11.14.1", - "@radix-ui/react-use-controllable-state": "^1.2.2", - "@tanstack/react-form": "^1.29.0", - "@tanstack/react-table": "^8.21.3", - "@tanstack/react-virtual": "^3.13.24", - "@zakodium/pdnd-esm": "^1.0.2", + "@radix-ui/react-use-controllable-state": "^1.2.6", + "@tanstack/react-form": "^1.33.4", + "@tanstack/react-store": "^0.11.1", + "@tanstack/react-table": "^9.1.2", + "@tanstack/react-virtual": "^3.14.9", + "@zakodium/pdnd-esm": "^1.1.0", + "@zakodium/utils": "^0.5.1", "d3-scale-chromatic": "^3.1.0", "react-d3-utils": "^3.1.2", - "react-dropzone": "^15.0.0", + "react-dropzone": "^20.1.0", "react-full-screen": "^1.1.1", - "react-icons": "^5.6.0", + "react-icons": "^5.7.0", "react-inspector": "^9.0.0", "tinycolor2": "^1.6.0", "ts-pattern": "^5.9.0", - "zod": "^4.3.6" + "zod": "^4.4.3" }, "peerDependencies": { - "@blueprintjs/core": "^6.0.0", - "@blueprintjs/icons": "^6.0.0", - "@blueprintjs/select": "^6.0.0", - "fifo-logger": "^1.0.0 || ^2.0.0", - "react": ">=18.0.0", - "react-dom": ">=18.0.0" + "@blueprintjs/core": "^6.16.0", + "@blueprintjs/icons": "^6.11.0", + "@blueprintjs/select": "^6.3.0", + "fifo-logger": "^2.0.1", + "react": "^18.3.1 || ^19.2.7", + "react-dom": "^18.3.1 || ^19.2.7" + } + }, + "node_modules/react-science/node_modules/@tanstack/react-table": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@tanstack/react-table/-/react-table-9.1.2.tgz", + "integrity": "sha512-YQPZFJ1nIi/bjjwsPZVouABgahDcl7Gdm33CdTStUJBn0DjEVJ2uhSTVmIoWt9MVKdQziXGAsXipSzy949Hygg==", + "license": "MIT", + "dependencies": { + "@tanstack/react-store": "^0.11.0", + "@tanstack/table-core": "9.1.2" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/react-science/node_modules/@tanstack/table-core": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@tanstack/table-core/-/table-core-9.1.2.tgz", + "integrity": "sha512-ONpWQeass1sfg80CWF1NSwQ8r3GiqxA2lT/EdqIcrDEPZ0Z+0mM94eQoFYLPN0Kztzj8TQVb2+PrSZSItqA61g==", + "license": "MIT", + "dependencies": { + "@tanstack/store": "^0.11.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" } }, "node_modules/react-table": { @@ -12952,21 +12938,6 @@ "react-dom": ">=16.6.0" } }, - "node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, "node_modules/reflect.getprototypeof": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", @@ -13107,7 +13078,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -13180,12 +13151,12 @@ } }, "node_modules/rolldown": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.3.tgz", - "integrity": "sha512-i00lAJ2ks1BYr7rjNjKC7BcqAS7nVfiT3QX1SI5aY+AFHblCmaUf9OE9dbdzDvW6dJxbi2ZCZiy9v3CcwOiX3g==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.5.tgz", + "integrity": "sha512-VD2IE5PUG4Oj8zz2VGykiYd5wbnjdIiSsNQb8Qu5B+noEp+A78mu2iVvpp27g8es14Tk9rofNs5Tku9iQCS4fA==", "license": "MIT", "dependencies": { - "@oxc-project/types": "=0.133.0", + "@oxc-project/types": "=0.146.0", "@rolldown/pluginutils": "^1.0.0" }, "bin": { @@ -13195,21 +13166,21 @@ "node": "^20.19.0 || >=22.12.0" }, "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.0.3", - "@rolldown/binding-darwin-arm64": "1.0.3", - "@rolldown/binding-darwin-x64": "1.0.3", - "@rolldown/binding-freebsd-x64": "1.0.3", - "@rolldown/binding-linux-arm-gnueabihf": "1.0.3", - "@rolldown/binding-linux-arm64-gnu": "1.0.3", - "@rolldown/binding-linux-arm64-musl": "1.0.3", - "@rolldown/binding-linux-ppc64-gnu": "1.0.3", - "@rolldown/binding-linux-s390x-gnu": "1.0.3", - "@rolldown/binding-linux-x64-gnu": "1.0.3", - "@rolldown/binding-linux-x64-musl": "1.0.3", - "@rolldown/binding-openharmony-arm64": "1.0.3", - "@rolldown/binding-wasm32-wasi": "1.0.3", - "@rolldown/binding-win32-arm64-msvc": "1.0.3", - "@rolldown/binding-win32-x64-msvc": "1.0.3" + "@rolldown/binding-android-arm-eabi": "1.2.5", + "@rolldown/binding-android-arm64": "1.2.5", + "@rolldown/binding-darwin-arm64": "1.2.5", + "@rolldown/binding-darwin-x64": "1.2.5", + "@rolldown/binding-freebsd-x64": "1.2.5", + "@rolldown/binding-linux-arm-gnueabihf": "1.2.5", + "@rolldown/binding-linux-arm64-gnu": "1.2.5", + "@rolldown/binding-linux-arm64-musl": "1.2.5", + "@rolldown/binding-linux-ppc64-gnu": "1.2.5", + "@rolldown/binding-linux-s390x-gnu": "1.2.5", + "@rolldown/binding-linux-x64-gnu": "1.2.5", + "@rolldown/binding-linux-x64-musl": "1.2.5", + "@rolldown/binding-openharmony-arm64": "1.2.5", + "@rolldown/binding-win32-arm64-msvc": "1.2.5", + "@rolldown/binding-win32-x64-msvc": "1.2.5" } }, "node_modules/rollup": { @@ -13288,6 +13259,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, "license": "MIT" }, "node_modules/safe-push-apply": { @@ -13342,9 +13314,9 @@ } }, "node_modules/sdf-parser": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/sdf-parser/-/sdf-parser-8.0.0.tgz", - "integrity": "sha512-Mh+FbnUGfu+I7/xN0JOiuQ9GP3H36USFXg3ZpeuUMXpGmYHmzmv763poF1u152Xz76nmqRLTL2ibA4dfU0yzjw==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/sdf-parser/-/sdf-parser-9.0.0.tgz", + "integrity": "sha512-yi69gjBudryiKrLsT35OkyoGmskvXbVpUjkcd9tX4M4sLVmqeptsZtcx6Etf/bvdk9Ts1Wy6PuyXVIPktn6ZNQ==", "license": "MIT", "dependencies": { "dynamic-typing": "^2.0.0", @@ -13527,12 +13499,6 @@ "node": ">= 0.4" } }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "license": "MIT" - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -13731,9 +13697,9 @@ "license": "CC-BY-3.0" }, "node_modules/spdx-expression-parse": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz", - "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-5.0.0.tgz", + "integrity": "sha512-vngmw3Rgn+o2arXNbnZaj5UtOEBuWBfvaI+Wc8GFfykIhA5/vdK9/Sp/XkLv63dykz2rxKDvKEHupF5P0FORcQ==", "dev": true, "license": "MIT", "dependencies": { @@ -13758,15 +13724,6 @@ "ml-spectra-processing": "^14.28.1" } }, - "node_modules/spectrum-generator/node_modules/ml-peak-shape-generator": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ml-peak-shape-generator/-/ml-peak-shape-generator-5.1.0.tgz", - "integrity": "sha512-W2Vx/+R65zyr/B13p5TLyqwjTgIzwR0xtjRyQ2ZSxDHdVaXxb6m+ajyyaHJqGG5mYzeqi97nGvpklhz0jrsbrg==", - "license": "MIT", - "dependencies": { - "cheminfo-types": "^1.15.0" - } - }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -13811,15 +13768,6 @@ "node": ">= 0.4" } }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", @@ -14560,30 +14508,6 @@ "node": ">=14.17" } }, - "node_modules/typescript-eslint": { - "version": "8.61.1", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.61.1.tgz", - "integrity": "sha512-V7PayAfJokV3pEHgN7/v03D1SpujhRfQtYLbLIiBfDDncdg4PAiRBfoS4cnCANK4jmAPncczi59QO3afiXUlNw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/eslint-plugin": "8.61.1", - "@typescript-eslint/parser": "8.61.1", - "@typescript-eslint/typescript-estree": "8.61.1", - "@typescript-eslint/utils": "8.61.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.1.0" - } - }, "node_modules/typescript-event-target": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/typescript-event-target/-/typescript-event-target-1.1.2.tgz", @@ -14610,9 +14534,9 @@ } }, "node_modules/undici-types": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.24.6.tgz", - "integrity": "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz", + "integrity": "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==", "devOptional": true, "license": "MIT" }, @@ -14811,11 +14735,20 @@ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "license": "MIT" + "node_modules/usehooks-ts": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/usehooks-ts/-/usehooks-ts-3.1.1.tgz", + "integrity": "sha512-I4diPp9Cq6ieSUH2wu+fDAVQO43xwtulo+fKEidHUwZPnYImbtkTjzIJYcDcJqxgmX31GVqNFURodvcgHcW0pA==", + "license": "MIT", + "dependencies": { + "lodash.debounce": "^4.0.8" + }, + "engines": { + "node": ">=16.15.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18 || ^19 || ^19.0.0-rc" + } }, "node_modules/v8-to-istanbul": { "version": "9.3.0", @@ -14843,15 +14776,15 @@ } }, "node_modules/vite": { - "version": "8.0.16", - "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.16.tgz", - "integrity": "sha512-h9bXPmJichP5fLmVQo3PyaGSDE2n3aPuomeAlVRm0JLmt4rY6zmPKd59HYI4LNW8oTK7tlTsuC7l/m7awx9Jcw==", + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.2.2.tgz", + "integrity": "sha512-cFKLV/PRgAUlIRm5WjMjJ86jrftzpqcgH+Us+DS8mI3CDNiH30Whrz8uHL3+MOLPAgqbMBAqWdAHAphOAM+z/Q==", "license": "MIT", "dependencies": { - "lightningcss": "^1.32.0", - "picomatch": "^4.0.4", - "postcss": "^8.5.15", - "rolldown": "1.0.3", + "lightningcss": "^1.33.0", + "picomatch": "^4.0.5", + "postcss": "^8.5.26", + "rolldown": "~1.2.4", "tinyglobby": "^0.2.17" }, "bin": { @@ -14868,7 +14801,7 @@ }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", - "@vitejs/devtools": "^0.1.18", + "@vitejs/devtools": "^0.4.0 || ^0.5.0", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", @@ -15251,16 +15184,16 @@ } }, "node_modules/workbox-build/node_modules/brace-expansion": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz", - "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==", + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz", + "integrity": "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==", "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^4.0.2" }, "engines": { - "node": "18 || 20 || >=22" + "node": "20 || >=22" } }, "node_modules/workbox-build/node_modules/glob": { @@ -15651,22 +15584,6 @@ "dev": true, "license": "ISC" }, - "node_modules/yaml": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", - "integrity": "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==", - "extraneous": true, - "license": "ISC", - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14.6" - }, - "funding": { - "url": "https://github.com/sponsors/eemeli" - } - }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", diff --git a/package.json b/package.json index 971ba0b..5001c45 100644 --- a/package.json +++ b/package.json @@ -10,22 +10,19 @@ "src" ], "volta": { - "node": "24.4.0" + "node": "24.19.0" }, "dependencies": { - "@blueprintjs/core": "^6.16.0", - "@blueprintjs/icons": "^6.11.0", - "@blueprintjs/select": "^6.3.0", + "@blueprintjs/core": "^6.18.0", + "@blueprintjs/icons": "^6.13.0", "@emotion/styled": "^11.14.1", "@vitejs/plugin-react": "^6.0.2", - "@zakodium/nmrium-core": "^0.7.30", - "@zakodium/nmrium-core-plugins": "^0.7.39", + "@zakodium/nmrium-core": "^0.7.62", + "@zakodium/nmrium-core-plugins": "^0.7.83", "fifo-logger": "^2.0.1", - "filelist-utils": "^1.11.3", - "nmr-processing": "^22.13.0", - "nmrium": "^2.2.0", - "openchemlib": "^9.23.0", - "react-science": "^19.11.0" + "nmrium": "^2.6.0", + "openchemlib": "^9.25.0", + "react-science": "^23.0.1" }, "scripts": { "start": "vite --host localhost --port 3000 --open", @@ -46,25 +43,24 @@ "@babel/plugin-transform-modules-commonjs": "^7.29.7", "@babel/preset-react": "^7.29.7", "@babel/preset-typescript": "^7.29.7", - "@playwright/test": "^1.61.0", + "@playwright/test": "^1.62.1", "@simbathesailor/use-what-changed": "^2.0.0", "@types/jest": "^30.0.0", - "@types/node": "^25.9.3", + "@types/node": "^26.2.0", "@types/react": "^18.3.3", "@types/react-dom": "^18.3.0", - "@types/react-router-dom": "^5.3.3", "cross-env": "^10.1.0", "eslint": "^9.39.2", "eslint-config-cheminfo-react": "^20.1.0", "eslint-config-cheminfo-typescript": "^22.1.0", "jest": "^30.4.2", - "prettier": "3.8.4", + "prettier": "3.9.6", "react": "^18.3.1", "react-dom": "^18.3.1", - "react-router-dom": "^7.17.0", + "react-router-dom": "^7.18.2", "serve": "^14.2.6", "typescript": "^6.0.3", - "vite": "^8.0.16", + "vite": "^8.2.2", "vite-plugin-pwa": "^1.3.0" } } \ No newline at end of file diff --git a/src/NMRiumWrapper.tsx b/src/NMRiumWrapper.tsx index 9bb85d7..e3cc3fa 100644 --- a/src/NMRiumWrapper.tsx +++ b/src/NMRiumWrapper.tsx @@ -5,6 +5,7 @@ import { useCallback, useEffect, useRef } from 'react'; import { RootLayout } from 'react-science/ui'; import { LoadingIndicator } from './Loadingindicator.js'; +import { loadSpectraFromSource } from './data-source/loadSpectraFromSource.js'; import events from './events/event.js'; import { useLoadSpectra } from './hooks/useLoadSpectra.js'; import { usePreferences } from './hooks/usePreferences.js'; @@ -20,8 +21,13 @@ const containerStyle: CSSProperties = { export default function NMRiumWrapper() { const { allowedOrigins, isFetchAllowedOriginsPending } = useWhiteList(); const nmriumRef = useRef(null); - const { workspace, preferences, defaultEmptyMessage, customWorkspaces } = - usePreferences(); + const { + workspace, + preferences, + defaultEmptyMessage, + customWorkspaces, + spectraSource, + } = usePreferences(); const { load: loadSpectra, data, isLoading, setActiveTab } = useLoadSpectra(); @@ -33,6 +39,25 @@ export default function NMRiumWrapper() { events.trigger('data-change', { state, source }); }, []); + useEffect(() => { + if (!spectraSource) return; + + const { source, id } = spectraSource; + + async function loadFromSource() { + try { + const nmrium = await loadSpectraFromSource(source, id); + void loadSpectra({ nmrium }); + } catch (error) { + events.trigger('error', error as Error); + // eslint-disable-next-line no-console + console.error(error); + } + } + + void loadFromSource(); + }, [spectraSource, loadSpectra]); + useEffect(() => { const clearActionListener = events.on( 'action-request', @@ -73,13 +98,13 @@ export default function NMRiumWrapper() { break; } case 'file': { - const { data: files, activeTab = '' } = loadData; - void loadSpectra({ files, activeTab }); + const { data: files, activeTab = '', fileFilter } = loadData; + void loadSpectra({ files, activeTab, fileFilter }); break; } case 'url': { - const { data: urls, activeTab = '' } = loadData; - void loadSpectra({ urls, activeTab }); + const { data: urls, activeTab = '', fileFilter } = loadData; + void loadSpectra({ urls, activeTab, fileFilter }); break; } default: { diff --git a/src/config/nmrxiv/index.ts b/src/config/nmrxiv/index.ts new file mode 100644 index 0000000..a723cec --- /dev/null +++ b/src/config/nmrxiv/index.ts @@ -0,0 +1,10 @@ +import development from './nmrxiv.development.json' with { type: 'json' }; +import production from './nmrxiv.production.json' with { type: 'json' }; + +interface NmrXivConfig { + baseURL: string; +} + +export const nmrXivConfig: NmrXivConfig = import.meta.env.DEV + ? development + : production; diff --git a/src/config/nmrxiv/nmrxiv.development.json b/src/config/nmrxiv/nmrxiv.development.json new file mode 100644 index 0000000..d2493bf --- /dev/null +++ b/src/config/nmrxiv/nmrxiv.development.json @@ -0,0 +1,3 @@ +{ + "baseURL": "https://dev.nmrxiv.org/api/v1/samples" +} \ No newline at end of file diff --git a/src/config/nmrxiv/nmrxiv.production.json b/src/config/nmrxiv/nmrxiv.production.json new file mode 100644 index 0000000..a0f9518 --- /dev/null +++ b/src/config/nmrxiv/nmrxiv.production.json @@ -0,0 +1,3 @@ +{ + "baseURL": "https://nmrxiv.org/api/v1/samples" +} \ No newline at end of file diff --git a/src/data-source/loadSpectraFromSource.ts b/src/data-source/loadSpectraFromSource.ts new file mode 100644 index 0000000..403c090 --- /dev/null +++ b/src/data-source/loadSpectraFromSource.ts @@ -0,0 +1,20 @@ +import { loadNmrXivSpectraById } from './nmrxiv.js'; + +export type SpectraSource = 'nmrxiv'; + +type SpectraSourceLoader = (id: string) => Promise; + +const spectraSourceLoaders: Record = { + nmrxiv: loadNmrXivSpectraById, +}; + +export async function loadSpectraFromSource( + source: string, + id: string, +): Promise { + const loader = spectraSourceLoaders[source]; + if (!loader) { + throw new Error(`Unknown spectra source: "${source}"`); + } + return loader(id); +} diff --git a/src/data-source/nmrxiv.ts b/src/data-source/nmrxiv.ts new file mode 100644 index 0000000..034f000 --- /dev/null +++ b/src/data-source/nmrxiv.ts @@ -0,0 +1,17 @@ +import { nmrXivConfig } from '../config/nmrxiv/index.js'; + +function getNmrXivSpectraJsonURL(id: string): string { + return `${nmrXivConfig.baseURL}/${id}/nmriumInfo`; +} + +export async function loadNmrXivSpectraById(id: string): Promise { + const response = await fetch(getNmrXivSpectraJsonURL(id)); + + if (!response.ok) { + throw new Error( + `Failed to fetch nmrXiv spectra "${id}" (status ${response.status})`, + ); + } + + return response.json(); +} diff --git a/src/events/types.ts b/src/events/types.ts index eef988a..4227d51 100644 --- a/src/events/types.ts +++ b/src/events/types.ts @@ -1,3 +1,4 @@ +import type { FilterOptions } from 'file-collection'; import type { NMRiumData, NMRiumState } from 'nmrium'; interface BlobObject { @@ -6,21 +7,19 @@ interface BlobObject { height: number; } type EventType = - | 'load' - | 'data-change' - | 'error' - | 'action-request' - | 'action-response'; + 'load' | 'data-change' | 'error' | 'action-request' | 'action-response'; type LoadData = | { data: string[]; activeTab?: string; + fileFilter?: FilterOptions; type: 'url'; } | { data: File[]; activeTab?: string; + fileFilter?: FilterOptions; type: 'file'; } | { diff --git a/src/hooks/useLoadSpectra.ts b/src/hooks/useLoadSpectra.ts index 830bc9f..633c865 100644 --- a/src/hooks/useLoadSpectra.ts +++ b/src/hooks/useLoadSpectra.ts @@ -7,6 +7,7 @@ import type { import { CURRENT_EXPORT_VERSION } from '@zakodium/nmrium-core'; import init from '@zakodium/nmrium-core-plugins'; import { FifoLogger } from 'fifo-logger'; +import type { FilterOptions } from 'file-collection'; import { FileCollection } from 'file-collection'; import { useCallback, useMemo, useState } from 'react'; @@ -14,10 +15,27 @@ import events from '../events/event.js'; import { getFileNameFromURL } from '../utilities/getFileNameFromURL.js'; import { isArrayOfString } from '../utilities/isArrayOfString.js'; -type LoadOptions = - | { nmrium: object; activeTab?: string } - | { urls: string[]; activeTab?: string } - | { files: File[]; activeTab?: string }; +interface BaseLoadOptions { + activeTab?: string; +} + +interface FileLoadOptions extends BaseLoadOptions { + fileFilter?: FilterOptions; +} + +interface NMRiumLoadOptions extends BaseLoadOptions { + nmrium: object; +} + +interface URLsLoadOptions extends FileLoadOptions { + urls: string[]; +} + +interface FilesLoadOptions extends FileLoadOptions { + files: File[]; +} + +type LoadOptions = NMRiumLoadOptions | URLsLoadOptions | FilesLoadOptions; // CoreReadReturn with `state.view` made optional to allow partial injection. export type NMRiumData = Omit & { @@ -51,16 +69,27 @@ const PARSING_OPTIONS: Partial = { logger, }; -async function loadSpectraFromNMRium(nmrium: object): Promise { +async function loadSpectraFromNMRium({ + nmrium, +}: NMRiumLoadOptions): Promise { return core.readNMRiumObject(nmrium, PARSING_OPTIONS); } -async function loadSpectraFromFiles(files: File[]): Promise { - const fileCollection = await new FileCollection().appendFileList(files); +async function loadSpectraFromFiles( + options: FilesLoadOptions, +): Promise { + const { files, fileFilter } = options; + const fileCollection = await new FileCollection({ + filter: fileFilter, + }).appendFileList(files); + return core.read(fileCollection, PARSING_OPTIONS); } -async function loadSpectraFromURLs(urls: string[]): Promise { +async function loadSpectraFromURLs( + options: URLsLoadOptions, +): Promise { + const { urls, fileFilter } = options; const entries = urls.map((url) => { const refURL = new URL(url); const name = getFileNameFromURL(url); @@ -73,7 +102,10 @@ async function loadSpectraFromURLs(urls: string[]): Promise { return { relativePath: path, baseURL: refURL.origin }; }); - return core.readFromWebSource({ entries }, PARSING_OPTIONS); + return core.readFromWebSource( + { entries }, + { ...PARSING_OPTIONS, fileFilter }, + ); } export function useLoadSpectra(): UseLoadSpectraResult { @@ -88,17 +120,17 @@ export function useLoadSpectra(): UseLoadSpectraResult { let resolvedActiveTab: string | undefined; if ('nmrium' in options) { - loadedResult = await loadSpectraFromNMRium(options.nmrium); + loadedResult = await loadSpectraFromNMRium(options); resolvedActiveTab = options.activeTab ?? loadedResult.state.view?.spectra?.activeTab; } else if ('urls' in options) { if (!isArrayOfString(options.urls)) { throw new Error('The input must be a valid urls array of string[]'); } - loadedResult = await loadSpectraFromURLs(options.urls); + loadedResult = await loadSpectraFromURLs(options); resolvedActiveTab = options.activeTab; } else { - loadedResult = await loadSpectraFromFiles(options.files); + loadedResult = await loadSpectraFromFiles(options); resolvedActiveTab = options.activeTab; } diff --git a/src/hooks/usePreferences.ts b/src/hooks/usePreferences.ts index 567aebc..9d7280b 100644 --- a/src/hooks/usePreferences.ts +++ b/src/hooks/usePreferences.ts @@ -3,7 +3,9 @@ import type { WorkspacePreferences, } from '@zakodium/nmrium-core'; import type { NMRiumWorkspace } from 'nmrium'; +import { useMemo } from 'react'; +import { parseSpectraSource } from '../utilities/parseSpectraSource.js'; import type { WorkspaceOptions } from '../workspaces/integration.js'; import { getIntegrationWorkspace } from '../workspaces/integration.js'; import { getNmrXivWorkspace } from '../workspaces/nmrxiv.js'; @@ -58,11 +60,18 @@ export function usePreferences() { parameters.get('hidePanelOnLoad')?.toLowerCase() === 'true'; } + const rawSpectra = parameters.get('spectra'); + const spectraSource = useMemo( + () => parseSpectraSource(rawSpectra), + [rawSpectra], + ); + return { preferences, workspace, defaultEmptyMessage, customWorkspaces, + spectraSource, }; } diff --git a/src/utilities/parseSpectraSource.ts b/src/utilities/parseSpectraSource.ts new file mode 100644 index 0000000..274bea7 --- /dev/null +++ b/src/utilities/parseSpectraSource.ts @@ -0,0 +1,25 @@ +export interface SpectraSource { + source: string; + id: string; +} + +/** + * Parses a `spectra` query parameter in the format `:` and returns an object with `source` and `id` properties. + * + * Example: + * `nmrxiv:S2173` => { source: 'nmrxiv', id: 'S2173' } + */ +export function parseSpectraSource( + value: string | null, +): SpectraSource | undefined { + if (!value) return undefined; + + const separatorIndex = value.indexOf(':'); + if (separatorIndex === -1) return undefined; + + const source = value.slice(0, separatorIndex).trim(); + const id = value.slice(separatorIndex + 1).trim(); + if (!source || !id) return undefined; + + return { source, id }; +}