From 4255b126910e816c7e93f0b48db0a47f47d3d8fe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 16:03:43 +0000 Subject: [PATCH 01/17] Bump axios from 1.6.7 to 1.7.4 in /ui Bumps [axios](https://github.com/axios/axios) from 1.6.7 to 1.7.4. - [Release notes](https://github.com/axios/axios/releases) - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md) - [Commits](https://github.com/axios/axios/compare/v1.6.7...v1.7.4) --- updated-dependencies: - dependency-name: axios dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- ui/package-lock.json | 10 +++++----- ui/package.json | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ui/package-lock.json b/ui/package-lock.json index d94a5a5..efcf7f9 100644 --- a/ui/package-lock.json +++ b/ui/package-lock.json @@ -12,7 +12,7 @@ "@tanstack/react-query-devtools": "^5.28.0", "@tanstack/react-table": "^8.15.3", "@uidotdev/usehooks": "^2.4.1", - "axios": "^1.6.7", + "axios": "^1.7.4", "bootstrap": "^5.3.3", "bootstrap-icons": "^1.11.3", "chart.js": "^4.4.2", @@ -1837,11 +1837,11 @@ } }, "node_modules/axios": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", - "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz", + "integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==", "dependencies": { - "follow-redirects": "^1.15.4", + "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } diff --git a/ui/package.json b/ui/package.json index 433b25b..c306b93 100644 --- a/ui/package.json +++ b/ui/package.json @@ -16,7 +16,7 @@ "@tanstack/react-query-devtools": "^5.28.0", "@tanstack/react-table": "^8.15.3", "@uidotdev/usehooks": "^2.4.1", - "axios": "^1.6.7", + "axios": "^1.7.4", "bootstrap": "^5.3.3", "bootstrap-icons": "^1.11.3", "chart.js": "^4.4.2", From a7873da7ba6e052b2db112f1bb859627b572660d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 16:03:45 +0000 Subject: [PATCH 02/17] Bump rollup from 4.13.0 to 4.24.0 in /ui Bumps [rollup](https://github.com/rollup/rollup) from 4.13.0 to 4.24.0. - [Release notes](https://github.com/rollup/rollup/releases) - [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md) - [Commits](https://github.com/rollup/rollup/compare/v4.13.0...v4.24.0) --- updated-dependencies: - dependency-name: rollup dependency-type: indirect ... Signed-off-by: dependabot[bot] --- ui/package-lock.json | 160 +++++++++++++++++++++++++++---------------- 1 file changed, 101 insertions(+), 59 deletions(-) diff --git a/ui/package-lock.json b/ui/package-lock.json index d94a5a5..b7811e4 100644 --- a/ui/package-lock.json +++ b/ui/package-lock.json @@ -1099,9 +1099,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.0.tgz", - "integrity": "sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", + "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==", "cpu": [ "arm" ], @@ -1112,9 +1112,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.0.tgz", - "integrity": "sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz", + "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==", "cpu": [ "arm64" ], @@ -1125,9 +1125,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.0.tgz", - "integrity": "sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz", + "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==", "cpu": [ "arm64" ], @@ -1138,9 +1138,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.0.tgz", - "integrity": "sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz", + "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==", "cpu": [ "x64" ], @@ -1151,9 +1151,22 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.0.tgz", - "integrity": "sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz", + "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz", + "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==", "cpu": [ "arm" ], @@ -1164,9 +1177,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.0.tgz", - "integrity": "sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz", + "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==", "cpu": [ "arm64" ], @@ -1177,9 +1190,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.0.tgz", - "integrity": "sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz", + "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==", "cpu": [ "arm64" ], @@ -1189,10 +1202,23 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz", + "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.0.tgz", - "integrity": "sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz", + "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==", "cpu": [ "riscv64" ], @@ -1202,10 +1228,23 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz", + "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.0.tgz", - "integrity": "sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", + "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", "cpu": [ "x64" ], @@ -1216,9 +1255,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.0.tgz", - "integrity": "sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz", + "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==", "cpu": [ "x64" ], @@ -1229,9 +1268,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.0.tgz", - "integrity": "sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz", + "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==", "cpu": [ "arm64" ], @@ -1242,9 +1281,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.0.tgz", - "integrity": "sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz", + "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==", "cpu": [ "ia32" ], @@ -1255,9 +1294,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.0.tgz", - "integrity": "sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz", + "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==", "cpu": [ "x64" ], @@ -1405,9 +1444,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==" }, "node_modules/@types/estree-jsx": { "version": "1.0.5", @@ -4564,12 +4603,12 @@ } }, "node_modules/rollup": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.0.tgz", - "integrity": "sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz", + "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==", "dev": true, "dependencies": { - "@types/estree": "1.0.5" + "@types/estree": "1.0.6" }, "bin": { "rollup": "dist/bin/rollup" @@ -4579,19 +4618,22 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.13.0", - "@rollup/rollup-android-arm64": "4.13.0", - "@rollup/rollup-darwin-arm64": "4.13.0", - "@rollup/rollup-darwin-x64": "4.13.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.13.0", - "@rollup/rollup-linux-arm64-gnu": "4.13.0", - "@rollup/rollup-linux-arm64-musl": "4.13.0", - "@rollup/rollup-linux-riscv64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-musl": "4.13.0", - "@rollup/rollup-win32-arm64-msvc": "4.13.0", - "@rollup/rollup-win32-ia32-msvc": "4.13.0", - "@rollup/rollup-win32-x64-msvc": "4.13.0", + "@rollup/rollup-android-arm-eabi": "4.24.0", + "@rollup/rollup-android-arm64": "4.24.0", + "@rollup/rollup-darwin-arm64": "4.24.0", + "@rollup/rollup-darwin-x64": "4.24.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.24.0", + "@rollup/rollup-linux-arm-musleabihf": "4.24.0", + "@rollup/rollup-linux-arm64-gnu": "4.24.0", + "@rollup/rollup-linux-arm64-musl": "4.24.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0", + "@rollup/rollup-linux-riscv64-gnu": "4.24.0", + "@rollup/rollup-linux-s390x-gnu": "4.24.0", + "@rollup/rollup-linux-x64-gnu": "4.24.0", + "@rollup/rollup-linux-x64-musl": "4.24.0", + "@rollup/rollup-win32-arm64-msvc": "4.24.0", + "@rollup/rollup-win32-ia32-msvc": "4.24.0", + "@rollup/rollup-win32-x64-msvc": "4.24.0", "fsevents": "~2.3.2" } }, From 80e18f0403e921b98a35cfc8a1470ef9fd9851ea Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 16:03:51 +0000 Subject: [PATCH 03/17] Bump vite from 5.1.7 to 5.4.9 in /ui Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.1.7 to 5.4.9. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v5.4.9/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v5.4.9/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- ui/package-lock.json | 390 ++++++++++++++++++++++++------------------- ui/package.json | 2 +- 2 files changed, 219 insertions(+), 173 deletions(-) diff --git a/ui/package-lock.json b/ui/package-lock.json index d94a5a5..def67ea 100644 --- a/ui/package-lock.json +++ b/ui/package-lock.json @@ -43,7 +43,7 @@ "eslint-plugin-react-refresh": "^0.4.5", "sass": "^1.72.0", "typescript": "^5.2.2", - "vite": "^5.1.7" + "vite": "^5.4.9" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -425,9 +425,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", - "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", "cpu": [ "ppc64" ], @@ -441,9 +441,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", - "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", "cpu": [ "arm" ], @@ -457,9 +457,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", - "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", "cpu": [ "arm64" ], @@ -473,9 +473,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", - "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", "cpu": [ "x64" ], @@ -489,9 +489,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", - "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", "cpu": [ "arm64" ], @@ -505,9 +505,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", - "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", "cpu": [ "x64" ], @@ -521,9 +521,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", - "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", "cpu": [ "arm64" ], @@ -537,9 +537,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", - "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", "cpu": [ "x64" ], @@ -553,9 +553,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", - "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", "cpu": [ "arm" ], @@ -569,9 +569,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", - "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", "cpu": [ "arm64" ], @@ -585,9 +585,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", - "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", "cpu": [ "ia32" ], @@ -601,9 +601,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", - "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", "cpu": [ "loong64" ], @@ -617,9 +617,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", - "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", "cpu": [ "mips64el" ], @@ -633,9 +633,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", - "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", "cpu": [ "ppc64" ], @@ -649,9 +649,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", - "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", "cpu": [ "riscv64" ], @@ -665,9 +665,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", - "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", "cpu": [ "s390x" ], @@ -681,9 +681,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", - "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", "cpu": [ "x64" ], @@ -697,9 +697,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", - "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", "cpu": [ "x64" ], @@ -713,9 +713,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", - "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", "cpu": [ "x64" ], @@ -729,9 +729,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", - "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", "cpu": [ "x64" ], @@ -745,9 +745,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", - "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", "cpu": [ "arm64" ], @@ -761,9 +761,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", - "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", "cpu": [ "ia32" ], @@ -777,9 +777,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", - "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", "cpu": [ "x64" ], @@ -1099,9 +1099,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.0.tgz", - "integrity": "sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", + "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==", "cpu": [ "arm" ], @@ -1112,9 +1112,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.0.tgz", - "integrity": "sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz", + "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==", "cpu": [ "arm64" ], @@ -1125,9 +1125,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.0.tgz", - "integrity": "sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz", + "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==", "cpu": [ "arm64" ], @@ -1138,9 +1138,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.0.tgz", - "integrity": "sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz", + "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==", "cpu": [ "x64" ], @@ -1151,9 +1151,22 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.0.tgz", - "integrity": "sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz", + "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz", + "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==", "cpu": [ "arm" ], @@ -1164,9 +1177,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.0.tgz", - "integrity": "sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz", + "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==", "cpu": [ "arm64" ], @@ -1177,9 +1190,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.0.tgz", - "integrity": "sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz", + "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==", "cpu": [ "arm64" ], @@ -1189,10 +1202,23 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz", + "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.0.tgz", - "integrity": "sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz", + "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==", "cpu": [ "riscv64" ], @@ -1202,10 +1228,23 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz", + "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.0.tgz", - "integrity": "sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", + "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", "cpu": [ "x64" ], @@ -1216,9 +1255,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.0.tgz", - "integrity": "sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz", + "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==", "cpu": [ "x64" ], @@ -1229,9 +1268,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.0.tgz", - "integrity": "sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz", + "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==", "cpu": [ "arm64" ], @@ -1242,9 +1281,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.0.tgz", - "integrity": "sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz", + "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==", "cpu": [ "ia32" ], @@ -1255,9 +1294,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.0.tgz", - "integrity": "sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz", + "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==", "cpu": [ "x64" ], @@ -1405,9 +1444,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==" }, "node_modules/@types/estree-jsx": { "version": "1.0.5", @@ -2272,9 +2311,9 @@ "dev": true }, "node_modules/esbuild": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", - "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "dev": true, "hasInstallScript": true, "bin": { @@ -2284,29 +2323,29 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.19.12", - "@esbuild/android-arm": "0.19.12", - "@esbuild/android-arm64": "0.19.12", - "@esbuild/android-x64": "0.19.12", - "@esbuild/darwin-arm64": "0.19.12", - "@esbuild/darwin-x64": "0.19.12", - "@esbuild/freebsd-arm64": "0.19.12", - "@esbuild/freebsd-x64": "0.19.12", - "@esbuild/linux-arm": "0.19.12", - "@esbuild/linux-arm64": "0.19.12", - "@esbuild/linux-ia32": "0.19.12", - "@esbuild/linux-loong64": "0.19.12", - "@esbuild/linux-mips64el": "0.19.12", - "@esbuild/linux-ppc64": "0.19.12", - "@esbuild/linux-riscv64": "0.19.12", - "@esbuild/linux-s390x": "0.19.12", - "@esbuild/linux-x64": "0.19.12", - "@esbuild/netbsd-x64": "0.19.12", - "@esbuild/openbsd-x64": "0.19.12", - "@esbuild/sunos-x64": "0.19.12", - "@esbuild/win32-arm64": "0.19.12", - "@esbuild/win32-ia32": "0.19.12", - "@esbuild/win32-x64": "0.19.12" + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" } }, "node_modules/escalade": { @@ -4146,9 +4185,9 @@ } }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", "dev": true }, "node_modules/picomatch": { @@ -4164,9 +4203,9 @@ } }, "node_modules/postcss": { - "version": "8.4.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", - "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", "dev": true, "funding": [ { @@ -4184,8 +4223,8 @@ ], "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" @@ -4564,12 +4603,12 @@ } }, "node_modules/rollup": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.0.tgz", - "integrity": "sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz", + "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==", "dev": true, "dependencies": { - "@types/estree": "1.0.5" + "@types/estree": "1.0.6" }, "bin": { "rollup": "dist/bin/rollup" @@ -4579,19 +4618,22 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.13.0", - "@rollup/rollup-android-arm64": "4.13.0", - "@rollup/rollup-darwin-arm64": "4.13.0", - "@rollup/rollup-darwin-x64": "4.13.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.13.0", - "@rollup/rollup-linux-arm64-gnu": "4.13.0", - "@rollup/rollup-linux-arm64-musl": "4.13.0", - "@rollup/rollup-linux-riscv64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-musl": "4.13.0", - "@rollup/rollup-win32-arm64-msvc": "4.13.0", - "@rollup/rollup-win32-ia32-msvc": "4.13.0", - "@rollup/rollup-win32-x64-msvc": "4.13.0", + "@rollup/rollup-android-arm-eabi": "4.24.0", + "@rollup/rollup-android-arm64": "4.24.0", + "@rollup/rollup-darwin-arm64": "4.24.0", + "@rollup/rollup-darwin-x64": "4.24.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.24.0", + "@rollup/rollup-linux-arm-musleabihf": "4.24.0", + "@rollup/rollup-linux-arm64-gnu": "4.24.0", + "@rollup/rollup-linux-arm64-musl": "4.24.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0", + "@rollup/rollup-linux-riscv64-gnu": "4.24.0", + "@rollup/rollup-linux-s390x-gnu": "4.24.0", + "@rollup/rollup-linux-x64-gnu": "4.24.0", + "@rollup/rollup-linux-x64-musl": "4.24.0", + "@rollup/rollup-win32-arm64-msvc": "4.24.0", + "@rollup/rollup-win32-ia32-msvc": "4.24.0", + "@rollup/rollup-win32-x64-msvc": "4.24.0", "fsevents": "~2.3.2" } }, @@ -4712,9 +4754,9 @@ } }, "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -5079,14 +5121,14 @@ } }, "node_modules/vite": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.7.tgz", - "integrity": "sha512-sgnEEFTZYMui/sTlH1/XEnVNHMujOahPLGMxn1+5sIT45Xjng1Ec1K78jRP15dSmVgg5WBin9yO81j3o9OxofA==", + "version": "5.4.9", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.9.tgz", + "integrity": "sha512-20OVpJHh0PAM0oSOELa5GaZNWeDjcAvQjGXy2Uyr+Tp+/D2/Hdz6NLgpJLsarPTA2QJ6v8mX2P1ZfbsSKvdMkg==", "dev": true, "dependencies": { - "esbuild": "^0.19.3", - "postcss": "^8.4.35", - "rollup": "^4.2.0" + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" }, "bin": { "vite": "bin/vite.js" @@ -5105,6 +5147,7 @@ "less": "*", "lightningcss": "^1.21.0", "sass": "*", + "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.4.0" @@ -5122,6 +5165,9 @@ "sass": { "optional": true }, + "sass-embedded": { + "optional": true + }, "stylus": { "optional": true }, diff --git a/ui/package.json b/ui/package.json index 433b25b..d9e4c45 100644 --- a/ui/package.json +++ b/ui/package.json @@ -47,6 +47,6 @@ "eslint-plugin-react-refresh": "^0.4.5", "sass": "^1.72.0", "typescript": "^5.2.2", - "vite": "^5.1.7" + "vite": "^5.4.9" } } From d4851512802c76bb4915d6324b512a11f16f29cd Mon Sep 17 00:00:00 2001 From: Khoroshevskyi Date: Tue, 15 Oct 2024 12:40:56 -0400 Subject: [PATCH 04/17] updated to new bivec search --- bedhost/_version.py | 2 +- bedhost/data_models.py | 1 - bedhost/routers/base_api.py | 1 - deployment/config/api-dev.bedbase.org.yaml | 3 ++- deployment/config/api.bedbase.org.yaml | 3 ++- requirements/requirements-all.txt | 4 ++-- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/bedhost/_version.py b/bedhost/_version.py index 906d362..9ccb974 100644 --- a/bedhost/_version.py +++ b/bedhost/_version.py @@ -1 +1 @@ -__version__ = "0.6.0" +__version__ = "0.7.0dev1" diff --git a/bedhost/data_models.py b/bedhost/data_models.py index 7d55c4c..1fe9fe3 100644 --- a/bedhost/data_models.py +++ b/bedhost/data_models.py @@ -52,7 +52,6 @@ class ComponentVersions(BaseModel): class EmbeddingModels(BaseModel): - vec2vec: str region2vec: str text2vec: str diff --git a/bedhost/routers/base_api.py b/bedhost/routers/base_api.py index 0f3af39..30596b7 100644 --- a/bedhost/routers/base_api.py +++ b/bedhost/routers/base_api.py @@ -71,7 +71,6 @@ async def service_info(): version=bedhost_version, component_versions=all_versions, embedding_models=EmbeddingModels( - vec2vec=bbagent.config.config.path.vec2vec, region2vec=bbagent.config.config.path.region2vec, text2vec=bbagent.config.config.path.text2vec, ), diff --git a/deployment/config/api-dev.bedbase.org.yaml b/deployment/config/api-dev.bedbase.org.yaml index bd19805..815641a 100644 --- a/deployment/config/api-dev.bedbase.org.yaml +++ b/deployment/config/api-dev.bedbase.org.yaml @@ -13,7 +13,8 @@ qdrant: host: $QDRANT_HOST port: 6333 api_key: $QDRANT_API_KEY - collection: bedbase2 + file_collection: bedbase2 + text_collection: bed_text server: host: 0.0.0.0 port: 8000 diff --git a/deployment/config/api.bedbase.org.yaml b/deployment/config/api.bedbase.org.yaml index bd19805..815641a 100644 --- a/deployment/config/api.bedbase.org.yaml +++ b/deployment/config/api.bedbase.org.yaml @@ -13,7 +13,8 @@ qdrant: host: $QDRANT_HOST port: 6333 api_key: $QDRANT_API_KEY - collection: bedbase2 + file_collection: bedbase2 + text_collection: bed_text server: host: 0.0.0.0 port: 8000 diff --git a/requirements/requirements-all.txt b/requirements/requirements-all.txt index 762f8d4..b0d2794 100644 --- a/requirements/requirements-all.txt +++ b/requirements/requirements-all.txt @@ -1,5 +1,5 @@ -#bbconf @ git+https://github.com/databio/bbconf.git@dev#egg=bbconf -bbconf>=0.7.1 +bbconf @ git+https://github.com/databio/bbconf.git@dev#egg=bbconf +# bbconf>=0.8.0 fastapi>=0.103.0 logmuse>=0.2.7 markdown From a7ea8d5ab51a44acdae843ef39eccba42be087e0 Mon Sep 17 00:00:00 2001 From: Khoroshevskyi Date: Tue, 15 Oct 2024 14:46:30 -0400 Subject: [PATCH 05/17] Fixed offset --- ui/src/components/search/text2bed.tsx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ui/src/components/search/text2bed.tsx b/ui/src/components/search/text2bed.tsx index 6f8dc55..5a01d7c 100644 --- a/ui/src/components/search/text2bed.tsx +++ b/ui/src/components/search/text2bed.tsx @@ -50,7 +50,13 @@ export const Text2Bed = () => { setLimit={setLimit} value={searchTerm} onChange={setSearchTerm} - onSearch={() => onSearch()} + onSearch={() => { + + setOffset(0); + setTimeout(() => { + onSearch(); + }, 100); + }} /> From 95f29d5df10c14eb5671638ddc8b9e6d8aa8cf3b Mon Sep 17 00:00:00 2001 From: Nathan LeRoy Date: Thu, 17 Oct 2024 11:08:35 -0400 Subject: [PATCH 06/17] switch b2b table to client-side pagination --- .../bed2bed/b2b-search-results-table.tsx | 253 ++++++++++++++++++ .../search/{ => bed2bed}/bed2bed.tsx | 25 +- .../t2b-search-results-table.tsx} | 8 +- .../search/{ => text2bed}/text2bed.tsx | 17 +- ui/src/pages/search.tsx | 4 +- ui/src/queries/useBed2BedSearch.ts | 14 +- 6 files changed, 281 insertions(+), 40 deletions(-) create mode 100644 ui/src/components/search/bed2bed/b2b-search-results-table.tsx rename ui/src/components/search/{ => bed2bed}/bed2bed.tsx (69%) rename ui/src/components/search/{search-results-table.tsx => text2bed/t2b-search-results-table.tsx} (95%) rename ui/src/components/search/{ => text2bed}/text2bed.tsx (81%) diff --git a/ui/src/components/search/bed2bed/b2b-search-results-table.tsx b/ui/src/components/search/bed2bed/b2b-search-results-table.tsx new file mode 100644 index 0000000..69fbf30 --- /dev/null +++ b/ui/src/components/search/bed2bed/b2b-search-results-table.tsx @@ -0,0 +1,253 @@ +import { + PaginationState, + SortingState, + createColumnHelper, + flexRender, + useReactTable, + getCoreRowModel, + getSortedRowModel, + getFacetedMinMaxValues, + getFacetedRowModel, + getFacetedUniqueValues, + getFilteredRowModel, + getPaginationRowModel, +} from '@tanstack/react-table'; +import { useState } from 'react'; +import { components } from '../../../../bedbase-types'; +import { OverlayTrigger, ProgressBar, Tooltip } from 'react-bootstrap'; +import { roundToTwoDecimals } from '../../../utils'; +import YAML from 'js-yaml'; + +type Bed = components['schemas']['QdrantSearchResult']; + +type Props = { + beds: Bed[]; +}; + +const columnHelper = createColumnHelper(); + +export const Bed2BedSearchResultsTable = (props: Props) => { + const { beds } = props; + + const [sorting, setSorting] = useState([]); + const [pagination, setPagination] = useState({ + pageIndex: 0, + pageSize: 20, + }); + const [globalFilter, setGlobalFilter] = useState(''); + + const columns = [ + columnHelper.accessor('metadata.name', { + cell: (info) => {info.getValue()}, + footer: (info) => info.column.id, + header: 'Name', + id: 'name', + }), + columnHelper.accessor('metadata.genome_alias', { + cell: (info) => {info.getValue()}, + footer: (info) => info.column.id, + header: 'Genome', + id: 'genome', + }), + columnHelper.accessor('metadata.annotation.tissue', { + cell: (info) => {info.getValue() || 'N/A'}, + footer: (info) => info.column.id, + header: 'Tissue', + id: 'tissue', + }), + columnHelper.accessor('metadata.annotation.cell_line', { + cell: (info) => {info.getValue() || 'N/A'}, + footer: (info) => info.column.id, + header: 'Cell line', + id: 'cell-line', + }), + columnHelper.accessor('metadata.annotation.cell_type', { + cell: (info) => {info.getValue() || 'N/A'}, + footer: (info) => info.column.id, + header: 'Cell type', + id: 'cell-type', + }), + columnHelper.accessor('metadata.description', { + cell: (info) => {info.getValue()}, + footer: (info) => info.column.id, + header: 'Description', + id: 'description', + }), + columnHelper.accessor('metadata', { + cell: (info) => ( + +
+                {YAML.dump(info.getValue(), {
+                  indent: 2,
+                  noRefs: true,
+                }) || 'No description'}
+              
+ + } + > + +
+ ), + footer: (info) => info.column.id, + header: 'Info', + id: 'info', + }), + columnHelper.accessor('score', { + cell: (info) => ( + + + + ), + footer: (info) => info.column.id, + header: 'Score', + id: 'score', + }), + columnHelper.accessor('metadata.annotation.cell_type', { + cell: (info) => {info.getValue() || 'N/A'}, + footer: (info) => info.column.id, + header: 'Actions', + id: 'actions', + }), + ]; + + const table = useReactTable({ + data: beds, + columns, + state: { + sorting, + pagination, + globalFilter, + }, + onSortingChange: setSorting, + onPaginationChange: setPagination, + getCoreRowModel: getCoreRowModel(), + getSortedRowModel: getSortedRowModel(), + getPaginationRowModel: getPaginationRowModel(), + getFacetedRowModel: getFacetedRowModel(), + getFacetedUniqueValues: getFacetedUniqueValues(), + getFacetedMinMaxValues: getFacetedMinMaxValues(), + getFilteredRowModel: getFilteredRowModel(), + }); + + return ( +
+
+ setGlobalFilter(e.target.value)} + /> +
+ + + {table.getHeaderGroups().map((headerGroup) => ( + + {headerGroup.headers.map((header) => ( + + ))} + + ))} + + + {table.getRowModel().rows.map((row) => ( + + {row.getVisibleCells().map((cell) => ( + + ))} + + ))} + +
+ {header.isPlaceholder ? null : ( +
+ {flexRender(header.column.columnDef.header, header.getContext())} + {{ + asc: ' 🔼', + desc: ' 🔽', + }[header.column.getIsSorted() as string] ?? null} +
+ )} +
{flexRender(cell.column.columnDef.cell, cell.getContext())}
+
+
+
+ Showing + + {table.getState().pagination.pageSize * table.getState().pagination.pageIndex + 1} to{' '} + {Math.min( + table.getState().pagination.pageSize * (table.getState().pagination.pageIndex + 1), + table.getRowCount(), + )} + + of {table.getRowCount().toLocaleString()} files +
+
+
+ + + + +
+ +
+
+
+ ); +}; diff --git a/ui/src/components/search/bed2bed.tsx b/ui/src/components/search/bed2bed/bed2bed.tsx similarity index 69% rename from ui/src/components/search/bed2bed.tsx rename to ui/src/components/search/bed2bed/bed2bed.tsx index 2d81963..120f10c 100644 --- a/ui/src/components/search/bed2bed.tsx +++ b/ui/src/components/search/bed2bed/bed2bed.tsx @@ -1,15 +1,11 @@ import { useRef, useCallback, Fragment, useEffect, useState } from 'react'; import { useDropzone } from 'react-dropzone'; -import { SearchResultsTable } from './search-results-table'; -import { SearchingJumper } from './searching-jumper'; -import { useBed2BedSearch } from '../../queries/useBed2BedSearch'; -import { PaginationBar } from './pagination-bar'; -import { TableToolbar } from './table-toolbar'; +import { SearchingJumper } from '../searching-jumper'; +import { useBed2BedSearch } from '../../../queries/useBed2BedSearch'; +import { Bed2BedSearchResultsTable } from './b2b-search-results-table'; export const Bed2Bed = () => { const [file, setFile] = useState(null); - const [limit, setLimit] = useState(10); - const [offset, setOffset] = useState(0); const inputRef = useRef(null); const onDrop = useCallback((acceptedFiles: File[]) => { @@ -24,8 +20,6 @@ export const Bed2Bed = () => { refetch: onSearch, } = useBed2BedSearch({ q: file, - limit: limit, - offset: offset, autoRun: false, }); @@ -35,7 +29,7 @@ export const Bed2Bed = () => { onSearch(); }, 50); } - }, [file, offset, limit, onSearch]); + }, [file, onSearch]); return (
@@ -80,16 +74,7 @@ export const Bed2Bed = () => { {isSearching ? ( ) : ( -
- {results ? ( -
- - {/* @ts-expect-error: I know this works I can't figure out why the error */} - {' '} - -
- ) : null} -
+
{results ? : null}
)}
diff --git a/ui/src/components/search/search-results-table.tsx b/ui/src/components/search/text2bed/t2b-search-results-table.tsx similarity index 95% rename from ui/src/components/search/search-results-table.tsx rename to ui/src/components/search/text2bed/t2b-search-results-table.tsx index 0555fc8..0e5576c 100644 --- a/ui/src/components/search/search-results-table.tsx +++ b/ui/src/components/search/text2bed/t2b-search-results-table.tsx @@ -1,7 +1,7 @@ import { ProgressBar } from 'react-bootstrap'; -import { components } from '../../../bedbase-types'; -import { roundToTwoDecimals } from '../../utils'; -import { useBedCart } from '../../contexts/bedcart-context'; +import { components } from '../../../../bedbase-types'; +import { roundToTwoDecimals } from '../../../utils'; +import { useBedCart } from '../../../contexts/bedcart-context'; import { OverlayTrigger, Tooltip } from 'react-bootstrap'; import toast from 'react-hot-toast'; import YAML from 'js-yaml'; @@ -12,7 +12,7 @@ type Props = { results: SearchResponse; }; -export const SearchResultsTable = (props: Props) => { +export const Text2BedSearchResultsTable = (props: Props) => { const { results } = props; const { cart, addBedToCart, removeBedFromCart } = useBedCart(); return ( diff --git a/ui/src/components/search/text2bed.tsx b/ui/src/components/search/text2bed/text2bed.tsx similarity index 81% rename from ui/src/components/search/text2bed.tsx rename to ui/src/components/search/text2bed/text2bed.tsx index 5a01d7c..1c27b70 100644 --- a/ui/src/components/search/text2bed.tsx +++ b/ui/src/components/search/text2bed/text2bed.tsx @@ -1,14 +1,14 @@ /* eslint-disable react-hooks/exhaustive-deps */ import { Col, Row } from 'react-bootstrap'; -import { SearchBar } from './search-bar'; -import { SearchResultsTable } from './search-results-table'; -import { SearchingJumper } from './searching-jumper'; +import { SearchBar } from '../search-bar'; +import { Text2BedSearchResultsTable } from './t2b-search-results-table'; +import { SearchingJumper } from '../searching-jumper'; import { useSearchParams } from 'react-router-dom'; import { useEffect, useState } from 'react'; -import { useText2BedSearch } from '../../queries/useText2BedSearch'; -import { TableToolbar } from './table-toolbar'; -import { PaginationBar } from './pagination-bar'; -import { SearchError } from './search-error'; +import { useText2BedSearch } from '../../../queries/useText2BedSearch'; +import { TableToolbar } from '../table-toolbar'; +import { PaginationBar } from '../pagination-bar'; +import { SearchError } from '../search-error'; import { AxiosError } from 'axios'; export const Text2Bed = () => { @@ -51,7 +51,6 @@ export const Text2Bed = () => { value={searchTerm} onChange={setSearchTerm} onSearch={() => { - setOffset(0); setTimeout(() => { onSearch(); @@ -68,7 +67,7 @@ export const Text2Bed = () => { {results ? (
- {' '} + {' '}
) : ( diff --git a/ui/src/pages/search.tsx b/ui/src/pages/search.tsx index 92433ba..083fcfb 100644 --- a/ui/src/pages/search.tsx +++ b/ui/src/pages/search.tsx @@ -4,8 +4,8 @@ import { useState } from 'react'; import { useSearchParams } from 'react-router-dom'; import { SearchSelector } from '../components/search/search-selector'; -import { Text2Bed } from '../components/search/text2bed'; -import { Bed2Bed } from '../components/search/bed2bed'; +import { Text2Bed } from '../components/search/text2bed/text2bed'; +import { Bed2Bed } from '../components/search/bed2bed/bed2bed'; import { Text2BedSet } from '../components/search/text2bedset'; type SearchView = 't2b' | 'b2b' | 't2bs'; diff --git a/ui/src/queries/useBed2BedSearch.ts b/ui/src/queries/useBed2BedSearch.ts index 8517ddd..6154db7 100644 --- a/ui/src/queries/useBed2BedSearch.ts +++ b/ui/src/queries/useBed2BedSearch.ts @@ -5,21 +5,25 @@ import { components } from '../../bedbase-types'; type SearchResponse = components['schemas']['BedListSearchResult']; type SearchQuery = { q: File | null; - limit?: number; - offset?: number; autoRun?: boolean; }; export const useBed2BedSearch = (query: SearchQuery) => { const { api } = useBedbaseApi(); - const { q, limit, offset, autoRun } = query; + const { q, autoRun } = query; + let enabled = false; if (autoRun !== undefined && autoRun === true && !!q) { enabled = true; } + // set hardcoded limit + // because we want to do client-side pagination. + // see: https://github.com/databio/bedhost/issues/146 + const limit = 100; + return useQuery({ - queryKey: ['search', q, limit, offset], + queryKey: ['search', q], queryFn: async () => { if (!q) { return { @@ -30,7 +34,7 @@ export const useBed2BedSearch = (query: SearchQuery) => { const formData = new FormData(); formData.append('file', q); - const { data } = await api.post(`/bed/search/bed?limit=${limit}&offset=${offset}`, formData, { + const { data } = await api.post(`/bed/search/bed?limit=${limit}`, formData, { headers: { 'Content-Type': 'multipart/form-data', }, From d75ddb08d64fb82bb7b14ace0bd1e64c0cd8e087 Mon Sep 17 00:00:00 2001 From: Nathan LeRoy Date: Thu, 17 Oct 2024 11:15:23 -0400 Subject: [PATCH 07/17] link up the actions --- .../bed2bed/b2b-search-results-table.tsx | 54 +++++++++++++++++-- 1 file changed, 50 insertions(+), 4 deletions(-) diff --git a/ui/src/components/search/bed2bed/b2b-search-results-table.tsx b/ui/src/components/search/bed2bed/b2b-search-results-table.tsx index 69fbf30..844a427 100644 --- a/ui/src/components/search/bed2bed/b2b-search-results-table.tsx +++ b/ui/src/components/search/bed2bed/b2b-search-results-table.tsx @@ -17,6 +17,8 @@ import { components } from '../../../../bedbase-types'; import { OverlayTrigger, ProgressBar, Tooltip } from 'react-bootstrap'; import { roundToTwoDecimals } from '../../../utils'; import YAML from 'js-yaml'; +import { useBedCart } from '../../../contexts/bedcart-context'; +import toast from 'react-hot-toast'; type Bed = components['schemas']['QdrantSearchResult']; @@ -28,6 +30,7 @@ const columnHelper = createColumnHelper(); export const Bed2BedSearchResultsTable = (props: Props) => { const { beds } = props; + const { cart, addBedToCart, removeBedFromCart } = useBedCart(); const [sorting, setSorting] = useState([]); const [pagination, setPagination] = useState({ @@ -37,8 +40,16 @@ export const Bed2BedSearchResultsTable = (props: Props) => { const [globalFilter, setGlobalFilter] = useState(''); const columns = [ - columnHelper.accessor('metadata.name', { - cell: (info) => {info.getValue()}, + columnHelper.accessor('metadata', { + cell: (info) => { + const bedId = info.getValue()?.id; + const bedName = info.getValue()?.name; + return ( + + {bedName} + + ); + }, footer: (info) => info.column.id, header: 'Name', id: 'name', @@ -110,8 +121,43 @@ export const Bed2BedSearchResultsTable = (props: Props) => { header: 'Score', id: 'score', }), - columnHelper.accessor('metadata.annotation.cell_type', { - cell: (info) => {info.getValue() || 'N/A'}, + columnHelper.accessor('metadata.id', { + cell: (info) => { + const bedId = info.getValue(); + return ( +
+ {cart.includes(bedId || '') ? ( + + ) : ( + + )} +
+ ); + }, footer: (info) => info.column.id, header: 'Actions', id: 'actions', From 4c42b10da418bfa52b365458b93c430aa1804b35 Mon Sep 17 00:00:00 2001 From: Nathan LeRoy Date: Thu, 17 Oct 2024 11:30:09 -0400 Subject: [PATCH 08/17] update model in config --- deployment/config/api-dev.bedbase.org.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/deployment/config/api-dev.bedbase.org.yaml b/deployment/config/api-dev.bedbase.org.yaml index 815641a..9193bd4 100644 --- a/deployment/config/api-dev.bedbase.org.yaml +++ b/deployment/config/api-dev.bedbase.org.yaml @@ -1,8 +1,8 @@ path: remote_url_base: http://data.bedbase.org/ - text2vec: "sentence-transformers/all-MiniLM-L6-v2" - region2vec: databio/r2v-pretrained-for-search - vec2vec: "databio/v2v-sentencetransformers-encode" + text2vec: 'sentence-transformers/all-MiniLM-L6-v2' + region2vec: databio/r2v-encode-hg38 + vec2vec: 'databio/v2v-sentencetransformers-encode' database: host: $POSTGRES_HOST port: 5432 @@ -29,14 +29,14 @@ phc: tag: default access_methods: http: - type: "https" + type: 'https' description: HTTP compatible path prefix: https://data2.bedbase.org/ s3: - type: "s3" + type: 's3' description: S3 compatible path prefix: s3://data2.bedbase.org/ local: - type: "https" + type: 'https' description: How to serve local files. prefix: /static/ From e6adcbdbff45a58c7de42d975f7689bbd9e474bd Mon Sep 17 00:00:00 2001 From: Khoroshevskyi Date: Thu, 17 Oct 2024 22:24:18 -0400 Subject: [PATCH 09/17] small tweaks for ui --- bedhost/routers/bed_api.py | 1 + ui/bedbase-types.d.ts | 4 +--- .../bed-splash-components/cards/no-regions-card.tsx | 2 +- ui/src/pages/home.tsx | 2 +- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/bedhost/routers/bed_api.py b/bedhost/routers/bed_api.py index a5f8769..e21c3b0 100644 --- a/bedhost/routers/bed_api.py +++ b/bedhost/routers/bed_api.py @@ -46,6 +46,7 @@ "/example", summary="Get example BED record metadata", response_model=BedMetadataAll, + response_model_by_alias=False, ) async def get_example_bed_record(): """ diff --git a/ui/bedbase-types.d.ts b/ui/bedbase-types.d.ts index 55669ee..be646a0 100644 --- a/ui/bedbase-types.d.ts +++ b/ui/bedbase-types.d.ts @@ -1015,7 +1015,7 @@ export interface components { /** BedStatsModel */ BedStatsModel: { /** Regions No */ - regions_no?: number | null; + number_of_regions?: number | null; /** Gc Content */ gc_content?: number | null; /** Median Tss Dist */ @@ -1103,8 +1103,6 @@ export interface components { }; /** EmbeddingModels */ EmbeddingModels: { - /** Vec2Vec */ - vec2vec: string; /** Region2Vec */ region2vec: string; /** Text2Vec */ diff --git a/ui/src/components/bed-splash-components/cards/no-regions-card.tsx b/ui/src/components/bed-splash-components/cards/no-regions-card.tsx index c9a43b0..998e130 100644 --- a/ui/src/components/bed-splash-components/cards/no-regions-card.tsx +++ b/ui/src/components/bed-splash-components/cards/no-regions-card.tsx @@ -12,7 +12,7 @@ export const NoRegionsCard = (props: Props) => { return ( ); diff --git a/ui/src/pages/home.tsx b/ui/src/pages/home.tsx index f483e4b..cc9b943 100644 --- a/ui/src/pages/home.tsx +++ b/ui/src/pages/home.tsx @@ -233,7 +233,7 @@ export const Home = () => {

Search for BED files

BEDbase offers three search endpoints for discovering BED files and BEDsets, distinguishing itself from - other platforms by utilizing Elasticsearch to index and search through bed file regions. This approach + other platforms by utilizing vector search to index and search through bed file regions. This approach enhances search accuracy and efficiency compared to platforms relying on unstructured user-provided metadata, which can be ambiguous and less reliable. User can search for BED files by providing a query string, or a BED file. From b6c9411c476b1ddfb1c6bfd3df1945ed87e95fae Mon Sep 17 00:00:00 2001 From: Khoroshevskyi Date: Fri, 18 Oct 2024 15:29:31 -0400 Subject: [PATCH 10/17] updated version and models --- bedhost/_version.py | 2 +- deployment/config/api-dev.bedbase.org.yaml | 1 + deployment/config/api.bedbase.org.yaml | 3 ++- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/bedhost/_version.py b/bedhost/_version.py index 9ccb974..dec7b36 100644 --- a/bedhost/_version.py +++ b/bedhost/_version.py @@ -1 +1 @@ -__version__ = "0.7.0dev1" +__version__ = "0.7.0dev2" diff --git a/deployment/config/api-dev.bedbase.org.yaml b/deployment/config/api-dev.bedbase.org.yaml index 9193bd4..447c6d9 100644 --- a/deployment/config/api-dev.bedbase.org.yaml +++ b/deployment/config/api-dev.bedbase.org.yaml @@ -1,6 +1,7 @@ path: remote_url_base: http://data.bedbase.org/ text2vec: 'sentence-transformers/all-MiniLM-L6-v2' + # region2vec: databio/r2v-pretrained-for-search region2vec: databio/r2v-encode-hg38 vec2vec: 'databio/v2v-sentencetransformers-encode' database: diff --git a/deployment/config/api.bedbase.org.yaml b/deployment/config/api.bedbase.org.yaml index 815641a..0bcb491 100644 --- a/deployment/config/api.bedbase.org.yaml +++ b/deployment/config/api.bedbase.org.yaml @@ -1,7 +1,8 @@ path: remote_url_base: http://data.bedbase.org/ text2vec: "sentence-transformers/all-MiniLM-L6-v2" - region2vec: databio/r2v-pretrained-for-search + # region2vec: databio/r2v-pretrained-for-search + region2vec: databio/r2v-encode-hg38 vec2vec: "databio/v2v-sentencetransformers-encode" database: host: $POSTGRES_HOST From efee88c295b03e2d19178618c08aefe8dd69f88b Mon Sep 17 00:00:00 2001 From: Khoroshevskyi Date: Mon, 21 Oct 2024 22:21:41 -0400 Subject: [PATCH 11/17] Added trackhub --- bedhost/_version.py | 2 +- bedhost/routers/bedset_api.py | 123 +++++++++++++++++----------------- 2 files changed, 61 insertions(+), 64 deletions(-) diff --git a/bedhost/_version.py b/bedhost/_version.py index dec7b36..49e0fc1 100644 --- a/bedhost/_version.py +++ b/bedhost/_version.py @@ -1 +1 @@ -__version__ = "0.7.0dev2" +__version__ = "0.7.0" diff --git a/bedhost/routers/bedset_api.py b/bedhost/routers/bedset_api.py index 8bf6fba..0455ceb 100644 --- a/bedhost/routers/bedset_api.py +++ b/bedhost/routers/bedset_api.py @@ -1,4 +1,4 @@ -from fastapi import APIRouter, HTTPException +from fastapi import APIRouter, HTTPException, Request, Response import logging from bbconf.models.bedset_models import ( @@ -108,65 +108,62 @@ async def get_bedfiles_in_bedset( return bbagent.bedset.get_bedset_bedfiles(bedset_id) -# TODO: how are we using it? - -# @router.get("/{bedset_id}/track_hub") -# async def get_track_hub_bedset(request: Request, bedset_id: str): -# """ -# Generate track hub files for the BED set -# """ -# -# hit = bbc.bedset.retrieve_one(bedset_id) -# name = hit.get("name", "") -# -# hub_txt = ( -# f"hub \t BEDBASE_{name}\n" -# f"shortLabel \t BEDBASE_{name}\n" -# f"longLabel\t BEDBASE {name} signal tracks\n" -# f"genomesFile\t {request.url_for('get_genomes_file_bedset', bedset_id=bedset_id)}\n" -# "email\t bx2ur@virginia.edu\n" -# "descriptionUrl\t http://www.bedbase.org/" -# ) -# -# return Response(hub_txt, media_type="text/plain") - - -# @router.get("/{bedset_id}/track_hub_genome_file", include_in_schema=False) -# async def get_genomes_file_bedset(request: Request, bedset_id: str): -# """ -# Generate genomes file for the BED set track hub -# """ -# -# genome = bbc.bedset.retrieve_one(bedset_id, "genome") -# -# genome_txt = ( -# f"genome\t {genome['alias']}\n" -# f"trackDb\t {request.url_for('get_trackDb_file_bedset', bedset_id=bedset_id)}" -# ) -# -# return Response(genome_txt, media_type="text/plain") - - -# @router.get("/{md5sum}/track_hub_trackDb_file", include_in_schema=False) -# async def get_trackDb_file_bedset(request: Request, bedset_id: str): -# """ -# Generate trackDb file for the BED set track hub -# """ -# -# hit = bbc.select_bedfiles_for_bedset( -# bedset_id, -# metadata=True, -# ) -# -# trackDb_txt = "" -# for bed in hit: -# trackDb_txt = ( -# trackDb_txt + f"track\t {bed.get('name', '')}\n" -# "type\t bigBed\n" -# f"bigDataUrl\t http://data.bedbase.org/bigbed_files/{bed.get('name', '')}.bigBed\n" -# f"shortLabel\t {bed.get('name', '')}\n" -# f"longLabel\t {bed.get('description', '')}\n" -# "visibility\t full\n\n" -# ) -# -# return Response(trackDb_txt, media_type="text/plain") +@router.get("/{bedset_id}/track_hub") +async def get_track_hub_bedset(request: Request, bedset_id: str): + """ + Generate track hub files for the BED set + """ + + bbagent.bedset.get(bedset_id) + + hub_txt = ( + f"hub \t BEDBASE_{bedset_id}\n" + f"shortLabel \t BEDBASE_{bedset_id}\n" + f"longLabel\t BEDBASE {bedset_id} signal tracks\n" + f"genomesFile\t {request.url_for('get_genomes_file_bedset', bedset_id=bedset_id)}\n" + "email\t bx2ur@virginia.edu\n" + "descriptionUrl\t https://bedbase.org/" + ) + + return Response(hub_txt, media_type="text/plain") + + +@router.get("/{bedset_id}/track_hub_genome_file", include_in_schema=False) +async def get_genomes_file_bedset(request: Request, bedset_id: str): + """ + Generate genomes file for the BED set track hub + """ + + genome = "hg38" + genome_txt = ( + f"genome\t {genome}\n" + f"trackDb\t {request.url_for('get_trackDb_file_bedset', bedset_id=bedset_id)}" + ) + + return Response(genome_txt, media_type="text/plain") + + +@router.get("/{bedset_id}/track_hub_trackDb_file", include_in_schema=False) +async def get_trackDb_file_bedset(bedset_id: str): + """ + Generate trackDb file for the BED set track hub + """ + + hit = bbagent.bedset.get_bedset_bedfiles(bedset_id) + + trackDb_txt = "" + for bed in hit.results: + metadata = bbagent.bed.get(bed.id, full=True) + + if metadata.files.bigbed_file: + + trackDb_txt = ( + trackDb_txt + f"track\t {metadata.name}\n" + "type\t bigBed\n" + f"bigDataUrl\t {metadata.files.bigbed_file.access_methods[0].access_url.url} \n" + f"shortLabel\t {metadata.name}\n" + f"longLabel\t {metadata.description}\n" + "visibility\t full\n\n" + ) + + return Response(trackDb_txt, media_type="text/plain") From e29b4dff5b306e1b96aa0c388f87967f728eaaac Mon Sep 17 00:00:00 2001 From: Khoroshevskyi Date: Tue, 22 Oct 2024 14:01:49 -0400 Subject: [PATCH 12/17] Added head routers for trackhub --- bedhost/routers/bedset_api.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/bedhost/routers/bedset_api.py b/bedhost/routers/bedset_api.py index 0455ceb..a6d59c3 100644 --- a/bedhost/routers/bedset_api.py +++ b/bedhost/routers/bedset_api.py @@ -108,6 +108,7 @@ async def get_bedfiles_in_bedset( return bbagent.bedset.get_bedset_bedfiles(bedset_id) +@router.head("/{bedset_id}/track_hub") @router.get("/{bedset_id}/track_hub") async def get_track_hub_bedset(request: Request, bedset_id: str): """ @@ -128,6 +129,7 @@ async def get_track_hub_bedset(request: Request, bedset_id: str): return Response(hub_txt, media_type="text/plain") +@router.head("/{bedset_id}/track_hub_genome_file", include_in_schema=False) @router.get("/{bedset_id}/track_hub_genome_file", include_in_schema=False) async def get_genomes_file_bedset(request: Request, bedset_id: str): """ @@ -143,6 +145,7 @@ async def get_genomes_file_bedset(request: Request, bedset_id: str): return Response(genome_txt, media_type="text/plain") +@router.head("/{bedset_id}/track_hub_trackDb_file", include_in_schema=False) @router.get("/{bedset_id}/track_hub_trackDb_file", include_in_schema=False) async def get_trackDb_file_bedset(bedset_id: str): """ From 402edee073d851741a751caa62481eeb6287ff88 Mon Sep 17 00:00:00 2001 From: Khoroshevskyi Date: Tue, 22 Oct 2024 14:59:57 -0400 Subject: [PATCH 13/17] fixed https issue --- bedhost/routers/bedset_api.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bedhost/routers/bedset_api.py b/bedhost/routers/bedset_api.py index a6d59c3..849c568 100644 --- a/bedhost/routers/bedset_api.py +++ b/bedhost/routers/bedset_api.py @@ -121,7 +121,7 @@ async def get_track_hub_bedset(request: Request, bedset_id: str): f"hub \t BEDBASE_{bedset_id}\n" f"shortLabel \t BEDBASE_{bedset_id}\n" f"longLabel\t BEDBASE {bedset_id} signal tracks\n" - f"genomesFile\t {request.url_for('get_genomes_file_bedset', bedset_id=bedset_id)}\n" + f"genomesFile\t {str(request.url_for('get_genomes_file_bedset', bedset_id=bedset_id)).replace('http', 'https', 1)}\n" "email\t bx2ur@virginia.edu\n" "descriptionUrl\t https://bedbase.org/" ) @@ -139,7 +139,7 @@ async def get_genomes_file_bedset(request: Request, bedset_id: str): genome = "hg38" genome_txt = ( f"genome\t {genome}\n" - f"trackDb\t {request.url_for('get_trackDb_file_bedset', bedset_id=bedset_id)}" + f"trackDb\t {str(request.url_for('get_trackDb_file_bedset', bedset_id=bedset_id)).replace('http', 'https', 1)}" ) return Response(genome_txt, media_type="text/plain") From 0d75d2e9b7de0baeaa27232097371b5ad84dc4ad Mon Sep 17 00:00:00 2001 From: Khoroshevskyi Date: Wed, 23 Oct 2024 16:01:51 -0400 Subject: [PATCH 14/17] Added get bedset pep and genome browser to ui and api --- bedhost/routers/bedset_api.py | 15 ++++ bedhost/utils.py | 80 +++++++++++++++++++ .../bedset-splash-components/header.tsx | 29 +++++-- 3 files changed, 118 insertions(+), 6 deletions(-) create mode 100644 bedhost/utils.py diff --git a/bedhost/routers/bedset_api.py b/bedhost/routers/bedset_api.py index 849c568..80e9591 100644 --- a/bedhost/routers/bedset_api.py +++ b/bedhost/routers/bedset_api.py @@ -12,6 +12,7 @@ from ..main import bbagent from ..const import PKG_NAME, EXAMPLE_BEDSET +from ..utils import zip_pep router = APIRouter(prefix="/v1/bedset", tags=["bedset"]) @@ -63,6 +64,20 @@ async def get_bedset_metadata( raise HTTPException(status_code=404, detail="No records found") +@router.get( + "/{bedset_id}/pep", + summary="Download PEP project for a single BEDset record", + description=f"Example\n bed_id: {EXAMPLE_BEDSET}", +) +async def get_bedset_pep( + bedset_id: str, +): + try: + return zip_pep(bbagent.bedset.get_bedset_pep(bedset_id)) + except BedSetNotFoundError as _: + raise HTTPException(status_code=404, detail="No records found") + + @router.get( "/{bedset_id}/metadata/plots", response_model=BedSetPlots, diff --git a/bedhost/utils.py b/bedhost/utils.py new file mode 100644 index 0000000..a208343 --- /dev/null +++ b/bedhost/utils.py @@ -0,0 +1,80 @@ +import io +import zipfile +from datetime import date +from typing import Any, Dict + +import pandas as pd +import yaml +from fastapi import Response +from peppy.const import ( + CFG_SAMPLE_TABLE_KEY, + CFG_SUBSAMPLE_TABLE_KEY, + CONFIG_KEY, + NAME_KEY, + SAMPLE_RAW_DICT_KEY, + SUBSAMPLE_RAW_LIST_KEY, +) + + +def zip_conv_result(conv_result: dict, filename: str = "project.zip") -> Response: + """ + Given a dictionary of converted results, zip them up and return a response + + ## Copied from pephub/helpers.py + + :param conv_result: dictionary of converted results + :param filename: name of the zip + return Response: response object + """ + mf = io.BytesIO() + + with zipfile.ZipFile(mf, mode="w", compression=zipfile.ZIP_DEFLATED) as zf: + for name, res in conv_result.items(): + # Add file, at correct path + zf.writestr(name, str.encode(res)) + + # Grab ZIP file from in-memory, make response with correct MIME-type + resp = Response( + mf.getvalue(), + media_type="application/x-zip-compressed", + headers={"Content-Disposition": f"attachment;filename={filename}"}, + ) + + return resp + + +def zip_pep(project: Dict[str, Any]) -> Response: + """ + Zip a project up to download + ## Copied from pephub/helpers.py + + :param project: peppy project to zip + """ + + content_to_zip = {} + config = project[CONFIG_KEY] + project_name = config[NAME_KEY] + + if project[SAMPLE_RAW_DICT_KEY] is not None: + config[CFG_SAMPLE_TABLE_KEY] = ["sample_table.csv"] + content_to_zip["sample_table.csv"] = pd.DataFrame( + project[SAMPLE_RAW_DICT_KEY] + ).to_csv(index=False) + + if project[SUBSAMPLE_RAW_LIST_KEY] is not None: + if not isinstance(project[SUBSAMPLE_RAW_LIST_KEY], list): + config[CFG_SUBSAMPLE_TABLE_KEY] = ["subsample_table1.csv"] + content_to_zip["subsample_table1.csv"] = pd.DataFrame( + project[SUBSAMPLE_RAW_LIST_KEY] + ).to_csv(index=False) + else: + config[CFG_SUBSAMPLE_TABLE_KEY] = [] + for number, file in enumerate(project[SUBSAMPLE_RAW_LIST_KEY]): + file_name = f"subsample_table{number + 1}.csv" + config[CFG_SUBSAMPLE_TABLE_KEY].append(file_name) + content_to_zip[file_name] = pd.DataFrame(file).to_csv(index=False) + + content_to_zip[f"{project_name}_config.yaml"] = yaml.dump(config, indent=4) + + zip_filename = project_name or f"downloaded_pep_{date.today()}" + return zip_conv_result(content_to_zip, filename=zip_filename) diff --git a/ui/src/components/bedset-splash-components/header.tsx b/ui/src/components/bedset-splash-components/header.tsx index 399f28a..db4838c 100644 --- a/ui/src/components/bedset-splash-components/header.tsx +++ b/ui/src/components/bedset-splash-components/header.tsx @@ -43,6 +43,23 @@ export const BedsetSplashHeader = (props: Props) => {

{metadata?.description || 'No description available'}

+ + {/* TODO: change hg38 on correct genome */} + {/**/} + + + + + + + + -

{metadata?.description || 'No description available'}

+
+

{metadata?.description || 'No description available'}

+
From 471f150c014377c7f161d6163cd0e4bc4d35e9c4 Mon Sep 17 00:00:00 2001 From: Khoroshevskyi Date: Wed, 23 Oct 2024 20:16:58 -0400 Subject: [PATCH 16/17] updated link --- ui/src/components/bedset-splash-components/header.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/src/components/bedset-splash-components/header.tsx b/ui/src/components/bedset-splash-components/header.tsx index 7255e1c..1e7a347 100644 --- a/ui/src/components/bedset-splash-components/header.tsx +++ b/ui/src/components/bedset-splash-components/header.tsx @@ -46,7 +46,7 @@ export const BedsetSplashHeader = (props: Props) => { {/* TODO: change hg38 on correct genome */} {/**/} + href={`https://genome.ucsc.edu/cgi-bin/hgTracks?db=hg38&hubUrl=${API_BASE}/bedset/${metadata.id}/track_hub`} target="_blank">