diff --git a/.idea/inspectionProfiles/Default.xml b/.idea/inspectionProfiles/Default.xml index 8a8e478..1314e5c 100644 --- a/.idea/inspectionProfiles/Default.xml +++ b/.idea/inspectionProfiles/Default.xml @@ -2,5 +2,13 @@ \ No newline at end of file diff --git a/Makefile b/Makefile index 63a6a03..2fcfc8f 100644 --- a/Makefile +++ b/Makefile @@ -1,51 +1,57 @@ -BACKEND_DIR := backend +BACKEND_DIR := backend FRONTEND_DIR := frontend OPENAPI_JSON := $(BACKEND_DIR)/openapi.json -.PHONY: help \ - backend frontend \ - export-schema generate-client openapi \ - install install-backend install-frontend \ - update update-backend update-frontend \ - format format-backend format-frontend \ - test test-backend test-frontend +RECIPES := help \ + backend frontend \ + export-schema generate-client openapi \ + install-backend install-frontend install \ + update-backend update-frontend update \ + lint-backend lint-frontend lint \ + format-backend format-frontend format \ + test-backend test-frontend test + +.PHONY: $(RECIPES) +.SILENT: $(RECIPES) help: - @echo "" - @echo "Usage: make " - @echo "" - @echo " Development servers" - @echo " backend Run the FastAPI dev server" - @echo " frontend Run the Vite dev server" - @echo "" - @echo " OpenAPI client generation" - @echo " export-schema Export openapi.json from FastAPI" - @echo " generate-client Generate TypeScript client from openapi.json" - @echo " openapi Run the full pipeline (export + generate)" - @echo "" - @echo " Dependencies" - @echo " install Install all dependencies (backend + frontend)" - @echo " install-backend Install Python dependencies via uv" - @echo " install-frontend Install Node.js dependencies via pnpm" - @echo "" - @echo " update Update all dependencies (backend + frontend)" - @echo " update-backend Update Python dependencies via uv" - @echo " update-frontend Update Node.js dependencies via pnpm" - @echo "" - @echo " Linting" - @echo " lint Lint all (backend + frontend)" - @echo " lint-backend Lint back end" - @echo " lint-frontend Lint front end" - @echo "" - @echo " Formatting" - @echo " format Format all (backend + frontend)" - @echo " format-backend Format back end" - @echo " format-frontend Format front end" - @echo "" - @echo " Testing" - @echo " test Test all (backend + frontend)" - @echo " test-backend Test back end" - @echo " test-frontend Test front end" + echo '' + echo 'Usage: make ' + echo '' + echo ' help Show this message' + echo '' + echo ' Development servers' + echo ' backend Run the FastAPI dev server' + echo ' frontend Run the Vite dev server' + echo '' + echo ' OpenAPI client generation' + echo ' export-schema Export openapi.json from FastAPI' + echo ' generate-client Generate TypeScript client from openapi.json' + echo ' openapi Run the full pipeline (export + generate)' + echo '' + echo ' Dependencies' + echo ' install-backend Install Python dependencies via uv' + echo ' install-frontend Install Node.js dependencies via pnpm' + echo ' install Install all dependencies (backend + frontend)' + echo '' + echo ' update-backend Update Python dependencies via uv' + echo ' update-frontend Update Node.js dependencies via pnpm' + echo ' update Update all dependencies (backend + frontend)' + echo '' + echo ' Linting' + echo ' lint-backend Lint back end' + echo ' lint-frontend Lint front end' + echo ' lint Lint all (backend + frontend)' + echo '' + echo ' Formatting' + echo ' format-backend Format back end' + echo ' format-frontend Format front end' + echo ' format Format all (backend + frontend)' + echo '' + echo ' Testing' + echo ' test-backend Test back end' + echo ' test-frontend Test front end' + echo ' test Test all (backend + frontend)' backend: cd $(BACKEND_DIR) && uv run fastapi dev @@ -64,15 +70,13 @@ openapi: export-schema generate-client $(OPENAPI_JSON): $(BACKEND_DIR)/app/main.py $(BACKEND_DIR)/export_openapi.py cd $(BACKEND_DIR) && uv run python export_openapi.py -install: install-backend install-frontend - install-backend: cd $(BACKEND_DIR) && uv sync install-frontend: cd $(FRONTEND_DIR) && pnpm install -update: update-backend update-frontend +install: install-backend install-frontend update-backend: cd $(BACKEND_DIR) && uv sync -U @@ -80,21 +84,21 @@ update-backend: update-frontend: cd $(FRONTEND_DIR) && pnpm update -lint: lint-backend lint-frontend +update: update-backend update-frontend lint-backend: - cd $(BACKEND_DIR) && { \ uv run ruff check; \ uv run basedpyright; \ - } + } lint-frontend: - cd $(FRONTEND_DIR) && { \ pnpm lint; \ pnpm tsc:check; \ - } + } -format: format-backend format-frontend +lint: lint-backend lint-frontend format-backend: cd $(BACKEND_DIR) && uv run ruff format @@ -102,10 +106,12 @@ format-backend: format-frontend: cd $(FRONTEND_DIR) && pnpm format -test: test-backend test-frontend +format: format-backend format-frontend test-backend: cd $(BACKEND_DIR) && uv run pytest --cov app --cov-report term-missing test-frontend: cd $(FRONTEND_DIR) && pnpm test + +test: test-backend test-frontend diff --git a/backend/uv.lock b/backend/uv.lock index 51f3c9c..e04df46 100644 --- a/backend/uv.lock +++ b/backend/uv.lock @@ -835,14 +835,14 @@ wheels = [ [[package]] name = "jedi" -version = "0.19.2" +version = "0.20.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "parso" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/72/3a/79a912fbd4d8dd6fbb02bf69afd3bb72cf0c729bb3063c6f4498603db17a/jedi-0.19.2.tar.gz", hash = "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0", size = 1231287, upload-time = "2024-11-11T01:41:42.873Z" } +sdist = { url = "https://files.pythonhosted.org/packages/46/b7/a3635f6a2d7cf5b5dd98064fc1d5fbbafcb25477bcea204a3a92145d158b/jedi-0.20.0.tar.gz", hash = "sha256:c3f4ccbd276696f4b19c54618d4fb18f9fc24b0aef02acf704b23f487daa1011", size = 3119416, upload-time = "2026-05-01T23:38:47.814Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c0/5a/9cac0c82afec3d09ccd97c8b6502d48f165f9124db81b4bcb90b4af974ee/jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9", size = 1572278, upload-time = "2024-11-11T01:41:40.175Z" }, + { url = "https://files.pythonhosted.org/packages/9a/93/242e2eab5fe682ffcb8b0084bde703a41d51e17ee0f3a31ff0d9d813620a/jedi-0.20.0-py2.py3-none-any.whl", hash = "sha256:7bdd9c2634f56713299976f4cbd59cb3fa92165cc5e05ea811fb253480728b67", size = 4884812, upload-time = "2026-05-01T23:38:43.919Z" }, ] [[package]] @@ -1028,7 +1028,7 @@ wheels = [ [[package]] name = "jupyterlab" -version = "4.5.6" +version = "4.5.7" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "async-lru" }, @@ -1045,9 +1045,9 @@ dependencies = [ { name = "tornado" }, { name = "traitlets" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ac/d5/730628e03fff2e8a8e8ccdaedde1489ab1309f9a4fa2536248884e30b7c7/jupyterlab-4.5.6.tar.gz", hash = "sha256:642fe2cfe7f0f5922a8a558ba7a0d246c7bc133b708dfe43f7b3a826d163cf42", size = 23970670, upload-time = "2026-03-11T14:17:04.531Z" } +sdist = { url = "https://files.pythonhosted.org/packages/2b/22/8440ec827762146e7cdecf04335bd348795899d29dc6ae82238707353a2c/jupyterlab-4.5.7.tar.gz", hash = "sha256:55a9822c4754da305f41e113452c68383e214dcf96de760146af89ce5d5117b0", size = 23992763, upload-time = "2026-04-29T16:43:51.328Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e1/1b/dad6fdcc658ed7af26fdf3841e7394072c9549a8b896c381ab49dd11e2d9/jupyterlab-4.5.6-py3-none-any.whl", hash = "sha256:d6b3dac883aa4d9993348e0f8e95b24624f75099aed64eab6a4351a9cdd1e580", size = 12447124, upload-time = "2026-03-11T14:17:00.229Z" }, + { url = "https://files.pythonhosted.org/packages/3d/aa/537b8f7d80e799af19af35fb3ddfc970b951088a13c57dd9387dcfbb7f61/jupyterlab-4.5.7-py3-none-any.whl", hash = "sha256:fba4cb0e2c44a52859669d8c98b45de029d5e515f8407bf8534d2a8fc5f0964d", size = 12450123, upload-time = "2026-04-29T16:43:46.639Z" }, ] [[package]] @@ -1446,11 +1446,11 @@ wheels = [ [[package]] name = "parso" -version = "0.8.6" +version = "0.8.7" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/81/76/a1e769043c0c0c9fe391b702539d594731a4362334cdf4dc25d0c09761e7/parso-0.8.6.tar.gz", hash = "sha256:2b9a0332696df97d454fa67b81618fd69c35a7b90327cbe6ba5c92d2c68a7bfd", size = 401621, upload-time = "2026-02-09T15:45:24.425Z" } +sdist = { url = "https://files.pythonhosted.org/packages/30/4b/90c937815137d43ce71ba043cd3566221e9df6b9c805f24b5d138c9d40a7/parso-0.8.7.tar.gz", hash = "sha256:eaaac4c9fdd5e9e8852dc778d2d7405897ec510f2a298071453e5e3a07914bb1", size = 401824, upload-time = "2026-05-01T23:13:02.138Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b6/61/fae042894f4296ec49e3f193aff5d7c18440da9e48102c3315e1bc4519a7/parso-0.8.6-py2.py3-none-any.whl", hash = "sha256:2c549f800b70a5c4952197248825584cb00f033b29c692671d3bf08bf380baff", size = 106894, upload-time = "2026-02-09T15:45:21.391Z" }, + { url = "https://files.pythonhosted.org/packages/99/5d/8268b644392ee874ee82a635cd0df1773de230bde356c38de28e298392cc/parso-0.8.7-py2.py3-none-any.whl", hash = "sha256:a8926eb2a1b915486941fdbd31e86a4baf88fe8c210f25f2f35ecec5b574ca1c", size = 107025, upload-time = "2026-05-01T23:12:58.867Z" }, ] [[package]] @@ -2344,7 +2344,7 @@ wheels = [ [[package]] name = "typer" -version = "0.25.0" +version = "0.25.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "annotated-doc" }, @@ -2352,9 +2352,9 @@ dependencies = [ { name = "rich" }, { name = "shellingham" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/7b/27/ede8cec7596e0041ba7e7b80b47d132562f56ff454313a16f6084e555c9f/typer-0.25.0.tar.gz", hash = "sha256:123eaf9f19bb40fd268310e12a542c0c6b4fab9c98d9d23342a01ff95e3ce930", size = 120150, upload-time = "2026-04-26T08:46:14.767Z" } +sdist = { url = "https://files.pythonhosted.org/packages/e4/51/9aed62104cea109b820bbd6c14245af756112017d309da813ef107d42e7e/typer-0.25.1.tar.gz", hash = "sha256:9616eb8853a09ffeabab1698952f33c6f29ffdbceb4eaeecf571880e8d7664cc", size = 122276, upload-time = "2026-04-30T19:32:16.964Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/9a/72/193d4e586ec5a4db834a36bbeb47641a62f951f114ffd0fe5b1b46e8d56f/typer-0.25.0-py3-none-any.whl", hash = "sha256:ac01b48823d3db9a83c9e164338057eadbb1c9957a2a6b4eeb486669c560b5dc", size = 55993, upload-time = "2026-04-26T08:46:15.889Z" }, + { url = "https://files.pythonhosted.org/packages/3f/f9/2b3ff4e56e5fa7debfaf9eb135d0da96f3e9a1d5b27222223c7296336e5f/typer-0.25.1-py3-none-any.whl", hash = "sha256:75caa44ed46a03fb2dab8808753ffacdbfea88495e74c85a28c5eefcf5f39c89", size = 58409, upload-time = "2026-04-30T19:32:18.271Z" }, ] [[package]] diff --git a/frontend/package.json b/frontend/package.json index af25744..5474ab7 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -18,9 +18,9 @@ "@mantine/form": "^9.1.1", "@mantine/hooks": "^9.1.1", "@tabler/icons-react": "^3.41.1", - "@tanstack/query-async-storage-persister": "^5.100.6", - "@tanstack/react-query": "^5.100.6", - "@tanstack/react-query-persist-client": "^5.100.6", + "@tanstack/query-async-storage-persister": "^5.100.8", + "@tanstack/react-query": "^5.100.8", + "@tanstack/react-query-persist-client": "^5.100.8", "@turf/boolean-point-in-polygon": "^7.3.5", "@turf/helpers": "^7.3.5", "axios": "^1.15.2", @@ -35,8 +35,8 @@ "@eslint/js": "^9.39.4", "@hey-api/openapi-ts": "0.97.0", "@rolldown/plugin-babel": "^0.2.3", - "@tanstack/eslint-plugin-query": "^5.100.6", - "@tanstack/react-query-devtools": "^5.100.6", + "@tanstack/eslint-plugin-query": "^5.100.8", + "@tanstack/react-query-devtools": "^5.100.8", "@types/babel__core": "^7.20.5", "@types/geojson": "^7946.0.16", "@types/leaflet": "^1.9.21", @@ -51,8 +51,8 @@ "eslint-plugin-react-hooks": "^7.1.1", "eslint-plugin-react-refresh": "^0.5.2", "eslint-plugin-tsdoc": "^0.5.2", - "globals": "^17.5.0", - "postcss": "^8.5.12", + "globals": "^17.6.0", + "postcss": "^8.5.13", "postcss-preset-mantine": "^1.18.0", "postcss-simple-vars": "^7.0.1", "prettier": "3.8.3", diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml index b276bdd..a66aa79 100644 --- a/frontend/pnpm-lock.yaml +++ b/frontend/pnpm-lock.yaml @@ -21,14 +21,14 @@ importers: specifier: ^3.41.1 version: 3.41.1(react@19.2.5) '@tanstack/query-async-storage-persister': - specifier: ^5.100.6 - version: 5.100.6 + specifier: ^5.100.8 + version: 5.100.8 '@tanstack/react-query': - specifier: ^5.100.6 - version: 5.100.6(react@19.2.5) + specifier: ^5.100.8 + version: 5.100.8(react@19.2.5) '@tanstack/react-query-persist-client': - specifier: ^5.100.6 - version: 5.100.6(@tanstack/react-query@5.100.6(react@19.2.5))(react@19.2.5) + specifier: ^5.100.8 + version: 5.100.8(@tanstack/react-query@5.100.8(react@19.2.5))(react@19.2.5) '@turf/boolean-point-in-polygon': specifier: ^7.3.5 version: 7.3.5 @@ -65,13 +65,13 @@ importers: version: 0.97.0(typescript@5.9.3) '@rolldown/plugin-babel': specifier: ^0.2.3 - version: 0.2.3(@babel/core@7.29.0)(@babel/runtime@7.29.2)(rolldown@1.0.0-rc.17)(vite@8.0.10(@types/node@24.12.2)(esbuild@0.27.4)(jiti@2.6.1)(sugarss@5.0.1(postcss@8.5.12))(yaml@2.8.3)) + version: 0.2.3(@babel/core@7.29.0)(@babel/runtime@7.29.2)(rolldown@1.0.0-rc.17)(vite@8.0.10(@types/node@24.12.2)(esbuild@0.27.4)(jiti@2.6.1)(sugarss@5.0.1(postcss@8.5.13))(yaml@2.8.3)) '@tanstack/eslint-plugin-query': - specifier: ^5.100.6 - version: 5.100.6(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + specifier: ^5.100.8 + version: 5.100.8(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) '@tanstack/react-query-devtools': - specifier: ^5.100.6 - version: 5.100.6(@tanstack/react-query@5.100.6(react@19.2.5))(react@19.2.5) + specifier: ^5.100.8 + version: 5.100.8(@tanstack/react-query@5.100.8(react@19.2.5))(react@19.2.5) '@types/babel__core': specifier: ^7.20.5 version: 7.20.5 @@ -92,7 +92,7 @@ importers: version: 19.2.3(@types/react@19.2.14) '@vitejs/plugin-react': specifier: ^6.0.1 - version: 6.0.1(@rolldown/plugin-babel@0.2.3(@babel/core@7.29.0)(@babel/runtime@7.29.2)(rolldown@1.0.0-rc.17)(vite@8.0.10(@types/node@24.12.2)(esbuild@0.27.4)(jiti@2.6.1)(sugarss@5.0.1(postcss@8.5.12))(yaml@2.8.3)))(babel-plugin-react-compiler@1.0.0)(vite@8.0.10(@types/node@24.12.2)(esbuild@0.27.4)(jiti@2.6.1)(sugarss@5.0.1(postcss@8.5.12))(yaml@2.8.3)) + version: 6.0.1(@rolldown/plugin-babel@0.2.3(@babel/core@7.29.0)(@babel/runtime@7.29.2)(rolldown@1.0.0-rc.17)(vite@8.0.10(@types/node@24.12.2)(esbuild@0.27.4)(jiti@2.6.1)(sugarss@5.0.1(postcss@8.5.13))(yaml@2.8.3)))(babel-plugin-react-compiler@1.0.0)(vite@8.0.10(@types/node@24.12.2)(esbuild@0.27.4)(jiti@2.6.1)(sugarss@5.0.1(postcss@8.5.13))(yaml@2.8.3)) babel-plugin-react-compiler: specifier: ^1.0.0 version: 1.0.0 @@ -115,17 +115,17 @@ importers: specifier: ^0.5.2 version: 0.5.2(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) globals: - specifier: ^17.5.0 - version: 17.5.0 + specifier: ^17.6.0 + version: 17.6.0 postcss: - specifier: ^8.5.12 - version: 8.5.12 + specifier: ^8.5.13 + version: 8.5.13 postcss-preset-mantine: specifier: ^1.18.0 - version: 1.18.0(postcss@8.5.12) + version: 1.18.0(postcss@8.5.13) postcss-simple-vars: specifier: ^7.0.1 - version: 7.0.1(postcss@8.5.12) + version: 7.0.1(postcss@8.5.13) prettier: specifier: 3.8.3 version: 3.8.3 @@ -137,7 +137,7 @@ importers: version: 8.59.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) vite: specifier: ^8.0.10 - version: 8.0.10(@types/node@24.12.2)(esbuild@0.27.4)(jiti@2.6.1)(sugarss@5.0.1(postcss@8.5.12))(yaml@2.8.3) + version: 8.0.10(@types/node@24.12.2)(esbuild@0.27.4)(jiti@2.6.1)(sugarss@5.0.1(postcss@8.5.13))(yaml@2.8.3) packages: @@ -145,8 +145,8 @@ packages: resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.29.0': - resolution: {integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==} + '@babel/compat-data@7.29.3': + resolution: {integrity: sha512-LIVqM46zQWZhj17qA8wb4nW/ixr2y1Nw+r1etiAWgRM6U1IqP+LNhL1yg440jYZR72jCWcWbLWzIosH+uP1fqg==} engines: {node: '>=6.9.0'} '@babel/core@7.29.0': @@ -191,8 +191,8 @@ packages: resolution: {integrity: sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.29.2': - resolution: {integrity: sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==} + '@babel/parser@7.29.3': + resolution: {integrity: sha512-b3ctpQwp+PROvU/cttc4OYl4MzfJUWy6FZg+PMXfzmt/+39iHVF0sDfqay8TQM3JA2EUOyKcFZt75jWriQijsA==} engines: {node: '>=6.0.0'} hasBin: true @@ -686,8 +686,8 @@ packages: '@tabler/icons@3.41.1': resolution: {integrity: sha512-OaRnVbRmH2nHtFeg+RmMJ/7m2oBIF9XCJAUD5gQnMrpK9f05ydj8MZrAf3NZQqOXyxGN1UBL0D5IKLLEUfr74Q==} - '@tanstack/eslint-plugin-query@5.100.6': - resolution: {integrity: sha512-dZ2cUFe4OTTf2hLWa7la8oyj7AivK7JDecCDhUnxdAAedkn1YOL2PDr+IFF93h43zwUG2BvnFXiO59shwijyIg==} + '@tanstack/eslint-plugin-query@5.100.8': + resolution: {integrity: sha512-Hn2zEnjAPPBdHvFgSmcG8rUuskl2IS49LDjziF4CW8i8EmNT4/CkKudOckawOqzvDm/hjqZy0VFjyrQI1ZSw7Q==} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: ^5.4.0 || ^6.0.0 @@ -695,32 +695,32 @@ packages: typescript: optional: true - '@tanstack/query-async-storage-persister@5.100.6': - resolution: {integrity: sha512-DrAqV6IeYbHWr0MuFo5FcK3ewPPMDZPX1hn7Qllm+cL4khSpB4CWm1xbClXfTmwUVLoRD7i7FxQRZKWn93NgJw==} + '@tanstack/query-async-storage-persister@5.100.8': + resolution: {integrity: sha512-LrCF9SGyWgtgSq+nuyrIg5fXXt5OV24Bg70HB9mehdqcWfzeILu0NBlDzMl6bG96BO+eQ1ms/pVdyqVthdGl6g==} - '@tanstack/query-core@5.100.6': - resolution: {integrity: sha512-Os2CPUr98to98RYm+D4qGqGkiffn7MGSyl2547a4MljVkHE30AMJRqTiyCqBfMwzAx/I91vCkAxp5tHSla6Twg==} + '@tanstack/query-core@5.100.8': + resolution: {integrity: sha512-ceYwSFOqjPwET5TA6IOYxzxlGc0ekyH/gfOtWkP0PX43rzX9bxW48Iuw8KAduKCToi4rJAQ6nRy2kAe8gszdmg==} - '@tanstack/query-devtools@5.100.6': - resolution: {integrity: sha512-2SiNwlOiAdTbqktCSmwlXZH8x8mckSbES2O0bdr3qZNhdQl5DCtImZx0S3HGeNHWTIkzTaHx2Isg+bD4M3WRIg==} + '@tanstack/query-devtools@5.100.8': + resolution: {integrity: sha512-29D6k564h7eudwNdfRcq6Je2VFUWGxHwADPg1xC2yHxrovYBwZiqzIv/DkPRsK/EMoOIPIvPq+IU0uCxiQXYPA==} - '@tanstack/query-persist-client-core@5.100.6': - resolution: {integrity: sha512-SLJXsn5x2XAwKgOVulBFh0KXop7zeDoRmmB7ImKODLflyBnvLBmPQPadmwTgBiZQUa/Kx/y1MxzAXC/4Nfg8kQ==} + '@tanstack/query-persist-client-core@5.100.8': + resolution: {integrity: sha512-FxhXz6Zy8VgZFeIEQom8FKvAHcW9cQe8yx2LZ2o304CE8fVzo4RRfVeI/t4qBonLy8g7+OELb8wIzrn99rxMTQ==} - '@tanstack/react-query-devtools@5.100.6': - resolution: {integrity: sha512-sz3ksMKA2t1rx0+Odzb0x1A3pXH/SVf7fzlzd3sKXzwXz8980f5sbOwfQD6+UfTG8G4Y2KaIg9e3sBn+uC4VTg==} + '@tanstack/react-query-devtools@5.100.8': + resolution: {integrity: sha512-BKpysWo1u3kVMtv92XOv/Gu6eCbE/IxBLJPs0GG/qyySUQvZI2h7mqRwyf8Aa6WfUoX8Yf2AAh0uugQLAr8KtQ==} peerDependencies: - '@tanstack/react-query': ^5.100.6 + '@tanstack/react-query': ^5.100.8 react: ^18 || ^19 - '@tanstack/react-query-persist-client@5.100.6': - resolution: {integrity: sha512-WHklDX+U1C/dofiEBNxhk3eWKVEcOWmREPgim3PMqTlXJLewQ5NTqoyQjrnCKuXQIwjDrFd8ZpTbAtt7GRldhw==} + '@tanstack/react-query-persist-client@5.100.8': + resolution: {integrity: sha512-zbmX8Fj8NsBYFA7f/qNfWHw7tjNNS4QYBaWz9FYUM8pgbeJ845KJXIc2QRE3eWpgdH7IHhDN4dJMUxlBj68vYg==} peerDependencies: - '@tanstack/react-query': ^5.100.6 + '@tanstack/react-query': ^5.100.8 react: ^18 || ^19 - '@tanstack/react-query@5.100.6': - resolution: {integrity: sha512-uVSrps0PV16Cxmcn2rvL+dUhwTpTUtiRW347AEeYxMZXO2pZe9ja7E24PAMGoQ5u2g89DD8u4QhOviBk+RN8RA==} + '@tanstack/react-query@5.100.8': + resolution: {integrity: sha512-iNNEekixXU5vtAGKKZX2lx3jTooG5yNY+kv0wSgEdEYG0Mj0JM5bcuQtC35ZAP3nDopT6jciUK3xeX65U7AnfA==} peerDependencies: react: ^18 || ^19 @@ -1004,8 +1004,8 @@ packages: resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} engines: {node: 18 || 20 || >=22} - baseline-browser-mapping@2.10.24: - resolution: {integrity: sha512-I2NkZOOrj2XuguvWCK6OVh9GavsNjZjK908Rq3mIBK25+GD8vPX5w2WdxVqnQ7xx3SrZJiCiZFu+/Oz50oSYSA==} + baseline-browser-mapping@2.10.25: + resolution: {integrity: sha512-QO/VHsXCQdnzADMfmkeOPvHdIAkoB7i0/rGjINPJEetLx75hNttVWGQ/jycHUDP9zZ9rupbm60WRxcwViB0MiA==} engines: {node: '>=6.0.0'} hasBin: true @@ -1231,8 +1231,8 @@ packages: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} - electron-to-chromium@1.5.344: - resolution: {integrity: sha512-4MxfbmNDm+KPh066EZy+eUnkcDPcZ35wNmOWzFuh/ijvHsve6kbLTLURy88uCNK5FbpN+yk2nQY6BYh1GEt+wg==} + electron-to-chromium@1.5.349: + resolution: {integrity: sha512-QsWVGyRuY07Aqb234QytTfwd5d9AJlfNIQ5wIOl1L+PZDzI9d9+Fn0FRale/QYlFxt/bUnB0/nLd1jFPGxGK1A==} emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} @@ -1485,8 +1485,8 @@ packages: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} - globals@17.5.0: - resolution: {integrity: sha512-qoV+HK2yFl/366t2/Cb3+xxPUo5BuMynomoDmiaZBIdbs+0pYbjfZU+twLhGKp4uCZ/+NbtpVepH5bGCxRyy2g==} + globals@17.6.0: + resolution: {integrity: sha512-sepffkT8stwnIYbsMBpoCHJuJM5l98FUF2AnE07hfvE0m/qp3R586hw4jF4uadbhvg1ooIdzuu7CsfD2jzCaNA==} engines: {node: '>=18'} globalthis@1.0.4: @@ -1855,8 +1855,8 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - nanoid@3.3.11: - resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + nanoid@3.3.12: + resolution: {integrity: sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -1992,8 +1992,8 @@ packages: peerDependencies: postcss: ^8.2.1 - postcss@8.5.12: - resolution: {integrity: sha512-W62t/Se6rA0Az3DfCL0AqJwXuKwBeYg6nOaIgzP+xZ7N5BFCI7DYi1qs6ygUYT6rvfi6t9k65UMLJC+PHZpDAA==} + postcss@8.5.13: + resolution: {integrity: sha512-qif0+jGGZoLWdHey3UFHHWP0H7Gbmsk8T5VEqyYFbWqPr1XqvLGBbk/sl8V5exGmcYJklJOhOQq1pV9IcsiFag==} engines: {node: ^10 || ^12 || >=14} powershell-utils@0.1.0: @@ -2459,8 +2459,8 @@ packages: peerDependencies: zod: ^3.25.0 || ^4.0.0 - zod@4.3.6: - resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==} + zod@4.4.2: + resolution: {integrity: sha512-IynmDyxsEsb9RKzO3J9+4SxXnl2FTFSzNBaKKaMV6tsSk0rw9gYw9gs+JFCq/qk2LCZ78KDwyj+Z289TijSkUw==} snapshots: @@ -2470,7 +2470,7 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/compat-data@7.29.0': {} + '@babel/compat-data@7.29.3': {} '@babel/core@7.29.0': dependencies: @@ -2479,7 +2479,7 @@ snapshots: '@babel/helper-compilation-targets': 7.28.6 '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) '@babel/helpers': 7.29.2 - '@babel/parser': 7.29.2 + '@babel/parser': 7.29.3 '@babel/template': 7.28.6 '@babel/traverse': 7.29.0 '@babel/types': 7.29.0 @@ -2494,7 +2494,7 @@ snapshots: '@babel/generator@7.29.1': dependencies: - '@babel/parser': 7.29.2 + '@babel/parser': 7.29.3 '@babel/types': 7.29.0 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 @@ -2502,7 +2502,7 @@ snapshots: '@babel/helper-compilation-targets@7.28.6': dependencies: - '@babel/compat-data': 7.29.0 + '@babel/compat-data': 7.29.3 '@babel/helper-validator-option': 7.27.1 browserslist: 4.28.2 lru-cache: 5.1.1 @@ -2537,7 +2537,7 @@ snapshots: '@babel/template': 7.28.6 '@babel/types': 7.29.0 - '@babel/parser@7.29.2': + '@babel/parser@7.29.3': dependencies: '@babel/types': 7.29.0 @@ -2547,7 +2547,7 @@ snapshots: '@babel/template@7.28.6': dependencies: '@babel/code-frame': 7.29.0 - '@babel/parser': 7.29.2 + '@babel/parser': 7.29.3 '@babel/types': 7.29.0 '@babel/traverse@7.29.0': @@ -2555,7 +2555,7 @@ snapshots: '@babel/code-frame': 7.29.0 '@babel/generator': 7.29.1 '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.29.2 + '@babel/parser': 7.29.3 '@babel/template': 7.28.6 '@babel/types': 7.29.0 debug: 4.4.3 @@ -2930,14 +2930,14 @@ snapshots: '@rolldown/binding-win32-x64-msvc@1.0.0-rc.17': optional: true - '@rolldown/plugin-babel@0.2.3(@babel/core@7.29.0)(@babel/runtime@7.29.2)(rolldown@1.0.0-rc.17)(vite@8.0.10(@types/node@24.12.2)(esbuild@0.27.4)(jiti@2.6.1)(sugarss@5.0.1(postcss@8.5.12))(yaml@2.8.3))': + '@rolldown/plugin-babel@0.2.3(@babel/core@7.29.0)(@babel/runtime@7.29.2)(rolldown@1.0.0-rc.17)(vite@8.0.10(@types/node@24.12.2)(esbuild@0.27.4)(jiti@2.6.1)(sugarss@5.0.1(postcss@8.5.13))(yaml@2.8.3))': dependencies: '@babel/core': 7.29.0 picomatch: 4.0.4 rolldown: 1.0.0-rc.17 optionalDependencies: '@babel/runtime': 7.29.2 - vite: 8.0.10(@types/node@24.12.2)(esbuild@0.27.4)(jiti@2.6.1)(sugarss@5.0.1(postcss@8.5.12))(yaml@2.8.3) + vite: 8.0.10(@types/node@24.12.2)(esbuild@0.27.4)(jiti@2.6.1)(sugarss@5.0.1(postcss@8.5.13))(yaml@2.8.3) '@rolldown/pluginutils@1.0.0-rc.17': {} @@ -2954,7 +2954,7 @@ snapshots: '@tabler/icons@3.41.1': {} - '@tanstack/eslint-plugin-query@5.100.6(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': + '@tanstack/eslint-plugin-query@5.100.8(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@typescript-eslint/utils': 8.59.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.4(jiti@2.6.1) @@ -2963,34 +2963,34 @@ snapshots: transitivePeerDependencies: - supports-color - '@tanstack/query-async-storage-persister@5.100.6': + '@tanstack/query-async-storage-persister@5.100.8': dependencies: - '@tanstack/query-core': 5.100.6 - '@tanstack/query-persist-client-core': 5.100.6 + '@tanstack/query-core': 5.100.8 + '@tanstack/query-persist-client-core': 5.100.8 - '@tanstack/query-core@5.100.6': {} + '@tanstack/query-core@5.100.8': {} - '@tanstack/query-devtools@5.100.6': {} + '@tanstack/query-devtools@5.100.8': {} - '@tanstack/query-persist-client-core@5.100.6': + '@tanstack/query-persist-client-core@5.100.8': dependencies: - '@tanstack/query-core': 5.100.6 + '@tanstack/query-core': 5.100.8 - '@tanstack/react-query-devtools@5.100.6(@tanstack/react-query@5.100.6(react@19.2.5))(react@19.2.5)': + '@tanstack/react-query-devtools@5.100.8(@tanstack/react-query@5.100.8(react@19.2.5))(react@19.2.5)': dependencies: - '@tanstack/query-devtools': 5.100.6 - '@tanstack/react-query': 5.100.6(react@19.2.5) + '@tanstack/query-devtools': 5.100.8 + '@tanstack/react-query': 5.100.8(react@19.2.5) react: 19.2.5 - '@tanstack/react-query-persist-client@5.100.6(@tanstack/react-query@5.100.6(react@19.2.5))(react@19.2.5)': + '@tanstack/react-query-persist-client@5.100.8(@tanstack/react-query@5.100.8(react@19.2.5))(react@19.2.5)': dependencies: - '@tanstack/query-persist-client-core': 5.100.6 - '@tanstack/react-query': 5.100.6(react@19.2.5) + '@tanstack/query-persist-client-core': 5.100.8 + '@tanstack/react-query': 5.100.8(react@19.2.5) react: 19.2.5 - '@tanstack/react-query@5.100.6(react@19.2.5)': + '@tanstack/react-query@5.100.8(react@19.2.5)': dependencies: - '@tanstack/query-core': 5.100.6 + '@tanstack/query-core': 5.100.8 react: 19.2.5 '@turf/boolean-point-in-polygon@7.3.5': @@ -3019,7 +3019,7 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.29.2 + '@babel/parser': 7.29.3 '@babel/types': 7.29.0 '@types/babel__generator': 7.27.0 '@types/babel__template': 7.4.4 @@ -3031,7 +3031,7 @@ snapshots: '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.29.2 + '@babel/parser': 7.29.3 '@babel/types': 7.29.0 '@types/babel__traverse@7.28.0': @@ -3228,12 +3228,12 @@ snapshots: '@typescript-eslint/types': 8.59.1 eslint-visitor-keys: 5.0.1 - '@vitejs/plugin-react@6.0.1(@rolldown/plugin-babel@0.2.3(@babel/core@7.29.0)(@babel/runtime@7.29.2)(rolldown@1.0.0-rc.17)(vite@8.0.10(@types/node@24.12.2)(esbuild@0.27.4)(jiti@2.6.1)(sugarss@5.0.1(postcss@8.5.12))(yaml@2.8.3)))(babel-plugin-react-compiler@1.0.0)(vite@8.0.10(@types/node@24.12.2)(esbuild@0.27.4)(jiti@2.6.1)(sugarss@5.0.1(postcss@8.5.12))(yaml@2.8.3))': + '@vitejs/plugin-react@6.0.1(@rolldown/plugin-babel@0.2.3(@babel/core@7.29.0)(@babel/runtime@7.29.2)(rolldown@1.0.0-rc.17)(vite@8.0.10(@types/node@24.12.2)(esbuild@0.27.4)(jiti@2.6.1)(sugarss@5.0.1(postcss@8.5.13))(yaml@2.8.3)))(babel-plugin-react-compiler@1.0.0)(vite@8.0.10(@types/node@24.12.2)(esbuild@0.27.4)(jiti@2.6.1)(sugarss@5.0.1(postcss@8.5.13))(yaml@2.8.3))': dependencies: '@rolldown/pluginutils': 1.0.0-rc.7 - vite: 8.0.10(@types/node@24.12.2)(esbuild@0.27.4)(jiti@2.6.1)(sugarss@5.0.1(postcss@8.5.12))(yaml@2.8.3) + vite: 8.0.10(@types/node@24.12.2)(esbuild@0.27.4)(jiti@2.6.1)(sugarss@5.0.1(postcss@8.5.13))(yaml@2.8.3) optionalDependencies: - '@rolldown/plugin-babel': 0.2.3(@babel/core@7.29.0)(@babel/runtime@7.29.2)(rolldown@1.0.0-rc.17)(vite@8.0.10(@types/node@24.12.2)(esbuild@0.27.4)(jiti@2.6.1)(sugarss@5.0.1(postcss@8.5.12))(yaml@2.8.3)) + '@rolldown/plugin-babel': 0.2.3(@babel/core@7.29.0)(@babel/runtime@7.29.2)(rolldown@1.0.0-rc.17)(vite@8.0.10(@types/node@24.12.2)(esbuild@0.27.4)(jiti@2.6.1)(sugarss@5.0.1(postcss@8.5.13))(yaml@2.8.3)) babel-plugin-react-compiler: 1.0.0 acorn-jsx@5.3.2(acorn@8.16.0): @@ -3353,7 +3353,7 @@ snapshots: balanced-match@4.0.4: {} - baseline-browser-mapping@2.10.24: {} + baseline-browser-mapping@2.10.25: {} brace-expansion@1.1.14: dependencies: @@ -3366,9 +3366,9 @@ snapshots: browserslist@4.28.2: dependencies: - baseline-browser-mapping: 2.10.24 + baseline-browser-mapping: 2.10.25 caniuse-lite: 1.0.30001791 - electron-to-chromium: 1.5.344 + electron-to-chromium: 1.5.349 node-releases: 2.0.38 update-browserslist-db: 1.2.3(browserslist@4.28.2) @@ -3564,7 +3564,7 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 - electron-to-chromium@1.5.344: {} + electron-to-chromium@1.5.349: {} emoji-regex@9.2.2: {} @@ -3739,11 +3739,11 @@ snapshots: eslint-plugin-react-hooks@7.1.1(eslint@9.39.4(jiti@2.6.1)): dependencies: '@babel/core': 7.29.0 - '@babel/parser': 7.29.2 + '@babel/parser': 7.29.3 eslint: 9.39.4(jiti@2.6.1) hermes-parser: 0.25.1 - zod: 4.3.6 - zod-validation-error: 4.0.2(zod@4.3.6) + zod: 4.4.2 + zod-validation-error: 4.0.2(zod@4.4.2) transitivePeerDependencies: - supports-color @@ -3957,7 +3957,7 @@ snapshots: globals@14.0.0: {} - globals@17.5.0: {} + globals@17.6.0: {} globalthis@1.0.4: dependencies: @@ -4277,7 +4277,7 @@ snapshots: ms@2.1.3: {} - nanoid@3.3.11: {} + nanoid@3.3.12: {} natural-compare@1.4.0: {} @@ -4390,42 +4390,42 @@ snapshots: possible-typed-array-names@1.1.0: {} - postcss-js@4.1.0(postcss@8.5.12): + postcss-js@4.1.0(postcss@8.5.13): dependencies: camelcase-css: 2.0.1 - postcss: 8.5.12 + postcss: 8.5.13 - postcss-mixins@12.1.2(postcss@8.5.12): + postcss-mixins@12.1.2(postcss@8.5.13): dependencies: - postcss: 8.5.12 - postcss-js: 4.1.0(postcss@8.5.12) - postcss-simple-vars: 7.0.1(postcss@8.5.12) - sugarss: 5.0.1(postcss@8.5.12) + postcss: 8.5.13 + postcss-js: 4.1.0(postcss@8.5.13) + postcss-simple-vars: 7.0.1(postcss@8.5.13) + sugarss: 5.0.1(postcss@8.5.13) tinyglobby: 0.2.16 - postcss-nested@7.0.2(postcss@8.5.12): + postcss-nested@7.0.2(postcss@8.5.13): dependencies: - postcss: 8.5.12 + postcss: 8.5.13 postcss-selector-parser: 7.1.1 - postcss-preset-mantine@1.18.0(postcss@8.5.12): + postcss-preset-mantine@1.18.0(postcss@8.5.13): dependencies: - postcss: 8.5.12 - postcss-mixins: 12.1.2(postcss@8.5.12) - postcss-nested: 7.0.2(postcss@8.5.12) + postcss: 8.5.13 + postcss-mixins: 12.1.2(postcss@8.5.13) + postcss-nested: 7.0.2(postcss@8.5.13) postcss-selector-parser@7.1.1: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-simple-vars@7.0.1(postcss@8.5.12): + postcss-simple-vars@7.0.1(postcss@8.5.13): dependencies: - postcss: 8.5.12 + postcss: 8.5.13 - postcss@8.5.12: + postcss@8.5.13: dependencies: - nanoid: 3.3.11 + nanoid: 3.3.12 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -4744,9 +4744,9 @@ snapshots: strip-json-comments@3.1.1: {} - sugarss@5.0.1(postcss@8.5.12): + sugarss@5.0.1(postcss@8.5.13): dependencies: - postcss: 8.5.12 + postcss: 8.5.13 supports-color@7.2.0: dependencies: @@ -4882,11 +4882,11 @@ snapshots: d3-time: 3.1.0 d3-timer: 3.0.1 - vite@8.0.10(@types/node@24.12.2)(esbuild@0.27.4)(jiti@2.6.1)(sugarss@5.0.1(postcss@8.5.12))(yaml@2.8.3): + vite@8.0.10(@types/node@24.12.2)(esbuild@0.27.4)(jiti@2.6.1)(sugarss@5.0.1(postcss@8.5.13))(yaml@2.8.3): dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 - postcss: 8.5.12 + postcss: 8.5.13 rolldown: 1.0.0-rc.17 tinyglobby: 0.2.16 optionalDependencies: @@ -4894,7 +4894,7 @@ snapshots: esbuild: 0.27.4 fsevents: 2.3.3 jiti: 2.6.1 - sugarss: 5.0.1(postcss@8.5.12) + sugarss: 5.0.1(postcss@8.5.13) yaml: 2.8.3 which-boxed-primitive@1.1.1: @@ -4955,8 +4955,8 @@ snapshots: yocto-queue@0.1.0: {} - zod-validation-error@4.0.2(zod@4.3.6): + zod-validation-error@4.0.2(zod@4.4.2): dependencies: - zod: 4.3.6 + zod: 4.4.2 - zod@4.3.6: {} + zod@4.4.2: {}