From 89c2806a80b3e60257608a9ecda4a11d4891c913 Mon Sep 17 00:00:00 2001 From: hamed musallam Date: Thu, 7 Dec 2023 10:15:35 +0100 Subject: [PATCH 01/10] chore: update dependencies --- package-lock.json | 1757 ++++++++++------- package.json | 62 +- src/component/1d-2d/tools/BrushXY.tsx | 8 +- src/component/hooks/usePanelPreferences.ts | 28 +- .../forms/components/AddSignalFormTab.tsx | 1 + .../forms/validation/EditRangeValidation.ts | 2 + .../modal/setting/settingsValidation.ts | 1 + .../panels/RangesPanel/RangesTableRow.tsx | 4 +- .../TableColumns/SignalDeltaHzColumn.tsx | 4 +- .../AdditionalColumnField.tsx | 4 +- .../AdditionalColumnHeader.tsx | 4 +- .../CorrelationTable/CorrelationTableRow.tsx | 4 +- .../panels/SummaryPanel/Overview.tsx | 4 +- .../panels/ZonesPanel/ZonesTableRow.tsx | 4 +- .../panels/extra/preferences/ColumnsHelper.ts | 3 +- .../preferences/index.tsx | 2 + src/data/SpectraManager.ts | 4 +- src/data/data2d/Processing2D.ts | 194 -- src/data/data2d/Spectrum2D/contours.ts | 4 +- test-e2e/panels/peaks.test.ts | 4 + test-e2e/panels/ranges.test.ts | 3 + test-e2e/panels/spectra.test.ts | 1 + 22 files changed, 1071 insertions(+), 1031 deletions(-) delete mode 100644 src/data/data2d/Processing2D.ts diff --git a/package-lock.json b/package-lock.json index 103347751..12c81a066 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "0.45.0", "license": "MIT", "dependencies": { - "@blueprintjs/core": "^5.6.0", + "@blueprintjs/core": "^5.7.1", "@emotion/react": "^11.11.1", "@emotion/styled": "^11.11.0", "@lukeed/uuid": "^2.0.1", @@ -33,23 +33,23 @@ "ml-baseline-correction-regression": "^1.0.2", "ml-conrec": "^5.0.2", "ml-gsd": "^12.1.3", - "ml-matrix": "^6.10.8", + "ml-matrix": "^6.11.0", "ml-spectra-processing": "^12.8.0", "ml-stat": "^1.3.3", "multiplet-analysis": "^2.1.2", "nmr-correlation": "^2.3.3", "nmr-load-save": "^0.23.9", "nmr-processing": "^11.6.1", - "nmredata": "^0.9.7", + "nmredata": "^0.9.9", "numeral": "^2.0.6", - "openchemlib": "^8.7.1", - "openchemlib-utils": "^5.6.1", + "openchemlib": "^8.7.2", + "openchemlib-utils": "^5.6.0", "papaparse": "^5.4.1", "re-resizable": "6.9.11", "react-d3-utils": "^1.0.0", "react-dropzone": "^14.2.3", "react-error-boundary": "^4.0.11", - "react-icons": "^4.11.0", + "react-icons": "^4.12.0", "react-inspector": "^6.0.2", "react-mf": "^2.0.2", "react-ocl": "^6.1.0", @@ -60,45 +60,45 @@ "react-slider": "^2.0.6", "react-table": "^7.8.0", "react-transition-group": "^4.4.5", - "react-use": "^17.4.0", + "react-use": "^17.4.2", "smart-array-filter": "^4.0.2", "yup": "^1.3.2" }, "devDependencies": { - "@babel/plugin-transform-modules-commonjs": "^7.23.0", - "@babel/preset-react": "^7.22.15", - "@babel/preset-typescript": "^7.23.2", - "@playwright/test": "^1.39.0", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/preset-react": "^7.23.3", + "@babel/preset-typescript": "^7.23.3", + "@playwright/test": "^1.40.1", "@simbathesailor/use-what-changed": "^2.0.0", - "@types/d3": "^7.4.2", - "@types/lodash": "^4.14.200", - "@types/node": "^20.8.10", - "@types/papaparse": "^5.3.10", - "@types/react": "^18.2.36", - "@types/react-dom": "^18.2.14", - "@types/react-table": "^7.7.17", - "@vitejs/plugin-react-swc": "^3.4.1", - "@vitest/coverage-v8": "^0.34.6", + "@types/d3": "^7.4.3", + "@types/lodash": "^4.14.202", + "@types/node": "^20.10.4", + "@types/papaparse": "^5.3.14", + "@types/react": "^18.2.42", + "@types/react-dom": "^18.2.17", + "@types/react-table": "^7.7.18", + "@vitejs/plugin-react-swc": "^3.5.0", + "@vitest/coverage-v8": "^1.0.1", "cross-env": "^7.0.3", - "cspell": "^7.3.8", - "eslint": "^8.53.0", - "eslint-config-cheminfo-react": "^10.0.0", - "eslint-config-cheminfo-typescript": "^12.0.4", + "cspell": "^8.1.3", + "eslint": "^8.55.0", + "eslint-config-cheminfo-react": "^10.1.0", + "eslint-config-cheminfo-typescript": "^12.1.0", "modern-normalize": "^2.0.0", "postcss-styled-syntax": "^0.5.0", - "prettier": "^3.0.3", - "rc-menu": "^9.12.2", + "prettier": "^3.1.0", + "rc-menu": "^9.12.4", "react": "^18.2.0", "react-dom": "^18.2.0", - "react-router-dom": "^6.18.0", + "react-router-dom": "^6.20.1", "rimraf": "^5.0.5", "rollup-plugin-analyzer": "^4.0.0", "serve": "^14.2.1", "stylelint": "^15.11.0", "stylelint-config-standard": "^34.0.0", - "typescript": "^5.2.2", - "vite": "^4.5.0", - "vitest": "^0.34.6" + "typescript": "^5.3.3", + "vite": "^5.0.6", + "vitest": "^1.0.1" }, "peerDependencies": { "react": ">=18.0.0", @@ -226,17 +226,17 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", - "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.5.tgz", + "integrity": "sha512-QELlRWxSpgdwdJzSJn4WAhKC+hvw/AtHbbrIoncKHkhKKR/luAlKkgBDcri1EzWAo8f8VvYVryEHN4tax/V67A==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-replace-supers": "^7.22.20", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", "semver": "^6.3.1" @@ -307,9 +307,9 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz", - "integrity": "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", @@ -400,9 +400,9 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", "engines": { "node": ">=6.9.0" } @@ -453,9 +453,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", - "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.5.tgz", + "integrity": "sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -465,9 +465,9 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", - "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -480,9 +480,9 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", - "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", + "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -495,12 +495,12 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz", - "integrity": "sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", + "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.23.0", + "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-simple-access": "^7.22.5" }, @@ -512,9 +512,9 @@ } }, "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz", - "integrity": "sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.23.3.tgz", + "integrity": "sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -561,9 +561,9 @@ } }, "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.22.5.tgz", - "integrity": "sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.23.3.tgz", + "integrity": "sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", @@ -577,15 +577,15 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.15.tgz", - "integrity": "sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.5.tgz", + "integrity": "sha512-2fMkXEJkrmwgu2Bsv1Saxgj30IXZdJ+84lQcKKI7sm719oXs0BBw2ZENKdJdR1PjWndgLCEBNXJOri0fk7RYQA==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-create-class-features-plugin": "^7.23.5", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-typescript": "^7.22.5" + "@babel/plugin-syntax-typescript": "^7.23.3" }, "engines": { "node": ">=6.9.0" @@ -595,17 +595,17 @@ } }, "node_modules/@babel/preset-react": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.22.15.tgz", - "integrity": "sha512-Csy1IJ2uEh/PecCBXXoZGAZBeCATTuePzCSB7dLYWS0vOEj6CNpjxIhW4duWwZodBNueH7QO14WbGn8YyeuN9w==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.23.3.tgz", + "integrity": "sha512-tbkHOS9axH6Ysf2OUEqoSZ6T3Fa2SrNH6WTWSPBboxKzdxNc9qOICeLXkNG0ZEwbQ1HY8liwOce4aN/Ceyuq6w==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-transform-react-display-name": "^7.22.5", + "@babel/plugin-transform-react-display-name": "^7.23.3", "@babel/plugin-transform-react-jsx": "^7.22.15", "@babel/plugin-transform-react-jsx-development": "^7.22.5", - "@babel/plugin-transform-react-pure-annotations": "^7.22.5" + "@babel/plugin-transform-react-pure-annotations": "^7.23.3" }, "engines": { "node": ">=6.9.0" @@ -615,16 +615,16 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.2.tgz", - "integrity": "sha512-u4UJc1XsS1GhIGteM8rnGiIvf9rJpiVgMEeCnwlLA7WJPC+jcXWJAGxYmeqs5hOZD8BbAfnV5ezBOxQbb4OUxA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz", + "integrity": "sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-syntax-jsx": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.23.0", - "@babel/plugin-transform-typescript": "^7.22.15" + "@babel/plugin-syntax-jsx": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/plugin-transform-typescript": "^7.23.3" }, "engines": { "node": ">=6.9.0" @@ -681,11 +681,11 @@ } }, "node_modules/@babel/types": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", - "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.5.tgz", + "integrity": "sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==", "dependencies": { - "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-string-parser": "^7.23.4", "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, @@ -700,20 +700,20 @@ "dev": true }, "node_modules/@blueprintjs/colors": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@blueprintjs/colors/-/colors-5.0.5.tgz", - "integrity": "sha512-UcCsBxE8GTF6GW1oHBb+cuhPpKiJFWbIRkemwcRkp9HvXXQHxEaXlFFC6jAx5pf3JmRwde5/ck3r+lJFP1YqzA==", + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@blueprintjs/colors/-/colors-5.0.7.tgz", + "integrity": "sha512-JBbIowrQz/Ef8xsxlTTvVdqZXd0ePmaOXjaH6A3xZu6Ntnn4xEXjoSjxuzLno4gcE9yNxeBMrMrXGkkOu+aGPg==", "dependencies": { "tslib": "~2.6.2" } }, "node_modules/@blueprintjs/core": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@blueprintjs/core/-/core-5.6.0.tgz", - "integrity": "sha512-NtQL/iu8P8DhHUCWCstc9Ps+JkRZCPRJ2ZoxubOt21pfxN50CN0sKHkDETHUQyZ73RviveVIIK+m32mT5Wwdqg==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@blueprintjs/core/-/core-5.7.1.tgz", + "integrity": "sha512-nbOyMTyOAMKAm8WQH161toU6H/1997yQO9hP0vVzLHNmkgpf3sMfeZW5kaZUvx1uV6yWkcJOLqz6j/knt30imQ==", "dependencies": { - "@blueprintjs/colors": "^5.0.5", - "@blueprintjs/icons": "^5.3.0", + "@blueprintjs/colors": "^5.0.7", + "@blueprintjs/icons": "^5.4.1", "@popperjs/core": "^2.11.7", "classnames": "^2.3.1", "normalize.css": "^8.0.1", @@ -737,9 +737,9 @@ } }, "node_modules/@blueprintjs/icons": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@blueprintjs/icons/-/icons-5.3.0.tgz", - "integrity": "sha512-PGZHbWZ41b/SDOENlZQE1pAab4eluzf/hZ6sHB5nPrQNJuGNr94yaPp6u//Tu24iqVFFP20Soi3+ckhf/o3V/g==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@blueprintjs/icons/-/icons-5.4.1.tgz", + "integrity": "sha512-rDQxBEyksYa59nn9w4POZyiSEqv6uwy1nxh7eI3QRU7HsyQ4fsu8zmvmsDQwmw727DDXhl2ofWhs3u1wIBli4g==", "dependencies": { "change-case": "^4.1.2", "classnames": "^2.3.1", @@ -757,16 +757,16 @@ } }, "node_modules/@cspell/cspell-bundled-dicts": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-7.3.9.tgz", - "integrity": "sha512-ebfrf5Zaw33bcqT80Qrkv7IGT7GI/CDp15bSk2EUmdORzk1SCKZl6L4vUo3NLMmxVwYioS+OQmsW8E88sJNyGg==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-8.1.3.tgz", + "integrity": "sha512-TwLyL2bCtetXGhMudjOIgFPAsWF2UkT0E7T+DAZG8aUBfHoC/eco/sTmR6UJVpi6Crjs0YOQkFUBGrQ2pxJPcA==", "dev": true, "dependencies": { "@cspell/dict-ada": "^4.0.2", "@cspell/dict-aws": "^4.0.0", - "@cspell/dict-bash": "^4.1.2", - "@cspell/dict-companies": "^3.0.27", - "@cspell/dict-cpp": "^5.0.9", + "@cspell/dict-bash": "^4.1.3", + "@cspell/dict-companies": "^3.0.28", + "@cspell/dict-cpp": "^5.0.10", "@cspell/dict-cryptocurrencies": "^4.0.0", "@cspell/dict-csharp": "^4.0.2", "@cspell/dict-css": "^4.0.12", @@ -775,16 +775,16 @@ "@cspell/dict-docker": "^1.1.7", "@cspell/dict-dotnet": "^5.0.0", "@cspell/dict-elixir": "^4.0.3", - "@cspell/dict-en_us": "^4.3.11", + "@cspell/dict-en_us": "^4.3.12", "@cspell/dict-en-common-misspellings": "^1.0.2", "@cspell/dict-en-gb": "1.1.33", - "@cspell/dict-filetypes": "^3.0.2", + "@cspell/dict-filetypes": "^3.0.3", "@cspell/dict-fonts": "^4.0.0", "@cspell/dict-fsharp": "^1.0.1", "@cspell/dict-fullstack": "^3.1.5", "@cspell/dict-gaming-terms": "^1.0.4", "@cspell/dict-git": "^2.0.0", - "@cspell/dict-golang": "^6.0.4", + "@cspell/dict-golang": "^6.0.5", "@cspell/dict-haskell": "^4.0.1", "@cspell/dict-html": "^4.0.5", "@cspell/dict-html-symbol-entities": "^4.0.0", @@ -792,10 +792,10 @@ "@cspell/dict-k8s": "^1.0.2", "@cspell/dict-latex": "^4.0.0", "@cspell/dict-lorem-ipsum": "^4.0.0", - "@cspell/dict-lua": "^4.0.2", + "@cspell/dict-lua": "^4.0.3", "@cspell/dict-makefile": "^1.0.0", "@cspell/dict-node": "^4.0.3", - "@cspell/dict-npm": "^5.0.12", + "@cspell/dict-npm": "^5.0.13", "@cspell/dict-php": "^4.0.4", "@cspell/dict-powershell": "^5.0.2", "@cspell/dict-public-licenses": "^2.0.5", @@ -804,7 +804,7 @@ "@cspell/dict-ruby": "^5.0.1", "@cspell/dict-rust": "^4.0.1", "@cspell/dict-scala": "^5.0.0", - "@cspell/dict-software-terms": "^3.3.9", + "@cspell/dict-software-terms": "^3.3.11", "@cspell/dict-sql": "^2.1.2", "@cspell/dict-svelte": "^1.0.2", "@cspell/dict-swift": "^2.0.1", @@ -812,58 +812,58 @@ "@cspell/dict-vue": "^3.0.0" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/@cspell/cspell-json-reporter": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-7.3.9.tgz", - "integrity": "sha512-QHsem5OZXshFX+Wdlx3VpdPi9WS7KgoBMGGJ4zQZ3lp81Rb1tRj0Ij/98whq882QOmAVQfr+uOHANHLnyPr0LQ==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-8.1.3.tgz", + "integrity": "sha512-9iOU0Y733XuF0cqC7xwzJkOKFdJ65rYGnHFdUHzr5lxEqeG9X/jhlkzyHuGGOhPxkUeFP1x9XoLhXo1isMDbKA==", "dev": true, "dependencies": { - "@cspell/cspell-types": "7.3.9" + "@cspell/cspell-types": "8.1.3" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/@cspell/cspell-pipe": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-7.3.9.tgz", - "integrity": "sha512-gKYTHcryKOaTmr6t+M5h1sZnQ42eHeumBJejovphipXfdivedUnuYyQrrQGFAlUKzfEOWcOPME1nm17xsaX5Ww==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-8.1.3.tgz", + "integrity": "sha512-/dcnyLDeyFuoX4seZv7VsDQyRpt3ZY0vjZiDpqFul8hPydM8czLyRPPMD6Za+Gqg6dZmh9+VsQWK52hVsqc0QA==", "dev": true, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/@cspell/cspell-resolver": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-7.3.9.tgz", - "integrity": "sha512-2slYAGvi7EFLKyJ5hrYBNaFT2iyOEQM1pEIzm+PDuhNJE/9wuBY5pBVqIgFSPz53vsQvW9GJThNY8h1/2EH3ZA==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-8.1.3.tgz", + "integrity": "sha512-bGyJYqkHRilqhyKGL/NvODN5U+UvCuQo7kxgt0i3Vd7m7k6XYLsSLYZ4w6r1S5IQ/ybU8I5lh6/6fNqKwvo9eg==", "dev": true, "dependencies": { - "global-dirs": "^3.0.1" + "global-directory": "^4.0.1" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/@cspell/cspell-service-bus": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-7.3.9.tgz", - "integrity": "sha512-VyfK3qWtJZag4Fe/x1Oh/tqCNVGKGlQ2ArX1fVdmTVGQtZcbXuMKdZI80t4b8SGtzGINHufAdakpu3xucX/FrQ==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-8.1.3.tgz", + "integrity": "sha512-8E5ZveQKneNfK+cuFMy0y6tDsho71UPppEHNoLZsEFDbIxDdtQcAfs0pk4nwEzxPBt+dBB+Yl8KExQ6x2FAYQw==", "dev": true, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/@cspell/cspell-types": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-7.3.9.tgz", - "integrity": "sha512-p7s8yEV6ASz0HjiArH11yjNj3vXzK2Ep94GrpdtYJxSxFC2w1mXAVUaJB/5+jC4+1YeYsmcBFTXmZ1rGMyTv3g==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-8.1.3.tgz", + "integrity": "sha512-j14FENj+DzWu6JjzTl+0X5/OJv9AEckpEp6Jaw9YglxirrBBzTkZGfoLePe/AWo/MlIYp0asl92C1UHEjgz+FQ==", "dev": true, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/@cspell/dict-ada": { @@ -879,21 +879,21 @@ "dev": true }, "node_modules/@cspell/dict-bash": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-bash/-/dict-bash-4.1.2.tgz", - "integrity": "sha512-AEBWjbaMaJEyAjOHW0F15P2izBjli2cNerG3NjuVH7xX/HUUeNoTj8FF1nwpMufKwGQCvuyO2hCmkVxhJ0y55Q==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@cspell/dict-bash/-/dict-bash-4.1.3.tgz", + "integrity": "sha512-tOdI3QVJDbQSwPjUkOiQFhYcu2eedmX/PtEpVWg0aFps/r6AyjUQINtTgpqMYnYuq8O1QUIQqnpx21aovcgZCw==", "dev": true }, "node_modules/@cspell/dict-companies": { - "version": "3.0.27", - "resolved": "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-3.0.27.tgz", - "integrity": "sha512-gaPR/luf+4oKGyxvW4GbxGGPdHiC5kj/QefnmQqrLFrLiCSXMZg5/NL+Lr4E5lcHsd35meX61svITQAvsT7lyQ==", + "version": "3.0.28", + "resolved": "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-3.0.28.tgz", + "integrity": "sha512-UinHkMYB/1pUkLKm1PGIm9PBFYxeAa6YvbB1Rq/RAAlrs0WDwiDBr3BAYdxydukG1IqqwT5z9WtU+8D/yV/5lw==", "dev": true }, "node_modules/@cspell/dict-cpp": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/@cspell/dict-cpp/-/dict-cpp-5.0.9.tgz", - "integrity": "sha512-ql9WPNp8c+fhdpVpjpZEUWmxBHJXs9CJuiVVfW/iwv5AX7VuMHyEwid+9/6nA8qnCxkUQ5pW83Ums1lLjn8ScA==", + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/@cspell/dict-cpp/-/dict-cpp-5.0.10.tgz", + "integrity": "sha512-WCRuDrkFdpmeIR6uXQYKU9loMQKNFS4bUhtHdv5fu4qVyJSh3k/kgmtTm1h1BDTj8EwPRc/RGxS+9Z3b2mnabA==", "dev": true }, "node_modules/@cspell/dict-cryptocurrencies": { @@ -951,9 +951,9 @@ "dev": true }, "node_modules/@cspell/dict-en_us": { - "version": "4.3.11", - "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.3.11.tgz", - "integrity": "sha512-GhdavZFlS2YbUNcRtPbgJ9j6aUyq116LmDQ2/Q5SpQxJ5/6vVs8Yj5WxV1JD+Zh/Zim1NJDcneTOuLsUGi+Czw==", + "version": "4.3.12", + "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.3.12.tgz", + "integrity": "sha512-1bsUxFjgxF30FTzcU5uvmCvH3lyqVKR9dbwsJhomBlUM97f0edrd6590SiYBXDm7ruE68m3lJd4vs0Ev2D6FtQ==", "dev": true }, "node_modules/@cspell/dict-en-common-misspellings": { @@ -969,9 +969,9 @@ "dev": true }, "node_modules/@cspell/dict-filetypes": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-filetypes/-/dict-filetypes-3.0.2.tgz", - "integrity": "sha512-StoC0wPmFNav6F6P8/FYFN1BpZfPgOmktb8gQ9wTauelWofPeBW+A0t5ncZt9hXHtnbGDA98v4ukacV+ucbnUg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@cspell/dict-filetypes/-/dict-filetypes-3.0.3.tgz", + "integrity": "sha512-J9UP+qwwBLfOQ8Qg9tAsKtSY/WWmjj21uj6zXTI9hRLD1eG1uUOLcfVovAmtmVqUWziPSKMr87F6SXI3xmJXgw==", "dev": true }, "node_modules/@cspell/dict-fonts": { @@ -1005,9 +1005,9 @@ "dev": true }, "node_modules/@cspell/dict-golang": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/@cspell/dict-golang/-/dict-golang-6.0.4.tgz", - "integrity": "sha512-jOfewPEyN6U9Q80okE3b1PTYBfqZgHh7w4o271GSuAX+VKJ1lUDhdR4bPKRxSDdO5jHArw2u5C8nH2CWGuygbQ==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/@cspell/dict-golang/-/dict-golang-6.0.5.tgz", + "integrity": "sha512-w4mEqGz4/wV+BBljLxduFNkMrd3rstBNDXmoX5kD4UTzIb4Sy0QybWCtg2iVT+R0KWiRRA56QKOvBsgXiddksA==", "dev": true }, "node_modules/@cspell/dict-haskell": { @@ -1053,9 +1053,9 @@ "dev": true }, "node_modules/@cspell/dict-lua": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-lua/-/dict-lua-4.0.2.tgz", - "integrity": "sha512-eeC20Q+UnHcTVBK6pgwhSjGIVugO2XqU7hv4ZfXp2F9DxGx1RME0+1sKX4qAGhdFGwOBsEzb2fwUsAEP6Mibpg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@cspell/dict-lua/-/dict-lua-4.0.3.tgz", + "integrity": "sha512-lDHKjsrrbqPaea13+G9s0rtXjMO06gPXPYRjRYawbNmo4E/e3XFfVzeci3OQDQNDmf2cPOwt9Ef5lu2lDmwfJg==", "dev": true }, "node_modules/@cspell/dict-makefile": { @@ -1071,9 +1071,9 @@ "dev": true }, "node_modules/@cspell/dict-npm": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.0.12.tgz", - "integrity": "sha512-T/+WeQmtbxo7ad6hrdI8URptYstKJP+kXyWJZfuVJJGWJQ7yubxrI5Z5AfM+Dh/ff4xHmdzapxD9adaEQ727uw==", + "version": "5.0.13", + "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.0.13.tgz", + "integrity": "sha512-uPb3DlQA/FvlmzT5RjZoy7fy91mxMRZW1B+K3atVM5A/cmP1QlDaSW/iCtde5kHET1MOV7uxz+vy0Yha2OI5pQ==", "dev": true }, "node_modules/@cspell/dict-php": { @@ -1128,9 +1128,9 @@ "dev": true }, "node_modules/@cspell/dict-software-terms": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-3.3.9.tgz", - "integrity": "sha512-/O3EWe0SIznx18S7J3GAXPDe7sexn3uTsf4IlnGYK9WY6ZRuEywkXCB+5/USLTGf4+QC05pkHofphdvVSifDyA==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-3.3.11.tgz", + "integrity": "sha512-a2Zml4G47dbQ6GDdN7+YlIWs3nFnIcJkZOLT88m/LzxjApiF7AOZLqQiKwow03hyvGSuZy8itgQZmQHoPlw2vQ==", "dev": true }, "node_modules/@cspell/dict-sql": { @@ -1164,24 +1164,24 @@ "dev": true }, "node_modules/@cspell/dynamic-import": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-7.3.9.tgz", - "integrity": "sha512-P6tAmDVhrW03hmhetxhBKlNTYwL2lk8ZehYQwSpXaLnaFrS3xrQvfUaJ3Mj9W2CIMzSYXlLmPO2FLRhXK2dnEw==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-8.1.3.tgz", + "integrity": "sha512-/lXFLa92v4oOcZ2PbdRpOqBvnqWlYmGaV7iCy8+QhIWlMdzi+7tBX3LVTm9Jzvt/rJseVHQQ6RvfTsSmhbUMFQ==", "dev": true, "dependencies": { - "import-meta-resolve": "^3.1.1" + "import-meta-resolve": "^4.0.0" }, "engines": { - "node": ">=16" + "node": ">=18.0" } }, "node_modules/@cspell/strong-weak-map": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-7.3.9.tgz", - "integrity": "sha512-XKpw/p3+EN+PWiFAWc45RJPI9zQRkPSVdUFeZb0YLseWF/CkogScgIe4CLfMLITiVbP0X/FKk90+aTPfAU38kg==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-8.1.3.tgz", + "integrity": "sha512-GhWyximzk8tumo0zhrDV3+nFYiETYefiTBWAEVbXJMibuvitFocVZwddqN85J0UdZ2M7q6tvBleEaI9ME/16gA==", "dev": true, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/@csstools/css-parser-algorithms": { @@ -1409,13 +1409,13 @@ "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==" }, "node_modules/@es-joy/jsdoccomment": { - "version": "0.40.1", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.40.1.tgz", - "integrity": "sha512-YORCdZSusAlBrFpZ77pJjc5r1bQs5caPWtAu+WWmiSo+8XaUzseapVrfAtiRFbQWnrBxxLLEwF6f6ZG/UgCQCg==", + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.41.0.tgz", + "integrity": "sha512-aKUhyn1QI5Ksbqcr3fFJj16p99QdjUxXAEuFst1Z47DRyoiMwivIH9MV/ARcJOCXVjPfjITciej8ZD2O/6qUmw==", "dev": true, "peer": true, "dependencies": { - "comment-parser": "1.4.0", + "comment-parser": "1.4.1", "esquery": "^1.5.0", "jsdoc-type-pratt-parser": "~4.0.0" }, @@ -1424,9 +1424,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", - "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.8.tgz", + "integrity": "sha512-31E2lxlGM1KEfivQl8Yf5aYU/mflz9g06H6S15ITUFQueMFtFjESRMoDSkvMo8thYvLBax+VKTPlpnx+sPicOA==", "cpu": [ "arm" ], @@ -1440,9 +1440,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", - "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.8.tgz", + "integrity": "sha512-B8JbS61bEunhfx8kasogFENgQfr/dIp+ggYXwTqdbMAgGDhRa3AaPpQMuQU0rNxDLECj6FhDzk1cF9WHMVwrtA==", "cpu": [ "arm64" ], @@ -1456,9 +1456,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", - "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.8.tgz", + "integrity": "sha512-rdqqYfRIn4jWOp+lzQttYMa2Xar3OK9Yt2fhOhzFXqg0rVWEfSclJvZq5fZslnz6ypHvVf3CT7qyf0A5pM682A==", "cpu": [ "x64" ], @@ -1472,9 +1472,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", - "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.8.tgz", + "integrity": "sha512-RQw9DemMbIq35Bprbboyf8SmOr4UXsRVxJ97LgB55VKKeJOOdvsIPy0nFyF2l8U+h4PtBx/1kRf0BelOYCiQcw==", "cpu": [ "arm64" ], @@ -1488,9 +1488,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", - "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.8.tgz", + "integrity": "sha512-3sur80OT9YdeZwIVgERAysAbwncom7b4bCI2XKLjMfPymTud7e/oY4y+ci1XVp5TfQp/bppn7xLw1n/oSQY3/Q==", "cpu": [ "x64" ], @@ -1504,9 +1504,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", - "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.8.tgz", + "integrity": "sha512-WAnPJSDattvS/XtPCTj1tPoTxERjcTpH6HsMr6ujTT+X6rylVe8ggxk8pVxzf5U1wh5sPODpawNicF5ta/9Tmw==", "cpu": [ "arm64" ], @@ -1520,9 +1520,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", - "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.8.tgz", + "integrity": "sha512-ICvZyOplIjmmhjd6mxi+zxSdpPTKFfyPPQMQTK/w+8eNK6WV01AjIztJALDtwNNfFhfZLux0tZLC+U9nSyA5Zg==", "cpu": [ "x64" ], @@ -1536,9 +1536,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", - "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.8.tgz", + "integrity": "sha512-H4vmI5PYqSvosPaTJuEppU9oz1dq2A7Mr2vyg5TF9Ga+3+MGgBdGzcyBP7qK9MrwFQZlvNyJrvz6GuCaj3OukQ==", "cpu": [ "arm" ], @@ -1552,9 +1552,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", - "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.8.tgz", + "integrity": "sha512-z1zMZivxDLHWnyGOctT9JP70h0beY54xDDDJt4VpTX+iwA77IFsE1vCXWmprajJGa+ZYSqkSbRQ4eyLCpCmiCQ==", "cpu": [ "arm64" ], @@ -1568,9 +1568,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", - "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.8.tgz", + "integrity": "sha512-1a8suQiFJmZz1khm/rDglOc8lavtzEMRo0v6WhPgxkrjcU0LkHj+TwBrALwoz/OtMExvsqbbMI0ChyelKabSvQ==", "cpu": [ "ia32" ], @@ -1584,9 +1584,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", - "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.8.tgz", + "integrity": "sha512-fHZWS2JJxnXt1uYJsDv9+b60WCc2RlvVAy1F76qOLtXRO+H4mjt3Tr6MJ5l7Q78X8KgCFudnTuiQRBhULUyBKQ==", "cpu": [ "loong64" ], @@ -1600,9 +1600,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", - "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.8.tgz", + "integrity": "sha512-Wy/z0EL5qZYLX66dVnEg9riiwls5IYnziwuju2oUiuxVc+/edvqXa04qNtbrs0Ukatg5HEzqT94Zs7J207dN5Q==", "cpu": [ "mips64el" ], @@ -1616,9 +1616,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", - "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.8.tgz", + "integrity": "sha512-ETaW6245wK23YIEufhMQ3HSeHO7NgsLx8gygBVldRHKhOlD1oNeNy/P67mIh1zPn2Hr2HLieQrt6tWrVwuqrxg==", "cpu": [ "ppc64" ], @@ -1632,9 +1632,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", - "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.8.tgz", + "integrity": "sha512-T2DRQk55SgoleTP+DtPlMrxi/5r9AeFgkhkZ/B0ap99zmxtxdOixOMI570VjdRCs9pE4Wdkz7JYrsPvsl7eESg==", "cpu": [ "riscv64" ], @@ -1648,9 +1648,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", - "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.8.tgz", + "integrity": "sha512-NPxbdmmo3Bk7mbNeHmcCd7R7fptJaczPYBaELk6NcXxy7HLNyWwCyDJ/Xx+/YcNH7Im5dHdx9gZ5xIwyliQCbg==", "cpu": [ "s390x" ], @@ -1664,9 +1664,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", - "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.8.tgz", + "integrity": "sha512-lytMAVOM3b1gPypL2TRmZ5rnXl7+6IIk8uB3eLsV1JwcizuolblXRrc5ShPrO9ls/b+RTp+E6gbsuLWHWi2zGg==", "cpu": [ "x64" ], @@ -1680,9 +1680,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", - "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.8.tgz", + "integrity": "sha512-hvWVo2VsXz/8NVt1UhLzxwAfo5sioj92uo0bCfLibB0xlOmimU/DeAEsQILlBQvkhrGjamP0/el5HU76HAitGw==", "cpu": [ "x64" ], @@ -1696,9 +1696,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", - "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.8.tgz", + "integrity": "sha512-/7Y7u77rdvmGTxR83PgaSvSBJCC2L3Kb1M/+dmSIvRvQPXXCuC97QAwMugBNG0yGcbEGfFBH7ojPzAOxfGNkwQ==", "cpu": [ "x64" ], @@ -1712,9 +1712,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", - "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.8.tgz", + "integrity": "sha512-9Lc4s7Oi98GqFA4HzA/W2JHIYfnXbUYgekUP/Sm4BG9sfLjyv6GKKHKKVs83SMicBF2JwAX6A1PuOLMqpD001w==", "cpu": [ "x64" ], @@ -1728,9 +1728,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", - "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.8.tgz", + "integrity": "sha512-rq6WzBGjSzihI9deW3fC2Gqiak68+b7qo5/3kmB6Gvbh/NYPA0sJhrnp7wgV4bNwjqM+R2AApXGxMO7ZoGhIJg==", "cpu": [ "arm64" ], @@ -1744,9 +1744,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", - "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.8.tgz", + "integrity": "sha512-AIAbverbg5jMvJznYiGhrd3sumfwWs8572mIJL5NQjJa06P8KfCPWZQ0NwZbPQnbQi9OWSZhFVSUWjjIrn4hSw==", "cpu": [ "ia32" ], @@ -1760,9 +1760,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", - "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.8.tgz", + "integrity": "sha512-bfZ0cQ1uZs2PqpulNL5j/3w+GDhP36k1K5c38QdQg+Swy51jFZWWeIkteNsufkQxp986wnqRRsb/bHbY1WQ7TA==", "cpu": [ "x64" ], @@ -1800,9 +1800,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", - "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", @@ -1850,9 +1850,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.53.0.tgz", - "integrity": "sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.55.0.tgz", + "integrity": "sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -2013,8 +2013,7 @@ "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.20", @@ -2096,12 +2095,12 @@ } }, "node_modules/@playwright/test": { - "version": "1.39.0", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.39.0.tgz", - "integrity": "sha512-3u1iFqgzl7zr004bGPYiN/5EZpRUSFddQBra8Rqll5N0/vfpqlP9I9EXqAoGacuAbX6c9Ulg/Cjqglp5VkK6UQ==", + "version": "1.40.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.40.1.tgz", + "integrity": "sha512-EaaawMTOeEItCRvfmkI9v6rBkF1svM8wjl/YPRrg2N2Wmp+4qJYkWtJsbew1szfKKDm6fPLy4YAanBhIlf9dWw==", "dev": true, "dependencies": { - "playwright": "1.39.0" + "playwright": "1.40.1" }, "bin": { "playwright": "cli.js" @@ -2772,14 +2771,170 @@ } }, "node_modules/@remix-run/router": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.11.0.tgz", - "integrity": "sha512-BHdhcWgeiudl91HvVa2wxqZjSHbheSgIiDvxrF1VjFzBzpTtuDPkOdOi3Iqvc08kXtFkLjhbS+ML9aM8mJS+wQ==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.13.1.tgz", + "integrity": "sha512-so+DHzZKsoOcoXrILB4rqDkMDy7NLMErRdOxvzvOKb507YINKUP4Di+shbTZDhSE/pBZ+vr7XGIpcOO0VLSA+Q==", "dev": true, "engines": { "node": ">=14.0.0" } }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.6.1.tgz", + "integrity": "sha512-0WQ0ouLejaUCRsL93GD4uft3rOmB8qoQMU05Kb8CmMtMBe7XUDLAltxVZI1q6byNqEtU7N1ZX1Vw5lIpgulLQA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.6.1.tgz", + "integrity": "sha512-1TKm25Rn20vr5aTGGZqo6E4mzPicCUD79k17EgTLAsXc1zysyi4xXKACfUbwyANEPAEIxkzwue6JZ+stYzWUTA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.6.1.tgz", + "integrity": "sha512-cEXJQY/ZqMACb+nxzDeX9IPLAg7S94xouJJCNVE5BJM8JUEP4HeTF+ti3cmxWeSJo+5D+o8Tc0UAWUkfENdeyw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.6.1.tgz", + "integrity": "sha512-LoSU9Xu56isrkV2jLldcKspJ7sSXmZWkAxg7sW/RfF7GS4F5/v4EiqKSMCFbZtDu2Nc1gxxFdQdKwkKS4rwxNg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.6.1.tgz", + "integrity": "sha512-EfI3hzYAy5vFNDqpXsNxXcgRDcFHUWSx5nnRSCKwXuQlI5J9dD84g2Usw81n3FLBNsGCegKGwwTVsSKK9cooSQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.6.1.tgz", + "integrity": "sha512-9lhc4UZstsegbNLhH0Zu6TqvDfmhGzuCWtcTFXY10VjLLUe4Mr0Ye2L3rrtHaDd/J5+tFMEuo5LTCSCMXWfUKw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.6.1.tgz", + "integrity": "sha512-FfoOK1yP5ksX3wwZ4Zk1NgyGHZyuRhf99j64I5oEmirV8EFT7+OhUZEnP+x17lcP/QHJNWGsoJwrz4PJ9fBEXw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.6.1.tgz", + "integrity": "sha512-DNGZvZDO5YF7jN5fX8ZqmGLjZEXIJRdJEdTFMhiyXqyXubBa0WVLDWSNlQ5JR2PNgDbEV1VQowhVRUh+74D+RA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.6.1.tgz", + "integrity": "sha512-RkJVNVRM+piYy87HrKmhbexCHg3A6Z6MU0W9GHnJwBQNBeyhCJG9KDce4SAMdicQnpURggSvtbGo9xAWOfSvIQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.6.1.tgz", + "integrity": "sha512-v2FVT6xfnnmTe3W9bJXl6r5KwJglMK/iRlkKiIFfO6ysKs0rDgz7Cwwf3tjldxQUrHL9INT/1r4VA0n9L/F1vQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.6.1.tgz", + "integrity": "sha512-YEeOjxRyEjqcWphH9dyLbzgkF8wZSKAKUkldRY6dgNR5oKs2LZazqGB41cWJ4Iqqcy9/zqYgmzBkRoVz3Q9MLw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.6.1.tgz", + "integrity": "sha512-0zfTlFAIhgz8V2G8STq8toAjsYYA6eci1hnXuyOTUFnymrtJwnS6uGKiv3v5UrPZkBlamLvrLV2iiaeqCKzb0A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@simbathesailor/use-what-changed": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@simbathesailor/use-what-changed/-/use-what-changed-2.0.0.tgz", @@ -3071,25 +3226,10 @@ "url": "https://github.com/sponsors/tannerlinsley" } }, - "node_modules/@types/chai": { - "version": "4.3.9", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.9.tgz", - "integrity": "sha512-69TtiDzu0bcmKQv3yg1Zx409/Kd7r0b5F1PfpYJfSHzLGtB53547V4u+9iqKYsTu/O2ai6KTb0TInNpvuQ3qmg==", - "dev": true - }, - "node_modules/@types/chai-subset": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.5.tgz", - "integrity": "sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==", - "dev": true, - "dependencies": { - "@types/chai": "*" - } - }, "node_modules/@types/d3": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.2.tgz", - "integrity": "sha512-Y4g2Yb30ZJmmtqAJTqMRaqXwRawfvpdpVmyEYEcyGNhrQI/Zvkq3k7yE1tdN07aFSmNBfvmegMQ9Fe2qy9ZMhw==", + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz", + "integrity": "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==", "dev": true, "dependencies": { "@types/d3-array": "*", @@ -3378,9 +3518,9 @@ "peer": true }, "node_modules/@types/lodash": { - "version": "4.14.200", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.200.tgz", - "integrity": "sha512-YI/M/4HRImtNf3pJgbF+W6FrXovqj+T+/HpENLTooK9PnkacBsDpeP3IpHab40CClUfhNmdM2WTNP2sa2dni5Q==" + "version": "4.14.202", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.202.tgz", + "integrity": "sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==" }, "node_modules/@types/lodash.merge": { "version": "4.6.9", @@ -3397,9 +3537,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.8.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.10.tgz", - "integrity": "sha512-TlgT8JntpcbmKUFzjhsyhGfP2fsiz1Mv56im6enJ905xG1DAYesxJaeSbGqQmAw8OWPdhyJGhGSQGKRNJ45u9w==", + "version": "20.10.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.4.tgz", + "integrity": "sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -3412,9 +3552,9 @@ "dev": true }, "node_modules/@types/papaparse": { - "version": "5.3.11", - "resolved": "https://registry.npmjs.org/@types/papaparse/-/papaparse-5.3.11.tgz", - "integrity": "sha512-ISil0lMkpRDrBTKRPnUgVb5IqxWwj19gWBrX/ROk3pbkkslBN3URa713r/BSfAUj+w9gTPg3S3f45aMToVfh1w==", + "version": "5.3.14", + "resolved": "https://registry.npmjs.org/@types/papaparse/-/papaparse-5.3.14.tgz", + "integrity": "sha512-LxJ4iEFcpqc6METwp9f6BV6VVc43m6MfH0VqFosHvrUgfXiFe6ww7R3itkOQ+TCK6Y+Iv/+RnnvtRZnkc5Kc9g==", "dev": true, "dependencies": { "@types/node": "*" @@ -3431,9 +3571,9 @@ "integrity": "sha512-mxSnDQxPqsZxmeShFH+uwQ4kO4gcJcGahjjMFeLbKE95IAZiiZyiEepGZjtXJ7hN/yfu0bu9xN2ajcU0JcxX6A==" }, "node_modules/@types/react": { - "version": "18.2.36", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.36.tgz", - "integrity": "sha512-o9XFsHYLLZ4+sb9CWUYwHqFVoG61SesydF353vFMMsQziiyRu8np4n2OYMUSDZ8XuImxDr9c5tR7gidlH29Vnw==", + "version": "18.2.42", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.42.tgz", + "integrity": "sha512-c1zEr96MjakLYus/wPnuWDo1/zErfdU9rNsIGmE+NV71nx88FG9Ttgo5dqorXTu/LImX2f63WBP986gJkMPNbA==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -3441,18 +3581,18 @@ } }, "node_modules/@types/react-dom": { - "version": "18.2.14", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.14.tgz", - "integrity": "sha512-V835xgdSVmyQmI1KLV2BEIUgqEuinxp9O4G6g3FqO/SqLac049E53aysv0oEFD2kHfejeKU+ZqL2bcFWj9gLAQ==", + "version": "18.2.17", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.17.tgz", + "integrity": "sha512-rvrT/M7Df5eykWFxn6MYt5Pem/Dbyc1N8Y0S9Mrkw2WFCRiqUgw9P7ul2NpwsXCSM1DVdENzdG9J5SreqfAIWg==", "devOptional": true, "dependencies": { "@types/react": "*" } }, "node_modules/@types/react-table": { - "version": "7.7.17", - "resolved": "https://registry.npmjs.org/@types/react-table/-/react-table-7.7.17.tgz", - "integrity": "sha512-25/SDkn0qnvxBvxSPnMO1vf1ymvcSmwPr7qcFuYyWElTGcsOWQsV+sCFq1dVhGYdd2fSsOnP4MkZUl/q9MlG+g==", + "version": "7.7.18", + "resolved": "https://registry.npmjs.org/@types/react-table/-/react-table-7.7.18.tgz", + "integrity": "sha512-OncztdDERQ35pjcQCpNoQe8KPOE8Rg2Ox4PlZHMGNgHTEaM1JyT2lWfNNbj2sCnOtQOHrOH7SzUnGUAXzqdksg==", "dev": true, "dependencies": { "@types/react": "*" @@ -3464,24 +3604,24 @@ "integrity": "sha512-s/FPdYRmZR8SjLWGMCuax7r3qCWQw9QKHzXVukAuuIJkXkDRwp+Pu5LMIVFi0Fxbav35WURicYr8u1QsoybnQw==" }, "node_modules/@types/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==", + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", + "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==", "dev": true, "peer": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.10.0.tgz", - "integrity": "sha512-uoLj4g2OTL8rfUQVx2AFO1hp/zja1wABJq77P6IclQs6I/m9GLrm7jCdgzZkvWdDCQf1uEvoa8s8CupsgWQgVg==", + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.13.2.tgz", + "integrity": "sha512-3+9OGAWHhk4O1LlcwLBONbdXsAhLjyCFogJY/cWy2lxdVJ2JrcTF2pTGMaLl2AE7U1l31n8Py4a8bx5DLf/0dQ==", "dev": true, "peer": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.10.0", - "@typescript-eslint/type-utils": "6.10.0", - "@typescript-eslint/utils": "6.10.0", - "@typescript-eslint/visitor-keys": "6.10.0", + "@typescript-eslint/scope-manager": "6.13.2", + "@typescript-eslint/type-utils": "6.13.2", + "@typescript-eslint/utils": "6.13.2", + "@typescript-eslint/visitor-keys": "6.13.2", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -3543,16 +3683,16 @@ "peer": true }, "node_modules/@typescript-eslint/parser": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.10.0.tgz", - "integrity": "sha512-+sZwIj+s+io9ozSxIWbNB5873OSdfeBEH/FR0re14WLI6BaKuSOnnwCJ2foUiu8uXf4dRp1UqHP0vrZ1zXGrog==", + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.13.2.tgz", + "integrity": "sha512-MUkcC+7Wt/QOGeVlM8aGGJZy1XV5YKjTpq9jK6r6/iLsGXhBVaGP5N0UYvFsu9BFlSpwY9kMretzdBH01rkRXg==", "dev": true, "peer": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.10.0", - "@typescript-eslint/types": "6.10.0", - "@typescript-eslint/typescript-estree": "6.10.0", - "@typescript-eslint/visitor-keys": "6.10.0", + "@typescript-eslint/scope-manager": "6.13.2", + "@typescript-eslint/types": "6.13.2", + "@typescript-eslint/typescript-estree": "6.13.2", + "@typescript-eslint/visitor-keys": "6.13.2", "debug": "^4.3.4" }, "engines": { @@ -3572,14 +3712,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.10.0.tgz", - "integrity": "sha512-TN/plV7dzqqC2iPNf1KrxozDgZs53Gfgg5ZHyw8erd6jd5Ta/JIEcdCheXFt9b1NYb93a1wmIIVW/2gLkombDg==", + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.13.2.tgz", + "integrity": "sha512-CXQA0xo7z6x13FeDYCgBkjWzNqzBn8RXaE3QVQVIUm74fWJLkJkaHmHdKStrxQllGh6Q4eUGyNpMe0b1hMkXFA==", "dev": true, "peer": true, "dependencies": { - "@typescript-eslint/types": "6.10.0", - "@typescript-eslint/visitor-keys": "6.10.0" + "@typescript-eslint/types": "6.13.2", + "@typescript-eslint/visitor-keys": "6.13.2" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -3590,14 +3730,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.10.0.tgz", - "integrity": "sha512-wYpPs3hgTFblMYwbYWPT3eZtaDOjbLyIYuqpwuLBBqhLiuvJ+9sEp2gNRJEtR5N/c9G1uTtQQL5AhV0fEPJYcg==", + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.13.2.tgz", + "integrity": "sha512-Qr6ssS1GFongzH2qfnWKkAQmMUyZSyOr0W54nZNU1MDfo+U4Mv3XveeLZzadc/yq8iYhQZHYT+eoXJqnACM1tw==", "dev": true, "peer": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.10.0", - "@typescript-eslint/utils": "6.10.0", + "@typescript-eslint/typescript-estree": "6.13.2", + "@typescript-eslint/utils": "6.13.2", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -3618,9 +3758,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.10.0.tgz", - "integrity": "sha512-36Fq1PWh9dusgo3vH7qmQAj5/AZqARky1Wi6WpINxB6SkQdY5vQoT2/7rW7uBIsPDcvvGCLi4r10p0OJ7ITAeg==", + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.13.2.tgz", + "integrity": "sha512-7sxbQ+EMRubQc3wTfTsycgYpSujyVbI1xw+3UMRUcrhSy+pN09y/lWzeKDbvhoqcRbHdc+APLs/PWYi/cisLPg==", "dev": true, "peer": true, "engines": { @@ -3632,14 +3772,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.10.0.tgz", - "integrity": "sha512-ek0Eyuy6P15LJVeghbWhSrBCj/vJpPXXR+EpaRZqou7achUWL8IdYnMSC5WHAeTWswYQuP2hAZgij/bC9fanBg==", + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.13.2.tgz", + "integrity": "sha512-SuD8YLQv6WHnOEtKv8D6HZUzOub855cfPnPMKvdM/Bh1plv1f7Q/0iFUDLKKlxHcEstQnaUU4QZskgQq74t+3w==", "dev": true, "peer": true, "dependencies": { - "@typescript-eslint/types": "6.10.0", - "@typescript-eslint/visitor-keys": "6.10.0", + "@typescript-eslint/types": "6.13.2", + "@typescript-eslint/visitor-keys": "6.13.2", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -3696,18 +3836,18 @@ "peer": true }, "node_modules/@typescript-eslint/utils": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.10.0.tgz", - "integrity": "sha512-v+pJ1/RcVyRc0o4wAGux9x42RHmAjIGzPRo538Z8M1tVx6HOnoQBCX/NoadHQlZeC+QO2yr4nNSFWOoraZCAyg==", + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.13.2.tgz", + "integrity": "sha512-b9Ptq4eAZUym4idijCRzl61oPCwwREcfDI8xGk751Vhzig5fFZR9CyzDz4Sp/nxSLBYxUPyh4QdIDqWykFhNmQ==", "dev": true, "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.10.0", - "@typescript-eslint/types": "6.10.0", - "@typescript-eslint/typescript-estree": "6.10.0", + "@typescript-eslint/scope-manager": "6.13.2", + "@typescript-eslint/types": "6.13.2", + "@typescript-eslint/typescript-estree": "6.13.2", "semver": "^7.5.4" }, "engines": { @@ -3758,13 +3898,13 @@ "peer": true }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.10.0.tgz", - "integrity": "sha512-xMGluxQIEtOM7bqFCo+rCMh5fqI+ZxV5RUUOa29iVPz1OgCZrtc7rFnz5cLUazlkPKYqX+75iuDq7m0HQ48nCg==", + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.13.2.tgz", + "integrity": "sha512-OGznFs0eAQXJsp+xSd6k/O1UbFi/K/L7WjqeRoFE7vadjAF9y0uppXhYNQNEqygjou782maGClOoZwPqF0Drlw==", "dev": true, "peer": true, "dependencies": { - "@typescript-eslint/types": "6.10.0", + "@typescript-eslint/types": "6.13.2", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -3782,50 +3922,52 @@ "dev": true }, "node_modules/@vitejs/plugin-react-swc": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.4.1.tgz", - "integrity": "sha512-7YQOQcVV5x1luD8nkbCDdyYygFvn1hjqJk68UvNAzY2QG4o4N5EwAhLLFNOcd1HrdMwDl0VElP8VutoWf9IvJg==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.5.0.tgz", + "integrity": "sha512-1PrOvAaDpqlCV+Up8RkAh9qaiUjoDUcjtttyhXDKw53XA6Ve16SOp6cCOpRs8Dj8DqUQs6eTW5YkLcLJjrXAig==", "dev": true, "dependencies": { - "@swc/core": "^1.3.95" + "@swc/core": "^1.3.96" }, "peerDependencies": { - "vite": "^4" + "vite": "^4 || ^5" } }, "node_modules/@vitest/coverage-v8": { - "version": "0.34.6", - "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-0.34.6.tgz", - "integrity": "sha512-fivy/OK2d/EsJFoEoxHFEnNGTg+MmdZBAVK9Ka4qhXR2K3J0DS08vcGVwzDtXSuUMabLv4KtPcpSKkcMXFDViw==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-1.0.1.tgz", + "integrity": "sha512-Z4a7ig4VjUCT/P+LRB3IZrBRXb9xWRUM8rSBH9cKgfrU1Oe01/K2WJKtGshOnQwXZoSfQtwCGpbnHmB/qJwjcw==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.1", "@bcoe/v8-coverage": "^0.2.3", - "istanbul-lib-coverage": "^3.2.0", + "debug": "^4.3.4", + "istanbul-lib-coverage": "^3.2.2", "istanbul-lib-report": "^3.0.1", "istanbul-lib-source-maps": "^4.0.1", - "istanbul-reports": "^3.1.5", - "magic-string": "^0.30.1", + "istanbul-reports": "^3.1.6", + "magic-string": "^0.30.5", + "magicast": "^0.3.2", "picocolors": "^1.0.0", - "std-env": "^3.3.3", + "std-env": "^3.5.0", "test-exclude": "^6.0.0", - "v8-to-istanbul": "^9.1.0" + "v8-to-istanbul": "^9.2.0" }, "funding": { "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "vitest": ">=0.32.0 <1" + "vitest": "^1.0.0" } }, "node_modules/@vitest/expect": { - "version": "0.34.6", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-0.34.6.tgz", - "integrity": "sha512-QUzKpUQRc1qC7qdGo7rMK3AkETI7w18gTCUrsNnyjjJKYiuUB9+TQK3QnR1unhCnWRC0AbKv2omLGQDF/mIjOw==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.0.1.tgz", + "integrity": "sha512-3cdrb/eKD/0tygDX75YscuHEHMUJ70u3UoLSq2eqhWks57AyzvsDQbyn53IhZ0tBN7gA8Jj2VhXiOV2lef7thw==", "dev": true, "dependencies": { - "@vitest/spy": "0.34.6", - "@vitest/utils": "0.34.6", + "@vitest/spy": "1.0.1", + "@vitest/utils": "1.0.1", "chai": "^4.3.10" }, "funding": { @@ -3833,13 +3975,13 @@ } }, "node_modules/@vitest/runner": { - "version": "0.34.6", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-0.34.6.tgz", - "integrity": "sha512-1CUQgtJSLF47NnhN+F9X2ycxUP0kLHQ/JWvNHbeBfwW8CzEGgeskzNnHDyv1ieKTltuR6sdIHV+nmR6kPxQqzQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.0.1.tgz", + "integrity": "sha512-/+z0vhJ0MfRPT3AyTvAK6m57rzlew/ct8B2a4LMv7NhpPaiI2QLGyOBMB3lcioWdJHjRuLi9aYppfOv0B5aRQA==", "dev": true, "dependencies": { - "@vitest/utils": "0.34.6", - "p-limit": "^4.0.0", + "@vitest/utils": "1.0.1", + "p-limit": "^5.0.0", "pathe": "^1.1.1" }, "funding": { @@ -3847,15 +3989,15 @@ } }, "node_modules/@vitest/runner/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz", + "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==", "dev": true, "dependencies": { "yocto-queue": "^1.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -3874,40 +4016,40 @@ } }, "node_modules/@vitest/snapshot": { - "version": "0.34.6", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-0.34.6.tgz", - "integrity": "sha512-B3OZqYn6k4VaN011D+ve+AA4whM4QkcwcrwaKwAbyyvS/NB1hCWjFIBQxAQQSQir9/RtyAAGuq+4RJmbn2dH4w==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.0.1.tgz", + "integrity": "sha512-wIPtPDGSxEZ+DpNMc94AsybX6LV6uN6sosf5TojyP1m2QbKwiRuLV/5RSsjt1oWViHsTj8mlcwrQQ1zHGO0fMw==", "dev": true, "dependencies": { - "magic-string": "^0.30.1", + "magic-string": "^0.30.5", "pathe": "^1.1.1", - "pretty-format": "^29.5.0" + "pretty-format": "^29.7.0" }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/spy": { - "version": "0.34.6", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-0.34.6.tgz", - "integrity": "sha512-xaCvneSaeBw/cz8ySmF7ZwGvL0lBjfvqc1LpQ/vcdHEvpLn3Ff1vAvjw+CoGn0802l++5L/pxb7whwcWAw+DUQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.0.1.tgz", + "integrity": "sha512-yXwm1uKhBVr/5MhVeSmtNqK+0q2RXIchJt8kokEKdrWLtkPeDgdbZ6SjR1VQGZuNdWL6sSBnLayIyVvcS0qLfA==", "dev": true, "dependencies": { - "tinyspy": "^2.1.1" + "tinyspy": "^2.2.0" }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/utils": { - "version": "0.34.6", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.34.6.tgz", - "integrity": "sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.0.1.tgz", + "integrity": "sha512-MGPCHkzXbbAyscrhwGzh8uP1HPrTYLWaj1WTDtWSGrpe2yJWLRN9mF9ooKawr6NMOg9vTBtg2JqWLfuLC7Dknw==", "dev": true, "dependencies": { - "diff-sequences": "^29.4.3", - "loupe": "^2.3.6", - "pretty-format": "^29.5.0" + "diff-sequences": "^29.6.3", + "loupe": "^2.3.7", + "pretty-format": "^29.7.0" }, "funding": { "url": "https://opencollective.com/vitest" @@ -3959,9 +4101,9 @@ } }, "node_modules/acorn-walk": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.0.tgz", - "integrity": "sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==", + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.1.tgz", + "integrity": "sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==", "dev": true, "engines": { "node": ">=0.4.0" @@ -4909,9 +5051,9 @@ } }, "node_modules/comment-parser": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.0.tgz", - "integrity": "sha512-QLyTNiZ2KDOibvFPlZ6ZngVsZ/0gYnE6uTXi5aoDg8ed3AkJAz4sEje3Y8a29hQ1s6A99MZXe47fLAXQ1rTqaw==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz", + "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==", "dev": true, "peer": true, "engines": { @@ -5122,25 +5264,25 @@ } }, "node_modules/cspell": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/cspell/-/cspell-7.3.9.tgz", - "integrity": "sha512-QzunjO9CmV5+98UfG4ONhvPtrcAC6Y2pEKeOrp5oPeyAI7HwgxmfsR3ybHRlMPAGcwKtDOurBKxM7jqXNwkzmA==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/cspell/-/cspell-8.1.3.tgz", + "integrity": "sha512-SU4Su6002bPoJYaiMeNV4wwLoS8TwaOgIwaTxhys3GDbJIxZV6CrDgwksezHcG7TZrC4yrveDVsdpnrzmQ7T5Q==", "dev": true, "dependencies": { - "@cspell/cspell-json-reporter": "7.3.9", - "@cspell/cspell-pipe": "7.3.9", - "@cspell/cspell-types": "7.3.9", - "@cspell/dynamic-import": "7.3.9", + "@cspell/cspell-json-reporter": "8.1.3", + "@cspell/cspell-pipe": "8.1.3", + "@cspell/cspell-types": "8.1.3", + "@cspell/dynamic-import": "8.1.3", "chalk": "^5.3.0", "chalk-template": "^1.1.0", "commander": "^11.1.0", - "cspell-gitignore": "7.3.9", - "cspell-glob": "7.3.9", - "cspell-io": "7.3.9", - "cspell-lib": "7.3.9", + "cspell-gitignore": "8.1.3", + "cspell-glob": "8.1.3", + "cspell-io": "8.1.3", + "cspell-lib": "8.1.3", "fast-glob": "^3.3.2", "fast-json-stable-stringify": "^2.1.0", - "file-entry-cache": "^7.0.1", + "file-entry-cache": "^7.0.2", "get-stdin": "^9.0.0", "semver": "^7.5.4", "strip-ansi": "^7.1.0", @@ -5151,114 +5293,129 @@ "cspell-esm": "bin.mjs" }, "engines": { - "node": ">=16" + "node": ">=18" }, "funding": { "url": "https://github.com/streetsidesoftware/cspell?sponsor=1" } }, + "node_modules/cspell-config-lib": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/cspell-config-lib/-/cspell-config-lib-8.1.3.tgz", + "integrity": "sha512-whzJYxcxos3vnywn0alCFZ+Myc0K/C62pUurfOGhgvIba7ArmlXhNRaL2r5noBxWARtpBOtzz3vrzSBK7Lq6jg==", + "dev": true, + "dependencies": { + "@cspell/cspell-types": "8.1.3", + "comment-json": "^4.2.3", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/cspell-config-lib/node_modules/yaml": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", + "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, "node_modules/cspell-dictionary": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-7.3.9.tgz", - "integrity": "sha512-lkWfX5QNbs4yKqD9wa+G+NHRWmLgFdyposgJOyd/ojDbx99CDPMhMhg9pyMKdYl6Yt8kjMow58/i12EYvD8wnA==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-8.1.3.tgz", + "integrity": "sha512-nkRQDPNnA6tw+hJFBqq26M0nK306q5rtyv/AUIWa8ZHhQkwzACnpMSpuJA7/DV5GVvPKltMK5M4A6vgfpoaFHw==", "dev": true, "dependencies": { - "@cspell/cspell-pipe": "7.3.9", - "@cspell/cspell-types": "7.3.9", - "cspell-trie-lib": "7.3.9", - "fast-equals": "^4.0.3", + "@cspell/cspell-pipe": "8.1.3", + "@cspell/cspell-types": "8.1.3", + "cspell-trie-lib": "8.1.3", + "fast-equals": "^5.0.1", "gensequence": "^6.0.0" }, "engines": { - "node": ">=16" + "node": ">=18" } }, - "node_modules/cspell-dictionary/node_modules/fast-equals": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-4.0.3.tgz", - "integrity": "sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg==", - "dev": true - }, "node_modules/cspell-gitignore": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-7.3.9.tgz", - "integrity": "sha512-DLuu+K2q4xYNL4DpLyysUeiGU/NYYoObzfOYiISzOKYpi3aFLiUaiyfF6xWGsahmlijif+8bwSsIMmcvGa5dgA==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-8.1.3.tgz", + "integrity": "sha512-NHx5lg44eCKb6yJmUPOCz4prcuYowzoo5GJ5hOcCfbk7ZEBWV1E2/kDRuQMOK2W0y1hNGr45CSxO3UxWJlYg7w==", "dev": true, "dependencies": { - "cspell-glob": "7.3.9", - "find-up": "^5.0.0" + "cspell-glob": "8.1.3", + "find-up-simple": "^1.0.0" }, "bin": { "cspell-gitignore": "bin.mjs" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/cspell-glob": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-7.3.9.tgz", - "integrity": "sha512-7PaTkCzJWjQex3men857v3ExF7Q10jbQkfD+wdln2te9iNFd+HEkstA173vb828D9yeib1q1of8oONr2SeGycg==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-8.1.3.tgz", + "integrity": "sha512-Likr7UVUXBpthQnM5r6yao3X0YBNRbJ9AHWXTC2RJfzwZOFKF+pKPfeo3FU+Px8My96M4RC2bVMbrbZUwN5NJw==", "dev": true, "dependencies": { "micromatch": "^4.0.5" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/cspell-grammar": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-7.3.9.tgz", - "integrity": "sha512-s1QOPg4AxWE8XBewDQLe14j0uDyWGjREfm4dZFTrslAZUrQ8/df5s152M5LtgOEza33FrkKKE2axbGvgS9O7sQ==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-8.1.3.tgz", + "integrity": "sha512-dTOwNq6a5wcVzOsi4xY5/tq2r2w/+wLVU+WfyySTsPe66Rjqx/QceFl4OinImks/ZMKF7Zyjd3WGyQ5TcSsJFQ==", "dev": true, "dependencies": { - "@cspell/cspell-pipe": "7.3.9", - "@cspell/cspell-types": "7.3.9" + "@cspell/cspell-pipe": "8.1.3", + "@cspell/cspell-types": "8.1.3" }, "bin": { "cspell-grammar": "bin.mjs" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/cspell-io": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-7.3.9.tgz", - "integrity": "sha512-IbXOYaDxLg94uijv13kqb+6PQjEwGboQYtABuZs2+HuUVW89K2tE+fQcEhkAsrZ11sDj5lUqgEQj9omvknZSuA==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-8.1.3.tgz", + "integrity": "sha512-QkcFeYd79oIl7PgSqFSZyvwXnZQhXmdCI733n54IN2+iXDcf7W0mwptxoC/cE19RkEwAwEFLG81UAy6L/BXI6A==", "dev": true, "dependencies": { - "@cspell/cspell-service-bus": "7.3.9", - "node-fetch": "^2.7.0" + "@cspell/cspell-service-bus": "8.1.3" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/cspell-lib": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-7.3.9.tgz", - "integrity": "sha512-eFYYs8XoYmdu78UxrPisD+hAoXOLaLzcevKf9+oDPDgJmHpkGoFgbIBnHMRIsAM1e+QDS6OlWG/rybhZTqanCQ==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-8.1.3.tgz", + "integrity": "sha512-Kk8bpHVkDZO4MEiPkDvRf/LgJ0h5mufbKLTWModq6k0Ca8EkZ/qgQlZ0ve0rIivbleSqebuWjpJHKDM+IHmzHA==", "dev": true, "dependencies": { - "@cspell/cspell-bundled-dicts": "7.3.9", - "@cspell/cspell-pipe": "7.3.9", - "@cspell/cspell-resolver": "7.3.9", - "@cspell/cspell-types": "7.3.9", - "@cspell/dynamic-import": "7.3.9", - "@cspell/strong-weak-map": "7.3.9", + "@cspell/cspell-bundled-dicts": "8.1.3", + "@cspell/cspell-pipe": "8.1.3", + "@cspell/cspell-resolver": "8.1.3", + "@cspell/cspell-types": "8.1.3", + "@cspell/dynamic-import": "8.1.3", + "@cspell/strong-weak-map": "8.1.3", "clear-module": "^4.1.2", "comment-json": "^4.2.3", "configstore": "^6.0.0", - "cosmiconfig": "8.0.0", - "cspell-dictionary": "7.3.9", - "cspell-glob": "7.3.9", - "cspell-grammar": "7.3.9", - "cspell-io": "7.3.9", - "cspell-trie-lib": "7.3.9", + "cspell-config-lib": "8.1.3", + "cspell-dictionary": "8.1.3", + "cspell-glob": "8.1.3", + "cspell-grammar": "8.1.3", + "cspell-io": "8.1.3", + "cspell-trie-lib": "8.1.3", "fast-equals": "^5.0.1", - "find-up": "^6.3.0", "gensequence": "^6.0.0", "import-fresh": "^3.3.0", "resolve-from": "^5.0.0", @@ -5266,118 +5423,21 @@ "vscode-uri": "^3.0.8" }, "engines": { - "node": ">=16" - } - }, - "node_modules/cspell-lib/node_modules/cosmiconfig": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", - "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", - "dev": true, - "dependencies": { - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/cspell-lib/node_modules/find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", - "dev": true, - "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cspell-lib/node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "dev": true, - "dependencies": { - "p-locate": "^6.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cspell-lib/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cspell-lib/node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "dev": true, - "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cspell-lib/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/cspell-lib/node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=18" } }, "node_modules/cspell-trie-lib": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-7.3.9.tgz", - "integrity": "sha512-aTWm2KYXjQ+MlM6kB37wmTV9RU8+fgZYkiFfMc48M0MhBc6XkHUibMGrFAS29gp+B70kWPxe+VHLmFIk9pRPyg==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-8.1.3.tgz", + "integrity": "sha512-EDSYU9MCtzPSJDrfvDrTKmc0rzl50Ehjg1c5rUCqn33p2LCRe/G8hW0FxXe0mxrZxrMO2b8l0PVSGlrCXCQ8RQ==", "dev": true, "dependencies": { - "@cspell/cspell-pipe": "7.3.9", - "@cspell/cspell-types": "7.3.9", + "@cspell/cspell-pipe": "8.1.3", + "@cspell/cspell-types": "8.1.3", "gensequence": "^6.0.0" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/cspell/node_modules/chalk": { @@ -6301,9 +6361,9 @@ } }, "node_modules/esbuild": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", - "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.8.tgz", + "integrity": "sha512-l7iffQpT2OrZfH2rXIp7/FkmaeZM0vxbxN9KfiCwGYuZqzMg/JdvX26R31Zxn/Pxvsrg3Y9N6XTcnknqDyyv4w==", "dev": true, "hasInstallScript": true, "bin": { @@ -6313,28 +6373,28 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.18.20", - "@esbuild/android-arm64": "0.18.20", - "@esbuild/android-x64": "0.18.20", - "@esbuild/darwin-arm64": "0.18.20", - "@esbuild/darwin-x64": "0.18.20", - "@esbuild/freebsd-arm64": "0.18.20", - "@esbuild/freebsd-x64": "0.18.20", - "@esbuild/linux-arm": "0.18.20", - "@esbuild/linux-arm64": "0.18.20", - "@esbuild/linux-ia32": "0.18.20", - "@esbuild/linux-loong64": "0.18.20", - "@esbuild/linux-mips64el": "0.18.20", - "@esbuild/linux-ppc64": "0.18.20", - "@esbuild/linux-riscv64": "0.18.20", - "@esbuild/linux-s390x": "0.18.20", - "@esbuild/linux-x64": "0.18.20", - "@esbuild/netbsd-x64": "0.18.20", - "@esbuild/openbsd-x64": "0.18.20", - "@esbuild/sunos-x64": "0.18.20", - "@esbuild/win32-arm64": "0.18.20", - "@esbuild/win32-ia32": "0.18.20", - "@esbuild/win32-x64": "0.18.20" + "@esbuild/android-arm": "0.19.8", + "@esbuild/android-arm64": "0.19.8", + "@esbuild/android-x64": "0.19.8", + "@esbuild/darwin-arm64": "0.19.8", + "@esbuild/darwin-x64": "0.19.8", + "@esbuild/freebsd-arm64": "0.19.8", + "@esbuild/freebsd-x64": "0.19.8", + "@esbuild/linux-arm": "0.19.8", + "@esbuild/linux-arm64": "0.19.8", + "@esbuild/linux-ia32": "0.19.8", + "@esbuild/linux-loong64": "0.19.8", + "@esbuild/linux-mips64el": "0.19.8", + "@esbuild/linux-ppc64": "0.19.8", + "@esbuild/linux-riscv64": "0.19.8", + "@esbuild/linux-s390x": "0.19.8", + "@esbuild/linux-x64": "0.19.8", + "@esbuild/netbsd-x64": "0.19.8", + "@esbuild/openbsd-x64": "0.19.8", + "@esbuild/sunos-x64": "0.19.8", + "@esbuild/win32-arm64": "0.19.8", + "@esbuild/win32-ia32": "0.19.8", + "@esbuild/win32-x64": "0.19.8" } }, "node_modules/escalade": { @@ -6359,15 +6419,15 @@ } }, "node_modules/eslint": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.53.0.tgz", - "integrity": "sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.55.0.tgz", + "integrity": "sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.3", - "@eslint/js": "8.53.0", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.55.0", "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -6414,44 +6474,44 @@ } }, "node_modules/eslint-config-cheminfo": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/eslint-config-cheminfo/-/eslint-config-cheminfo-9.0.2.tgz", - "integrity": "sha512-uYIPKxOQiIfLGCZrv6oVwCIf6xtWefCPXaNmG/Mh/84JhKtH+etgomaRx7PkxAdtc72TAPh60hevokGQdY/7kA==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/eslint-config-cheminfo/-/eslint-config-cheminfo-9.1.1.tgz", + "integrity": "sha512-vf8izBpmpF4+b6uym5ET021QsUMSA555JMjwhYhgzAliuyhQ2XgFugstEks38ubC+Bma+c6P9BDuBO81q/QTsA==", "dev": true, "peerDependencies": { - "eslint": "^8.44.0", - "eslint-plugin-import": "^2.27.5", - "eslint-plugin-jsdoc": "^46.4.4", - "eslint-plugin-unicorn": "^48.0.0" + "eslint": "^8.55.0", + "eslint-plugin-import": "^2.29.0", + "eslint-plugin-jsdoc": "^46.9.0", + "eslint-plugin-unicorn": "^49.0.0" } }, "node_modules/eslint-config-cheminfo-react": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-cheminfo-react/-/eslint-config-cheminfo-react-10.0.0.tgz", - "integrity": "sha512-I+eUEIuPLWOz/TuGHM+QfBx3fy/r8uDP5vpkD7r+ZKA+nMFzIcBMGStxnOe6sWahkN598AGXoiPTL+ZiOKlRXQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-cheminfo-react/-/eslint-config-cheminfo-react-10.1.0.tgz", + "integrity": "sha512-IGr3dCTh8OFAf16pOjgA7K6LIo34RrUGftVqyrUSV5LE08xMSuN7E9ziZbPYivyH07ZZqgJ/DI4rgjqAJNSnuw==", "dev": true, "dependencies": { - "eslint-config-cheminfo": "^9.0.0" + "eslint-config-cheminfo": "^9.1.0" }, "peerDependencies": { - "eslint": "^8.45.0", + "eslint": "^8.55.0", "eslint-plugin-react": "^7.32.2", "eslint-plugin-react-hooks": "^4.6.0", - "eslint-plugin-react-refresh": "^0.4.3" + "eslint-plugin-react-refresh": "^0.4.5" } }, "node_modules/eslint-config-cheminfo-typescript": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/eslint-config-cheminfo-typescript/-/eslint-config-cheminfo-typescript-12.0.4.tgz", - "integrity": "sha512-+5IxBMnKt5e2BvC4WDLNZrmQbqlR0J5izOotOYvm5uGpukngmsdVcYrBNZUb2cmAFGkrZHRdx/mSe5NW66uzOA==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-cheminfo-typescript/-/eslint-config-cheminfo-typescript-12.1.0.tgz", + "integrity": "sha512-+BHlwtlja7wNNf0tvXrFCfCfMq0PPvog5lxpU4SQKPjhkisMJVwV1vVp6Jo01G43ScRVm1t61NnsztNRM+v7FA==", "dev": true, "dependencies": { - "eslint-config-cheminfo": "^9.0.1" + "eslint-config-cheminfo": "^9.1.0" }, "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^6.1.0", - "@typescript-eslint/parser": "^6.1.0", - "eslint": "^8.45.0", + "@typescript-eslint/eslint-plugin": "^6.13.2", + "@typescript-eslint/parser": "^6.13.2", + "eslint": "^8.55.0", "typescript": "^5.1.6" } }, @@ -6561,15 +6621,15 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "46.8.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.8.2.tgz", - "integrity": "sha512-5TSnD018f3tUJNne4s4gDWQflbsgOycIKEUBoCLn6XtBMgNHxQFmV8vVxUtiPxAQq8lrX85OaSG/2gnctxw9uQ==", + "version": "46.9.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.9.0.tgz", + "integrity": "sha512-UQuEtbqLNkPf5Nr/6PPRCtr9xypXY+g8y/Q7gPa0YK7eDhh0y2lWprXRnaYbW7ACgIUvpDKy9X2bZqxtGzBG9Q==", "dev": true, "peer": true, "dependencies": { - "@es-joy/jsdoccomment": "~0.40.1", + "@es-joy/jsdoccomment": "~0.41.0", "are-docs-informative": "^0.0.2", - "comment-parser": "1.4.0", + "comment-parser": "1.4.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", @@ -6665,9 +6725,9 @@ } }, "node_modules/eslint-plugin-react-refresh": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.4.tgz", - "integrity": "sha512-eD83+65e8YPVg6603Om2iCIwcQJf/y7++MWm4tACtEswFLYMwxwVWAfwN+e19f5Ad/FOyyNg9Dfi5lXhH3Y3rA==", + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.5.tgz", + "integrity": "sha512-D53FYKJa+fDmZMtriODxvhwrO+IOqrxoEo21gMA0sjHdU6dPVH4OhyFip9ypl8HOF5RV5KdTo+rBQLvnY2cO8w==", "dev": true, "peer": true, "peerDependencies": { @@ -6706,13 +6766,13 @@ } }, "node_modules/eslint-plugin-unicorn": { - "version": "48.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-48.0.1.tgz", - "integrity": "sha512-FW+4r20myG/DqFcCSzoumaddKBicIPeFnTrifon2mWIzlfyvzwyqZjqVP7m4Cqr/ZYisS2aiLghkUWaPg6vtCw==", + "version": "49.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-49.0.0.tgz", + "integrity": "sha512-0fHEa/8Pih5cmzFW5L7xMEfUTvI9WKeQtjmKpTUmY+BiFCDxkxrTdnURJOHKykhtwIeyYsxnecbGvDCml++z4Q==", "dev": true, "peer": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", "@eslint-community/eslint-utils": "^4.4.0", "ci-info": "^3.8.0", "clean-regexp": "^1.0.0", @@ -6720,7 +6780,6 @@ "indent-string": "^4.0.0", "is-builtin-module": "^3.2.1", "jsesc": "^3.0.2", - "lodash": "^4.17.21", "pluralize": "^8.0.0", "read-pkg-up": "^7.0.1", "regexp-tree": "^0.1.27", @@ -6735,7 +6794,7 @@ "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1" }, "peerDependencies": { - "eslint": ">=8.44.0" + "eslint": ">=8.52.0" } }, "node_modules/eslint-plugin-unicorn/node_modules/jsesc": { @@ -7172,12 +7231,12 @@ } }, "node_modules/file-entry-cache": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-7.0.1.tgz", - "integrity": "sha512-uLfFktPmRetVCbHe5UPuekWrQ6hENufnA46qEGbfACkK5drjTTdQYUragRgMjHldcbYG+nslUerqMPjbBSHXjQ==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-7.0.2.tgz", + "integrity": "sha512-TfW7/1iI4Cy7Y8L6iqNdZQVvdXn0f8B4QcIXmkIbtTIe/Okm/nSlHb4IwGzRVOd3WfSieCgvf5cMzEfySAIl0g==", "dev": true, "dependencies": { - "flat-cache": "^3.1.1" + "flat-cache": "^3.2.0" }, "engines": { "node": ">=12.0.0" @@ -7243,10 +7302,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/find-up-simple": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-up-simple/-/find-up-simple-1.0.0.tgz", + "integrity": "sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/flat-cache": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz", - "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, "dependencies": { "flatted": "^3.2.9", @@ -7254,7 +7325,7 @@ "rimraf": "^3.0.2" }, "engines": { - "node": ">=12.0.0" + "node": "^10.12.0 || >=12.0.0" } }, "node_modules/flat-cache/node_modules/glob": { @@ -7580,16 +7651,16 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/global-dirs": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", - "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "node_modules/global-directory": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/global-directory/-/global-directory-4.0.1.tgz", + "integrity": "sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==", "dev": true, "dependencies": { - "ini": "2.0.0" + "ini": "4.1.1" }, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -7962,9 +8033,9 @@ } }, "node_modules/import-meta-resolve": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-3.1.1.tgz", - "integrity": "sha512-qeywsE/KC3w9Fd2ORrRDUw6nS/nLwZpXgfrOc2IILvZYnCaEMd+D56Vfg9k4G29gIeVi3XKql1RQatME8iYsiw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.0.0.tgz", + "integrity": "sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==", "dev": true, "funding": { "type": "github", @@ -8006,18 +8077,18 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", + "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", "dev": true, "engines": { - "node": ">=10" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/inline-style-prefixer": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-6.0.4.tgz", - "integrity": "sha512-FwXmZC2zbeeS7NzGjJ6pAiqRhXR0ugUShSNb6GApMl6da0/XGc4MOJsoWAywia52EEWbXNSy0pzkwz/+Y+swSg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-7.0.0.tgz", + "integrity": "sha512-I7GEdScunP1dQ6IM2mQWh6v0mOYdYmH3Bp31UecKdrcUgcURTcctSe1IECdUznSHKSmsHtjrT3CwCPI1pyxfUQ==", "dependencies": { "css-in-js-utils": "^3.1.0", "fast-loops": "^1.1.3" @@ -8550,9 +8621,9 @@ } }, "node_modules/istanbul-lib-coverage": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.1.tgz", - "integrity": "sha512-opCrKqbthmq3SKZ10mFMQG9dk3fTa3quaOLD35kJa5ejwZHd9xAr+kLuziiZz2cG32s4lMZxNdmdcEQnTDP4+g==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, "engines": { "node": ">=8" @@ -8870,10 +8941,14 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" }, "node_modules/local-pkg": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz", - "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz", + "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", "dev": true, + "dependencies": { + "mlly": "^1.4.2", + "pkg-types": "^1.0.3" + }, "engines": { "node": ">=14" }, @@ -8977,6 +9052,17 @@ "node": ">=12" } }, + "node_modules/magicast": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.2.tgz", + "integrity": "sha512-Fjwkl6a0syt9TFN0JSYpOybxiMCkYNEeOTnOTNRbjphirLakznZXAqrXgj/7GG3D1dvETONNwrBfinvAbpunDg==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.23.3", + "@babel/types": "^7.23.3", + "source-map-js": "^1.0.2" + } + }, "node_modules/make-dir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", @@ -9801,24 +9887,29 @@ } }, "node_modules/nano-css": { - "version": "5.3.5", - "resolved": "https://registry.npmjs.org/nano-css/-/nano-css-5.3.5.tgz", - "integrity": "sha512-vSB9X12bbNu4ALBu7nigJgRViZ6ja3OU7CeuiV1zMIbXOdmkLahgtPmh3GBOlDxbKY0CitqlPdOReGlBLSp+yg==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/nano-css/-/nano-css-5.6.1.tgz", + "integrity": "sha512-T2Mhc//CepkTa3X4pUhKgbEheJHYAxD0VptuqFhDbGMUWVV2m+lkNiW/Ieuj35wrfC8Zm0l7HvssQh7zcEttSw==", "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15", "css-tree": "^1.1.2", - "csstype": "^3.0.6", + "csstype": "^3.1.2", "fastest-stable-stringify": "^2.0.2", - "inline-style-prefixer": "^6.0.0", - "rtl-css-js": "^1.14.0", - "sourcemap-codec": "^1.4.8", + "inline-style-prefixer": "^7.0.0", + "rtl-css-js": "^1.16.1", "stacktrace-js": "^2.0.2", - "stylis": "^4.0.6" + "stylis": "^4.3.0" }, "peerDependencies": { "react": "*", "react-dom": "*" } }, + "node_modules/nano-css/node_modules/stylis": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.0.tgz", + "integrity": "sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ==" + }, "node_modules/nanoid": { "version": "3.3.7", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", @@ -10213,9 +10304,9 @@ } }, "node_modules/openchemlib": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/openchemlib/-/openchemlib-8.7.1.tgz", - "integrity": "sha512-skzgPw0F5ZxLe3y0Td4uyegNi8N2P3jj9EumIdki8eGzs4QhBtpOibkejcy9lLcItsnxwrO1se5cuaJWRB5MiQ==" + "version": "8.7.2", + "resolved": "https://registry.npmjs.org/openchemlib/-/openchemlib-8.7.2.tgz", + "integrity": "sha512-k7LGea1GRLewzO9REarAVrP62hZgImxDZRIU6p29utmYiXL56OmlVMVoTG3FqEule+yx/p96yzv9qYladSC3SA==" }, "node_modules/openchemlib-utils": { "version": "5.6.1", @@ -10492,12 +10583,12 @@ } }, "node_modules/playwright": { - "version": "1.39.0", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.39.0.tgz", - "integrity": "sha512-naE5QT11uC/Oiq0BwZ50gDmy8c8WLPRTEWuSSFVG2egBka/1qMoSqYQcROMT9zLwJ86oPofcTH2jBY/5wWOgIw==", + "version": "1.40.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.40.1.tgz", + "integrity": "sha512-2eHI7IioIpQ0bS1Ovg/HszsN/XKNwEG1kbzSDDmADpclKc7CyqkHw7Mg2JCz/bbCxg25QUPcjksoMW7JcIFQmw==", "dev": true, "dependencies": { - "playwright-core": "1.39.0" + "playwright-core": "1.40.1" }, "bin": { "playwright": "cli.js" @@ -10510,9 +10601,9 @@ } }, "node_modules/playwright-core": { - "version": "1.39.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.39.0.tgz", - "integrity": "sha512-+k4pdZgs1qiM+OUkSjx96YiKsXsmb59evFoqv8SKO067qBA+Z2s/dCzJij/ZhdQcs2zlTAgRKfeiiLm8PQ2qvw==", + "version": "1.40.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.40.1.tgz", + "integrity": "sha512-+hkOycxPiV534c4HhpfX6yrlawqVUzITRKwHAmYfmsVreltEl6fAZJ3DPfLMOODw0H3s1Itd6MDCWmP1fl/QvQ==", "dev": true, "bin": { "playwright-core": "cli.js" @@ -10532,9 +10623,9 @@ } }, "node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "version": "8.4.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", + "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", "dev": true, "funding": [ { @@ -10551,7 +10642,7 @@ } ], "dependencies": { - "nanoid": "^3.3.6", + "nanoid": "^3.3.7", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -10730,9 +10821,9 @@ } }, "node_modules/prettier": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz", - "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz", + "integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" @@ -10859,9 +10950,9 @@ } }, "node_modules/rc-menu": { - "version": "9.12.2", - "resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-9.12.2.tgz", - "integrity": "sha512-NzloFH2pRUYmQ3S/YbJAvRkgCZaLvq0sRa5rgJtuIHLfPPprNHNyepeSlT64+dbVqI4qRWL44VN0lUCldCbbfg==", + "version": "9.12.4", + "resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-9.12.4.tgz", + "integrity": "sha512-t2NcvPLV1mFJzw4F21ojOoRVofK2rWhpKPx69q2raUsiHPDP6DDevsBILEYdsIegqBeSXoWs2bf6CueBKg3BFg==", "dev": true, "dependencies": { "@babel/runtime": "^7.10.1", @@ -11046,9 +11137,9 @@ "integrity": "sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==" }, "node_modules/react-icons": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.11.0.tgz", - "integrity": "sha512-V+4khzYcE5EBk/BvcuYRq6V/osf11ODUM2J8hg2FDSswRrGvqiYUYPRy4OdrWaQOBj4NcpJfmHZLNaD+VH0TyA==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.12.0.tgz", + "integrity": "sha512-IBaDuHiShdZqmfc/TwHu6+d6k2ltNCf3AszxNmjJc1KUfXdEeRJOKyNvLmAHaarhzGmTSVygNdyu8/opXv2gaw==", "peerDependencies": { "react": "*" } @@ -11230,12 +11321,12 @@ "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" }, "node_modules/react-router": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.18.0.tgz", - "integrity": "sha512-vk2y7Dsy8wI02eRRaRmOs9g2o+aE72YCx5q9VasT1N9v+lrdB79tIqrjMfByHiY5+6aYkH2rUa5X839nwWGPDg==", + "version": "6.20.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.20.1.tgz", + "integrity": "sha512-ccvLrB4QeT5DlaxSFFYi/KR8UMQ4fcD8zBcR71Zp1kaYTC5oJKYAp1cbavzGrogwxca+ubjkd7XjFZKBW8CxPA==", "dev": true, "dependencies": { - "@remix-run/router": "1.11.0" + "@remix-run/router": "1.13.1" }, "engines": { "node": ">=14.0.0" @@ -11245,13 +11336,13 @@ } }, "node_modules/react-router-dom": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.18.0.tgz", - "integrity": "sha512-Ubrue4+Ercc/BoDkFQfc6og5zRQ4A8YxSO3Knsne+eRbZ+IepAsK249XBH/XaFuOYOYr3L3r13CXTLvYt5JDjw==", + "version": "6.20.1", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.20.1.tgz", + "integrity": "sha512-npzfPWcxfQN35psS7rJgi/EW0Gx6EsNjfdJSAk73U/HqMEJZ2k/8puxfwHFgDQhBGmS3+sjnGbMdMSV45axPQw==", "dev": true, "dependencies": { - "@remix-run/router": "1.11.0", - "react-router": "6.18.0" + "@remix-run/router": "1.13.1", + "react-router": "6.20.1" }, "engines": { "node": ">=14.0.0" @@ -11377,9 +11468,9 @@ } }, "node_modules/react-use": { - "version": "17.4.0", - "resolved": "https://registry.npmjs.org/react-use/-/react-use-17.4.0.tgz", - "integrity": "sha512-TgbNTCA33Wl7xzIJegn1HndB4qTS9u03QUwyNycUnXaweZkE4Kq2SB+Yoxx8qbshkZGYBDvUXbXWRUmQDcZZ/Q==", + "version": "17.4.2", + "resolved": "https://registry.npmjs.org/react-use/-/react-use-17.4.2.tgz", + "integrity": "sha512-1jPtmWLD8OJJNYCdYLJEH/HM+bPDfJuyGwCYeJFgPmWY8ttwpgZnW5QnzgM55CYUByUiTjHxsGOnEpLl6yQaoQ==", "dependencies": { "@types/js-cookie": "^2.2.6", "@xobotyi/scrollbar-width": "^1.9.5", @@ -11387,7 +11478,7 @@ "fast-deep-equal": "^3.1.3", "fast-shallow-equal": "^1.0.0", "js-cookie": "^2.2.1", - "nano-css": "^5.3.1", + "nano-css": "^5.6.1", "react-universal-interface": "^0.6.2", "resize-observer-polyfill": "^1.5.1", "screenfull": "^5.1.0", @@ -11397,8 +11488,8 @@ "tslib": "^2.1.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + "react": "*", + "react-dom": "*" } }, "node_modules/read-pkg": { @@ -11739,18 +11830,30 @@ "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" }, "node_modules/rollup": { - "version": "3.29.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", - "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.6.1.tgz", + "integrity": "sha512-jZHaZotEHQaHLgKr8JnQiDT1rmatjgKlMekyksz+yk9jt/8z9quNjnKNRoaM0wd9DC2QKXjmWWuDYtM3jfF8pQ==", "dev": true, "bin": { "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=14.18.0", + "node": ">=18.0.0", "npm": ">=8.0.0" }, "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.6.1", + "@rollup/rollup-android-arm64": "4.6.1", + "@rollup/rollup-darwin-arm64": "4.6.1", + "@rollup/rollup-darwin-x64": "4.6.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.6.1", + "@rollup/rollup-linux-arm64-gnu": "4.6.1", + "@rollup/rollup-linux-arm64-musl": "4.6.1", + "@rollup/rollup-linux-x64-gnu": "4.6.1", + "@rollup/rollup-linux-x64-musl": "4.6.1", + "@rollup/rollup-win32-arm64-msvc": "4.6.1", + "@rollup/rollup-win32-ia32-msvc": "4.6.1", + "@rollup/rollup-win32-x64-msvc": "4.6.1", "fsevents": "~2.3.2" } }, @@ -12269,12 +12372,6 @@ "node": ">=0.10.0" } }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "deprecated": "Please use @jridgewell/sourcemap-codec instead" - }, "node_modules/spc-parser": { "version": "0.7.3", "resolved": "https://registry.npmjs.org/spc-parser/-/spc-parser-0.7.3.tgz", @@ -12386,9 +12483,9 @@ } }, "node_modules/std-env": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.4.3.tgz", - "integrity": "sha512-f9aPhy8fYBuMN+sNfakZV18U39PbalgjXG3lLB9WkaYTxijru61wb57V9wxxNthXM5Sd88ETBWi29qLAsHO52Q==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.6.0.tgz", + "integrity": "sha512-aFZ19IgVmhdB2uX599ve2kE6BIE3YMnQ6Gp6BURhW/oIzpXGKr878TQfAQZn1+i0Flcc/UKUy1gOlcfaUBCryg==", "dev": true }, "node_modules/string_decoder": { @@ -13037,9 +13134,9 @@ "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==" }, "node_modules/tinypool": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.7.0.tgz", - "integrity": "sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.1.tgz", + "integrity": "sha512-zBTCK0cCgRROxvs9c0CGK838sPkeokNGdQVUUwHAbynHFlmyJYj825f/oRs528HaIJ97lo0pLIlDUzwN+IorWg==", "dev": true, "engines": { "node": ">=14.0.0" @@ -13281,9 +13378,9 @@ } }, "node_modules/typescript": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -13294,9 +13391,9 @@ } }, "node_modules/ufo": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.3.1.tgz", - "integrity": "sha512-uY/99gMLIOlJPwATcMVYfqDSxUR9//AUcgZMzwfSTJPDKzA1S8mX4VLqa+fiAtveraQUBCz4FFcwVZBGbwBXIw==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.3.2.tgz", + "integrity": "sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==", "dev": true }, "node_modules/unbox-primitive": { @@ -13478,9 +13575,9 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "node_modules/v8-to-istanbul": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.3.tgz", - "integrity": "sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", + "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", "dev": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", @@ -13521,29 +13618,29 @@ } }, "node_modules/vite": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz", - "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.6.tgz", + "integrity": "sha512-MD3joyAEBtV7QZPl2JVVUai6zHms3YOmLR+BpMzLlX2Yzjfcc4gTgNi09d/Rua3F4EtC8zdwPU8eQYyib4vVMQ==", "dev": true, "dependencies": { - "esbuild": "^0.18.10", - "postcss": "^8.4.27", - "rollup": "^3.27.1" + "esbuild": "^0.19.3", + "postcss": "^8.4.32", + "rollup": "^4.2.0" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": "^18.0.0 || >=20.0.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" }, "optionalDependencies": { - "fsevents": "~2.3.2" + "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": ">= 14", + "@types/node": "^18.0.0 || >=20.0.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", @@ -13576,82 +13673,93 @@ } }, "node_modules/vite-node": { - "version": "0.34.6", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.34.6.tgz", - "integrity": "sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.0.1.tgz", + "integrity": "sha512-Y2Jnz4cr2azsOMMYuVPrQkp3KMnS/0WV8ezZjCy4hU7O5mUHCAVOnFmoEvs1nvix/4mYm74Len8bYRWZJMNP6g==", "dev": true, "dependencies": { "cac": "^6.7.14", "debug": "^4.3.4", - "mlly": "^1.4.0", "pathe": "^1.1.1", "picocolors": "^1.0.0", - "vite": "^3.0.0 || ^4.0.0 || ^5.0.0-0" + "vite": "^5.0.0-beta.15 || ^5.0.0" }, "bin": { "vite-node": "vite-node.mjs" }, "engines": { - "node": ">=v14.18.0" + "node": "^18.0.0 || >=20.0.0" }, "funding": { "url": "https://opencollective.com/vitest" } }, + "node_modules/vite/node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/vitest": { - "version": "0.34.6", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.34.6.tgz", - "integrity": "sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==", - "dev": true, - "dependencies": { - "@types/chai": "^4.3.5", - "@types/chai-subset": "^1.3.3", - "@types/node": "*", - "@vitest/expect": "0.34.6", - "@vitest/runner": "0.34.6", - "@vitest/snapshot": "0.34.6", - "@vitest/spy": "0.34.6", - "@vitest/utils": "0.34.6", - "acorn": "^8.9.0", - "acorn-walk": "^8.2.0", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.0.1.tgz", + "integrity": "sha512-MHsOj079S28hDsvdDvyD1pRj4dcS51EC5Vbe0xvOYX+WryP8soiK2dm8oULi+oA/8Xa/h6GoJEMTmcmBy5YM+Q==", + "dev": true, + "dependencies": { + "@vitest/expect": "1.0.1", + "@vitest/runner": "1.0.1", + "@vitest/snapshot": "1.0.1", + "@vitest/spy": "1.0.1", + "@vitest/utils": "1.0.1", + "acorn-walk": "^8.3.0", "cac": "^6.7.14", "chai": "^4.3.10", "debug": "^4.3.4", - "local-pkg": "^0.4.3", - "magic-string": "^0.30.1", + "execa": "^8.0.1", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.5", "pathe": "^1.1.1", "picocolors": "^1.0.0", - "std-env": "^3.3.3", - "strip-literal": "^1.0.1", - "tinybench": "^2.5.0", - "tinypool": "^0.7.0", - "vite": "^3.1.0 || ^4.0.0 || ^5.0.0-0", - "vite-node": "0.34.6", + "std-env": "^3.5.0", + "strip-literal": "^1.3.0", + "tinybench": "^2.5.1", + "tinypool": "^0.8.1", + "vite": "^5.0.0-beta.19 || ^5.0.0", + "vite-node": "1.0.1", "why-is-node-running": "^2.2.2" }, "bin": { "vitest": "vitest.mjs" }, "engines": { - "node": ">=v14.18.0" + "node": "^18.0.0 || >=20.0.0" }, "funding": { "url": "https://opencollective.com/vitest" }, "peerDependencies": { "@edge-runtime/vm": "*", - "@vitest/browser": "*", - "@vitest/ui": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "^1.0.0", + "@vitest/ui": "^1.0.0", "happy-dom": "*", - "jsdom": "*", - "playwright": "*", - "safaridriver": "*", - "webdriverio": "*" + "jsdom": "*" }, "peerDependenciesMeta": { "@edge-runtime/vm": { "optional": true }, + "@types/node": { + "optional": true + }, "@vitest/browser": { "optional": true }, @@ -13663,18 +13771,131 @@ }, "jsdom": { "optional": true - }, - "playwright": { - "optional": true - }, - "safaridriver": { - "optional": true - }, - "webdriverio": { - "optional": true } } }, + "node_modules/vitest/node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/vitest/node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true, + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/vitest/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/vscode-languageserver-textdocument": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.11.tgz", @@ -14076,4 +14297,4 @@ } } } -} +} \ No newline at end of file diff --git a/package.json b/package.json index ff670f031..a13411f9a 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,7 @@ "react-dom": ">=18.0.0" }, "dependencies": { - "@blueprintjs/core": "^5.6.0", + "@blueprintjs/core": "^5.7.1", "@emotion/react": "^11.11.1", "@emotion/styled": "^11.11.0", "@lukeed/uuid": "^2.0.1", @@ -80,23 +80,23 @@ "ml-baseline-correction-regression": "^1.0.2", "ml-conrec": "^5.0.2", "ml-gsd": "^12.1.3", - "ml-matrix": "^6.10.8", + "ml-matrix": "^6.11.0", "ml-spectra-processing": "^12.8.0", "ml-stat": "^1.3.3", "multiplet-analysis": "^2.1.2", "nmr-correlation": "^2.3.3", "nmr-load-save": "^0.23.9", "nmr-processing": "^11.6.1", - "nmredata": "^0.9.7", + "nmredata": "^0.9.9", "numeral": "^2.0.6", - "openchemlib": "^8.7.1", - "openchemlib-utils": "^5.6.1", + "openchemlib": "^8.7.2", + "openchemlib-utils": "^5.6.0", "papaparse": "^5.4.1", "re-resizable": "6.9.11", "react-d3-utils": "^1.0.0", "react-dropzone": "^14.2.3", "react-error-boundary": "^4.0.11", - "react-icons": "^4.11.0", + "react-icons": "^4.12.0", "react-inspector": "^6.0.2", "react-mf": "^2.0.2", "react-ocl": "^6.1.0", @@ -107,44 +107,44 @@ "react-slider": "^2.0.6", "react-table": "^7.8.0", "react-transition-group": "^4.4.5", - "react-use": "^17.4.0", + "react-use": "^17.4.2", "smart-array-filter": "^4.0.2", "yup": "^1.3.2" }, "devDependencies": { - "@babel/plugin-transform-modules-commonjs": "^7.23.0", - "@babel/preset-react": "^7.22.15", - "@babel/preset-typescript": "^7.23.2", - "@playwright/test": "^1.39.0", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/preset-react": "^7.23.3", + "@babel/preset-typescript": "^7.23.3", + "@playwright/test": "^1.40.1", "@simbathesailor/use-what-changed": "^2.0.0", - "@types/d3": "^7.4.2", - "@types/lodash": "^4.14.200", - "@types/node": "^20.8.10", - "@types/papaparse": "^5.3.10", - "@types/react": "^18.2.36", - "@types/react-dom": "^18.2.14", - "@types/react-table": "^7.7.17", - "@vitejs/plugin-react-swc": "^3.4.1", - "@vitest/coverage-v8": "^0.34.6", + "@types/d3": "^7.4.3", + "@types/lodash": "^4.14.202", + "@types/node": "^20.10.4", + "@types/papaparse": "^5.3.14", + "@types/react": "^18.2.42", + "@types/react-dom": "^18.2.17", + "@types/react-table": "^7.7.18", + "@vitejs/plugin-react-swc": "^3.5.0", + "@vitest/coverage-v8": "^1.0.1", "cross-env": "^7.0.3", - "cspell": "^7.3.8", - "eslint": "^8.53.0", - "eslint-config-cheminfo-react": "^10.0.0", - "eslint-config-cheminfo-typescript": "^12.0.4", + "cspell": "^8.1.3", + "eslint": "^8.55.0", + "eslint-config-cheminfo-react": "^10.1.0", + "eslint-config-cheminfo-typescript": "^12.1.0", "modern-normalize": "^2.0.0", "postcss-styled-syntax": "^0.5.0", - "prettier": "^3.0.3", - "rc-menu": "^9.12.2", + "prettier": "^3.1.0", + "rc-menu": "^9.12.4", "react": "^18.2.0", "react-dom": "^18.2.0", - "react-router-dom": "^6.18.0", + "react-router-dom": "^6.20.1", "rimraf": "^5.0.5", "rollup-plugin-analyzer": "^4.0.0", "serve": "^14.2.1", "stylelint": "^15.11.0", "stylelint-config-standard": "^34.0.0", - "typescript": "^5.2.2", - "vite": "^4.5.0", - "vitest": "^0.34.6" + "typescript": "^5.3.3", + "vite": "^5.0.6", + "vitest": "^1.0.1" } -} +} \ No newline at end of file diff --git a/src/component/1d-2d/tools/BrushXY.tsx b/src/component/1d-2d/tools/BrushXY.tsx index a58d144f5..c78559223 100644 --- a/src/component/1d-2d/tools/BrushXY.tsx +++ b/src/component/1d-2d/tools/BrushXY.tsx @@ -102,14 +102,14 @@ export default function BrushXY({ dimensionBorder.endX && endX > dimensionBorder.endX ? dimensionBorder.endX : dimensionBorder.startX && endX < dimensionBorder.startX - ? dimensionBorder.startX - : endX; + ? dimensionBorder.startX + : endX; endY = dimensionBorder.endY && endY > dimensionBorder.endY ? dimensionBorder.endY : dimensionBorder.startY && endY < dimensionBorder.startY - ? dimensionBorder.startY - : endY; + ? dimensionBorder.startY + : endY; const scaleX = brushType === BRUSH_TYPE.X || brushType === BRUSH_TYPE.XY diff --git a/src/component/hooks/usePanelPreferences.ts b/src/component/hooks/usePanelPreferences.ts index 1e9219181..e116b660a 100644 --- a/src/component/hooks/usePanelPreferences.ts +++ b/src/component/hooks/usePanelPreferences.ts @@ -128,8 +128,8 @@ export function usePanelPreferences( ): T extends 'matrixGeneration' ? MatrixOptions : T extends 'multipleSpectraAnalysis' - ? MultipleSpectraAnalysisPreferences - : WorkSpacePanelPreferences[T]; + ? MultipleSpectraAnalysisPreferences + : WorkSpacePanelPreferences[T]; export function usePanelPreferences( panelKey: T, ): WorkSpacePanelPreferences[T]; @@ -149,18 +149,18 @@ export type UsePanelPreferencesByNucleiResult = T extends 'spectra' ? PanelsPreferences['spectra'] : T extends 'peaks' - ? PanelsPreferences['peaks'] - : T extends 'integrals' - ? PanelsPreferences['integrals'] - : T extends 'zones' - ? PanelsPreferences['zones'] - : T extends 'ranges' - ? PanelsPreferences['ranges'] - : T extends 'multipleSpectraAnalysis' - ? PanelsPreferences['multipleSpectraAnalysis'] - : T extends 'matrixGeneration' - ? PanelsPreferences['matrixGeneration'] - : void; + ? PanelsPreferences['peaks'] + : T extends 'integrals' + ? PanelsPreferences['integrals'] + : T extends 'zones' + ? PanelsPreferences['zones'] + : T extends 'ranges' + ? PanelsPreferences['ranges'] + : T extends 'multipleSpectraAnalysis' + ? PanelsPreferences['multipleSpectraAnalysis'] + : T extends 'matrixGeneration' + ? PanelsPreferences['matrixGeneration'] + : void; export function usePanelPreferencesByNuclei( panelKey: T, diff --git a/src/component/modal/editRange/forms/components/AddSignalFormTab.tsx b/src/component/modal/editRange/forms/components/AddSignalFormTab.tsx index 3042b65c0..29e999148 100644 --- a/src/component/modal/editRange/forms/components/AddSignalFormTab.tsx +++ b/src/component/modal/editRange/forms/components/AddSignalFormTab.tsx @@ -71,6 +71,7 @@ function AddSignalFormTab( return Yup.object().shape({ newSignalDelta: Yup.number() .test(`test-range`, '', function testNewSignalDelta(value) { + // eslint-disable-next-line no-invalid-this const { path, createError } = this; if (value && value > range.from && value < range.to) { return true; diff --git a/src/component/modal/editRange/forms/validation/EditRangeValidation.ts b/src/component/modal/editRange/forms/validation/EditRangeValidation.ts index eef97b572..f78330c7e 100644 --- a/src/component/modal/editRange/forms/validation/EditRangeValidation.ts +++ b/src/component/modal/editRange/forms/validation/EditRangeValidation.ts @@ -14,8 +14,10 @@ const editRangeFormValidation = Yup.object().shape({ 'checkValue', '', function testCoupling(value) { + // eslint-disable-next-line no-invalid-this const { path, createError } = this; const hasCoupling = hasCouplingConstant( + // eslint-disable-next-line no-invalid-this this.parent.multiplicity, ); if ((!hasCoupling && !value) || (hasCoupling && value)) { diff --git a/src/component/modal/setting/settingsValidation.ts b/src/component/modal/setting/settingsValidation.ts index 7d45de368..4a59d05c7 100644 --- a/src/component/modal/setting/settingsValidation.ts +++ b/src/component/modal/setting/settingsValidation.ts @@ -55,6 +55,7 @@ const formattingValidation = (obj: Workspace) => new ValidationError( `${key} nucleus must te be unique`, nuclei[key].name, + // eslint-disable-next-line no-invalid-this `${this.path}.${field}.name`, ), ); diff --git a/src/component/panels/RangesPanel/RangesTableRow.tsx b/src/component/panels/RangesPanel/RangesTableRow.tsx index 2f2087a2d..7f6643b9c 100644 --- a/src/component/panels/RangesPanel/RangesTableRow.tsx +++ b/src/component/panels/RangesPanel/RangesTableRow.tsx @@ -184,8 +184,8 @@ function RangesTableRow({ return highlightRange.isActive || assignmentRange.isActive ? HighlightedRowStyle : lodashGet(rowData, 'tableMetaInfo.isConstantlyHighlighted', false) - ? ConstantlyHighlightedRowStyle - : null; + ? ConstantlyHighlightedRowStyle + : null; }, [assignmentRange.isActive, highlightRange.isActive, rowData]); return ( diff --git a/src/component/panels/RangesPanel/TableColumns/SignalDeltaHzColumn.tsx b/src/component/panels/RangesPanel/TableColumns/SignalDeltaHzColumn.tsx index c2db8b888..7f3020770 100644 --- a/src/component/panels/RangesPanel/TableColumns/SignalDeltaHzColumn.tsx +++ b/src/component/panels/RangesPanel/TableColumns/SignalDeltaHzColumn.tsx @@ -25,8 +25,8 @@ function SignalDeltaHzColumn({ format, )} - ${formatNumber(row.to * info.originFrequency, format)}` : info?.originFrequency - ? formatNumber(signal.delta * info.originFrequency, format) - : ''} + ? formatNumber(signal.delta * info.originFrequency, format) + : ''} ); } diff --git a/src/component/panels/SummaryPanel/CorrelationTable/AdditionalColumnField.tsx b/src/component/panels/SummaryPanel/CorrelationTable/AdditionalColumnField.tsx index d94f88004..57fba7b90 100644 --- a/src/component/panels/SummaryPanel/CorrelationTable/AdditionalColumnField.tsx +++ b/src/component/panels/SummaryPanel/CorrelationTable/AdditionalColumnField.tsx @@ -231,8 +231,8 @@ function AdditionalColumnField({ backgroundColor: highlightCommonLinks.isActive ? '#ff6f0057' : isInViewColumn || isInViewRow - ? '#f5f5dc' - : 'inherit', + ? '#f5f5dc' + : 'inherit', }} title={getTitle(commonLinks)} onMouseEnter={mouseEnterHandler} diff --git a/src/component/panels/SummaryPanel/CorrelationTable/AdditionalColumnHeader.tsx b/src/component/panels/SummaryPanel/CorrelationTable/AdditionalColumnHeader.tsx index 387cc98aa..2848b3ce3 100644 --- a/src/component/panels/SummaryPanel/CorrelationTable/AdditionalColumnHeader.tsx +++ b/src/component/panels/SummaryPanel/CorrelationTable/AdditionalColumnHeader.tsx @@ -81,8 +81,8 @@ function AdditionalColumnHeader({ backgroundColor: highlightAdditionalColumn.isActive ? '#ff6f0057' : isInView - ? '#f5f5dc' - : 'inherit', + ? '#f5f5dc' + : 'inherit', }, title: correlation.pseudo === false && title, onMouseEnter: mouseEnterHandler, diff --git a/src/component/panels/SummaryPanel/CorrelationTable/CorrelationTableRow.tsx b/src/component/panels/SummaryPanel/CorrelationTable/CorrelationTableRow.tsx index 49546843f..8ea9e4403 100644 --- a/src/component/panels/SummaryPanel/CorrelationTable/CorrelationTableRow.tsx +++ b/src/component/panels/SummaryPanel/CorrelationTable/CorrelationTableRow.tsx @@ -169,8 +169,8 @@ function CorrelationTableRow({ backgroundColor: highlightRow.isActive ? '#ff6f0057' : isInView - ? '#f5f5dc' - : 'inherit', + ? '#f5f5dc' + : 'inherit', }, title: correlation.pseudo === false && title, onMouseEnter: mouseEnterHandler, diff --git a/src/component/panels/SummaryPanel/Overview.tsx b/src/component/panels/SummaryPanel/Overview.tsx index bbaa82600..49b207c4b 100644 --- a/src/component/panels/SummaryPanel/Overview.tsx +++ b/src/component/panels/SummaryPanel/Overview.tsx @@ -52,8 +52,8 @@ function Overview({ correlationsData }: OverviewProps) { (!error || Object.keys(error).length === 0) ? 'green' : errorColorIndex >= 0 - ? ErrorColors[errorColorIndex].color - : 'black' + ? ErrorColors[errorColorIndex].color + : 'black' : 'black', }} > diff --git a/src/component/panels/ZonesPanel/ZonesTableRow.tsx b/src/component/panels/ZonesPanel/ZonesTableRow.tsx index 59eb07fd3..90846b5f6 100644 --- a/src/component/panels/ZonesPanel/ZonesTableRow.tsx +++ b/src/component/panels/ZonesPanel/ZonesTableRow.tsx @@ -188,8 +188,8 @@ function ZonesTableRow({ highlightZone.isActive || assignmentZone.isActive ? (HighlightedRowStyle as any) : lodashGet(rowData, 'tableMetaInfo.isConstantlyHighlighted', false) - ? ConstantlyHighlightedRowStyle - : null + ? ConstantlyHighlightedRowStyle + : null } {...highlightZone.onHover} > diff --git a/src/component/panels/extra/preferences/ColumnsHelper.ts b/src/component/panels/extra/preferences/ColumnsHelper.ts index 91bf63fa7..d1fde967c 100644 --- a/src/component/panels/extra/preferences/ColumnsHelper.ts +++ b/src/component/panels/extra/preferences/ColumnsHelper.ts @@ -48,8 +48,7 @@ export default class ColumnsHelper { if (this.checkPreferences(preferences, flagKey)) { this.setCustomColumn(columns, columnIndex, columnLabel, (row) => { const format = - preferences && - Object.prototype.hasOwnProperty.call(preferences, formatKey) + preferences && Object.hasOwn(preferences, formatKey) ? preferences[formatKey] : this.defaultPreference[formatKey]; diff --git a/src/component/panels/multipleAnalysisPanel/preferences/index.tsx b/src/component/panels/multipleAnalysisPanel/preferences/index.tsx index e158d0d4e..c71c036ee 100644 --- a/src/component/panels/multipleAnalysisPanel/preferences/index.tsx +++ b/src/component/panels/multipleAnalysisPanel/preferences/index.tsx @@ -157,6 +157,7 @@ function columnSchema(columns) { new Yup.ValidationError( `${key} nucleus must te be unique`, key, + // eslint-disable-next-line no-invalid-this this.path, ), ); @@ -178,6 +179,7 @@ function columnSchema(columns) { new Yup.ValidationError( `${column.tempKey} formula value is required`, column.formula, + // eslint-disable-next-line no-invalid-this this.path, ), ); diff --git a/src/data/SpectraManager.ts b/src/data/SpectraManager.ts index 746c91520..7b879d668 100644 --- a/src/data/SpectraManager.ts +++ b/src/data/SpectraManager.ts @@ -114,8 +114,8 @@ export function toJSON( dataType === 'ROW_DATA' ? 'rawData' : dataType === 'NO_DATA' - ? 'noData' - : 'dataSource'; + ? 'noData' + : 'dataSource'; return serializeNmriumState(nmriumState, { includeData, diff --git a/src/data/data2d/Processing2D.ts b/src/data/data2d/Processing2D.ts deleted file mode 100644 index 710ae465c..000000000 --- a/src/data/data2d/Processing2D.ts +++ /dev/null @@ -1,194 +0,0 @@ -import { NmrData2DFt } from 'cheminfo-types'; -import { Conrec } from 'ml-conrec'; - -import { calculateSanPlot } from '../utilities/calculateSanPlot'; - -export const defaultContourOptions = { - positive: { - contourLevels: [0, 21], - numberOfLayers: 10, - }, - negative: { - contourLevels: [0, 21], - numberOfLayers: 10, - }, -}; - -export default class Processing2D { - private options: any; - private currentLevelPositive: number; - private currentLevelNegative: number; - private conrec: Conrec; - private median: number; - private minMax: any; - - public constructor( - minMax: any, - options: any = defaultContourOptions, - defaultLevel: any = {}, - ) { - this.options = options; - - const { positive = 10, negative = 10 } = defaultLevel; - - this.currentLevelPositive = positive; - this.currentLevelNegative = negative; - - const xs = getRange(minMax.minX, minMax.maxX, minMax.z[0].length); - - const ys = getRange(minMax.minY, minMax.maxY, minMax.z.length); - - this.conrec = new Conrec(minMax.z, { xs, ys, swapAxes: false }); - - const sanResult = calculateSanPlot('2D', minMax as NmrData2DFt['rr']); - this.median = sanResult.positive; - - this.minMax = minMax; - } - - public getLevel() { - return { - levelPositive: this.currentLevelPositive, - levelNegative: this.currentLevelNegative, - }; - } - - public setLevel(levelPositive, levelNegative) { - this.currentLevelPositive = levelPositive; - this.currentLevelNegative = levelNegative; - } - - public setOptions(options) { - const positiveBoundary = options.positive.contourLevels; - const negativeBoundary = options.negative.contourLevels; - - if (this.currentLevelPositive >= positiveBoundary[1]) { - this.currentLevelPositive = positiveBoundary[1]; - } else if (this.currentLevelPositive <= positiveBoundary[0]) { - this.currentLevelPositive = positiveBoundary[0]; - } - - if (this.currentLevelNegative >= negativeBoundary[1]) { - this.currentLevelNegative = negativeBoundary[1]; - } else if (this.currentLevelNegative <= negativeBoundary[0]) { - this.currentLevelNegative = negativeBoundary[0]; - } - - this.options = options; - } - - public wheel(value) { - const sign = Math.sign(value); - const positiveBoundary = this.options.positive.contourLevels; - const negativeBoundary = this.options.negative.contourLevels; - - if ( - (this.currentLevelPositive > positiveBoundary[0] && sign === -1) || - (this.currentLevelPositive < positiveBoundary[1] && sign === 1) - ) { - this.currentLevelPositive += sign; - } - - if ( - (this.currentLevelNegative > negativeBoundary[0] && sign === -1) || - (this.currentLevelNegative < negativeBoundary[1] && sign === 1) - ) { - this.currentLevelNegative += sign; - } - } - - public shiftWheel(value) { - const sign = Math.sign(value); - const [min, max] = this.options.positive.contourLevels; - if ( - (this.currentLevelPositive === min && sign === -1) || - (this.currentLevelPositive >= max && sign === 1) - ) { - return; - } - - this.currentLevelPositive += sign; - return []; - } - - public drawContours() { - const zoomPositive = this.currentLevelPositive / 2 + 1; - const zoomNegative = this.currentLevelNegative / 2 + 1; - const { - positive: { numberOfLayers: numberOfPositiveLayer }, - negative: { numberOfLayers: numberOfNegativeLayer }, - } = this.options; - return { - positive: this.getContours(zoomPositive, { - nbLevels: numberOfPositiveLayer, - }), - negative: this.getContours(zoomNegative, { - negative: true, - nbLevels: numberOfNegativeLayer, - }), - }; - } - - public getContours(zoomLevel, options: any = {}) { - const { negative = false, timeout = 2000, nbLevels = 10 } = options; - - const max = Math.max( - Math.abs(this.minMax.maxZ), - Math.abs(this.minMax.minZ), - ); - - let _range = getRange( - this.median * 1 * Math.pow(2, zoomLevel), - max, - nbLevels, - 2, - ); - - if (negative) { - _range = _range.map((value) => -value); - } - const contours = this.conrec.drawContour({ - contourDrawer: 'basic', // shape or basic - levels: _range, - timeout, - }); - - return Object.freeze(contours); - } -} - -function getRange(min: number, max: number, length: number, exp?: number) { - if (exp !== undefined) { - const factors: number[] = []; - - factors[0] = 0; - - for (let i = 1; i <= length; i++) { - factors[i] = factors[i - 1] + (exp - 1) / Math.pow(exp, i); - } - - const lastFactor = factors[length]; - - const result = new Array(length); - - for (let i = 0; i < length; i++) { - result[i] = (max - min) * (1 - factors[i + 1] / lastFactor) + min; - } - - return result; - } else { - const step = (max - min) / (length - 1); - - return range(min, max + step / 2, step); - } -} - -function range(from: number, to: number, step: number) { - const result: number[] = []; - - for (let i = from; i < to; i += step) { - result.push(i); - } - - return result; -} diff --git a/src/data/data2d/Spectrum2D/contours.ts b/src/data/data2d/Spectrum2D/contours.ts index 083dc37b3..af7be8050 100644 --- a/src/data/data2d/Spectrum2D/contours.ts +++ b/src/data/data2d/Spectrum2D/contours.ts @@ -127,7 +127,7 @@ function getRange(min: number, max: number, length: number, exp?: number) { factors[0] = 0; for (let i = 1; i <= length; i++) { - factors[i] = factors[i - 1] + (exp - 1) / Math.pow(exp, i); + factors[i] = factors[i - 1] + (exp - 1) / exp ** i; } const lastFactor = factors[length]; @@ -201,7 +201,7 @@ function getContours(zoomLevel: number, options: ContoursCalcOptions) { const max = Math.max(Math.abs(data.maxZ), Math.abs(data.minZ)); - let _range = getRange(median * 1 * Math.pow(2, zoomLevel), max, nbLevels, 2); + let _range = getRange(median * 1 * 2 ** zoomLevel, max, nbLevels, 2); if (negative) { _range = _range.map((value) => -value); diff --git a/test-e2e/panels/peaks.test.ts b/test-e2e/panels/peaks.test.ts index 6dfff1077..c506dce10 100644 --- a/test-e2e/panels/peaks.test.ts +++ b/test-e2e/panels/peaks.test.ts @@ -144,8 +144,11 @@ test('Processed spectra peaks', async ({ page }) => { ]; for (const [i, { p, intensity }] of peaksData.entries()) { const peak = peaks.nth(i); + // eslint-disable-next-line no-await-in-loop await expect(peak).toBeVisible(); + // eslint-disable-next-line no-await-in-loop await expect(peak).toContainText(p); + // eslint-disable-next-line no-await-in-loop await expect(peak).toContainText(intensity); } }); @@ -168,6 +171,7 @@ test('Check no negative peaks in processed spectra', async ({ page }) => { for (let i = 0; i < 16; i++) { const peak = peaks.nth(i); + // eslint-disable-next-line no-await-in-loop expect(await peak.locator('td >> nth=2').textContent()).not.toContain( '-', ); diff --git a/test-e2e/panels/ranges.test.ts b/test-e2e/panels/ranges.test.ts index 387cd4639..b77798fde 100644 --- a/test-e2e/panels/ranges.test.ts +++ b/test-e2e/panels/ranges.test.ts @@ -129,8 +129,11 @@ test('Automatic ranges detection should work', async ({ page }) => { ]; for (const [i, { s, r }] of rangesData.entries()) { const range = ranges.nth(i); + // eslint-disable-next-line no-await-in-loop await expect(range).toBeVisible(); + // eslint-disable-next-line no-await-in-loop await expect(range).toContainText(s); + // eslint-disable-next-line no-await-in-loop await expect(range).toContainText(r); } }); diff --git a/test-e2e/panels/spectra.test.ts b/test-e2e/panels/spectra.test.ts index a68682725..7daaa7cc7 100644 --- a/test-e2e/panels/spectra.test.ts +++ b/test-e2e/panels/spectra.test.ts @@ -541,6 +541,7 @@ test('Multiple spectra analysis', async ({ page }) => { }); await test.step('Check spectra names', async () => { for (let i = 0; i < 13; i++) { + // eslint-disable-next-line no-await-in-loop await expect( nmrium.page.locator( `_react=SpectraTable >> _react=SpectrumName >> nth=${i} >> text=Coffee ${ From b6aa2a43a4fbee95e7a2b0fd6eb7756d4a42959b Mon Sep 17 00:00:00 2001 From: hamed musallam Date: Thu, 7 Dec 2023 15:58:12 +0100 Subject: [PATCH 02/10] refactor: context menu refactor: prevent show context menu if there is no options --- package-lock.json | 613 ++++++++++-------- package.json | 3 +- .../elements/ContextMenuBluePrint.tsx | 67 ++ .../ReactTable/Elements/ReactTableRow.tsx | 12 +- .../elements/ReactTable/ReactTable.tsx | 10 +- .../panels/RangesPanel/RangesPanel.tsx | 7 +- .../panels/RangesPanel/RangesTable.tsx | 4 +- .../panels/RangesPanel/RangesTableRow.tsx | 11 +- .../panels/SpectrumsPanel/SpectraTable.tsx | 48 +- .../panels/ZonesPanel/ZonesTableRow.tsx | 11 +- 10 files changed, 465 insertions(+), 321 deletions(-) create mode 100644 src/component/elements/ContextMenuBluePrint.tsx diff --git a/package-lock.json b/package-lock.json index 12c81a066..24a66c7d7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,7 @@ "license": "MIT", "dependencies": { "@blueprintjs/core": "^5.7.1", + "@blueprintjs/icons": "^5.4.1", "@emotion/react": "^11.11.1", "@emotion/styled": "^11.11.0", "@lukeed/uuid": "^2.0.1", @@ -56,7 +57,7 @@ "react-ocl-nmr": "^3.0.1", "react-plot": "^1.4.2", "react-rnd": "^10.4.1", - "react-science": "^0.27.0", + "react-science": "^0.29.0", "react-slider": "^2.0.6", "react-table": "^7.8.0", "react-transition-group": "^4.4.5", @@ -109,7 +110,6 @@ "version": "1.2.6", "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -1779,7 +1779,6 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, "dependencies": { "eslint-visitor-keys": "^3.3.0" }, @@ -1794,7 +1793,6 @@ "version": "4.10.0", "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", - "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } @@ -1803,7 +1801,6 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -1826,7 +1823,6 @@ "version": "13.23.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", - "dev": true, "dependencies": { "type-fest": "^0.20.2" }, @@ -1841,7 +1837,6 @@ "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, "engines": { "node": ">=10" }, @@ -1853,15 +1848,14 @@ "version": "8.55.0", "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.55.0.tgz", "integrity": "sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==", - "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@floating-ui/core": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.0.tgz", - "integrity": "sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.2.tgz", + "integrity": "sha512-Ii3MrfY/GAIN3OhXNzpCKaLxHQfJF9qvwq/kEJYdqDxeIHa01K8sldugal6TmeeXl+WMvhv9cnVzUTaFFJF09A==", "dependencies": { "@floating-ui/utils": "^0.1.3" } @@ -1876,9 +1870,9 @@ } }, "node_modules/@floating-ui/react-dom": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.2.tgz", - "integrity": "sha512-5qhlDvjaLmAst/rKb3VdlCinwTF4EYMiVxuuc/HVUjs46W0zgtbMmAZ1UTsDrRTxRmUEzl92mOtWbeeXL26lSQ==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.4.tgz", + "integrity": "sha512-CF8k2rgKeh/49UrnIBs4BdxPUV6vize/Db1d/YbCLyp9GiVZ0BEwf5AiDSxJRCr6yOkGqTFHtmrULxkEfYZ7dQ==", "dependencies": { "@floating-ui/dom": "^1.5.1" }, @@ -1911,7 +1905,6 @@ "version": "0.11.13", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", - "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^2.0.1", "debug": "^4.1.1", @@ -1925,7 +1918,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, "engines": { "node": ">=12.22" }, @@ -1937,8 +1929,7 @@ "node_modules/@humanwhocodes/object-schema": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", - "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", - "dev": true + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==" }, "node_modules/@isaacs/cliui": { "version": "8.0.2", @@ -2053,7 +2044,6 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -2066,7 +2056,6 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, "engines": { "node": ">= 8" } @@ -2075,7 +2064,6 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -2265,9 +2253,9 @@ } }, "node_modules/@radix-ui/react-dismissable-layer": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.4.tgz", - "integrity": "sha512-7UpBa/RKMoHJYjie1gkF1DlK8l1fdU/VKDpoS3rCCo8YBJR294GwcEHyxHw72yvphJ7ld0AXEcSLAzY2F/WyCg==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.5.tgz", + "integrity": "sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "1.0.1", @@ -2309,9 +2297,9 @@ } }, "node_modules/@radix-ui/react-focus-scope": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.3.tgz", - "integrity": "sha512-upXdPfqI4islj2CslyfUBNlaJCPybbqRHAi1KER7Isel9Q2AtSJ0zRBZv8mWQiFXD2nyAJ4BhC3yXgZ6kMBSrQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.4.tgz", + "integrity": "sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-compose-refs": "1.0.1", @@ -2352,9 +2340,9 @@ } }, "node_modules/@radix-ui/react-popper": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.1.2.tgz", - "integrity": "sha512-1CnGGfFi/bbqtJZZ0P/NQY20xdG3E0LALJaLUEoKwPLwl6PPPfbeiCqMVQnhoFRAxjJj4RpBRJzDmUgsex2tSg==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.1.3.tgz", + "integrity": "sha512-cKpopj/5RHZWjrbF2846jBNacjQVwkP068DfmgrNJXpvVWrOvlAmE9xSiy5OqeE+Gi8D9fP+oDhUnPqNMY8/5w==", "dependencies": { "@babel/runtime": "^7.13.10", "@floating-ui/react-dom": "^2.0.0", @@ -2384,9 +2372,9 @@ } }, "node_modules/@radix-ui/react-portal": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.0.3.tgz", - "integrity": "sha512-xLYZeHrWoPmA5mEKEfZZevoVRK/Q43GfzRXkWV6qawIWWK8t6ifIiLQdd7rmQ4Vk1bmI21XhqF9BN3jWf+phpA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.0.4.tgz", + "integrity": "sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-primitive": "1.0.3" @@ -2517,9 +2505,9 @@ } }, "node_modules/@radix-ui/react-select": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-1.2.2.tgz", - "integrity": "sha512-zI7McXr8fNaSrUY9mZe4x/HC0jTLY9fWNhO1oLWYMQGDXuV4UCivIGTxwioSzO0ZCYX9iSLyWmAh/1TOmX3Cnw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.0.0.tgz", + "integrity": "sha512-RH5b7af4oHtkcHS7pG6Sgv5rk5Wxa7XI8W5gvB1N/yiuDGZxko1ynvOiVhFM7Cis2A8zxF9bTOUVbRDzPepe6w==", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/number": "1.0.1", @@ -2528,12 +2516,12 @@ "@radix-ui/react-compose-refs": "1.0.1", "@radix-ui/react-context": "1.0.1", "@radix-ui/react-direction": "1.0.1", - "@radix-ui/react-dismissable-layer": "1.0.4", + "@radix-ui/react-dismissable-layer": "1.0.5", "@radix-ui/react-focus-guards": "1.0.1", - "@radix-ui/react-focus-scope": "1.0.3", + "@radix-ui/react-focus-scope": "1.0.4", "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-popper": "1.1.2", - "@radix-ui/react-portal": "1.0.3", + "@radix-ui/react-popper": "1.1.3", + "@radix-ui/react-portal": "1.0.4", "@radix-ui/react-primitive": "1.0.3", "@radix-ui/react-slot": "1.0.2", "@radix-ui/react-use-callback-ref": "1.0.1", @@ -3161,38 +3149,27 @@ "dev": true }, "node_modules/@tanstack/query-core": { - "version": "4.36.1", - "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-4.36.1.tgz", - "integrity": "sha512-DJSilV5+ytBP1FbFcEJovv4rnnm/CokuVvrBEtW/Va9DvuJ3HksbXUJEpI0aV1KtuL4ZoO9AVE6PyNLzF7tLeA==", + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.12.1.tgz", + "integrity": "sha512-WbZztNmKq0t6QjdNmHzezbi/uifYo9j6e2GLJkodsYaYUlzMbAp91RDyeHkIZrm7EfO4wa6Sm5sxJZm5SPlh6w==", "funding": { "type": "github", "url": "https://github.com/sponsors/tannerlinsley" } }, "node_modules/@tanstack/react-query": { - "version": "4.36.1", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-4.36.1.tgz", - "integrity": "sha512-y7ySVHFyyQblPl3J3eQBWpXZkliroki3ARnBKsdJchlgt7yJLRDUcf4B8soufgiYt3pEQIkBWBx1N9/ZPIeUWw==", + "version": "5.12.2", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.12.2.tgz", + "integrity": "sha512-BeWZu8zVFH20oRc+S/K9ADPgWjEzP/XQCGBNz5IbApUwPQAdwkQYbXODVL5AyAlWiSxhx+P2xlARPBApj2Yrog==", "dependencies": { - "@tanstack/query-core": "4.36.1", - "use-sync-external-store": "^1.2.0" + "@tanstack/query-core": "5.12.1" }, "funding": { "type": "github", "url": "https://github.com/sponsors/tannerlinsley" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-native": "*" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - } + "react": "^18.0.0" } }, "node_modules/@tanstack/react-table": { @@ -3918,8 +3895,7 @@ "node_modules/@ungap/structured-clone": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" }, "node_modules/@vitejs/plugin-react-swc": { "version": "3.5.0", @@ -4083,7 +4059,6 @@ "version": "8.11.2", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", - "dev": true, "bin": { "acorn": "bin/acorn" }, @@ -4095,7 +4070,6 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } @@ -4113,7 +4087,6 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -4237,8 +4210,7 @@ "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "node_modules/aria-hidden": { "version": "1.2.3", @@ -4479,8 +4451,7 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/baselines": { "version": "1.1.6", @@ -4559,7 +4530,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -5108,8 +5078,7 @@ "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "node_modules/configstore": { "version": "6.0.0", @@ -5226,7 +5195,6 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -5926,7 +5894,6 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, "dependencies": { "ms": "2.1.2" }, @@ -6009,8 +5976,7 @@ "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" }, "node_modules/deepmerge": { "version": "2.2.1", @@ -6099,7 +6065,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, "dependencies": { "esutils": "^2.0.2" }, @@ -6159,54 +6124,67 @@ "peer": true }, "node_modules/emdb": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/emdb/-/emdb-2.4.3.tgz", - "integrity": "sha512-irnEU374TUhjygl9gPbK8ubiwIBc8dboDwO+dWKQ2syCjdAsQr51jPBC0O95YlWKwiap+fEHHqKzXt6X1Q8R2Q==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/emdb/-/emdb-3.1.5.tgz", + "integrity": "sha512-Df5QEEh6u9u2ZlHBafEE99f0lPGSl81xbUgWg+3g6II8W0hDMWmbtfVB11/+gozpfNZ0WbyLLH8l43WOcIovPg==", "dependencies": { - "chemical-elements": "^2.0.2", + "chemical-elements": "^2.0.3", "chemical-groups": "^2.1.0", - "cross-fetch": "^3.1.5", - "isotopic-distribution": "^2.2.0", + "cross-fetch": "^4.0.0", + "isotopic-distribution": "^3.1.1", "jszip": "^3.10.1", - "mass-fragmentation": "^0.6.0", - "mf-finder": "^2.4.0", - "mf-from-google-sheet": "^2.0.7", - "mf-generator": "^2.1.1", - "mf-matcher": "^2.1.0", - "mf-parser": "^2.3.0", - "mf-utilities": "^2.0.4", + "mass-fragmentation": "^1.8.0", + "mf-finder": "^3.2.0", + "mf-from-google-sheet": "^3.0.3", + "mf-generator": "^3.1.0", + "mf-matcher": "^3.0.2", + "mf-parser": "^3.1.0", + "mf-utilities": "^3.1.0", "ml-regression-theil-sen": "^2.0.0", - "ml-spectra-processing": "^12.0.0", - "ms-spectrum": "^2.5.0", - "nucleotide": "^2.1.0", - "openchemlib-utils": "^2.4.0", + "ml-spectra-processing": "^12.6.0", + "ms-spectrum": "^3.3.0", + "nucleotide": "^3.0.2", + "openchemlib-utils": "5.5.0", "peaks-similarity": "^3.1.1", - "peptide": "^2.0.0" + "peptide": "^2.1.1" } }, - "node_modules/emdb/node_modules/cross-fetch": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", - "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", + "node_modules/emdb/node_modules/mf-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mf-parser/-/mf-parser-3.1.0.tgz", + "integrity": "sha512-sYyWzuFOjUVf+1IxrKBdvq7g/RC35IvjHQutNeBwAS+0zOvlva+lSB1o4juAoBAcYz5N3agAg6n9Hr1VS2aH3Q==", "dependencies": { - "node-fetch": "^2.6.12" + "atom-sorter": "^2.0.0", + "chemical-elements": "^2.0.3", + "chemical-groups": "^2.1.0", + "mf-utilities": "^3.1.0" + } + }, + "node_modules/emdb/node_modules/mf-utilities": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mf-utilities/-/mf-utilities-3.1.0.tgz", + "integrity": "sha512-TXa7UpbaOgP8LubpHBYsus3MvfS2UxZcD2LsYHs/rufNGPTTbTgzJvF0uQIOPNTd8i1XohmaSxK3inwZ+EaxoQ==", + "dependencies": { + "chemical-elements": "^2.0.3", + "chemical-groups": "^2.1.0", + "mf-parser": "^3.1.0" } }, "node_modules/emdb/node_modules/openchemlib-utils": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/openchemlib-utils/-/openchemlib-utils-2.9.0.tgz", - "integrity": "sha512-El0vE5Tg6BgujWHmnoAZR6azGwl6ESH6ieouUwHnYMgNvBfc63iJDzo7rn0TliK9Gr5BLQh89qfzO6A6eSeh9Q==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/openchemlib-utils/-/openchemlib-utils-5.5.0.tgz", + "integrity": "sha512-ySaDzLGZ2V6vNF9FtEabHXOMnpqkcRHQvepSS+qVkMmOaJoOc3wGxWOcMf+PrNtQyc1CIQ38GDTpFmK2QV8obQ==", "dependencies": { "atom-sorter": "^2.0.0", "ensure-string": "^1.2.0", "get-value": "^3.0.1", "ml-floyd-warshall": "^3.0.1", - "ml-matrix": "^6.10.4", + "ml-matrix": "^6.10.8", "papaparse": "^5.4.1", "sdf-parser": "^6.0.1" }, "peerDependencies": { - "openchemlib": ">=8.3.0" + "openchemlib": ">=8.6.2" } }, "node_modules/emoji-regex": { @@ -6422,7 +6400,6 @@ "version": "8.55.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.55.0.tgz", "integrity": "sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==", - "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -6850,7 +6827,6 @@ "version": "7.2.2", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -6866,7 +6842,6 @@ "version": "3.4.3", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -6878,7 +6853,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "engines": { "node": ">=8" } @@ -6887,7 +6861,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -6902,7 +6875,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -6918,7 +6890,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -6929,14 +6900,12 @@ "node_modules/eslint/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/eslint/node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, "dependencies": { "flat-cache": "^3.0.4" }, @@ -6948,7 +6917,6 @@ "version": "13.23.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", - "dev": true, "dependencies": { "type-fest": "^0.20.2" }, @@ -6963,7 +6931,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, "engines": { "node": ">=8" } @@ -6972,7 +6939,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -6984,7 +6950,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -6996,7 +6961,6 @@ "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, "engines": { "node": ">=10" }, @@ -7008,7 +6972,6 @@ "version": "9.6.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", @@ -7038,7 +7001,6 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, "dependencies": { "estraverse": "^5.1.0" }, @@ -7050,7 +7012,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, "dependencies": { "estraverse": "^5.2.0" }, @@ -7062,7 +7023,6 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, "engines": { "node": ">=4.0" } @@ -7077,7 +7037,6 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -7161,14 +7120,12 @@ "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" }, "node_modules/fast-loops": { "version": "1.1.3", @@ -7212,7 +7169,6 @@ "version": "1.15.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, "dependencies": { "reusify": "^1.0.4" } @@ -7290,7 +7246,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -7318,7 +7273,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", - "dev": true, "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.3", @@ -7332,7 +7286,6 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -7352,7 +7305,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, "dependencies": { "glob": "^7.1.3" }, @@ -7366,8 +7318,7 @@ "node_modules/flatted": { "version": "3.2.9", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", - "dev": true + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==" }, "node_modules/for-each": { "version": "0.3.3", @@ -7435,8 +7386,7 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "node_modules/fsevents": { "version": "2.3.2", @@ -7619,7 +7569,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, "dependencies": { "is-glob": "^4.0.3" }, @@ -7784,8 +7733,7 @@ "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" }, "node_modules/gyromagnetic-ratio": { "version": "1.1.1", @@ -7970,7 +7918,6 @@ "version": "5.2.4", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true, "engines": { "node": ">= 4" } @@ -8046,7 +7993,6 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, "engines": { "node": ">=0.8.19" } @@ -8065,7 +8011,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -8284,7 +8229,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -8331,7 +8275,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -8400,7 +8343,6 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, "engines": { "node": ">=8" } @@ -8598,8 +8540,7 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/isobject": { "version": "3.0.1", @@ -8610,16 +8551,37 @@ } }, "node_modules/isotopic-distribution": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isotopic-distribution/-/isotopic-distribution-2.2.1.tgz", - "integrity": "sha512-j8EqAXsdRUC5vopz/eCQHQai4lxztLVy71RtdZ/A7YZxJd5QBzrHgnf91M6qxBM9b5JNudVMubsHEZPKJ4N51Q==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isotopic-distribution/-/isotopic-distribution-3.1.1.tgz", + "integrity": "sha512-vLSJIpTkK8N4gnfToXAEdycwGCs/oSeiYXPcqXNYO6HcSVdNkh2XvKkpv1kRaeUSBYpO/ysBo6rAKtMFX4vUww==", "dependencies": { "chemical-elements": "^2.0.3", - "mf-parser": "^2.3.1", - "mf-utilities": "^2.0.5", + "mf-parser": "^3.1.0", + "mf-utilities": "^3.1.0", "spectrum-generator": "^8.0.8" } }, + "node_modules/isotopic-distribution/node_modules/mf-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mf-parser/-/mf-parser-3.1.0.tgz", + "integrity": "sha512-sYyWzuFOjUVf+1IxrKBdvq7g/RC35IvjHQutNeBwAS+0zOvlva+lSB1o4juAoBAcYz5N3agAg6n9Hr1VS2aH3Q==", + "dependencies": { + "atom-sorter": "^2.0.0", + "chemical-elements": "^2.0.3", + "chemical-groups": "^2.1.0", + "mf-utilities": "^3.1.0" + } + }, + "node_modules/isotopic-distribution/node_modules/mf-utilities": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mf-utilities/-/mf-utilities-3.1.0.tgz", + "integrity": "sha512-TXa7UpbaOgP8LubpHBYsus3MvfS2UxZcD2LsYHs/rufNGPTTbTgzJvF0uQIOPNTd8i1XohmaSxK3inwZ+EaxoQ==", + "dependencies": { + "chemical-elements": "^2.0.3", + "chemical-groups": "^2.1.0", + "mf-parser": "^3.1.0" + } + }, "node_modules/istanbul-lib-coverage": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", @@ -8774,7 +8736,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, "dependencies": { "argparse": "^2.0.1" }, @@ -8808,8 +8769,7 @@ "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", @@ -8819,14 +8779,12 @@ "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" }, "node_modules/json5": { "version": "2.2.3", @@ -8883,7 +8841,6 @@ "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, "dependencies": { "json-buffer": "3.0.1" } @@ -8907,7 +8864,6 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -8960,7 +8916,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, "dependencies": { "p-locate": "^5.0.0" }, @@ -9124,12 +9079,34 @@ } }, "node_modules/mass-fragmentation": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/mass-fragmentation/-/mass-fragmentation-0.6.0.tgz", - "integrity": "sha512-Yokw/z4nChOgR0LczfbVQqEMQpjyJXxbLLYUlJ5sfyoE2Jc8Fz7M1B5uYBnYkiDPAEPXsuYDF9vdrgFVZ9ul0w==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/mass-fragmentation/-/mass-fragmentation-1.8.0.tgz", + "integrity": "sha512-dy9JCXglcv7drkphtdt74aNctSzgBs0vGPH4U6eDER4CZT5hzAEMN42WNQqMYBFIX5i5QXzm9lv7OTNywV6Hxw==", "dependencies": { - "mf-parser": "^2.3.0", - "openchemlib-utils": "^5.0.2" + "mf-parser": "^3.1.0", + "openchemlib-utils": "^5.5.0", + "react-tree-svg": "^0.6.1" + } + }, + "node_modules/mass-fragmentation/node_modules/mf-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mf-parser/-/mf-parser-3.1.0.tgz", + "integrity": "sha512-sYyWzuFOjUVf+1IxrKBdvq7g/RC35IvjHQutNeBwAS+0zOvlva+lSB1o4juAoBAcYz5N3agAg6n9Hr1VS2aH3Q==", + "dependencies": { + "atom-sorter": "^2.0.0", + "chemical-elements": "^2.0.3", + "chemical-groups": "^2.1.0", + "mf-utilities": "^3.1.0" + } + }, + "node_modules/mass-fragmentation/node_modules/mf-utilities": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mf-utilities/-/mf-utilities-3.1.0.tgz", + "integrity": "sha512-TXa7UpbaOgP8LubpHBYsus3MvfS2UxZcD2LsYHs/rufNGPTTbTgzJvF0uQIOPNTd8i1XohmaSxK3inwZ+EaxoQ==", + "dependencies": { + "chemical-elements": "^2.0.3", + "chemical-groups": "^2.1.0", + "mf-parser": "^3.1.0" } }, "node_modules/mathml-tag-names": { @@ -9301,49 +9278,133 @@ } }, "node_modules/mf-finder": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/mf-finder/-/mf-finder-2.4.1.tgz", - "integrity": "sha512-ZZu7zAmaqHHpJfEv1qZefGm4y7DAA233SjlsXWryAsTlJJTuwm4/76b9KSjpbbyj9F9FQI38R4oSnY7ge4v/9Q==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mf-finder/-/mf-finder-3.2.0.tgz", + "integrity": "sha512-LzFpks0iY/VfGHix5sb8J4Wg+5k1zhoB3a/D9EyUCzPKB14ihVzqL/nGbBNa8iuQ9yyaqxPiQFjRg7OltIYfTw==", "dependencies": { "atom-sorter": "^2.0.0", "chemical-elements": "^2.0.3", - "mf-matcher": "^2.1.1", - "mf-parser": "^2.3.1", - "mf-utilities": "^2.0.5" + "mf-matcher": "^3.0.2", + "mf-parser": "^3.1.0", + "mf-utilities": "^3.1.0" + } + }, + "node_modules/mf-finder/node_modules/mf-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mf-parser/-/mf-parser-3.1.0.tgz", + "integrity": "sha512-sYyWzuFOjUVf+1IxrKBdvq7g/RC35IvjHQutNeBwAS+0zOvlva+lSB1o4juAoBAcYz5N3agAg6n9Hr1VS2aH3Q==", + "dependencies": { + "atom-sorter": "^2.0.0", + "chemical-elements": "^2.0.3", + "chemical-groups": "^2.1.0", + "mf-utilities": "^3.1.0" + } + }, + "node_modules/mf-finder/node_modules/mf-utilities": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mf-utilities/-/mf-utilities-3.1.0.tgz", + "integrity": "sha512-TXa7UpbaOgP8LubpHBYsus3MvfS2UxZcD2LsYHs/rufNGPTTbTgzJvF0uQIOPNTd8i1XohmaSxK3inwZ+EaxoQ==", + "dependencies": { + "chemical-elements": "^2.0.3", + "chemical-groups": "^2.1.0", + "mf-parser": "^3.1.0" } }, "node_modules/mf-from-google-sheet": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/mf-from-google-sheet/-/mf-from-google-sheet-2.0.8.tgz", - "integrity": "sha512-gsWBKxfJUW/aB7C4IlE3PIz3t/SSH+bPoA8Dgl8hkUwcSUhZpndw5YYPGUqYd7UE3mF/OXJJOTh1snbtiGKXOA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/mf-from-google-sheet/-/mf-from-google-sheet-3.0.3.tgz", + "integrity": "sha512-RAmAHGLKK85647T3pdqlfPIBWYe+yb8rLU8iCyYwOJajRPRGRcVHn4WOvur4vjjyJx7F/DHBDK5ti9euheCFnw==", "dependencies": { "cross-fetch": "^4.0.0", - "mf-generator": "^2.1.2", - "mf-parser": "^2.3.1", - "mf-utilities": "^2.0.5", + "mf-generator": "^3.1.0", + "mf-parser": "^3.1.0", + "mf-utilities": "^3.1.0", "papaparse": "^5.4.1" } }, + "node_modules/mf-from-google-sheet/node_modules/mf-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mf-parser/-/mf-parser-3.1.0.tgz", + "integrity": "sha512-sYyWzuFOjUVf+1IxrKBdvq7g/RC35IvjHQutNeBwAS+0zOvlva+lSB1o4juAoBAcYz5N3agAg6n9Hr1VS2aH3Q==", + "dependencies": { + "atom-sorter": "^2.0.0", + "chemical-elements": "^2.0.3", + "chemical-groups": "^2.1.0", + "mf-utilities": "^3.1.0" + } + }, + "node_modules/mf-from-google-sheet/node_modules/mf-utilities": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mf-utilities/-/mf-utilities-3.1.0.tgz", + "integrity": "sha512-TXa7UpbaOgP8LubpHBYsus3MvfS2UxZcD2LsYHs/rufNGPTTbTgzJvF0uQIOPNTd8i1XohmaSxK3inwZ+EaxoQ==", + "dependencies": { + "chemical-elements": "^2.0.3", + "chemical-groups": "^2.1.0", + "mf-parser": "^3.1.0" + } + }, "node_modules/mf-generator": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/mf-generator/-/mf-generator-2.1.2.tgz", - "integrity": "sha512-W5ONmgsPBmT3C6EiJ/jSiWt0qU04O+YAYbNggebtH3LgJMJagb4Mw6BBQU6/P6VdZs0ua9GXBroBHzWtH/Q0IA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mf-generator/-/mf-generator-3.1.0.tgz", + "integrity": "sha512-QuvuwtteltZ1PLH3SA1U2BXgBJJszGSY1AzCHV+S00lKMwviKaH6F/a3yd69QT9n+X7hSvl8S9G7cqhJUgxPSg==", "dependencies": { "chemical-elements": "^2.0.3", - "mf-finder": "^2.4.1", - "mf-matcher": "^2.1.1", - "mf-parser": "^2.3.1", - "mf-utilities": "^2.0.5", + "mf-finder": "^3.2.0", + "mf-matcher": "^3.0.2", + "mf-parser": "^3.1.0", + "mf-utilities": "^3.1.0", "sum-object-keys": "^1.0.2" } }, + "node_modules/mf-generator/node_modules/mf-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mf-parser/-/mf-parser-3.1.0.tgz", + "integrity": "sha512-sYyWzuFOjUVf+1IxrKBdvq7g/RC35IvjHQutNeBwAS+0zOvlva+lSB1o4juAoBAcYz5N3agAg6n9Hr1VS2aH3Q==", + "dependencies": { + "atom-sorter": "^2.0.0", + "chemical-elements": "^2.0.3", + "chemical-groups": "^2.1.0", + "mf-utilities": "^3.1.0" + } + }, + "node_modules/mf-generator/node_modules/mf-utilities": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mf-utilities/-/mf-utilities-3.1.0.tgz", + "integrity": "sha512-TXa7UpbaOgP8LubpHBYsus3MvfS2UxZcD2LsYHs/rufNGPTTbTgzJvF0uQIOPNTd8i1XohmaSxK3inwZ+EaxoQ==", + "dependencies": { + "chemical-elements": "^2.0.3", + "chemical-groups": "^2.1.0", + "mf-parser": "^3.1.0" + } + }, "node_modules/mf-matcher": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/mf-matcher/-/mf-matcher-2.1.1.tgz", - "integrity": "sha512-R5VFwGYMUpL13UJntCkn+T5uBse7M1Tl8Z+RdpbW8wX/Iiq2WzL+LrAwymRFmvkDEEjZbyZyqYFWdpQuM+cuKA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mf-matcher/-/mf-matcher-3.0.2.tgz", + "integrity": "sha512-hfuUJKjXmhH8cl+UPJviPB3ec6AzTAzCYbmajaRg1B3wMR/jYCHaN1NL7XQQUuqiSTqOAGoeOIULoI/+zLFQ+w==", "dependencies": { - "mf-utilities": "^2.0.5", - "ml-spectra-processing": "^12.5.0" + "mf-utilities": "^3.1.0", + "ml-spectra-processing": "^12.6.0" + } + }, + "node_modules/mf-matcher/node_modules/mf-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mf-parser/-/mf-parser-3.1.0.tgz", + "integrity": "sha512-sYyWzuFOjUVf+1IxrKBdvq7g/RC35IvjHQutNeBwAS+0zOvlva+lSB1o4juAoBAcYz5N3agAg6n9Hr1VS2aH3Q==", + "dependencies": { + "atom-sorter": "^2.0.0", + "chemical-elements": "^2.0.3", + "chemical-groups": "^2.1.0", + "mf-utilities": "^3.1.0" + } + }, + "node_modules/mf-matcher/node_modules/mf-utilities": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mf-utilities/-/mf-utilities-3.1.0.tgz", + "integrity": "sha512-TXa7UpbaOgP8LubpHBYsus3MvfS2UxZcD2LsYHs/rufNGPTTbTgzJvF0uQIOPNTd8i1XohmaSxK3inwZ+EaxoQ==", + "dependencies": { + "chemical-elements": "^2.0.3", + "chemical-groups": "^2.1.0", + "mf-parser": "^3.1.0" } }, "node_modules/mf-parser": { @@ -9421,7 +9482,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -9856,27 +9916,47 @@ "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/ms-spectrum": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/ms-spectrum/-/ms-spectrum-2.5.0.tgz", - "integrity": "sha512-iEBpHTb8jbbHrABVMEfaBaddAWMlmS93HgC8V2xYED4LhIPucSJOm0AmY/m3hXMyaOrIOmpkH1w/l2I8t/ZgCw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/ms-spectrum/-/ms-spectrum-3.3.0.tgz", + "integrity": "sha512-t2+yw2x7C5R4UITNzUbPupnW4GhNy8PNL8cbMUGOdUy+hvfUz+NkMrKN1p31hBUS18XQY2+Cf8f3QadP0jdpzg==", "dependencies": { - "cheminfo-types": "^1.4.0", - "emdb": "^2.4.3", - "is-any-array": "^2.0.0", - "mf-parser": "^2.3.0", - "mf-utilities": "^2.0.4", - "ml-distance": "^4.0.0", + "cheminfo-types": "^1.7.2", + "emdb": "^3.1.5", + "is-any-array": "^2.0.1", + "mf-parser": "^3.1.0", + "mf-utilities": "^3.1.0", + "ml-distance": "^4.0.1", "ml-gsd": "^12.1.3", "ml-regression-power": "^2.0.0", - "ml-spectra-processing": "^12.0.0", + "ml-spectra-processing": "^12.6.0", "peaks-similarity": "^3.1.1", "xy-parser": "^5.0.4" } }, + "node_modules/ms-spectrum/node_modules/mf-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mf-parser/-/mf-parser-3.1.0.tgz", + "integrity": "sha512-sYyWzuFOjUVf+1IxrKBdvq7g/RC35IvjHQutNeBwAS+0zOvlva+lSB1o4juAoBAcYz5N3agAg6n9Hr1VS2aH3Q==", + "dependencies": { + "atom-sorter": "^2.0.0", + "chemical-elements": "^2.0.3", + "chemical-groups": "^2.1.0", + "mf-utilities": "^3.1.0" + } + }, + "node_modules/ms-spectrum/node_modules/mf-utilities": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mf-utilities/-/mf-utilities-3.1.0.tgz", + "integrity": "sha512-TXa7UpbaOgP8LubpHBYsus3MvfS2UxZcD2LsYHs/rufNGPTTbTgzJvF0uQIOPNTd8i1XohmaSxK3inwZ+EaxoQ==", + "dependencies": { + "chemical-elements": "^2.0.3", + "chemical-groups": "^2.1.0", + "mf-parser": "^3.1.0" + } + }, "node_modules/multiplet-analysis": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/multiplet-analysis/-/multiplet-analysis-2.1.2.tgz", @@ -9931,8 +10011,7 @@ "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" }, "node_modules/negotiator": { "version": "0.6.3", @@ -9944,11 +10023,11 @@ } }, "node_modules/netcdfjs": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netcdfjs/-/netcdfjs-2.0.2.tgz", - "integrity": "sha512-Uyz+3rqdF3D4WhnQY3lmG/FBY53OsDfloYnjBhoG+jZZs25RXWIOVU8d+V852Kv0xgtt1MzaSdeYmUS9enJ+ow==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/netcdfjs/-/netcdfjs-3.0.0.tgz", + "integrity": "sha512-LOvT8KkC308qtpUkcBPiCMBtii7ZQCN6LxcVheWgyUeZ6DQWcpSRFV9dcVXLj/2eHZ/bre9tV5HTH4Sf93vrFw==", "dependencies": { - "iobuffer": "^5.2.1" + "iobuffer": "^5.3.2" } }, "node_modules/nmr-correlation": { @@ -10118,12 +10197,33 @@ } }, "node_modules/nucleotide": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nucleotide/-/nucleotide-2.1.1.tgz", - "integrity": "sha512-0YJsWdvLrBH8ZRUzSLlW4++iUnOV3rdZ057Tj6Vy0ufs4teaG4mfUZxuOR9UDD1yOckQzuiVZR3rnjMceJwqSg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/nucleotide/-/nucleotide-3.0.2.tgz", + "integrity": "sha512-p3jY7Ke/zxahvaCDoPP3zJZ0ypbqezWBRAfkMT/8kfhQz/6qYcjCdK25ZHtOjbh0cKppyA3eFU6E4R5jd02weg==", "dependencies": { "chemical-groups": "^2.1.0", - "mf-utilities": "^2.0.5" + "mf-utilities": "^3.1.0" + } + }, + "node_modules/nucleotide/node_modules/mf-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mf-parser/-/mf-parser-3.1.0.tgz", + "integrity": "sha512-sYyWzuFOjUVf+1IxrKBdvq7g/RC35IvjHQutNeBwAS+0zOvlva+lSB1o4juAoBAcYz5N3agAg6n9Hr1VS2aH3Q==", + "dependencies": { + "atom-sorter": "^2.0.0", + "chemical-elements": "^2.0.3", + "chemical-groups": "^2.1.0", + "mf-utilities": "^3.1.0" + } + }, + "node_modules/nucleotide/node_modules/mf-utilities": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mf-utilities/-/mf-utilities-3.1.0.tgz", + "integrity": "sha512-TXa7UpbaOgP8LubpHBYsus3MvfS2UxZcD2LsYHs/rufNGPTTbTgzJvF0uQIOPNTd8i1XohmaSxK3inwZ+EaxoQ==", + "dependencies": { + "chemical-elements": "^2.0.3", + "chemical-groups": "^2.1.0", + "mf-parser": "^3.1.0" } }, "node_modules/num-sort": { @@ -10283,7 +10383,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, "dependencies": { "wrappy": "1" } @@ -10329,7 +10428,6 @@ "version": "0.9.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dev": true, "dependencies": { "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", @@ -10346,7 +10444,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, "dependencies": { "yocto-queue": "^0.1.0" }, @@ -10361,7 +10458,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, "dependencies": { "p-limit": "^3.0.2" }, @@ -10452,7 +10548,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, "engines": { "node": ">=8" } @@ -10461,7 +10556,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -10476,7 +10570,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, "engines": { "node": ">=8" } @@ -10549,9 +10642,9 @@ } }, "node_modules/peptide": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/peptide/-/peptide-2.1.0.tgz", - "integrity": "sha512-Mql9n9oQIRRIMtQjXS7RriHNKNdsKK7l5z3JL5dOS30zzUvMSfYJFSv8h+CGhxqK7a5wSRIZeqvzR9tfjpMUSQ==" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/peptide/-/peptide-2.1.1.tgz", + "integrity": "sha512-jyEVVMQbjOwv+S2y+zKl9nrrwMsVioPuUmSwlex9DBAbq04ext3QFkazg/o+fgdCldhAcCh5H1Lh9UR6ABU8ew==" }, "node_modules/picocolors": { "version": "1.0.0", @@ -10815,7 +10908,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, "engines": { "node": ">= 0.8.0" } @@ -10897,7 +10989,6 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, "funding": [ { "type": "github", @@ -11353,47 +11444,49 @@ } }, "node_modules/react-science": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/react-science/-/react-science-0.27.0.tgz", - "integrity": "sha512-x7CSIV0BJLHy3GZAKZ31STB6S+MWdRvrXRUhs2w9/JHJ5xONjmGdEB4SqG8YMDEl2u5Pij4vb2YJEd++cyVuVg==", + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/react-science/-/react-science-0.29.0.tgz", + "integrity": "sha512-vZXgDYlY6SMflYBuWKlWzFZ8mPlCEO8XiIXqIvEStmFsE1ykBDVPigjDAlS3UQGWLWw5hl3ePOSiLClcJZix0A==", "dependencies": { "@emotion/react": "^11.11.1", "@emotion/styled": "^11.11.0", - "@headlessui/react": "^1.7.16", + "@headlessui/react": "^1.7.17", "@lukeed/uuid": "^2.0.1", "@popperjs/core": "^2.11.8", "@radix-ui/react-checkbox": "^1.0.4", "@radix-ui/react-radio-group": "^1.1.3", - "@radix-ui/react-select": "^1.2.2", - "@tanstack/react-query": "^4.32.6", - "@tanstack/react-table": "^8.9.3", + "@radix-ui/react-select": "^2.0.0", + "@tanstack/react-query": "^5.8.2", + "@tanstack/react-table": "^8.10.7", "biologic-converter": "^0.6.0", "cheminfo-types": "^1.7.2", "d3-scale-chromatic": "^3.0.0", - "filelist-utils": "^1.10.1", - "immer": "^10.0.2", - "jcampconverter": "^9.1.1", + "filelist-utils": "^1.10.2", + "immer": "^10.0.3", + "jcampconverter": "^9.2.2", "lodash": "^4.17.21", "ml-gsd": "^12.1.3", "ml-peak-shape-generator": "^4.1.2", "ml-signal-processing": "^1.0.3", - "ml-spectra-processing": "^12.5.0", - "ms-spectrum": "^2.4.2", - "netcdfjs": "^2.0.2", + "ml-spectra-processing": "^12.6.0", + "ms-spectrum": "^3.0.7", + "netcdfjs": "^3.0.0", "react-d3-utils": "^1.0.0", "react-dropzone": "^14.2.3", "react-error-boundary": "^4.0.11", - "react-icons": "^4.10.1", + "react-icons": "^4.11.0", "react-inspector": "^6.0.2", "react-kbs": "^2.1.1", "react-plot": "^1.4.2", "react-popper": "^2.3.0", - "spc-parser": "^0.7.2", + "spc-parser": "^0.7.3", "tinycolor2": "^1.6.0", "use-resize-observer": "^9.1.0", "wdf-parser": "^0.3.0" }, "peerDependencies": { + "@blueprintjs/core": "^5.3.2", + "@blueprintjs/icons": "^5.1.7", "react": ">=18.0.0", "react-dom": ">=18.0.0" } @@ -11458,6 +11551,18 @@ "react-dom": ">=16.6.0" } }, + "node_modules/react-tree-svg": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/react-tree-svg/-/react-tree-svg-0.6.1.tgz", + "integrity": "sha512-yP2H7s/8ZeeQdgpGpdJy8kKmYvMiCq5oHUIIUT9FKZn4WTWqmf4tcJWKnPKfzxiTkJLonmHO9k0lEggX4S5DPg==", + "dependencies": { + "eslint": "^8.50.0", + "numeral": "^2.0.6", + "openchemlib": "^8.5.0", + "react": "^18.2.0", + "react-dom": "^18.2.0" + } + }, "node_modules/react-universal-interface": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/react-universal-interface/-/react-universal-interface-0.6.2.tgz", @@ -11800,7 +11905,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -11878,7 +11982,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, "funding": [ { "type": "github", @@ -12229,7 +12332,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -12241,7 +12343,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, "engines": { "node": ">=8" } @@ -12697,7 +12798,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, "engines": { "node": ">=8" }, @@ -13101,8 +13201,7 @@ "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" }, "node_modules/throttle-debounce": { "version": "3.0.1", @@ -13272,7 +13371,6 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, "dependencies": { "prelude-ls": "^1.2.1" }, @@ -13494,7 +13592,6 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, "dependencies": { "punycode": "^2.1.0" } @@ -13503,7 +13600,6 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, "engines": { "node": ">=6" } @@ -13561,14 +13657,6 @@ } } }, - "node_modules/use-sync-external-store": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", - "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -13942,7 +14030,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "dependencies": { "isexe": "^2.0.0" }, @@ -14195,8 +14282,7 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/write-file-atomic": { "version": "3.0.3", @@ -14266,7 +14352,6 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, "engines": { "node": ">=10" }, diff --git a/package.json b/package.json index a13411f9a..dc648f45c 100644 --- a/package.json +++ b/package.json @@ -57,6 +57,7 @@ }, "dependencies": { "@blueprintjs/core": "^5.7.1", + "@blueprintjs/icons": "^5.4.1", "@emotion/react": "^11.11.1", "@emotion/styled": "^11.11.0", "@lukeed/uuid": "^2.0.1", @@ -103,7 +104,7 @@ "react-ocl-nmr": "^3.0.1", "react-plot": "^1.4.2", "react-rnd": "^10.4.1", - "react-science": "^0.27.0", + "react-science": "^0.29.0", "react-slider": "^2.0.6", "react-table": "^7.8.0", "react-transition-group": "^4.4.5", diff --git a/src/component/elements/ContextMenuBluePrint.tsx b/src/component/elements/ContextMenuBluePrint.tsx new file mode 100644 index 000000000..a36d05139 --- /dev/null +++ b/src/component/elements/ContextMenuBluePrint.tsx @@ -0,0 +1,67 @@ +import { + ContextMenuProps as BluePrintContextMenuProps, + Menu, + MenuItem, + MenuItemProps, + showContextMenu, +} from '@blueprintjs/core'; +import React, { ComponentProps, ElementType, ReactNode } from 'react'; + +export interface ContextMenuItem extends MenuItemProps { + data?: object; +} + +type ElementProps = E extends ElementType + ? ComponentProps + : never; + +export interface BaseContextMenuProps { + options: ContextMenuItem[]; + onSelect: (data?: object) => void; +} + +export interface ContextMenuProps + extends BaseContextMenuProps, + Omit { + as?: E; + children: ReactNode; +} + +export function ContextMenu( + props: ContextMenuProps & ElementProps, +) { + const { options, onSelect, children, as: Wrapper = 'div', ...other } = props; + + function handleContextMenu(event: React.MouseEvent) { + if (!Array.isArray(options) || options.length === 0) { + return; + } + + const content = ( + + {options.map((option) => ( + onSelect(option?.data)} + /> + ))} + + ); + + event.preventDefault(); + showContextMenu({ + content, + targetOffset: { + left: event.clientX, + top: event.clientY, + }, + }); + } + + return ( + + {children} + + ); +} diff --git a/src/component/elements/ReactTable/Elements/ReactTableRow.tsx b/src/component/elements/ReactTable/Elements/ReactTableRow.tsx index 8343541f0..0b0aeef96 100644 --- a/src/component/elements/ReactTable/Elements/ReactTableRow.tsx +++ b/src/component/elements/ReactTable/Elements/ReactTableRow.tsx @@ -2,10 +2,10 @@ import { css, CSSObject } from '@emotion/react'; import { useMemo, useEffect, useCallback } from 'react'; -import { DropdownMenu } from 'react-science/ui'; import { HighlightEventSource, useHighlight } from '../../../highlight/index'; -import { BaseRowStyle, ContextMenuProps } from '../ReactTable'; +import { ContextMenu } from '../../ContextMenuBluePrint'; +import { BaseRowStyle, TableContextMenuProps } from '../ReactTable'; function getRowStyle( isActive: boolean, @@ -36,7 +36,7 @@ function getRowStyle( export interface ClickEvent { onClick?: (event: Event, data: unknown) => void; } -interface ReactTableRowProps extends ClickEvent, ContextMenuProps { +interface ReactTableRowProps extends ClickEvent, TableContextMenuProps { row: any; highlightedSource?: HighlightEventSource; isRowActive: boolean; @@ -89,11 +89,11 @@ function ReactTableRow(props: ReactTableRowProps) { [onClick, row], ); return ( - onContextMenuSelect?.(selected, row.original)} as="tr" + style={{ position: 'static' }} key={row.getRowProps().key} css={getRowStyle( highlight.isActive || isRowActive, @@ -127,7 +127,7 @@ function ReactTableRow(props: ReactTableRowProps) { ); } })} - + ); } diff --git a/src/component/elements/ReactTable/ReactTable.tsx b/src/component/elements/ReactTable/ReactTable.tsx index 4191514ae..22584585e 100644 --- a/src/component/elements/ReactTable/ReactTable.tsx +++ b/src/component/elements/ReactTable/ReactTable.tsx @@ -13,7 +13,6 @@ import { useEffect, useMemo, } from 'react'; -import { DropdownMenuProps } from 'react-science/ui'; import { useTable, useSortBy, @@ -28,6 +27,7 @@ import { import { useMeasure } from 'react-use'; import { HighlightEventSource } from '../../highlight'; +import { BaseContextMenuProps } from '../ContextMenuBluePrint'; import { EmptyDataRow } from './Elements/EmptyDataRow'; import ReactTableHeader from './Elements/ReactTableHeader'; @@ -69,14 +69,14 @@ export interface BaseRowStyle { base?: CSSProperties; } -export interface ContextMenuProps { +export interface TableContextMenuProps { onContextMenuSelect?: ( - selected: Parameters['onSelect']>[0], + selected: Parameters[0], data: any, ) => void; - contextMenu?: DropdownMenuProps['options']; + contextMenu?: BaseContextMenuProps['options']; } -interface ReactTableProps extends ContextMenuProps, ClickEvent, SortEvent { +interface ReactTableProps extends TableContextMenuProps, ClickEvent, SortEvent { data: any; columns: any; highlightedSource?: HighlightEventSource; diff --git a/src/component/panels/RangesPanel/RangesPanel.tsx b/src/component/panels/RangesPanel/RangesPanel.tsx index 394dd655d..7355681d4 100644 --- a/src/component/panels/RangesPanel/RangesPanel.tsx +++ b/src/component/panels/RangesPanel/RangesPanel.tsx @@ -6,7 +6,6 @@ import { Spectrum1D, WorkSpacePanelPreferences } from 'nmr-load-save'; import { Info1D, Ranges } from 'nmr-processing'; import { useCallback, useMemo, memo, useState, useRef } from 'react'; import { FaCopy } from 'react-icons/fa'; -import { DropdownMenuProps } from 'react-science/ui'; import { StateMoleculeExtended } from '../../../data/molecules/Molecule'; import { ClipboardFallbackModal } from '../../../utils/clipboard/clipboardComponents'; @@ -14,6 +13,7 @@ import { useClipboard } from '../../../utils/clipboard/clipboardHooks'; import { useAssignmentData } from '../../assignment/AssignmentsContext'; import { useChartData } from '../../context/ChartContext'; import { useDispatch } from '../../context/DispatchContext'; +import { BaseContextMenuProps } from '../../elements/ContextMenuBluePrint'; import { useAlert } from '../../elements/popup/Alert'; import { usePanelPreferences } from '../../hooks/usePanelPreferences'; import useSpectrum from '../../hooks/useSpectrum'; @@ -24,10 +24,9 @@ import RangesHeader from './RangesHeader'; import RangesPreferences from './RangesPreferences'; import RangesTable from './RangesTable'; -const rangesContextMenuOptions: DropdownMenuProps['options'] = [ +const rangesContextMenuOptions: BaseContextMenuProps['options'] = [ { - label: 'Copy to Clipboard', - type: 'option', + text: 'Copy to Clipboard', icon: , }, ]; diff --git a/src/component/panels/RangesPanel/RangesTable.tsx b/src/component/panels/RangesPanel/RangesTable.tsx index 4cdf21084..464e3aafa 100644 --- a/src/component/panels/RangesPanel/RangesTable.tsx +++ b/src/component/panels/RangesPanel/RangesTable.tsx @@ -4,7 +4,7 @@ import { WorkSpacePanelPreferences } from 'nmr-load-save'; import { Info1D } from 'nmr-processing'; import { FaLink } from 'react-icons/fa'; -import { ContextMenuProps } from '../../elements/ReactTable/ReactTable'; +import { TableContextMenuProps } from '../../elements/ReactTable/ReactTable'; import useTableSortBy from '../../hooks/useTableSortBy'; import NoDataForFid from '../extra/placeholder/NoDataForFid'; import NoTableData from '../extra/placeholder/NoTableData'; @@ -56,7 +56,7 @@ const tableStyle = css` } } `; -interface RangesTableProps extends ContextMenuProps { +interface RangesTableProps extends TableContextMenuProps { onUnlink: (a: any, b?: any) => void; preferences: WorkSpacePanelPreferences['ranges']; tableData: any; diff --git a/src/component/panels/RangesPanel/RangesTableRow.tsx b/src/component/panels/RangesPanel/RangesTableRow.tsx index 7f6643b9c..fe4ad03f3 100644 --- a/src/component/panels/RangesPanel/RangesTableRow.tsx +++ b/src/component/panels/RangesPanel/RangesTableRow.tsx @@ -4,7 +4,6 @@ import lodashGet from 'lodash/get'; import { WorkSpacePanelPreferences } from 'nmr-load-save'; import { Info1D } from 'nmr-processing'; import { useMemo, useCallback, MouseEvent, CSSProperties } from 'react'; -import { DropdownMenu } from 'react-science/ui'; import { AssignmentsData, @@ -12,7 +11,8 @@ import { useAssignmentData, } from '../../assignment/AssignmentsContext'; import { filterForIDsWithAssignment } from '../../assignment/utilities/filterForIDsWithAssignment'; -import { ContextMenuProps } from '../../elements/ReactTable/ReactTable'; +import { ContextMenu } from '../../elements/ContextMenuBluePrint'; +import { TableContextMenuProps } from '../../elements/ReactTable/ReactTable'; import { HighlightEventSource, useHighlight, @@ -38,7 +38,7 @@ const ConstantlyHighlightedRowStyle = css` background-color: #f5f5dc; `; -interface RangesTableRowProps extends ContextMenuProps { +interface RangesTableRowProps extends TableContextMenuProps { rowData: any; onUnlink: (a: any, b?: any) => void; preferences: WorkSpacePanelPreferences['ranges']; @@ -189,8 +189,7 @@ function RangesTableRow({ }, [assignmentRange.isActive, highlightRange.isActive, rowData]); return ( - onContextMenuSelect?.(selected, rowData)} as="tr" @@ -302,7 +301,7 @@ function RangesTableRow({ showEditAction={preferences.showEditAction} showZoomAction={preferences.showZoomAction} /> - + ); } diff --git a/src/component/panels/SpectrumsPanel/SpectraTable.tsx b/src/component/panels/SpectrumsPanel/SpectraTable.tsx index 93e2a310b..bd02de839 100644 --- a/src/component/panels/SpectrumsPanel/SpectraTable.tsx +++ b/src/component/panels/SpectrumsPanel/SpectraTable.tsx @@ -10,11 +10,14 @@ import { import { useMemo, CSSProperties, useCallback, useState } from 'react'; import { FaCopy, FaRegTrashAlt, FaFileExport } from 'react-icons/fa'; import { IoColorPaletteOutline } from 'react-icons/io5'; -import { DropdownMenu, DropdownMenuProps } from 'react-science/ui'; import { ClipboardFallbackModal } from '../../../utils/clipboard/clipboardComponents'; import { useClipboard } from '../../../utils/clipboard/clipboardHooks'; import { useDispatch } from '../../context/DispatchContext'; +import { + ContextMenu, + ContextMenuItem, +} from '../../elements/ContextMenuBluePrint'; import ReactTable, { Column } from '../../elements/ReactTable/ReactTable'; import { useAlert } from '../../elements/popup/Alert'; import { usePanelPreferences } from '../../hooks/usePanelPreferences'; @@ -58,10 +61,9 @@ interface SpectraTableProps extends OnChangeVisibilityEvent { nucleus: string; } -const options: DropdownMenuProps['options'] = [ +const options: ContextMenuItem[] = [ { - label: 'Recolor based on distinct value', - type: 'option', + text: 'Recolor based on distinct value', icon: , }, ]; @@ -72,32 +74,28 @@ enum SpectraContextMenuOptionsKeys { ExportAsJcamp = 'ExportAsJcamp', } -const Spectra2DContextMenuOptions: DropdownMenuProps['options'] = [ +const Spectra2DContextMenuOptions: ContextMenuItem[] = [ { - label: 'Copy to Clipboard', - type: 'option', + text: 'Copy to Clipboard', icon: , data: { id: SpectraContextMenuOptionsKeys.CopyToClipboard }, }, { - label: 'Delete', - type: 'option', + text: 'Delete', icon: , data: { id: SpectraContextMenuOptionsKeys.Delete }, }, { - label: 'Export as jcamp', - type: 'option', + text: 'Export as jcamp', icon: , data: { id: SpectraContextMenuOptionsKeys.ExportAsJcamp }, }, ]; -const Spectra1DContextMenuOptions: DropdownMenuProps['options'] = [ +const Spectra1DContextMenuOptions: ContextMenuItem[] = [ ...Spectra2DContextMenuOptions, { - label: 'Export as jcamp', - type: 'option', + text: 'Export as jcamp', icon: , data: { id: SpectraContextMenuOptionsKeys.ExportAsJcamp }, }, @@ -200,7 +198,7 @@ export function SpectraTable(props: SpectraTableProps) { const selectContextMenuHandler = useCallback( (option, spectrum) => { - const { id } = option.data; + const { id } = option; switch (id) { case SpectraContextMenuOptionsKeys.CopyToClipboard: { void (async () => { @@ -349,20 +347,16 @@ const ColumnHeader = ({ } return ( - -
- {label} -
-
+ {label} + ); }; diff --git a/src/component/panels/ZonesPanel/ZonesTableRow.tsx b/src/component/panels/ZonesPanel/ZonesTableRow.tsx index 90846b5f6..92cebe454 100644 --- a/src/component/panels/ZonesPanel/ZonesTableRow.tsx +++ b/src/component/panels/ZonesPanel/ZonesTableRow.tsx @@ -2,7 +2,6 @@ import lodashGet from 'lodash/get'; import { CSSProperties, useMemo, useCallback, MouseEvent } from 'react'; -import { DropdownMenu } from 'react-science/ui'; import { buildID } from '../../../data/utilities/Concatenation'; import { @@ -10,7 +9,8 @@ import { useAssignment, AssignmentsData, } from '../../assignment/AssignmentsContext'; -import { ContextMenuProps } from '../../elements/ReactTable/ReactTable'; +import { ContextMenu } from '../../elements/ContextMenuBluePrint'; +import { TableContextMenuProps } from '../../elements/ReactTable/ReactTable'; import { useHighlight } from '../../highlight'; import { usePanelPreferences } from '../../hooks/usePanelPreferences'; @@ -24,7 +24,7 @@ const HighlightedRowStyle: CSSProperties = { backgroundColor: '#ff6f0057' }; const ConstantlyHighlightedRowStyle = { backgroundColor: '#f5f5dc' }; -interface ZonesTableRowProps extends ContextMenuProps { +interface ZonesTableRowProps extends TableContextMenuProps { rowData: ZoneData; onUnlink: ( rowData: ZoneData, @@ -179,8 +179,7 @@ function ZonesTableRow({ }, [assignmentSignal, highlightSignalY]); return ( - onContextMenuSelect?.(selected, rowData)} as="tr" @@ -230,7 +229,7 @@ function ZonesTableRow({ rowSpanTags={rowSpanTags} {...{ showKind, showDeleteAction, showEditAction, showZoomAction }} /> - + ); } From 4edc8b13184a561ff6a5bc4555f1963ec7b9c3cc Mon Sep 17 00:00:00 2001 From: hamed musallam Date: Thu, 7 Dec 2023 15:59:16 +0100 Subject: [PATCH 03/10] refactor: toolbar item and dropdown menu --- src/component/elements/DropdownMenu.tsx | 39 ++++ src/component/elements/ToolbarMenu.tsx | 188 ------------------ src/component/header/Header.tsx | 14 +- src/component/modal/aboutUs/AboutUsModal.tsx | 14 +- .../modal/setting/GeneralSettings.tsx | 6 +- .../MoleculesPanel/MoleculePanelHeader.tsx | 28 +-- src/component/toolbar/BasicToolBar.tsx | 144 ++++++++------ src/component/toolbar/FunctionToolBar.tsx | 20 +- src/component/toolbar/ToolBar.tsx | 2 +- 9 files changed, 149 insertions(+), 306 deletions(-) create mode 100644 src/component/elements/DropdownMenu.tsx delete mode 100644 src/component/elements/ToolbarMenu.tsx diff --git a/src/component/elements/DropdownMenu.tsx b/src/component/elements/DropdownMenu.tsx new file mode 100644 index 000000000..288156ed1 --- /dev/null +++ b/src/component/elements/DropdownMenu.tsx @@ -0,0 +1,39 @@ +import { + Menu, + MenuItem, + MenuItemProps, + Popover, + PopoverProps, +} from '@blueprintjs/core'; + +export interface DropdownMenuItem extends MenuItemProps { + data?: object; +} + +export interface DropdownMenuProps + extends Omit { + options: DropdownMenuItem[]; + onSelect: (data?: object) => void; +} + +export function DropdownMenu(props: DropdownMenuProps) { + const { options, onSelect, children, ...other } = props; + + const content = ( + + {options.map((option) => ( + onSelect(option?.data)} + /> + ))} + + ); + + return ( + + {children} + + ); +} diff --git a/src/component/elements/ToolbarMenu.tsx b/src/component/elements/ToolbarMenu.tsx deleted file mode 100644 index e71e56a44..000000000 --- a/src/component/elements/ToolbarMenu.tsx +++ /dev/null @@ -1,188 +0,0 @@ -/** @jsxImportSource @emotion/react */ -import { css } from '@emotion/react'; -import { - ReactNode, - useState, - useCallback, - useRef, - useLayoutEffect, -} from 'react'; -import { Toolbar } from 'react-science/ui'; - -import { BoundingBox } from './MenuButton'; - -const menuStyles = css` - .menu { - box-shadow: 0 0 10px rgb(0 0 0 / 50%); - margin: 0; - border-radius: 5px; - display: flex; - flex-direction: column; - position: absolute; - z-index: 99999; - padding: 2px; - background-color: white; - - button:hover { - background-color: #fafafa; - } - } - - .menu-cover { - position: fixed; - width: 100%; - height: 100%; - top: 0; - left: 0; - z-index: 1; - } - - .menu-item { - background-color: transparent; - border: none; - border-bottom: 0.55px solid whitesmoke; - height: 35px; - outline: outline; - display: table-cell; - vertical-align: middle; - text-align: left; - padding: 0 10px; - - svg { - display: inline-block; - } - - :focus { - outline: none !important; - } - - span { - font-size: 10px; - padding: 0 10px; - } - } -`; - -interface MenuItemProps { - icon: ReactNode; - label: string; - onClick?: () => void; -} - -function MenuItem({ icon, label, onClick }: MenuItemProps) { - return ( - - ); -} - -interface MenuListProps { - items: Array; - onClick: (element: MenuItemProps & { id: string }) => void; - boxBounding?: BoundingBox; -} - -function MenuList({ - items, - boxBounding = { x: 0, y: 0, width: 0, height: 0 }, - onClick, -}: MenuListProps) { - const listRef = useRef(); - const [translate, setTranslate] = useState({ - x: boxBounding.width, - y: boxBounding.height, - }); - - useLayoutEffect(() => { - const boxSize = listRef.current.getBoundingClientRect(); - setTranslate((oldTransform) => { - let y = boxBounding.height; - if (boxSize.bottom > window.innerHeight) { - y = boxBounding.height * 2 + (boxSize.bottom - window.innerHeight); - } - return { - ...oldTransform, - y, - }; - }); - }, [boxBounding.height]); - - return ( -
- {items?.map((item) => { - return ( - onClick(item)} /> - ); - })} -
- ); -} - -interface MenuButtonProps { - component: ReactNode; - toolTip: string; - items?: Array; - onClick?: (element: MenuItemProps & { id: string }) => void; -} - -export default function ToolbarMenu({ - component, - toolTip = '', - items = [], - onClick = () => null, -}: MenuButtonProps) { - const menuButtonRef = useRef(null); - const [isShown, showMenu] = useState(false); - - const closeMenuButton = useCallback(() => { - showMenu(false); - }, []); - - const handleClick = useCallback(() => { - showMenu((flag) => !flag); - }, []); - - const clickHandler = useCallback( - (e) => { - showMenu(false); - onClick(e); - }, - [onClick], - ); - - const boxBounding = useCallback(() => { - return menuButtonRef.current?.getBoundingClientRect(); - }, []); - - return ( -
-
- - {component} - -
- {isShown && ( - - )} - - {isShown &&
} -
- ); -} diff --git a/src/component/header/Header.tsx b/src/component/header/Header.tsx index b81768de7..5ffb0d7db 100644 --- a/src/component/header/Header.tsx +++ b/src/component/header/Header.tsx @@ -154,7 +154,7 @@ function HeaderInner(props: HeaderInnerProps) { }} >
- +
@@ -179,15 +179,14 @@ function HeaderInner(props: HeaderInnerProps) { {!general?.hideLogs && }
- + {!general?.hideHelp && ( window.open(docsBaseUrl, '_blank')} - > - - + icon={} + /> )} {!hideGeneralSettings && ( @@ -199,9 +198,8 @@ function HeaderInner(props: HeaderInnerProps) { onClick={onEnableFullscreen} title="Full Screen" className="windowButton" - > - - + icon={} + /> )}
diff --git a/src/component/modal/aboutUs/AboutUsModal.tsx b/src/component/modal/aboutUs/AboutUsModal.tsx index c1948076a..93dfc7c34 100644 --- a/src/component/modal/aboutUs/AboutUsModal.tsx +++ b/src/component/modal/aboutUs/AboutUsModal.tsx @@ -96,20 +96,10 @@ function AboutUsModal() { <> + icon={} + /> - - + icon={} + /> + = { }, }; -const LabelWrapper = ({ children }) => { - return

{children}

; -}; - -const MOL_EXPORT_MENU: DropdownMenuProps<{ id: string }, void>['options'] = [ +const MOL_EXPORT_MENU: DropdownMenuProps['options'] = [ { - type: 'option', icon: , - label: Copy as molfile V3, + text: 'Copy as molfile V3', data: { id: 'molfileV3', }, }, { - type: 'option', icon: , - label: Copy as molfile V2, + text: 'Copy as molfile V2', data: { id: 'molfileV2', }, }, { - type: 'option', icon: , - label: Copy as PNG, + text: 'Copy as PNG', data: { id: 'png', }, }, { - type: 'option', icon: , - label: Export as SVG, + text: 'Export as SVG', data: { id: 'svg', }, @@ -145,7 +137,7 @@ export default function MoleculePanelHeader({ (selected) => { const molecule = molecules?.[currentIndex]; if (molecule) { - switch (selected?.data.id) { + switch (selected?.id) { case 'molfileV3': saveAsMolHandler(molecule.molfile); break; @@ -222,11 +214,7 @@ export default function MoleculePanelHeader({ {renderSource === 'predictionPanel' && } {renderSource === 'moleculePanel' && ( - + , - label: 'Import from file system (Press Ctrl + O)', + text: 'Import from file system (Press Ctrl + O)', + data: { + id: 'importFile', + }, }, { - id: 'importJDX', icon: , - label: 'Add JCAMP-DX from URL', + text: 'Add JCAMP-DX from URL', + data: { + id: 'importJDX', + }, }, { - id: 'importPublicationString', icon: , - label: 'Import from publication string', + text: 'Import from publication string', + data: { + id: 'importPublicationString', + }, }, { - id: 'importMetaInformation', icon: , - label: 'Import meta information', + text: 'Import meta information', + data: { + id: 'importMetaInformation', + }, }, ]; -const EXPORT_MENU = [ +const EXPORT_MENU: DropdownMenuProps['options'] = [ { - id: 'svg', icon: , - label: 'Export as SVG', + text: 'Export as SVG', + data: { + id: 'svg', + }, }, { - id: 'png', icon: , - label: 'Export as PNG', + text: 'Export as PNG', + data: { + id: 'png', + }, }, { - id: 'json', icon: , - label: 'Save data ( Press Ctrl + S )', + text: 'Save data ( Press Ctrl + S )', + data: { + id: 'json', + }, }, { - id: 'advance_save', icon: , - label: 'Save data as ( Press Ctrl + Shift + S )', + text: 'Save data as ( Press Ctrl + Shift + S )', + data: { + id: 'advance_save', + }, }, { - id: 'nmre', icon: , - label: 'Save NMRE data', + text: 'Save NMRE data', + data: { + id: 'nmre', + }, }, { - id: 'copy', icon: , - label: 'Copy image to Clipboard ( Press Ctrl + C )', + text: 'Copy image to Clipboard ( Press Ctrl + C )', + data: { + id: 'copy', + }, }, ]; @@ -142,8 +162,8 @@ function BasicToolBarInner({ }, [modal]); const importHandler = useCallback( - ({ id }) => { - switch (id) { + (data) => { + switch (data?.id) { case 'importFile': openLoader(); break; @@ -168,8 +188,8 @@ function BasicToolBarInner({ ); const exportHandler = useCallback( - ({ id }) => { - switch (id) { + (data) => { + switch (data?.id) { case 'svg': void saveAsSVGHandler(); break; @@ -207,26 +227,25 @@ function BasicToolBarInner({ /> {isButtonVisible('import') && ( - } - toolTip="Import" - onClick={(element) => { - importHandler(element); - return null; + { + importHandler(data); }} - items={importMenu} - /> + options={importMenu} + > + } /> + )} {isButtonVisible('exportAs') && ( - } - toolTip="Export As" - onClick={(element) => { - exportHandler(element); - return null; + { + exportHandler(data); }} - items={exportMenu} - /> + options={exportMenu} + > + } /> + )} {isButtonVisible('spectraStackAlignments') && ftCounter > 1 && ( @@ -235,13 +254,14 @@ function BasicToolBarInner({ className="cheminfo" title="Spectra alignment ( Press s )" onClick={changeDisplayViewModeHandler} - > - {verticalAlign === 'stack' ? ( - - ) : ( - - )} - + icon={ + verticalAlign === 'stack' ? ( + + ) : ( + + ) + } + /> )} {isButtonVisible('realImaginary') && ( - - + icon={} + /> )} {isButtonVisible('spectraCenterAlignments') && (ftCounter > 0 || fidCounter > 0) && ( @@ -264,15 +283,16 @@ function BasicToolBarInner({ } onClick={alignSpectrumsVerticallyHandler} className="cheminfo" - > -
- {verticalAlign === 'bottom' ? ( - - ) : ( - - )} -
- + icon={ +
+ {verticalAlign === 'bottom' ? ( + + ) : ( + + )} +
+ } + /> )} ); diff --git a/src/component/toolbar/FunctionToolBar.tsx b/src/component/toolbar/FunctionToolBar.tsx index c5741d92f..b5d52f8cf 100644 --- a/src/component/toolbar/FunctionToolBar.tsx +++ b/src/component/toolbar/FunctionToolBar.tsx @@ -88,9 +88,8 @@ function FunctionToolBarInner({ id="zoom-out" onClick={handleFullZoomOut} title="Horizontal zoom out ( Press f ), Horizontal and Vertical zoom out, double click ( Press ff )" - > - - + icon={} + /> )} {isButtonVisible('peakPicking') && ( @@ -229,9 +228,8 @@ function FunctionToolBarInner({ className="cheminfo" title={`${options.fft.label} ( Press t )`} onClick={handleOnFFTFilter} - > - - + icon={} + /> )} {isButtonVisible('fftDimension1') && ( - - + icon={} + /> )} {isButtonVisible('fftDimension2') && ( - - + icon={} + /> )} ); diff --git a/src/component/toolbar/ToolBar.tsx b/src/component/toolbar/ToolBar.tsx index 560af9839..3621b264b 100644 --- a/src/component/toolbar/ToolBar.tsx +++ b/src/component/toolbar/ToolBar.tsx @@ -12,7 +12,7 @@ interface ToolBarInnerProps { function ToolBarInner({ selectedTool }: ToolBarInnerProps) { return ( - + From fb2cde6c3f84abc154daf44fb908402c8433f469 Mon Sep 17 00:00:00 2001 From: hamed musallam Date: Thu, 7 Dec 2023 18:56:37 +0100 Subject: [PATCH 04/10] refactor: toolbar refactor: simplify the toolbar component --- .../elements/toggle/ToggleButton.tsx | 51 --- .../elements/toggle/ToggleButtonGroup.tsx | 73 ----- .../hooks/useCheckToolsVisibility.ts | 2 +- src/component/toolbar/FunctionToolBar.tsx | 310 ++++++++---------- src/component/toolbar/ToolBar.tsx | 2 +- src/data/parseMeta/mapErrors.ts | 4 +- 6 files changed, 133 insertions(+), 309 deletions(-) delete mode 100644 src/component/elements/toggle/ToggleButton.tsx delete mode 100644 src/component/elements/toggle/ToggleButtonGroup.tsx diff --git a/src/component/elements/toggle/ToggleButton.tsx b/src/component/elements/toggle/ToggleButton.tsx deleted file mode 100644 index c6182848c..000000000 --- a/src/component/elements/toggle/ToggleButton.tsx +++ /dev/null @@ -1,51 +0,0 @@ -import { useCallback, useState, useEffect, ReactElement } from 'react'; -import { Toolbar } from 'react-science/ui'; - -interface ToggleButtonProps { - isActive?: boolean; - value?: any; - onChange?: (value: any) => null; - children: ReactElement; - isVisible?: boolean; -} - -export default function ToggleButton( - props: ToggleButtonProps & { title: string; id: string }, -) { - const { - children, - value = null, - isActive = false, - onChange = () => null, - isVisible = true, - id, - title, - } = props; - - const [active, setActive] = useState(props.isActive); - - const toggleButton = useCallback(() => { - const _isActive = !active; - setActive(_isActive); - - if (_isActive) { - onChange(value); - } else { - onChange(null); - } - }, [active, onChange, value]); - - useEffect(() => { - setActive(isActive); - }, [isActive]); - - if (!isVisible) { - return null; - } - - return ( - - {children} - - ); -} diff --git a/src/component/elements/toggle/ToggleButtonGroup.tsx b/src/component/elements/toggle/ToggleButtonGroup.tsx deleted file mode 100644 index 04d741005..000000000 --- a/src/component/elements/toggle/ToggleButtonGroup.tsx +++ /dev/null @@ -1,73 +0,0 @@ -import { - useCallback, - useState, - useMemo, - useEffect, - Children, - cloneElement, - ReactNode, -} from 'react'; - -import ToggleButton from './ToggleButton'; - -interface ToggleButtonGroupProps { - children: ReactNode; - value: string; - onChange?: (value: any) => void; -} - -export default function ToggleButtonGroup({ - children, - value, - onChange = () => null, -}: ToggleButtonGroupProps) { - const [toggleButtons, setToggleButtons] = useState([]); - const handleOnChange = useCallback( - (val) => { - const _toggles: any[] = [...toggleButtons]; - const toggles = _toggles.map((toggle) => { - return { - value: toggle.value, - isActive: toggle.value === val, - }; - }); - - setToggleButtons(toggles); - onChange(val); - }, - [onChange, toggleButtons], - ); - - const mappedChildren = useMemo(() => { - let index = 0; - return Children.map(children, (child: any) => { - if (child) { - if (child.type === ToggleButton) { - const _child = cloneElement(child, { - onChange: handleOnChange, - isActive: toggleButtons[index]?.isActive, - index, - }); - index++; - return _child; - } else { - return cloneElement(child); - } - } - }); - }, [children, handleOnChange, toggleButtons]); - - useEffect(() => { - const val = Children.map(children, (child: any) => { - if (child && child.type === ToggleButton) { - return { - value: child.props.value, - isActive: child.props.value === value, - }; - } - }); - setToggleButtons(val); - }, [children, value]); - - return <>{mappedChildren}; -} diff --git a/src/component/hooks/useCheckToolsVisibility.ts b/src/component/hooks/useCheckToolsVisibility.ts index b3a45ba5f..fc7b716d5 100644 --- a/src/component/hooks/useCheckToolsVisibility.ts +++ b/src/component/hooks/useCheckToolsVisibility.ts @@ -12,7 +12,7 @@ import useSpectrum from './useSpectrum'; type SpectrumInfo = Info1D | Info2D; -interface CheckOptions { +export interface CheckOptions { checkSpectrumType?: boolean; checkMode?: boolean; extraInfoCheckParameters?: SpectrumInfo; diff --git a/src/component/toolbar/FunctionToolBar.tsx b/src/component/toolbar/FunctionToolBar.tsx index b5d52f8cf..ad9d4cbf7 100644 --- a/src/component/toolbar/FunctionToolBar.tsx +++ b/src/component/toolbar/FunctionToolBar.tsx @@ -9,15 +9,17 @@ import { SvgNmrRangePicking, SvgNmrZeroFilling, } from 'cheminfo-font'; +import { NMRiumToolBarPreferences } from 'nmr-load-save'; import { useState, useEffect, useCallback, memo } from 'react'; import { FaSearchPlus, FaExpand, FaDiceFour } from 'react-icons/fa'; -import { Toolbar } from 'react-science/ui'; +import { Toolbar, ToolbarItemProps } from 'react-science/ui'; import { useChartData } from '../context/ChartContext'; import { useDispatch } from '../context/DispatchContext'; -import ToggleButton from '../elements/toggle/ToggleButton'; -import ToggleButtonGroup from '../elements/toggle/ToggleButtonGroup'; -import { useCheckToolsVisibility } from '../hooks/useCheckToolsVisibility'; +import { + CheckOptions, + useCheckToolsVisibility, +} from '../hooks/useCheckToolsVisibility'; import useDatumWithSpectraStatistics from '../hooks/useDatumWithSpectraStatistics'; import useToolsFunctions from '../hooks/useToolsFunctions'; @@ -28,6 +30,15 @@ interface FunctionToolBarInnerProps { ftCounter: number; } +interface ToolItemConfig { + id: keyof NMRiumToolBarPreferences; + label: string; + onClick?: () => void; + icon: ToolbarItemProps['icon']; + checkOptions?: CheckOptions; + condition?: boolean; +} + function FunctionToolBarInner({ defaultValue, ftCounter, @@ -69,186 +80,121 @@ function FunctionToolBarInner({ }); }, [dispatch]); + const toolItems: ToolItemConfig[] = [ + { + id: 'zoom', + label: options.zoom.label, + icon: , + }, + { + id: 'zoomOut', + label: options.zoomOut.label, + onClick: handleFullZoomOut, + icon: , + }, + { + id: 'peakPicking', + label: `${options.peakPicking.label} ( Press p )`, + icon: , + }, + { + id: 'integral', + label: `${options.integral.label} ( Press i )`, + icon: , + }, + { + id: 'zonePicking', + label: `${options.zonePicking.label} ( Press r )`, + icon: , + }, + { + id: 'slicing', + label: options.slicing.label, + icon:

Slic

, + }, + { + id: 'rangePicking', + label: `${options.rangePicking.label} ( Press r )`, + icon: , + }, + { + id: 'multipleSpectraAnalysis', + label: options.multipleSpectraAnalysis.label, + icon: , + checkOptions: { checkSpectrumType: false }, + condition: ftCounter > 1, + }, + { + id: 'apodization', + label: `${options.apodization.label} (Press a)`, + icon: , + }, + { + id: 'zeroFilling', + label: `${options.zeroFilling.label} ( Press z )`, + icon: , + }, + { + id: 'phaseCorrection', + label: `${options.phaseCorrection.label} ( Press a )`, + icon: , + }, + { + id: 'phaseCorrectionTwoDimensions', + label: `${options.phaseCorrectionTwoDimensions.label} ( Press a )`, + icon: , + }, + { + id: 'baselineCorrection', + label: `${options.baselineCorrection.label} ( Press b )`, + icon: , + }, + { + id: 'exclusionZones', + label: `${options.exclusionZones.label} ( Press e )`, + icon: , + checkOptions: { checkSpectrumType: false }, + condition: ftCounter > 0, + }, + { + id: 'fft', + label: `${options.fft.label} ( Press t )`, + onClick: handleOnFFTFilter, + icon: , + }, + { + id: 'fftDimension1', + label: options.fftDimension1.label, + onClick: handleFFtDimension1Filter, + icon: , + }, + { + id: 'fftDimension2', + label: options.fftDimension2.label, + onClick: handleFFtDimension2Filter, + icon: , + }, + ]; + return ( <> - - {isButtonVisible('zoom') && ( - - - - )} - - {isButtonVisible('zoomOut') && ( - } - /> - )} - - {isButtonVisible('peakPicking') && ( - - - - )} - {isButtonVisible('integral') && ( - - - - )} - {isButtonVisible('zonePicking') && ( - - - - )} - {isButtonVisible('slicing') && ( - -

Slic

-
- )} - {isButtonVisible('rangePicking') && ( - - - - )} - {isButtonVisible('multipleSpectraAnalysis', { - checkSpectrumType: false, - }) && - ftCounter > 1 && ( - - - - )} - {isButtonVisible('apodization') && ( - - - - )} - {isButtonVisible('zeroFilling') && ( - - - - )} - {isButtonVisible('phaseCorrection') && ( - - - - )} - {isButtonVisible('phaseCorrectionTwoDimensions') && ( - - - - )} - - {isButtonVisible('baselineCorrection') && ( - - - - )} - - {isButtonVisible('exclusionZones', { checkSpectrumType: false }) && - ftCounter > 0 && ( - -
- -
-
- )} -
- - {isButtonVisible('fft') && ( - } - /> - )} - {isButtonVisible('fftDimension1') && ( - } - /> - )} - {isButtonVisible('fftDimension2') && ( - } - /> - )} + {toolItems.map((item) => { + const { id, icon, label, checkOptions, onClick, condition } = item; + + return ( + isButtonVisible(id, checkOptions) && + (condition === undefined || condition) && ( + handleChange(id))} + title={label} + id={id} + active={option === id} + icon={icon} + /> + ) + ); + })} ); } diff --git a/src/component/toolbar/ToolBar.tsx b/src/component/toolbar/ToolBar.tsx index 3621b264b..fef2c6172 100644 --- a/src/component/toolbar/ToolBar.tsx +++ b/src/component/toolbar/ToolBar.tsx @@ -12,7 +12,7 @@ interface ToolBarInnerProps { function ToolBarInner({ selectedTool }: ToolBarInnerProps) { return ( - + diff --git a/src/data/parseMeta/mapErrors.ts b/src/data/parseMeta/mapErrors.ts index 163cdf5f8..e97ed3599 100644 --- a/src/data/parseMeta/mapErrors.ts +++ b/src/data/parseMeta/mapErrors.ts @@ -3,7 +3,9 @@ import { ParseError } from 'papaparse'; export function mapErrors(errors: ParseError[]) { const result = {}; for (const error of errors) { - result[error.row] = error.message; + if (error?.row) { + result[error.row] = error.message; + } } return result; } From 87f99d27c8bdab63c000f9815cdb81567b67108a Mon Sep 17 00:00:00 2001 From: hamed musallam Date: Thu, 7 Dec 2023 20:59:41 +0100 Subject: [PATCH 05/10] test: fix the CSS selector test: change the exportAs tool selector test: do not select the the first spectrum By default, the first spectrum is selected. If you select the spectrum again, it will be deselected which should not be the case. test: fix selector test: fix modal delete button css selector --- src/component/toolbar/BasicToolBar.tsx | 13 ++++++++++-- test-e2e/NmriumPage.ts | 2 +- test-e2e/panels/spectra.test.ts | 28 +++++++++++--------------- test-e2e/panels/structures.test.ts | 6 ++++-- 4 files changed, 28 insertions(+), 21 deletions(-) diff --git a/src/component/toolbar/BasicToolBar.tsx b/src/component/toolbar/BasicToolBar.tsx index b9a31aa2e..e882736bf 100644 --- a/src/component/toolbar/BasicToolBar.tsx +++ b/src/component/toolbar/BasicToolBar.tsx @@ -31,6 +31,7 @@ import ImportPublicationStringModal from '../modal/ImportPublicationStringModal' import { LoadJCAMPModal } from '../modal/LoadJCAMPModal'; import { useMetaInformationImportationModal } from '../modal/metaImportation/index'; import { VerticalAlignment } from '../reducer/Reducer'; +import { options } from './ToolTypes'; const IMPORT_MENU: DropdownMenuProps['options'] = [ { @@ -234,7 +235,11 @@ function BasicToolBarInner({ }} options={importMenu} > - } /> + } + />
)} {isButtonVisible('exportAs') && ( @@ -244,7 +249,11 @@ function BasicToolBarInner({ }} options={exportMenu} > - } /> + } + />
)} diff --git a/test-e2e/NmriumPage.ts b/test-e2e/NmriumPage.ts index 627b46cdb..58f1c0f73 100644 --- a/test-e2e/NmriumPage.ts +++ b/test-e2e/NmriumPage.ts @@ -36,7 +36,7 @@ export default class NmriumPage { } public async clickTool(id: string) { - await this.page.click(`_react=ToolbarItem[id="${id}"]`); + await this.page.click(`_react=ToolbarItem[id="${id}"] >> nth=0`); } public async assertXScaleDomain(min: number, max: number) { diff --git a/test-e2e/panels/spectra.test.ts b/test-e2e/panels/spectra.test.ts index 7daaa7cc7..ae36dccfb 100644 --- a/test-e2e/panels/spectra.test.ts +++ b/test-e2e/panels/spectra.test.ts @@ -277,10 +277,7 @@ test('2d spectrum', async ({ page }) => { await test.step('Delete 1H tab', async () => { // Go to 1H tab await nmrium.page.click('_react=SpectrumsTabs >> _react=Tab[tabid="1H"]'); - // Delete 1H Spectrum item - await nmrium.page.click('_react=SpectraTable >> _react=ReactTableRow ', { - button: 'right', - }); + await nmrium.page.click('_react=Button[toolTip="Delete selected spectra"]'); //confirm delete the selected await nmrium.page.click('_react=ConfirmationDialog >> text=Yes'); @@ -368,8 +365,8 @@ test('Export source from 1H spectrum', async ({ page }) => { await nmrium.open1D(); }); await test.step('Open Save as window ', async () => { - await nmrium.page.click('_react=ToolbarMenu[toolTip="Export As"]'); - await nmrium.page.click('_react=MenuItem >> text=Save data as'); + await nmrium.clickTool('exportAs'); + await nmrium.page.click('_react=DropdownMenu >> text=Save data as'); }); await test.step('Check include data options', async () => { const fields = nmrium.page.locator('_react=ModalContent >> _react=Field'); @@ -407,8 +404,8 @@ test('Export source from 1H spectrum', async ({ page }) => { }); await test.step('Check export DATA SOURCE', async () => { const downloadPromise = nmrium.page.waitForEvent('download'); - await nmrium.page.click('_react=ToolbarMenu[toolTip="Export As"]'); - await nmrium.page.click('_react=MenuItem >> text=Save data as'); + await nmrium.clickTool('exportAs'); + await nmrium.page.click('_react=DropdownMenu >> text=Save data as'); await nmrium.page.click( '_react=ModalContent >> _react=Field[value="DATA_SOURCE"]', ); @@ -433,8 +430,8 @@ test('Export source from 1H spectrum', async ({ page }) => { }); await test.step('Check export NO Data', async () => { const downloadPromise = nmrium.page.waitForEvent('download'); - await nmrium.page.click('_react=ToolbarMenu[toolTip="Export As"]'); - await nmrium.page.click('_react=MenuItem >> text=Save data as'); + await nmrium.clickTool('exportAs'); + await nmrium.page.click('_react=DropdownMenu >> text=Save data as'); await nmrium.page.click( '_react=ModalContent >> _react=Field[value="NO_DATA"]', ); @@ -466,8 +463,8 @@ test('Export source from imported spectrum', async ({ page }) => { ); }); await test.step('Open Save as window ', async () => { - await nmrium.page.click('_react=ToolbarMenu[toolTip="Export As"]'); - await nmrium.page.click('_react=MenuItem >> text=Save data as'); + await nmrium.clickTool('exportAs'); + await nmrium.page.click('_react=DropdownMenu >> text=Save data as'); }); await test.step('Check include data options', async () => { const fields = nmrium.page.locator('_react=ModalContent >>_react=Field'); @@ -505,8 +502,8 @@ test('Export source from imported spectrum', async ({ page }) => { }); await test.step('Check export NO Data', async () => { const downloadPromise = nmrium.page.waitForEvent('download'); - await nmrium.page.click('_react=ToolbarMenu[toolTip="Export As"]'); - await nmrium.page.click('_react=MenuItem >> text=Save data as'); + await nmrium.clickTool('exportAs'); + await nmrium.page.click('_react=DropdownMenu >> text=Save data as'); await nmrium.page.click( '_react=ModalContent >> _react=Field[value="NO_DATA"]', ); @@ -544,8 +541,7 @@ test('Multiple spectra analysis', async ({ page }) => { // eslint-disable-next-line no-await-in-loop await expect( nmrium.page.locator( - `_react=SpectraTable >> _react=SpectrumName >> nth=${i} >> text=Coffee ${ - i + 1 + `_react=SpectraTable >> _react=SpectrumName >> nth=${i} >> text=coffee ${i + 1 }`, ), ).toBeVisible(); diff --git a/test-e2e/panels/structures.test.ts b/test-e2e/panels/structures.test.ts index 5ab204b32..e50640684 100644 --- a/test-e2e/panels/structures.test.ts +++ b/test-e2e/panels/structures.test.ts @@ -305,7 +305,8 @@ test('molecules 1H spectrum', async ({ page, browserName }) => { await expect( nmrium.page.locator('_react=Modal >> text=New sum for H will be 12!'), ).toBeVisible(); - await nmrium.page.click('_react=Modal >> _react=ModalCloseButton'); + //TODO check why we have Button2 in development env and Button in production + await nmrium.page.click('dialog >> button:has(svg[data-icon="cross"])'); }); await test.step('Check molecules in ranges', async () => { await nmrium.clickPanel('Ranges'); @@ -335,7 +336,8 @@ test('molecules 1H spectrum', async ({ page, browserName }) => { await expect( nmrium.page.locator('_react=Modal >> text=New sum for H will be 12!'), ).toBeVisible(); - await nmrium.page.click('_react=Modal >> _react=ModalCloseButton'); + //TODO check why we have Button2 in development env and Button in production + await nmrium.page.click('dialog >> button:has(svg[data-icon="cross"])'); }); await test.step('Check float molecule', async () => { // Check float molecule btn is off. From 5f8b2b1e63edde38c257864f04c4f79f146ea11f Mon Sep 17 00:00:00 2001 From: hamed musallam Date: Tue, 12 Dec 2023 13:21:22 +0100 Subject: [PATCH 06/10] chore: update react-science chore: update react-sciense to version 0.30.1 chore: update react-science to pre release version 0.30.2-pre.1702391005 --- package-lock.json | 1061 +++++++++-------- package.json | 4 +- src/component/modal/PredictSpectraModal.tsx | 8 +- .../panels/filtersPanel/FiltersTable.tsx | 2 +- src/component/toolbar/BasicToolBar.tsx | 40 +- 5 files changed, 571 insertions(+), 544 deletions(-) diff --git a/package-lock.json b/package-lock.json index 24a66c7d7..9a92de04d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -57,7 +57,7 @@ "react-ocl-nmr": "^3.0.1", "react-plot": "^1.4.2", "react-rnd": "^10.4.1", - "react-science": "^0.29.0", + "react-science": "0.30.2-pre.1702391005", "react-slider": "^2.0.6", "react-table": "^7.8.0", "react-transition-group": "^4.4.5", @@ -128,11 +128,11 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", - "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", "dependencies": { - "@babel/highlight": "^7.22.13", + "@babel/highlight": "^7.23.4", "chalk": "^2.4.2" }, "engines": { @@ -140,9 +140,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.2.tgz", - "integrity": "sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", "dev": true, "peer": true, "engines": { @@ -150,22 +150,22 @@ } }, "node_modules/@babel/core": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz", - "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.6.tgz", + "integrity": "sha512-FxpRyGjrMJXh7X3wGLGhNDCRiwpWEF74sKjTLDJSG5Kyvow3QZaG0Adbqzi9ZrVjTWpsX+2cxWXD71NMg93kdw==", "dev": true, "peer": true, "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helpers": "^7.23.2", - "@babel/parser": "^7.23.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.6", + "@babel/parser": "^7.23.6", "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0", + "@babel/traverse": "^7.23.6", + "@babel/types": "^7.23.6", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -181,13 +181,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", - "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", "dev": true, "peer": true, "dependencies": { - "@babel/types": "^7.23.0", + "@babel/types": "^7.23.6", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -209,15 +209,15 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", - "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", "dev": true, "peer": true, "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", - "browserslist": "^4.21.9", + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -226,9 +226,9 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.5.tgz", - "integrity": "sha512-QELlRWxSpgdwdJzSJn4WAhKC+hvw/AtHbbrIoncKHkhKKR/luAlKkgBDcri1EzWAo8f8VvYVryEHN4tax/V67A==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.6.tgz", + "integrity": "sha512-cBXU1vZni/CpGF29iTu4YRbOZt3Wat6zCoMDxRF1MayiEc4URxOj31tT65HUM0CRpMowA3HCJaAOVOUnMf96cw==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", @@ -416,33 +416,33 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", - "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz", - "integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.6.tgz", + "integrity": "sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA==", "dev": true, "peer": true, "dependencies": { "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0" + "@babel/traverse": "^7.23.6", + "@babel/types": "^7.23.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", - "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", "dependencies": { "@babel/helper-validator-identifier": "^7.22.20", "chalk": "^2.4.2", @@ -453,9 +453,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.5.tgz", - "integrity": "sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", + "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -527,16 +527,16 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.15.tgz", - "integrity": "sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz", + "integrity": "sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-module-imports": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-jsx": "^7.22.5", - "@babel/types": "^7.22.15" + "@babel/plugin-syntax-jsx": "^7.23.3", + "@babel/types": "^7.23.4" }, "engines": { "node": ">=6.9.0" @@ -577,13 +577,13 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.5.tgz", - "integrity": "sha512-2fMkXEJkrmwgu2Bsv1Saxgj30IXZdJ+84lQcKKI7sm719oXs0BBw2ZENKdJdR1PjWndgLCEBNXJOri0fk7RYQA==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz", + "integrity": "sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.23.5", + "@babel/helper-create-class-features-plugin": "^7.23.6", "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-typescript": "^7.23.3" }, @@ -634,9 +634,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", - "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.6.tgz", + "integrity": "sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -659,21 +659,21 @@ } }, "node_modules/@babel/traverse": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", - "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.6.tgz", + "integrity": "sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ==", "dev": true, "peer": true, "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.0", - "@babel/types": "^7.23.0", - "debug": "^4.1.0", + "@babel/parser": "^7.23.6", + "@babel/types": "^7.23.6", + "debug": "^4.3.1", "globals": "^11.1.0" }, "engines": { @@ -681,9 +681,9 @@ } }, "node_modules/@babel/types": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.5.tgz", - "integrity": "sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", + "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", "dependencies": { "@babel/helper-string-parser": "^7.23.4", "@babel/helper-validator-identifier": "^7.22.20", @@ -700,20 +700,20 @@ "dev": true }, "node_modules/@blueprintjs/colors": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@blueprintjs/colors/-/colors-5.0.7.tgz", - "integrity": "sha512-JBbIowrQz/Ef8xsxlTTvVdqZXd0ePmaOXjaH6A3xZu6Ntnn4xEXjoSjxuzLno4gcE9yNxeBMrMrXGkkOu+aGPg==", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@blueprintjs/colors/-/colors-5.0.8.tgz", + "integrity": "sha512-Y/gpCMc/NAiScuH6vJGDI6vW2RqgR9ayEwtesVirQz3KnQSAHvbZWlgHzEO4Teyhc6FuXL3Tbj5kfq5JCeEyoQ==", "dependencies": { "tslib": "~2.6.2" } }, "node_modules/@blueprintjs/core": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@blueprintjs/core/-/core-5.7.1.tgz", - "integrity": "sha512-nbOyMTyOAMKAm8WQH161toU6H/1997yQO9hP0vVzLHNmkgpf3sMfeZW5kaZUvx1uV6yWkcJOLqz6j/knt30imQ==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@blueprintjs/core/-/core-5.7.2.tgz", + "integrity": "sha512-wzYSog3RGsNq95F0stYZ+C6/PBjPidFRzVRnQPeUO/M0tZCL4QEbKC4qNz1flGlXaQH5sD6rjaoRoFaJfouXVg==", "dependencies": { - "@blueprintjs/colors": "^5.0.7", - "@blueprintjs/icons": "^5.4.1", + "@blueprintjs/colors": "^5.0.8", + "@blueprintjs/icons": "^5.5.0", "@popperjs/core": "^2.11.7", "classnames": "^2.3.1", "normalize.css": "^8.0.1", @@ -737,9 +737,9 @@ } }, "node_modules/@blueprintjs/icons": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@blueprintjs/icons/-/icons-5.4.1.tgz", - "integrity": "sha512-rDQxBEyksYa59nn9w4POZyiSEqv6uwy1nxh7eI3QRU7HsyQ4fsu8zmvmsDQwmw727DDXhl2ofWhs3u1wIBli4g==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@blueprintjs/icons/-/icons-5.5.0.tgz", + "integrity": "sha512-XnGWYZwtYh3+Cf9e2zYweZdwhZTevgufo287hu38Jfdhb7rcbWUwU7ktAmmf21QvGFqw6Ohyu8VVkoZZlE4eMg==", "dependencies": { "change-case": "^4.1.2", "classnames": "^2.3.1", @@ -756,6 +756,27 @@ } } }, + "node_modules/@blueprintjs/select": { + "version": "5.0.20", + "resolved": "https://registry.npmjs.org/@blueprintjs/select/-/select-5.0.20.tgz", + "integrity": "sha512-t9T8mAXP5enMrieVOVv86J8OOv/+JiGIapiswgmt1MYpSO3mmF+yo3SGw/tOEqHla0Nk/tVxLbxdkwGGY2NYvA==", + "dependencies": { + "@blueprintjs/core": "^5.7.2", + "@blueprintjs/icons": "^5.5.0", + "classnames": "^2.3.1", + "tslib": "~2.6.2" + }, + "peerDependencies": { + "@types/react": "^16.14.32 || 17 || 18", + "react": "^16.8 || 17 || 18", + "react-dom": "^16.8 || 17 || 18" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@cspell/cspell-bundled-dicts": { "version": "8.1.3", "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-8.1.3.tgz", @@ -1083,9 +1104,9 @@ "dev": true }, "node_modules/@cspell/dict-powershell": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-powershell/-/dict-powershell-5.0.2.tgz", - "integrity": "sha512-IHfWLme3FXE7vnOmMncSBxOsMTdNWd1Vcyhag03WS8oANSgX8IZ+4lMI00mF0ptlgchf16/OU8WsV4pZfikEFw==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@cspell/dict-powershell/-/dict-powershell-5.0.3.tgz", + "integrity": "sha512-lEdzrcyau6mgzu1ie98GjOEegwVHvoaWtzQnm1ie4DyZgMr+N6D0Iyj1lzvtmt0snvsDFa5F2bsYzf3IMKcpcA==", "dev": true }, "node_modules/@cspell/dict-public-licenses": { @@ -1128,9 +1149,9 @@ "dev": true }, "node_modules/@cspell/dict-software-terms": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-3.3.11.tgz", - "integrity": "sha512-a2Zml4G47dbQ6GDdN7+YlIWs3nFnIcJkZOLT88m/LzxjApiF7AOZLqQiKwow03hyvGSuZy8itgQZmQHoPlw2vQ==", + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-3.3.12.tgz", + "integrity": "sha512-6aa4T9VqOMc0SFNBt6gxp0CWjvRqMg/uxvgpRbil+ToHWcU+Q+As0WKhPLaOniuTdCM85WWzRouD0O1XUGqg5Q==", "dev": true }, "node_modules/@cspell/dict-sql": { @@ -1424,9 +1445,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.8.tgz", - "integrity": "sha512-31E2lxlGM1KEfivQl8Yf5aYU/mflz9g06H6S15ITUFQueMFtFjESRMoDSkvMo8thYvLBax+VKTPlpnx+sPicOA==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.9.tgz", + "integrity": "sha512-jkYjjq7SdsWuNI6b5quymW0oC83NN5FdRPuCbs9HZ02mfVdAP8B8eeqLSYU3gb6OJEaY5CQabtTFbqBf26H3GA==", "cpu": [ "arm" ], @@ -1440,9 +1461,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.8.tgz", - "integrity": "sha512-B8JbS61bEunhfx8kasogFENgQfr/dIp+ggYXwTqdbMAgGDhRa3AaPpQMuQU0rNxDLECj6FhDzk1cF9WHMVwrtA==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.9.tgz", + "integrity": "sha512-q4cR+6ZD0938R19MyEW3jEsMzbb/1rulLXiNAJQADD/XYp7pT+rOS5JGxvpRW8dFDEfjW4wLgC/3FXIw4zYglQ==", "cpu": [ "arm64" ], @@ -1456,9 +1477,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.8.tgz", - "integrity": "sha512-rdqqYfRIn4jWOp+lzQttYMa2Xar3OK9Yt2fhOhzFXqg0rVWEfSclJvZq5fZslnz6ypHvVf3CT7qyf0A5pM682A==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.9.tgz", + "integrity": "sha512-KOqoPntWAH6ZxDwx1D6mRntIgZh9KodzgNOy5Ebt9ghzffOk9X2c1sPwtM9P+0eXbefnDhqYfkh5PLP5ULtWFA==", "cpu": [ "x64" ], @@ -1472,9 +1493,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.8.tgz", - "integrity": "sha512-RQw9DemMbIq35Bprbboyf8SmOr4UXsRVxJ97LgB55VKKeJOOdvsIPy0nFyF2l8U+h4PtBx/1kRf0BelOYCiQcw==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.9.tgz", + "integrity": "sha512-KBJ9S0AFyLVx2E5D8W0vExqRW01WqRtczUZ8NRu+Pi+87opZn5tL4Y0xT0mA4FtHctd0ZgwNoN639fUUGlNIWw==", "cpu": [ "arm64" ], @@ -1488,9 +1509,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.8.tgz", - "integrity": "sha512-3sur80OT9YdeZwIVgERAysAbwncom7b4bCI2XKLjMfPymTud7e/oY4y+ci1XVp5TfQp/bppn7xLw1n/oSQY3/Q==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.9.tgz", + "integrity": "sha512-vE0VotmNTQaTdX0Q9dOHmMTao6ObjyPm58CHZr1UK7qpNleQyxlFlNCaHsHx6Uqv86VgPmR4o2wdNq3dP1qyDQ==", "cpu": [ "x64" ], @@ -1504,9 +1525,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.8.tgz", - "integrity": "sha512-WAnPJSDattvS/XtPCTj1tPoTxERjcTpH6HsMr6ujTT+X6rylVe8ggxk8pVxzf5U1wh5sPODpawNicF5ta/9Tmw==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.9.tgz", + "integrity": "sha512-uFQyd/o1IjiEk3rUHSwUKkqZwqdvuD8GevWF065eqgYfexcVkxh+IJgwTaGZVu59XczZGcN/YMh9uF1fWD8j1g==", "cpu": [ "arm64" ], @@ -1520,9 +1541,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.8.tgz", - "integrity": "sha512-ICvZyOplIjmmhjd6mxi+zxSdpPTKFfyPPQMQTK/w+8eNK6WV01AjIztJALDtwNNfFhfZLux0tZLC+U9nSyA5Zg==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.9.tgz", + "integrity": "sha512-WMLgWAtkdTbTu1AWacY7uoj/YtHthgqrqhf1OaEWnZb7PQgpt8eaA/F3LkV0E6K/Lc0cUr/uaVP/49iE4M4asA==", "cpu": [ "x64" ], @@ -1536,9 +1557,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.8.tgz", - "integrity": "sha512-H4vmI5PYqSvosPaTJuEppU9oz1dq2A7Mr2vyg5TF9Ga+3+MGgBdGzcyBP7qK9MrwFQZlvNyJrvz6GuCaj3OukQ==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.9.tgz", + "integrity": "sha512-C/ChPohUYoyUaqn1h17m/6yt6OB14hbXvT8EgM1ZWaiiTYz7nWZR0SYmMnB5BzQA4GXl3BgBO1l8MYqL/He3qw==", "cpu": [ "arm" ], @@ -1552,9 +1573,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.8.tgz", - "integrity": "sha512-z1zMZivxDLHWnyGOctT9JP70h0beY54xDDDJt4VpTX+iwA77IFsE1vCXWmprajJGa+ZYSqkSbRQ4eyLCpCmiCQ==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.9.tgz", + "integrity": "sha512-PiPblfe1BjK7WDAKR1Cr9O7VVPqVNpwFcPWgfn4xu0eMemzRp442hXyzF/fSwgrufI66FpHOEJk0yYdPInsmyQ==", "cpu": [ "arm64" ], @@ -1568,9 +1589,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.8.tgz", - "integrity": "sha512-1a8suQiFJmZz1khm/rDglOc8lavtzEMRo0v6WhPgxkrjcU0LkHj+TwBrALwoz/OtMExvsqbbMI0ChyelKabSvQ==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.9.tgz", + "integrity": "sha512-f37i/0zE0MjDxijkPSQw1CO/7C27Eojqb+r3BbHVxMLkj8GCa78TrBZzvPyA/FNLUMzP3eyHCVkAopkKVja+6Q==", "cpu": [ "ia32" ], @@ -1584,9 +1605,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.8.tgz", - "integrity": "sha512-fHZWS2JJxnXt1uYJsDv9+b60WCc2RlvVAy1F76qOLtXRO+H4mjt3Tr6MJ5l7Q78X8KgCFudnTuiQRBhULUyBKQ==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.9.tgz", + "integrity": "sha512-t6mN147pUIf3t6wUt3FeumoOTPfmv9Cc6DQlsVBpB7eCpLOqQDyWBP1ymXn1lDw4fNUSb/gBcKAmvTP49oIkaA==", "cpu": [ "loong64" ], @@ -1600,9 +1621,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.8.tgz", - "integrity": "sha512-Wy/z0EL5qZYLX66dVnEg9riiwls5IYnziwuju2oUiuxVc+/edvqXa04qNtbrs0Ukatg5HEzqT94Zs7J207dN5Q==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.9.tgz", + "integrity": "sha512-jg9fujJTNTQBuDXdmAg1eeJUL4Jds7BklOTkkH80ZgQIoCTdQrDaHYgbFZyeTq8zbY+axgptncko3v9p5hLZtw==", "cpu": [ "mips64el" ], @@ -1616,9 +1637,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.8.tgz", - "integrity": "sha512-ETaW6245wK23YIEufhMQ3HSeHO7NgsLx8gygBVldRHKhOlD1oNeNy/P67mIh1zPn2Hr2HLieQrt6tWrVwuqrxg==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.9.tgz", + "integrity": "sha512-tkV0xUX0pUUgY4ha7z5BbDS85uI7ABw3V1d0RNTii7E9lbmV8Z37Pup2tsLV46SQWzjOeyDi1Q7Wx2+QM8WaCQ==", "cpu": [ "ppc64" ], @@ -1632,9 +1653,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.8.tgz", - "integrity": "sha512-T2DRQk55SgoleTP+DtPlMrxi/5r9AeFgkhkZ/B0ap99zmxtxdOixOMI570VjdRCs9pE4Wdkz7JYrsPvsl7eESg==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.9.tgz", + "integrity": "sha512-DfLp8dj91cufgPZDXr9p3FoR++m3ZJ6uIXsXrIvJdOjXVREtXuQCjfMfvmc3LScAVmLjcfloyVtpn43D56JFHg==", "cpu": [ "riscv64" ], @@ -1648,9 +1669,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.8.tgz", - "integrity": "sha512-NPxbdmmo3Bk7mbNeHmcCd7R7fptJaczPYBaELk6NcXxy7HLNyWwCyDJ/Xx+/YcNH7Im5dHdx9gZ5xIwyliQCbg==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.9.tgz", + "integrity": "sha512-zHbglfEdC88KMgCWpOl/zc6dDYJvWGLiUtmPRsr1OgCViu3z5GncvNVdf+6/56O2Ca8jUU+t1BW261V6kp8qdw==", "cpu": [ "s390x" ], @@ -1664,9 +1685,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.8.tgz", - "integrity": "sha512-lytMAVOM3b1gPypL2TRmZ5rnXl7+6IIk8uB3eLsV1JwcizuolblXRrc5ShPrO9ls/b+RTp+E6gbsuLWHWi2zGg==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.9.tgz", + "integrity": "sha512-JUjpystGFFmNrEHQnIVG8hKwvA2DN5o7RqiO1CVX8EN/F/gkCjkUMgVn6hzScpwnJtl2mPR6I9XV1oW8k9O+0A==", "cpu": [ "x64" ], @@ -1680,9 +1701,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.8.tgz", - "integrity": "sha512-hvWVo2VsXz/8NVt1UhLzxwAfo5sioj92uo0bCfLibB0xlOmimU/DeAEsQILlBQvkhrGjamP0/el5HU76HAitGw==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.9.tgz", + "integrity": "sha512-GThgZPAwOBOsheA2RUlW5UeroRfESwMq/guy8uEe3wJlAOjpOXuSevLRd70NZ37ZrpO6RHGHgEHvPg1h3S1Jug==", "cpu": [ "x64" ], @@ -1696,9 +1717,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.8.tgz", - "integrity": "sha512-/7Y7u77rdvmGTxR83PgaSvSBJCC2L3Kb1M/+dmSIvRvQPXXCuC97QAwMugBNG0yGcbEGfFBH7ojPzAOxfGNkwQ==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.9.tgz", + "integrity": "sha512-Ki6PlzppaFVbLnD8PtlVQfsYw4S9n3eQl87cqgeIw+O3sRr9IghpfSKY62mggdt1yCSZ8QWvTZ9jo9fjDSg9uw==", "cpu": [ "x64" ], @@ -1712,9 +1733,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.8.tgz", - "integrity": "sha512-9Lc4s7Oi98GqFA4HzA/W2JHIYfnXbUYgekUP/Sm4BG9sfLjyv6GKKHKKVs83SMicBF2JwAX6A1PuOLMqpD001w==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.9.tgz", + "integrity": "sha512-MLHj7k9hWh4y1ddkBpvRj2b9NCBhfgBt3VpWbHQnXRedVun/hC7sIyTGDGTfsGuXo4ebik2+3ShjcPbhtFwWDw==", "cpu": [ "x64" ], @@ -1728,9 +1749,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.8.tgz", - "integrity": "sha512-rq6WzBGjSzihI9deW3fC2Gqiak68+b7qo5/3kmB6Gvbh/NYPA0sJhrnp7wgV4bNwjqM+R2AApXGxMO7ZoGhIJg==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.9.tgz", + "integrity": "sha512-GQoa6OrQ8G08guMFgeXPH7yE/8Dt0IfOGWJSfSH4uafwdC7rWwrfE6P9N8AtPGIjUzdo2+7bN8Xo3qC578olhg==", "cpu": [ "arm64" ], @@ -1744,9 +1765,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.8.tgz", - "integrity": "sha512-AIAbverbg5jMvJznYiGhrd3sumfwWs8572mIJL5NQjJa06P8KfCPWZQ0NwZbPQnbQi9OWSZhFVSUWjjIrn4hSw==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.9.tgz", + "integrity": "sha512-UOozV7Ntykvr5tSOlGCrqU3NBr3d8JqPes0QWN2WOXfvkWVGRajC+Ym0/Wj88fUgecUCLDdJPDF0Nna2UK3Qtg==", "cpu": [ "ia32" ], @@ -1760,9 +1781,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.8.tgz", - "integrity": "sha512-bfZ0cQ1uZs2PqpulNL5j/3w+GDhP36k1K5c38QdQg+Swy51jFZWWeIkteNsufkQxp986wnqRRsb/bHbY1WQ7TA==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.9.tgz", + "integrity": "sha512-oxoQgglOP7RH6iasDrhY+R/3cHrfwIDvRlT4CGChflq6twk8iENeVvMJjmvBb94Ik1Z+93iGO27err7w6l54GQ==", "cpu": [ "x64" ], @@ -1820,9 +1841,9 @@ } }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dependencies": { "type-fest": "^0.20.2" }, @@ -2738,9 +2759,9 @@ } }, "node_modules/@rc-component/trigger": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-1.18.1.tgz", - "integrity": "sha512-bAcxJJ1Y+EJVgn8BRik7d8JjjAPND5zKkHQ3159zeR0gVoG4Z0RgEDAiXFFoie3/WpoJ9dRJyjrIpnH4Ef7PEg==", + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-1.18.2.tgz", + "integrity": "sha512-jRLYgFgjLEPq3MvS87fIhcfuywFSRDaDrYw1FLku7Cm4esszvzTbA0JBsyacAyLrK9rF3TiHFcvoEDMzoD3CTA==", "dev": true, "dependencies": { "@babel/runtime": "^7.23.2", @@ -2768,9 +2789,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.6.1.tgz", - "integrity": "sha512-0WQ0ouLejaUCRsL93GD4uft3rOmB8qoQMU05Kb8CmMtMBe7XUDLAltxVZI1q6byNqEtU7N1ZX1Vw5lIpgulLQA==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.8.0.tgz", + "integrity": "sha512-zdTObFRoNENrdPpnTNnhOljYIcOX7aI7+7wyrSpPFFIOf/nRdedE6IYsjaBE7tjukphh1tMTojgJ7p3lKY8x6Q==", "cpu": [ "arm" ], @@ -2781,9 +2802,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.6.1.tgz", - "integrity": "sha512-1TKm25Rn20vr5aTGGZqo6E4mzPicCUD79k17EgTLAsXc1zysyi4xXKACfUbwyANEPAEIxkzwue6JZ+stYzWUTA==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.8.0.tgz", + "integrity": "sha512-aiItwP48BiGpMFS9Znjo/xCNQVwTQVcRKkFKsO81m8exrGjHkCBDvm9PHay2kpa8RPnZzzKcD1iQ9KaLY4fPQQ==", "cpu": [ "arm64" ], @@ -2794,9 +2815,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.6.1.tgz", - "integrity": "sha512-cEXJQY/ZqMACb+nxzDeX9IPLAg7S94xouJJCNVE5BJM8JUEP4HeTF+ti3cmxWeSJo+5D+o8Tc0UAWUkfENdeyw==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.8.0.tgz", + "integrity": "sha512-zhNIS+L4ZYkYQUjIQUR6Zl0RXhbbA0huvNIWjmPc2SL0cB1h5Djkcy+RZ3/Bwszfb6vgwUvcVJYD6e6Zkpsi8g==", "cpu": [ "arm64" ], @@ -2807,9 +2828,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.6.1.tgz", - "integrity": "sha512-LoSU9Xu56isrkV2jLldcKspJ7sSXmZWkAxg7sW/RfF7GS4F5/v4EiqKSMCFbZtDu2Nc1gxxFdQdKwkKS4rwxNg==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.8.0.tgz", + "integrity": "sha512-A/FAHFRNQYrELrb/JHncRWzTTXB2ticiRFztP4ggIUAfa9Up1qfW8aG2w/mN9jNiZ+HB0t0u0jpJgFXG6BfRTA==", "cpu": [ "x64" ], @@ -2820,9 +2841,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.6.1.tgz", - "integrity": "sha512-EfI3hzYAy5vFNDqpXsNxXcgRDcFHUWSx5nnRSCKwXuQlI5J9dD84g2Usw81n3FLBNsGCegKGwwTVsSKK9cooSQ==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.8.0.tgz", + "integrity": "sha512-JsidBnh3p2IJJA4/2xOF2puAYqbaczB3elZDT0qHxn362EIoIkq7hrR43Xa8RisgI6/WPfvb2umbGsuvf7E37A==", "cpu": [ "arm" ], @@ -2833,9 +2854,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.6.1.tgz", - "integrity": "sha512-9lhc4UZstsegbNLhH0Zu6TqvDfmhGzuCWtcTFXY10VjLLUe4Mr0Ye2L3rrtHaDd/J5+tFMEuo5LTCSCMXWfUKw==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.8.0.tgz", + "integrity": "sha512-hBNCnqw3EVCkaPB0Oqd24bv8SklETptQWcJz06kb9OtiShn9jK1VuTgi7o4zPSt6rNGWQOTDEAccbk0OqJmS+g==", "cpu": [ "arm64" ], @@ -2846,9 +2867,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.6.1.tgz", - "integrity": "sha512-FfoOK1yP5ksX3wwZ4Zk1NgyGHZyuRhf99j64I5oEmirV8EFT7+OhUZEnP+x17lcP/QHJNWGsoJwrz4PJ9fBEXw==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.8.0.tgz", + "integrity": "sha512-Fw9ChYfJPdltvi9ALJ9wzdCdxGw4wtq4t1qY028b2O7GwB5qLNSGtqMsAel1lfWTZvf4b6/+4HKp0GlSYg0ahA==", "cpu": [ "arm64" ], @@ -2858,10 +2879,23 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.8.0.tgz", + "integrity": "sha512-BH5xIh7tOzS9yBi8dFrCTG8Z6iNIGWGltd3IpTSKp6+pNWWO6qy8eKoRxOtwFbMrid5NZaidLYN6rHh9aB8bEw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.6.1.tgz", - "integrity": "sha512-DNGZvZDO5YF7jN5fX8ZqmGLjZEXIJRdJEdTFMhiyXqyXubBa0WVLDWSNlQ5JR2PNgDbEV1VQowhVRUh+74D+RA==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.8.0.tgz", + "integrity": "sha512-PmvAj8k6EuWiyLbkNpd6BLv5XeYFpqWuRvRNRl80xVfpGXK/z6KYXmAgbI4ogz7uFiJxCnYcqyvZVD0dgFog7Q==", "cpu": [ "x64" ], @@ -2872,9 +2906,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.6.1.tgz", - "integrity": "sha512-RkJVNVRM+piYy87HrKmhbexCHg3A6Z6MU0W9GHnJwBQNBeyhCJG9KDce4SAMdicQnpURggSvtbGo9xAWOfSvIQ==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.8.0.tgz", + "integrity": "sha512-mdxnlW2QUzXwY+95TuxZ+CurrhgrPAMveDWI97EQlA9bfhR8tw3Pt7SUlc/eSlCNxlWktpmT//EAA8UfCHOyXg==", "cpu": [ "x64" ], @@ -2885,9 +2919,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.6.1.tgz", - "integrity": "sha512-v2FVT6xfnnmTe3W9bJXl6r5KwJglMK/iRlkKiIFfO6ysKs0rDgz7Cwwf3tjldxQUrHL9INT/1r4VA0n9L/F1vQ==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.8.0.tgz", + "integrity": "sha512-ge7saUz38aesM4MA7Cad8CHo0Fyd1+qTaqoIo+Jtk+ipBi4ATSrHWov9/S4u5pbEQmLjgUjB7BJt+MiKG2kzmA==", "cpu": [ "arm64" ], @@ -2898,9 +2932,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.6.1.tgz", - "integrity": "sha512-YEeOjxRyEjqcWphH9dyLbzgkF8wZSKAKUkldRY6dgNR5oKs2LZazqGB41cWJ4Iqqcy9/zqYgmzBkRoVz3Q9MLw==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.8.0.tgz", + "integrity": "sha512-p9E3PZlzurhlsN5h9g7zIP1DnqKXJe8ZUkFwAazqSvHuWfihlIISPxG9hCHCoA+dOOspL/c7ty1eeEVFTE0UTw==", "cpu": [ "ia32" ], @@ -2911,9 +2945,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.6.1.tgz", - "integrity": "sha512-0zfTlFAIhgz8V2G8STq8toAjsYYA6eci1hnXuyOTUFnymrtJwnS6uGKiv3v5UrPZkBlamLvrLV2iiaeqCKzb0A==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.8.0.tgz", + "integrity": "sha512-kb4/auKXkYKqlUYTE8s40FcJIj5soOyRLHKd4ugR0dCq0G2EfcF54eYcfQiGkHzjidZ40daB4ulsFdtqNKZtBg==", "cpu": [ "x64" ], @@ -2939,9 +2973,9 @@ "dev": true }, "node_modules/@swc/core": { - "version": "1.3.96", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.96.tgz", - "integrity": "sha512-zwE3TLgoZwJfQygdv2SdCK9mRLYluwDOM53I+dT6Z5ZvrgVENmY3txvWDvduzkV+/8IuvrRbVezMpxcojadRdQ==", + "version": "1.3.100", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.100.tgz", + "integrity": "sha512-7dKgTyxJjlrMwFZYb1auj3Xq0D8ZBe+5oeIgfMlRU05doXZypYJe0LAk0yjj3WdbwYzpF+T1PLxwTWizI0pckw==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -2956,16 +2990,15 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-darwin-arm64": "1.3.96", - "@swc/core-darwin-x64": "1.3.96", - "@swc/core-linux-arm-gnueabihf": "1.3.96", - "@swc/core-linux-arm64-gnu": "1.3.96", - "@swc/core-linux-arm64-musl": "1.3.96", - "@swc/core-linux-x64-gnu": "1.3.96", - "@swc/core-linux-x64-musl": "1.3.96", - "@swc/core-win32-arm64-msvc": "1.3.96", - "@swc/core-win32-ia32-msvc": "1.3.96", - "@swc/core-win32-x64-msvc": "1.3.96" + "@swc/core-darwin-arm64": "1.3.100", + "@swc/core-darwin-x64": "1.3.100", + "@swc/core-linux-arm64-gnu": "1.3.100", + "@swc/core-linux-arm64-musl": "1.3.100", + "@swc/core-linux-x64-gnu": "1.3.100", + "@swc/core-linux-x64-musl": "1.3.100", + "@swc/core-win32-arm64-msvc": "1.3.100", + "@swc/core-win32-ia32-msvc": "1.3.100", + "@swc/core-win32-x64-msvc": "1.3.100" }, "peerDependencies": { "@swc/helpers": "^0.5.0" @@ -2977,9 +3010,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.3.96", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.96.tgz", - "integrity": "sha512-8hzgXYVd85hfPh6mJ9yrG26rhgzCmcLO0h1TIl8U31hwmTbfZLzRitFQ/kqMJNbIBCwmNH1RU2QcJnL3d7f69A==", + "version": "1.3.100", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.100.tgz", + "integrity": "sha512-XVWFsKe6ei+SsDbwmsuRkYck1SXRpO60Hioa4hoLwR8fxbA9eVp6enZtMxzVVMBi8ej5seZ4HZQeAWepbukiBw==", "cpu": [ "arm64" ], @@ -2993,9 +3026,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.3.96", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.96.tgz", - "integrity": "sha512-mFp9GFfuPg+43vlAdQZl0WZpZSE8sEzqL7sr/7Reul5McUHP0BaLsEzwjvD035ESfkY8GBZdLpMinblIbFNljQ==", + "version": "1.3.100", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.100.tgz", + "integrity": "sha512-KF/MXrnH1nakm1wbt4XV8FS7kvqD9TGmVxeJ0U4bbvxXMvzeYUurzg3AJUTXYmXDhH/VXOYJE5N5RkwZZPs5iA==", "cpu": [ "x64" ], @@ -3008,26 +3041,10 @@ "node": ">=10" } }, - "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.3.96", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.96.tgz", - "integrity": "sha512-8UEKkYJP4c8YzYIY/LlbSo8z5Obj4hqcv/fUTHiEePiGsOddgGf7AWjh56u7IoN/0uEmEro59nc1ChFXqXSGyg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.3.96", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.96.tgz", - "integrity": "sha512-c/IiJ0s1y3Ymm2BTpyC/xr6gOvoqAVETrivVXHq68xgNms95luSpbYQ28rqaZC8bQC8M5zdXpSc0T8DJu8RJGw==", + "version": "1.3.100", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.100.tgz", + "integrity": "sha512-p8hikNnAEJrw5vHCtKiFT4hdlQxk1V7vqPmvUDgL/qe2menQDK/i12tbz7/3BEQ4UqUPnvwpmVn2d19RdEMNxw==", "cpu": [ "arm64" ], @@ -3041,9 +3058,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.3.96", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.96.tgz", - "integrity": "sha512-i5/UTUwmJLri7zhtF6SAo/4QDQJDH2fhYJaBIUhrICmIkRO/ltURmpejqxsM/ye9Jqv5zG7VszMC0v/GYn/7BQ==", + "version": "1.3.100", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.100.tgz", + "integrity": "sha512-BWx/0EeY89WC4q3AaIaBSGfQxkYxIlS3mX19dwy2FWJs/O+fMvF9oLk/CyJPOZzbp+1DjGeeoGFuDYpiNO91JA==", "cpu": [ "arm64" ], @@ -3057,9 +3074,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.3.96", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.96.tgz", - "integrity": "sha512-USdaZu8lTIkm4Yf9cogct/j5eqtdZqTgcTib4I+NloUW0E/hySou3eSyp3V2UAA1qyuC72ld1otXuyKBna0YKQ==", + "version": "1.3.100", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.100.tgz", + "integrity": "sha512-XUdGu3dxAkjsahLYnm8WijPfKebo+jHgHphDxaW0ovI6sTdmEGFDew7QzKZRlbYL2jRkUuuKuDGvD6lO5frmhA==", "cpu": [ "x64" ], @@ -3073,9 +3090,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.3.96", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.96.tgz", - "integrity": "sha512-QYErutd+G2SNaCinUVobfL7jWWjGTI0QEoQ6hqTp7PxCJS/dmKmj3C5ZkvxRYcq7XcZt7ovrYCTwPTHzt6lZBg==", + "version": "1.3.100", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.100.tgz", + "integrity": "sha512-PhoXKf+f0OaNW/GCuXjJ0/KfK9EJX7z2gko+7nVnEA0p3aaPtbP6cq1Ubbl6CMoPL+Ci3gZ7nYumDqXNc3CtLQ==", "cpu": [ "x64" ], @@ -3089,9 +3106,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.3.96", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.96.tgz", - "integrity": "sha512-hjGvvAduA3Un2cZ9iNP4xvTXOO4jL3G9iakhFsgVhpkU73SGmK7+LN8ZVBEu4oq2SUcHO6caWvnZ881cxGuSpg==", + "version": "1.3.100", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.100.tgz", + "integrity": "sha512-PwLADZN6F9cXn4Jw52FeP/MCLVHm8vwouZZSOoOScDtihjY495SSjdPnlosMaRSR4wJQssGwiD/4MbpgQPqbAw==", "cpu": [ "arm64" ], @@ -3105,9 +3122,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.3.96", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.96.tgz", - "integrity": "sha512-Far2hVFiwr+7VPCM2GxSmbh3ikTpM3pDombE+d69hkedvYHYZxtTF+2LTKl/sXtpbUnsoq7yV/32c9R/xaaWfw==", + "version": "1.3.100", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.100.tgz", + "integrity": "sha512-0f6nicKSLlDKlyPRl2JEmkpBV4aeDfRQg6n8mPqgL7bliZIcDahG0ej+HxgNjZfS3e0yjDxsNRa6sAqWU2Z60A==", "cpu": [ "ia32" ], @@ -3121,9 +3138,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.3.96", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.96.tgz", - "integrity": "sha512-4VbSAniIu0ikLf5mBX81FsljnfqjoVGleEkCQv4+zRlyZtO3FHoDPkeLVoy6WRlj7tyrRcfUJ4mDdPkbfTO14g==", + "version": "1.3.100", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.100.tgz", + "integrity": "sha512-b7J0rPoMkRTa3XyUGt8PwCaIBuYWsL2DqbirrQKRESzgCvif5iNpqaM6kjIjI/5y5q1Ycv564CB51YDpiS8EtQ==", "cpu": [ "x64" ], @@ -3149,20 +3166,20 @@ "dev": true }, "node_modules/@tanstack/query-core": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.12.1.tgz", - "integrity": "sha512-WbZztNmKq0t6QjdNmHzezbi/uifYo9j6e2GLJkodsYaYUlzMbAp91RDyeHkIZrm7EfO4wa6Sm5sxJZm5SPlh6w==", + "version": "5.13.4", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.13.4.tgz", + "integrity": "sha512-8+rJucXvC/xlr4OrxHhEIob/cTlbT4fgmz1VsvB0D12FRStKaXeLORNGcOhSAynRd2NL74SV/Qq0IIb4DedLcA==", "funding": { "type": "github", "url": "https://github.com/sponsors/tannerlinsley" } }, "node_modules/@tanstack/react-query": { - "version": "5.12.2", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.12.2.tgz", - "integrity": "sha512-BeWZu8zVFH20oRc+S/K9ADPgWjEzP/XQCGBNz5IbApUwPQAdwkQYbXODVL5AyAlWiSxhx+P2xlARPBApj2Yrog==", + "version": "5.13.4", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.13.4.tgz", + "integrity": "sha512-3HjvkFFriEQwffUXtKHPiwkfFXUGbs46YATTzzyK1+Pw6Ekd3kwzS50e45qdamWuEXmXxyo5S1zp534LdFG0Rw==", "dependencies": { - "@tanstack/query-core": "5.12.1" + "@tanstack/query-core": "5.13.4" }, "funding": { "type": "github", @@ -3242,45 +3259,45 @@ } }, "node_modules/@types/d3-array": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.0.tgz", - "integrity": "sha512-tjU8juPSfhMnu6mJZPOCVVGba4rZoE0tjHDPb81PYwA8CzbaFscGjgkUM7juUJu6iWA1cCVWNEVwxZ5HN9Jj8Q==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz", + "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==", "dev": true }, "node_modules/@types/d3-axis": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.5.tgz", - "integrity": "sha512-ufDAV3SQzju+uB3Jlty7SUb/jMigjpIlvDDcSGvGmmO6OT/sNO93UE0dRzwWOZeBLzrLSA0CQM4bf3iq1std3A==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz", + "integrity": "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==", "dev": true, "dependencies": { "@types/d3-selection": "*" } }, "node_modules/@types/d3-brush": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.5.tgz", - "integrity": "sha512-JROQXZNq1X6QdWstESDUv1VilwZ2hBCQnWB91yal+5yZvYwGQvYsGCjrkHGfKK/8/AcX1JnERmpQzdDDuLRUsA==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz", + "integrity": "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==", "dev": true, "dependencies": { "@types/d3-selection": "*" } }, "node_modules/@types/d3-chord": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.5.tgz", - "integrity": "sha512-rs26AIhJjtc+XLR4YQU8IjPTLOlDVO4PR1y+pVFYEHzKh2tE5tYz3MF4QV6iz7HboXQEaYpJQt8dH9uUkne8yA==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz", + "integrity": "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==", "dev": true }, "node_modules/@types/d3-color": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.2.tgz", - "integrity": "sha512-At+Ski7dL8Bs58E8g8vPcFJc8tGcaC12Z4m07+p41+DRqnZQcAlp3NfYjLrhNYv+zEyQitU1CUxXNjqUyf+c0g==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", "dev": true }, "node_modules/@types/d3-contour": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.5.tgz", - "integrity": "sha512-wLvjwdOQVd1NL1IcW90CCt1VtpeZ3V20p/OTXlkT8uAiprrJnq2PNNnRNe1QCez4U9aMU29Z14zpJQVLW1+Lcg==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz", + "integrity": "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==", "dev": true, "dependencies": { "@types/d3-array": "*", @@ -3288,166 +3305,166 @@ } }, "node_modules/@types/d3-delaunay": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.3.tgz", - "integrity": "sha512-+Lf5NPKZ4JBC9tbudVkKceQXRxU3jJs0el9aKQvinMtdnFSOG84eVXyhCNgIFuXNQO3iIcYs7sgzN359FEOZnQ==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==", "dev": true }, "node_modules/@types/d3-dispatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.5.tgz", - "integrity": "sha512-hxvq2kc+9hydVppo21JCGfcM0tLTh1DXnG3MLN0KlxsNZJH4bsdl1iXDuWtXFpWWlBrCMwSqlnoLPDxNAZU3Bg==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.6.tgz", + "integrity": "sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ==", "dev": true }, "node_modules/@types/d3-drag": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.6.tgz", - "integrity": "sha512-5ZlIsUSK/xxSbcg7y+Jh5orvmSM3U0bOu/6X3wk3DNgIeWJxRcZrdLDlqqCN22xC66p9zQiQx5emYYTodDlCTg==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz", + "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==", "dev": true, "dependencies": { "@types/d3-selection": "*" } }, "node_modules/@types/d3-dsv": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.6.tgz", - "integrity": "sha512-Lx1CROFmWCuP6eBw3Hl00QMt7/NLRMb5jIn0vzogrfQi8cFS5OpqHV7Kfg1Zg9k2q6yQ+601RH+ZC3v1OPrvYQ==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz", + "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==", "dev": true }, "node_modules/@types/d3-ease": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.1.tgz", - "integrity": "sha512-VZofjpEt8HWv3nxUAosj5o/+4JflnJ7Bbv07k17VO3T2WRuzGdZeookfaF60iVh5RdhVG49LE5w6LIshVUC6rg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", + "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", "dev": true }, "node_modules/@types/d3-fetch": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.6.tgz", - "integrity": "sha512-pusA8HqnYmj8h5ePCjnRLacF8xgB6il54jD5VxU90ur9/AyQQ3zR3Ib3hqSok9pEUaYXDOJcGK6LWcMF7a7PhA==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz", + "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==", "dev": true, "dependencies": { "@types/d3-dsv": "*" } }, "node_modules/@types/d3-force": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.8.tgz", - "integrity": "sha512-3oEkLUuUf9a0V/kRiFRbEivtODZ3bKGpUTLMrPr7C5jJlJ/1++/SUsc8rYfi2E8BVNoUSNXm3ABntiIEIuJYwA==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.9.tgz", + "integrity": "sha512-IKtvyFdb4Q0LWna6ymywQsEYjK/94SGhPrMfEr1TIc5OBeziTi+1jcCvttts8e0UWZIxpasjnQk9MNk/3iS+kA==", "dev": true }, "node_modules/@types/d3-format": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.3.tgz", - "integrity": "sha512-kxuLXSAEJykTeL/EI3tUiEfGqru7PRdqEy099YBnqFl+fF167UVSB4+wntlZv86ZdoYf0DHjsRHnTIm8kcH7qw==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz", + "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==", "dev": true }, "node_modules/@types/d3-geo": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.0.7.tgz", - "integrity": "sha512-j5I/HcDPe0z8AjUnjpweKtzjx+aTGU8Q6R6jnR4jqVlhHBp82hedaT31HVCEsIatacNtSe12XuibJDCQAP0zRg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz", + "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==", "dev": true, "dependencies": { "@types/geojson": "*" } }, "node_modules/@types/d3-hierarchy": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.5.tgz", - "integrity": "sha512-DEcBUj1IL3WyPLDlh4m2nsNXnMLITXM5Vwcu4G85yJHtf2cVGPBjgky3L11WBnT+ayHKf06Tchk5mY1eGmd4WQ==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.6.tgz", + "integrity": "sha512-qlmD/8aMk5xGorUvTUWHCiumvgaUXYldYjNVOWtYoTYY/L+WwIEAmJxUmTgr9LoGNG0PPAOmqMDJVDPc7DOpPw==", "dev": true }, "node_modules/@types/d3-interpolate": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.3.tgz", - "integrity": "sha512-6OZ2EIB4lLj+8cUY7I/Cgn9Q+hLdA4DjJHYOQDiHL0SzqS1K9DL5xIOVBSIHgF+tiuO9MU1D36qvdIvRDRPh+Q==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", "dev": true, "dependencies": { "@types/d3-color": "*" } }, "node_modules/@types/d3-path": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.0.1.tgz", - "integrity": "sha512-blRhp7ki7pVznM8k6lk5iUU9paDbVRVq+/xpf0RRgSJn5gr6SE7RcFtxooYGMBOc1RZiGyqRpVdu5AD0z0ooMA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.0.2.tgz", + "integrity": "sha512-WAIEVlOCdd/NKRYTsqCpOMHQHemKBEINf8YXMYOtXH0GA7SY0dqMB78P3Uhgfy+4X+/Mlw2wDtlETkN6kQUCMA==", "dev": true }, "node_modules/@types/d3-polygon": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.1.tgz", - "integrity": "sha512-nrcWPk7B9qs6xnpq60Cls44zm9eDmFAv65qi/N/emh/oftnG6uYz49aIS0mdFaGeJxVN8H3pHneMuZMV8EwFdw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz", + "integrity": "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==", "dev": true }, "node_modules/@types/d3-quadtree": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.4.tgz", - "integrity": "sha512-B725MopFDIOQ6njFbeOxIEf42HVO2Xv+FmcxQISdOKErvLbFqWz3Riu+OWujUYoogreqqyHBHcGGL/JzzXQYsw==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz", + "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==", "dev": true }, "node_modules/@types/d3-random": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.2.tgz", - "integrity": "sha512-8QhsqkKs6mymAZMrg3ZFXPxKA34rdgp3ZrtB8o6mhFsKAd1gOvR1gocWnca+kmXypQdwgnzKm9gZE2Uw8NjjKw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz", + "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==", "dev": true }, "node_modules/@types/d3-scale": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.7.tgz", - "integrity": "sha512-/YEbMIOtqSFSELqUT8desdT3a7iybPkSQiIx/wN4CZ/5b7wrCvmyXWELTMUYB10k0N5rzHVu4f/OkhulG1b3Lw==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.8.tgz", + "integrity": "sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==", "dependencies": { "@types/d3-time": "*" } }, "node_modules/@types/d3-scale-chromatic": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.1.tgz", - "integrity": "sha512-Ob7OrwiTeQXY/WBBbRHGZBOn6rH1h7y3jjpTSKYqDEeqFjktql6k2XSgNwLrLDmAsXhEn8P9NHDY4VTuo0ZY1w==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.3.tgz", + "integrity": "sha512-laXM4+1o5ImZv3RpFAsTRn3TEkzqkytiOY0Dz0sq5cnd1dtNlk6sHLon4OvqaiJb28T0S/TdsBI3Sjsy+keJrw==", "dev": true }, "node_modules/@types/d3-selection": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.9.tgz", - "integrity": "sha512-kpej1+FX3sdL6E3f5R2eySrTVYSRh8OSOWKgEtElTM0ajxOparPf2H6mc32CPJ7aey2NErwenSy/CgNrUvZp0g==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.10.tgz", + "integrity": "sha512-cuHoUgS/V3hLdjJOLTT691+G2QoqAjCVLmr4kJXR4ha56w1Zdu8UUQ5TxLRqudgNjwXeQxKMq4j+lyf9sWuslg==", "dev": true }, "node_modules/@types/d3-shape": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.4.tgz", - "integrity": "sha512-M2/xsWPsjaZc5ifMKp1EBp0gqJG0eO/zlldJNOC85Y/5DGsBQ49gDkRJ2h5GY7ZVD6KUumvZWsylSbvTaJTqKg==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.6.tgz", + "integrity": "sha512-5KKk5aKGu2I+O6SONMYSNflgiP0WfZIQvVUMan50wHsLG1G94JlxEVnCpQARfTtzytuY0p/9PXXZb3I7giofIA==", "dev": true, "dependencies": { "@types/d3-path": "*" } }, "node_modules/@types/d3-time": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.2.tgz", - "integrity": "sha512-kbdRXTmUgNfw5OTE3KZnFQn6XdIc4QGroN5UixgdrXATmYsdlPQS6pEut9tVlIojtzuFD4txs/L+Rq41AHtLpg==" + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.3.tgz", + "integrity": "sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw==" }, "node_modules/@types/d3-time-format": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.2.tgz", - "integrity": "sha512-wr08C1Gh77qaN8JIkrn5Rz/bdt5M9bdEqFmEOcYhUSq2t2sHvLTBfb4XAtGB3D4hm0ubj50NXWWXoXyp5tPXDg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz", + "integrity": "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==", "dev": true }, "node_modules/@types/d3-timer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.1.tgz", - "integrity": "sha512-GGTvzKccVEhxmRfJEB6zhY9ieT4UhGVUIQaBzFpUO9OXy2ycAlnPCSJLzmGGgqt3KVjqN3QCQB4g1rsZnHsWhg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", + "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", "dev": true }, "node_modules/@types/d3-transition": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.7.tgz", - "integrity": "sha512-WY4/HKVWU9Nce8u3szfQVeu0vC9HiB0t80zen2lJza6sE3JZPGTd5omwkUU2PVaosieUgbiGsHx45fZ5ylXO8Q==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.8.tgz", + "integrity": "sha512-ew63aJfQ/ms7QQ4X7pk5NxQ9fZH/z+i24ZfJ6tJSfqxJMrYLiK01EAs2/Rtw/JreGUsS3pLPNV644qXFGnoZNQ==", "dev": true, "dependencies": { "@types/d3-selection": "*" } }, "node_modules/@types/d3-zoom": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.7.tgz", - "integrity": "sha512-CXmqq+sFP5GUHzZvni6lgYCrI35FJq39bbzYBqbuaQ8Q4DnQX9l45bkRQxyrqZDuUqg8m/vWoOyg1lOO+wdCRg==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz", + "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==", "dev": true, "dependencies": { "@types/d3-interpolate": "*", @@ -3543,14 +3560,14 @@ "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" }, "node_modules/@types/prop-types": { - "version": "15.7.10", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.10.tgz", - "integrity": "sha512-mxSnDQxPqsZxmeShFH+uwQ4kO4gcJcGahjjMFeLbKE95IAZiiZyiEepGZjtXJ7hN/yfu0bu9xN2ajcU0JcxX6A==" + "version": "15.7.11", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", + "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==" }, "node_modules/@types/react": { - "version": "18.2.42", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.42.tgz", - "integrity": "sha512-c1zEr96MjakLYus/wPnuWDo1/zErfdU9rNsIGmE+NV71nx88FG9Ttgo5dqorXTu/LImX2f63WBP986gJkMPNbA==", + "version": "18.2.43", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.43.tgz", + "integrity": "sha512-nvOV01ZdBdd/KW6FahSbcNplt2jCJfyWdTos61RYHV+FVv5L/g9AOX1bmbVcWcLFL8+KHQfh1zVIQrud6ihyQA==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -3576,9 +3593,9 @@ } }, "node_modules/@types/scheduler": { - "version": "0.16.5", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.5.tgz", - "integrity": "sha512-s/FPdYRmZR8SjLWGMCuax7r3qCWQw9QKHzXVukAuuIJkXkDRwp+Pu5LMIVFi0Fxbav35WURicYr8u1QsoybnQw==" + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" }, "node_modules/@types/semver": { "version": "7.5.6", @@ -3588,17 +3605,17 @@ "peer": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.13.2.tgz", - "integrity": "sha512-3+9OGAWHhk4O1LlcwLBONbdXsAhLjyCFogJY/cWy2lxdVJ2JrcTF2pTGMaLl2AE7U1l31n8Py4a8bx5DLf/0dQ==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.14.0.tgz", + "integrity": "sha512-1ZJBykBCXaSHG94vMMKmiHoL0MhNHKSVlcHVYZNw+BKxufhqQVTOawNpwwI1P5nIFZ/4jLVop0mcY6mJJDFNaw==", "dev": true, "peer": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.13.2", - "@typescript-eslint/type-utils": "6.13.2", - "@typescript-eslint/utils": "6.13.2", - "@typescript-eslint/visitor-keys": "6.13.2", + "@typescript-eslint/scope-manager": "6.14.0", + "@typescript-eslint/type-utils": "6.14.0", + "@typescript-eslint/utils": "6.14.0", + "@typescript-eslint/visitor-keys": "6.14.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -3660,16 +3677,16 @@ "peer": true }, "node_modules/@typescript-eslint/parser": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.13.2.tgz", - "integrity": "sha512-MUkcC+7Wt/QOGeVlM8aGGJZy1XV5YKjTpq9jK6r6/iLsGXhBVaGP5N0UYvFsu9BFlSpwY9kMretzdBH01rkRXg==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.14.0.tgz", + "integrity": "sha512-QjToC14CKacd4Pa7JK4GeB/vHmWFJckec49FR4hmIRf97+KXole0T97xxu9IFiPxVQ1DBWrQ5wreLwAGwWAVQA==", "dev": true, "peer": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.13.2", - "@typescript-eslint/types": "6.13.2", - "@typescript-eslint/typescript-estree": "6.13.2", - "@typescript-eslint/visitor-keys": "6.13.2", + "@typescript-eslint/scope-manager": "6.14.0", + "@typescript-eslint/types": "6.14.0", + "@typescript-eslint/typescript-estree": "6.14.0", + "@typescript-eslint/visitor-keys": "6.14.0", "debug": "^4.3.4" }, "engines": { @@ -3689,14 +3706,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.13.2.tgz", - "integrity": "sha512-CXQA0xo7z6x13FeDYCgBkjWzNqzBn8RXaE3QVQVIUm74fWJLkJkaHmHdKStrxQllGh6Q4eUGyNpMe0b1hMkXFA==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.14.0.tgz", + "integrity": "sha512-VT7CFWHbZipPncAZtuALr9y3EuzY1b1t1AEkIq2bTXUPKw+pHoXflGNG5L+Gv6nKul1cz1VH8fz16IThIU0tdg==", "dev": true, "peer": true, "dependencies": { - "@typescript-eslint/types": "6.13.2", - "@typescript-eslint/visitor-keys": "6.13.2" + "@typescript-eslint/types": "6.14.0", + "@typescript-eslint/visitor-keys": "6.14.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -3707,14 +3724,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.13.2.tgz", - "integrity": "sha512-Qr6ssS1GFongzH2qfnWKkAQmMUyZSyOr0W54nZNU1MDfo+U4Mv3XveeLZzadc/yq8iYhQZHYT+eoXJqnACM1tw==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.14.0.tgz", + "integrity": "sha512-x6OC9Q7HfYKqjnuNu5a7kffIYs3No30isapRBJl1iCHLitD8O0lFbRcVGiOcuyN837fqXzPZ1NS10maQzZMKqw==", "dev": true, "peer": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.13.2", - "@typescript-eslint/utils": "6.13.2", + "@typescript-eslint/typescript-estree": "6.14.0", + "@typescript-eslint/utils": "6.14.0", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -3735,9 +3752,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.13.2.tgz", - "integrity": "sha512-7sxbQ+EMRubQc3wTfTsycgYpSujyVbI1xw+3UMRUcrhSy+pN09y/lWzeKDbvhoqcRbHdc+APLs/PWYi/cisLPg==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.14.0.tgz", + "integrity": "sha512-uty9H2K4Xs8E47z3SnXEPRNDfsis8JO27amp2GNCnzGETEW3yTqEIVg5+AI7U276oGF/tw6ZA+UesxeQ104ceA==", "dev": true, "peer": true, "engines": { @@ -3749,14 +3766,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.13.2.tgz", - "integrity": "sha512-SuD8YLQv6WHnOEtKv8D6HZUzOub855cfPnPMKvdM/Bh1plv1f7Q/0iFUDLKKlxHcEstQnaUU4QZskgQq74t+3w==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.14.0.tgz", + "integrity": "sha512-yPkaLwK0yH2mZKFE/bXkPAkkFgOv15GJAUzgUVonAbv0Hr4PK/N2yaA/4XQbTZQdygiDkpt5DkxPELqHguNvyw==", "dev": true, "peer": true, "dependencies": { - "@typescript-eslint/types": "6.13.2", - "@typescript-eslint/visitor-keys": "6.13.2", + "@typescript-eslint/types": "6.14.0", + "@typescript-eslint/visitor-keys": "6.14.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -3813,18 +3830,18 @@ "peer": true }, "node_modules/@typescript-eslint/utils": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.13.2.tgz", - "integrity": "sha512-b9Ptq4eAZUym4idijCRzl61oPCwwREcfDI8xGk751Vhzig5fFZR9CyzDz4Sp/nxSLBYxUPyh4QdIDqWykFhNmQ==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.14.0.tgz", + "integrity": "sha512-XwRTnbvRr7Ey9a1NT6jqdKX8y/atWG+8fAIu3z73HSP8h06i3r/ClMhmaF/RGWGW1tHJEwij1uEg2GbEmPYvYg==", "dev": true, "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.13.2", - "@typescript-eslint/types": "6.13.2", - "@typescript-eslint/typescript-estree": "6.13.2", + "@typescript-eslint/scope-manager": "6.14.0", + "@typescript-eslint/types": "6.14.0", + "@typescript-eslint/typescript-estree": "6.14.0", "semver": "^7.5.4" }, "engines": { @@ -3875,13 +3892,13 @@ "peer": true }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.13.2.tgz", - "integrity": "sha512-OGznFs0eAQXJsp+xSd6k/O1UbFi/K/L7WjqeRoFE7vadjAF9y0uppXhYNQNEqygjou782maGClOoZwPqF0Drlw==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.14.0.tgz", + "integrity": "sha512-fB5cw6GRhJUz03MrROVuj5Zm/Q+XWlVdIsFj+Zb1Hvqouc8t+XP2H5y53QYU/MGtd2dPg6/vJJlhoX3xc2ehfw==", "dev": true, "peer": true, "dependencies": { - "@typescript-eslint/types": "6.13.2", + "@typescript-eslint/types": "6.14.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -3910,9 +3927,9 @@ } }, "node_modules/@vitest/coverage-v8": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-1.0.1.tgz", - "integrity": "sha512-Z4a7ig4VjUCT/P+LRB3IZrBRXb9xWRUM8rSBH9cKgfrU1Oe01/K2WJKtGshOnQwXZoSfQtwCGpbnHmB/qJwjcw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-1.0.4.tgz", + "integrity": "sha512-xD6Yuql6RW0Ir/JJIs6rVrmnG2/KOWJF+IRX1oJQk5wGKGxbtdrYPbl+WTUn/4ICCQ2G20zbE1e8/nPNyAG5Vg==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.1", @@ -3937,13 +3954,13 @@ } }, "node_modules/@vitest/expect": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.0.1.tgz", - "integrity": "sha512-3cdrb/eKD/0tygDX75YscuHEHMUJ70u3UoLSq2eqhWks57AyzvsDQbyn53IhZ0tBN7gA8Jj2VhXiOV2lef7thw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.0.4.tgz", + "integrity": "sha512-/NRN9N88qjg3dkhmFcCBwhn/Ie4h064pY3iv7WLRsDJW7dXnEgeoa8W9zy7gIPluhz6CkgqiB3HmpIXgmEY5dQ==", "dev": true, "dependencies": { - "@vitest/spy": "1.0.1", - "@vitest/utils": "1.0.1", + "@vitest/spy": "1.0.4", + "@vitest/utils": "1.0.4", "chai": "^4.3.10" }, "funding": { @@ -3951,12 +3968,12 @@ } }, "node_modules/@vitest/runner": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.0.1.tgz", - "integrity": "sha512-/+z0vhJ0MfRPT3AyTvAK6m57rzlew/ct8B2a4LMv7NhpPaiI2QLGyOBMB3lcioWdJHjRuLi9aYppfOv0B5aRQA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.0.4.tgz", + "integrity": "sha512-rhOQ9FZTEkV41JWXozFM8YgOqaG9zA7QXbhg5gy6mFOVqh4PcupirIJ+wN7QjeJt8S8nJRYuZH1OjJjsbxAXTQ==", "dev": true, "dependencies": { - "@vitest/utils": "1.0.1", + "@vitest/utils": "1.0.4", "p-limit": "^5.0.0", "pathe": "^1.1.1" }, @@ -3992,9 +4009,9 @@ } }, "node_modules/@vitest/snapshot": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.0.1.tgz", - "integrity": "sha512-wIPtPDGSxEZ+DpNMc94AsybX6LV6uN6sosf5TojyP1m2QbKwiRuLV/5RSsjt1oWViHsTj8mlcwrQQ1zHGO0fMw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.0.4.tgz", + "integrity": "sha512-vkfXUrNyNRA/Gzsp2lpyJxh94vU2OHT1amoD6WuvUAA12n32xeVZQ0KjjQIf8F6u7bcq2A2k969fMVxEsxeKYA==", "dev": true, "dependencies": { "magic-string": "^0.30.5", @@ -4006,9 +4023,9 @@ } }, "node_modules/@vitest/spy": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.0.1.tgz", - "integrity": "sha512-yXwm1uKhBVr/5MhVeSmtNqK+0q2RXIchJt8kokEKdrWLtkPeDgdbZ6SjR1VQGZuNdWL6sSBnLayIyVvcS0qLfA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.0.4.tgz", + "integrity": "sha512-9ojTFRL1AJVh0hvfzAQpm0QS6xIS+1HFIw94kl/1ucTfGCaj1LV/iuJU4Y6cdR03EzPDygxTHwE1JOm+5RCcvA==", "dev": true, "dependencies": { "tinyspy": "^2.2.0" @@ -4018,9 +4035,9 @@ } }, "node_modules/@vitest/utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.0.1.tgz", - "integrity": "sha512-MGPCHkzXbbAyscrhwGzh8uP1HPrTYLWaj1WTDtWSGrpe2yJWLRN9mF9ooKawr6NMOg9vTBtg2JqWLfuLC7Dknw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.0.4.tgz", + "integrity": "sha512-gsswWDXxtt0QvtK/y/LWukN7sGMYmnCcv1qv05CsY6cU/Y1zpGX1QuvLs+GO1inczpE6Owixeel3ShkjhYtGfA==", "dev": true, "dependencies": { "diff-sequences": "^29.6.3", @@ -4548,9 +4565,9 @@ } }, "node_modules/browserslist": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", - "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", "dev": true, "funding": [ { @@ -4568,9 +4585,9 @@ ], "peer": true, "dependencies": { - "caniuse-lite": "^1.0.30001541", - "electron-to-chromium": "^1.4.535", - "node-releases": "^2.0.13", + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", "update-browserslist-db": "^1.0.13" }, "bin": { @@ -4711,9 +4728,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001561", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001561.tgz", - "integrity": "sha512-NTt0DNoKe958Q0BE0j0c1V9jbUzhBxHIEJy7asmGrpE0yG63KTV7PLHPnK2E1O9RsQrQ081I3NLuXGS6zht3cw==", + "version": "1.0.30001568", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001568.tgz", + "integrity": "sha512-vSUkH84HontZJ88MiNrOau1EBrCqEQYgkC5gIySiDlpsm8sGVrhU7Kx4V6h0tnqaHzIHZv08HlJIwPbL4XL9+A==", "dev": true, "funding": [ { @@ -5503,9 +5520,9 @@ } }, "node_modules/csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, "node_modules/cuthill-mckee": { "version": "1.0.0", @@ -6117,9 +6134,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.577", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.577.tgz", - "integrity": "sha512-/5xHPH6f00SxhHw6052r+5S1xO7gHNc89hV7tqlvnStvKbSrDqc/u6AlwPvVWWNj+s4/KL6T6y8ih+nOY0qYNA==", + "version": "1.4.610", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.610.tgz", + "integrity": "sha512-mqi2oL1mfeHYtOdCxbPQYV/PL7YrQlxbvFEZ0Ee8GbDdShimqt2/S6z2RWqysuvlwdOrQdqvE0KZrBTipAeJzg==", "dev": true, "peer": true }, @@ -6339,9 +6356,9 @@ } }, "node_modules/esbuild": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.8.tgz", - "integrity": "sha512-l7iffQpT2OrZfH2rXIp7/FkmaeZM0vxbxN9KfiCwGYuZqzMg/JdvX26R31Zxn/Pxvsrg3Y9N6XTcnknqDyyv4w==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.9.tgz", + "integrity": "sha512-U9CHtKSy+EpPsEBa+/A2gMs/h3ylBC0H0KSqIg7tpztHerLi6nrrcoUJAkNCEPumx8yJ+Byic4BVwHgRbN0TBg==", "dev": true, "hasInstallScript": true, "bin": { @@ -6351,28 +6368,28 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.19.8", - "@esbuild/android-arm64": "0.19.8", - "@esbuild/android-x64": "0.19.8", - "@esbuild/darwin-arm64": "0.19.8", - "@esbuild/darwin-x64": "0.19.8", - "@esbuild/freebsd-arm64": "0.19.8", - "@esbuild/freebsd-x64": "0.19.8", - "@esbuild/linux-arm": "0.19.8", - "@esbuild/linux-arm64": "0.19.8", - "@esbuild/linux-ia32": "0.19.8", - "@esbuild/linux-loong64": "0.19.8", - "@esbuild/linux-mips64el": "0.19.8", - "@esbuild/linux-ppc64": "0.19.8", - "@esbuild/linux-riscv64": "0.19.8", - "@esbuild/linux-s390x": "0.19.8", - "@esbuild/linux-x64": "0.19.8", - "@esbuild/netbsd-x64": "0.19.8", - "@esbuild/openbsd-x64": "0.19.8", - "@esbuild/sunos-x64": "0.19.8", - "@esbuild/win32-arm64": "0.19.8", - "@esbuild/win32-ia32": "0.19.8", - "@esbuild/win32-x64": "0.19.8" + "@esbuild/android-arm": "0.19.9", + "@esbuild/android-arm64": "0.19.9", + "@esbuild/android-x64": "0.19.9", + "@esbuild/darwin-arm64": "0.19.9", + "@esbuild/darwin-x64": "0.19.9", + "@esbuild/freebsd-arm64": "0.19.9", + "@esbuild/freebsd-x64": "0.19.9", + "@esbuild/linux-arm": "0.19.9", + "@esbuild/linux-arm64": "0.19.9", + "@esbuild/linux-ia32": "0.19.9", + "@esbuild/linux-loong64": "0.19.9", + "@esbuild/linux-mips64el": "0.19.9", + "@esbuild/linux-ppc64": "0.19.9", + "@esbuild/linux-riscv64": "0.19.9", + "@esbuild/linux-s390x": "0.19.9", + "@esbuild/linux-x64": "0.19.9", + "@esbuild/netbsd-x64": "0.19.9", + "@esbuild/openbsd-x64": "0.19.9", + "@esbuild/sunos-x64": "0.19.9", + "@esbuild/win32-arm64": "0.19.9", + "@esbuild/win32-ia32": "0.19.9", + "@esbuild/win32-x64": "0.19.9" } }, "node_modules/escalade": { @@ -6914,9 +6931,9 @@ } }, "node_modules/eslint/node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dependencies": { "type-fest": "^0.20.2" }, @@ -7915,9 +7932,9 @@ } }, "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", "engines": { "node": ">= 4" } @@ -9522,9 +9539,9 @@ } }, "node_modules/ml-airpls": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ml-airpls/-/ml-airpls-1.0.2.tgz", - "integrity": "sha512-LbQu28am8XUHr54TWOh8Rz6edC6KRA5pjJ83F6J6/0a5QrZrh0ioEukfv3d9WeeUDzdczNLbdkU5hJvICCVacA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ml-airpls/-/ml-airpls-1.0.3.tgz", + "integrity": "sha512-U6D0ahNuCxgfu/bb415tJMAXdtC+5cysUNAS3bWZWQCwQR53vNjby9MJN+6muBiDz6XQk0lULkg+PsW1N+OG6g==", "dependencies": { "cuthill-mckee": "^1.0.0" } @@ -10042,9 +10059,9 @@ } }, "node_modules/nmr-load-save": { - "version": "0.23.9", - "resolved": "https://registry.npmjs.org/nmr-load-save/-/nmr-load-save-0.23.9.tgz", - "integrity": "sha512-VB44Vu8cC+o0RixkZVttuj9WO9vfFZ56ACTIGmvVvFqqSl5UWT2IG/b/5FAeAizfKrkdquTcAvKrjfZUcgGpBA==", + "version": "0.23.10", + "resolved": "https://registry.npmjs.org/nmr-load-save/-/nmr-load-save-0.23.10.tgz", + "integrity": "sha512-nCN4FgGwPxMzzzbndyDwbSsXL2dU9ymKPopTjdcDjJbJBHJHPL2ehRTcaDYtDCpRd2hlOF1c75Rr1kYcZ8rohA==", "dependencies": { "@lukeed/uuid": "^2.0.1", "@types/lodash.merge": "^4.6.7", @@ -10141,9 +10158,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true, "peer": true }, @@ -10274,14 +10291,14 @@ } }, "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, "peer": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, @@ -10596,9 +10613,9 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", "dev": true, "engines": { "node": "14 || >=16.14" @@ -10913,9 +10930,9 @@ } }, "node_modules/prettier": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz", - "integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz", + "integrity": "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" @@ -11444,10 +11461,11 @@ } }, "node_modules/react-science": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/react-science/-/react-science-0.29.0.tgz", - "integrity": "sha512-vZXgDYlY6SMflYBuWKlWzFZ8mPlCEO8XiIXqIvEStmFsE1ykBDVPigjDAlS3UQGWLWw5hl3ePOSiLClcJZix0A==", + "version": "0.30.2-pre.1702391005", + "resolved": "https://registry.npmjs.org/react-science/-/react-science-0.30.2-pre.1702391005.tgz", + "integrity": "sha512-4WTo6MIctMzFVZgnKt+P4WGw+mKnpjlKAQ8bRpkb7pGSbETQygZo80jICVZQ3Tkf0t+L3I+riCoLh4irGch4JA==", "dependencies": { + "@blueprintjs/select": "^5.0.19", "@emotion/react": "^11.11.1", "@emotion/styled": "^11.11.0", "@headlessui/react": "^1.7.17", @@ -11934,9 +11952,9 @@ "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" }, "node_modules/rollup": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.6.1.tgz", - "integrity": "sha512-jZHaZotEHQaHLgKr8JnQiDT1rmatjgKlMekyksz+yk9jt/8z9quNjnKNRoaM0wd9DC2QKXjmWWuDYtM3jfF8pQ==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.8.0.tgz", + "integrity": "sha512-NpsklK2fach5CdI+PScmlE5R4Ao/FSWtF7LkoIrHDxPACY/xshNasPsbpG0VVHxUTbf74tJbVT4PrP8JsJ6ZDA==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -11946,18 +11964,19 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.6.1", - "@rollup/rollup-android-arm64": "4.6.1", - "@rollup/rollup-darwin-arm64": "4.6.1", - "@rollup/rollup-darwin-x64": "4.6.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.6.1", - "@rollup/rollup-linux-arm64-gnu": "4.6.1", - "@rollup/rollup-linux-arm64-musl": "4.6.1", - "@rollup/rollup-linux-x64-gnu": "4.6.1", - "@rollup/rollup-linux-x64-musl": "4.6.1", - "@rollup/rollup-win32-arm64-msvc": "4.6.1", - "@rollup/rollup-win32-ia32-msvc": "4.6.1", - "@rollup/rollup-win32-x64-msvc": "4.6.1", + "@rollup/rollup-android-arm-eabi": "4.8.0", + "@rollup/rollup-android-arm64": "4.8.0", + "@rollup/rollup-darwin-arm64": "4.8.0", + "@rollup/rollup-darwin-x64": "4.8.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.8.0", + "@rollup/rollup-linux-arm64-gnu": "4.8.0", + "@rollup/rollup-linux-arm64-musl": "4.8.0", + "@rollup/rollup-linux-riscv64-gnu": "4.8.0", + "@rollup/rollup-linux-x64-gnu": "4.8.0", + "@rollup/rollup-linux-x64-musl": "4.8.0", + "@rollup/rollup-win32-arm64-msvc": "4.8.0", + "@rollup/rollup-win32-ia32-msvc": "4.8.0", + "@rollup/rollup-win32-x64-msvc": "4.8.0", "fsevents": "~2.3.2" } }, @@ -13706,9 +13725,9 @@ } }, "node_modules/vite": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.6.tgz", - "integrity": "sha512-MD3joyAEBtV7QZPl2JVVUai6zHms3YOmLR+BpMzLlX2Yzjfcc4gTgNi09d/Rua3F4EtC8zdwPU8eQYyib4vVMQ==", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.8.tgz", + "integrity": "sha512-jYMALd8aeqR3yS9xlHd0OzQJndS9fH5ylVgWdB+pxTwxLKdO1pgC5Dlb398BUxpfaBxa4M9oT7j1g503Gaj5IQ==", "dev": true, "dependencies": { "esbuild": "^0.19.3", @@ -13761,16 +13780,16 @@ } }, "node_modules/vite-node": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.0.1.tgz", - "integrity": "sha512-Y2Jnz4cr2azsOMMYuVPrQkp3KMnS/0WV8ezZjCy4hU7O5mUHCAVOnFmoEvs1nvix/4mYm74Len8bYRWZJMNP6g==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.0.4.tgz", + "integrity": "sha512-9xQQtHdsz5Qn8hqbV7UKqkm8YkJhzT/zr41Dmt5N7AlD8hJXw/Z7y0QiD5I8lnTthV9Rvcvi0QW7PI0Fq83ZPg==", "dev": true, "dependencies": { "cac": "^6.7.14", "debug": "^4.3.4", "pathe": "^1.1.1", "picocolors": "^1.0.0", - "vite": "^5.0.0-beta.15 || ^5.0.0" + "vite": "^5.0.0" }, "bin": { "vite-node": "vite-node.mjs" @@ -13797,16 +13816,16 @@ } }, "node_modules/vitest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.0.1.tgz", - "integrity": "sha512-MHsOj079S28hDsvdDvyD1pRj4dcS51EC5Vbe0xvOYX+WryP8soiK2dm8oULi+oA/8Xa/h6GoJEMTmcmBy5YM+Q==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.0.4.tgz", + "integrity": "sha512-s1GQHp/UOeWEo4+aXDOeFBJwFzL6mjycbQwwKWX2QcYfh/7tIerS59hWQ20mxzupTJluA2SdwiBuWwQHH67ckg==", "dev": true, "dependencies": { - "@vitest/expect": "1.0.1", - "@vitest/runner": "1.0.1", - "@vitest/snapshot": "1.0.1", - "@vitest/spy": "1.0.1", - "@vitest/utils": "1.0.1", + "@vitest/expect": "1.0.4", + "@vitest/runner": "1.0.4", + "@vitest/snapshot": "1.0.4", + "@vitest/spy": "1.0.4", + "@vitest/utils": "1.0.4", "acorn-walk": "^8.3.0", "cac": "^6.7.14", "chai": "^4.3.10", @@ -13820,8 +13839,8 @@ "strip-literal": "^1.3.0", "tinybench": "^2.5.1", "tinypool": "^0.8.1", - "vite": "^5.0.0-beta.19 || ^5.0.0", - "vite-node": "1.0.1", + "vite": "^5.0.0", + "vite-node": "1.0.4", "why-is-node-running": "^2.2.2" }, "bin": { @@ -14382,4 +14401,4 @@ } } } -} \ No newline at end of file +} diff --git a/package.json b/package.json index dc648f45c..ec3d5b32f 100644 --- a/package.json +++ b/package.json @@ -104,7 +104,7 @@ "react-ocl-nmr": "^3.0.1", "react-plot": "^1.4.2", "react-rnd": "^10.4.1", - "react-science": "^0.29.0", + "react-science": "0.30.2-pre.1702391005", "react-slider": "^2.0.6", "react-table": "^7.8.0", "react-transition-group": "^4.4.5", @@ -148,4 +148,4 @@ "vite": "^5.0.6", "vitest": "^1.0.1" } -} \ No newline at end of file +} diff --git a/src/component/modal/PredictSpectraModal.tsx b/src/component/modal/PredictSpectraModal.tsx index 837ecde02..898849447 100644 --- a/src/component/modal/PredictSpectraModal.tsx +++ b/src/component/modal/PredictSpectraModal.tsx @@ -1,8 +1,9 @@ /** @jsxImportSource @emotion/react */ +import { Checkbox } from '@blueprintjs/core'; import { css } from '@emotion/react'; import { SvgNmrFt } from 'cheminfo-font'; import { useCallback, useRef, useState, useMemo } from 'react'; -import { Checkbox, CheckedState, Modal, useOnOff } from 'react-science/ui'; +import { Modal, useOnOff } from 'react-science/ui'; import { getDefaultPredictionOptions, @@ -65,7 +66,7 @@ export function PredictSpectraModal({ useStateWithLocalStorage('nmrium-prediction-preferences'); const { isApproved: isAgree = false, ...options } = predictionPreferences; - const [isApproved, setApproved] = useState(isAgree); + const [isApproved, setApproved] = useState(isAgree); const { toolOptions: { data: { predictionIndex }, @@ -174,9 +175,8 @@ export function PredictSpectraModal({

setApproved(value.target.checked)} checked={isApproved} - key={String(isApproved)} label="I confirm that the chemical structure is not confidential." />
diff --git a/src/component/panels/filtersPanel/FiltersTable.tsx b/src/component/panels/filtersPanel/FiltersTable.tsx index ee9d8d9e0..af1946a2a 100644 --- a/src/component/panels/filtersPanel/FiltersTable.tsx +++ b/src/component/panels/filtersPanel/FiltersTable.tsx @@ -1,8 +1,8 @@ +import { Checkbox } from '@blueprintjs/core'; import { Filter } from 'nmr-processing'; import { useMemo, useCallback, memo, useRef } from 'react'; import { FaRegTrashAlt } from 'react-icons/fa'; import { ObjectInspector } from 'react-inspector'; -import { Checkbox } from 'react-science/ui'; import { useChartData } from '../../context/ChartContext'; import { useDispatch } from '../../context/DispatchContext'; diff --git a/src/component/toolbar/BasicToolBar.tsx b/src/component/toolbar/BasicToolBar.tsx index e882736bf..542f68282 100644 --- a/src/component/toolbar/BasicToolBar.tsx +++ b/src/component/toolbar/BasicToolBar.tsx @@ -31,6 +31,7 @@ import ImportPublicationStringModal from '../modal/ImportPublicationStringModal' import { LoadJCAMPModal } from '../modal/LoadJCAMPModal'; import { useMetaInformationImportationModal } from '../modal/metaImportation/index'; import { VerticalAlignment } from '../reducer/Reducer'; + import { options } from './ToolTypes'; const IMPORT_MENU: DropdownMenuProps['options'] = [ @@ -234,27 +235,34 @@ function BasicToolBarInner({ importHandler(data); }} options={importMenu} - > - } - /> - + renderTarget={(targetProps) => ( +
+ } + /> +
+ )} + /> )} {isButtonVisible('exportAs') && ( { exportHandler(data); }} + placement="right" options={exportMenu} - > - } - /> - + renderTarget={(targetProps) => ( +
+ } + /> +
+ )} + /> )} {isButtonVisible('spectraStackAlignments') && ftCounter > 1 && ( @@ -293,13 +301,13 @@ function BasicToolBarInner({ onClick={alignSpectrumsVerticallyHandler} className="cheminfo" icon={ -
+ <> {verticalAlign === 'bottom' ? ( ) : ( )} -
+ } /> )} From b1a4852bca7a7e65e1ac00473c7e6b9b71ebaa08 Mon Sep 17 00:00:00 2001 From: hamed musallam Date: Tue, 12 Dec 2023 13:37:07 +0100 Subject: [PATCH 07/10] refactor: react table row component --- .../elements/ReactTable/Elements/ReactTableRow.tsx | 6 +++--- test-e2e/panels/spectra.test.ts | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/component/elements/ReactTable/Elements/ReactTableRow.tsx b/src/component/elements/ReactTable/Elements/ReactTableRow.tsx index 0b0aeef96..c6c058611 100644 --- a/src/component/elements/ReactTable/Elements/ReactTableRow.tsx +++ b/src/component/elements/ReactTable/Elements/ReactTableRow.tsx @@ -1,6 +1,6 @@ /** @jsxImportSource @emotion/react */ -import { css, CSSObject } from '@emotion/react'; +import { css, CSSObject, SerializedStyles } from '@emotion/react'; import { useMemo, useEffect, useCallback } from 'react'; import { HighlightEventSource, useHighlight } from '../../../highlight/index'; @@ -11,7 +11,7 @@ function getRowStyle( isActive: boolean, rowStyle: BaseRowStyle = {}, disableDefaultRowStyle?: boolean, -) { +): SerializedStyles { const { hover = {}, active = {}, base = {}, activated = {} } = rowStyle; const hoverStyle = disableDefaultRowStyle @@ -21,7 +21,7 @@ function getRowStyle( ? (active as CSSObject) : { backgroundColor: '#ff6f0070', ...active }; const baseStyle = disableDefaultRowStyle - ? (base as CSSObject) + ? (base as object) : { backgroundColor: 'white', ...base }; return css([ diff --git a/test-e2e/panels/spectra.test.ts b/test-e2e/panels/spectra.test.ts index ae36dccfb..84ce7deb0 100644 --- a/test-e2e/panels/spectra.test.ts +++ b/test-e2e/panels/spectra.test.ts @@ -541,7 +541,8 @@ test('Multiple spectra analysis', async ({ page }) => { // eslint-disable-next-line no-await-in-loop await expect( nmrium.page.locator( - `_react=SpectraTable >> _react=SpectrumName >> nth=${i} >> text=coffee ${i + 1 + `_react=SpectraTable >> _react=SpectrumName >> nth=${i} >> text=coffee ${ + i + 1 }`, ), ).toBeVisible(); From 92fc7c89e6a5f74226807467fa258d03bbb76958 Mon Sep 17 00:00:00 2001 From: hamed musallam Date: Tue, 12 Dec 2023 13:40:47 +0100 Subject: [PATCH 08/10] refactor: migrate to new drop zone component --- src/component/modal/metaImportation/MetaImportationModal.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/component/modal/metaImportation/MetaImportationModal.tsx b/src/component/modal/metaImportation/MetaImportationModal.tsx index 08fd29c4d..479da957c 100644 --- a/src/component/modal/metaImportation/MetaImportationModal.tsx +++ b/src/component/modal/metaImportation/MetaImportationModal.tsx @@ -224,8 +224,7 @@ function MetaImportationModal({ onClose, file }: MetaImportationModalProps) { {!parseResult ? ( ) : ( From 2469e05a1223b6ee4e7f0b3bc3e30635dbeb32e2 Mon Sep 17 00:00:00 2001 From: hamed musallam Date: Tue, 12 Dec 2023 20:04:43 +0100 Subject: [PATCH 09/10] test: don't force a specific order when checking for spectrum names --- test-e2e/panels/spectra.test.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/test-e2e/panels/spectra.test.ts b/test-e2e/panels/spectra.test.ts index 84ce7deb0..b3aac0a77 100644 --- a/test-e2e/panels/spectra.test.ts +++ b/test-e2e/panels/spectra.test.ts @@ -537,16 +537,18 @@ test('Multiple spectra analysis', async ({ page }) => { await expect(nmrium.page.getByTestId('spectrum-line')).toHaveCount(13); }); await test.step('Check spectra names', async () => { + const testPremisses: Array> = []; for (let i = 0; i < 13; i++) { - // eslint-disable-next-line no-await-in-loop - await expect( + const test = expect( nmrium.page.locator( - `_react=SpectraTable >> _react=SpectrumName >> nth=${i} >> text=coffee ${ + `_react=SpectraTable >> _react=SpectrumName >> text="coffee ${ i + 1 - }`, + }"`, ), ).toBeVisible(); + testPremisses.push(test); } + await Promise.all(testPremisses); }); await test.step('Check spectra colors', async () => { expect(await nmrium.getNumberOfDistinctColors()).toBe(13); From 15d2be5e728654d2635a57320ab276a39e2227d3 Mon Sep 17 00:00:00 2001 From: hamed musallam Date: Tue, 12 Dec 2023 20:06:11 +0100 Subject: [PATCH 10/10] test: do not use await inside a loop --- test-e2e/panels/ranges.test.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/test-e2e/panels/ranges.test.ts b/test-e2e/panels/ranges.test.ts index b77798fde..7d31e3013 100644 --- a/test-e2e/panels/ranges.test.ts +++ b/test-e2e/panels/ranges.test.ts @@ -127,15 +127,17 @@ test('Automatic ranges detection should work', async ({ page }) => { { s: '2.15', r: '0.07' }, { s: '2.31 - 2.34', r: '1.01' }, ]; + + const testPromises: Array> = []; for (const [i, { s, r }] of rangesData.entries()) { const range = ranges.nth(i); - // eslint-disable-next-line no-await-in-loop - await expect(range).toBeVisible(); - // eslint-disable-next-line no-await-in-loop - await expect(range).toContainText(s); - // eslint-disable-next-line no-await-in-loop - await expect(range).toContainText(r); + testPromises.push( + expect(range).toBeVisible(), + expect(range).toContainText(s), + expect(range).toContainText(r), + ); } + await Promise.all(testPromises); }); test('Multiplicity should be visible', async ({ page }) => {