From 066eb68572d7364ba2421352fa918e180e2f7385 Mon Sep 17 00:00:00 2001 From: aranega Date: Mon, 29 Apr 2024 18:21:59 -0600 Subject: [PATCH 01/43] CELE-34 Add PoC using OpenLayers --- .gitignore | 3 +- .../visualizer/settings/development.py | 3 + .../visualizer/backend/visualizer/urls.py | 5 +- .../visualizer/backend/visualizer/views.py | 24 ++ applications/visualizer/frontend/package.json | 1 + .../src/components/EMStackTilesViewer.tsx | 90 +++++ .../frontend/src/components/LeftComponent.tsx | 8 +- .../visualizer/frontend/vite.config.ts | 7 +- applications/visualizer/frontend/yarn.lock | 364 ++++++++++++++++-- 9 files changed, 463 insertions(+), 42 deletions(-) create mode 100644 applications/visualizer/frontend/src/components/EMStackTilesViewer.tsx diff --git a/.gitignore b/.gitignore index 9a8ea2bb..9b1d7e51 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ skaffold.yaml docker-compose.yaml # deployment/ cloud-harness/ -.vscode/ \ No newline at end of file +.vscode/ +node_modules diff --git a/applications/visualizer/backend/visualizer/settings/development.py b/applications/visualizer/backend/visualizer/settings/development.py index d7e67037..466a5f4d 100644 --- a/applications/visualizer/backend/visualizer/settings/development.py +++ b/applications/visualizer/backend/visualizer/settings/development.py @@ -15,3 +15,6 @@ "TEST": {"NAME": BASE_DIR / "tests" / "testdb.sqlite3"}, } } + + +EM_DATA_FOLDER = BASE_DIR.parent.parent.parent / "SEM_adult" diff --git a/applications/visualizer/backend/visualizer/urls.py b/applications/visualizer/backend/visualizer/urls.py index e7a25f98..32de09e8 100644 --- a/applications/visualizer/backend/visualizer/urls.py +++ b/applications/visualizer/backend/visualizer/urls.py @@ -21,11 +21,14 @@ from django.conf.urls.static import static from api.api import api -from .views import index +from .views import index, get_tile urlpatterns = [ path("admin/", admin.site.urls), path("api/", api.urls), *static(settings.STATIC_URL, document_root=settings.STATIC_ROOT), + re_path( + r"^emdata/(?P\d+)/(?P\d+)_(?P\d+)_(?P\d+).jpg", get_tile + ), re_path(r"(?P.*)", index, name="index"), ] diff --git a/applications/visualizer/backend/visualizer/views.py b/applications/visualizer/backend/visualizer/views.py index c88376fc..f98cc28c 100644 --- a/applications/visualizer/backend/visualizer/views.py +++ b/applications/visualizer/backend/visualizer/views.py @@ -1,3 +1,4 @@ +import io import mimetypes from pathlib import Path @@ -6,6 +7,9 @@ from django.urls import reverse from django.utils._os import safe_join +from .settings import EM_DATA_FOLDER +from PIL import Image + def view_404(request, exception=None): return HttpResponseRedirect(reverse("index")) @@ -22,3 +26,23 @@ def index(request, path=""): except FileNotFoundError: return index(request, "") # index.html return FileResponse(fullpath.open("rb"), content_type=content_type) + + +TILE_SIZE = 512 +BLACK_TILE = Image.new("RGB", (TILE_SIZE, TILE_SIZE)) +BLACK_TILE_BUFFER = io.BytesIO() +BLACK_TILE.save(BLACK_TILE_BUFFER, format="JPEG") +MAX_ZOOM = 6 + + +def get_tile(request, slice, x, y, zoom): + path = Path(f"{slice}") / f"{y}_{x}_{MAX_ZOOM - int(zoom)}.jpg" + + full_path = Path(safe_join(EM_DATA_FOLDER, path)) + content_type, _ = mimetypes.guess_type(str(full_path)) + content_type = content_type or "application/octet-stream" + if not full_path.exists(): + content = BLACK_TILE_BUFFER.getbuffer() + else: + content = full_path.open("rb") + return FileResponse(content, content_type=content_type) diff --git a/applications/visualizer/frontend/package.json b/applications/visualizer/frontend/package.json index 0fa990bc..332fd815 100644 --- a/applications/visualizer/frontend/package.json +++ b/applications/visualizer/frontend/package.json @@ -22,6 +22,7 @@ "@mui/material": "^5.15.15", "@reduxjs/toolkit": "^2.2.3", "file-saver": "^2.0.5", + "ol": "^9.1.0", "react": "^18.2.0", "react-dom": "^18.2.0", "react-redux": "^9.1.1" diff --git a/applications/visualizer/frontend/src/components/EMStackTilesViewer.tsx b/applications/visualizer/frontend/src/components/EMStackTilesViewer.tsx new file mode 100644 index 00000000..88f2f9fc --- /dev/null +++ b/applications/visualizer/frontend/src/components/EMStackTilesViewer.tsx @@ -0,0 +1,90 @@ +import { Map, View } from 'ol'; +import LayerGroup from 'ol/layer/Group'; +import Layer from 'ol/layer/Layer'; +import TileLayer from 'ol/layer/Tile'; +import { TileDebug, TileImage, XYZ } from 'ol/source'; +import { useEffect, useRef, useState } from 'react'; + +const EMStackViewer = () => { + const mapRef = useRef(null) + const indexLayer = useRef(null) + // const slice = useRef(537) + const [slice, setSlice] = useState(537) + const cacheSize = 500 + + const increaseSlice = () => { + if (!indexLayer.current) { + return + } + setSlice(slice + 1); + mapRef.current?.removeLayer(indexLayer.current) + mapRef.current?.addLayer( + new TileLayer({ + source: new TileImage({ + cacheSize: cacheSize, + url: `emdata/${slice}/{x}_{y}_{z}.jpg` + }) + }) + ) + + } + + const decreaseSlice = () => { + if (!indexLayer.current) { + return + } + // slice.current--; + setSlice(slice + 1) + mapRef.current?.removeLayer(indexLayer.current) + mapRef.current?.addLayer( + new TileLayer({ + source: new TileImage({ + cacheSize: cacheSize, + + url: `emdata/${slice}/{x}_{y}_{z}.jpg` + }) + }) + ) + } + + useEffect(() => { + if (mapRef.current) { + return + } + indexLayer.current = new TileLayer({ + // minZoom: 0, + source: new TileImage({ + cacheSize: cacheSize, + + url: `emdata/${slice}/{x}_{y}_{z}.jpg` + }) + }) + mapRef.current = new Map({ + target: "mapdiv", + layers: [ + indexLayer.current, + new TileLayer({ + source: new TileDebug(), + }), + ], + view: new View({ + center: [0, 0], + zoom: 0, + maxZoom: 6, + }), + controls: [] + }) + }, []) + + + + return (<> + + +

slice: {slice}

+
+ ) +} + + +export default EMStackViewer; \ No newline at end of file diff --git a/applications/visualizer/frontend/src/components/LeftComponent.tsx b/applications/visualizer/frontend/src/components/LeftComponent.tsx index f5c5d33b..cf9a8773 100644 --- a/applications/visualizer/frontend/src/components/LeftComponent.tsx +++ b/applications/visualizer/frontend/src/components/LeftComponent.tsx @@ -1,9 +1,10 @@ -import {Box, Typography} from "@mui/material"; +import { Box, Typography } from "@mui/material"; -import {useGlobalContext} from "../contexts/GlobalContext.tsx"; +import { useGlobalContext } from "../contexts/GlobalContext.tsx"; +import EMStackViewer from "./EMStackTilesViewer.tsx"; export default function LeftComponent() { - const {datasets, neurons} = useGlobalContext(); + const { datasets, neurons } = useGlobalContext(); const datasetArray = datasets ? Object.values(datasets) : []; const neuronArray = neurons ? Object.values(neurons) : []; @@ -28,6 +29,7 @@ export default function LeftComponent() { )) } + ); } \ No newline at end of file diff --git a/applications/visualizer/frontend/vite.config.ts b/applications/visualizer/frontend/vite.config.ts index bb9f5679..8775b122 100644 --- a/applications/visualizer/frontend/vite.config.ts +++ b/applications/visualizer/frontend/vite.config.ts @@ -18,7 +18,7 @@ export default defineConfig(({ command, mode }) => { const theDomain = process.env.DOMAIN || 'http://localhost:8000'; const replaceHost = (uri: string, appName: string) => (uri.includes("visualizer") && uri.replace("visualizer", appName + '.' + theDomain)) || uri - + console.log("XXX", replaceHost(theDomain, 'visualizer')) return { ...defaultConfig, build: { @@ -32,6 +32,11 @@ export default defineConfig(({ command, mode }) => { target: replaceHost(theDomain, 'visualizer'), changeOrigin: isDev, secure: !isDev + }, + '/emdata': { + target: replaceHost(theDomain, 'visualizer'), + changeOrigin: isDev, + secure: !isDev } } } diff --git a/applications/visualizer/frontend/yarn.lock b/applications/visualizer/frontend/yarn.lock index e96f87a3..0fe8b1c3 100644 --- a/applications/visualizer/frontend/yarn.lock +++ b/applications/visualizer/frontend/yarn.lock @@ -342,11 +342,121 @@ resolved "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz" integrity sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww== +"@esbuild/aix-ppc64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz#a70f4ac11c6a1dfc18b8bbb13284155d933b9537" + integrity sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g== + +"@esbuild/android-arm64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz#db1c9202a5bc92ea04c7b6840f1bbe09ebf9e6b9" + integrity sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg== + +"@esbuild/android-arm@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.20.2.tgz#3b488c49aee9d491c2c8f98a909b785870d6e995" + integrity sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w== + +"@esbuild/android-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.20.2.tgz#3b1628029e5576249d2b2d766696e50768449f98" + integrity sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg== + +"@esbuild/darwin-arm64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz#6e8517a045ddd86ae30c6608c8475ebc0c4000bb" + integrity sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA== + +"@esbuild/darwin-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz#90ed098e1f9dd8a9381695b207e1cff45540a0d0" + integrity sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA== + +"@esbuild/freebsd-arm64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz#d71502d1ee89a1130327e890364666c760a2a911" + integrity sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw== + +"@esbuild/freebsd-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz#aa5ea58d9c1dd9af688b8b6f63ef0d3d60cea53c" + integrity sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw== + +"@esbuild/linux-arm64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz#055b63725df678379b0f6db9d0fa85463755b2e5" + integrity sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A== + +"@esbuild/linux-arm@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz#76b3b98cb1f87936fbc37f073efabad49dcd889c" + integrity sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg== + +"@esbuild/linux-ia32@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz#c0e5e787c285264e5dfc7a79f04b8b4eefdad7fa" + integrity sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig== + +"@esbuild/linux-loong64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz#a6184e62bd7cdc63e0c0448b83801001653219c5" + integrity sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ== + +"@esbuild/linux-mips64el@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz#d08e39ce86f45ef8fc88549d29c62b8acf5649aa" + integrity sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA== + +"@esbuild/linux-ppc64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz#8d252f0b7756ffd6d1cbde5ea67ff8fd20437f20" + integrity sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg== + +"@esbuild/linux-riscv64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz#19f6dcdb14409dae607f66ca1181dd4e9db81300" + integrity sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg== + +"@esbuild/linux-s390x@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz#3c830c90f1a5d7dd1473d5595ea4ebb920988685" + integrity sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ== + "@esbuild/linux-x64@0.20.2": version "0.20.2" resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz" integrity sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw== +"@esbuild/netbsd-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz#e771c8eb0e0f6e1877ffd4220036b98aed5915e6" + integrity sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ== + +"@esbuild/openbsd-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz#9a795ae4b4e37e674f0f4d716f3e226dd7c39baf" + integrity sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ== + +"@esbuild/sunos-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz#7df23b61a497b8ac189def6e25a95673caedb03f" + integrity sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w== + +"@esbuild/win32-arm64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz#f1ae5abf9ca052ae11c1bc806fb4c0f519bacf90" + integrity sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ== + +"@esbuild/win32-ia32@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz#241fe62c34d8e8461cd708277813e1d0ba55ce23" + integrity sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ== + +"@esbuild/win32-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz#9c907b21e30a52db959ba4f80bb01a0cc403d5cc" + integrity sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ== + "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz" @@ -641,7 +751,7 @@ "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": version "2.0.5" resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== @@ -654,6 +764,11 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@petamoriken/float16@^3.4.7": + version "3.8.6" + resolved "https://registry.yarnpkg.com/@petamoriken/float16/-/float16-3.8.6.tgz#580701cb97a510882342333d31c7cbfd9e14b4f4" + integrity sha512-GNJhABTtcmt9al/nqdJPycwFD46ww2+q2zwZzTjY0dFFwUAFRw9zszvEr9osyJRd9krRGy6hUDopWUg9fX7VVw== + "@popperjs/core@^2.11.8": version "2.11.8" resolved "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz" @@ -669,6 +784,61 @@ redux-thunk "^3.1.0" reselect "^5.0.1" +"@rollup/rollup-android-arm-eabi@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.14.3.tgz#bddf05c3387d02fac04b6b86b3a779337edfed75" + integrity sha512-X9alQ3XM6I9IlSlmC8ddAvMSyG1WuHk5oUnXGw+yUBs3BFoTizmG1La/Gr8fVJvDWAq+zlYTZ9DBgrlKRVY06g== + +"@rollup/rollup-android-arm64@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.14.3.tgz#b26bd09de58704c0a45e3375b76796f6eda825e4" + integrity sha512-eQK5JIi+POhFpzk+LnjKIy4Ks+pwJ+NXmPxOCSvOKSNRPONzKuUvWE+P9JxGZVxrtzm6BAYMaL50FFuPe0oWMQ== + +"@rollup/rollup-darwin-arm64@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.14.3.tgz#c5f3fd1aa285b6d33dda6e3f3ca395f8c37fd5ca" + integrity sha512-Od4vE6f6CTT53yM1jgcLqNfItTsLt5zE46fdPaEmeFHvPs5SjZYlLpHrSiHEKR1+HdRfxuzXHjDOIxQyC3ptBA== + +"@rollup/rollup-darwin-x64@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.14.3.tgz#8e4673734d7dc9d68f6d48e81246055cda0e840f" + integrity sha512-0IMAO21axJeNIrvS9lSe/PGthc8ZUS+zC53O0VhF5gMxfmcKAP4ESkKOCwEi6u2asUrt4mQv2rjY8QseIEb1aw== + +"@rollup/rollup-linux-arm-gnueabihf@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.14.3.tgz#53ed38eb13b58ababdb55a7f66f0538a7f85dcba" + integrity sha512-ge2DC7tHRHa3caVEoSbPRJpq7azhG+xYsd6u2MEnJ6XzPSzQsTKyXvh6iWjXRf7Rt9ykIUWHtl0Uz3T6yXPpKw== + +"@rollup/rollup-linux-arm-musleabihf@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.14.3.tgz#0706ee38330e267a5c9326956820f009cfb21fcd" + integrity sha512-ljcuiDI4V3ySuc7eSk4lQ9wU8J8r8KrOUvB2U+TtK0TiW6OFDmJ+DdIjjwZHIw9CNxzbmXY39wwpzYuFDwNXuw== + +"@rollup/rollup-linux-arm64-gnu@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.14.3.tgz#426fce7b8b242ac5abd48a10a5020f5a468c6cb4" + integrity sha512-Eci2us9VTHm1eSyn5/eEpaC7eP/mp5n46gTRB3Aar3BgSvDQGJZuicyq6TsH4HngNBgVqC5sDYxOzTExSU+NjA== + +"@rollup/rollup-linux-arm64-musl@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.14.3.tgz#65bf944530d759b50d7ffd00dfbdf4125a43406f" + integrity sha512-UrBoMLCq4E92/LCqlh+blpqMz5h1tJttPIniwUgOFJyjWI1qrtrDhhpHPuFxULlUmjFHfloWdixtDhSxJt5iKw== + +"@rollup/rollup-linux-powerpc64le-gnu@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.14.3.tgz#494ba3b31095e9a45df9c3f646d21400fb631a95" + integrity sha512-5aRjvsS8q1nWN8AoRfrq5+9IflC3P1leMoy4r2WjXyFqf3qcqsxRCfxtZIV58tCxd+Yv7WELPcO9mY9aeQyAmw== + +"@rollup/rollup-linux-riscv64-gnu@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.14.3.tgz#8b88ed0a40724cce04aa15374ebe5ba4092d679f" + integrity sha512-sk/Qh1j2/RJSX7FhEpJn8n0ndxy/uf0kI/9Zc4b1ELhqULVdTfN6HL31CDaTChiBAOgLcsJ1sgVZjWv8XNEsAQ== + +"@rollup/rollup-linux-s390x-gnu@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.14.3.tgz#09c9e5ec57a0f6ec3551272c860bb9a04b96d70f" + integrity sha512-jOO/PEaDitOmY9TgkxF/TQIjXySQe5KVYB57H/8LRP/ux0ZoO8cSHCX17asMSv3ruwslXW/TLBcxyaUzGRHcqg== + "@rollup/rollup-linux-x64-gnu@4.14.3": version "4.14.3" resolved "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.14.3.tgz" @@ -679,6 +849,21 @@ resolved "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.14.3.tgz" integrity sha512-s+xf1I46trOY10OqAtZ5Rm6lzHre/UiLA1J2uOhCFXWkbZrJRkYBPO6FhvGfHmdtQ3Bx793MNa7LvoWFAm93bg== +"@rollup/rollup-win32-arm64-msvc@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.14.3.tgz#a648122389d23a7543b261fba082e65fefefe4f6" + integrity sha512-+4h2WrGOYsOumDQ5S2sYNyhVfrue+9tc9XcLWLh+Kw3UOxAvrfOrSMFon60KspcDdytkNDh7K2Vs6eMaYImAZg== + +"@rollup/rollup-win32-ia32-msvc@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.14.3.tgz#34727b5c7953c35fc6e1ae4f770ad3a2025f8e03" + integrity sha512-T1l7y/bCeL/kUwh9OD4PQT4aM7Bq43vX05htPJJ46RTI4r5KNt6qJRzAfNfM+OYMNEVBWQzR2Gyk+FXLZfogGw== + +"@rollup/rollup-win32-x64-msvc@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.14.3.tgz#5b2fb4d8cd44c05deef8a7b0e6deb9ccb8939d18" + integrity sha512-/BypzV0H1y1HzgYpxqRaXGBRqfodgoBBCcsrujT6QRcakDQdfU+Lq9PENPh5jB4I44YWq+0C2eHsHya+nZY1sA== + "@types/babel__core@^7.20.5": version "7.20.5" resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz" @@ -1068,15 +1253,40 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-2.0.0.tgz#03ff6b1b5aec9bb3cf1ed82400c2790dfcd01d2d" + integrity sha512-SbtvAMWvASO5TE2QP07jHBMXKafgdZz8Vrsrn96fiL+O92/FN/PLARzUW5sKt013fjAprK2d2iCn2hk2Xb5oow== + color-name@~1.1.4: version "1.1.4" resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== +color-parse@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/color-parse/-/color-parse-2.0.2.tgz#37b46930424924060988edf25b24e6ffb4a1dc3f" + integrity sha512-eCtOz5w5ttWIUcaKLiktF+DxZO1R9KLNY/xhbV6CkhM7sR3GhVghmt6X6yOnzeaM24po+Z9/S1apbXMwA3Iepw== + dependencies: + color-name "^2.0.0" + +color-rgba@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/color-rgba/-/color-rgba-3.0.0.tgz#77090bdcdb2951c1735e20099ddd50401675375b" + integrity sha512-PPwZYkEY3M2THEHHV6Y95sGUie77S7X8v+h1r6LSAPF3/LL2xJ8duUXSrkic31Nzc4odPwHgUbiX/XuTYzQHQg== + dependencies: + color-parse "^2.0.0" + color-space "^2.0.0" + +color-space@^2.0.0, color-space@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-space/-/color-space-2.0.1.tgz#da39871175baf4a5785ba519397df04b8d67e0fa" + integrity sha512-nKqUYlo0vZATVOFHY810BSYjmCARrG7e5R3UE3CQlyjJTvv5kSSmPG1kzm/oDyyqjehM+lW1RnEt9It9GNa5JA== commander@^12.0.0: version "12.0.0" @@ -1170,6 +1380,11 @@ dom-helpers@^5.0.1: "@babel/runtime" "^7.8.7" csstype "^3.0.2" +earcut@^2.2.3: + version "2.2.4" + resolved "https://registry.yarnpkg.com/earcut/-/earcut-2.2.4.tgz#6d02fd4d68160c114825d06890a92ecaae60343a" + integrity sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ== + electron-to-chromium@^1.4.668: version "1.4.742" resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.742.tgz" @@ -1419,6 +1634,11 @@ fs.realpath@^1.0.0: resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== +fsevents@~2.3.2, fsevents@~2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + function-bind@^1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" @@ -1429,7 +1649,21 @@ gensync@^1.0.0-beta.2: resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -glob-parent@^5.1.2: +geotiff@^2.0.7: + version "2.1.3" + resolved "https://registry.yarnpkg.com/geotiff/-/geotiff-2.1.3.tgz#993f40f2aa6aa65fb1e0451d86dd22ca8e66910c" + integrity sha512-PT6uoF5a1+kbC3tHmZSUsLHBp2QJlHasxxxxPW47QIY1VBKpFB+FcDvX+MxER6UzgLQZ0xDzJ9s48B9JbOCTqA== + dependencies: + "@petamoriken/float16" "^3.4.7" + lerc "^3.0.0" + pako "^2.0.4" + parse-headers "^2.0.2" + quick-lru "^6.1.1" + web-worker "^1.2.0" + xml-utils "^1.0.2" + zstddec "^0.1.0" + +glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -1443,13 +1677,6 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" -glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - glob@^7.1.3: version "7.2.3" resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" @@ -1537,6 +1764,11 @@ hyphenate-style-name@^1.0.3: resolved "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz" integrity sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ== +ieee754@^1.1.12: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + ignore@^5.2.0, ignore@^5.3.1: version "5.3.1" resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz" @@ -1740,7 +1972,7 @@ jss-plugin-vendor-prefixer@^10.5.1: css-vendor "^2.0.8" jss "10.10.0" -jss@^10.5.1, jss@10.10.0: +jss@10.10.0, jss@^10.5.1: version "10.10.0" resolved "https://registry.npmjs.org/jss/-/jss-10.10.0.tgz" integrity sha512-cqsOTS7jqPsPMjtKYDUpdFC0AbhYFLTcuGRqymgmdJIeQ8cH7+AgX7YSgQy79wXloZq2VvATYxUOUQEvS1V/Zw== @@ -1757,6 +1989,11 @@ keyv@^4.5.3: dependencies: json-buffer "3.0.1" +lerc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lerc/-/lerc-3.0.0.tgz#36f36fbd4ba46f0abf4833799fff2e7d6865f5cb" + integrity sha512-Rm4J/WaHhRa93nCN2mwWDZFoRVF18G1f47C+kvQWyHGEZxFpTUi73p7lMVSAndyxGt6lJ2/CFbOcf9ra5p8aww== + levn@^0.4.1: version "0.4.1" resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" @@ -1816,21 +2053,7 @@ micromatch@^4.0.4: braces "^3.0.2" picomatch "^2.3.1" -minimatch@^3.0.5: - version "3.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^3.1.1: - version "3.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^3.1.2: +minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -1884,6 +2107,18 @@ object-assign@^4.1.1: resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== +ol@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/ol/-/ol-9.1.0.tgz#738e9f17093f65dafe114b8a78c69f110f5d0220" + integrity sha512-nDrkJ2tzZNpo/wzN/PpHV5zdxbnXZaFktoMaD2cFLEc6gCwlgLY21Yd8wnt/4FjaVYwLBnbN9USXSwIBGcyksQ== + dependencies: + color-rgba "^3.0.0" + color-space "^2.0.1" + earcut "^2.2.3" + geotiff "^2.0.7" + pbf "3.2.1" + rbush "^3.0.1" + once@^1.3.0: version "1.4.0" resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" @@ -1933,6 +2168,11 @@ pako@^1.0.3: resolved "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz" integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== +pako@^2.0.4: + version "2.1.0" + resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86" + integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug== + parent-module@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" @@ -1940,6 +2180,11 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" +parse-headers@^2.0.2: + version "2.0.5" + resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.5.tgz#069793f9356a54008571eb7f9761153e6c770da9" + integrity sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA== + parse-json@^5.0.0: version "5.2.0" resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" @@ -1975,6 +2220,14 @@ path-type@^4.0.0: resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +pbf@3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/pbf/-/pbf-3.2.1.tgz#b4c1b9e72af966cd82c6531691115cc0409ffe2a" + integrity sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ== + dependencies: + ieee754 "^1.1.12" + resolve-protobuf-schema "^2.1.0" + picocolors@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" @@ -2013,6 +2266,11 @@ prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: object-assign "^4.1.1" react-is "^16.13.1" +protocol-buffers-schema@^3.3.1: + version "3.6.0" + resolved "https://registry.yarnpkg.com/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz#77bc75a48b2ff142c1ad5b5b90c94cd0fa2efd03" + integrity sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw== + punycode@^2.1.0: version "2.3.1" resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz" @@ -2023,6 +2281,23 @@ queue-microtask@^1.2.2: resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +quick-lru@^6.1.1: + version "6.1.2" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-6.1.2.tgz#e9a90524108629be35287d0b864e7ad6ceb3659e" + integrity sha512-AAFUA5O1d83pIHEhJwWCq/RQcRukCkn/NSm2QsTEMle5f2hP0ChI2+3Xb051PZCkLryI/Ir1MVKviT2FIloaTQ== + +quickselect@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/quickselect/-/quickselect-2.0.0.tgz#f19680a486a5eefb581303e023e98faaf25dd018" + integrity sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw== + +rbush@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/rbush/-/rbush-3.0.1.tgz#5fafa8a79b3b9afdfe5008403a720cc1de882ecf" + integrity sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w== + dependencies: + quickselect "^2.0.0" + re-resizable@4.5.1: version "4.5.1" resolved "https://registry.npmjs.org/re-resizable/-/re-resizable-4.5.1.tgz" @@ -2044,12 +2319,7 @@ react-draggable@^3.0.5: classnames "^2.2.5" prop-types "^15.6.0" -react-is@^16.13.1: - version "16.13.1" - resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== - -react-is@^16.7.0: +react-is@^16.13.1, react-is@^16.7.0: version "16.13.1" resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -2161,6 +2431,13 @@ resolve-from@^4.0.0: resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== +resolve-protobuf-schema@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz#9ca9a9e69cf192bbdaf1006ec1973948aa4a3758" + integrity sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ== + dependencies: + protocol-buffers-schema "^3.3.1" + resolve@^1.19.0: version "1.22.8" resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz" @@ -2259,7 +2536,7 @@ slash@^3.0.0: resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -source-map-js@^1.2.0, "source-map-js@>=0.6.2 <2.0.0": +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz" integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== @@ -2400,6 +2677,11 @@ vite@^5.2.0: optionalDependencies: fsevents "~2.3.3" +web-worker@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/web-worker/-/web-worker-1.3.0.tgz#e5f2df5c7fe356755a5fb8f8410d4312627e6776" + integrity sha512-BSR9wyRsy/KOValMgd5kMyr3JzpdeoR9KVId8u5GVlTTAtNChlsE4yTxeY7zMdNSyOmoKBv8NH2qeRY9Tg+IaA== + which@^2.0.1: version "2.0.2" resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" @@ -2417,6 +2699,11 @@ wrappy@1: resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== +xml-utils@^1.0.2: + version "1.8.0" + resolved "https://registry.yarnpkg.com/xml-utils/-/xml-utils-1.8.0.tgz#dd9baa161012849b97703d8423d09d9d815a5910" + integrity sha512-1TY5yLw8DApowZAUsWCniNr8HH6Ebt6O7UQvmIwziGKwUNsQx6e+4NkfOvCfnqmYIcPjCeoI6dh1JenPJ9a1hQ== + yallist@^3.0.2: version "3.1.1" resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" @@ -2436,3 +2723,8 @@ yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +zstddec@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/zstddec/-/zstddec-0.1.0.tgz#7050f3f0e0c3978562d0c566b3e5a427d2bad7ec" + integrity sha512-w2NTI8+3l3eeltKAdK8QpiLo/flRAr2p8AGeakfMZOXBxOg9HIu4LVDxBi81sYgVhFhdJjv1OrB5ssI8uFPoLg== From bbd024db8bfe91551e7906cbcb7d2afa74ba9a1f Mon Sep 17 00:00:00 2001 From: aranega Date: Wed, 8 May 2024 08:35:50 -0600 Subject: [PATCH 02/43] Remove debug layer --- .../frontend/src/components/EMStackTilesViewer.tsx | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/applications/visualizer/frontend/src/components/EMStackTilesViewer.tsx b/applications/visualizer/frontend/src/components/EMStackTilesViewer.tsx index 88f2f9fc..be670815 100644 --- a/applications/visualizer/frontend/src/components/EMStackTilesViewer.tsx +++ b/applications/visualizer/frontend/src/components/EMStackTilesViewer.tsx @@ -33,8 +33,7 @@ const EMStackViewer = () => { if (!indexLayer.current) { return } - // slice.current--; - setSlice(slice + 1) + setSlice(slice - 1) mapRef.current?.removeLayer(indexLayer.current) mapRef.current?.addLayer( new TileLayer({ @@ -63,9 +62,9 @@ const EMStackViewer = () => { target: "mapdiv", layers: [ indexLayer.current, - new TileLayer({ - source: new TileDebug(), - }), + // new TileLayer({ + // source: new TileDebug(), + // }), ], view: new View({ center: [0, 0], From 9e29f8d278fe576c5ab278374100a6f2ab105984 Mon Sep 17 00:00:00 2001 From: aranega Date: Thu, 4 Jul 2024 08:42:01 -0600 Subject: [PATCH 03/43] Add segmentation extraction script --- extraction/segmentation-extraction.py | 225 ++++++++++++++++++++++++++ 1 file changed, 225 insertions(+) create mode 100644 extraction/segmentation-extraction.py diff --git a/extraction/segmentation-extraction.py b/extraction/segmentation-extraction.py new file mode 100644 index 00000000..fe0d949b --- /dev/null +++ b/extraction/segmentation-extraction.py @@ -0,0 +1,225 @@ +from argparse import ArgumentParser +import diplib as dip +from time import time +from pathlib import Path +import geojson +from geojson import FeatureCollection, Feature, MultiPolygon +from geojson_rewind import rewind +import numpy as np +from dataclasses import dataclass, fields as dataclass_fields +from tqdm import tqdm + + +# @dataclass +# class Color(object): +# rgb: tuple[int] +# red: int +# green: int +# blue: int +# pattern: int + + +@dataclass +class LUTEntry(object): + nr: int + # flags: int + color1: list[int] + color2: list[int] + # anchor: list[int] + # parentnr: int + # childnr: int + # prevnr: int + # nextnr: int + # collapsednr: int + bbox1: list[int] + bbox2: list[int] + name: str + + +def extract_headers(metadata_path: Path): + headers = [] + marker = "% Columns:" + with metadata_path.open("r") as f: + for line in f: + if line.startswith(marker): + headers = [s.lower() for s in line[len(marker) :].split()] + return headers + + +def parse_entries(metadata_path: Path): + fields = extract_headers(metadata_path) + entries = {} + with metadata_path.open("r") as f: + for line in f: + if line.startswith("%") or not line.strip(): + continue + entry = parse_entry(line, fields) + entries[entry.nr] = entry + return entries + + +def transform_point(src_point, src_bbox, dst_bbox=((-179, 85), (179, -85))): + (src_x_min, src_y_min), (src_x_max, src_y_max) = src_bbox + (dst_x_min, dst_y_min), (dst_x_max, dst_y_max) = dst_bbox + + scale_x = (dst_x_max - dst_x_min) / (src_x_max - src_x_min) + scale_y = (dst_y_max - dst_y_min) / (src_y_max - src_y_min) + + dst_x = dst_x_min + (src_point[0] - src_x_min) * scale_x + dst_y = dst_y_min + (src_point[1] - src_y_min) * scale_y + + return (dst_x, dst_y) + + +def parse_entry(line, fields): + name_start = line.index('"') + values = line[:name_start].split() + values = [int(v) for v in values] + preformat = {k: v for k, v in zip(fields, values)} + sub_line = line[name_start + 1 :] + preformat["name"] = sub_line[: sub_line.index('"')] + preformat["bbox1"] = [preformat["bboxx1"], preformat["bboxy1"], preformat["bboxz1"]] + preformat["bbox2"] = [preformat["bboxx2"], preformat["bboxy2"], preformat["bboxz2"]] + preformat["color1"] = (preformat["red1"], preformat["green1"], preformat["blue1"]) + preformat["color2"] = (preformat["red2"], preformat["green2"], preformat["blue2"]) + + dc_fields = [field.name for field in dataclass_fields(LUTEntry)] + return LUTEntry(**{k: v for k, v in preformat.items() if k in dc_fields}) + + +def extract( + img_path, + metadata_entries, + overwrite=False, + write_json=True, + write_img=False, + print=print, +): + result_json_path = img_path.parent / f"{img_path.stem}.json" + if not overwrite and result_json_path.exists(): + print(f"JSON position {result_json_path} already exist, skipping") + return + + t = time() + + print(f"= Position extraction and LUT parsing for {img_path}") + dimg = dip.ImageRead(f"{img_path}") # Reads the image using diplib + + # Gets the chaincodes (8-connected chain codes) + code_chains = dip.GetImageChainCodes(dimg) + res_contours = {} + res_coords = {} + + i = 0 + masked = np.array(dimg) # original image progressively masked + mask = np.zeros_like(dimg).astype(bool) # progressive mask + + # While the 8-connected algo finds code chains + while code_chains: + # Register the values discovered + print(f" * Iteration {i} for {[c.objectID for c in code_chains]}") + for chain in code_chains: + # Extract the polygon and transform it in a list + polygon = list(chain.Polygon().Simplify()) + polygon.append(polygon[0]) # Last element = first to be geojson compliant + res_contours.setdefault(chain.objectID, []).append(polygon) + + # Also store the coords + # (not used right now, will be later for 3D surface reconstruction) + # 3D reconstruction candidates are "vedo", or "open3D" (used in first SOW in Natus) + # for a dedicated region number, the coordinates for each slice will be stacked + # to form a 3D cloud of points using rolling-ball, marching cube or poisson reconstruction + res_coords.setdefault(chain.objectID, []).append(list(chain.Coordinates())) + + # Construct the mask of the element to remove using the bounding box + ((a, b), (c, d)) = chain.BoundingBox() + mask[b : d + 1, a : c + 1] |= masked[b : d + 1, a : c + 1] == chain.objectID + + # Once all elements have been registered for a first application of the 8-connected algo + # We apply the mask, consequently removing the elements that we already registered + # and we start again the process (8-connected algo + polygon extraction). + # This is to overcome a limitation: + # * diplib, discover properly 1 shape per label. If the number repeats in another + # shape (i.e: there is multiple closed shapes with the same label), only 1 shape will + # be discovered. + masked = np.where(mask, 0, masked) + dimg = dip.Image(masked) + code_chains = dip.GetImageChainCodes(dimg) + i += 1 + print(f" * Labels polygon extraction: {time() - t}s") + + shape = dimg.Size(0), dimg.Size(1) + if write_img: + from PIL import Image + + Image.MAX_IMAGE_PIXELS = None + result_img_path = img_path.parent / f"{img_path.stem}-colored-seg.png" + cpy = Image.new("RGB", shape) + + print(f" ** Writing result img in {result_img_path}") + for v, zones in res_coords.items(): + for zone in zones: + for x, y in zone: + cpy.putpixel((x, y), metadata_entries[v].color1) + cpy.save(result_img_path) + + if write_json: + features = [ + Feature( + geometry=MultiPolygon([[zone] for zone in zones]), + properties={ + "region_number": nr, + "color": metadata_entries[nr].color1, + "name": metadata_entries[nr].name, + }, + ) + for nr, zones in res_contours.items() + ] + fc = FeatureCollection(features) + geojson.utils.map_tuples( + lambda coord: transform_point(coord, ((0, 0), shape)), fc + ) + + result_json_path.write_text(rewind(geojson.dumps(fc))) + print(f" ** JSON saved as {result_json_path}\n") + + +if __name__ == "__main__": + parser = ArgumentParser(description="Extract positions from segmentation file") + parser.add_argument( + "-i", + "--img-path", + help="Path of a segmentation image or the folder containing the segmentation images", + required=True, + ) + parser.add_argument( + "-l", "--lut", help="Path towards the look-up table", required=True + ) + parser.add_argument( + "--no-json", help="Disable JSON file output", action="store_true" + ) + parser.add_argument( + "--write-img", help="Write the result in an img format", action="store_true" + ) + parser.add_argument( + "--overwrite", help="Force JSON/img production", action="store_true" + ) + args = vars(parser.parse_args()) + + metadata_path = Path(args["lut"]) + segmentation_folder = Path(args["img_path"]) + files = ( + list(segmentation_folder.glob("*.png")) + if segmentation_folder.is_dir() + else [segmentation_folder] + ) + for file in tqdm(files): + tqdm.write(f"Extracting segments from {file}") + extract( + file, + parse_entries(metadata_path), + overwrite=args["overwrite"], + write_img=args["write_img"], + write_json=not args["no_json"], + print=tqdm.write, + ) From 9b33759d7e20e69877aad224d32a23f0dad60a55 Mon Sep 17 00:00:00 2001 From: aranega Date: Wed, 24 Jul 2024 07:31:51 -0600 Subject: [PATCH 04/43] CELE-69 Add proxy for resources --- applications/visualizer/frontend/vite.config.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/applications/visualizer/frontend/vite.config.ts b/applications/visualizer/frontend/vite.config.ts index 245a3edd..d5f2a444 100644 --- a/applications/visualizer/frontend/vite.config.ts +++ b/applications/visualizer/frontend/vite.config.ts @@ -20,7 +20,7 @@ export default defineConfig(({ command, mode }) => { const port = process.env.PORT || PORT; const theDomain = process.env.DOMAIN || "http://localhost:8000"; - const replaceHost = (uri: string, appName: string) => (uri.includes("visualizer") && uri.replace("visualizer", appName + "." + theDomain)) || uri; + const replaceHost = (uri: string, appName: string) => (uri.includes("visualizer") && uri.replace("visualizer", `${appName}.${theDomain}`)) || uri; return { ...defaultConfig, @@ -36,6 +36,11 @@ export default defineConfig(({ command, mode }) => { changeOrigin: isDev, secure: !isDev, }, + "/resources": { + target: replaceHost(theDomain, "visualizer"), + changeOrigin: isDev, + secure: !isDev, + }, }, }, }; From 36a3a95cfa435f7da42120e13f05934cbd765678 Mon Sep 17 00:00:00 2001 From: aranega Date: Wed, 24 Jul 2024 07:39:42 -0600 Subject: [PATCH 05/43] CELE-69 Consider permanent URLs for gbucket --- applications/visualizer/backend/visualizer/views.py | 2 +- .../frontend/src/components/viewers/ThreeD/ThreeDViewer.tsx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/applications/visualizer/backend/visualizer/views.py b/applications/visualizer/backend/visualizer/views.py index 7b7ac7b8..4cedac68 100644 --- a/applications/visualizer/backend/visualizer/views.py +++ b/applications/visualizer/backend/visualizer/views.py @@ -36,4 +36,4 @@ def access_bucket_artifact(request, path): except FileNotFoundError: return index(request, "") # index.html - return redirect(f"{settings.GCS_BUCKET_URL}/{path}") + return redirect(f"{settings.GCS_BUCKET_URL}/{path}", permanent=True) diff --git a/applications/visualizer/frontend/src/components/viewers/ThreeD/ThreeDViewer.tsx b/applications/visualizer/frontend/src/components/viewers/ThreeD/ThreeDViewer.tsx index e27f0991..6a73c174 100644 --- a/applications/visualizer/frontend/src/components/viewers/ThreeD/ThreeDViewer.tsx +++ b/applications/visualizer/frontend/src/components/viewers/ThreeD/ThreeDViewer.tsx @@ -50,13 +50,13 @@ function ThreeDViewer() { setInstances([ { id: "nerve_ring", - url: "nervering-SEM_adult.stl", + url: "resources/nervering-SEM_adult.stl", color: "white", opacity: 0.5, }, { id: "adal_sem", - url: "ADAL-SEM_adult.stl", + url: "resources/ADAL-SEM_adult.stl", color: "blue", opacity: 1, }, From 984c27d752912f96b5bbd9e119b317e7f0e74d90 Mon Sep 17 00:00:00 2001 From: aranega Date: Wed, 24 Jul 2024 08:46:31 -0600 Subject: [PATCH 06/43] CELE-69 Fix issue with Popper.js that popped out of the blue --- .../visualizer/frontend/vite.config.ts | 3 + applications/visualizer/frontend/yarn.lock | 2250 ++++++----------- 2 files changed, 747 insertions(+), 1506 deletions(-) diff --git a/applications/visualizer/frontend/vite.config.ts b/applications/visualizer/frontend/vite.config.ts index d5f2a444..e49bcbcf 100644 --- a/applications/visualizer/frontend/vite.config.ts +++ b/applications/visualizer/frontend/vite.config.ts @@ -9,6 +9,9 @@ const defaultConfig = { build: { sourcemap: !process.env.NO_SOURCEMAP, }, + optimizeDeps: { + include: ["@mui/material", "@emotion/react", "@emotion/styled"], + }, // publicDir: 'src/assets', }; diff --git a/applications/visualizer/frontend/yarn.lock b/applications/visualizer/frontend/yarn.lock index bc276931..2301cbdf 100644 --- a/applications/visualizer/frontend/yarn.lock +++ b/applications/visualizer/frontend/yarn.lock @@ -2,239 +2,230 @@ # yarn lockfile v1 -"@aashutoshrathi/word-wrap@^1.2.3": - version "1.2.6" - resolved "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz" - integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== - "@ampproject/remapping@^2.2.0": version "2.3.0" - resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== dependencies: "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.24" "@apidevtools/json-schema-ref-parser@^11.5.4": - version "11.5.5" - resolved "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.5.5.tgz" - integrity sha512-hv/aXDILyroHioVW27etFMV+IX6FyNn41YwbeGIAt5h/7fUTQvHI5w3ols8qYAT8aQt3kzexq5ZwxFDxNHIhdQ== + version "11.6.4" + resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.6.4.tgz#0f3e02302f646471d621a8850e6a346d63c8ebd4" + integrity sha512-9K6xOqeevacvweLGik6LnZCb1fBtCOSIWQs8d096XGeqoLKC33UVMGz9+77Gw44KvbH4pKcQPWo4ZpxkXYj05w== dependencies: "@jsdevtools/ono" "^7.1.3" "@types/json-schema" "^7.0.15" js-yaml "^4.1.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.23.5", "@babel/code-frame@^7.24.1", "@babel/code-frame@^7.24.2": - version "7.24.2" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz" - integrity sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.7.tgz#882fd9e09e8ee324e496bd040401c6f046ef4465" + integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA== dependencies: - "@babel/highlight" "^7.24.2" + "@babel/highlight" "^7.24.7" picocolors "^1.0.0" -"@babel/compat-data@^7.23.5": - version "7.24.4" - resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz" - integrity sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ== +"@babel/compat-data@^7.24.8": + version "7.24.9" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.9.tgz#53eee4e68f1c1d0282aa0eb05ddb02d033fc43a0" + integrity sha512-e701mcfApCJqMMueQI0Fb68Amflj83+dvAvHawoBpAz+GDjCIyGHzNwnefjsWJ3xiYAqqiQFoWbspGYBdb2/ng== -"@babel/core@^7.23.5": - version "7.24.4" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.24.4.tgz" - integrity sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg== +"@babel/core@^7.24.5": + version "7.24.9" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.9.tgz#dc07c9d307162c97fa9484ea997ade65841c7c82" + integrity sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.24.2" - "@babel/generator" "^7.24.4" - "@babel/helper-compilation-targets" "^7.23.6" - "@babel/helper-module-transforms" "^7.23.3" - "@babel/helpers" "^7.24.4" - "@babel/parser" "^7.24.4" - "@babel/template" "^7.24.0" - "@babel/traverse" "^7.24.1" - "@babel/types" "^7.24.0" + "@babel/code-frame" "^7.24.7" + "@babel/generator" "^7.24.9" + "@babel/helper-compilation-targets" "^7.24.8" + "@babel/helper-module-transforms" "^7.24.9" + "@babel/helpers" "^7.24.8" + "@babel/parser" "^7.24.8" + "@babel/template" "^7.24.7" + "@babel/traverse" "^7.24.8" + "@babel/types" "^7.24.9" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.24.1", "@babel/generator@^7.24.4": - version "7.24.4" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.24.4.tgz" - integrity sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw== +"@babel/generator@^7.24.8", "@babel/generator@^7.24.9": + version "7.24.10" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.10.tgz#a4ab681ec2a78bbb9ba22a3941195e28a81d8e76" + integrity sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg== dependencies: - "@babel/types" "^7.24.0" + "@babel/types" "^7.24.9" "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.25" jsesc "^2.5.1" -"@babel/helper-compilation-targets@^7.23.6": - 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== +"@babel/helper-compilation-targets@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.8.tgz#b607c3161cd9d1744977d4f97139572fe778c271" + integrity sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw== dependencies: - "@babel/compat-data" "^7.23.5" - "@babel/helper-validator-option" "^7.23.5" - browserslist "^4.22.2" + "@babel/compat-data" "^7.24.8" + "@babel/helper-validator-option" "^7.24.8" + browserslist "^4.23.1" lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-environment-visitor@^7.22.20": - version "7.22.20" - resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz" - integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== - -"@babel/helper-function-name@^7.23.0": - version "7.23.0" - resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz" - integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== - dependencies: - "@babel/template" "^7.22.15" - "@babel/types" "^7.23.0" - -"@babel/helper-hoist-variables@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz" - integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.22.15": - version "7.24.3" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz" - integrity sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg== - dependencies: - "@babel/types" "^7.24.0" - -"@babel/helper-module-transforms@^7.23.3": - version "7.23.3" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz" - integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== - dependencies: - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-module-imports" "^7.22.15" - "@babel/helper-simple-access" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/helper-validator-identifier" "^7.22.20" - -"@babel/helper-plugin-utils@^7.24.0": - version "7.24.0" - resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz" - integrity sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w== - -"@babel/helper-simple-access@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz" - integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-split-export-declaration@^7.22.6": - version "7.22.6" - resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz" - integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-string-parser@^7.23.4": - version "7.24.1" - resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz" - integrity sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ== - -"@babel/helper-validator-identifier@^7.22.20": - version "7.22.20" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz" - integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== - -"@babel/helper-validator-option@^7.23.5": - version "7.23.5" - resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz" - integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== - -"@babel/helpers@^7.24.4": - version "7.24.4" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.4.tgz" - integrity sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw== - dependencies: - "@babel/template" "^7.24.0" - "@babel/traverse" "^7.24.1" - "@babel/types" "^7.24.0" - -"@babel/highlight@^7.24.2": - version "7.24.2" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz" - integrity sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA== - dependencies: - "@babel/helper-validator-identifier" "^7.22.20" +"@babel/helper-environment-visitor@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz#4b31ba9551d1f90781ba83491dd59cf9b269f7d9" + integrity sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ== + dependencies: + "@babel/types" "^7.24.7" + +"@babel/helper-function-name@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz#75f1e1725742f39ac6584ee0b16d94513da38dd2" + integrity sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA== + dependencies: + "@babel/template" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-hoist-variables@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz#b4ede1cde2fd89436397f30dc9376ee06b0f25ee" + integrity sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ== + dependencies: + "@babel/types" "^7.24.7" + +"@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz#f2f980392de5b84c3328fc71d38bd81bbb83042b" + integrity sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-module-transforms@^7.24.9": + version "7.24.9" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.24.9.tgz#e13d26306b89eea569180868e652e7f514de9d29" + integrity sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw== + dependencies: + "@babel/helper-environment-visitor" "^7.24.7" + "@babel/helper-module-imports" "^7.24.7" + "@babel/helper-simple-access" "^7.24.7" + "@babel/helper-split-export-declaration" "^7.24.7" + "@babel/helper-validator-identifier" "^7.24.7" + +"@babel/helper-plugin-utils@^7.24.7": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz#94ee67e8ec0e5d44ea7baeb51e571bd26af07878" + integrity sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg== + +"@babel/helper-simple-access@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz#bcade8da3aec8ed16b9c4953b74e506b51b5edb3" + integrity sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-split-export-declaration@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz#83949436890e07fa3d6873c61a96e3bbf692d856" + integrity sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA== + dependencies: + "@babel/types" "^7.24.7" + +"@babel/helper-string-parser@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz#5b3329c9a58803d5df425e5785865881a81ca48d" + integrity sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ== + +"@babel/helper-validator-identifier@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" + integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== + +"@babel/helper-validator-option@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz#3725cdeea8b480e86d34df15304806a06975e33d" + integrity sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q== + +"@babel/helpers@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.8.tgz#2820d64d5d6686cca8789dd15b074cd862795873" + integrity sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ== + dependencies: + "@babel/template" "^7.24.7" + "@babel/types" "^7.24.8" + +"@babel/highlight@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.7.tgz#a05ab1df134b286558aae0ed41e6c5f731bf409d" + integrity sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw== + dependencies: + "@babel/helper-validator-identifier" "^7.24.7" chalk "^2.4.2" js-tokens "^4.0.0" picocolors "^1.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.24.0", "@babel/parser@^7.24.1", "@babel/parser@^7.24.4": - version "7.24.4" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz" - integrity sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg== +"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.24.7", "@babel/parser@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.8.tgz#58a4dbbcad7eb1d48930524a3fd93d93e9084c6f" + integrity sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w== -"@babel/plugin-transform-react-jsx-self@^7.23.3": - version "7.24.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.1.tgz" - integrity sha512-kDJgnPujTmAZ/9q2CN4m2/lRsUUPDvsG3+tSHWUJIzMGTt5U/b/fwWd3RO3n+5mjLrsBrVa5eKFRVSQbi3dF1w== +"@babel/plugin-transform-react-jsx-self@^7.24.5": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.7.tgz#66bff0248ea0b549972e733516ffad577477bdab" + integrity sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw== dependencies: - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-react-jsx-source@^7.23.3": - version "7.24.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.1.tgz" - integrity sha512-1v202n7aUq4uXAieRTKcwPzNyphlCuqHHDcdSNc+vdhoTEZcFMh+L5yZuCmGaIO7bs1nJUNfHB89TZyoL48xNA== +"@babel/plugin-transform-react-jsx-source@^7.24.1": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.7.tgz#1198aab2548ad19582013815c938d3ebd8291ee3" + integrity sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ== dependencies: - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/runtime@^7.11.2", "@babel/runtime@^7.17.8", "@babel/runtime@^7.23.9", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.7": +"@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.15.4", "@babel/runtime@^7.17.8", "@babel/runtime@^7.18.3", "@babel/runtime@^7.23.9", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": version "7.24.8" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.8.tgz#5d958c3827b13cc6d05e038c07fb2e5e3420d82e" integrity sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA== dependencies: regenerator-runtime "^0.14.0" -"@babel/runtime@^7.12.5", "@babel/runtime@^7.15.4", "@babel/runtime@^7.18.3", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.8.3", "@babel/runtime@^7.9.2": - version "7.24.4" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.4.tgz" - integrity sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA== +"@babel/template@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.7.tgz#02efcee317d0609d2c07117cb70ef8fb17ab7315" + integrity sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig== dependencies: - regenerator-runtime "^0.14.0" + "@babel/code-frame" "^7.24.7" + "@babel/parser" "^7.24.7" + "@babel/types" "^7.24.7" -"@babel/template@^7.22.15", "@babel/template@^7.24.0": - version "7.24.0" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz" - integrity sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA== - dependencies: - "@babel/code-frame" "^7.23.5" - "@babel/parser" "^7.24.0" - "@babel/types" "^7.24.0" - -"@babel/traverse@^7.24.1": - version "7.24.1" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz" - integrity sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ== - dependencies: - "@babel/code-frame" "^7.24.1" - "@babel/generator" "^7.24.1" - "@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.24.1" - "@babel/types" "^7.24.0" +"@babel/traverse@^7.24.7", "@babel/traverse@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.8.tgz#6c14ed5232b7549df3371d820fbd9abfcd7dfab7" + integrity sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/generator" "^7.24.8" + "@babel/helper-environment-visitor" "^7.24.7" + "@babel/helper-function-name" "^7.24.7" + "@babel/helper-hoist-variables" "^7.24.7" + "@babel/helper-split-export-declaration" "^7.24.7" + "@babel/parser" "^7.24.8" + "@babel/types" "^7.24.8" debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.24.0": - version "7.24.0" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz" - integrity sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w== +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.24.7", "@babel/types@^7.24.8", "@babel/types@^7.24.9": + version "7.24.9" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.9.tgz#228ce953d7b0d16646e755acf204f4cf3d08cc73" + integrity sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ== dependencies: - "@babel/helper-string-parser" "^7.23.4" - "@babel/helper-validator-identifier" "^7.22.20" + "@babel/helper-string-parser" "^7.24.8" + "@babel/helper-validator-identifier" "^7.24.7" to-fast-properties "^2.0.0" "@biomejs/biome@1.8.3": @@ -291,16 +282,16 @@ resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-x64/-/cli-win32-x64-1.8.3.tgz#6a9dc5a4e13357277da43c015cd5cdc374035448" integrity sha512-/PJ59vA1pnQeKahemaQf4Nyj7IKUvGQSc3Ze1uIGi+Wvr1xF7rGobSrAAG01T/gUDG21vkDsZYM03NAmPiVkqg== -"@emotion/babel-plugin@^11.11.0": - version "11.11.0" - resolved "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz" - integrity sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ== +"@emotion/babel-plugin@^11.12.0": + version "11.12.0" + resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.12.0.tgz#7b43debb250c313101b3f885eba634f1d723fcc2" + integrity sha512-y2WQb+oP8Jqvvclh8Q55gLUyb7UFvgv7eJfsj7td5TToBrIUtPay2kMrZi4xjq9qw2vD0ZR5fSho0yqoFgX7Rw== dependencies: "@babel/helper-module-imports" "^7.16.7" "@babel/runtime" "^7.18.3" - "@emotion/hash" "^0.9.1" - "@emotion/memoize" "^0.8.1" - "@emotion/serialize" "^1.1.2" + "@emotion/hash" "^0.9.2" + "@emotion/memoize" "^0.9.0" + "@emotion/serialize" "^1.2.0" babel-plugin-macros "^3.1.0" convert-source-map "^1.5.0" escape-string-regexp "^4.0.0" @@ -308,262 +299,230 @@ source-map "^0.5.7" stylis "4.2.0" -"@emotion/cache@^11.11.0": - version "11.11.0" - resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.11.0.tgz#809b33ee6b1cb1a625fef7a45bc568ccd9b8f3ff" - integrity sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ== +"@emotion/cache@^11.11.0", "@emotion/cache@^11.13.0": + version "11.13.0" + resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.13.0.tgz#8f51748b8116691dee0408b08ad758b8d246b097" + integrity sha512-hPV345J/tH0Cwk2wnU/3PBzORQ9HeX+kQSbwI+jslzpRCHE6fSGTohswksA/Ensr8znPzwfzKZCmAM9Lmlhp7g== dependencies: - "@emotion/memoize" "^0.8.1" - "@emotion/sheet" "^1.2.2" - "@emotion/utils" "^1.2.1" - "@emotion/weak-memoize" "^0.3.1" + "@emotion/memoize" "^0.9.0" + "@emotion/sheet" "^1.4.0" + "@emotion/utils" "^1.4.0" + "@emotion/weak-memoize" "^0.4.0" stylis "4.2.0" "@emotion/hash@^0.8.0": version "0.8.0" - resolved "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz" + resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413" integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow== -"@emotion/hash@^0.9.1": - version "0.9.1" - resolved "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz" - integrity sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ== +"@emotion/hash@^0.9.2": + version "0.9.2" + resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.9.2.tgz#ff9221b9f58b4dfe61e619a7788734bd63f6898b" + integrity sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g== -"@emotion/is-prop-valid@^1.2.2": - version "1.2.2" - resolved "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz" - integrity sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw== +"@emotion/is-prop-valid@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.3.0.tgz#bd84ba972195e8a2d42462387581560ef780e4e2" + integrity sha512-SHetuSLvJDzuNbOdtPVbq6yMMMlLoW5Q94uDqJZqy50gcmAjxFkVqmzqSGEFq9gT2iMuIeKV1PXVWmvUhuZLlQ== dependencies: - "@emotion/memoize" "^0.8.1" + "@emotion/memoize" "^0.9.0" -"@emotion/memoize@^0.8.1": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.1.tgz#c1ddb040429c6d21d38cc945fe75c818cfb68e17" - integrity sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA== +"@emotion/memoize@^0.9.0": + version "0.9.0" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.9.0.tgz#745969d649977776b43fc7648c556aaa462b4102" + integrity sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ== "@emotion/react@^11.11.4": - version "11.11.4" - resolved "https://registry.npmjs.org/@emotion/react/-/react-11.11.4.tgz" - integrity sha512-t8AjMlF0gHpvvxk5mAtCqR4vmxiGHCeJBaQO6gncUSdklELOgtwjerNY2yuJNfwnc6vi16U/+uMF+afIawJ9iw== + version "11.13.0" + resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.13.0.tgz#a9ebf827b98220255e5760dac89fa2d38ca7b43d" + integrity sha512-WkL+bw1REC2VNV1goQyfxjx1GYJkcc23CRQkXX+vZNLINyfI7o+uUn/rTGPt/xJ3bJHd5GcljgnxHf4wRw5VWQ== dependencies: "@babel/runtime" "^7.18.3" - "@emotion/babel-plugin" "^11.11.0" - "@emotion/cache" "^11.11.0" - "@emotion/serialize" "^1.1.3" - "@emotion/use-insertion-effect-with-fallbacks" "^1.0.1" - "@emotion/utils" "^1.2.1" - "@emotion/weak-memoize" "^0.3.1" + "@emotion/babel-plugin" "^11.12.0" + "@emotion/cache" "^11.13.0" + "@emotion/serialize" "^1.3.0" + "@emotion/use-insertion-effect-with-fallbacks" "^1.1.0" + "@emotion/utils" "^1.4.0" + "@emotion/weak-memoize" "^0.4.0" hoist-non-react-statics "^3.3.1" -"@emotion/serialize@^1.1.2", "@emotion/serialize@^1.1.3", "@emotion/serialize@^1.1.4": - version "1.1.4" - resolved "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.4.tgz" - integrity sha512-RIN04MBT8g+FnDwgvIUi8czvr1LU1alUMI05LekWB5DGyTm8cCBMCRpq3GqaiyEDRptEXOyXnvZ58GZYu4kBxQ== +"@emotion/serialize@^1.2.0", "@emotion/serialize@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.3.0.tgz#e07cadfc967a4e7816e0c3ffaff4c6ce05cb598d" + integrity sha512-jACuBa9SlYajnpIVXB+XOXnfJHyckDfe6fOpORIM6yhBDlqGuExvDdZYHDQGoDf3bZXGv7tNr+LpLjJqiEQ6EA== dependencies: - "@emotion/hash" "^0.9.1" - "@emotion/memoize" "^0.8.1" - "@emotion/unitless" "^0.8.1" - "@emotion/utils" "^1.2.1" + "@emotion/hash" "^0.9.2" + "@emotion/memoize" "^0.9.0" + "@emotion/unitless" "^0.9.0" + "@emotion/utils" "^1.4.0" csstype "^3.0.2" -"@emotion/sheet@^1.2.2": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.2.2.tgz#d58e788ee27267a14342303e1abb3d508b6d0fec" - integrity sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA== +"@emotion/sheet@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.4.0.tgz#c9299c34d248bc26e82563735f78953d2efca83c" + integrity sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg== "@emotion/styled@^11.11.5": - version "11.11.5" - resolved "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.5.tgz" - integrity sha512-/ZjjnaNKvuMPxcIiUkf/9SHoG4Q196DRl1w82hQ3WCsjo1IUR8uaGWrC6a87CrYAW0Kb/pK7hk8BnLgLRi9KoQ== + version "11.13.0" + resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-11.13.0.tgz#633fd700db701472c7a5dbef54d6f9834e9fb190" + integrity sha512-tkzkY7nQhW/zC4hztlwucpT8QEZ6eUzpXDRhww/Eej4tFfO0FxQYWRyg/c5CCXa4d/f174kqeXYjuQRnhzf6dA== dependencies: "@babel/runtime" "^7.18.3" - "@emotion/babel-plugin" "^11.11.0" - "@emotion/is-prop-valid" "^1.2.2" - "@emotion/serialize" "^1.1.4" - "@emotion/use-insertion-effect-with-fallbacks" "^1.0.1" - "@emotion/utils" "^1.2.1" - -"@emotion/unitless@^0.8.1": - version "0.8.1" - resolved "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz" - integrity sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ== - -"@emotion/use-insertion-effect-with-fallbacks@^1.0.1": - version "1.0.1" - resolved "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz" - integrity sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw== + "@emotion/babel-plugin" "^11.12.0" + "@emotion/is-prop-valid" "^1.3.0" + "@emotion/serialize" "^1.3.0" + "@emotion/use-insertion-effect-with-fallbacks" "^1.1.0" + "@emotion/utils" "^1.4.0" + +"@emotion/unitless@^0.9.0": + version "0.9.0" + resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.9.0.tgz#8e5548f072bd67b8271877e51c0f95c76a66cbe2" + integrity sha512-TP6GgNZtmtFaFcsOgExdnfxLLpRDla4Q66tnenA9CktvVSdNKDvMVuUah4QvWPIpNjrWsGg3qeGo9a43QooGZQ== + +"@emotion/use-insertion-effect-with-fallbacks@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.1.0.tgz#1a818a0b2c481efba0cf34e5ab1e0cb2dcb9dfaf" + integrity sha512-+wBOcIV5snwGgI2ya3u99D7/FJquOIniQT1IKyDsBmEgwvpxMNeS65Oib7OnE2d2aY+3BU4OiH+0Wchf8yk3Hw== -"@emotion/utils@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.2.1.tgz#bbab58465738d31ae4cb3dbb6fc00a5991f755e4" - integrity sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg== - -"@emotion/weak-memoize@^0.3.1": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz#d0fce5d07b0620caa282b5131c297bb60f9d87e6" - integrity sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww== - -"@esbuild/aix-ppc64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz#a70f4ac11c6a1dfc18b8bbb13284155d933b9537" - integrity sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g== - -"@esbuild/android-arm64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz#db1c9202a5bc92ea04c7b6840f1bbe09ebf9e6b9" - integrity sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg== - -"@esbuild/android-arm@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.20.2.tgz#3b488c49aee9d491c2c8f98a909b785870d6e995" - integrity sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w== - -"@esbuild/android-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.20.2.tgz#3b1628029e5576249d2b2d766696e50768449f98" - integrity sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg== - -"@esbuild/darwin-arm64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz#6e8517a045ddd86ae30c6608c8475ebc0c4000bb" - integrity sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA== - -"@esbuild/darwin-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz#90ed098e1f9dd8a9381695b207e1cff45540a0d0" - integrity sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA== - -"@esbuild/freebsd-arm64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz#d71502d1ee89a1130327e890364666c760a2a911" - integrity sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw== - -"@esbuild/freebsd-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz#aa5ea58d9c1dd9af688b8b6f63ef0d3d60cea53c" - integrity sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw== - -"@esbuild/linux-arm64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz#055b63725df678379b0f6db9d0fa85463755b2e5" - integrity sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A== - -"@esbuild/linux-arm@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz#76b3b98cb1f87936fbc37f073efabad49dcd889c" - integrity sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg== - -"@esbuild/linux-ia32@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz#c0e5e787c285264e5dfc7a79f04b8b4eefdad7fa" - integrity sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig== - -"@esbuild/linux-loong64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz#a6184e62bd7cdc63e0c0448b83801001653219c5" - integrity sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ== - -"@esbuild/linux-mips64el@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz#d08e39ce86f45ef8fc88549d29c62b8acf5649aa" - integrity sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA== - -"@esbuild/linux-ppc64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz#8d252f0b7756ffd6d1cbde5ea67ff8fd20437f20" - integrity sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg== - -"@esbuild/linux-riscv64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz#19f6dcdb14409dae607f66ca1181dd4e9db81300" - integrity sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg== - -"@esbuild/linux-s390x@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz#3c830c90f1a5d7dd1473d5595ea4ebb920988685" - integrity sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ== - -"@esbuild/linux-x64@0.20.2": - version "0.20.2" - resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz" - integrity sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw== - -"@esbuild/netbsd-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz#e771c8eb0e0f6e1877ffd4220036b98aed5915e6" - integrity sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ== - -"@esbuild/openbsd-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz#9a795ae4b4e37e674f0f4d716f3e226dd7c39baf" - integrity sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ== - -"@esbuild/sunos-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz#7df23b61a497b8ac189def6e25a95673caedb03f" - integrity sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w== - -"@esbuild/win32-arm64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz#f1ae5abf9ca052ae11c1bc806fb4c0f519bacf90" - integrity sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ== - -"@esbuild/win32-ia32@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz#241fe62c34d8e8461cd708277813e1d0ba55ce23" - integrity sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ== - -"@esbuild/win32-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz#9c907b21e30a52db959ba4f80bb01a0cc403d5cc" - integrity sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ== - -"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": - version "4.4.0" - resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz" - integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== - dependencies: - eslint-visitor-keys "^3.3.0" - -"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.6.1": - version "4.10.0" - resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz" - integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== - -"@eslint/eslintrc@^2.1.4": - version "2.1.4" - resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz" - integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.6.0" - globals "^13.19.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" +"@emotion/utils@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.4.0.tgz#262f1d02aaedb2ec91c83a0955dd47822ad5fbdd" + integrity sha512-spEnrA1b6hDR/C68lC2M7m6ALPUHZC0lIY7jAS/B/9DuuO1ZP04eov8SMv/6fwRd8pzmsn2AuJEznRREWlQrlQ== -"@eslint/js@8.57.0": - version "8.57.0" - resolved "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz" - integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g== +"@emotion/weak-memoize@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz#5e13fac887f08c44f76b0ccaf3370eb00fec9bb6" + integrity sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg== + +"@esbuild/aix-ppc64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f" + integrity sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ== + +"@esbuild/android-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz#09d9b4357780da9ea3a7dfb833a1f1ff439b4052" + integrity sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A== + +"@esbuild/android-arm@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz#9b04384fb771926dfa6d7ad04324ecb2ab9b2e28" + integrity sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg== + +"@esbuild/android-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz#29918ec2db754cedcb6c1b04de8cd6547af6461e" + integrity sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA== + +"@esbuild/darwin-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz#e495b539660e51690f3928af50a76fb0a6ccff2a" + integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ== + +"@esbuild/darwin-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz#c13838fa57372839abdddc91d71542ceea2e1e22" + integrity sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw== + +"@esbuild/freebsd-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz#646b989aa20bf89fd071dd5dbfad69a3542e550e" + integrity sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g== + +"@esbuild/freebsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz#aa615cfc80af954d3458906e38ca22c18cf5c261" + integrity sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ== + +"@esbuild/linux-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz#70ac6fa14f5cb7e1f7f887bcffb680ad09922b5b" + integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q== + +"@esbuild/linux-arm@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz#fc6fd11a8aca56c1f6f3894f2bea0479f8f626b9" + integrity sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA== + +"@esbuild/linux-ia32@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz#3271f53b3f93e3d093d518d1649d6d68d346ede2" + integrity sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg== + +"@esbuild/linux-loong64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz#ed62e04238c57026aea831c5a130b73c0f9f26df" + integrity sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg== + +"@esbuild/linux-mips64el@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz#e79b8eb48bf3b106fadec1ac8240fb97b4e64cbe" + integrity sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg== + +"@esbuild/linux-ppc64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz#5f2203860a143b9919d383ef7573521fb154c3e4" + integrity sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w== + +"@esbuild/linux-riscv64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz#07bcafd99322d5af62f618cb9e6a9b7f4bb825dc" + integrity sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA== + +"@esbuild/linux-s390x@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz#b7ccf686751d6a3e44b8627ababc8be3ef62d8de" + integrity sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A== + +"@esbuild/linux-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz#6d8f0c768e070e64309af8004bb94e68ab2bb3b0" + integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ== + +"@esbuild/netbsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz#bbe430f60d378ecb88decb219c602667387a6047" + integrity sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg== + +"@esbuild/openbsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz#99d1cf2937279560d2104821f5ccce220cb2af70" + integrity sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow== + +"@esbuild/sunos-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz#08741512c10d529566baba837b4fe052c8f3487b" + integrity sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg== + +"@esbuild/win32-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz#675b7385398411240735016144ab2e99a60fc75d" + integrity sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A== + +"@esbuild/win32-ia32@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz#1bfc3ce98aa6ca9a0969e4d2af72144c59c1193b" + integrity sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA== + +"@esbuild/win32-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c" + integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== "@floating-ui/core@^1.6.0": - version "1.6.4" - resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.6.4.tgz#0140cf5091c8dee602bff9da5ab330840ff91df6" - integrity sha512-a4IowK4QkXl4SCWTGUR0INAfEOX3wtsYw3rKK5InQEHMGObkR8Xk44qYQD9P4r6HHw0iIfK6GUKECmY8sTkqRA== + version "1.6.5" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.6.5.tgz#102335cac0d22035b04d70ca5ff092d2d1a26f2b" + integrity sha512-8GrTWmoFhm5BsMZOTHeGD2/0FLKLQQHvO/ZmQga4tKempYRLz8aqJGqXVuQgisnMObq2YZ2SgkwctN1LOOxcqA== dependencies: - "@floating-ui/utils" "^0.2.4" + "@floating-ui/utils" "^0.2.5" "@floating-ui/dom@^1.0.0": - version "1.6.7" - resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.6.7.tgz#85d22f731fcc5b209db504478fb1df5116a83015" - integrity sha512-wmVfPG5o2xnKDU4jx/m4w5qva9FWHcnZ8BvzEe90D/RpwsJaTAVYPEPdQ8sbr/N8zZTAHlZUTQdqg8ZUbzHmng== + version "1.6.8" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.6.8.tgz#45e20532b6d8a061b356a4fb336022cf2609754d" + integrity sha512-kx62rP19VZ767Q653wsP1XZCGIirkE09E0QUGNYTM/ttbbQHqcGPdSfWFxUyyNLc/W6aoJRBajOSXhP6GXjC0Q== dependencies: "@floating-ui/core" "^1.6.0" - "@floating-ui/utils" "^0.2.4" + "@floating-ui/utils" "^0.2.5" "@floating-ui/react-dom@^2.0.8": version "2.1.1" @@ -572,38 +531,19 @@ dependencies: "@floating-ui/dom" "^1.0.0" -"@floating-ui/utils@^0.2.4": - version "0.2.4" - resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.4.tgz#1d459cee5031893a08a0e064c406ad2130cced7c" - integrity sha512-dWO2pw8hhi+WrXq1YJy2yCuWoL20PddgGaqTgVe4cOS9Q6qklXCiA1tJEqX6BEwRNSCP84/afac9hd4MS+zEUA== - -"@humanwhocodes/config-array@^0.11.14": - version "0.11.14" - resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz" - integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== - dependencies: - "@humanwhocodes/object-schema" "^2.0.2" - debug "^4.3.1" - minimatch "^3.0.5" - -"@humanwhocodes/module-importer@^1.0.1": - version "1.0.1" - resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" - integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== - -"@humanwhocodes/object-schema@^2.0.2": - version "2.0.3" - resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz" - integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== +"@floating-ui/utils@^0.2.5": + version "0.2.5" + resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.5.tgz#105c37d9d9620ce69b7f692a20c821bf1ad2cbf9" + integrity sha512-sTcG+QZ6fdEUObICavU+aB3Mp8HY4n14wYHdxK4fXjPmv3PXZZeY5RaguJmGyeH/CJQhX3fqKUtS4qc1LoHwhQ== "@icons/material@^0.2.4": version "0.2.4" - resolved "https://registry.npmjs.org/@icons/material/-/material-0.2.4.tgz" + resolved "https://registry.yarnpkg.com/@icons/material/-/material-0.2.4.tgz#e90c9f71768b3736e76d7dd6783fc6c2afa88bc8" integrity sha512-QPcGmICAPbGLGb6F/yNf/KzKqvFx8z5qx3D1yFqVAjoFmXK35EgyW+cJ57Te3CNsmzblwtzakLGFqHPqrfb4Tw== "@jridgewell/gen-mapping@^0.3.5": version "0.3.5" - resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== dependencies: "@jridgewell/set-array" "^1.2.1" @@ -612,22 +552,22 @@ "@jridgewell/resolve-uri@^3.1.0": version "3.1.2" - resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== "@jridgewell/set-array@^1.2.1": version "1.2.1" - resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": - version "1.4.15" - resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz" - integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + version "1.5.0" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": version "0.3.25" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== dependencies: "@jridgewell/resolve-uri" "^3.1.0" @@ -635,12 +575,12 @@ "@jsdevtools/ono@^7.1.3": version "7.1.3" - resolved "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz" + resolved "https://registry.yarnpkg.com/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796" integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg== "@material-ui/core@^4.1.3": version "4.12.4" - resolved "https://registry.npmjs.org/@material-ui/core/-/core-4.12.4.tgz" + resolved "https://registry.yarnpkg.com/@material-ui/core/-/core-4.12.4.tgz#4ac17488e8fcaf55eb6a7f5efb2a131e10138a73" integrity sha512-tr7xekNlM9LjA6pagJmL8QCgZXaubWUwkJnoYcMKd4gw/t4XiyvnTkjdGrUVicyB2BsdaAv1tvow45bPM4sSwQ== dependencies: "@babel/runtime" "^7.4.4" @@ -658,7 +598,7 @@ "@material-ui/styles@^4.11.5": version "4.11.5" - resolved "https://registry.npmjs.org/@material-ui/styles/-/styles-4.11.5.tgz" + resolved "https://registry.yarnpkg.com/@material-ui/styles/-/styles-4.11.5.tgz#19f84457df3aafd956ac863dbe156b1d88e2bbfb" integrity sha512-o/41ot5JJiUsIETME9wVLAJrmIWL3j0R0Bj2kCOLbSfqEkKf0fmaPt+5vtblUh5eXr2S+J/8J3DaCb10+CzPGA== dependencies: "@babel/runtime" "^7.4.4" @@ -680,7 +620,7 @@ "@material-ui/system@^4.12.2": version "4.12.2" - resolved "https://registry.npmjs.org/@material-ui/system/-/system-4.12.2.tgz" + resolved "https://registry.yarnpkg.com/@material-ui/system/-/system-4.12.2.tgz#f5c389adf3fce4146edd489bf4082d461d86aa8b" integrity sha512-6CSKu2MtmiJgcCGf6nBQpM8fLkuB9F55EKfbdTC80NND5wpTmKzwdhLYLH3zL4cLlK0gVaaltW7/wMuyTnN0Lw== dependencies: "@babel/runtime" "^7.4.4" @@ -690,12 +630,12 @@ "@material-ui/types@5.1.0": version "5.1.0" - resolved "https://registry.npmjs.org/@material-ui/types/-/types-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/@material-ui/types/-/types-5.1.0.tgz#efa1c7a0b0eaa4c7c87ac0390445f0f88b0d88f2" integrity sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A== "@material-ui/utils@^4.11.3": version "4.11.3" - resolved "https://registry.npmjs.org/@material-ui/utils/-/utils-4.11.3.tgz" + resolved "https://registry.yarnpkg.com/@material-ui/utils/-/utils-4.11.3.tgz#232bd86c4ea81dab714f21edad70b7fdf0253942" integrity sha512-ZuQPV4rBK/V1j2dIkSSEcH5uT6AaHuKWFfotADHsC0wVL1NLd2WkFCm4ZZbX33iO4ydl6V0GPngKm8HZQ2oujg== dependencies: "@babel/runtime" "^7.4.4" @@ -709,7 +649,7 @@ "@metacell/geppetto-meta-client@^1.2.8": version "1.2.8" - resolved "https://registry.npmjs.org/@metacell/geppetto-meta-client/-/geppetto-meta-client-1.2.8.tgz" + resolved "https://registry.yarnpkg.com/@metacell/geppetto-meta-client/-/geppetto-meta-client-1.2.8.tgz#84c3b791288452f987cb3a1e56a47c9a8952bd59" integrity sha512-pDORhlNYv5HILPaGPuJGFV5xLgvdtrtHklBfTW3jMfBAzbXO5qxRyslfpES2VxdcFGONW5Gr6KCbRWBmm2My+g== dependencies: "@material-ui/core" "^4.1.3" @@ -722,12 +662,12 @@ "@metacell/geppetto-meta-core@^1.2.8": version "1.2.8" - resolved "https://registry.npmjs.org/@metacell/geppetto-meta-core/-/geppetto-meta-core-1.2.8.tgz" + resolved "https://registry.yarnpkg.com/@metacell/geppetto-meta-core/-/geppetto-meta-core-1.2.8.tgz#34e991feb099bb63d3737b7f8495df5b8b1f3425" integrity sha512-1AMhQLw3+3YFufG2YUsgsxi3YGZx94VKloXq5aENZo5ZLW+aLvlSAUcRUl68LUPt/Axd+6xc1R7qGNOghv7Irw== "@metacell/geppetto-meta-ui@^1.2.8": version "1.2.8" - resolved "https://registry.npmjs.org/@metacell/geppetto-meta-ui/-/geppetto-meta-ui-1.2.8.tgz" + resolved "https://registry.yarnpkg.com/@metacell/geppetto-meta-ui/-/geppetto-meta-ui-1.2.8.tgz#3a6b34e561de88e88b892ae8bc80a32cc2e4b2a1" integrity sha512-wiC7GiJZWp66wUG4jIGcP1wieAi4fEtyncpEcNjwssuURSddixFnCkH0dSX5KwJ3PjDbHEyco6/M6nG+DYFJlw== "@monogrid/gainmap-js@^3.0.5": @@ -829,27 +769,6 @@ prop-types "^15.8.1" react-is "^18.3.1" -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": - version "1.2.8" - resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - "@popperjs/core@^2.11.8": version "2.11.8" resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" @@ -902,9 +821,9 @@ integrity sha512-POu8Mk0hIU3lRXB3bGIGe4VHIwwDsQyoD1F394OK7STTiX9w4dG3cTLljjYswkQN+hDSHRrj4O36kuVa7KPU8Q== "@react-three/drei@^9.105.4": - version "9.108.4" - resolved "https://registry.yarnpkg.com/@react-three/drei/-/drei-9.108.4.tgz#d3eb3cedc35df8523b99467a84af52250b724960" - integrity sha512-YyPVG7+np6G8CJRVVdEfgK+bou7cvp8v9R7k4NSHsoi5EokFPG03tkCjniRiz5SzQyN+E8kCiMogI9oZaop5+g== + version "9.109.2" + resolved "https://registry.yarnpkg.com/@react-three/drei/-/drei-9.109.2.tgz#37e79924550614d7e3db32c5d115188c4e3f01af" + integrity sha512-oUbfjiyPQeQch4Mi3jZvFKigMlc97/xvazxyjPBCGa8RP8cHZJl187eZI9Ha1WwkVaX80DfgN7bYAWXS4ywxmw== dependencies: "@babel/runtime" "^7.11.2" "@mediapipe/tasks-vision" "0.10.8" @@ -957,85 +876,85 @@ redux-thunk "^3.1.0" reselect "^5.1.0" -"@rollup/rollup-android-arm-eabi@4.14.3": - version "4.14.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.14.3.tgz#bddf05c3387d02fac04b6b86b3a779337edfed75" - integrity sha512-X9alQ3XM6I9IlSlmC8ddAvMSyG1WuHk5oUnXGw+yUBs3BFoTizmG1La/Gr8fVJvDWAq+zlYTZ9DBgrlKRVY06g== - -"@rollup/rollup-android-arm64@4.14.3": - version "4.14.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.14.3.tgz#b26bd09de58704c0a45e3375b76796f6eda825e4" - integrity sha512-eQK5JIi+POhFpzk+LnjKIy4Ks+pwJ+NXmPxOCSvOKSNRPONzKuUvWE+P9JxGZVxrtzm6BAYMaL50FFuPe0oWMQ== - -"@rollup/rollup-darwin-arm64@4.14.3": - version "4.14.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.14.3.tgz#c5f3fd1aa285b6d33dda6e3f3ca395f8c37fd5ca" - integrity sha512-Od4vE6f6CTT53yM1jgcLqNfItTsLt5zE46fdPaEmeFHvPs5SjZYlLpHrSiHEKR1+HdRfxuzXHjDOIxQyC3ptBA== - -"@rollup/rollup-darwin-x64@4.14.3": - version "4.14.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.14.3.tgz#8e4673734d7dc9d68f6d48e81246055cda0e840f" - integrity sha512-0IMAO21axJeNIrvS9lSe/PGthc8ZUS+zC53O0VhF5gMxfmcKAP4ESkKOCwEi6u2asUrt4mQv2rjY8QseIEb1aw== - -"@rollup/rollup-linux-arm-gnueabihf@4.14.3": - version "4.14.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.14.3.tgz#53ed38eb13b58ababdb55a7f66f0538a7f85dcba" - integrity sha512-ge2DC7tHRHa3caVEoSbPRJpq7azhG+xYsd6u2MEnJ6XzPSzQsTKyXvh6iWjXRf7Rt9ykIUWHtl0Uz3T6yXPpKw== - -"@rollup/rollup-linux-arm-musleabihf@4.14.3": - version "4.14.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.14.3.tgz#0706ee38330e267a5c9326956820f009cfb21fcd" - integrity sha512-ljcuiDI4V3ySuc7eSk4lQ9wU8J8r8KrOUvB2U+TtK0TiW6OFDmJ+DdIjjwZHIw9CNxzbmXY39wwpzYuFDwNXuw== - -"@rollup/rollup-linux-arm64-gnu@4.14.3": - version "4.14.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.14.3.tgz#426fce7b8b242ac5abd48a10a5020f5a468c6cb4" - integrity sha512-Eci2us9VTHm1eSyn5/eEpaC7eP/mp5n46gTRB3Aar3BgSvDQGJZuicyq6TsH4HngNBgVqC5sDYxOzTExSU+NjA== - -"@rollup/rollup-linux-arm64-musl@4.14.3": - version "4.14.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.14.3.tgz#65bf944530d759b50d7ffd00dfbdf4125a43406f" - integrity sha512-UrBoMLCq4E92/LCqlh+blpqMz5h1tJttPIniwUgOFJyjWI1qrtrDhhpHPuFxULlUmjFHfloWdixtDhSxJt5iKw== - -"@rollup/rollup-linux-powerpc64le-gnu@4.14.3": - version "4.14.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.14.3.tgz#494ba3b31095e9a45df9c3f646d21400fb631a95" - integrity sha512-5aRjvsS8q1nWN8AoRfrq5+9IflC3P1leMoy4r2WjXyFqf3qcqsxRCfxtZIV58tCxd+Yv7WELPcO9mY9aeQyAmw== - -"@rollup/rollup-linux-riscv64-gnu@4.14.3": - version "4.14.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.14.3.tgz#8b88ed0a40724cce04aa15374ebe5ba4092d679f" - integrity sha512-sk/Qh1j2/RJSX7FhEpJn8n0ndxy/uf0kI/9Zc4b1ELhqULVdTfN6HL31CDaTChiBAOgLcsJ1sgVZjWv8XNEsAQ== - -"@rollup/rollup-linux-s390x-gnu@4.14.3": - version "4.14.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.14.3.tgz#09c9e5ec57a0f6ec3551272c860bb9a04b96d70f" - integrity sha512-jOO/PEaDitOmY9TgkxF/TQIjXySQe5KVYB57H/8LRP/ux0ZoO8cSHCX17asMSv3ruwslXW/TLBcxyaUzGRHcqg== - -"@rollup/rollup-linux-x64-gnu@4.14.3": - version "4.14.3" - resolved "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.14.3.tgz" - integrity sha512-8ybV4Xjy59xLMyWo3GCfEGqtKV5M5gCSrZlxkPGvEPCGDLNla7v48S662HSGwRd6/2cSneMQWiv+QzcttLrrOA== - -"@rollup/rollup-linux-x64-musl@4.14.3": - version "4.14.3" - resolved "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.14.3.tgz" - integrity sha512-s+xf1I46trOY10OqAtZ5Rm6lzHre/UiLA1J2uOhCFXWkbZrJRkYBPO6FhvGfHmdtQ3Bx793MNa7LvoWFAm93bg== - -"@rollup/rollup-win32-arm64-msvc@4.14.3": - version "4.14.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.14.3.tgz#a648122389d23a7543b261fba082e65fefefe4f6" - integrity sha512-+4h2WrGOYsOumDQ5S2sYNyhVfrue+9tc9XcLWLh+Kw3UOxAvrfOrSMFon60KspcDdytkNDh7K2Vs6eMaYImAZg== - -"@rollup/rollup-win32-ia32-msvc@4.14.3": - version "4.14.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.14.3.tgz#34727b5c7953c35fc6e1ae4f770ad3a2025f8e03" - integrity sha512-T1l7y/bCeL/kUwh9OD4PQT4aM7Bq43vX05htPJJ46RTI4r5KNt6qJRzAfNfM+OYMNEVBWQzR2Gyk+FXLZfogGw== - -"@rollup/rollup-win32-x64-msvc@4.14.3": - version "4.14.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.14.3.tgz#5b2fb4d8cd44c05deef8a7b0e6deb9ccb8939d18" - integrity sha512-/BypzV0H1y1HzgYpxqRaXGBRqfodgoBBCcsrujT6QRcakDQdfU+Lq9PENPh5jB4I44YWq+0C2eHsHya+nZY1sA== +"@rollup/rollup-android-arm-eabi@4.19.0": + version "4.19.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.19.0.tgz#3d9fd50164b94964f5de68c3c4ce61933b3a338d" + integrity sha512-JlPfZ/C7yn5S5p0yKk7uhHTTnFlvTgLetl2VxqE518QgyM7C9bSfFTYvB/Q/ftkq0RIPY4ySxTz+/wKJ/dXC0w== + +"@rollup/rollup-android-arm64@4.19.0": + version "4.19.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.19.0.tgz#e1a6d4bca2eb08c84fd996a4bf896ce4b6f4014c" + integrity sha512-RDxUSY8D1tWYfn00DDi5myxKgOk6RvWPxhmWexcICt/MEC6yEMr4HNCu1sXXYLw8iAsg0D44NuU+qNq7zVWCrw== + +"@rollup/rollup-darwin-arm64@4.19.0": + version "4.19.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.19.0.tgz#0a3fffea69489a24a96079af414b0be78df8abbc" + integrity sha512-emvKHL4B15x6nlNTBMtIaC9tLPRpeA5jMvRLXVbl/W9Ie7HhkrE7KQjvgS9uxgatL1HmHWDXk5TTS4IaNJxbAA== + +"@rollup/rollup-darwin-x64@4.19.0": + version "4.19.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.19.0.tgz#13fbdb15f58f090871b0ffff047ece06ad6ad74c" + integrity sha512-fO28cWA1dC57qCd+D0rfLC4VPbh6EOJXrreBmFLWPGI9dpMlER2YwSPZzSGfq11XgcEpPukPTfEVFtw2q2nYJg== + +"@rollup/rollup-linux-arm-gnueabihf@4.19.0": + version "4.19.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.19.0.tgz#e9d9219ddf6f6e946e2ee322198af12466d2c868" + integrity sha512-2Rn36Ubxdv32NUcfm0wB1tgKqkQuft00PtM23VqLuCUR4N5jcNWDoV5iBC9jeGdgS38WK66ElncprqgMUOyomw== + +"@rollup/rollup-linux-arm-musleabihf@4.19.0": + version "4.19.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.19.0.tgz#4ba804a00b5e793196a622f6977e05f23e01f59a" + integrity sha512-gJuzIVdq/X1ZA2bHeCGCISe0VWqCoNT8BvkQ+BfsixXwTOndhtLUpOg0A1Fcx/+eA6ei6rMBzlOz4JzmiDw7JQ== + +"@rollup/rollup-linux-arm64-gnu@4.19.0": + version "4.19.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.19.0.tgz#d871e3f41de759a6db27fc99235b782ba47c15cc" + integrity sha512-0EkX2HYPkSADo9cfeGFoQ7R0/wTKb7q6DdwI4Yn/ULFE1wuRRCHybxpl2goQrx4c/yzK3I8OlgtBu4xvted0ug== + +"@rollup/rollup-linux-arm64-musl@4.19.0": + version "4.19.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.19.0.tgz#6e63f7ad4cc51bd2c693a2826fd279de9eaa05b5" + integrity sha512-GlIQRj9px52ISomIOEUq/IojLZqzkvRpdP3cLgIE1wUWaiU5Takwlzpz002q0Nxxr1y2ZgxC2obWxjr13lvxNQ== + +"@rollup/rollup-linux-powerpc64le-gnu@4.19.0": + version "4.19.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.19.0.tgz#1540b284d91c440bc9fa7a1714cfb71a5597e94d" + integrity sha512-N6cFJzssruDLUOKfEKeovCKiHcdwVYOT1Hs6dovDQ61+Y9n3Ek4zXvtghPPelt6U0AH4aDGnDLb83uiJMkWYzQ== + +"@rollup/rollup-linux-riscv64-gnu@4.19.0": + version "4.19.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.19.0.tgz#70ae58103b5bc7ba2e2235738b51d97022c8ef92" + integrity sha512-2DnD3mkS2uuam/alF+I7M84koGwvn3ZVD7uG+LEWpyzo/bq8+kKnus2EVCkcvh6PlNB8QPNFOz6fWd5N8o1CYg== + +"@rollup/rollup-linux-s390x-gnu@4.19.0": + version "4.19.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.19.0.tgz#579ca5f271421a961d3c73d221202c79e02ff03a" + integrity sha512-D6pkaF7OpE7lzlTOFCB2m3Ngzu2ykw40Nka9WmKGUOTS3xcIieHe82slQlNq69sVB04ch73thKYIWz/Ian8DUA== + +"@rollup/rollup-linux-x64-gnu@4.19.0": + version "4.19.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.19.0.tgz#f0282d761b8b4e7b92b236813475248e37231849" + integrity sha512-HBndjQLP8OsdJNSxpNIN0einbDmRFg9+UQeZV1eiYupIRuZsDEoeGU43NQsS34Pp166DtwQOnpcbV/zQxM+rWA== + +"@rollup/rollup-linux-x64-musl@4.19.0": + version "4.19.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.19.0.tgz#65da807ac66c505ad14b76f1e5976006cb67dd5f" + integrity sha512-HxfbvfCKJe/RMYJJn0a12eiOI9OOtAUF4G6ozrFUK95BNyoJaSiBjIOHjZskTUffUrB84IPKkFG9H9nEvJGW6A== + +"@rollup/rollup-win32-arm64-msvc@4.19.0": + version "4.19.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.19.0.tgz#1eed24b91f421c2eea8bb7ca8889ba0c867e1780" + integrity sha512-HxDMKIhmcguGTiP5TsLNolwBUK3nGGUEoV/BO9ldUBoMLBssvh4J0X8pf11i1fTV7WShWItB1bKAKjX4RQeYmg== + +"@rollup/rollup-win32-ia32-msvc@4.19.0": + version "4.19.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.19.0.tgz#1ed93c9cdc84e185359797a686f4d1576afcea58" + integrity sha512-xItlIAZZaiG/u0wooGzRsx11rokP4qyc/79LkAOdznGRAbOFc+SfEdfUOszG1odsHNgwippUJavag/+W/Etc6Q== + +"@rollup/rollup-win32-x64-msvc@4.19.0": + version "4.19.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.19.0.tgz#baf9b65023ea2ecc5e6ec68f787a0fecfd8ee84c" + integrity sha512-xNo5fV5ycvCCKqiZcpB65VMR11NJB+StnxHz20jdqRAktfdfzhgjTiJ2doTDQE/7dqGaV5I7ZGqKpgph6lCIag== "@tweenjs/tween.js@~23.1.1", "@tweenjs/tween.js@~23.1.2": version "23.1.2" @@ -1044,7 +963,7 @@ "@types/babel__core@^7.20.5": version "7.20.5" - resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== dependencies: "@babel/parser" "^7.20.7" @@ -1055,30 +974,30 @@ "@types/babel__generator@*": version "7.6.8" - resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.8.tgz#f836c61f48b1346e7d2b0d93c6dacc5b9535d3ab" integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw== dependencies: "@babel/types" "^7.0.0" "@types/babel__template@*": version "7.4.4" - resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" "@types/babel__traverse@*": - version "7.20.5" - resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz" - integrity sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ== + version "7.20.6" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.6.tgz#8dc9f0ae0f202c08d8d4dab648912c8d6038e3f7" + integrity sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg== dependencies: "@babel/types" "^7.20.7" "@types/cytoscape@^3.21.1": - version "3.21.1" - resolved "https://registry.npmjs.org/@types/cytoscape/-/cytoscape-3.21.1.tgz" - integrity sha512-vBC2w0ciULoay50QnSScFg9Yu/9gimyor3vb4b4gEEI+4Ccfu/AH7gA+YKAcFIvo1mgKVhXaewNxw3zC80cXoA== + version "3.21.5" + resolved "https://registry.yarnpkg.com/@types/cytoscape/-/cytoscape-3.21.5.tgz#43ea460b2809ff424225377f270750f674c27f75" + integrity sha512-fzYT3vqY5J4gxVXDOsCgDpm0ZdU8bQq+wCv0ucS0MSTtvQdjs3lcb2VetJiUSAd4WBgouqizI+JT1f8Yc6eY7Q== "@types/draco3d@^1.4.0": version "1.4.10" @@ -1087,12 +1006,12 @@ "@types/estree@1.0.5": version "1.0.5" - resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== "@types/hoist-non-react-statics@^3.3.0": version "3.3.5" - resolved "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz" + resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz#dab7867ef789d87e2b4b0003c9d65c49cc44a494" integrity sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg== dependencies: "@types/react" "*" @@ -1100,7 +1019,7 @@ "@types/json-schema@^7.0.15": version "7.0.15" - resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== "@types/offscreencanvas@^2019.6.4": @@ -1110,7 +1029,7 @@ "@types/parse-json@^4.0.0": version "4.0.2" - resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239" integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw== "@types/prop-types@*", "@types/prop-types@^15.7.12": @@ -1119,9 +1038,9 @@ integrity sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q== "@types/react-dom@^18.2.22": - version "18.2.25" - resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.25.tgz" - integrity sha512-o/V48vf4MQh7juIKZU2QGDfli6p1+OOi5oXx36Hffpc9adsHeXjVp8rHuPkjd8VT8sOJ2Zp05HR7CdpGTIUFUA== + version "18.3.0" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.3.0.tgz#0cbc818755d87066ab6ca74fbedb2547d74a82b0" + integrity sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg== dependencies: "@types/react" "*" @@ -1141,7 +1060,7 @@ "@types/react-redux@^7.1.20": version "7.1.33" - resolved "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.33.tgz" + resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.33.tgz#53c5564f03f1ded90904e3c90f77e4bd4dc20b15" integrity sha512-NF8m5AjWCkert+fosDsN3hAlHzpjSiXlVy9EgQEmLoBhaNXbmyeGs/aj5dQzKuF+/q+S7JQagorGDW8pJ28Hmg== dependencies: "@types/hoist-non-react-statics" "^3.3.0" @@ -1151,12 +1070,12 @@ "@types/react-transition-group@^4.2.0", "@types/react-transition-group@^4.4.10": version "4.4.10" - resolved "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz" + resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.10.tgz#6ee71127bdab1f18f11ad8fb3322c6da27c327ac" integrity sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q== dependencies: "@types/react" "*" -"@types/react@*": +"@types/react@*", "@types/react@^18.2.66": version "18.3.3" resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.3.tgz#9679020895318b0915d7a3ab004d92d33375c45f" integrity sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw== @@ -1164,19 +1083,6 @@ "@types/prop-types" "*" csstype "^3.0.2" -"@types/react@^18.2.66": - version "18.2.79" - resolved "https://registry.npmjs.org/@types/react/-/react-18.2.79.tgz" - integrity sha512-RwGAGXPl9kSXwdNTafkOEuFrTBD5SA2B3iEB96xi8+xu5ddUa/cpvyVCSNn+asgLCTHkb5ZxN8gbuibYJi4s1w== - dependencies: - "@types/prop-types" "*" - csstype "^3.0.2" - -"@types/semver@^7.5.8": - version "7.5.8" - resolved "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz" - integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== - "@types/stats.js@*": version "0.17.3" resolved "https://registry.yarnpkg.com/@types/stats.js/-/stats.js-0.17.3.tgz#705446e12ce0fad618557dd88236f51148b7a935" @@ -1214,97 +1120,6 @@ resolved "https://registry.yarnpkg.com/@types/webxr/-/webxr-0.5.19.tgz#463a27bc06ff1c0a0c997e86b48bf24c5f50a4af" integrity sha512-4hxA+NwohSgImdTSlPXEqDqqFktNgmTXQ05ff1uWam05tNGroCMp4G+4XVl6qWm1p7GQ/9oD41kAYsSssF6Mzw== -"@typescript-eslint/eslint-plugin@^7.2.0": - version "7.7.0" - resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.7.0.tgz" - integrity sha512-GJWR0YnfrKnsRoluVO3PRb9r5aMZriiMMM/RHj5nnTrBy1/wIgk76XCtCKcnXGjpZQJQRFtGV9/0JJ6n30uwpQ== - dependencies: - "@eslint-community/regexpp" "^4.10.0" - "@typescript-eslint/scope-manager" "7.7.0" - "@typescript-eslint/type-utils" "7.7.0" - "@typescript-eslint/utils" "7.7.0" - "@typescript-eslint/visitor-keys" "7.7.0" - debug "^4.3.4" - graphemer "^1.4.0" - ignore "^5.3.1" - natural-compare "^1.4.0" - semver "^7.6.0" - ts-api-utils "^1.3.0" - -"@typescript-eslint/parser@^7.2.0": - version "7.7.0" - resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.7.0.tgz" - integrity sha512-fNcDm3wSwVM8QYL4HKVBggdIPAy9Q41vcvC/GtDobw3c4ndVT3K6cqudUmjHPw8EAp4ufax0o58/xvWaP2FmTg== - dependencies: - "@typescript-eslint/scope-manager" "7.7.0" - "@typescript-eslint/types" "7.7.0" - "@typescript-eslint/typescript-estree" "7.7.0" - "@typescript-eslint/visitor-keys" "7.7.0" - debug "^4.3.4" - -"@typescript-eslint/scope-manager@7.7.0": - version "7.7.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.7.0.tgz" - integrity sha512-/8INDn0YLInbe9Wt7dK4cXLDYp0fNHP5xKLHvZl3mOT5X17rK/YShXaiNmorl+/U4VKCVIjJnx4Ri5b0y+HClw== - dependencies: - "@typescript-eslint/types" "7.7.0" - "@typescript-eslint/visitor-keys" "7.7.0" - -"@typescript-eslint/type-utils@7.7.0": - version "7.7.0" - resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.7.0.tgz" - integrity sha512-bOp3ejoRYrhAlnT/bozNQi3nio9tIgv3U5C0mVDdZC7cpcQEDZXvq8inrHYghLVwuNABRqrMW5tzAv88Vy77Sg== - dependencies: - "@typescript-eslint/typescript-estree" "7.7.0" - "@typescript-eslint/utils" "7.7.0" - debug "^4.3.4" - ts-api-utils "^1.3.0" - -"@typescript-eslint/types@7.7.0": - version "7.7.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.7.0.tgz" - integrity sha512-G01YPZ1Bd2hn+KPpIbrAhEWOn5lQBrjxkzHkWvP6NucMXFtfXoevK82hzQdpfuQYuhkvFDeQYbzXCjR1z9Z03w== - -"@typescript-eslint/typescript-estree@7.7.0": - version "7.7.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.7.0.tgz" - integrity sha512-8p71HQPE6CbxIBy2kWHqM1KGrC07pk6RJn40n0DSc6bMOBBREZxSDJ+BmRzc8B5OdaMh1ty3mkuWRg4sCFiDQQ== - dependencies: - "@typescript-eslint/types" "7.7.0" - "@typescript-eslint/visitor-keys" "7.7.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - minimatch "^9.0.4" - semver "^7.6.0" - ts-api-utils "^1.3.0" - -"@typescript-eslint/utils@7.7.0": - version "7.7.0" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.7.0.tgz" - integrity sha512-LKGAXMPQs8U/zMRFXDZOzmMKgFv3COlxUQ+2NMPhbqgVm6R1w+nU1i4836Pmxu9jZAuIeyySNrN/6Rc657ggig== - dependencies: - "@eslint-community/eslint-utils" "^4.4.0" - "@types/json-schema" "^7.0.15" - "@types/semver" "^7.5.8" - "@typescript-eslint/scope-manager" "7.7.0" - "@typescript-eslint/types" "7.7.0" - "@typescript-eslint/typescript-estree" "7.7.0" - semver "^7.6.0" - -"@typescript-eslint/visitor-keys@7.7.0": - version "7.7.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.7.0.tgz" - integrity sha512-h0WHOj8MhdhY8YWkzIF30R379y0NqyOHExI9N9KCzvmu05EgG4FumeYa3ccfKUSphyWkWQE1ybVrgz/Pbam6YA== - dependencies: - "@typescript-eslint/types" "7.7.0" - eslint-visitor-keys "^3.4.3" - -"@ungap/structured-clone@^1.2.0": - version "1.2.0" - resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz" - integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== - "@use-gesture/core@10.3.1": version "10.3.1" resolved "https://registry.yarnpkg.com/@use-gesture/core/-/core-10.3.1.tgz#976c9421e905f0079d49822cfd5c2e56b808fc56" @@ -1318,58 +1133,26 @@ "@use-gesture/core" "10.3.1" "@vitejs/plugin-react@^4.2.1": - version "4.2.1" - resolved "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.2.1.tgz" - integrity sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ== + version "4.3.1" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-4.3.1.tgz#d0be6594051ded8957df555ff07a991fb618b48e" + integrity sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg== dependencies: - "@babel/core" "^7.23.5" - "@babel/plugin-transform-react-jsx-self" "^7.23.3" - "@babel/plugin-transform-react-jsx-source" "^7.23.3" + "@babel/core" "^7.24.5" + "@babel/plugin-transform-react-jsx-self" "^7.24.5" + "@babel/plugin-transform-react-jsx-source" "^7.24.1" "@types/babel__core" "^7.20.5" - react-refresh "^0.14.0" - -acorn-jsx@^5.3.2: - version "5.3.2" - resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -acorn@^8.9.0: - version "8.11.3" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz" - integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== - -ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + react-refresh "^0.14.2" ansi-styles@^3.2.1: version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" -ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - anymatch@~3.1.2: version "3.1.3" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" @@ -1377,28 +1160,18 @@ anymatch@~3.1.2: argparse@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - babel-plugin-macros@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1" integrity sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg== dependencies: "@babel/runtime" "^7.12.5" cosmiconfig "^7.0.0" resolve "^1.19.0" -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - base64-js@^1.3.1, base64-js@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" @@ -1413,40 +1186,25 @@ bidi-js@^1.0.2: binary-extensions@^2.0.0: version "2.3.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== - dependencies: - balanced-match "^1.0.0" - -braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== +braces@~3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: - fill-range "^7.0.1" + fill-range "^7.1.1" -browserslist@^4.22.2: - version "4.23.0" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz" - integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== +browserslist@^4.23.1: + version "4.23.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.2.tgz#244fe803641f1c19c28c48c4b6ec9736eb3d32ed" + integrity sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA== dependencies: - caniuse-lite "^1.0.30001587" - electron-to-chromium "^1.4.668" + caniuse-lite "^1.0.30001640" + electron-to-chromium "^1.4.820" node-releases "^2.0.14" - update-browserslist-db "^1.0.13" + update-browserslist-db "^1.1.0" buffer@^6.0.3: version "6.0.3" @@ -1458,12 +1216,12 @@ buffer@^6.0.3: callsites@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== camelcase@^6.3.0: version "6.3.0" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== camera-controls@^2.4.2: @@ -1471,31 +1229,23 @@ camera-controls@^2.4.2: resolved "https://registry.yarnpkg.com/camera-controls/-/camera-controls-2.8.5.tgz#9d7e39cf17172c62fc4a79346b972c3408d0ea35" integrity sha512-7VTwRk7Nu1nRKsY7bEt9HVBfKt8DETvzyYhLN4OW26OByBayMDB5fUaNcPI+z++vG23RH5yqn6ZRhZcgLQy2rA== -caniuse-lite@^1.0.30001587: - version "1.0.30001611" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001611.tgz" - integrity sha512-19NuN1/3PjA3QI8Eki55N8my4LzfkMCRLgCVfrl/slbSAchQfV0+GwjPrK3rq37As4UCLlM/DHajbKkAqbv92Q== +caniuse-lite@^1.0.30001640: + version "1.0.30001643" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001643.tgz#9c004caef315de9452ab970c3da71085f8241dbd" + integrity sha512-ERgWGNleEilSrHM6iUz/zJNSQTP8Mr21wDWpdgvRwcTXGAq6jMtOUPP4dqFPTdKqZ2wKTdtB+uucZ3MRpAUSmg== chalk@^2.4.2: version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: ansi-styles "^3.2.1" escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0: - version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - "chokidar@>=3.0.0 <4.0.0": version "3.6.0" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== dependencies: anymatch "~3.1.2" @@ -1510,12 +1260,12 @@ chalk@^4.0.0: classnames@^2.2.5: version "2.5.1" - resolved "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.5.1.tgz#ba774c614be0f016da105c858e7159eae8e7687b" integrity sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow== clsx@^1.0.4: version "1.2.1" - resolved "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== clsx@^2.1.0, clsx@^2.1.1: @@ -1525,58 +1275,41 @@ clsx@^2.1.0, clsx@^2.1.1: color-convert@^1.9.0: version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - color-name@1.1.3: version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - commander@^12.0.0: - version "12.0.0" - resolved "https://registry.npmjs.org/commander/-/commander-12.0.0.tgz" - integrity sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + version "12.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3" + integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA== convert-source-map@^1.5.0: version "1.9.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== convert-source-map@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== cose-base@^2.2.0: version "2.2.0" - resolved "https://registry.npmjs.org/cose-base/-/cose-base-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/cose-base/-/cose-base-2.2.0.tgz#1c395c35b6e10bb83f9769ca8b817d614add5c01" integrity sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g== dependencies: layout-base "^2.0.0" cosmiconfig@^7.0.0: version "7.1.0" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== dependencies: "@types/parse-json" "^4.0.0" @@ -1592,9 +1325,9 @@ cross-env@^7.0.3: dependencies: cross-spawn "^7.0.1" -cross-spawn@^7.0.1, cross-spawn@^7.0.2: +cross-spawn@^7.0.1: version "7.0.3" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== dependencies: path-key "^3.1.0" @@ -1603,7 +1336,7 @@ cross-spawn@^7.0.1, cross-spawn@^7.0.2: css-vendor@^2.0.8: version "2.0.8" - resolved "https://registry.npmjs.org/css-vendor/-/css-vendor-2.0.8.tgz" + resolved "https://registry.yarnpkg.com/css-vendor/-/css-vendor-2.0.8.tgz#e47f91d3bd3117d49180a3c935e62e3d9f7f449d" integrity sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ== dependencies: "@babel/runtime" "^7.8.3" @@ -1611,7 +1344,7 @@ css-vendor@^2.0.8: csstype@^2.5.2: version "2.6.21" - resolved "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.21.tgz#2efb85b7cc55c80017c66a5ad7cbd931fda3a90e" integrity sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w== csstype@^3.0.2, csstype@^3.1.3: @@ -1621,26 +1354,26 @@ csstype@^3.0.2, csstype@^3.1.3: cytoscape-dagre@^2.5.0: version "2.5.0" - resolved "https://registry.npmjs.org/cytoscape-dagre/-/cytoscape-dagre-2.5.0.tgz" + resolved "https://registry.yarnpkg.com/cytoscape-dagre/-/cytoscape-dagre-2.5.0.tgz#47d9835ab64dd0b596d9c94731f070282f82fc5a" integrity sha512-VG2Knemmshop4kh5fpLO27rYcyUaaDkRw+6PiX4bstpB+QFt0p2oauMrsjVbUamGWQ6YNavh7x2em2uZlzV44g== dependencies: dagre "^0.8.5" cytoscape-fcose@^2.2.0: version "2.2.0" - resolved "https://registry.npmjs.org/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz#e4d6f6490df4fab58ae9cea9e5c3ab8d7472f471" integrity sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ== dependencies: cose-base "^2.2.0" cytoscape@^3.29.2: - version "3.29.2" - resolved "https://registry.npmjs.org/cytoscape/-/cytoscape-3.29.2.tgz" - integrity sha512-2G1ycU28Nh7OHT9rkXRLpCDP30MKH1dXJORZuBhtEhEW7pKwgPi77ImqlCWinouyE1PNepIOGZBOrE84DG7LyQ== + version "3.30.1" + resolved "https://registry.yarnpkg.com/cytoscape/-/cytoscape-3.30.1.tgz#9855a284aaefbaf2628fdc6cf956ba83c0ae511b" + integrity sha512-TRJc3HbBPkHd50u9YfJh2FxD1lDLZ+JXnJoyBn5LkncoeuT7fapO/Hq/Ed8TdFclaKshzInge2i30bg7VKeoPQ== dagre@^0.8.5: version "0.8.5" - resolved "https://registry.npmjs.org/dagre/-/dagre-0.8.5.tgz" + resolved "https://registry.yarnpkg.com/dagre/-/dagre-0.8.5.tgz#ba30b0055dac12b6c1fcc247817442777d06afee" integrity sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw== dependencies: graphlib "^2.1.8" @@ -1651,39 +1384,20 @@ debounce@^1.2.1: resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== -debug@^4.1.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: - version "4.3.4" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== +debug@^4.1.0, debug@^4.3.1: + version "4.3.5" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.5.tgz#e83444eceb9fedd4a1da56d671ae2446a01a6e1e" + integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg== dependencies: ms "2.1.2" -deep-is@^0.1.3: - 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== - detect-gpu@^5.0.28: - version "5.0.39" - resolved "https://registry.yarnpkg.com/detect-gpu/-/detect-gpu-5.0.39.tgz#9ce549af9b45654683e3bc34a0f87e74e7a99728" - integrity sha512-qs+7gnNNxsH4RN1IPpQieU2XNO+RhgemuaRhcawiUug6oXb0Glup90H1YGSjslPO30Sw0E4yfjRoGtSEURwVPQ== + version "5.0.40" + resolved "https://registry.yarnpkg.com/detect-gpu/-/detect-gpu-5.0.40.tgz#626d41aa55341858ab547c260726a4afbac7dd95" + integrity sha512-5v4jDN/ERdZZitD29UiLjV9Q9+lDfw2OhEJACIqnvdWulVZCy2K6EwonZ/VKyo4YMqvSIzGIDmojX3jGL3dLpA== dependencies: webgl-constants "^1.1.1" -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - dom-helpers@^5.0.1: version "5.2.1" resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902" @@ -1697,195 +1411,62 @@ draco3d@^1.4.1: resolved "https://registry.yarnpkg.com/draco3d/-/draco3d-1.5.7.tgz#94f9bce293eb8920c159dc91a4ce9124a9e899e0" integrity sha512-m6WCKt/erDXcw+70IJXnG7M3awwQPAsZvJGX5zY7beBqpELw6RDGkYVU0W43AFxye4pDZ5i2Lbyc/NNGqwjUVQ== -electron-to-chromium@^1.4.668: - version "1.4.742" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.742.tgz" - integrity sha512-EhE+z1d5RNytAq/qnGAxPR+ie3UzKbv7qqQc0wnEbOh+KDUplgfzkGSCy9d78B+S+nVNTS42BabHXB6Ni+Ud4w== +electron-to-chromium@^1.4.820: + version "1.5.0" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.0.tgz#0d3123a9f09189b9c7ab4b5d6848d71b3c1fd0e8" + integrity sha512-Vb3xHHYnLseK8vlMJQKJYXJ++t4u1/qJ3vykuVrVjvdiOEhYyT1AuP4x03G8EnPmYvYOhe9T+dADTmthjRQMkA== error-ex@^1.3.1: version "1.3.2" - resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" -esbuild@^0.20.1: - version "0.20.2" - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz" - integrity sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g== +esbuild@^0.21.3: + version "0.21.5" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.21.5.tgz#9ca301b120922959b766360d8ac830da0d02997d" + integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw== optionalDependencies: - "@esbuild/aix-ppc64" "0.20.2" - "@esbuild/android-arm" "0.20.2" - "@esbuild/android-arm64" "0.20.2" - "@esbuild/android-x64" "0.20.2" - "@esbuild/darwin-arm64" "0.20.2" - "@esbuild/darwin-x64" "0.20.2" - "@esbuild/freebsd-arm64" "0.20.2" - "@esbuild/freebsd-x64" "0.20.2" - "@esbuild/linux-arm" "0.20.2" - "@esbuild/linux-arm64" "0.20.2" - "@esbuild/linux-ia32" "0.20.2" - "@esbuild/linux-loong64" "0.20.2" - "@esbuild/linux-mips64el" "0.20.2" - "@esbuild/linux-ppc64" "0.20.2" - "@esbuild/linux-riscv64" "0.20.2" - "@esbuild/linux-s390x" "0.20.2" - "@esbuild/linux-x64" "0.20.2" - "@esbuild/netbsd-x64" "0.20.2" - "@esbuild/openbsd-x64" "0.20.2" - "@esbuild/sunos-x64" "0.20.2" - "@esbuild/win32-arm64" "0.20.2" - "@esbuild/win32-ia32" "0.20.2" - "@esbuild/win32-x64" "0.20.2" - -escalade@^3.1.1: + "@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" + +escalade@^3.1.2: version "3.1.2" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== escape-string-regexp@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== escape-string-regexp@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -eslint-plugin-react-hooks@^4.6.0: - version "4.6.0" - resolved "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz" - integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== - -eslint-plugin-react-refresh@^0.4.6: - version "0.4.6" - resolved "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.6.tgz" - integrity sha512-NjGXdm7zgcKRkKMua34qVO9doI7VOxZ6ancSvBELJSSoX97jyndXcSoa8XBh69JoB31dNz3EEzlMcizZl7LaMA== - -eslint-scope@^7.2.2: - version "7.2.2" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz" - integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: - 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== - -eslint@^8.57.0: - version "8.57.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz" - integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.4" - "@eslint/js" "8.57.0" - "@humanwhocodes/config-array" "^0.11.14" - "@humanwhocodes/module-importer" "^1.0.1" - "@nodelib/fs.walk" "^1.2.8" - "@ungap/structured-clone" "^1.2.0" - ajv "^6.12.4" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - doctrine "^3.0.0" - escape-string-regexp "^4.0.0" - eslint-scope "^7.2.2" - eslint-visitor-keys "^3.4.3" - espree "^9.6.1" - esquery "^1.4.2" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - find-up "^5.0.0" - glob-parent "^6.0.2" - globals "^13.19.0" - graphemer "^1.4.0" - ignore "^5.2.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - is-path-inside "^3.0.3" - js-yaml "^4.1.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.1.2" - natural-compare "^1.4.0" - optionator "^0.9.3" - strip-ansi "^6.0.1" - text-table "^0.2.0" - -espree@^9.6.0, espree@^9.6.1: - version "9.6.1" - resolved "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz" - integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== - dependencies: - acorn "^8.9.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.1" - -esquery@^1.4.2: - version "1.5.0" - resolved "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz" - integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^5.1.0, estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-glob@^3.2.9: - version "3.3.2" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz" - integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-json-stable-stringify@^2.0.0: - 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== - -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== - -fastq@^1.6.0: - version "1.17.1" - resolved "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz" - integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== - dependencies: - reusify "^1.0.4" - fflate@^0.6.9: version "0.6.10" resolved "https://registry.yarnpkg.com/fflate/-/fflate-0.6.10.tgz#5f40f9659205936a2d18abf88b2e7781662b6d43" @@ -1896,66 +1477,32 @@ fflate@~0.8.2: resolved "https://registry.yarnpkg.com/fflate/-/fflate-0.8.2.tgz#fc8631f5347812ad6028bbe4a2308b2792aa1dea" integrity sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A== -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - file-saver@^2.0.5: version "2.0.5" - resolved "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/file-saver/-/file-saver-2.0.5.tgz#d61cfe2ce059f414d899e9dd6d4107ee25670c38" integrity sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA== -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== dependencies: to-regex-range "^5.0.1" find-root@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat-cache@^3.0.4: - version "3.2.0" - resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz" - integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== - dependencies: - flatted "^3.2.9" - keyv "^4.5.3" - rimraf "^3.0.2" - -flatted@^3.2.9: - version "3.3.1" - resolved "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz" - integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== - fs-extra@^11.2.0: version "11.2.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b" integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== dependencies: graceful-fs "^4.2.0" jsonfile "^6.0.1" universalify "^2.0.0" -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - fsevents@~2.3.2, fsevents@~2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" @@ -1963,64 +1510,26 @@ fsevents@~2.3.2, fsevents@~2.3.3: function-bind@^1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== gensync@^1.0.0-beta.2: version "1.0.0-beta.2" - resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -glob-parent@^5.1.2, glob-parent@~5.1.2: +glob-parent@~5.1.2: version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" -glob-parent@^6.0.2: - version "6.0.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob@^7.1.3: - version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - globals@^11.1.0: version "11.12.0" - resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.19.0: - 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" - -globby@^11.1.0: - version "11.1.0" - resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^3.0.0" - glsl-noise@^0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/glsl-noise/-/glsl-noise-0.0.0.tgz#367745f3a33382c0eeec4cb54b7e99cfc1d7670b" @@ -2028,24 +1537,19 @@ glsl-noise@^0.0.0: graceful-fs@^4.1.6, graceful-fs@^4.2.0: version "4.2.11" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== -graphemer@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz" - integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== - graphlib@^2.1.8: version "2.1.8" - resolved "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz" + resolved "https://registry.yarnpkg.com/graphlib/-/graphlib-2.1.8.tgz#5761d414737870084c92ec7b5dbcb0592c9d35da" integrity sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A== dependencies: lodash "^4.17.15" handlebars@^4.7.8: version "4.7.8" - resolved "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9" integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ== dependencies: minimist "^1.2.5" @@ -2057,17 +1561,12 @@ handlebars@^4.7.8: has-flag@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -hasown@^2.0.0: +hasown@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== dependencies: function-bind "^1.1.2" @@ -2079,26 +1578,21 @@ hls.js@1.3.5: hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.1, hoist-non-react-statics@^3.3.2: version "3.3.2" - resolved "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== dependencies: react-is "^16.7.0" hyphenate-style-name@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz" - integrity sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ== + version "1.1.0" + resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.1.0.tgz#1797bf50369588b47b72ca6d5e65374607cf4436" + integrity sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw== ieee754@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -ignore@^5.2.0, ignore@^5.3.1: - version "5.3.1" - resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz" - integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== - immediate@~3.0.5: version "3.0.6" resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" @@ -2110,82 +1604,59 @@ immer@^10.0.3: integrity sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw== immutable@^4.0.0: - version "4.3.5" - resolved "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz" - integrity sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw== + version "4.3.7" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.7.tgz#c70145fc90d89fb02021e65c84eb0226e4e5a381" + integrity sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw== import-fresh@^3.2.1: version "3.3.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: parent-module "^1.0.0" resolve-from "^4.0.0" -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2: - version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - is-arrayish@^0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== is-binary-path@~2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: binary-extensions "^2.0.0" is-core-module@^2.13.0: - version "2.13.1" - resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz" - integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== + version "2.15.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.0.tgz#71c72ec5442ace7e76b306e9d48db361f22699ea" + integrity sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA== dependencies: - hasown "^2.0.0" + hasown "^2.0.2" is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: +is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.3" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" is-in-browser@^1.0.2, is-in-browser@^1.1.3: version "1.1.3" - resolved "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/is-in-browser/-/is-in-browser-1.1.3.tgz#56ff4db683a078c6082eb95dad7dc62e1d04f835" integrity sha512-FeXIBgG/CPGd/WUxuEyvgGTEfwiG9Z4EKGxjNMRqviiIIfsmgrpnHLffEDdwUHqNva1VEW91o3xBT/m8Elgl9g== is-number@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-path-inside@^3.0.3: - 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== - is-promise@^2.1.0: version "2.2.2" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" @@ -2205,49 +1676,34 @@ its-fine@^1.0.6: "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-yaml@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: argparse "^2.0.1" jsesc@^2.5.1: version "2.5.2" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== -json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - json-parse-even-better-errors@^2.3.0: version "2.3.1" - resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== -json-schema-traverse@^0.4.1: - 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== - -json-stable-stringify-without-jsonify@^1.0.1: - 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== - json5@^2.2.3: version "2.2.3" - resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== jsonfile@^6.0.1: version "6.1.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== dependencies: universalify "^2.0.0" @@ -2256,7 +1712,7 @@ jsonfile@^6.0.1: jss-plugin-camel-case@^10.5.1: version "10.10.0" - resolved "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.10.0.tgz" + resolved "https://registry.yarnpkg.com/jss-plugin-camel-case/-/jss-plugin-camel-case-10.10.0.tgz#27ea159bab67eb4837fa0260204eb7925d4daa1c" integrity sha512-z+HETfj5IYgFxh1wJnUAU8jByI48ED+v0fuTuhKrPR+pRBYS2EDwbusU8aFOpCdYhtRc9zhN+PJ7iNE8pAWyPw== dependencies: "@babel/runtime" "^7.3.1" @@ -2265,7 +1721,7 @@ jss-plugin-camel-case@^10.5.1: jss-plugin-default-unit@^10.5.1: version "10.10.0" - resolved "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.10.0.tgz" + resolved "https://registry.yarnpkg.com/jss-plugin-default-unit/-/jss-plugin-default-unit-10.10.0.tgz#db3925cf6a07f8e1dd459549d9c8aadff9804293" integrity sha512-SvpajxIECi4JDUbGLefvNckmI+c2VWmP43qnEy/0eiwzRUsafg5DVSIWSzZe4d2vFX1u9nRDP46WCFV/PXVBGQ== dependencies: "@babel/runtime" "^7.3.1" @@ -2273,7 +1729,7 @@ jss-plugin-default-unit@^10.5.1: jss-plugin-global@^10.5.1: version "10.10.0" - resolved "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.10.0.tgz" + resolved "https://registry.yarnpkg.com/jss-plugin-global/-/jss-plugin-global-10.10.0.tgz#1c55d3c35821fab67a538a38918292fc9c567efd" integrity sha512-icXEYbMufiNuWfuazLeN+BNJO16Ge88OcXU5ZDC2vLqElmMybA31Wi7lZ3lf+vgufRocvPj8443irhYRgWxP+A== dependencies: "@babel/runtime" "^7.3.1" @@ -2281,7 +1737,7 @@ jss-plugin-global@^10.5.1: jss-plugin-nested@^10.5.1: version "10.10.0" - resolved "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.10.0.tgz" + resolved "https://registry.yarnpkg.com/jss-plugin-nested/-/jss-plugin-nested-10.10.0.tgz#db872ed8925688806e77f1fc87f6e62264513219" integrity sha512-9R4JHxxGgiZhurDo3q7LdIiDEgtA1bTGzAbhSPyIOWb7ZubrjQe8acwhEQ6OEKydzpl8XHMtTnEwHXCARLYqYA== dependencies: "@babel/runtime" "^7.3.1" @@ -2290,7 +1746,7 @@ jss-plugin-nested@^10.5.1: jss-plugin-props-sort@^10.5.1: version "10.10.0" - resolved "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.10.0.tgz" + resolved "https://registry.yarnpkg.com/jss-plugin-props-sort/-/jss-plugin-props-sort-10.10.0.tgz#67f4dd4c70830c126f4ec49b4b37ccddb680a5d7" integrity sha512-5VNJvQJbnq/vRfje6uZLe/FyaOpzP/IH1LP+0fr88QamVrGJa0hpRRyAa0ea4U/3LcorJfBFVyC4yN2QC73lJg== dependencies: "@babel/runtime" "^7.3.1" @@ -2298,7 +1754,7 @@ jss-plugin-props-sort@^10.5.1: jss-plugin-rule-value-function@^10.5.1: version "10.10.0" - resolved "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.10.0.tgz" + resolved "https://registry.yarnpkg.com/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.10.0.tgz#7d99e3229e78a3712f78ba50ab342e881d26a24b" integrity sha512-uEFJFgaCtkXeIPgki8ICw3Y7VMkL9GEan6SqmT9tqpwM+/t+hxfMUdU4wQ0MtOiMNWhwnckBV0IebrKcZM9C0g== dependencies: "@babel/runtime" "^7.3.1" @@ -2307,7 +1763,7 @@ jss-plugin-rule-value-function@^10.5.1: jss-plugin-vendor-prefixer@^10.5.1: version "10.10.0" - resolved "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.10.0.tgz" + resolved "https://registry.yarnpkg.com/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.10.0.tgz#c01428ef5a89f2b128ec0af87a314d0c767931c7" integrity sha512-UY/41WumgjW8r1qMCO8l1ARg7NHnfRVWRhZ2E2m0DMYsr2DD91qIXLyNhiX83hHswR7Wm4D+oDYNC1zWCJWtqg== dependencies: "@babel/runtime" "^7.3.1" @@ -2316,7 +1772,7 @@ jss-plugin-vendor-prefixer@^10.5.1: jss@10.10.0, jss@^10.5.1: version "10.10.0" - resolved "https://registry.npmjs.org/jss/-/jss-10.10.0.tgz" + resolved "https://registry.yarnpkg.com/jss/-/jss-10.10.0.tgz#a75cc85b0108c7ac8c7b7d296c520a3e4fbc6ccc" integrity sha512-cqsOTS7jqPsPMjtKYDUpdFC0AbhYFLTcuGRqymgmdJIeQ8cH7+AgX7YSgQy79wXloZq2VvATYxUOUQEvS1V/Zw== dependencies: "@babel/runtime" "^7.3.1" @@ -2324,26 +1780,11 @@ jss@10.10.0, jss@^10.5.1: is-in-browser "^1.1.3" tiny-warning "^1.0.2" -keyv@^4.5.3: - version "4.5.4" - resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz" - integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== - dependencies: - json-buffer "3.0.1" - layout-base@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/layout-base/-/layout-base-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/layout-base/-/layout-base-2.0.1.tgz#d0337913586c90f9c2c075292069f5c2da5dd285" integrity sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg== -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - lie@^3.0.2: version "3.3.0" resolved "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a" @@ -2353,29 +1794,17 @@ lie@^3.0.2: lines-and-columns@^1.1.6: version "1.2.4" - resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - lodash-es@^4.17.15: version "4.17.21" - resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - lodash@^4.0.1, lodash@^4.17.15: version "4.17.21" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== loose-envify@^1.1.0, loose-envify@^1.4.0: @@ -2387,18 +1816,11 @@ loose-envify@^1.1.0, loose-envify@^1.4.0: lru-cache@^5.1.1: version "5.1.1" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== dependencies: yallist "^3.0.2" -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - maath@^0.10.7: version "0.10.8" resolved "https://registry.yarnpkg.com/maath/-/maath-0.10.8.tgz#cf647544430141bf6982da6e878abb6c4b804e24" @@ -2406,14 +1828,9 @@ maath@^0.10.7: material-colors@^1.2.1: version "1.2.6" - resolved "https://registry.npmjs.org/material-colors/-/material-colors-1.2.6.tgz" + resolved "https://registry.yarnpkg.com/material-colors/-/material-colors-1.2.6.tgz#6d1958871126992ceecc72f4bcc4d8f010865f46" integrity sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg== -merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - meshline@^3.1.6: version "3.3.1" resolved "https://registry.yarnpkg.com/meshline/-/meshline-3.3.1.tgz#20decfd5cdd25c8469e862ddf0ab1ad167759734" @@ -2424,61 +1841,34 @@ meshoptimizer@~0.18.1: resolved "https://registry.yarnpkg.com/meshoptimizer/-/meshoptimizer-0.18.1.tgz#cdb90907f30a7b5b1190facd3b7ee6b7087797d8" integrity sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw== -micromatch@^4.0.4: - version "4.0.5" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^9.0.4: - version "9.0.4" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz" - integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== - dependencies: - brace-expansion "^2.0.1" - minimist@^1.2.5: version "1.2.8" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== ms@2.1.2: version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== nanoid@^3.3.7: version "3.3.7" - resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== - neo-async@^2.6.2: version "2.6.2" - resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== node-releases@^2.0.14: - version "2.0.14" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz" - integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== + version "2.0.18" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.18.tgz#f010e8d35e2fe8d6b2944f03f70213ecedc4ca3f" + integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g== normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== object-assign@^4.1.1: @@ -2486,16 +1876,9 @@ object-assign@^4.1.1: resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -once@^1.3.0: - version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - openapi-typescript-codegen@^0.29.0: version "0.29.0" - resolved "https://registry.npmjs.org/openapi-typescript-codegen/-/openapi-typescript-codegen-0.29.0.tgz" + resolved "https://registry.yarnpkg.com/openapi-typescript-codegen/-/openapi-typescript-codegen-0.29.0.tgz#e98a1daa223ccdeb1cc51b2e2dc11bafae6fe746" integrity sha512-/wC42PkD0LGjDTEULa/XiWQbv4E9NwLjwLjsaJ/62yOsoYhwvmBR31kPttn1DzQ2OlGe5stACcF/EIkZk43M6w== dependencies: "@apidevtools/json-schema-ref-parser" "^11.5.4" @@ -2504,47 +1887,21 @@ openapi-typescript-codegen@^0.29.0: fs-extra "^11.2.0" handlebars "^4.7.8" -optionator@^0.9.3: - version "0.9.3" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz" - integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== - dependencies: - "@aashutoshrathi/word-wrap" "^1.2.3" - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^5.0.0: - 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== - dependencies: - p-limit "^3.0.2" - pako@^1.0.3: version "1.0.11" - resolved "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== parent-module@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== dependencies: callsites "^3.0.0" parse-json@^5.0.0: version "5.2.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== dependencies: "@babel/code-frame" "^7.0.0" @@ -2552,16 +1909,6 @@ parse-json@^5.0.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" @@ -2569,36 +1916,36 @@ path-key@^3.1.0: path-parse@^1.0.7: version "1.0.7" - resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== path-type@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== +picocolors@^1.0.0, picocolors@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" + integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: +picomatch@^2.0.4, picomatch@^2.2.1: version "2.3.1" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== popper.js@1.16.1-lts: version "1.16.1-lts" - resolved "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1-lts.tgz" + resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1-lts.tgz#cf6847b807da3799d80ee3d6d2f90df8a3f50b05" integrity sha512-Kjw8nKRl1m+VrSFCoVGPph93W/qrSO7ZkqPpTf7F4bk/sqcfWK019dWBUpE/fBOsOQY1dks/Bmcbfn1heM/IsA== -postcss@^8.4.38: - version "8.4.38" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz" - integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A== +postcss@^8.4.39: + version "8.4.39" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.39.tgz#aa3c94998b61d3a9c259efa51db4b392e1bde0e3" + integrity sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw== dependencies: nanoid "^3.3.7" - picocolors "^1.0.0" + picocolors "^1.0.1" source-map-js "^1.2.0" potpack@^1.0.1: @@ -2606,11 +1953,6 @@ potpack@^1.0.1: resolved "https://registry.yarnpkg.com/potpack/-/potpack-1.0.2.tgz#23b99e64eb74f5741ffe7656b5b5c4ddce8dfc14" integrity sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ== -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - promise-worker-transferable@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/promise-worker-transferable/-/promise-worker-transferable-1.0.4.tgz#2c72861ba053e5ae42b487b4a83b1ed3ae3786e8" @@ -2621,31 +1963,21 @@ promise-worker-transferable@^1.0.4: prop-types@^15.5.10, prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: version "15.8.1" - resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== dependencies: loose-envify "^1.4.0" object-assign "^4.1.1" react-is "^16.13.1" -punycode@^2.1.0: - version "2.3.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz" - integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - re-resizable@4.5.1: version "4.5.1" - resolved "https://registry.npmjs.org/re-resizable/-/re-resizable-4.5.1.tgz" + resolved "https://registry.yarnpkg.com/re-resizable/-/re-resizable-4.5.1.tgz#4688e8311ea4b70d558f7aebb3168a25926e62d9" integrity sha512-amjlp4IuTSHs4XG1bP5WbAgBDIZitODKIsqcpZsNhEBYYEidol0dlP4S9zHiN3iu6Tff4WfYuruihLgN7RJeQw== react-color@^2.19.3: version "2.19.3" - resolved "https://registry.npmjs.org/react-color/-/react-color-2.19.3.tgz" + resolved "https://registry.yarnpkg.com/react-color/-/react-color-2.19.3.tgz#ec6c6b4568312a3c6a18420ab0472e146aa5683d" integrity sha512-LEeGE/ZzNLIsFWa1TMe8y5VYqr7bibneWmvJwm1pCn/eNmrabWDh659JSPn9BuaMpEfU83WTOJfnCcjDZwNQTA== dependencies: "@icons/material" "^0.2.4" @@ -2673,7 +2005,7 @@ react-dom@^18.3.1: react-draggable@^3.0.5: version "3.3.2" - resolved "https://registry.npmjs.org/react-draggable/-/react-draggable-3.3.2.tgz" + resolved "https://registry.yarnpkg.com/react-draggable/-/react-draggable-3.3.2.tgz#966ef1d90f2387af3c2d8bd3516f601ea42ca359" integrity sha512-oaz8a6enjbPtx5qb0oDWxtDNuybOylvto1QLydsXgKmwT7e3GXC2eMVDwEMIUYJIFqVG72XpOv673UuuAq6LhA== dependencies: classnames "^2.2.5" @@ -2681,12 +2013,12 @@ react-draggable@^3.0.5: react-is@^16.13.1, react-is@^16.7.0: version "16.13.1" - resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== "react-is@^16.8.0 || ^17.0.0", react-is@^17.0.2: version "17.0.2" - resolved "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== react-is@^18.3.1: @@ -2704,7 +2036,7 @@ react-reconciler@^0.27.0: react-redux@^7.2.3: version "7.2.9" - resolved "https://registry.npmjs.org/react-redux/-/react-redux-7.2.9.tgz" + resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.2.9.tgz#09488fbb9416a4efe3735b7235055442b042481d" integrity sha512-Gx4L3uM182jEEayZfRbI/G11ZpYdNAnBs70lFVMNdHJI76XYtR+7m0MN+eAs7UHBPhWXcnFPaS+9owSCJQHNpQ== dependencies: "@babel/runtime" "^7.15.4" @@ -2722,14 +2054,14 @@ react-redux@^9.1.1: "@types/use-sync-external-store" "^0.0.3" use-sync-external-store "^1.0.0" -react-refresh@^0.14.0: - version "0.14.0" - resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz" - integrity sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ== +react-refresh@^0.14.2: + version "0.14.2" + resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.2.tgz#3833da01ce32da470f1f936b9d477da5c7028bf9" + integrity sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA== react-rnd@^7.3.0: version "7.4.3" - resolved "https://registry.npmjs.org/react-rnd/-/react-rnd-7.4.3.tgz" + resolved "https://registry.yarnpkg.com/react-rnd/-/react-rnd-7.4.3.tgz#76adc591fd78f543a66cc63595d0002599d1d408" integrity sha512-TLQ35nqXup7rC63qAETebbO6Znilr20CroTTeAdlYu8nvRSwB7BrmPKZhHB2GgeiSucOoeCyAA9pHPhbMpEd/Q== dependencies: re-resizable "4.5.1" @@ -2737,7 +2069,7 @@ react-rnd@^7.3.0: react-transition-group@^4.4.0, react-transition-group@^4.4.5: version "4.4.5" - resolved "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.5.tgz#e53d4e3f3344da8521489fbef8f2581d42becdd1" integrity sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g== dependencies: "@babel/runtime" "^7.5.5" @@ -2754,7 +2086,7 @@ react-use-measure@^2.1.1: react@^17.0.2: version "17.0.2" - resolved "https://registry.npmjs.org/react/-/react-17.0.2.tgz" + resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== dependencies: loose-envify "^1.1.0" @@ -2769,14 +2101,14 @@ react@^18.3.1: reactcss@^1.2.0: version "1.2.3" - resolved "https://registry.npmjs.org/reactcss/-/reactcss-1.2.3.tgz" + resolved "https://registry.yarnpkg.com/reactcss/-/reactcss-1.2.3.tgz#c00013875e557b1cf0dfd9a368a1c3dab3b548dd" integrity sha512-KiwVUcFu1RErkI97ywr8nvx8dNOpT03rbnma0SSalTYjkrPYaEajR4a/MRt6DZ46K6arDRbWMNHF+xH7G7n/8A== dependencies: lodash "^4.0.1" readdirp@~3.6.0: version "3.6.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" @@ -2788,7 +2120,7 @@ redux-thunk@^3.1.0: redux@^4.0.0, redux@^4.1.0: version "4.2.1" - resolved "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz" + resolved "https://registry.yarnpkg.com/redux/-/redux-4.2.1.tgz#c08f4306826c49b5e9dc901dee0452ea8fce6197" integrity sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w== dependencies: "@babel/runtime" "^7.9.2" @@ -2815,66 +2147,47 @@ reselect@^5.1.0: resolve-from@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve@^1.19.0: version "1.22.8" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== dependencies: is-core-module "^2.13.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - rollup@^4.13.0: - version "4.14.3" - resolved "https://registry.npmjs.org/rollup/-/rollup-4.14.3.tgz" - integrity sha512-ag5tTQKYsj1bhrFC9+OEWqb5O6VYgtQDO9hPDBMmIbePwhfSr+ExlcU741t8Dhw5DkPCQf6noz0jb36D6W9/hw== + version "4.19.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.19.0.tgz#83b08cc0b2bc38c26c194cb7f2cdabd84a2a8c02" + integrity sha512-5r7EYSQIowHsK4eTZ0Y81qpZuJz+MUuYeqmmYmRMl1nwhdmbiYqt5jwzf6u7wyOzJgYqtCRMtVRKOtHANBz7rA== dependencies: "@types/estree" "1.0.5" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.14.3" - "@rollup/rollup-android-arm64" "4.14.3" - "@rollup/rollup-darwin-arm64" "4.14.3" - "@rollup/rollup-darwin-x64" "4.14.3" - "@rollup/rollup-linux-arm-gnueabihf" "4.14.3" - "@rollup/rollup-linux-arm-musleabihf" "4.14.3" - "@rollup/rollup-linux-arm64-gnu" "4.14.3" - "@rollup/rollup-linux-arm64-musl" "4.14.3" - "@rollup/rollup-linux-powerpc64le-gnu" "4.14.3" - "@rollup/rollup-linux-riscv64-gnu" "4.14.3" - "@rollup/rollup-linux-s390x-gnu" "4.14.3" - "@rollup/rollup-linux-x64-gnu" "4.14.3" - "@rollup/rollup-linux-x64-musl" "4.14.3" - "@rollup/rollup-win32-arm64-msvc" "4.14.3" - "@rollup/rollup-win32-ia32-msvc" "4.14.3" - "@rollup/rollup-win32-x64-msvc" "4.14.3" + "@rollup/rollup-android-arm-eabi" "4.19.0" + "@rollup/rollup-android-arm64" "4.19.0" + "@rollup/rollup-darwin-arm64" "4.19.0" + "@rollup/rollup-darwin-x64" "4.19.0" + "@rollup/rollup-linux-arm-gnueabihf" "4.19.0" + "@rollup/rollup-linux-arm-musleabihf" "4.19.0" + "@rollup/rollup-linux-arm64-gnu" "4.19.0" + "@rollup/rollup-linux-arm64-musl" "4.19.0" + "@rollup/rollup-linux-powerpc64le-gnu" "4.19.0" + "@rollup/rollup-linux-riscv64-gnu" "4.19.0" + "@rollup/rollup-linux-s390x-gnu" "4.19.0" + "@rollup/rollup-linux-x64-gnu" "4.19.0" + "@rollup/rollup-linux-x64-musl" "4.19.0" + "@rollup/rollup-win32-arm64-msvc" "4.19.0" + "@rollup/rollup-win32-ia32-msvc" "4.19.0" + "@rollup/rollup-win32-x64-msvc" "4.19.0" fsevents "~2.3.2" -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - sass@^1.75.0: - version "1.75.0" - resolved "https://registry.npmjs.org/sass/-/sass-1.75.0.tgz" - integrity sha512-ShMYi3WkrDWxExyxSZPst4/okE9ts46xZmJDSawJQrnte7M1V9fScVB+uNXOVKRBt0PggHOwoZcn8mYX4trnBw== + version "1.77.8" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.77.8.tgz#9f18b449ea401759ef7ec1752a16373e296b52bd" + integrity sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -2896,16 +2209,9 @@ scheduler@^0.23.2: semver@^6.3.1: version "6.3.1" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.6.0: - version "7.6.0" - resolved "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz" - integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== - dependencies: - lru-cache "^6.0.0" - shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -2918,24 +2224,19 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - "source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== source-map@^0.5.7: version "0.5.7" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== source-map@^0.6.1: version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== stats-gl@^2.0.0: @@ -2950,18 +2251,6 @@ stats.js@^0.17.0: resolved "https://registry.yarnpkg.com/stats.js/-/stats.js-0.17.0.tgz#b1c3dc46d94498b578b7fd3985b81ace7131cc7d" integrity sha512-hNKz8phvYLPEcRkeG1rsGmV5ChMjKDAWU7/OJJdDErPBNChQXxCo3WZurGpnWc6gZhAzEPFad1aVgyOANH1sMw== -strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-json-comments@^3.1.1: - 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== - stylis@4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.2.0.tgz#79daee0208964c8fe695a42fcffcac633a211a51" @@ -2969,21 +2258,14 @@ stylis@4.2.0: supports-color@^5.3.0: version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== suspend-react@^0.1.3: @@ -2991,11 +2273,6 @@ suspend-react@^0.1.3: resolved "https://registry.yarnpkg.com/suspend-react/-/suspend-react-0.1.3.tgz#a52f49d21cfae9a2fb70bd0c68413d3f9d90768e" integrity sha512-aqldKgX9aZqpoDp3e8/BZ8Dm7x1pJl+qI3ZKxDN0i/IQTWUwBx/ManmlVJ3wowqbno6c2bmiIfs+Um6LbsjJyQ== -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== - three-mesh-bvh@^0.7.0: version "0.7.6" resolved "https://registry.yarnpkg.com/three-mesh-bvh/-/three-mesh-bvh-0.7.6.tgz#6764b39475bdba9450ad3a4065492678ee537272" @@ -3020,22 +2297,22 @@ three@^0.166.1: tiny-warning@^1.0.2: version "1.0.3" - resolved "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== tinycolor2@^1.4.1: version "1.6.0" - resolved "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz" + resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.6.0.tgz#f98007460169b0263b97072c5ae92484ce02d09e" integrity sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw== to-fast-properties@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" @@ -3060,11 +2337,6 @@ troika-worker-utils@^0.49.0: resolved "https://registry.yarnpkg.com/troika-worker-utils/-/troika-worker-utils-0.49.0.tgz#e5e200a09d2e0e4eb9fe818a83effa912e2ec4b4" integrity sha512-1xZHoJrG0HFfCvT/iyN41DvI/nRykiBtHqFkGaGgJwq5iXfIZFBiPPEHFpPpgyKM3Oo5ITHXP5wM2TNQszYdVg== -ts-api-utils@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz" - integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== - tunnel-rat@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/tunnel-rat/-/tunnel-rat-0.1.2.tgz#1717efbc474ea2d8aa05a91622457a6e201c0aeb" @@ -3072,56 +2344,37 @@ tunnel-rat@^0.1.2: dependencies: zustand "^4.3.2" -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-fest@^0.20.2: - 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== - typescript@^5.2.2: - version "5.4.5" - resolved "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz" - integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== + version "5.5.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba" + integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== uglify-js@^3.1.4: - version "3.17.4" - resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz" - integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== + version "3.19.0" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.19.0.tgz#6d45f1cad2c54117fa2fabd87fc2713a83e3bf7b" + integrity sha512-wNKHUY2hYYkf6oSFfhwwiHo4WCHzHmzcXsqXYTN9ja3iApYIFbb2U6ics9hBcYLHcYGQoAlwnZlTrf3oF+BL/Q== universalify@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== -update-browserslist-db@^1.0.13: - version "1.0.13" - resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz" - integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== +update-browserslist-db@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz#7ca61c0d8650766090728046e416a8cde682859e" + integrity sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ== dependencies: - punycode "^2.1.0" + escalade "^3.1.2" + picocolors "^1.0.1" url-join@^4.0.0: version "4.0.1" - resolved "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.1.tgz#b642e21a2646808ffa178c4c5fda39844e12cde7" integrity sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA== use-sync-external-store@1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a" integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA== use-sync-external-store@^1.0.0: @@ -3140,12 +2393,12 @@ uuid@^9.0.1: integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== vite@^5.2.0: - version "5.2.9" - resolved "https://registry.npmjs.org/vite/-/vite-5.2.9.tgz" - integrity sha512-uOQWfuZBlc6Y3W/DTuQ1Sr+oIXWvqljLvS881SVmAj00d5RdgShLcuXWxseWPd4HXwiYBFW/vXHfKFeqj9uQnw== + version "5.3.4" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.3.4.tgz#b36ebd47c8a5e3a8727046375d5f10bf9fdf8715" + integrity sha512-Cw+7zL3ZG9/NZBB8C+8QbQZmR54GwqIz+WMI4b3JgdYJvX+ny9AjJXqkGQlDXSXRP9rP0B4tbciRMOVEKulVOA== dependencies: - esbuild "^0.20.1" - postcss "^8.4.38" + esbuild "^0.21.3" + postcss "^8.4.39" rollup "^4.13.0" optionalDependencies: fsevents "~2.3.3" @@ -3169,34 +2422,19 @@ which@^2.0.1: wordwrap@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== -wrappy@1: - version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - yallist@^3.0.2: version "3.1.1" - resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - yaml@^1.10.0: version "1.10.2" - resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== - zustand@^3.7.1: version "3.7.2" resolved "https://registry.yarnpkg.com/zustand/-/zustand-3.7.2.tgz#7b44c4f4a5bfd7a8296a3957b13e1c346f42514d" From f9bdfc5e4ff299a24d5e170ab42a93b64f89ebb9 Mon Sep 17 00:00:00 2001 From: aranega Date: Wed, 24 Jul 2024 12:57:43 -0600 Subject: [PATCH 07/43] CELE-69 Defines places where the URL will be located --- applications/visualizer/backend/api/api.py | 58 ++++++++++++------- .../visualizer/backend/api/schemas.py | 18 ++++++ .../backend/visualizer/settings/common.py | 5 ++ 3 files changed, 61 insertions(+), 20 deletions(-) diff --git a/applications/visualizer/backend/api/api.py b/applications/visualizer/backend/api/api.py index 5015339e..59ac9eab 100644 --- a/applications/visualizer/backend/api/api.py +++ b/applications/visualizer/backend/api/api.py @@ -1,15 +1,14 @@ from collections import defaultdict -from typing import Optional +from typing import Iterable, Optional -from django.http import HttpResponse from ninja import NinjaAPI, Router, Schema, Query from ninja.pagination import paginate, PageNumberPagination from django.shortcuts import aget_object_or_404 -from django.db.models import Q, F, Value, CharField, Func, OuterRef +from django.db.models import Q from django.db.models.manager import BaseManager -from django.db.models.functions import Coalesce, Concat +from django.conf import settings -from .schemas import Dataset, Neuron, Connection +from .schemas import Dataset, EMData, Neuron, Connection from .models import ( Dataset as DatasetModel, Neuron as NeuronModel, @@ -50,6 +49,22 @@ def api_operation(self, *args, **kwargs): # ) +def annotate_dataset(datasets: Iterable[DatasetModel]): + for dataset in datasets: + dataset_id = dataset.id + dataset.neuron3D_url = ( # type: ignore + settings.DATASET_NEURON_REPRESENTATION_3D_URL_FORMAT.format( + dataset=dataset_id + ) + ) + dataset.em_data = EMData( # type: ignore + min_zoom=0, + max_zoom=0, + nb_slices=0, + resource_url=settings.DATASET_EMDATA_URL_FORMAT.format(dataset=dataset_id), + ) + + @api.get("/datasets", response=list[Dataset], tags=["datasets"]) async def get_datasets(request, ids: Optional[list[str]] = Query(None)): """Returns all datasets or a filtered list based on provided IDs""" @@ -57,6 +72,8 @@ async def get_datasets(request, ids: Optional[list[str]] = Query(None)): datasets = await to_list(DatasetModel.objects.filter(id__in=ids)) else: datasets = await to_list(DatasetModel.objects.all()) + + annotate_dataset(datasets) return datasets @@ -82,10 +99,12 @@ async def get_datasets(request, ids: Optional[list[str]] = Query(None)): ) async def get_dataset(request, dataset: str): """Returns a specific dataset""" - return await aget_object_or_404(DatasetModel, id=dataset) + obj = await aget_object_or_404(DatasetModel, id=dataset) + annotate_dataset((obj,)) + return obj -def annotate_neurons_w_dataset_ids(neurons: BaseManager[NeuronModel]) -> None: +def annotate_neurons(neurons: BaseManager[NeuronModel]) -> None: """Queries the datasets ids for each neuron.""" neuron_names = neurons.values_list("name", flat=True).distinct() pre = ( @@ -104,15 +123,18 @@ def annotate_neurons_w_dataset_ids(neurons: BaseManager[NeuronModel]) -> None: for neuron, dataset in pre.union(post): neurons_dataset_ids[neuron].add(dataset) + # Add dataset ids and 3D representation path for neuron in neurons: - neuron.dataset_ids = neurons_dataset_ids[neuron.name] # type: ignore + name = neuron.name + neuron.dataset_ids = neurons_dataset_ids[name] # type: ignore + neuron.model3D = settings.NEURON_REPRESENTATION_3D_URL_FORMAT.format(name=name) # type: ignore def neurons_from_datasets( neurons: BaseManager[NeuronModel], dataset_ids: list[str] ) -> BaseManager[NeuronModel]: """Filters neurons belonging to specific datasets.""" - return neurons.filter( + neurons = neurons.filter( Q( name__in=ConnectionModel.objects.filter( dataset__id__in=dataset_ids @@ -124,6 +146,7 @@ def neurons_from_datasets( ).values_list("post", flat=True) ) ) + return neurons @api.get( @@ -134,7 +157,8 @@ def neurons_from_datasets( def get_dataset_neurons(request, dataset: str): """Returns all the neurons of a dedicated dataset""" neurons = neurons_from_datasets(NeuronModel.objects, [dataset]) - annotate_neurons_w_dataset_ids(neurons) + annotate_neurons(neurons) + return neurons @@ -144,17 +168,14 @@ def search_cells( name: Optional[str] = Query(None), dataset_ids: Optional[list[str]] = Query(None), ): - neurons = NeuronModel.objects + neurons = NeuronModel.objects.all() if name: neurons = neurons.filter(name__istartswith=name) if dataset_ids: neurons = neurons_from_datasets(neurons, dataset_ids) - else: - neurons = neurons.all() - - annotate_neurons_w_dataset_ids(neurons) + annotate_neurons(neurons) return neurons @@ -163,15 +184,12 @@ def search_cells( @paginate(PageNumberPagination, page_size=50) # BUG: this is not being applied def get_all_cells(request, dataset_ids: Optional[list[str]] = Query(None)): """Returns all the cells (neurons) from the DB""" - neurons = NeuronModel.objects + neurons = NeuronModel.objects.all() if dataset_ids: neurons = neurons_from_datasets(neurons, dataset_ids) - else: - neurons = neurons.all() - - annotate_neurons_w_dataset_ids(neurons) + annotate_neurons(neurons) return neurons diff --git a/applications/visualizer/backend/api/schemas.py b/applications/visualizer/backend/api/schemas.py index 8124c08c..844d79bd 100644 --- a/applications/visualizer/backend/api/schemas.py +++ b/applications/visualizer/backend/api/schemas.py @@ -1,3 +1,5 @@ +from django.conf import settings + from ninja import ModelSchema, Schema from .models import ( Dataset as DatasetModel, @@ -19,8 +21,23 @@ class Config(Schema.Config): populate_by_name = True +class Artifact(Schema): ... + + +class Model3D(Artifact): ... + + +class EMData(Artifact): + min_zoom: int + max_zoom: int + nb_slices: int + resource_url: str + + class Dataset(ModelSchema, BilingualSchema): id: str + neuron3D_url: str + em_data: EMData | None = None class Meta: model = DatasetModel @@ -38,6 +55,7 @@ class Meta: class Neuron(ModelSchema, BilingualSchema): name: str dataset_ids: list[str] + model3D_url: str class Meta: model = NeuronModel diff --git a/applications/visualizer/backend/visualizer/settings/common.py b/applications/visualizer/backend/visualizer/settings/common.py index be375610..f85a7f94 100644 --- a/applications/visualizer/backend/visualizer/settings/common.py +++ b/applications/visualizer/backend/visualizer/settings/common.py @@ -144,3 +144,8 @@ DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField" NINJA_PAGINATION_PER_PAGE = 100 + +# Fragments for various artifacts +NEURON_REPRESENTATION_3D_URL_FORMAT = "resources/{{dataset}}/3d-model/{name}" +DATASET_NEURON_REPRESENTATION_3D_URL_FORMAT = "resources/{dataset}/3d-model/{{name}}" +DATASET_EMDATA_URL_FORMAT = "resources/{dataset}/em-data" From 4d2e4e914722eb469ae35672d533543f4770b7e7 Mon Sep 17 00:00:00 2001 From: aranega Date: Wed, 24 Jul 2024 12:59:52 -0600 Subject: [PATCH 08/43] CELE-69 Generate new API binding --- applications/visualizer/api/openapi.json | 48 +++++++++++++++++++ applications/visualizer/api/openapi.yaml | 33 +++++++++++++ .../visualizer/backend/openapi/openapi.json | 48 +++++++++++++++++++ .../visualizer/frontend/src/rest/index.ts | 1 + .../frontend/src/rest/models/Dataset.ts | 3 ++ .../frontend/src/rest/models/Neuron.ts | 1 + 6 files changed, 134 insertions(+) diff --git a/applications/visualizer/api/openapi.json b/applications/visualizer/api/openapi.json index 15f3638d..d17946c4 100644 --- a/applications/visualizer/api/openapi.json +++ b/applications/visualizer/api/openapi.json @@ -411,6 +411,20 @@ "title": "Id", "type": "string" }, + "neuron3DUrl": { + "title": "Neuron3Durl", + "type": "string" + }, + "emData": { + "anyOf": [ + { + "$ref": "#/components/schemas/EMData" + }, + { + "type": "null" + } + ] + }, "collection": { "maxLength": 20, "title": "Collection", @@ -452,6 +466,7 @@ }, "required": [ "id", + "neuron3DUrl", "collection", "name", "description", @@ -462,6 +477,34 @@ "title": "Dataset", "type": "object" }, + "EMData": { + "properties": { + "min_zoom": { + "title": "Min Zoom", + "type": "integer" + }, + "max_zoom": { + "title": "Max Zoom", + "type": "integer" + }, + "nb_slices": { + "title": "Nb Slices", + "type": "integer" + }, + "resource_url": { + "title": "Resource Url", + "type": "string" + } + }, + "required": [ + "min_zoom", + "max_zoom", + "nb_slices", + "resource_url" + ], + "title": "EMData", + "type": "object" + }, "ErrorMessage": { "properties": { "detail": { @@ -488,6 +531,10 @@ "title": "Datasetids", "type": "array" }, + "model3DUrl": { + "title": "Model3Durl", + "type": "string" + }, "nclass": { "maxLength": 30, "title": "Nclass", @@ -522,6 +569,7 @@ "required": [ "name", "datasetIds", + "model3DUrl", "nclass", "neurotransmitter", "type" diff --git a/applications/visualizer/api/openapi.yaml b/applications/visualizer/api/openapi.yaml index a5bc1bc3..13eada98 100644 --- a/applications/visualizer/api/openapi.yaml +++ b/applications/visualizer/api/openapi.yaml @@ -46,6 +46,10 @@ components: description: title: Description type: string + emData: + anyOf: + - $ref: '#/components/schemas/EMData' + - type: 'null' id: title: Id type: string @@ -53,6 +57,9 @@ components: maxLength: 50 title: Name type: string + neuron3DUrl: + title: Neuron3Durl + type: string time: title: Time type: number @@ -65,6 +72,7 @@ components: type: number required: - id + - neuron3DUrl - collection - name - description @@ -73,6 +81,27 @@ components: - type title: Dataset type: object + EMData: + properties: + max_zoom: + title: Max Zoom + type: integer + min_zoom: + title: Min Zoom + type: integer + nb_slices: + title: Nb Slices + type: integer + resource_url: + title: Resource Url + type: string + required: + - min_zoom + - max_zoom + - nb_slices + - resource_url + title: EMData + type: object ErrorMessage: properties: detail: @@ -110,6 +139,9 @@ components: default: false title: Intail type: boolean + model3DUrl: + title: Model3Durl + type: string name: title: Name type: string @@ -128,6 +160,7 @@ components: required: - name - datasetIds + - model3DUrl - nclass - neurotransmitter - type diff --git a/applications/visualizer/backend/openapi/openapi.json b/applications/visualizer/backend/openapi/openapi.json index 15f3638d..d17946c4 100644 --- a/applications/visualizer/backend/openapi/openapi.json +++ b/applications/visualizer/backend/openapi/openapi.json @@ -411,6 +411,20 @@ "title": "Id", "type": "string" }, + "neuron3DUrl": { + "title": "Neuron3Durl", + "type": "string" + }, + "emData": { + "anyOf": [ + { + "$ref": "#/components/schemas/EMData" + }, + { + "type": "null" + } + ] + }, "collection": { "maxLength": 20, "title": "Collection", @@ -452,6 +466,7 @@ }, "required": [ "id", + "neuron3DUrl", "collection", "name", "description", @@ -462,6 +477,34 @@ "title": "Dataset", "type": "object" }, + "EMData": { + "properties": { + "min_zoom": { + "title": "Min Zoom", + "type": "integer" + }, + "max_zoom": { + "title": "Max Zoom", + "type": "integer" + }, + "nb_slices": { + "title": "Nb Slices", + "type": "integer" + }, + "resource_url": { + "title": "Resource Url", + "type": "string" + } + }, + "required": [ + "min_zoom", + "max_zoom", + "nb_slices", + "resource_url" + ], + "title": "EMData", + "type": "object" + }, "ErrorMessage": { "properties": { "detail": { @@ -488,6 +531,10 @@ "title": "Datasetids", "type": "array" }, + "model3DUrl": { + "title": "Model3Durl", + "type": "string" + }, "nclass": { "maxLength": 30, "title": "Nclass", @@ -522,6 +569,7 @@ "required": [ "name", "datasetIds", + "model3DUrl", "nclass", "neurotransmitter", "type" diff --git a/applications/visualizer/frontend/src/rest/index.ts b/applications/visualizer/frontend/src/rest/index.ts index 6c3c26cd..80ec494c 100644 --- a/applications/visualizer/frontend/src/rest/index.ts +++ b/applications/visualizer/frontend/src/rest/index.ts @@ -9,6 +9,7 @@ export type { OpenAPIConfig } from './core/OpenAPI'; export type { Connection } from './models/Connection'; export type { Dataset } from './models/Dataset'; +export type { EMData } from './models/EMData'; export type { ErrorMessage } from './models/ErrorMessage'; export type { Input } from './models/Input'; export type { Neuron } from './models/Neuron'; diff --git a/applications/visualizer/frontend/src/rest/models/Dataset.ts b/applications/visualizer/frontend/src/rest/models/Dataset.ts index 977e5c09..e829fb32 100644 --- a/applications/visualizer/frontend/src/rest/models/Dataset.ts +++ b/applications/visualizer/frontend/src/rest/models/Dataset.ts @@ -2,8 +2,11 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ +import type { EMData } from './EMData'; export type Dataset = { id: string; + neuron3DUrl: string; + emData?: (EMData | null); collection: string; name: string; description: string; diff --git a/applications/visualizer/frontend/src/rest/models/Neuron.ts b/applications/visualizer/frontend/src/rest/models/Neuron.ts index 976f30fe..8ee68706 100644 --- a/applications/visualizer/frontend/src/rest/models/Neuron.ts +++ b/applications/visualizer/frontend/src/rest/models/Neuron.ts @@ -5,6 +5,7 @@ export type Neuron = { name: string; datasetIds: Array; + model3DUrl: string; nclass: string; neurotransmitter: string; type: string; From 6184aae89591da4cd19b384a76816f7490436c4b Mon Sep 17 00:00:00 2001 From: aranega Date: Wed, 24 Jul 2024 13:00:18 -0600 Subject: [PATCH 09/43] CELE-69 Add special function to compute parameterized URL --- .../visualizer/frontend/src/models/models.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/applications/visualizer/frontend/src/models/models.ts b/applications/visualizer/frontend/src/models/models.ts index 2f67409e..4c2f9e4e 100644 --- a/applications/visualizer/frontend/src/models/models.ts +++ b/applications/visualizer/frontend/src/models/models.ts @@ -1,3 +1,5 @@ +import type { Neuron as NeuronAPI } from "../rest"; + export enum ViewMode { Default = "Default", Compare = "Compare", @@ -25,10 +27,24 @@ export interface NeuronGroup { export interface Dataset { name: string; + neuron3DUrl: string; // Add other properties as needed } export interface Neuron { name: string; + model3D: string; // Add other properties as needed } + +const buildUrlFromFormat = (s: string, param: string) => { + return s.replace(s.match("{.+}")?.[0], param); +}; + +export function getNeuronUrlForDataset(neuron: Neuron, datasetId: string) { + return buildUrlFromFormat(neuron.model3D, datasetId); +} + +export function getNeuronURL(dataset: Dataset, neuronName: string) { + return buildUrlFromFormat(dataset.neuron3DUrl, neuronName); +} From 4d65f87de9e9e13f9dd0239d2f6872a9ef08d173 Mon Sep 17 00:00:00 2001 From: aranega Date: Wed, 24 Jul 2024 13:01:13 -0600 Subject: [PATCH 10/43] CELE-69 Fix call outside of useEffect --- .../CompareWorkspaceDialog.tsx | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/applications/visualizer/frontend/src/components/ViewerContainer/CompareWorkspaceDialog.tsx b/applications/visualizer/frontend/src/components/ViewerContainer/CompareWorkspaceDialog.tsx index 1497ad52..af0872d3 100644 --- a/applications/visualizer/frontend/src/components/ViewerContainer/CompareWorkspaceDialog.tsx +++ b/applications/visualizer/frontend/src/components/ViewerContainer/CompareWorkspaceDialog.tsx @@ -2,6 +2,7 @@ import { Box, Button, Dialog, FormLabel, IconButton, TextField, Typography } fro import { useEffect, useState } from "react"; import { CaretIcon, CheckIcon, CloseIcon } from "../../icons"; import type { Dataset, Neuron } from "../../models"; +import { getNeuronUrlForDataset } from "../../models/models.ts"; import { NeuronsService } from "../../rest"; import { vars as colors } from "../../theme/variables.ts"; import CustomAutocomplete from "../CustomAutocomplete.tsx"; @@ -15,16 +16,18 @@ interface CompareWorkspaceDialogProps { const CompareWorkspaceDialog = ({ onClose, showModal, datasets }: CompareWorkspaceDialogProps) => { const [neurons, setNeurons] = useState([]); - const fetchNeurons = async () => { - try { - const response = await NeuronsService.getAllCells({ page: 1 }); - setNeurons(response.items); - } catch (error) { - console.error("Failed to fetch datasets", error); - } - }; - useEffect(() => { + const fetchNeurons = async () => { + try { + const response = await NeuronsService.getAllCells({ page: 1 }); + setNeurons(response.items as Neuron[]); + + console.log(getNeuronUrlForDataset(response.items[0], "dddd")); + } catch (error) { + console.error("Failed to fetch datasets", error); + } + }; + fetchNeurons(); }, []); From e3fdb6e4b346f73b458445cd8668ebcb0c8cd77c Mon Sep 17 00:00:00 2001 From: aranega Date: Wed, 24 Jul 2024 13:20:15 -0600 Subject: [PATCH 11/43] CELE-69 Fix formatting issues --- .../components/ViewerContainer/CompareWorkspaceDialog.tsx | 5 +---- applications/visualizer/frontend/src/models/models.ts | 6 ++---- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/applications/visualizer/frontend/src/components/ViewerContainer/CompareWorkspaceDialog.tsx b/applications/visualizer/frontend/src/components/ViewerContainer/CompareWorkspaceDialog.tsx index af0872d3..fd013e6b 100644 --- a/applications/visualizer/frontend/src/components/ViewerContainer/CompareWorkspaceDialog.tsx +++ b/applications/visualizer/frontend/src/components/ViewerContainer/CompareWorkspaceDialog.tsx @@ -2,7 +2,6 @@ import { Box, Button, Dialog, FormLabel, IconButton, TextField, Typography } fro import { useEffect, useState } from "react"; import { CaretIcon, CheckIcon, CloseIcon } from "../../icons"; import type { Dataset, Neuron } from "../../models"; -import { getNeuronUrlForDataset } from "../../models/models.ts"; import { NeuronsService } from "../../rest"; import { vars as colors } from "../../theme/variables.ts"; import CustomAutocomplete from "../CustomAutocomplete.tsx"; @@ -20,9 +19,7 @@ const CompareWorkspaceDialog = ({ onClose, showModal, datasets }: CompareWorkspa const fetchNeurons = async () => { try { const response = await NeuronsService.getAllCells({ page: 1 }); - setNeurons(response.items as Neuron[]); - - console.log(getNeuronUrlForDataset(response.items[0], "dddd")); + setNeurons(response.items); } catch (error) { console.error("Failed to fetch datasets", error); } diff --git a/applications/visualizer/frontend/src/models/models.ts b/applications/visualizer/frontend/src/models/models.ts index 4c2f9e4e..73e4ddfb 100644 --- a/applications/visualizer/frontend/src/models/models.ts +++ b/applications/visualizer/frontend/src/models/models.ts @@ -1,5 +1,3 @@ -import type { Neuron as NeuronAPI } from "../rest"; - export enum ViewMode { Default = "Default", Compare = "Compare", @@ -33,7 +31,7 @@ export interface Dataset { export interface Neuron { name: string; - model3D: string; + model3DUrl: string; // Add other properties as needed } @@ -42,7 +40,7 @@ const buildUrlFromFormat = (s: string, param: string) => { }; export function getNeuronUrlForDataset(neuron: Neuron, datasetId: string) { - return buildUrlFromFormat(neuron.model3D, datasetId); + return buildUrlFromFormat(neuron.model3DUrl, datasetId); } export function getNeuronURL(dataset: Dataset, neuronName: string) { From dd3cf098ac63d9a016fa05ddccdb471b269bf827 Mon Sep 17 00:00:00 2001 From: aranega Date: Wed, 24 Jul 2024 13:26:32 -0600 Subject: [PATCH 12/43] CELE-69 Add missing part of REST binding --- .../visualizer/frontend/src/rest/models/EMData.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 applications/visualizer/frontend/src/rest/models/EMData.ts diff --git a/applications/visualizer/frontend/src/rest/models/EMData.ts b/applications/visualizer/frontend/src/rest/models/EMData.ts new file mode 100644 index 00000000..18d31190 --- /dev/null +++ b/applications/visualizer/frontend/src/rest/models/EMData.ts @@ -0,0 +1,11 @@ +/* generated using openapi-typescript-codegen -- do not edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +export type EMData = { + min_zoom: number; + max_zoom: number; + nb_slices: number; + resource_url: string; +}; + From b6a1c4ff7f295fd96320df281a4c084ec8153d96 Mon Sep 17 00:00:00 2001 From: aranega Date: Thu, 25 Jul 2024 01:46:36 -0600 Subject: [PATCH 13/43] Fix y coordinate orientation --- extraction/segmentation-extraction.py | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/extraction/segmentation-extraction.py b/extraction/segmentation-extraction.py index fe0d949b..97457862 100644 --- a/extraction/segmentation-extraction.py +++ b/extraction/segmentation-extraction.py @@ -58,19 +58,6 @@ def parse_entries(metadata_path: Path): return entries -def transform_point(src_point, src_bbox, dst_bbox=((-179, 85), (179, -85))): - (src_x_min, src_y_min), (src_x_max, src_y_max) = src_bbox - (dst_x_min, dst_y_min), (dst_x_max, dst_y_max) = dst_bbox - - scale_x = (dst_x_max - dst_x_min) / (src_x_max - src_x_min) - scale_y = (dst_y_max - dst_y_min) / (src_y_max - src_y_min) - - dst_x = dst_x_min + (src_point[0] - src_x_min) * scale_x - dst_y = dst_y_min + (src_point[1] - src_y_min) * scale_y - - return (dst_x, dst_y) - - def parse_entry(line, fields): name_start = line.index('"') values = line[:name_start].split() @@ -163,6 +150,9 @@ def extract( cpy.putpixel((x, y), metadata_entries[v].color1) cpy.save(result_img_path) + def flip_y(x, y, image_height): + return (x, image_height - y) + if write_json: features = [ Feature( @@ -177,7 +167,7 @@ def extract( ] fc = FeatureCollection(features) geojson.utils.map_tuples( - lambda coord: transform_point(coord, ((0, 0), shape)), fc + lambda coord: flip_y(*coord, image_height=shape[1]), fc ) result_json_path.write_text(rewind(geojson.dumps(fc))) From a16ecb783fcea7afca82a51ef57018263ef5a149 Mon Sep 17 00:00:00 2001 From: aranega Date: Thu, 25 Jul 2024 01:49:08 -0600 Subject: [PATCH 14/43] Add proxy towards segmentation --- .../visualizer/settings/development.py | 2 +- .../visualizer/backend/visualizer/urls.py | 3 +- .../visualizer/backend/visualizer/views.py | 19 ++++- .../visualizer/frontend/vite.config.ts | 80 ++++++++++--------- 4 files changed, 65 insertions(+), 39 deletions(-) diff --git a/applications/visualizer/backend/visualizer/settings/development.py b/applications/visualizer/backend/visualizer/settings/development.py index 466a5f4d..50675afc 100644 --- a/applications/visualizer/backend/visualizer/settings/development.py +++ b/applications/visualizer/backend/visualizer/settings/development.py @@ -17,4 +17,4 @@ } -EM_DATA_FOLDER = BASE_DIR.parent.parent.parent / "SEM_adult" +EM_DATA_FOLDER = BASE_DIR.parent.parent.parent / "SEM_adult_catmaid_tiles" diff --git a/applications/visualizer/backend/visualizer/urls.py b/applications/visualizer/backend/visualizer/urls.py index 32de09e8..fef97009 100644 --- a/applications/visualizer/backend/visualizer/urls.py +++ b/applications/visualizer/backend/visualizer/urls.py @@ -21,7 +21,7 @@ from django.conf.urls.static import static from api.api import api -from .views import index, get_tile +from .views import index, get_tile, get_seg urlpatterns = [ path("admin/", admin.site.urls), @@ -30,5 +30,6 @@ re_path( r"^emdata/(?P\d+)/(?P\d+)_(?P\d+)_(?P\d+).jpg", get_tile ), + re_path(r"^segdata/(?P\d+)", get_seg), re_path(r"(?P.*)", index, name="index"), ] diff --git a/applications/visualizer/backend/visualizer/views.py b/applications/visualizer/backend/visualizer/views.py index f98cc28c..b6347f5b 100644 --- a/applications/visualizer/backend/visualizer/views.py +++ b/applications/visualizer/backend/visualizer/views.py @@ -3,7 +3,7 @@ from pathlib import Path from django.conf import settings -from django.http import FileResponse, HttpResponseRedirect +from django.http import FileResponse, Http404, HttpResponseRedirect from django.urls import reverse from django.utils._os import safe_join @@ -43,6 +43,23 @@ def get_tile(request, slice, x, y, zoom): content_type = content_type or "application/octet-stream" if not full_path.exists(): content = BLACK_TILE_BUFFER.getbuffer() + # raise Http404() else: content = full_path.open("rb") + + return FileResponse(content, content_type=content_type) + + +def get_seg(request, slice): + path = Path( + f"Dataset8_segmentation_withsoma_Mona_updated_20230127.vsseg_export_s{slice}.json" + ) + + full_path = Path( + safe_join(EM_DATA_FOLDER.parent / "SEM_adult_segmentation_mip0/", path) + ) + + content_type, _ = mimetypes.guess_type(str(full_path)) + content_type = content_type or "application/octet-stream" + content = full_path.open("rb") return FileResponse(content, content_type=content_type) diff --git a/applications/visualizer/frontend/vite.config.ts b/applications/visualizer/frontend/vite.config.ts index 8775b122..15119c46 100644 --- a/applications/visualizer/frontend/vite.config.ts +++ b/applications/visualizer/frontend/vite.config.ts @@ -1,44 +1,52 @@ -import { defineConfig } from 'vite' -import react from '@vitejs/plugin-react' +import react from "@vitejs/plugin-react"; +import { defineConfig } from "vite"; const PORT = 9000; // https://vitejs.dev/config/ const defaultConfig = { - plugins: [react()], - // publicDir: 'src/assets', -} + plugins: [react()], + // publicDir: 'src/assets', +}; export default defineConfig(({ command, mode }) => { - if (command !== "serve") { - return defaultConfig - } - const isDev = mode === 'development' - const port = process.env.PORT || PORT - const theDomain = process.env.DOMAIN || 'http://localhost:8000'; + if (command !== "serve") { + return defaultConfig; + } + const isDev = mode === "development"; + const port = process.env.PORT || PORT; + const theDomain = process.env.DOMAIN || "http://localhost:8000"; - const replaceHost = (uri: string, appName: string) => (uri.includes("visualizer") && uri.replace("visualizer", appName + '.' + theDomain)) || uri - console.log("XXX", replaceHost(theDomain, 'visualizer')) - return { - ...defaultConfig, - build: { - sourcemap: isDev, - }, - server: { - compress: true, - port: Number(port), - proxy: { - '/api': { - target: replaceHost(theDomain, 'visualizer'), - changeOrigin: isDev, - secure: !isDev - }, - '/emdata': { - target: replaceHost(theDomain, 'visualizer'), - changeOrigin: isDev, - secure: !isDev - } - } - } - } -}) \ No newline at end of file + const replaceHost = (uri: string, appName: string) => + (uri.includes("visualizer") && + uri.replace("visualizer", appName + "." + theDomain)) || + uri; + console.log("XXX", replaceHost(theDomain, "visualizer")); + return { + ...defaultConfig, + build: { + sourcemap: isDev, + }, + server: { + compress: true, + port: Number(port), + proxy: { + "/api": { + target: replaceHost(theDomain, "visualizer"), + changeOrigin: isDev, + secure: !isDev, + }, + "/emdata": { + target: replaceHost(theDomain, "visualizer"), + changeOrigin: isDev, + secure: !isDev, + }, + "/segdata": { + target: replaceHost(theDomain, "visualizer"), + changeOrigin: isDev, + secure: !isDev, + }, + }, + }, + }; +}); From 96e989cdbec2f2c629669134cdd5392a081d2f1d Mon Sep 17 00:00:00 2001 From: aranega Date: Thu, 25 Jul 2024 01:49:46 -0600 Subject: [PATCH 15/43] Disable annoying useless components --- .../frontend/src/components/LeftComponent.tsx | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/applications/visualizer/frontend/src/components/LeftComponent.tsx b/applications/visualizer/frontend/src/components/LeftComponent.tsx index cf9a8773..4ae1090d 100644 --- a/applications/visualizer/frontend/src/components/LeftComponent.tsx +++ b/applications/visualizer/frontend/src/components/LeftComponent.tsx @@ -4,15 +4,15 @@ import { useGlobalContext } from "../contexts/GlobalContext.tsx"; import EMStackViewer from "./EMStackTilesViewer.tsx"; export default function LeftComponent() { - const { datasets, neurons } = useGlobalContext(); + const { datasets, neurons } = useGlobalContext(); - const datasetArray = datasets ? Object.values(datasets) : []; - const neuronArray = neurons ? Object.values(neurons) : []; - return ( - - Vite + React + Typescript - All datasets names: - + const datasetArray = datasets ? Object.values(datasets) : []; + const neuronArray = neurons ? Object.values(neurons) : []; + return ( + + Vite + React + Typescript + All datasets names: + {/* { // Render each dataset name datasetArray.map(dataset => ( @@ -28,8 +28,8 @@ export default function LeftComponent() { {neuron.name} )) } - - - - ); -} \ No newline at end of file + */} + + + ); +} From 6e5b8a0c3bd3b1c55d95ad311d0935e213fe4975 Mon Sep 17 00:00:00 2001 From: aranega Date: Thu, 25 Jul 2024 01:50:05 -0600 Subject: [PATCH 16/43] Add first working solution for EMStackTilesViewer --- .../src/components/EMStackTilesViewer.tsx | 241 +++++++++++------- 1 file changed, 154 insertions(+), 87 deletions(-) diff --git a/applications/visualizer/frontend/src/components/EMStackTilesViewer.tsx b/applications/visualizer/frontend/src/components/EMStackTilesViewer.tsx index be670815..469c56e9 100644 --- a/applications/visualizer/frontend/src/components/EMStackTilesViewer.tsx +++ b/applications/visualizer/frontend/src/components/EMStackTilesViewer.tsx @@ -1,89 +1,156 @@ -import { Map, View } from 'ol'; -import LayerGroup from 'ol/layer/Group'; -import Layer from 'ol/layer/Layer'; -import TileLayer from 'ol/layer/Tile'; -import { TileDebug, TileImage, XYZ } from 'ol/source'; -import { useEffect, useRef, useState } from 'react'; +import "ol/ol.css"; +import { type Feature, Map, View } from "ol"; +import type { FeatureLike } from "ol/Feature"; +import ScaleLine from "ol/control/ScaleLine"; +import { getCenter } from "ol/extent"; +import GeoJSON from "ol/format/GeoJSON"; +import TileLayer from "ol/layer/Tile"; +import VectorLayer from "ol/layer/Vector"; +import { Projection } from "ol/proj"; +import { TileDebug, XYZ } from "ol/source"; +import VectorSource from "ol/source/Vector"; +import Fill from "ol/style/Fill"; +import Stroke from "ol/style/Stroke"; +import Style from "ol/style/Style"; +import Text from "ol/style/Text"; +import { TileGrid } from "ol/tilegrid"; +import { useEffect, useRef } from "react"; + +// const width = 42496 / 2; +// const height = 22528 / 2; +const width = 19968; +const height = 11008; + +// const extent = [0, -height, width, 0]; +const extent = [0, 0, width, height]; + +const projection = new Projection({ + code: "pixel", + units: "pixels", + extent: extent, + metersPerUnit: 2e-9, // 2 nm voxels +}); + +const tilegrid = new TileGrid({ + extent: extent, + tileSize: 512, + resolutions: [0.5, 1, 2, 4, 8, 16, 32].reverse(), +}); + +const getFeatureStyle = (feature: FeatureLike) => { + const opacity = 0.2; + const [r, g, b] = feature.get("color"); + const rgbaColor = `rgba(${r}, ${g}, ${b}, ${opacity})`; + + return new Style({ + stroke: new Stroke({ + color: [r, g, b], + width: 2, + }), + fill: new Fill({ + color: rgbaColor, + }), + }); +}; + +const resetStyle = (feature: Feature) => { + feature.setStyle(getFeatureStyle(feature)); +}; + +const setHighlightStyle = (feature: Feature) => { + const opacity = 0.5; + const [r, g, b] = feature.get("color"); + const rgbaColor = `rgba(${r}, ${g}, ${b}, ${opacity})`; + + const style = new Style({ + stroke: new Stroke({ + color: [r, g, b], + width: 4, + }), + fill: new Fill({ + color: rgbaColor, + }), + text: new Text({ + text: feature.get("name"), + scale: 2, + }), + }); + + feature.setStyle(style); +}; const EMStackViewer = () => { - const mapRef = useRef(null) - const indexLayer = useRef(null) - // const slice = useRef(537) - const [slice, setSlice] = useState(537) - const cacheSize = 500 - - const increaseSlice = () => { - if (!indexLayer.current) { - return - } - setSlice(slice + 1); - mapRef.current?.removeLayer(indexLayer.current) - mapRef.current?.addLayer( - new TileLayer({ - source: new TileImage({ - cacheSize: cacheSize, - url: `emdata/${slice}/{x}_{y}_{z}.jpg` - }) - }) - ) - - } - - const decreaseSlice = () => { - if (!indexLayer.current) { - return - } - setSlice(slice - 1) - mapRef.current?.removeLayer(indexLayer.current) - mapRef.current?.addLayer( - new TileLayer({ - source: new TileImage({ - cacheSize: cacheSize, - - url: `emdata/${slice}/{x}_{y}_{z}.jpg` - }) - }) - ) - } - - useEffect(() => { - if (mapRef.current) { - return - } - indexLayer.current = new TileLayer({ - // minZoom: 0, - source: new TileImage({ - cacheSize: cacheSize, - - url: `emdata/${slice}/{x}_{y}_{z}.jpg` - }) - }) - mapRef.current = new Map({ - target: "mapdiv", - layers: [ - indexLayer.current, - // new TileLayer({ - // source: new TileDebug(), - // }), - ], - view: new View({ - center: [0, 0], - zoom: 0, - maxZoom: 6, - }), - controls: [] - }) - }, []) - - - - return (<> - - -

slice: {slice}

-
- ) -} - - -export default EMStackViewer; \ No newline at end of file + const slice = 537; + const mapRef = useRef(null); + const clickedFeature = useRef(null); + + const emLayer = new TileLayer({ + source: new XYZ({ + tileGrid: tilegrid, + url: `emdata/${slice}/{x}_{y}_{z}.jpg`, + projection: projection, + }), + }); + + const segLayer = new VectorLayer({ + source: new VectorSource({ + url: `segdata/${slice}`, + format: new GeoJSON(), + }), + style: getFeatureStyle, + }); + + // const debugLayer = new TileLayer({ + // source: new TileDebug({ + // projection: projection, + // tileGrid: tilegrid, + // }), + // }); + + const scale = new ScaleLine({ + units: "metric", + }); + + useEffect(() => { + if (mapRef.current) { + return; + } + + const map = new Map({ + target: "emviewer", + layers: [emLayer, segLayer], + view: new View({ + projection: projection, + center: getCenter(extent), + extent: extent, + zoom: 1, + maxZoom: 5, + resolutions: tilegrid.getResolutions(), + }), + controls: [scale], + }); + + map.on("click", (evt) => { + const feature = map.forEachFeatureAtPixel(evt.pixel, (feat) => feat); + if (clickedFeature.current) { + resetStyle(clickedFeature.current); + } + + if (feature) { + setHighlightStyle(feature as Feature); + clickedFeature.current = feature as Feature; + console.log("Feature", feature.get("name"), feature); + } + }); + + mapRef.current = map; + }, []); + + return ( + <> +
+ + ); +}; + +export default EMStackViewer; From 3c39ec8fff012b1c1f2b9aad163e760d4fca0327 Mon Sep 17 00:00:00 2001 From: Diogo Correia Date: Thu, 25 Jul 2024 12:08:17 +0100 Subject: [PATCH 17/43] Add requirements for segmentation extraction --- extraction/requirements.txt | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 extraction/requirements.txt diff --git a/extraction/requirements.txt b/extraction/requirements.txt new file mode 100644 index 00000000..12dfb876 --- /dev/null +++ b/extraction/requirements.txt @@ -0,0 +1,5 @@ +diplib==3.5.1 +geojson==3.1.0 +geojson-rewind==1.1.0 +numpy==2.0.0 +tqdm==4.66.4 From 635e9415f649c6955f515d0871d7806811ec97d8 Mon Sep 17 00:00:00 2001 From: Diogo Correia Date: Thu, 25 Jul 2024 12:08:58 +0100 Subject: [PATCH 18/43] Missing Pillow backend dependency --- applications/visualizer/backend/requirements.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/applications/visualizer/backend/requirements.txt b/applications/visualizer/backend/requirements.txt index e0074d1d..bccbc503 100644 --- a/applications/visualizer/backend/requirements.txt +++ b/applications/visualizer/backend/requirements.txt @@ -3,4 +3,5 @@ django-cors-headers==4.3.1 django-ninja==1.1.0 uvicorn==0.29.0 ruamel.yaml==0.18.6 -psycopg[binary]==3.1.18 \ No newline at end of file +psycopg[binary]==3.1.18 +Pillow==10.4.0 From 0436076a71195593b85fee08ec9fc5b9f2d360b7 Mon Sep 17 00:00:00 2001 From: Diogo Correia Date: Fri, 2 Aug 2024 17:03:56 +0100 Subject: [PATCH 19/43] CELE-71 mouse wheel to step over slices --- .../src/components/EMStackTilesViewer.tsx | 69 ++++++++++++++++--- 1 file changed, 60 insertions(+), 9 deletions(-) diff --git a/applications/visualizer/frontend/src/components/EMStackTilesViewer.tsx b/applications/visualizer/frontend/src/components/EMStackTilesViewer.tsx index 469c56e9..b642af9e 100644 --- a/applications/visualizer/frontend/src/components/EMStackTilesViewer.tsx +++ b/applications/visualizer/frontend/src/components/EMStackTilesViewer.tsx @@ -14,7 +14,10 @@ import Stroke from "ol/style/Stroke"; import Style from "ol/style/Style"; import Text from "ol/style/Text"; import { TileGrid } from "ol/tilegrid"; -import { useEffect, useRef } from "react"; +import { defaults as defaultInteractions, MouseWheelZoom } from 'ol/interaction.js'; +import { WheelEventHandler, useEffect, useRef, useState } from "react"; +import { shiftKeyOnly } from "ol/events/condition"; +import Layer from "ol/layer/Layer"; // const width = 42496 / 2; // const height = 22528 / 2; @@ -79,26 +82,45 @@ const setHighlightStyle = (feature: Feature) => { feature.setStyle(style); }; -const EMStackViewer = () => { - const slice = 537; - const mapRef = useRef(null); - const clickedFeature = useRef(null); - - const emLayer = new TileLayer({ +const newEMLayer = (slice: number): TileLayer => { + return new TileLayer({ source: new XYZ({ tileGrid: tilegrid, url: `emdata/${slice}/{x}_{y}_{z}.jpg`, projection: projection, }), }); +} - const segLayer = new VectorLayer({ +const newSegLayer = (slice: number) => { + return new VectorLayer({ source: new VectorSource({ url: `segdata/${slice}`, format: new GeoJSON(), }), style: getFeatureStyle, }); +} + +const updateSliceLayer = (map: Map, slice: number) => { + map.getAllLayers().map(l => { + map.removeLayer(l) + }) + map.addLayer(newEMLayer(slice)) + map.addLayer(newSegLayer(slice)) +} + +const EMStackViewer = () => { + const minSlice = 0 + const maxSlice = 714 + + let slice = 537 + + const mapRef = useRef(null); + const clickedFeature = useRef(null); + + const emLayer = newEMLayer(slice) + const segLayer = newSegLayer(slice) // const debugLayer = new TileLayer({ // source: new TileDebug({ @@ -111,6 +133,14 @@ const EMStackViewer = () => { units: "metric", }); + const interactions = defaultInteractions({ + mouseWheelZoom: false + }).extend([ + new MouseWheelZoom({ + condition: shiftKeyOnly + }) + ]) + useEffect(() => { if (mapRef.current) { return; @@ -128,6 +158,7 @@ const EMStackViewer = () => { resolutions: tilegrid.getResolutions(), }), controls: [scale], + interactions: interactions, }); map.on("click", (evt) => { @@ -143,12 +174,32 @@ const EMStackViewer = () => { } }); + map.getTargetElement().addEventListener("wheel", function(e) { + if (e.shiftKey) { + return + } + + e.preventDefault() + const scrollUp = e.deltaY < 0 + + if(scrollUp && slice < maxSlice) { + ++slice + } + + if (!scrollUp && slice > minSlice){ + --slice + } + + updateSliceLayer(map, slice) + console.debug(`updated view to slice nº ${slice}`) + }) + mapRef.current = map; }, []); return ( <> -
+
); }; From 2f3f57f55416a536f5af5e0b87aa8293827d8c6d Mon Sep 17 00:00:00 2001 From: Diogo Correia Date: Mon, 5 Aug 2024 16:59:54 +0100 Subject: [PATCH 20/43] CELE-71 slices layer cache POC --- .../src/components/EMStackTilesViewer.tsx | 257 +++++++++++++++++- 1 file changed, 249 insertions(+), 8 deletions(-) diff --git a/applications/visualizer/frontend/src/components/EMStackTilesViewer.tsx b/applications/visualizer/frontend/src/components/EMStackTilesViewer.tsx index b642af9e..3bdac5d9 100644 --- a/applications/visualizer/frontend/src/components/EMStackTilesViewer.tsx +++ b/applications/visualizer/frontend/src/components/EMStackTilesViewer.tsx @@ -14,10 +14,11 @@ import Stroke from "ol/style/Stroke"; import Style from "ol/style/Style"; import Text from "ol/style/Text"; import { TileGrid } from "ol/tilegrid"; +import BaseLayer from "ol/layer/Base"; import { defaults as defaultInteractions, MouseWheelZoom } from 'ol/interaction.js'; import { WheelEventHandler, useEffect, useRef, useState } from "react"; import { shiftKeyOnly } from "ol/events/condition"; -import Layer from "ol/layer/Layer"; + // const width = 42496 / 2; // const height = 22528 / 2; @@ -116,11 +117,14 @@ const EMStackViewer = () => { let slice = 537 + const startSlice = 537 + const ringSize = 11 + const mapRef = useRef(null); const clickedFeature = useRef(null); - const emLayer = newEMLayer(slice) - const segLayer = newSegLayer(slice) + // const emLayer = newEMLayer(slice) + // const segLayer = newSegLayer(slice) // const debugLayer = new TileLayer({ // source: new TileDebug({ @@ -148,7 +152,7 @@ const EMStackViewer = () => { const map = new Map({ target: "emviewer", - layers: [emLayer, segLayer], + layers: [], view: new View({ projection: projection, center: getCenter(extent), @@ -161,6 +165,28 @@ const EMStackViewer = () => { interactions: interactions, }); + const ringEM = new SlidingRing({ + map: map, + cacheSize: 5, + sliceExtent: [minSlice, maxSlice], + startSlice: startSlice, + newLayer: newEMLayer, + zIndex: 0, + }) + + ringEM.debug() + + const ringSeg = new SlidingRing({ + map: map, + cacheSize: ringSize, + sliceExtent: [minSlice, maxSlice], + startSlice: startSlice, + newLayer: newSegLayer, + zIndex: 1, + }) + + ringSeg.debug() + map.on("click", (evt) => { const feature = map.forEachFeatureAtPixel(evt.pixel, (feat) => feat); if (clickedFeature.current) { @@ -183,15 +209,23 @@ const EMStackViewer = () => { const scrollUp = e.deltaY < 0 if(scrollUp && slice < maxSlice) { - ++slice + // ++slice + ringEM.next() + ringEM.debug() + + ringSeg.next() } if (!scrollUp && slice > minSlice){ - --slice + // --slice + ringEM.prev() + ringEM.debug() + + ringSeg.prev() } - updateSliceLayer(map, slice) - console.debug(`updated view to slice nº ${slice}`) + // updateSliceLayer(map, slice) + console.log(map.getAllLayers()) }) mapRef.current = map; @@ -205,3 +239,210 @@ const EMStackViewer = () => { }; export default EMStackViewer; + + +export interface SlidingRingOpts { + map: Map; + newLayer: (slice: number) => BaseLayer; + cacheSize?: number; + sliceExtent: [number, number]; + startSlice: number; + zIndex?: number; +} + +export class SlidingRing { + private map: Map; + private newLayer: (slice: number) => BaseLayer; + private zIndex; + + private ring: Array<{ + slice: number; + layer: BaseLayer; + }>; + private ringHalfSize: number; + + private currSlice: number; + private minSlice: number; + private maxSlice: number; + + private pos: number; // ring current position + private tail: number; + private head: number; + + private backgroundZIndex: number = -999 + + constructor(options: SlidingRingOpts) { + const defaultOpts = { + cacheSize: 11, + zIndex: 0, + } + + const opts = {...defaultOpts, ...options} + + if (opts.cacheSize < 3) { + throw Error("ring must have a cache size greater than 3 to be functional") + } + + const minSlice = opts.sliceExtent[0] + const maxSlice = opts.sliceExtent[1] + + if (minSlice < 0) { + throw Error("bad extent: can not have negative indexes") + } + + if (minSlice >= maxSlice) { + throw Error("bad extent: set [min, max]") + } + + if (opts.startSlice > maxSlice || opts.startSlice < minSlice) { + throw Error("startSlice must be between the extent bounds") + } + + if (maxSlice - minSlice < opts.cacheSize) { + console.warn("setting cache size to extent bounds to save memory") + opts.cacheSize = maxSlice - minSlice + } + + this.map = opts.map; + this.newLayer = opts.newLayer; + this.zIndex = opts.zIndex; + + this.ring = new Array(opts.cacheSize) + this.ringHalfSize = Math.floor(opts.cacheSize / 2) + + this.currSlice = opts.startSlice + this.minSlice = minSlice + this.maxSlice = maxSlice + + // initialize ring buffer + let initTailSlice = this.currSlice - this.ringHalfSize + let initHeadSlice = this.currSlice + this.ringHalfSize + + if (initTailSlice < this.minSlice) { + initTailSlice = this.minSlice + } + if (initHeadSlice > this.maxSlice) { + initHeadSlice = this.maxSlice + initTailSlice = initHeadSlice - this.ring.length + 1 + } + + for (let i = 0; i < this.ring.length; i++) { + const slice = initTailSlice + i + const layer = this.newLayer(slice) + this.ring[i] = { + slice: slice, + layer: layer + } + + this.map.addLayer(layer) + layer.setZIndex(this.backgroundZIndex) + } + + // set current position + this.pos = this.currSlice - initTailSlice + this.head = this.ring.length - 1 + this.tail = 0 + + // set current layer visible + this.ring[this.pos].layer.setZIndex(this.zIndex) + } + + next() { + const nextSlice = this.currSlice + 1 + if (nextSlice > this.maxSlice) return + + // TODO: update map with curr layer + const nextPos = (this.pos + this.ring.length + 1) % this.ring.length + this.ring[nextPos].layer.setZIndex(this.zIndex) + this.ring[this.pos].layer.setZIndex(this.backgroundZIndex) + + const newHeadSlice = this.ring[this.head].slice + 1 + + // slide window + if (newHeadSlice <= this.maxSlice && nextSlice - this.ring[this.tail].slice > this.ringHalfSize) { + this.evict(this.tail) + + const layer = this.newLayer(newHeadSlice) + layer.setZIndex(this.backgroundZIndex) + this.map.addLayer(layer) + + this.ring[this.tail] = { + slice: newHeadSlice, + layer: layer, + } + + // update window + this.head = this.tail + this.tail = (this.tail + this.ring.length + 1) % this.ring.length + } + + // update current state + this.currSlice = nextSlice + this.pos = nextPos + } + + prev() { + const prevSlice = this.currSlice - 1 + if (prevSlice < this.minSlice) return + + // TODO: update map curr layer + const prevPos = (this.pos + this.ring.length - 1) % this.ring.length + this.ring[prevPos].layer.setZIndex(this.zIndex) + this.ring[this.pos].layer.setZIndex(this.backgroundZIndex) + + const newTailSlice = this.ring[this.tail].slice - 1 + + // slide window + if (newTailSlice >= this.minSlice && this.ring[this.head].slice - prevSlice > this.ringHalfSize){ + this.evict(this.head) + + const layer = this.newLayer(newTailSlice) + layer.setZIndex(this.backgroundZIndex) + this.map.addLayer(layer) + + this.ring[this.head] = { + slice: newTailSlice, + layer: layer, + } + + this.tail = this.head + this.head = (this.tail + this.ring.length - 1) % this.ring.length + } + + // update current state + this.currSlice = prevSlice + this.pos = prevPos + } + + evict(pos: number) { + this.map.removeLayer(this.ring[pos].layer) + console.debug(`evicted: slice=${this.ring[pos].slice}`) + } + + debug() { + let text = '[' + + for (let i = 0; i < this.ring.length; i++) { + if (this.ring[i] === undefined) { + text = text. concat('?') + continue + } + + switch (true) { + case i === this.pos: + text = text.concat('*') + break + case i === this.tail: + text = text.concat("-") + break + case i === this.head: + text = text.concat("+") + } + + text = text.concat(`${this.ring[i].slice}`) + if (i !== this.ring.length - 1) text = text.concat(', ') + } + text = text.concat(']') + console.log(text) + } +} From 55f69226b5167830e8b6d721b6e7764704c094d8 Mon Sep 17 00:00:00 2001 From: Diogo Correia Date: Tue, 6 Aug 2024 15:07:16 +0100 Subject: [PATCH 21/43] CELE-71 fix leading zeros in segmentation request --- applications/visualizer/backend/visualizer/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/applications/visualizer/backend/visualizer/views.py b/applications/visualizer/backend/visualizer/views.py index b6347f5b..465efc20 100644 --- a/applications/visualizer/backend/visualizer/views.py +++ b/applications/visualizer/backend/visualizer/views.py @@ -52,7 +52,7 @@ def get_tile(request, slice, x, y, zoom): def get_seg(request, slice): path = Path( - f"Dataset8_segmentation_withsoma_Mona_updated_20230127.vsseg_export_s{slice}.json" + f"Dataset8_segmentation_withsoma_Mona_updated_20230127.vsseg_export_s{int(slice):03d}.json" ) full_path = Path( From f6a055f8a2162b3c28c1b102fbd61e95613931a7 Mon Sep 17 00:00:00 2001 From: Diogo Correia Date: Tue, 6 Aug 2024 15:08:59 +0100 Subject: [PATCH 22/43] CELE-71 code cleanup --- .../src/components/EMStackTilesViewer.tsx | 30 +++---------------- 1 file changed, 4 insertions(+), 26 deletions(-) diff --git a/applications/visualizer/frontend/src/components/EMStackTilesViewer.tsx b/applications/visualizer/frontend/src/components/EMStackTilesViewer.tsx index 3bdac5d9..91f7db5c 100644 --- a/applications/visualizer/frontend/src/components/EMStackTilesViewer.tsx +++ b/applications/visualizer/frontend/src/components/EMStackTilesViewer.tsx @@ -16,7 +16,7 @@ import Text from "ol/style/Text"; import { TileGrid } from "ol/tilegrid"; import BaseLayer from "ol/layer/Base"; import { defaults as defaultInteractions, MouseWheelZoom } from 'ol/interaction.js'; -import { WheelEventHandler, useEffect, useRef, useState } from "react"; +import { useEffect, useRef } from "react"; import { shiftKeyOnly } from "ol/events/condition"; @@ -103,29 +103,15 @@ const newSegLayer = (slice: number) => { }); } -const updateSliceLayer = (map: Map, slice: number) => { - map.getAllLayers().map(l => { - map.removeLayer(l) - }) - map.addLayer(newEMLayer(slice)) - map.addLayer(newSegLayer(slice)) -} - const EMStackViewer = () => { const minSlice = 0 const maxSlice = 714 - - let slice = 537 - const startSlice = 537 const ringSize = 11 const mapRef = useRef(null); const clickedFeature = useRef(null); - // const emLayer = newEMLayer(slice) - // const segLayer = newSegLayer(slice) - // const debugLayer = new TileLayer({ // source: new TileDebug({ // projection: projection, @@ -167,7 +153,7 @@ const EMStackViewer = () => { const ringEM = new SlidingRing({ map: map, - cacheSize: 5, + cacheSize: ringSize, sliceExtent: [minSlice, maxSlice], startSlice: startSlice, newLayer: newEMLayer, @@ -185,8 +171,6 @@ const EMStackViewer = () => { zIndex: 1, }) - ringSeg.debug() - map.on("click", (evt) => { const feature = map.forEachFeatureAtPixel(evt.pixel, (feat) => feat); if (clickedFeature.current) { @@ -208,24 +192,18 @@ const EMStackViewer = () => { e.preventDefault() const scrollUp = e.deltaY < 0 - if(scrollUp && slice < maxSlice) { + if(scrollUp) { // ++slice ringEM.next() ringEM.debug() ringSeg.next() - } - - if (!scrollUp && slice > minSlice){ - // --slice + } else { ringEM.prev() ringEM.debug() ringSeg.prev() } - - // updateSliceLayer(map, slice) - console.log(map.getAllLayers()) }) mapRef.current = map; From 8286af3b6b9662322bf2368f1f32e2c1a026142d Mon Sep 17 00:00:00 2001 From: Diogo Correia Date: Tue, 6 Aug 2024 15:30:51 +0100 Subject: [PATCH 23/43] CELE-71 fix brief display of background layers on slice change --- .../src/components/EMStackTilesViewer.tsx | 30 +++++++++++++------ 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/applications/visualizer/frontend/src/components/EMStackTilesViewer.tsx b/applications/visualizer/frontend/src/components/EMStackTilesViewer.tsx index 91f7db5c..c37c9a6d 100644 --- a/applications/visualizer/frontend/src/components/EMStackTilesViewer.tsx +++ b/applications/visualizer/frontend/src/components/EMStackTilesViewer.tsx @@ -307,13 +307,14 @@ export class SlidingRing { for (let i = 0; i < this.ring.length; i++) { const slice = initTailSlice + i const layer = this.newLayer(slice) + this.hideLayer(layer) + this.ring[i] = { slice: slice, layer: layer } this.map.addLayer(layer) - layer.setZIndex(this.backgroundZIndex) } // set current position @@ -322,7 +323,7 @@ export class SlidingRing { this.tail = 0 // set current layer visible - this.ring[this.pos].layer.setZIndex(this.zIndex) + this.showLayer(this.ring[this.pos].layer) } next() { @@ -331,8 +332,8 @@ export class SlidingRing { // TODO: update map with curr layer const nextPos = (this.pos + this.ring.length + 1) % this.ring.length - this.ring[nextPos].layer.setZIndex(this.zIndex) - this.ring[this.pos].layer.setZIndex(this.backgroundZIndex) + this.showLayer(this.ring[nextPos].layer) + this.hideLayer(this.ring[this.pos].layer) const newHeadSlice = this.ring[this.head].slice + 1 @@ -341,7 +342,7 @@ export class SlidingRing { this.evict(this.tail) const layer = this.newLayer(newHeadSlice) - layer.setZIndex(this.backgroundZIndex) + this.hideLayer(layer) this.map.addLayer(layer) this.ring[this.tail] = { @@ -365,8 +366,8 @@ export class SlidingRing { // TODO: update map curr layer const prevPos = (this.pos + this.ring.length - 1) % this.ring.length - this.ring[prevPos].layer.setZIndex(this.zIndex) - this.ring[this.pos].layer.setZIndex(this.backgroundZIndex) + this.showLayer(this.ring[prevPos].layer) + this.hideLayer(this.ring[this.pos].layer) const newTailSlice = this.ring[this.tail].slice - 1 @@ -375,7 +376,7 @@ export class SlidingRing { this.evict(this.head) const layer = this.newLayer(newTailSlice) - layer.setZIndex(this.backgroundZIndex) + this.hideLayer(layer) this.map.addLayer(layer) this.ring[this.head] = { @@ -392,7 +393,18 @@ export class SlidingRing { this.pos = prevPos } - evict(pos: number) { + private showLayer(layer: BaseLayer) { + layer.setZIndex(this.zIndex) + layer.setOpacity(1) + } + + private hideLayer(layer: BaseLayer) { + const backgroudZIndex = -999 + layer.setZIndex(backgroudZIndex) + layer.setOpacity(0) + } + + private evict(pos: number) { this.map.removeLayer(this.ring[pos].layer) console.debug(`evicted: slice=${this.ring[pos].slice}`) } From 6920d07722ee1dc3151c114967471fa7d496a7e3 Mon Sep 17 00:00:00 2001 From: Diogo Correia Date: Wed, 7 Aug 2024 16:40:16 +0100 Subject: [PATCH 24/43] CELE-71 generalized the SlidindRing --- .../src/components/EMStackTilesViewer.tsx | 276 +++--------------- .../frontend/src/helpers/slidingRing.ts | 197 +++++++++++++ 2 files changed, 235 insertions(+), 238 deletions(-) create mode 100644 applications/visualizer/frontend/src/helpers/slidingRing.ts diff --git a/applications/visualizer/frontend/src/components/EMStackTilesViewer.tsx b/applications/visualizer/frontend/src/components/EMStackTilesViewer.tsx index c37c9a6d..ce09c331 100644 --- a/applications/visualizer/frontend/src/components/EMStackTilesViewer.tsx +++ b/applications/visualizer/frontend/src/components/EMStackTilesViewer.tsx @@ -14,10 +14,10 @@ import Stroke from "ol/style/Stroke"; import Style from "ol/style/Style"; import Text from "ol/style/Text"; import { TileGrid } from "ol/tilegrid"; -import BaseLayer from "ol/layer/Base"; import { defaults as defaultInteractions, MouseWheelZoom } from 'ol/interaction.js'; import { useEffect, useRef } from "react"; import { shiftKeyOnly } from "ol/events/condition"; +import { SlidingRing } from "../helpers/slidingRing"; // const width = 42496 / 2; @@ -90,6 +90,7 @@ const newEMLayer = (slice: number): TileLayer => { url: `emdata/${slice}/{x}_{y}_{z}.jpg`, projection: projection, }), + zIndex: 0, }); } @@ -100,6 +101,7 @@ const newSegLayer = (slice: number) => { format: new GeoJSON(), }), style: getFeatureStyle, + zIndex: 1, }); } @@ -151,24 +153,46 @@ const EMStackViewer = () => { interactions: interactions, }); - const ringEM = new SlidingRing({ - map: map, + const ringEM = new SlidingRing>({ cacheSize: ringSize, - sliceExtent: [minSlice, maxSlice], - startSlice: startSlice, - newLayer: newEMLayer, - zIndex: 0, + startAt: startSlice, + extent: [minSlice, maxSlice], + onPush: (slice) => { + const layer = newEMLayer(slice) + layer.setOpacity(0) + map.addLayer(layer) + return layer + }, + onSelected: (_, layer) => { + layer.setOpacity(1) + }, + onUnselected: (_, layer) => { + layer.setOpacity(0) + }, + onEvict: (_, layer) => { + map.removeLayer(layer) + } }) - ringEM.debug() - const ringSeg = new SlidingRing({ - map: map, cacheSize: ringSize, - sliceExtent: [minSlice, maxSlice], - startSlice: startSlice, - newLayer: newSegLayer, - zIndex: 1, + startAt: startSlice, + extent: [minSlice, maxSlice], + onPush: (slice) => { + const layer = newSegLayer(slice) + layer.setOpacity(0) + map.addLayer(layer) + return layer + }, + onSelected: (_, layer) => { + layer.setOpacity(1) + }, + onUnselected: (_, layer) => { + layer.setOpacity(0) + }, + onEvict: (slice, layer) => { + map.removeLayer(layer) + } }) map.on("click", (evt) => { @@ -193,15 +217,10 @@ const EMStackViewer = () => { const scrollUp = e.deltaY < 0 if(scrollUp) { - // ++slice ringEM.next() - ringEM.debug() - ringSeg.next() } else { ringEM.prev() - ringEM.debug() - ringSeg.prev() } }) @@ -217,222 +236,3 @@ const EMStackViewer = () => { }; export default EMStackViewer; - - -export interface SlidingRingOpts { - map: Map; - newLayer: (slice: number) => BaseLayer; - cacheSize?: number; - sliceExtent: [number, number]; - startSlice: number; - zIndex?: number; -} - -export class SlidingRing { - private map: Map; - private newLayer: (slice: number) => BaseLayer; - private zIndex; - - private ring: Array<{ - slice: number; - layer: BaseLayer; - }>; - private ringHalfSize: number; - - private currSlice: number; - private minSlice: number; - private maxSlice: number; - - private pos: number; // ring current position - private tail: number; - private head: number; - - private backgroundZIndex: number = -999 - - constructor(options: SlidingRingOpts) { - const defaultOpts = { - cacheSize: 11, - zIndex: 0, - } - - const opts = {...defaultOpts, ...options} - - if (opts.cacheSize < 3) { - throw Error("ring must have a cache size greater than 3 to be functional") - } - - const minSlice = opts.sliceExtent[0] - const maxSlice = opts.sliceExtent[1] - - if (minSlice < 0) { - throw Error("bad extent: can not have negative indexes") - } - - if (minSlice >= maxSlice) { - throw Error("bad extent: set [min, max]") - } - - if (opts.startSlice > maxSlice || opts.startSlice < minSlice) { - throw Error("startSlice must be between the extent bounds") - } - - if (maxSlice - minSlice < opts.cacheSize) { - console.warn("setting cache size to extent bounds to save memory") - opts.cacheSize = maxSlice - minSlice - } - - this.map = opts.map; - this.newLayer = opts.newLayer; - this.zIndex = opts.zIndex; - - this.ring = new Array(opts.cacheSize) - this.ringHalfSize = Math.floor(opts.cacheSize / 2) - - this.currSlice = opts.startSlice - this.minSlice = minSlice - this.maxSlice = maxSlice - - // initialize ring buffer - let initTailSlice = this.currSlice - this.ringHalfSize - let initHeadSlice = this.currSlice + this.ringHalfSize - - if (initTailSlice < this.minSlice) { - initTailSlice = this.minSlice - } - if (initHeadSlice > this.maxSlice) { - initHeadSlice = this.maxSlice - initTailSlice = initHeadSlice - this.ring.length + 1 - } - - for (let i = 0; i < this.ring.length; i++) { - const slice = initTailSlice + i - const layer = this.newLayer(slice) - this.hideLayer(layer) - - this.ring[i] = { - slice: slice, - layer: layer - } - - this.map.addLayer(layer) - } - - // set current position - this.pos = this.currSlice - initTailSlice - this.head = this.ring.length - 1 - this.tail = 0 - - // set current layer visible - this.showLayer(this.ring[this.pos].layer) - } - - next() { - const nextSlice = this.currSlice + 1 - if (nextSlice > this.maxSlice) return - - // TODO: update map with curr layer - const nextPos = (this.pos + this.ring.length + 1) % this.ring.length - this.showLayer(this.ring[nextPos].layer) - this.hideLayer(this.ring[this.pos].layer) - - const newHeadSlice = this.ring[this.head].slice + 1 - - // slide window - if (newHeadSlice <= this.maxSlice && nextSlice - this.ring[this.tail].slice > this.ringHalfSize) { - this.evict(this.tail) - - const layer = this.newLayer(newHeadSlice) - this.hideLayer(layer) - this.map.addLayer(layer) - - this.ring[this.tail] = { - slice: newHeadSlice, - layer: layer, - } - - // update window - this.head = this.tail - this.tail = (this.tail + this.ring.length + 1) % this.ring.length - } - - // update current state - this.currSlice = nextSlice - this.pos = nextPos - } - - prev() { - const prevSlice = this.currSlice - 1 - if (prevSlice < this.minSlice) return - - // TODO: update map curr layer - const prevPos = (this.pos + this.ring.length - 1) % this.ring.length - this.showLayer(this.ring[prevPos].layer) - this.hideLayer(this.ring[this.pos].layer) - - const newTailSlice = this.ring[this.tail].slice - 1 - - // slide window - if (newTailSlice >= this.minSlice && this.ring[this.head].slice - prevSlice > this.ringHalfSize){ - this.evict(this.head) - - const layer = this.newLayer(newTailSlice) - this.hideLayer(layer) - this.map.addLayer(layer) - - this.ring[this.head] = { - slice: newTailSlice, - layer: layer, - } - - this.tail = this.head - this.head = (this.tail + this.ring.length - 1) % this.ring.length - } - - // update current state - this.currSlice = prevSlice - this.pos = prevPos - } - - private showLayer(layer: BaseLayer) { - layer.setZIndex(this.zIndex) - layer.setOpacity(1) - } - - private hideLayer(layer: BaseLayer) { - const backgroudZIndex = -999 - layer.setZIndex(backgroudZIndex) - layer.setOpacity(0) - } - - private evict(pos: number) { - this.map.removeLayer(this.ring[pos].layer) - console.debug(`evicted: slice=${this.ring[pos].slice}`) - } - - debug() { - let text = '[' - - for (let i = 0; i < this.ring.length; i++) { - if (this.ring[i] === undefined) { - text = text. concat('?') - continue - } - - switch (true) { - case i === this.pos: - text = text.concat('*') - break - case i === this.tail: - text = text.concat("-") - break - case i === this.head: - text = text.concat("+") - } - - text = text.concat(`${this.ring[i].slice}`) - if (i !== this.ring.length - 1) text = text.concat(', ') - } - text = text.concat(']') - console.log(text) - } -} diff --git a/applications/visualizer/frontend/src/helpers/slidingRing.ts b/applications/visualizer/frontend/src/helpers/slidingRing.ts new file mode 100644 index 00000000..533099d8 --- /dev/null +++ b/applications/visualizer/frontend/src/helpers/slidingRing.ts @@ -0,0 +1,197 @@ +export interface SlidingRingCb { + onPush: (n: number) => T; // called any time a new object is pushed into the ring + onSelected: (n: number, o: T) => void; // called when the selected object changes + onUnselected: (n: number, o: T) => void; // called when an object is unselected + onEvict: (n: number, o: T) => void; // called when an object is evicted from the ring +} + +export interface SlidingRingOptions extends SlidingRingCb { + cacheSize: number; + startAt: number; + extent: [number, number]; +} + +/** + * A Sliding Ring is a fixed size ring buffer that maintains in memory + * a window in to an extent of sequenced values. + * + * With a cacheSize of 5, it will maintain in memory 2 elements before + * and after startAt element, e.g with an extent of [0, 714] and a startAt + * of 300, it will maintain in memory [298, 299, 300, 301, 302]. + * ^ ^ ^ + * tail selected head + * + * Advancing in to the next element (301), 298 will be evicted and 303 will + * be put in its place, keeping in memory [303, 299, 300, 301, 302] + * ^ ^ ^ + * head tail selected + * + * Going back on the previous element follows the same logic. + */ +export class SlidingRing { + private extent: [number, number]; + + private ring: Array<{ + n: number; // position within extent + o: T; + }>; + + private pos: number; // current buffer position + private tail: number; // buffer tail + private head: number; // buffer head + + private cb: SlidingRingCb + + constructor(options: SlidingRingOptions) { + if (options.cacheSize < 3) { + throw Error("cache should be greater that 3") + } + + const [min, max] = options.extent + + if (min >= max) { + throw Error("extent should be [min,max], where min < max") + } + + if (options.startAt > max || options.startAt < min) { + throw Error("startAt must be within extent") + } + + const extentSize = max - min + if (extentSize < 3) { + throw Error("extent size is too small, should be greater than 3") + } + + if (extentSize < options.cacheSize) { + options.cacheSize = max - min + } + + this.ring = new Array(options.cacheSize) + this.extent = options.extent + + this.cb = { + onPush: options.onPush, + onSelected: options.onSelected, + onUnselected: options.onUnselected, + onEvict: options.onEvict, + } + + // initialize ring + const halfSize = Math.floor(this.ring.length / 2) + let tailN = options.startAt - halfSize + let headN = options.startAt + halfSize + + // the ring may start near the extent + // this account for that adjustment + if (tailN < min) tailN = min + if (headN > max) { + headN = max + tailN = headN - this.ring.length - 1 + } + + // populate the ring + for (let i = 0; i < this.ring.length; i++) { + const n = tailN + i + const o = this.cb.onPush(n) + + this.ring[i] = {n, o} + } + + this.pos = options.startAt - tailN + this.tail = 0 + this.head = this.ring.length - 1 + + this.cb.onSelected(options.startAt, this.ring[this.pos].o) + } + + next() { + const [_, max] = this.extent + const nextN = this.ring[this.pos].n + 1 + if (nextN > max) return + + // update selected + const nextPos = (this.pos + this.ring.length + 1) % this.ring.length + this.cb.onSelected(this.ring[nextPos].n, this.ring[nextPos].o) + this.cb.onUnselected(this.ring[this.pos].n, this.ring[this.pos].o) + + // update sliding window + const nextHeadN = this.ring[this.head].n + 1 + const halfSize = Math.floor(this.ring.length / 2) // TODO: to avoid calc should we save as class property? + const canSlideFurther = nextN - this.ring[this.tail].n > halfSize + + if (nextHeadN <= max && canSlideFurther) { + const tail = this.ring[this.tail] + this.cb.onEvict(tail.n, tail.o) + + this.ring[this.tail] = { + n: nextHeadN, + o: this.cb.onPush(nextHeadN) + } + + this.head = this.tail + this.tail = (this.tail + this.ring.length + 1) % this.ring.length + } + + this.pos = nextPos + } + + prev() { + const [min, _] = this.extent + const prevN = this.ring[this.pos].n - 1 + if (prevN < min) return + + // update selected + const prevPos = (this.pos + this.ring.length - 1) % this.ring.length + this.cb.onSelected(this.ring[prevPos].n, this.ring[prevPos].o) + this.cb.onUnselected(this.ring[this.pos].n, this.ring[this.pos].o) + + // update sliding window + const nextTailN = this.ring[this.tail].n - 1 + const halfSize = Math.floor(this.ring.length / 2) // TODO: to avoid calc should we save as class property? + const canSlideBackwards = this.ring[this.head].n - prevN > halfSize + + if (nextTailN >= min && canSlideBackwards) { + const head = this.ring[this.head] + this.cb.onEvict(head.n, head.o) + + this.ring[this.head] = { + n: nextTailN, + o: this.cb.onPush(nextTailN) + } + + this.tail = this.head + this.head = (this.tail + this.ring.length - 1) % this.ring.length + } + + this.pos = prevPos + } + + debug() { + let text = '[' + + for (let i = 0; i < this.ring.length; i++) { + if (this.ring[i] === undefined) { // should not happen + text = text. concat('?') + continue + } + + switch (true) { + case i === this.pos: + text = text.concat('*') + break + case i === this.tail: + text = text.concat("-") + break + case i === this.head: + text = text.concat("+") + break + } + + text = text.concat(`${this.ring[i].n}`) + if (i !== this.ring.length - 1) text = text.concat(', ') + } + text = text.concat(']') + + console.debug(text) + } +} From f9b77d74129e18a153e41569f3e08f24ab10f729 Mon Sep 17 00:00:00 2001 From: Diogo Correia Date: Thu, 8 Aug 2024 12:57:58 +0100 Subject: [PATCH 25/43] Merged updates from develop --- .github/workflows/biome.yml | 17 + .github/workflows/black.yml | 4 +- .github/workflows/build.yml | 18 + .gitignore | 1 + README.md | 11 +- applications/visualizer/Dockerfile | 6 +- applications/visualizer/api/openapi.json | 260 +- applications/visualizer/api/openapi.yaml | 408 +++ applications/visualizer/backend/README.md | 2 +- applications/visualizer/backend/api/api.py | 187 +- .../visualizer/backend/api/schemas.py | 6 +- .../backend/api/services/__init__.py | 0 .../backend/api/services/connectivity.py | 121 + applications/visualizer/backend/api/tests.py | 3 - .../visualizer/backend/openapi/openapi.json | 260 +- .../visualizer/backend/populate-db.bash | 12 +- .../visualizer/backend/requirements-dev.txt | 1 + .../visualizer/backend/requirements.txt | 2 +- .../visualizer/backend/tests/test_neurons.py | 214 ++ .../backend/visualizer/settings/common.py | 1 + .../visualizer/settings/development.py | 2 + .../backend/visualizer/settings/production.py | 3 + .../visualizer/backend/visualizer/urls.py | 3 +- .../visualizer/backend/visualizer/views.py | 15 + .../visualizer/frontend/.eslintrc.cjs | 18 - .../visualizer/frontend/additional.d.ts | 6 + applications/visualizer/frontend/package.json | 31 +- .../frontend/public/ADAL-SEM_adult.stl | Bin 0 -> 389484 bytes .../frontend/public/nervering-SEM_adult.stl | Bin 0 -> 3554484 bytes applications/visualizer/frontend/src/App.css | 10 +- applications/visualizer/frontend/src/App.tsx | 127 +- .../frontend/src/assets/summary-neurons.png | Bin 0 -> 2013 bytes .../frontend/src/components/AppLauncher.tsx | 159 +- .../src/components/CustomAutocomplete.tsx | 60 + .../frontend/src/components/LeftComponent.tsx | 35 - .../src/components/RightComponent.tsx | 139 - .../ViewerContainer/ColorPicker.tsx | 47 + .../CompareWorkspaceDialog.tsx | 119 + .../CustomEntitiesDropdown.tsx | 203 ++ .../ViewerContainer/CustomListItem.tsx | 150 + .../ViewerContainer/CustomSwitch.tsx | 78 + .../components/ViewerContainer/DataSets.tsx | 226 ++ .../src/components/ViewerContainer/Header.tsx | 211 ++ .../src/components/ViewerContainer/Layout.tsx | 23 + .../components/ViewerContainer/Neurons.tsx | 61 + .../ViewerContainer/PickerWrapper.tsx | 37 + .../components/ViewerContainer/Sidebar.tsx | 160 + .../src/components/ViewerSettings.tsx | 149 + .../frontend/src/components/Workspace.tsx | 52 - .../src/components/WorkspaceComponent.tsx | 171 + .../frontend/src/components/viewers/EM/EM.tsx | 22 + .../components/viewers/EM/SceneControls.tsx | 67 + .../viewers/ThreeD/CustomFormControlLabel.tsx | 55 + .../src/components/viewers/ThreeD/Gizmo.tsx | 11 + .../src/components/viewers/ThreeD/Loader.tsx | 13 + .../src/components/viewers/ThreeD/STLMesh.tsx | 51 + .../components/viewers/ThreeD/STLViewer.tsx | 42 + .../viewers/ThreeD/SceneControls.tsx | 140 + .../viewers/ThreeD/ThreeDViewer.tsx | 151 + .../components/viewers/TwoD/NumberInput.tsx | 120 + .../components/viewers/TwoD/TwoDLegend.tsx | 88 + .../src/components/viewers/TwoD/TwoDMenu.tsx | 282 ++ .../components/viewers/TwoD/TwoDViewer.tsx | 180 + .../frontend/src/contexts/GlobalContext.tsx | 173 +- .../src/helpers/initialWorkspacesHelper.ts | 35 - .../frontend/src/helpers/mappers.ts | 18 - .../frontend/src/helpers/parseURLHelper.ts | 39 + .../frontend/src/helpers/threeDHelpers.ts | 12 + .../src/helpers/twoD/coloringHelper.ts | 80 + .../frontend/src/helpers/twoD/twoDHelpers.ts | 55 + .../frontend/src/helpers/workspaceHelper.ts | 13 + .../frontend/src/helpers/workspacesHelper.ts | 99 - .../src/hooks/useSelectedWorkspace.ts | 11 + .../visualizer/frontend/src/icons/index.tsx | 167 + .../visualizer/frontend/src/index.css | 52 +- .../src/layout-manager/componentMap.ts | 14 +- .../frontend/src/layout-manager/layout.ts | 83 +- .../layout-manager/layoutManagerFactory.ts | 89 +- .../frontend/src/layout-manager/widgets.ts | 46 +- applications/visualizer/frontend/src/main.tsx | 25 +- .../visualizer/frontend/src/models.ts | 52 - .../visualizer/frontend/src/models/index.ts | 3 + .../visualizer/frontend/src/models/models.ts | 34 + .../frontend/src/models/workspace.ts | 171 + .../visualizer/frontend/src/rest/index.ts | 4 +- .../frontend/src/rest/models/Connection.ts | 12 + .../frontend/src/rest/models/Neuron.ts | 1 + .../src/rest/services/ConnectivityService.ts | 47 + .../src/rest/services/DatasetsService.ts | 13 +- ...hcheckService.ts => HealthcheckService.ts} | 2 +- .../src/rest/services/NeuronsService.ts | 25 + .../src/settings/templateWorkspaceSettings.ts | 2 + .../frontend/src/settings/threeDSettings.ts | 15 + .../frontend/src/settings/twoDSettings.tsx | 31 + .../visualizer/frontend/src/theme/index.tsx | 1102 +++++-- .../frontend/src/theme/twoDStyles.ts | 42 + .../frontend/src/theme/variables.ts | 115 +- .../visualizer/frontend/tsconfig.json | 13 +- .../frontend/types/geppetto-meta-client.d.ts | 10 - .../visualizer/frontend/vite.config.ts | 3 + applications/visualizer/frontend/yarn.lock | 2932 ++++++++--------- biome.json | 25 + .../annotations/complete.annotations.json | 0 .../annotations/head.annotations.json | 0 .../connections/white_1986_jse.json | 0 .../connections/white_1986_jsh.json | 0 .../connections/white_1986_n2u.json | 0 .../connections/white_1986_whole.json | 0 .../connections/witvliet_2020_1.json | 0 .../connections/witvliet_2020_2.json | 0 .../connections/witvliet_2020_3.json | 0 .../connections/witvliet_2020_4.json | 0 .../connections/witvliet_2020_5.json | 0 .../connections/witvliet_2020_6.json | 0 .../connections/witvliet_2020_7.json | 0 .../connections/witvliet_2020_8.json | 0 {raw-data => data/db-raw-data}/datasets.json | 0 {raw-data => data/db-raw-data}/neurons.json | 0 .../trajectories/witvliet_2020_1.json | 0 .../trajectories/witvliet_2020_2.json | 0 .../trajectories/witvliet_2020_3.json | 0 .../trajectories/witvliet_2020_4.json | 0 .../trajectories/witvliet_2020_5.json | 0 .../trajectories/witvliet_2020_6.json | 0 .../trajectories/witvliet_2020_7.json | 0 .../trajectories/witvliet_2020_8.json | 0 deployment-configuration/compose/Chart.yaml | 9 + deployment-configuration/helm/Chart.yaml | 9 + deployment-configuration/values-template.yaml | 5 + deployment/codefresh-dev.yaml | 115 + deployment/codefresh-prod.yaml | 58 + dev-install.py | 17 +- run-server.bash | 0 133 files changed, 8013 insertions(+), 2916 deletions(-) create mode 100644 .github/workflows/biome.yml create mode 100644 .github/workflows/build.yml create mode 100644 applications/visualizer/api/openapi.yaml create mode 100644 applications/visualizer/backend/api/services/__init__.py create mode 100644 applications/visualizer/backend/api/services/connectivity.py delete mode 100644 applications/visualizer/backend/api/tests.py create mode 100644 applications/visualizer/backend/tests/test_neurons.py delete mode 100644 applications/visualizer/frontend/.eslintrc.cjs create mode 100644 applications/visualizer/frontend/additional.d.ts create mode 100644 applications/visualizer/frontend/public/ADAL-SEM_adult.stl create mode 100644 applications/visualizer/frontend/public/nervering-SEM_adult.stl create mode 100644 applications/visualizer/frontend/src/assets/summary-neurons.png create mode 100644 applications/visualizer/frontend/src/components/CustomAutocomplete.tsx delete mode 100644 applications/visualizer/frontend/src/components/LeftComponent.tsx delete mode 100644 applications/visualizer/frontend/src/components/RightComponent.tsx create mode 100644 applications/visualizer/frontend/src/components/ViewerContainer/ColorPicker.tsx create mode 100644 applications/visualizer/frontend/src/components/ViewerContainer/CompareWorkspaceDialog.tsx create mode 100644 applications/visualizer/frontend/src/components/ViewerContainer/CustomEntitiesDropdown.tsx create mode 100644 applications/visualizer/frontend/src/components/ViewerContainer/CustomListItem.tsx create mode 100644 applications/visualizer/frontend/src/components/ViewerContainer/CustomSwitch.tsx create mode 100644 applications/visualizer/frontend/src/components/ViewerContainer/DataSets.tsx create mode 100644 applications/visualizer/frontend/src/components/ViewerContainer/Header.tsx create mode 100644 applications/visualizer/frontend/src/components/ViewerContainer/Layout.tsx create mode 100644 applications/visualizer/frontend/src/components/ViewerContainer/Neurons.tsx create mode 100644 applications/visualizer/frontend/src/components/ViewerContainer/PickerWrapper.tsx create mode 100644 applications/visualizer/frontend/src/components/ViewerContainer/Sidebar.tsx create mode 100644 applications/visualizer/frontend/src/components/ViewerSettings.tsx delete mode 100644 applications/visualizer/frontend/src/components/Workspace.tsx create mode 100644 applications/visualizer/frontend/src/components/WorkspaceComponent.tsx create mode 100644 applications/visualizer/frontend/src/components/viewers/EM/EM.tsx create mode 100644 applications/visualizer/frontend/src/components/viewers/EM/SceneControls.tsx create mode 100644 applications/visualizer/frontend/src/components/viewers/ThreeD/CustomFormControlLabel.tsx create mode 100644 applications/visualizer/frontend/src/components/viewers/ThreeD/Gizmo.tsx create mode 100644 applications/visualizer/frontend/src/components/viewers/ThreeD/Loader.tsx create mode 100644 applications/visualizer/frontend/src/components/viewers/ThreeD/STLMesh.tsx create mode 100644 applications/visualizer/frontend/src/components/viewers/ThreeD/STLViewer.tsx create mode 100644 applications/visualizer/frontend/src/components/viewers/ThreeD/SceneControls.tsx create mode 100644 applications/visualizer/frontend/src/components/viewers/ThreeD/ThreeDViewer.tsx create mode 100644 applications/visualizer/frontend/src/components/viewers/TwoD/NumberInput.tsx create mode 100644 applications/visualizer/frontend/src/components/viewers/TwoD/TwoDLegend.tsx create mode 100644 applications/visualizer/frontend/src/components/viewers/TwoD/TwoDMenu.tsx create mode 100644 applications/visualizer/frontend/src/components/viewers/TwoD/TwoDViewer.tsx delete mode 100644 applications/visualizer/frontend/src/helpers/initialWorkspacesHelper.ts delete mode 100644 applications/visualizer/frontend/src/helpers/mappers.ts create mode 100644 applications/visualizer/frontend/src/helpers/parseURLHelper.ts create mode 100644 applications/visualizer/frontend/src/helpers/threeDHelpers.ts create mode 100644 applications/visualizer/frontend/src/helpers/twoD/coloringHelper.ts create mode 100644 applications/visualizer/frontend/src/helpers/twoD/twoDHelpers.ts create mode 100644 applications/visualizer/frontend/src/helpers/workspaceHelper.ts delete mode 100644 applications/visualizer/frontend/src/helpers/workspacesHelper.ts create mode 100644 applications/visualizer/frontend/src/hooks/useSelectedWorkspace.ts create mode 100644 applications/visualizer/frontend/src/icons/index.tsx delete mode 100644 applications/visualizer/frontend/src/models.ts create mode 100644 applications/visualizer/frontend/src/models/index.ts create mode 100644 applications/visualizer/frontend/src/models/models.ts create mode 100644 applications/visualizer/frontend/src/models/workspace.ts create mode 100644 applications/visualizer/frontend/src/rest/models/Connection.ts create mode 100644 applications/visualizer/frontend/src/rest/services/ConnectivityService.ts rename applications/visualizer/frontend/src/rest/services/{HeathcheckService.ts => HealthcheckService.ts} (97%) create mode 100644 applications/visualizer/frontend/src/settings/templateWorkspaceSettings.ts create mode 100644 applications/visualizer/frontend/src/settings/threeDSettings.ts create mode 100644 applications/visualizer/frontend/src/settings/twoDSettings.tsx create mode 100644 applications/visualizer/frontend/src/theme/twoDStyles.ts delete mode 100644 applications/visualizer/frontend/types/geppetto-meta-client.d.ts create mode 100644 biome.json rename {raw-data => data/db-raw-data}/annotations/complete.annotations.json (100%) rename {raw-data => data/db-raw-data}/annotations/head.annotations.json (100%) rename {raw-data => data/db-raw-data}/connections/white_1986_jse.json (100%) rename {raw-data => data/db-raw-data}/connections/white_1986_jsh.json (100%) rename {raw-data => data/db-raw-data}/connections/white_1986_n2u.json (100%) rename {raw-data => data/db-raw-data}/connections/white_1986_whole.json (100%) rename {raw-data => data/db-raw-data}/connections/witvliet_2020_1.json (100%) rename {raw-data => data/db-raw-data}/connections/witvliet_2020_2.json (100%) rename {raw-data => data/db-raw-data}/connections/witvliet_2020_3.json (100%) rename {raw-data => data/db-raw-data}/connections/witvliet_2020_4.json (100%) rename {raw-data => data/db-raw-data}/connections/witvliet_2020_5.json (100%) rename {raw-data => data/db-raw-data}/connections/witvliet_2020_6.json (100%) rename {raw-data => data/db-raw-data}/connections/witvliet_2020_7.json (100%) rename {raw-data => data/db-raw-data}/connections/witvliet_2020_8.json (100%) rename {raw-data => data/db-raw-data}/datasets.json (100%) rename {raw-data => data/db-raw-data}/neurons.json (100%) rename {raw-data => data/db-raw-data}/trajectories/witvliet_2020_1.json (100%) rename {raw-data => data/db-raw-data}/trajectories/witvliet_2020_2.json (100%) rename {raw-data => data/db-raw-data}/trajectories/witvliet_2020_3.json (100%) rename {raw-data => data/db-raw-data}/trajectories/witvliet_2020_4.json (100%) rename {raw-data => data/db-raw-data}/trajectories/witvliet_2020_5.json (100%) rename {raw-data => data/db-raw-data}/trajectories/witvliet_2020_6.json (100%) rename {raw-data => data/db-raw-data}/trajectories/witvliet_2020_7.json (100%) rename {raw-data => data/db-raw-data}/trajectories/witvliet_2020_8.json (100%) create mode 100644 deployment-configuration/compose/Chart.yaml create mode 100644 deployment-configuration/helm/Chart.yaml create mode 100644 deployment-configuration/values-template.yaml create mode 100644 deployment/codefresh-dev.yaml create mode 100644 deployment/codefresh-prod.yaml mode change 100644 => 100755 run-server.bash diff --git a/.github/workflows/biome.yml b/.github/workflows/biome.yml new file mode 100644 index 00000000..30d3e4a4 --- /dev/null +++ b/.github/workflows/biome.yml @@ -0,0 +1,17 @@ +name: Check JS/TS/TSX/JSX format + +on: [push, pull_request] + +jobs: + format: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Setup Biome + uses: biomejs/setup-biome@v2 + with: + version: 1.8.3 + + - name: Run Biome format check + working-directory: applications/visualizer/frontend + run: biome format . diff --git a/.github/workflows/black.yml b/.github/workflows/black.yml index 2dc97d3b..87733a55 100644 --- a/.github/workflows/black.yml +++ b/.github/workflows/black.yml @@ -1,4 +1,4 @@ -name: Python Lint +name: Python Format on: [push, pull_request] @@ -6,7 +6,7 @@ jobs: lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: psf/black@stable with: src: "./applications/visualizer/backend" \ No newline at end of file diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..0afec40c --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,18 @@ +name: Build Frontend + +on: [push, pull_request] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 21.7 + - name: Install dependencies + working-directory: applications/visualizer/frontend + run: yarn install + - name: Build App + working-directory: applications/visualizer/frontend + run: npm run build diff --git a/.gitignore b/.gitignore index 9b1d7e51..6c260a02 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ docker-compose.yaml cloud-harness/ .vscode/ node_modules +secret.json diff --git a/README.md b/README.md index 4240157a..e9fc9db6 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ This application is visualizer for various C Elegans brain map datasets, with mu ## Development Setup -The dev enviroment relies on Python 3.11 and Node >= 18.0. +The dev environment relies on Python 3.11 and Node >= 18.0. For "in situ" tests, this project uses Docker and Docker Compose. If you don't want to test the app deployed with Docker Composer, you don't need to install it. @@ -88,7 +88,7 @@ There is two modes, either you can populate the dev DB, which is basically a sql ### Populate the Dev DB -Run the following script that will take all the data from `raw-data`, process them and insert them in the sqlite3 db. +Run the following script that will take all the data from `data/db-raw-data`, process them and insert them in the sqlite3 db. ``` bash applications/visualizer/backend/populate-db.bash @@ -96,10 +96,15 @@ bash applications/visualizer/backend/populate-db.bash This command will apply the necessary migrations to the file db and populate it. +### 3D Data and Data for Local Development + +Data files that are related to the 3D artifacts, segmentation, EM Images, ..., can be placed in local in the `data` folder of this repository. +The development settings are configured to automatically fetch files from this folder instead of the bucket (which is configured for the docker compose and k8s deployment). + ### Populate the Docker Compose DB First, you need to have your docker compose services running (ensure you are running the `docker compose -f deployment/docker-compose.yaml up` command). -Then, run the following script that will take all the data from `raw-data`, process them and insert them in the postgresql db +Then, run the following script that will take all the data from `data/db-raw-data`, process them and insert them in the postgresql db ``` bash applications/visualizer/backend/populate-db.bash compose diff --git a/applications/visualizer/Dockerfile b/applications/visualizer/Dockerfile index fca96c6e..a73a8207 100644 --- a/applications/visualizer/Dockerfile +++ b/applications/visualizer/Dockerfile @@ -5,21 +5,21 @@ ENV APP_DIR=/app WORKDIR ${APP_DIR} COPY frontend/package.json ${APP_DIR} COPY frontend/yarn.lock ${APP_DIR} -RUN yarn install --production --frozen-lockfile +RUN yarn install --frozen-lockfile COPY frontend ${APP_DIR} RUN npm run build ##### -# FROM $CLOUDHARNESS_DJANGO +ARG NO_SOURCEMAP FROM python:3.11 ENV MODULE_NAME=backend ENV PORT=8080 ENV WORKERS=2 ENV APP_DIR=/usr/src/app - +ENV NO_SOURCEMAP=${NO_SOURCEMAP} ENV PRODUCTION=true WORKDIR ${APP_DIR} diff --git a/applications/visualizer/api/openapi.json b/applications/visualizer/api/openapi.json index 25e036e9..15f3638d 100644 --- a/applications/visualizer/api/openapi.json +++ b/applications/visualizer/api/openapi.json @@ -8,9 +8,29 @@ "paths": { "/api/datasets": { "get": { - "operationId": "get_all_datasets", - "summary": "Get All Datasets", - "parameters": [], + "operationId": "get_datasets", + "summary": "Get Datasets", + "parameters": [ + { + "in": "query", + "name": "ids", + "schema": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Ids" + }, + "required": false + } + ], "responses": { "200": { "description": "OK", @@ -27,7 +47,7 @@ } } }, - "description": "Returns all the datasets from the DB", + "description": "Returns all datasets or a filtered list based on provided IDs", "tags": [ "datasets" ] @@ -123,11 +143,92 @@ ] } }, + "/api/cells/search": { + "get": { + "operationId": "search_cells", + "summary": "Search Cells", + "parameters": [ + { + "in": "query", + "name": "name", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Name" + }, + "required": false + }, + { + "in": "query", + "name": "dataset_ids", + "schema": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Dataset Ids" + }, + "required": false + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/Neuron" + }, + "title": "Response", + "type": "array" + } + } + } + } + }, + "tags": [ + "neurons" + ] + } + }, "/api/cells": { "get": { "operationId": "get_all_cells", "summary": "Get All Cells", "parameters": [ + { + "in": "query", + "name": "dataset_ids", + "schema": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Dataset Ids" + }, + "required": false + }, { "in": "query", "name": "page", @@ -158,6 +259,101 @@ ] } }, + "/api/connections": { + "get": { + "operationId": "get_connections", + "summary": "Get Connections", + "parameters": [ + { + "in": "query", + "name": "cells", + "schema": { + "title": "Cells", + "type": "string" + }, + "required": true + }, + { + "in": "query", + "name": "dataset_ids", + "schema": { + "title": "Dataset Ids", + "type": "string" + }, + "required": true + }, + { + "in": "query", + "name": "dataset_type", + "schema": { + "title": "Dataset Type", + "type": "string" + }, + "required": true + }, + { + "in": "query", + "name": "threshold_chemical", + "schema": { + "default": 3, + "title": "Threshold Chemical", + "type": "integer" + }, + "required": false + }, + { + "in": "query", + "name": "threshold_electrical", + "schema": { + "default": 3, + "title": "Threshold Electrical", + "type": "integer" + }, + "required": false + }, + { + "in": "query", + "name": "include_neighboring_cells", + "schema": { + "default": false, + "title": "Include Neighboring Cells", + "type": "boolean" + }, + "required": false + }, + { + "in": "query", + "name": "include_annotations", + "schema": { + "default": false, + "title": "Include Annotations", + "type": "boolean" + }, + "required": false + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/Connection" + }, + "title": "Response", + "type": "array" + } + } + } + } + }, + "description": "Gets the connections of a dedicated Dataset", + "tags": [ + "connectivity" + ] + } + }, "/api/live": { "get": { "operationId": "live", @@ -170,7 +366,7 @@ }, "description": "Test if application is healthy", "tags": [ - "heathcheck" + "healthcheck" ] } }, @@ -186,7 +382,7 @@ }, "description": "test the application is up", "tags": [ - "heathcheck" + "healthcheck" ] } }, @@ -202,7 +398,7 @@ }, "description": "Test if application is ready to take requests", "tags": [ - "heathcheck" + "healthcheck" ] } } @@ -285,6 +481,13 @@ "title": "Name", "type": "string" }, + "datasetIds": { + "items": { + "type": "string" + }, + "title": "Datasetids", + "type": "array" + }, "nclass": { "maxLength": 30, "title": "Nclass", @@ -318,6 +521,7 @@ }, "required": [ "name", + "datasetIds", "nclass", "neurotransmitter", "type" @@ -357,6 +561,48 @@ ], "title": "PagedNeuron", "type": "object" + }, + "Connection": { + "properties": { + "annotations": { + "default": [], + "items": { + "type": "string" + }, + "title": "Annotations", + "type": "array" + }, + "synapses": { + "additionalProperties": { + "type": "integer" + }, + "default": {}, + "title": "Synapses", + "type": "object" + }, + "pre": { + "maxLength": 30, + "title": "Pre", + "type": "string" + }, + "post": { + "maxLength": 30, + "title": "Post", + "type": "string" + }, + "type": { + "maxLength": 20, + "title": "Type", + "type": "string" + } + }, + "required": [ + "pre", + "post", + "type" + ], + "title": "Connection", + "type": "object" } } }, diff --git a/applications/visualizer/api/openapi.yaml b/applications/visualizer/api/openapi.yaml new file mode 100644 index 00000000..a5bc1bc3 --- /dev/null +++ b/applications/visualizer/api/openapi.yaml @@ -0,0 +1,408 @@ +components: + schemas: + Connection: + properties: + annotations: + default: [] + items: + type: string + title: Annotations + type: array + post: + maxLength: 30 + title: Post + type: string + pre: + maxLength: 30 + title: Pre + type: string + synapses: + additionalProperties: + type: integer + default: {} + title: Synapses + type: object + type: + maxLength: 20 + title: Type + type: string + required: + - pre + - post + - type + title: Connection + type: object + Dataset: + properties: + axes: + anyOf: + - type: object + - type: 'null' + title: Axes + collection: + maxLength: 20 + title: Collection + type: string + description: + title: Description + type: string + id: + title: Id + type: string + name: + maxLength: 50 + title: Name + type: string + time: + title: Time + type: number + type: + maxLength: 50 + title: Type + type: string + visualTime: + title: Visual Time + type: number + required: + - id + - collection + - name + - description + - time + - visualTime + - type + title: Dataset + type: object + ErrorMessage: + properties: + detail: + title: Detail + type: string + required: + - detail + title: ErrorMessage + type: object + Input: + properties: + page: + default: 1 + minimum: 1 + title: Page + type: integer + title: Input + type: object + Neuron: + properties: + datasetIds: + items: + type: string + title: Datasetids + type: array + embryonic: + default: false + title: Embryonic + type: boolean + inhead: + default: false + title: Inhead + type: boolean + intail: + default: false + title: Intail + type: boolean + name: + title: Name + type: string + nclass: + maxLength: 30 + title: Nclass + type: string + neurotransmitter: + maxLength: 10 + title: Neurotransmitter + type: string + type: + maxLength: 10 + title: Type + type: string + required: + - name + - datasetIds + - nclass + - neurotransmitter + - type + title: Neuron + type: object + PagedNeuron: + properties: + count: + title: Count + type: integer + items: + items: + $ref: '#/components/schemas/Neuron' + title: Items + type: array + required: + - items + - count + title: PagedNeuron + type: object +info: + description: '' + title: C. Elegans Visualizer + version: 1.0.0 +openapi: 3.1.0 +paths: + /api/cells: + get: + description: Returns all the cells (neurons) from the DB + operationId: get_all_cells + parameters: + - in: query + name: dataset_ids + required: false + schema: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Dataset Ids + - in: query + name: page + required: false + schema: + default: 1 + minimum: 1 + title: Page + type: integer + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PagedNeuron' + description: OK + summary: Get All Cells + tags: + - neurons + /api/cells/search: + get: + operationId: search_cells + parameters: + - in: query + name: name + required: false + schema: + anyOf: + - type: string + - type: 'null' + title: Name + - in: query + name: dataset_ids + required: false + schema: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Dataset Ids + responses: + '200': + content: + application/json: + schema: + items: + $ref: '#/components/schemas/Neuron' + title: Response + type: array + description: OK + summary: Search Cells + tags: + - neurons + /api/connections: + get: + description: Gets the connections of a dedicated Dataset + operationId: get_connections + parameters: + - in: query + name: cells + required: true + schema: + title: Cells + type: string + - in: query + name: dataset_ids + required: true + schema: + title: Dataset Ids + type: string + - in: query + name: dataset_type + required: true + schema: + title: Dataset Type + type: string + - in: query + name: threshold_chemical + required: false + schema: + default: 3 + title: Threshold Chemical + type: integer + - in: query + name: threshold_electrical + required: false + schema: + default: 3 + title: Threshold Electrical + type: integer + - in: query + name: include_neighboring_cells + required: false + schema: + default: false + title: Include Neighboring Cells + type: boolean + - in: query + name: include_annotations + required: false + schema: + default: false + title: Include Annotations + type: boolean + responses: + '200': + content: + application/json: + schema: + items: + $ref: '#/components/schemas/Connection' + title: Response + type: array + description: OK + summary: Get Connections + tags: + - connectivity + /api/datasets: + get: + description: Returns all datasets or a filtered list based on provided IDs + operationId: get_datasets + parameters: + - in: query + name: ids + required: false + schema: + anyOf: + - items: + type: string + type: array + - type: 'null' + title: Ids + responses: + '200': + content: + application/json: + schema: + items: + $ref: '#/components/schemas/Dataset' + title: Response + type: array + description: OK + summary: Get Datasets + tags: + - datasets + /api/datasets/{dataset}: + get: + description: Returns a specific dataset + operationId: get_dataset + parameters: + - in: path + name: dataset + required: true + schema: + title: Dataset + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Dataset' + description: OK + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + description: Not Found + summary: Get Dataset + tags: + - datasets + /api/datasets/{dataset}/neurons: + get: + description: Returns all the neurons of a dedicated dataset + operationId: get_dataset_neurons + parameters: + - in: path + name: dataset + required: true + schema: + title: Dataset + type: string + responses: + '200': + content: + application/json: + schema: + items: + $ref: '#/components/schemas/Neuron' + title: Response + type: array + description: OK + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + description: Not Found + summary: Get Dataset Neurons + tags: + - datasets + /api/live: + get: + description: Test if application is healthy + operationId: live + parameters: [] + responses: + '200': + description: OK + summary: Live + tags: + - healthcheck + /api/ping: + get: + description: test the application is up + operationId: ping + parameters: [] + responses: + '200': + description: OK + summary: Ping + tags: + - healthcheck + /api/ready: + get: + description: Test if application is ready to take requests + operationId: ready + parameters: [] + responses: + '200': + description: OK + summary: Ready + tags: + - healthcheck +servers: [] + diff --git a/applications/visualizer/backend/README.md b/applications/visualizer/backend/README.md index 7f2de2a8..8228cc71 100644 --- a/applications/visualizer/backend/README.md +++ b/applications/visualizer/backend/README.md @@ -13,7 +13,7 @@ backend │   │   └── commands │   │      └── populatedb.py # the custom command to run the DB population │   ├── models.py # the Django model (DB model) -│   ├── populatedb.py # dedicated function to take the raw-data and create the django entities +│   ├── populatedb.py # dedicated function to take the database raw data and create the django entities │   └── schemas.py # the django-ninja Schemas ├── openapi │   └── openapi.json # The openapi.json generated from the routes defined in "api.py" diff --git a/applications/visualizer/backend/api/api.py b/applications/visualizer/backend/api/api.py index 56635017..5015339e 100644 --- a/applications/visualizer/backend/api/api.py +++ b/applications/visualizer/backend/api/api.py @@ -1,15 +1,21 @@ -from ninja import NinjaAPI, Router, Schema +from collections import defaultdict +from typing import Optional + +from django.http import HttpResponse +from ninja import NinjaAPI, Router, Schema, Query from ninja.pagination import paginate, PageNumberPagination from django.shortcuts import aget_object_or_404 -from django.db.models import Q - +from django.db.models import Q, F, Value, CharField, Func, OuterRef +from django.db.models.manager import BaseManager +from django.db.models.functions import Coalesce, Concat -from .schemas import Dataset, FullDataset, Neuron, Connection, ConnectionRequest +from .schemas import Dataset, Neuron, Connection from .models import ( Dataset as DatasetModel, Neuron as NeuronModel, Connection as ConnectionModel, ) +from .services.connectivity import query_connections class ErrorMessage(Schema): @@ -45,9 +51,13 @@ def api_operation(self, *args, **kwargs): @api.get("/datasets", response=list[Dataset], tags=["datasets"]) -async def get_all_datasets(request): - """Returns all the datasets from the DB""" - return await to_list(DatasetModel.objects.all()) +async def get_datasets(request, ids: Optional[list[str]] = Query(None)): + """Returns all datasets or a filtered list based on provided IDs""" + if ids: + datasets = await to_list(DatasetModel.objects.filter(id__in=ids)) + else: + datasets = await to_list(DatasetModel.objects.all()) + return datasets # @api.get("/datasets/{dataset}/full", response=FullDataset, tags=["datasets"]) @@ -75,34 +85,94 @@ async def get_dataset(request, dataset: str): return await aget_object_or_404(DatasetModel, id=dataset) +def annotate_neurons_w_dataset_ids(neurons: BaseManager[NeuronModel]) -> None: + """Queries the datasets ids for each neuron.""" + neuron_names = neurons.values_list("name", flat=True).distinct() + pre = ( + ConnectionModel.objects.filter(pre__in=neuron_names) + .values_list("pre", "dataset") + .distinct() + ) + post = ( + ConnectionModel.objects.filter(post__in=neuron_names) + .values_list("post", "dataset") + .distinct() + ) + + # Filter out repeated dataset ids + neurons_dataset_ids = defaultdict(set) + for neuron, dataset in pre.union(post): + neurons_dataset_ids[neuron].add(dataset) + + for neuron in neurons: + neuron.dataset_ids = neurons_dataset_ids[neuron.name] # type: ignore + + +def neurons_from_datasets( + neurons: BaseManager[NeuronModel], dataset_ids: list[str] +) -> BaseManager[NeuronModel]: + """Filters neurons belonging to specific datasets.""" + return neurons.filter( + Q( + name__in=ConnectionModel.objects.filter( + dataset__id__in=dataset_ids + ).values_list("pre", flat=True) + ) + | Q( + name__in=ConnectionModel.objects.filter( + dataset__id__in=dataset_ids + ).values_list("post", flat=True) + ) + ) + + @api.get( "/datasets/{dataset}/neurons", response={200: list[Neuron], 404: ErrorMessage}, tags=["datasets"], ) -async def get_dataset_neurons(request, dataset: str): +def get_dataset_neurons(request, dataset: str): """Returns all the neurons of a dedicated dataset""" - return await to_list( - NeuronModel.objects.filter( - Q( - name__in=ConnectionModel.objects.filter( - dataset__id=dataset - ).values_list("pre", flat=True) - ) - | Q( - name__in=ConnectionModel.objects.filter( - dataset__id=dataset - ).values_list("post", flat=True) - ) - ) - ) + neurons = neurons_from_datasets(NeuronModel.objects, [dataset]) + annotate_neurons_w_dataset_ids(neurons) + return neurons + + +@api.get("/cells/search", response=list[Neuron], tags=["neurons"]) +def search_cells( + request, + name: Optional[str] = Query(None), + dataset_ids: Optional[list[str]] = Query(None), +): + neurons = NeuronModel.objects + + if name: + neurons = neurons.filter(name__istartswith=name) + + if dataset_ids: + neurons = neurons_from_datasets(neurons, dataset_ids) + else: + neurons = neurons.all() + + annotate_neurons_w_dataset_ids(neurons) + + return neurons @api.get("/cells", response=list[Neuron], tags=["neurons"]) -@paginate(PageNumberPagination, page_size=50) -def get_all_cells(request): +@paginate(PageNumberPagination, page_size=50) # BUG: this is not being applied +def get_all_cells(request, dataset_ids: Optional[list[str]] = Query(None)): """Returns all the cells (neurons) from the DB""" - return NeuronModel.objects.all() + neurons = NeuronModel.objects + + if dataset_ids: + neurons = neurons_from_datasets(neurons, dataset_ids) + else: + neurons = neurons.all() + + annotate_neurons_w_dataset_ids(neurons) + + return neurons # # @api.post("/connections", response=list[Connection], tags=["connectivity"]) @@ -112,30 +182,28 @@ def get_all_cells(request): # # return query_connections(**options.dict()) -# @api.get("/connections", response=list[Connection], tags=["connectivity"]) -# # @paginate -# def get_connections( -# request, -# cells: str, -# datasetIds: str, -# datasetType: str, -# thresholdChemical: int = 3, -# thresholdElectrical: int = 3, -# includeNeighboringCells: bool = False, -# includeAnnotations: bool = False, -# ): -# """Gets the connections of a dedicated Dataset""" -# # res = ConnectionModel.objects.filter(dataset_id=dataset)) -# # # import ipdb; ipdb.set_trace() # fmt: skip -# return query_connections( -# [c.strip() for c in cells.split(",")], -# [d.strip() for d in datasetIds.split(",")], -# datasetType, -# thresholdChemical, -# thresholdElectrical, -# includeNeighboringCells, -# includeAnnotations, -# ) +@api.get("/connections", response=list[Connection], tags=["connectivity"]) +# @paginate +def get_connections( + request, + cells: str, + dataset_ids: str, + dataset_type: str, + threshold_chemical: int = 3, + threshold_electrical: int = 3, + include_neighboring_cells: bool = False, + include_annotations: bool = False, +): + """Gets the connections of a dedicated Dataset""" + return query_connections( + [c.strip() for c in cells.split(",")], + [d.strip() for d in dataset_ids.split(",")], + [d.strip() for d in dataset_type.split(",")], + threshold_chemical, + threshold_electrical, + include_neighboring_cells, + include_annotations, + ) # @api.get("/connections/{dataset}", response=list[Connection], tags=["connectivity"]) @@ -157,34 +225,19 @@ def get_all_cells(request): # ) -# def query_connections( -# cells: list[str], -# dataset_ids: list[str], -# dataset_type: str, -# threshold_chemical: int, -# threshold_electrical: int, -# include_neighboringcells: bool, -# include_annotations: bool, -# ): -# if len(cells) == 0: -# return [] - -# # TODO - - -@api.get("/live", tags=["heathcheck"]) +@api.get("/live", tags=["healthcheck"]) async def live(request): """Test if application is healthy""" return "I'm alive!" -@api.get("/ping", tags=["heathcheck"]) +@api.get("/ping", tags=["healthcheck"]) async def ping(request): """test the application is up""" return "Ping!" -@api.get("/ready", tags=["heathcheck"]) +@api.get("/ready", tags=["healthcheck"]) async def ready(request): """Test if application is ready to take requests""" return "I'm READY!" diff --git a/applications/visualizer/backend/api/schemas.py b/applications/visualizer/backend/api/schemas.py index 45fe91bf..8124c08c 100644 --- a/applications/visualizer/backend/api/schemas.py +++ b/applications/visualizer/backend/api/schemas.py @@ -37,6 +37,7 @@ class Meta: class Neuron(ModelSchema, BilingualSchema): name: str + dataset_ids: list[str] class Meta: model = NeuronModel @@ -51,9 +52,12 @@ class Meta: class Connection(ModelSchema, BilingualSchema): + annotations: list[str] = [] + synapses: dict[str, int] = {} + class Meta: model = ConnectionModel - fields = ["dataset", "pre", "post", "type", "synapses"] + fields = ["pre", "post", "type"] class FullDataset(Dataset): diff --git a/applications/visualizer/backend/api/services/__init__.py b/applications/visualizer/backend/api/services/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/applications/visualizer/backend/api/services/connectivity.py b/applications/visualizer/backend/api/services/connectivity.py new file mode 100644 index 00000000..b45b3f8f --- /dev/null +++ b/applications/visualizer/backend/api/services/connectivity.py @@ -0,0 +1,121 @@ +from collections import defaultdict + +from django.db.models import Q + +from api.models import Annotation, Connection + + +def query_connections( + cells: list[str], + dataset_ids: list[str], + dataset_type: list[str], + threshold_chemical: int, + threshold_electrical: int, + include_neighboring_cells: bool, + include_annotations: bool, +): + connections = _query_raw_connections( + cells, + dataset_ids, + include_neighboring_cells, + threshold_chemical, + threshold_electrical, + ) + + annotations_map = _query_annotations( + cells, dataset_type, include_annotations, include_neighboring_cells + ) + + grouped_connections = defaultdict(list) + for connection in connections: + key = _get_connection_key(connection.pre, connection.post, connection.type) + grouped_connections[key].append(connection) + + response_data = [] + for key, group in grouped_connections.items(): + synapses = {conn.dataset_id: conn.synapses for conn in group} + + # It's safe to access the first item directly as group won't be empty by design of the grouping process + connection = group[0] + response_data.append( + { + "pre": connection.pre, + "post": connection.post, + "type": connection.type, + "annotations": ( + annotations_map.get(key, []) if include_annotations else [] + ), + "synapses": synapses, + } + ) + + return response_data + + +# SELECT pre, post, type, annotation +# FROM annotations +# WHERE (pre in (${cells}) +# ${includeNeighboringCells ? 'OR' : 'AND'} post in (${cells})) +# AND collection in (${datasetType}) + + +def _query_annotations( + cells, dataset_type, include_annotations, include_neighboring_cells +): + if not include_annotations: + return {} + + annotations_map = defaultdict(list) + annotations = Annotation.objects.filter( + ( + Q(pre__in=cells) | Q(post__in=cells) + if include_neighboring_cells + else Q(pre__in=cells, post__in=cells) + ), + collection__in=dataset_type, + ) + for annotation in annotations: + key = _get_connection_key(annotation.pre, annotation.post, annotation.type) + annotations_map[key].append(annotation.annotation) + return annotations_map + + +# SELECT c.pre, c.post, c.type, c.dataset_id, c.synapses from ( +# SELECT pre, post, type +# FROM connections +# WHERE (pre IN (${cells}) +# ${includeNeighboringCells ? 'OR' : 'AND'} post IN (${cells})) +# AND dataset_id IN (${datasetIds}) +# AND ( +# (type = 'chemical' && synapses >= ${thresholdChemical}) +# OR (type = 'electrical' && synapses >= ${thresholdElectrical}) +# ) +# GROUP BY pre, post, type +# ) f +# LEFT JOIN connections c ON f.pre = c.pre AND f.post = c.post AND f.type = c.type +# WHERE c.dataset_id IN (${datasetIds}) + + +def _query_raw_connections( + cells, + dataset_ids, + include_neighboring_cells, + threshold_chemical, + threshold_electrical, +): + connection_query = ( + Q(pre__in=cells) | Q(post__in=cells) + if include_neighboring_cells + else Q(pre__in=cells, post__in=cells) + ) + connection_query &= Q(dataset_id__in=dataset_ids) + connection_query &= Q(type="chemical", synapses__gte=threshold_chemical) | Q( + type="electrical", synapses__gte=threshold_electrical + ) + return ( + Connection.objects.filter(connection_query).select_related("dataset").distinct() + ) + + +def _get_connection_key(pre, post, connection_type): + return pre, post, connection_type diff --git a/applications/visualizer/backend/api/tests.py b/applications/visualizer/backend/api/tests.py deleted file mode 100644 index 7ce503c2..00000000 --- a/applications/visualizer/backend/api/tests.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.test import TestCase - -# Create your tests here. diff --git a/applications/visualizer/backend/openapi/openapi.json b/applications/visualizer/backend/openapi/openapi.json index 25e036e9..15f3638d 100644 --- a/applications/visualizer/backend/openapi/openapi.json +++ b/applications/visualizer/backend/openapi/openapi.json @@ -8,9 +8,29 @@ "paths": { "/api/datasets": { "get": { - "operationId": "get_all_datasets", - "summary": "Get All Datasets", - "parameters": [], + "operationId": "get_datasets", + "summary": "Get Datasets", + "parameters": [ + { + "in": "query", + "name": "ids", + "schema": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Ids" + }, + "required": false + } + ], "responses": { "200": { "description": "OK", @@ -27,7 +47,7 @@ } } }, - "description": "Returns all the datasets from the DB", + "description": "Returns all datasets or a filtered list based on provided IDs", "tags": [ "datasets" ] @@ -123,11 +143,92 @@ ] } }, + "/api/cells/search": { + "get": { + "operationId": "search_cells", + "summary": "Search Cells", + "parameters": [ + { + "in": "query", + "name": "name", + "schema": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Name" + }, + "required": false + }, + { + "in": "query", + "name": "dataset_ids", + "schema": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Dataset Ids" + }, + "required": false + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/Neuron" + }, + "title": "Response", + "type": "array" + } + } + } + } + }, + "tags": [ + "neurons" + ] + } + }, "/api/cells": { "get": { "operationId": "get_all_cells", "summary": "Get All Cells", "parameters": [ + { + "in": "query", + "name": "dataset_ids", + "schema": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Dataset Ids" + }, + "required": false + }, { "in": "query", "name": "page", @@ -158,6 +259,101 @@ ] } }, + "/api/connections": { + "get": { + "operationId": "get_connections", + "summary": "Get Connections", + "parameters": [ + { + "in": "query", + "name": "cells", + "schema": { + "title": "Cells", + "type": "string" + }, + "required": true + }, + { + "in": "query", + "name": "dataset_ids", + "schema": { + "title": "Dataset Ids", + "type": "string" + }, + "required": true + }, + { + "in": "query", + "name": "dataset_type", + "schema": { + "title": "Dataset Type", + "type": "string" + }, + "required": true + }, + { + "in": "query", + "name": "threshold_chemical", + "schema": { + "default": 3, + "title": "Threshold Chemical", + "type": "integer" + }, + "required": false + }, + { + "in": "query", + "name": "threshold_electrical", + "schema": { + "default": 3, + "title": "Threshold Electrical", + "type": "integer" + }, + "required": false + }, + { + "in": "query", + "name": "include_neighboring_cells", + "schema": { + "default": false, + "title": "Include Neighboring Cells", + "type": "boolean" + }, + "required": false + }, + { + "in": "query", + "name": "include_annotations", + "schema": { + "default": false, + "title": "Include Annotations", + "type": "boolean" + }, + "required": false + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/Connection" + }, + "title": "Response", + "type": "array" + } + } + } + } + }, + "description": "Gets the connections of a dedicated Dataset", + "tags": [ + "connectivity" + ] + } + }, "/api/live": { "get": { "operationId": "live", @@ -170,7 +366,7 @@ }, "description": "Test if application is healthy", "tags": [ - "heathcheck" + "healthcheck" ] } }, @@ -186,7 +382,7 @@ }, "description": "test the application is up", "tags": [ - "heathcheck" + "healthcheck" ] } }, @@ -202,7 +398,7 @@ }, "description": "Test if application is ready to take requests", "tags": [ - "heathcheck" + "healthcheck" ] } } @@ -285,6 +481,13 @@ "title": "Name", "type": "string" }, + "datasetIds": { + "items": { + "type": "string" + }, + "title": "Datasetids", + "type": "array" + }, "nclass": { "maxLength": 30, "title": "Nclass", @@ -318,6 +521,7 @@ }, "required": [ "name", + "datasetIds", "nclass", "neurotransmitter", "type" @@ -357,6 +561,48 @@ ], "title": "PagedNeuron", "type": "object" + }, + "Connection": { + "properties": { + "annotations": { + "default": [], + "items": { + "type": "string" + }, + "title": "Annotations", + "type": "array" + }, + "synapses": { + "additionalProperties": { + "type": "integer" + }, + "default": {}, + "title": "Synapses", + "type": "object" + }, + "pre": { + "maxLength": 30, + "title": "Pre", + "type": "string" + }, + "post": { + "maxLength": 30, + "title": "Post", + "type": "string" + }, + "type": { + "maxLength": 20, + "title": "Type", + "type": "string" + } + }, + "required": [ + "pre", + "post", + "type" + ], + "title": "Connection", + "type": "object" } } }, diff --git a/applications/visualizer/backend/populate-db.bash b/applications/visualizer/backend/populate-db.bash index d96f7321..9482cc6e 100644 --- a/applications/visualizer/backend/populate-db.bash +++ b/applications/visualizer/backend/populate-db.bash @@ -8,12 +8,20 @@ cd "${PARENT_PATH}" case "$1" in "compose") ENV="visualizer" - echo "In postgresql db" + DB_DATA="../../../data/db-raw-data/" + echo "In postgresql db in docker compose" + ;; + "k8s") + ENV="visualizer" + # Need copy using gsutil if we keep this script to trigger DB ingestion + DB_DATA="/mnt/data/db-raw-data/" + echo "In postgresql db in k8s" ;; *) + DB_DATA="../../../data/db-raw-data/" echo "In local sqlite3 db" ;; esac CH_CURRENT_APP_NAME=${ENV} python manage.py migrate -CH_CURRENT_APP_NAME=${ENV} python manage.py populatedb ../../../raw-data/ +CH_CURRENT_APP_NAME=${ENV} python manage.py populatedb ${DB_DATA} diff --git a/applications/visualizer/backend/requirements-dev.txt b/applications/visualizer/backend/requirements-dev.txt index 5679bf19..364e9bf9 100644 --- a/applications/visualizer/backend/requirements-dev.txt +++ b/applications/visualizer/backend/requirements-dev.txt @@ -4,5 +4,6 @@ ipdb pytest pytest-django pytest-asyncio +pytest-unordered model-bakery black \ No newline at end of file diff --git a/applications/visualizer/backend/requirements.txt b/applications/visualizer/backend/requirements.txt index bccbc503..dcad7ec7 100644 --- a/applications/visualizer/backend/requirements.txt +++ b/applications/visualizer/backend/requirements.txt @@ -1,6 +1,6 @@ django==5.0.3 django-cors-headers==4.3.1 -django-ninja==1.1.0 +django-ninja==1.2.2 uvicorn==0.29.0 ruamel.yaml==0.18.6 psycopg[binary]==3.1.18 diff --git a/applications/visualizer/backend/tests/test_neurons.py b/applications/visualizer/backend/tests/test_neurons.py new file mode 100644 index 00000000..860ff934 --- /dev/null +++ b/applications/visualizer/backend/tests/test_neurons.py @@ -0,0 +1,214 @@ +from ninja.testing import TestClient +import pytest +import warnings +from pytest_unordered import unordered + +from api.models import ( + Dataset as DatasetModel, + Neuron as NeuronModel, + Connection as ConnectionModel, +) +from api.api import api as celegans_api +from .utils import generate_instance + + +# Some test data +datasets = [ + { + "id": "ds1", + "name": "Dataset 1", + }, + { + "id": "ds2", + "name": "Gamma Goblin", + }, + { + "id": "ds3", + "name": "Dr. Seuss", + }, +] + +neurons = [ + { + "name": "ADAL", + "nclass": "ADA", + "neurotransmitter": "l", + "type": "i", + }, + { + "name": "ADAR", + "nclass": "ADA", + "neurotransmitter": "l", + "type": "i", + }, + { + "name": "ADEL", + "nclass": "ADA", + "neurotransmitter": "l", + "type": "i", + }, + { + "name": "ADER", + "nclass": "ADR", + "neurotransmitter": "d", + "type": "sn", + }, + { + "name": "ADFR", + "nclass": "ADF", + "neurotransmitter": "as", + "type": "sn", + }, + { + "name": "AFDL", + "nclass": "AFD", + "neurotransmitter": "l", + "type": "s", + }, +] + +connections = lambda: [ + { + "dataset": DatasetModel.objects.get(id="ds1"), + "pre": "ADAL", + "post": "ADAR", + }, + { + "dataset": DatasetModel.objects.get(id="ds2"), + "pre": "ADEL", + "post": "ADER", + }, + { + "dataset": DatasetModel.objects.get(id="ds2"), + "pre": "ADAR", + "post": "ADEL", + }, + { + "dataset": DatasetModel.objects.get(id="ds3"), + "pre": "ADFR", + "post": "ADAR", + }, +] + + +# Setup the db for this module with some data +# Data are baked with "baker", it allows to create dummy values automatically +# and also to specify some fields. It is used here to "fill" the fields which are +# marked as "non-null" in the model which we don't want to manually fill. +@pytest.fixture(scope="module") +def django_db_setup(django_db_setup, django_db_blocker): + with django_db_blocker.unblock(): + generate_instance(DatasetModel, datasets) + generate_instance(NeuronModel, neurons) + generate_instance(ConnectionModel, connections()) + + +# Fixture to access the test client in all test functions +@pytest.fixture +def api_client(): + client = TestClient(celegans_api.default_router) + return client + + +@pytest.mark.django_db # required to access the DB +def test__get_all_cells(api_client): + expected_dataset_ids = { + "ADAL": ["ds1"], + "ADAR": ["ds1", "ds2", "ds3"], + "ADEL": ["ds2"], + "ADER": ["ds2"], + "ADFR": ["ds3"], + "AFDL": [], + } + + response = api_client.get("/cells") + assert response.status_code == 200 + + neurons = response.json()["items"] + for neuron in neurons: + name = neuron["name"] + + if name not in expected_dataset_ids: + warnings.warn( + f"please, update test: neuron '{name}' not found in expected dataset ids" + ) + continue + + assert expected_dataset_ids[name] == unordered(neuron["datasetIds"]) + + +@pytest.mark.django_db # required to access the DB +def test__get_all_cells_from_specific_datasets(api_client): + dataset_ids = ["ds1", "ds2"] + expected_dataset_ids = { + "ADAL": ["ds1"], + "ADAR": ["ds1", "ds2", "ds3"], # ds3 should be present! + "ADEL": ["ds2"], + "ADER": ["ds2"], + # "ADFR": ["ds3"], not part of ds1 or ds2 + # "AFDL": [], not part of ds1 or ds2 + } + + query_params = "?" + "&".join([f"dataset_ids={ds}" for ds in dataset_ids]) + response = api_client.get("/cells" + query_params) + assert response.status_code == 200 + + neurons = response.json()["items"] + for neuron in neurons: + name = neuron["name"] + + assert name in expected_dataset_ids, f"unexpected neuron result: {neuron}" + assert expected_dataset_ids[name] == unordered(neuron["datasetIds"]) + + +@pytest.mark.django_db # required to access the DB +def test__search_cells(api_client): + search_query = "ada" + expected_neurons_names = ["ADAL", "ADAR"] + + response = api_client.get(f"/cells/search?name={search_query}") + assert response.status_code == 200 + + neurons = response.json() + assert len(neurons) == len( + expected_neurons_names + ), f"expected to query {len(expected_neurons_names)} and got {len(neurons)}" + + for neuron in neurons: + assert neuron["name"] in expected_neurons_names + + +@pytest.mark.django_db # required to access the DB +def test__search_cells_in_datasets(api_client): + search_query = "ade" + dataset_ids = ["ds1", "ds3"] + + # Search dataset that do not contain a match + query_params = f"?name={search_query}&" + "&".join( + [f"dataset_ids={ds}" for ds in dataset_ids] + ) + response = api_client.get(f"/cells/search" + query_params) + assert response.status_code == 200 + + neurons = response.json() + assert len(neurons) == 0, f"expected datasets to not contain search matches" + + # Search dataset with matching neurons + dataset_ids.append("ds2") + expected_neurons_names = ["ADEL", "ADER"] + + query_params = f"?name={search_query}&" + "&".join( + [f"dataset_ids={ds}" for ds in dataset_ids] + ) + print(query_params) + + response = api_client.get(f"/cells/search" + query_params) + assert response.status_code == 200 + + neurons = response.json() + assert len(neurons) == len( + expected_neurons_names + ), f"expected to query {len(expected_neurons_names)} and got {len(neurons)}" + + for neuron in neurons: + assert neuron["name"] in expected_neurons_names diff --git a/applications/visualizer/backend/visualizer/settings/common.py b/applications/visualizer/backend/visualizer/settings/common.py index ed21f106..be375610 100644 --- a/applications/visualizer/backend/visualizer/settings/common.py +++ b/applications/visualizer/backend/visualizer/settings/common.py @@ -137,6 +137,7 @@ STATIC_ROOT = BASE_DIR / "static" STATIC_URL = "static/" + # Default primary key field type # https://docs.djangoproject.com/en/5.0/ref/settings/#default-auto-field diff --git a/applications/visualizer/backend/visualizer/settings/development.py b/applications/visualizer/backend/visualizer/settings/development.py index 50675afc..cf83a123 100644 --- a/applications/visualizer/backend/visualizer/settings/development.py +++ b/applications/visualizer/backend/visualizer/settings/development.py @@ -3,6 +3,8 @@ # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True +GCS_BUCKET_URL = BASE_DIR.parent.parent.parent / "data" + INSTALLED_APPS += ["django_extensions"] # Database diff --git a/applications/visualizer/backend/visualizer/settings/production.py b/applications/visualizer/backend/visualizer/settings/production.py index c6bbee81..d12cf1ce 100644 --- a/applications/visualizer/backend/visualizer/settings/production.py +++ b/applications/visualizer/backend/visualizer/settings/production.py @@ -6,6 +6,9 @@ # SECURITY WARNING: don't run with debug turned on in production! DEBUG = False +GCS_BUCKET = "celegans" +GCS_BUCKET_URL = f"https://storage.googleapis.com/{GCS_BUCKET}" + class Config(dict): def __getattr__(self, key): diff --git a/applications/visualizer/backend/visualizer/urls.py b/applications/visualizer/backend/visualizer/urls.py index fef97009..fff241ba 100644 --- a/applications/visualizer/backend/visualizer/urls.py +++ b/applications/visualizer/backend/visualizer/urls.py @@ -21,7 +21,7 @@ from django.conf.urls.static import static from api.api import api -from .views import index, get_tile, get_seg +from .views import index, access_bucket_artifact, get_tile, get_seg urlpatterns = [ path("admin/", admin.site.urls), @@ -31,5 +31,6 @@ r"^emdata/(?P\d+)/(?P\d+)_(?P\d+)_(?P\d+).jpg", get_tile ), re_path(r"^segdata/(?P\d+)", get_seg), + re_path(r"resources/(?P.+)", access_bucket_artifact, name="resources"), re_path(r"(?P.*)", index, name="index"), ] diff --git a/applications/visualizer/backend/visualizer/views.py b/applications/visualizer/backend/visualizer/views.py index 465efc20..80da4495 100644 --- a/applications/visualizer/backend/visualizer/views.py +++ b/applications/visualizer/backend/visualizer/views.py @@ -4,6 +4,7 @@ from django.conf import settings from django.http import FileResponse, Http404, HttpResponseRedirect +from django.shortcuts import redirect from django.urls import reverse from django.utils._os import safe_join @@ -63,3 +64,17 @@ def get_seg(request, slice): content_type = content_type or "application/octet-stream" content = full_path.open("rb") return FileResponse(content, content_type=content_type) + + +def access_bucket_artifact(request, path): + resource_folder = Path(settings.GCS_BUCKET_URL) + if resource_folder.exists(): + full_path = resource_folder / path + content_type, _ = mimetypes.guess_type(str(full_path)) + content_type = content_type or "application/octet-stream" + try: + return FileResponse(full_path.open("rb"), content_type=content_type) + except FileNotFoundError: + return index(request, "") # index.html + + return redirect(f"{settings.GCS_BUCKET_URL}/{path}") diff --git a/applications/visualizer/frontend/.eslintrc.cjs b/applications/visualizer/frontend/.eslintrc.cjs deleted file mode 100644 index d6c95379..00000000 --- a/applications/visualizer/frontend/.eslintrc.cjs +++ /dev/null @@ -1,18 +0,0 @@ -module.exports = { - root: true, - env: { browser: true, es2020: true }, - extends: [ - 'eslint:recommended', - 'plugin:@typescript-eslint/recommended', - 'plugin:react-hooks/recommended', - ], - ignorePatterns: ['dist', '.eslintrc.cjs'], - parser: '@typescript-eslint/parser', - plugins: ['react-refresh'], - rules: { - 'react-refresh/only-export-components': [ - 'warn', - { allowConstantExport: true }, - ], - }, -} diff --git a/applications/visualizer/frontend/additional.d.ts b/applications/visualizer/frontend/additional.d.ts new file mode 100644 index 00000000..a36e2601 --- /dev/null +++ b/applications/visualizer/frontend/additional.d.ts @@ -0,0 +1,6 @@ +declare module "*.svg" { + import React = require("react"); + export const ReactComponent: React.FC>; + const src: string; + export default src; +} diff --git a/applications/visualizer/frontend/package.json b/applications/visualizer/frontend/package.json index 332fd815..08ecde11 100644 --- a/applications/visualizer/frontend/package.json +++ b/applications/visualizer/frontend/package.json @@ -1,13 +1,15 @@ { "name": "c-elegans-app", "private": true, - "version": "0.0.0", + "version": "0.0.1", "type": "module", "scripts": { "dev": "vite", "build": "tsc && vite build", - "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", "preview": "vite preview", + "format": "biome format --write .", + "lint": "biome lint .", + "lint-fix": "biome lint --write .", "generate-client": "openapi --input ../backend/openapi/openapi.json --output ./src/rest --useOptions --useUnionTypes --client xhr", "start": "DOMAIN=http://localhost:8000 vite", "start:dev": "DOMAIN=https://visualizer.celegans.metacell.us vite", @@ -19,23 +21,30 @@ "@metacell/geppetto-meta-client": "^1.2.8", "@metacell/geppetto-meta-core": "^1.2.8", "@metacell/geppetto-meta-ui": "^1.2.8", - "@mui/material": "^5.15.15", + "@mui/base": "^5.0.0-beta.40", + "@mui/icons-material": "^5.16.4", + "@mui/material": "^5.16.4", + "@react-three/drei": "^9.105.4", + "@react-three/fiber": "^8.16.2", "@reduxjs/toolkit": "^2.2.3", + "@types/cytoscape": "^3.21.1", + "@types/three": "^0.166.0", + "cytoscape": "^3.29.2", + "cytoscape-dagre": "^2.5.0", + "cytoscape-fcose": "^2.2.0", "file-saver": "^2.0.5", "ol": "^9.1.0", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-redux": "^9.1.1" + "react": "^18.3.1", + "react-color": "^2.19.3", + "react-dom": "^18.3.1", + "react-redux": "^9.1.1", + "three": "^0.166.1" }, "devDependencies": { + "@biomejs/biome": "1.8.3", "@types/react": "^18.2.66", "@types/react-dom": "^18.2.22", - "@typescript-eslint/eslint-plugin": "^7.2.0", - "@typescript-eslint/parser": "^7.2.0", "@vitejs/plugin-react": "^4.2.1", - "eslint": "^8.57.0", - "eslint-plugin-react-hooks": "^4.6.0", - "eslint-plugin-react-refresh": "^0.4.6", "openapi-typescript-codegen": "^0.29.0", "sass": "^1.75.0", "typescript": "^5.2.2", diff --git a/applications/visualizer/frontend/public/ADAL-SEM_adult.stl b/applications/visualizer/frontend/public/ADAL-SEM_adult.stl new file mode 100644 index 0000000000000000000000000000000000000000..3cfd68f79b93bc5b24cbf67ec4e23225c31934e6 GIT binary patch literal 389484 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⪼&t~5kKIsftw?A@Drd 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

~ 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 literal 0 HcmV?d00001 diff --git a/applications/visualizer/frontend/public/nervering-SEM_adult.stl b/applications/visualizer/frontend/public/nervering-SEM_adult.stl new file mode 100644 index 0000000000000000000000000000000000000000..0f01fb071aeaccddb7b49a94c9eec56022056022 GIT binary patch literal 3554484 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 YRA^ug8 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

X`0R~__8lYnhj|KK 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̒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