diff --git a/.github/workflows/_docker-build.yml b/.github/workflows/_docker-build.yml index 86a0642ee..4e119f6fb 100644 --- a/.github/workflows/_docker-build.yml +++ b/.github/workflows/_docker-build.yml @@ -29,10 +29,10 @@ jobs: outputs: tags: ${{ steps.meta.outputs.tags }} steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4 - run: cp openapi.yaml data/output - name: Log in to the Container registry - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} @@ -40,13 +40,13 @@ jobs: - name: Extract metadata (tags, labels) for Docker id: meta - uses: docker/metadata-action@v4 + uses: docker/metadata-action@v5 with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - - uses: docker/setup-buildx-action@v2 + - uses: docker/setup-buildx-action@v3 - name: Build and push Docker image - uses: docker/build-push-action@v4 + uses: docker/build-push-action@v5 with: context: ${{ inputs.context }} push: true diff --git a/.github/workflows/add-deployment.yaml b/.github/workflows/add-deployment.yaml index 42e3601a5..ff40e0713 100644 --- a/.github/workflows/add-deployment.yaml +++ b/.github/workflows/add-deployment.yaml @@ -10,7 +10,7 @@ jobs: permissions: contents: write steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4 with: ref: deployment - run: git config --global user.email "github-actions[bot]@users.noreply.github.com" diff --git a/.github/workflows/data-cicd.yml b/.github/workflows/data-cicd.yml index 9e51a4f3f..c9bc8afe1 100644 --- a/.github/workflows/data-cicd.yml +++ b/.github/workflows/data-cicd.yml @@ -15,7 +15,7 @@ jobs: matrix: python-version: ["3.10", "3.11"] steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v4 with: diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 4de8263bf..c4c67b982 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -12,7 +12,7 @@ jobs: linting: runs-on: ubuntu-latest steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4 - uses: actions/setup-node@v3 with: cache: 'npm' diff --git a/.github/workflows/remove-deployment.yml b/.github/workflows/remove-deployment.yml index f86763e7a..c51165824 100644 --- a/.github/workflows/remove-deployment.yml +++ b/.github/workflows/remove-deployment.yml @@ -9,7 +9,7 @@ jobs: permissions: contents: write steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4 with: ref: deployment - run: git config --global user.email "github-actions[bot]@users.noreply.github.com" diff --git a/.github/workflows/server-cicd.yml b/.github/workflows/server-cicd.yml index f6f5d0b45..c87f44ce8 100644 --- a/.github/workflows/server-cicd.yml +++ b/.github/workflows/server-cicd.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Setup | Checkout - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 + uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4 - name: Setup | Rust uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 with: @@ -35,7 +35,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Setup | Checkout - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 + uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4 - name: Setup | Rust uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 with: diff --git a/.github/workflows/webclient-cicd.yml b/.github/workflows/webclient-cicd.yml index d004e55f8..e6a81038a 100644 --- a/.github/workflows/webclient-cicd.yml +++ b/.github/workflows/webclient-cicd.yml @@ -20,7 +20,7 @@ jobs: image: cypress/browsers:node16.16.0-chrome107-ff107 options: --user 1001 steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4 - uses: actions/setup-node@v3 with: cache: 'npm' @@ -35,7 +35,7 @@ jobs: webclient-linting: runs-on: ubuntu-latest steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4 - uses: actions/setup-node@v3 with: cache: 'npm' diff --git a/data/processors/export.py b/data/processors/export.py index 5ee038aaf..95cc00745 100644 --- a/data/processors/export.py +++ b/data/processors/export.py @@ -65,6 +65,7 @@ def export_for_search(data: dict, path: str) -> None: geo = {} if coords := entry.get("coords"): geo["_geo"] = {"lat": coords["lat"], "lng": coords["lon"]} + parent_building_names = extract_parent_building_names(data, entry["parents"], building_parents_index) export.append( { # MeiliSearch requires an id without "." @@ -84,9 +85,9 @@ def export_for_search(data: dict, path: str) -> None: "room": "room", "virtual_room": "room", }.get(entry["type"]), - "parent_building_names": extract_parent_building_names(data, entry["parents"], building_parents_index), + "parent_building_names": parent_building_names, # For all other parents, only the ids and their keywords (TODO) are searchable - "parent_keywords": entry["parents"][1:], + "parent_keywords": [maybe_slugify(value) for value in parent_building_names + entry["parents"][1:]], "campus": maybe_slugify(campus_name), "address": entry.get("tumonline_data", {}).get("address", None), "usage": maybe_slugify(entry.get("usage", {}).get("name", None)), @@ -107,7 +108,7 @@ def extract_parent_building_names(data: dict, parents: list[str], building_paren # For rooms, the (joined_)building parents are extra to put more emphasis on them. short_names = [data[p]["short_name"] for p in parents[building_parents_index:] if "short_name" in data[p]] long_names = [data[p]["name"] for p in parents[building_parents_index:]] - return [maybe_slugify(value) for value in short_names + long_names] + return short_names + long_names def extract_arch_name(entry: dict) -> str | None: diff --git a/data/requirements.txt b/data/requirements.txt index d4770bd5d..72c6a2bd8 100644 --- a/data/requirements.txt +++ b/data/requirements.txt @@ -1,9 +1,9 @@ beautifulsoup4~=4.12.2 defusedxml~=0.7.1 lxml~=4.9.2 -numba~=0.57.1 +numba~=0.58.0 Pillow~=10.0.0 -pydantic~=2.3.0 +pydantic~=2.4.2 pyyaml~=6.0 requests~=2.31.0 ruamel.yaml~=0.17.24 diff --git a/deployment/ansible/roles/k8s-components/tasks/components/penpot.yml b/deployment/ansible/roles/k8s-components/tasks/components/penpot.yml deleted file mode 100644 index 5920f3766..000000000 --- a/deployment/ansible/roles/k8s-components/tasks/components/penpot.yml +++ /dev/null @@ -1,143 +0,0 @@ ---- -- name: Add codechem chart repo - kubernetes.core.helm_repository: - name: codechem - repo_url: "https://charts.codechem.com" -- name: Install penpot - kubernetes.core.helm: - atomic: true - wait: false - update_repo_cache: yes - release_state: present - chart_version: 1.0.10 - chart_ref: codechem/penpot - name: penpot - namespace: penpot - create_namespace: yes - values: - global: - storageClass: "longhorn" - postgresqlEnabled: true - redisEnabled: true - backend: - image: - tag: 1.18.4 - exporter: - image: - tag: 1.18.4 - frontend: - image: - tag: 1.18.4 - persistence: - enabled: true - size: 8Gi - storageClass: "longhorn" - config: - publicURI: "https://penpot.nav.tum.sexy" - flags: enable-registration enable-login enable-smtp disable-demo-users disable-demo-warning - postgresql: - host: "penpot-postgresql.penpot.svc.cluster.local" - port: 5432 - username: "{{ lookup('ansible.builtin.password', 'credentials/penpot/postgres/username', chars=['ascii_letters']) }}" - password: "{{ lookup('ansible.builtin.password', 'credentials/penpot/postgres/password', chars=['ascii_letters', 'digits'], length=64) }}" - database: penpot - redis: - host: "penpot-redis-master.penpot.svc.cluster.local" - port: 6379 - database: "0" - registrationDomainWhitelist: "tum.de,fs.tum.de,fsmb-tum.de" - smtp: - defaultFrom: "frank.elsinga@tum.de" - defaultReplyTo: "frank.elsinga@tum.de" - enabled: true - existingSecret: "" - host: "postout.lrz.de" - password: "{{ lookup('ansible.builtin.password', 'credentials/email') }}" - port: "587" - secretKeys: - passwordKey: "" - usernameKey: "" - ssl: false - tls: true - username: ge93cuk - postgresql: - auth: - username: "{{ lookup('ansible.builtin.password', 'credentials/penpot/postgres/username', chars=['ascii_letters']) }}" - password: "{{ lookup('ansible.builtin.password', 'credentials/penpot/postgres/password', chars=['ascii_letters', 'digits'], length=64) }}" - enablePostgresUser: false - database: penpot - redis: - auth: - enabled: false - -- name: add an cert for argo - kubernetes.core.k8s: - state: present - namespace: penpot - definition: - apiVersion: cert-manager.io/v1 - kind: Certificate - metadata: - name: penpot.nav.tum.sexy - spec: - commonName: penpot.nav.tum.sexy - dnsNames: - - penpot.nav.tum.sexy - secretName: penpot.nav.tum.sexy - issuerRef: - name: letsencrypt-production - kind: ClusterIssuer -- name: add an ingress for argo - kubernetes.core.k8s: - state: present - namespace: penpot - definition: - apiVersion: traefik.containo.us/v1alpha1 - kind: IngressRoute - metadata: - name: penpot-server - spec: - entryPoints: - - websecure - routes: - - kind: Rule - match: Host(`penpot.nav.tum.sexy`) - priority: 10 - services: - - name: penpot - port: 80 - tls: - secretName: penpot.nav.tum.sexy -- name: add web ingress - kubernetes.core.k8s: - state: present - namespace: penpot - definition: - apiVersion: traefik.containo.us/v1alpha1 - kind: IngressRoute - metadata: - name: penpot-server-http - spec: - entryPoints: - - web - routes: - - kind: Rule - match: Host(`penpot.nav.tum.sexy`) - services: - - name: noop@internal - kind: TraefikService - middlewares: - - name: https -- name: add http middleware - kubernetes.core.k8s: - state: present - namespace: penpot - definition: - apiVersion: traefik.containo.us/v1alpha1 - kind: Middleware - metadata: - name: https - spec: - redirectScheme: - scheme: https - permanent: true diff --git a/deployment/k3s/values.yaml b/deployment/k3s/values.yaml index 0eca3a950..f85e6c45a 100644 --- a/deployment/k3s/values.yaml +++ b/deployment/k3s/values.yaml @@ -8,7 +8,7 @@ server: mielisearch: image: repository: 'getmeili/meilisearch' - tag: v1.3.3 + tag: v1.4.0 calendar: scrape_tasks: - name: refresh-calendar-slow # takes ~6m to complete diff --git a/requirements-dev.txt b/requirements-dev.txt index 0ae7c5fb8..33c4fafda 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,7 +1,7 @@ mypy~=1.5.0 pre-commit~=3.4.0 pylint~=2.17.4 -sourcery~=1.8.0 +sourcery~=1.10.0 types-Pillow~=10.0.0.2 types-PyYAML~=6.0.12.10 types-requests~=2.31.0.1 diff --git a/server/Cargo.lock b/server/Cargo.lock index f4ba02293..cf112127d 100644 --- a/server/Cargo.lock +++ b/server/Cargo.lock @@ -490,15 +490,16 @@ dependencies = [ [[package]] name = "cached" -version = "0.45.1" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90eb5776f28a149524d1d8623035760b4454ec881e8cf3838fa8d7e1b11254b3" +checksum = "8cead8ece0da6b744b2ad8ef9c58a4cdc7ef2921e60a6ddfb9eaaa86839b5fc5" dependencies = [ + "ahash", "async-trait", "cached_proc_macro", "cached_proc_macro_types", "futures", - "hashbrown 0.13.2", + "hashbrown 0.14.0", "instant", "once_cell", "thiserror", @@ -547,9 +548,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.30" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "defd4e7873dbddba6c7c91e199c7fcb946abc4a6a4ac3195400bcfb01b5de877" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" dependencies = [ "android-tzdata", "iana-time-zone", @@ -852,9 +853,9 @@ dependencies = [ [[package]] name = "diesel" -version = "2.1.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d98235fdc2f355d330a8244184ab6b4b33c28679c0b4158f63138e51d6cf7e88" +checksum = "53c8a2cb22327206568569e5a45bb5a2c946455efdd76e24d15b7e82171af95e" dependencies = [ "bitflags 2.4.0", "byteorder", @@ -944,25 +945,21 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "env_logger" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0" -dependencies = [ - "humantime", - "is-terminal", - "log", - "regex", - "termcolor", -] - [[package]] name = "equivalent" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +[[package]] +name = "erased-serde" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c138974f9d5e7fe373eb04df7cae98833802ae4b11c24ac7039a21d5af4b26c" +dependencies = [ + "serde", +] + [[package]] name = "errno" version = "0.3.3" @@ -1008,7 +1005,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d1e481eb11a482815d3e9d618db8c42a93207134662873809335a92327440c18" dependencies = [ "bit_field", - "flume", + "flume 0.10.14", "half", "lebe", "miniz_oxide", @@ -1064,6 +1061,17 @@ dependencies = [ "spin 0.9.8", ] +[[package]] +name = "flume" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181" +dependencies = [ + "futures-core", + "futures-sink", + "spin 0.9.8", +] + [[package]] name = "fnv" version = "1.0.7" @@ -1323,12 +1331,6 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" -[[package]] -name = "hashbrown" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" - [[package]] name = "hashbrown" version = "0.14.0" @@ -1436,12 +1438,6 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" -[[package]] -name = "humantime" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" - [[package]] name = "hyper" version = "0.14.27" @@ -1619,17 +1615,6 @@ version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6" -[[package]] -name = "is-terminal" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" -dependencies = [ - "hermit-abi", - "rustix", - "windows-sys", -] - [[package]] name = "isahc" version = "1.7.2" @@ -1778,9 +1763,9 @@ dependencies = [ [[package]] name = "libwebp-sys" -version = "0.9.2" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5df1e76f0acef0058aa2164ccf74e610e716e7f9eeb3ee2283de7d43659d823" +checksum = "3e0df0a0f9444d52aee6335cd724d21a2ee3285f646291799a72be518ec8ee3c" dependencies = [ "cc", "glob", @@ -1837,6 +1822,10 @@ name = "log" version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +dependencies = [ + "serde", + "value-bag", +] [[package]] name = "logos" @@ -1900,9 +1889,9 @@ dependencies = [ [[package]] name = "meilisearch-index-setting-macro" -version = "0.24.1" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "923bb7380030676cfd6563bc09cf88f7150fab55fc881c44e86f4a10c9b7ae2a" +checksum = "b6e019768c1720f9820e94e8ec527e492be150eb0a5deeec28d85af7a5bbbe6a" dependencies = [ "convert_case 0.6.0", "proc-macro2", @@ -1912,9 +1901,9 @@ dependencies = [ [[package]] name = "meilisearch-sdk" -version = "0.24.1" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff38036cb0ce16609896d1fd90fbce9432a173c744abd3a0d8daf2e4cdbb0d65" +checksum = "639a940bc77db5398000cb184c543106a823677f474f2f195251d2bdd373b6de" dependencies = [ "async-trait", "either", @@ -2068,7 +2057,6 @@ dependencies = [ "chrono", "diesel", "diesel_migrations", - "env_logger", "futures", "lazy_static", "log", @@ -2081,6 +2069,7 @@ dependencies = [ "rustls", "serde", "serde_json", + "structured-logger", "tokio", ] @@ -2094,7 +2083,6 @@ dependencies = [ "actix-web-prom", "base64 0.21.4", "chrono", - "env_logger", "image", "imageproc", "jsonwebtoken", @@ -2106,6 +2094,7 @@ dependencies = [ "serde", "serde_json", "serde_yaml", + "structured-logger", "tempfile", "tokio", ] @@ -2118,7 +2107,6 @@ dependencies = [ "actix-web", "actix-web-prom", "cached", - "env_logger", "futures", "image", "imageproc", @@ -2136,6 +2124,7 @@ dependencies = [ "serde_json", "serde_yaml", "sqlx", + "structured-logger", "tokio", "unicode-truncate", ] @@ -3047,6 +3036,15 @@ dependencies = [ "syn 2.0.31", ] +[[package]] +name = "serde_fmt" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d4ddca14104cd60529e8c7f7ba71a2c8acd8f7f5cfcdc2faf97eeb7c3010a4" +dependencies = [ + "serde", +] + [[package]] name = "serde_json" version = "1.0.105" @@ -3292,9 +3290,9 @@ dependencies = [ [[package]] name = "sqlx" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e58421b6bc416714d5115a2ca953718f6c621a51b68e4f4922aea5a4391a721" +checksum = "0e50c216e3624ec8e7ecd14c6a6a6370aad6ee5d8cfc3ab30b5162eeeef2ed33" dependencies = [ "sqlx-core", "sqlx-macros", @@ -3305,9 +3303,9 @@ dependencies = [ [[package]] name = "sqlx-core" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd4cef4251aabbae751a3710927945901ee1d97ee96d757f6880ebb9a79bfd53" +checksum = "8d6753e460c998bbd4cd8c6f0ed9a64346fcca0723d6e75e52fdc351c5d2169d" dependencies = [ "ahash", "atoi", @@ -3345,9 +3343,9 @@ dependencies = [ [[package]] name = "sqlx-macros" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "208e3165167afd7f3881b16c1ef3f2af69fa75980897aac8874a0696516d12c2" +checksum = "9a793bb3ba331ec8359c1853bd39eed32cdd7baaf22c35ccf5c92a7e8d1189ec" dependencies = [ "proc-macro2", "quote", @@ -3358,9 +3356,9 @@ dependencies = [ [[package]] name = "sqlx-macros-core" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a4a8336d278c62231d87f24e8a7a74898156e34c1c18942857be2acb29c7dfc" +checksum = "0a4ee1e104e00dedb6aa5ffdd1343107b0a4702e862a84320ee7cc74782d96fc" dependencies = [ "dotenvy", "either", @@ -3383,9 +3381,9 @@ dependencies = [ [[package]] name = "sqlx-mysql" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ca69bf415b93b60b80dc8fda3cb4ef52b2336614d8da2de5456cc942a110482" +checksum = "864b869fdf56263f4c95c45483191ea0af340f9f3e3e7b4d57a61c7c87a970db" dependencies = [ "atoi", "base64 0.21.4", @@ -3425,9 +3423,9 @@ dependencies = [ [[package]] name = "sqlx-postgres" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0db2df1b8731c3651e204629dd55e52adbae0462fa1bdcbed56a2302c18181e" +checksum = "eb7ae0e6a97fb3ba33b23ac2671a5ce6e3cabe003f451abd5a56e7951d975624" dependencies = [ "atoi", "base64 0.21.4", @@ -3464,12 +3462,12 @@ dependencies = [ [[package]] name = "sqlx-sqlite" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4c21bf34c7cae5b283efb3ac1bcc7670df7561124dc2f8bdc0b59be40f79a2" +checksum = "d59dc83cf45d89c555a577694534fcd1b55c545a816c816ce51f20bbe56a4f3f" dependencies = [ "atoi", - "flume", + "flume 0.11.0", "futures-channel", "futures-core", "futures-executor", @@ -3506,12 +3504,93 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" +[[package]] +name = "structured-logger" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16524b1ef57fd2e253216ab20ec44f0dc32b29155a4b3e6bef0a857d8c9f5f08" +dependencies = [ + "log", + "parking_lot", + "serde", + "serde_json", + "tokio", +] + [[package]] name = "subtle" version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" +[[package]] +name = "sval" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b031320a434d3e9477ccf9b5756d57d4272937b8d22cb88af80b7633a1b78b1" + +[[package]] +name = "sval_buffer" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bf7e9412af26b342f3f2cc5cc4122b0105e9d16eb76046cd14ed10106cf6028" +dependencies = [ + "sval", + "sval_ref", +] + +[[package]] +name = "sval_dynamic" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0ef628e8a77a46ed3338db8d1b08af77495123cc229453084e47cd716d403cf" +dependencies = [ + "sval", +] + +[[package]] +name = "sval_fmt" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dc09e9364c2045ab5fa38f7b04d077b3359d30c4c2b3ec4bae67a358bd64326" +dependencies = [ + "itoa", + "ryu", + "sval", +] + +[[package]] +name = "sval_json" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ada6f627e38cbb8860283649509d87bc4a5771141daa41c78fd31f2b9485888d" +dependencies = [ + "itoa", + "ryu", + "sval", +] + +[[package]] +name = "sval_ref" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703ca1942a984bd0d9b5a4c0a65ab8b4b794038d080af4eb303c71bc6bf22d7c" +dependencies = [ + "sval", +] + +[[package]] +name = "sval_serde" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830926cd0581f7c3e5d51efae4d35c6b6fc4db583842652891ba2f1bed8db046" +dependencies = [ + "serde", + "sval", + "sval_buffer", + "sval_fmt", +] + [[package]] name = "syn" version = "1.0.109" @@ -3547,15 +3626,6 @@ dependencies = [ "windows-sys", ] -[[package]] -name = "termcolor" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" -dependencies = [ - "winapi-util", -] - [[package]] name = "thiserror" version = "1.0.48" @@ -3939,6 +4009,42 @@ dependencies = [ "getrandom 0.2.10", ] +[[package]] +name = "value-bag" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d92ccd67fb88503048c01b59152a04effd0782d035a83a6d256ce6085f08f4a3" +dependencies = [ + "value-bag-serde1", + "value-bag-sval2", +] + +[[package]] +name = "value-bag-serde1" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0b9f3feef403a50d4d67e9741a6d8fc688bcbb4e4f31bd4aab72cc690284394" +dependencies = [ + "erased-serde", + "serde", + "serde_fmt", +] + +[[package]] +name = "value-bag-sval2" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30b24f4146b6f3361e91cbf527d1fb35e9376c3c0cef72ca5ec5af6d640fad7d" +dependencies = [ + "sval", + "sval_buffer", + "sval_dynamic", + "sval_fmt", + "sval_json", + "sval_ref", + "sval_serde", +] + [[package]] name = "vcpkg" version = "0.2.15" @@ -4113,15 +4219,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" -[[package]] -name = "winapi-util" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" -dependencies = [ - "winapi", -] - [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" diff --git a/server/Cargo.toml b/server/Cargo.toml index 61ec22944..ce1055927 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -9,7 +9,7 @@ lto = "thin" [workspace.dependencies] # logging/obeservability log = "0.4.20" -env_logger = "0.10.0" +structured-logger = "1.0.3" actix-web-prom = { version = "0.7.0", default-features = false, features = [] } # runtime + webserver diff --git a/server/calendar/Cargo.toml b/server/calendar/Cargo.toml index dc6ddd3fb..5b6e9e3bb 100644 --- a/server/calendar/Cargo.toml +++ b/server/calendar/Cargo.toml @@ -20,7 +20,7 @@ path = "src/scraper.rs" [dependencies] # shared log.workspace = true -env_logger.workspace = true +structured-logger.workspace = true tokio.workspace = true actix-web.workspace = true actix-cors.workspace = true @@ -28,10 +28,10 @@ actix-web-prom.workspace = true serde.workspace = true serde_json.workspace = true -chrono = { version = "0.4.30", default-features = false, features = ["serde"] } +chrono = { version = "0.4.31", default-features = false, features = ["serde"] } # database -diesel = { version = "2.1.1", features = ["default", "chrono", "postgres"] } +diesel = { version = "2.1.2", features = ["default", "chrono", "postgres"] } diesel_migrations = "2.1.0" # metrics diff --git a/server/calendar/src/main.rs b/server/calendar/src/main.rs index 4b0ff47f3..d9c23fa0d 100644 --- a/server/calendar/src/main.rs +++ b/server/calendar/src/main.rs @@ -22,6 +22,9 @@ async fn health_status_handler() -> HttpResponse { } use diesel_migrations::{embed_migrations, EmbeddedMigrations, MigrationHarness}; +use structured_logger::async_json::new_writer; +use structured_logger::Builder; + pub const MIGRATIONS: EmbeddedMigrations = embed_migrations!("migrations"); fn apply_db_migrations() { @@ -32,7 +35,9 @@ fn apply_db_migrations() { #[actix_web::main] async fn main() -> std::io::Result<()> { - env_logger::init_from_env(env_logger::Env::default().default_filter_or("info")); + Builder::with_level("info") + .with_target_writer("*", new_writer(tokio::io::stdout())) + .init(); apply_db_migrations(); // metrics diff --git a/server/calendar/src/scraper.rs b/server/calendar/src/scraper.rs index b9eadbcc9..c82d83d14 100644 --- a/server/calendar/src/scraper.rs +++ b/server/calendar/src/scraper.rs @@ -1,9 +1,10 @@ use crate::scrape_task::ScrapeTask; use log::{error, info}; +use structured_logger::{async_json::new_writer, Builder}; + use std::fmt; use prometheus::labels; - mod models; mod schema; mod scrape_task; @@ -40,7 +41,9 @@ impl fmt::Debug for TimeWindow { #[tokio::main] async fn main() { - env_logger::init_from_env(env_logger::Env::default().default_filter_or("info")); + Builder::with_level("info") + .with_target_writer("*", new_writer(tokio::io::stdout())) + .init(); let time_window = TimeWindow::init_from_env(); info!("Scraping time window: {time_window:?}"); diff --git a/server/feedback/Cargo.toml b/server/feedback/Cargo.toml index 8bb569ed5..e48ac6e62 100644 --- a/server/feedback/Cargo.toml +++ b/server/feedback/Cargo.toml @@ -16,7 +16,7 @@ path = "src/main.rs" [dependencies] # shared log.workspace = true -env_logger.workspace = true +structured-logger.workspace = true tokio.workspace = true actix-web.workspace = true actix-cors.workspace = true @@ -30,7 +30,7 @@ octocrab = "0.30.1" # web jsonwebtoken = "8.3.0" -chrono= { version = "0.4.30", default-features = false } +chrono= { version = "0.4.31", default-features = false } actix-governor = { version = "0.4.1", features = ["log"] } # proposing feedback diff --git a/server/feedback/src/main.rs b/server/feedback/src/main.rs index 47e3ac9a6..6ae4e8026 100644 --- a/server/feedback/src/main.rs +++ b/server/feedback/src/main.rs @@ -5,6 +5,9 @@ use std::collections::HashMap; use crate::tokens::RecordedTokens; use actix_web::{get, middleware, web, App, HttpResponse, HttpServer}; use actix_web_prom::PrometheusMetricsBuilder; +use structured_logger::async_json::new_writer; +use structured_logger::Builder; + mod github; mod post_feedback; mod proposed_edits; @@ -26,7 +29,9 @@ async fn health_status_handler() -> HttpResponse { const SECONDS_PER_DAY: u64 = 60 * 60 * 24; #[tokio::main] async fn main() -> std::io::Result<()> { - env_logger::init_from_env(env_logger::Env::default().default_filter_or("info")); + Builder::with_level("info") + .with_target_writer("*", new_writer(tokio::io::stdout())) + .init(); let feedback_ratelimit = GovernorConfigBuilder::default() .key_extractor(GlobalKeyExtractor) diff --git a/server/feedback/src/proposed_edits/tmp_repo.rs b/server/feedback/src/proposed_edits/tmp_repo.rs index 5b24a0973..8d149fb95 100644 --- a/server/feedback/src/proposed_edits/tmp_repo.rs +++ b/server/feedback/src/proposed_edits/tmp_repo.rs @@ -112,10 +112,10 @@ impl TempRepo { mod tests { use super::*; use std::fs; + const GIT_URL: &str = "https://github.com/CommanderStorm/dotfiles.git"; #[tokio::test] async fn test_new() { - let _ = env_logger::builder().is_test(true).try_init(); let temp_repo = TempRepo::clone_and_checkout(GIT_URL, "branch_does_not_exist") .await .unwrap(); @@ -126,7 +126,6 @@ mod tests { #[tokio::test] async fn test_checkout_and_commit() { - let _ = env_logger::builder().is_test(true).try_init(); let temp_repo = TempRepo::clone_and_checkout(GIT_URL, "branch_does_not_exist") .await .unwrap(); diff --git a/server/main-api/Cargo.toml b/server/main-api/Cargo.toml index e97c840c1..41d3805a0 100644 --- a/server/main-api/Cargo.toml +++ b/server/main-api/Cargo.toml @@ -17,7 +17,7 @@ path = "src/main.rs" [dependencies] # shared log.workspace = true -env_logger.workspace = true +structured-logger.workspace = true tokio.workspace = true actix-web.workspace = true actix-cors.workspace = true @@ -25,7 +25,7 @@ actix-web-prom.workspace = true serde.workspace = true serde_json.workspace = true -cached = { version = "0.45.1", features = ["default", "async", "tokio"] } +cached = { version = "0.46.0", features = ["default", "async", "tokio"] } futures = "0.3.28" unicode-truncate = "0.2.0" @@ -34,10 +34,10 @@ serde_yaml = "0.9" # database libsqlite3-sys = { version = "*", features = ["bundled"] } -sqlx = { version = "0.7.1", features = ["sqlite", "runtime-tokio", "migrate", "macros"] } +sqlx = { version = "0.7.2", features = ["sqlite", "runtime-tokio", "migrate", "macros"] } # search -meilisearch-sdk = "0.24.1" +meilisearch-sdk = "0.24.2" logos="0.13.0" regex = "1.9.5" diff --git a/server/main-api/src/main.rs b/server/main-api/src/main.rs index bb1a99950..162f6e0fb 100644 --- a/server/main-api/src/main.rs +++ b/server/main-api/src/main.rs @@ -6,6 +6,8 @@ use log::info; use sqlx::sqlite::SqlitePoolOptions; use sqlx::SqlitePool; use std::collections::HashMap; +use structured_logger::async_json::new_writer; +use structured_logger::Builder; mod entries; mod maps; @@ -32,7 +34,9 @@ async fn health_status_handler() -> HttpResponse { #[tokio::main] async fn main() -> Result<(), Box> { - env_logger::init_from_env(env_logger::Env::default().default_filter_or("info")); + Builder::with_level("info") + .with_target_writer("*", new_writer(tokio::io::stdout())) + .init(); info!("setting up dependency's"); try_join!( setup::meilisearch::setup_meilisearch(), diff --git a/server/main-api/test/printer.py b/server/main-api/test/printer.py index aa0c89e6f..143fd05fe 100644 --- a/server/main-api/test/printer.py +++ b/server/main-api/test/printer.py @@ -13,6 +13,9 @@ def print_specific_queries_result( s_pos_indicator = _gen_pos_indicator(search) # Grade + s_grade = str(round(search.grade, 1)) + if s_grade == "1.0": + continue s_grade = { "1.0": colored("1.0", "green", attrs=["bold"]), "2.0": colored("2.0", "green", attrs=[]), @@ -20,7 +23,7 @@ def print_specific_queries_result( "4.0": colored("4.0", "yellow", attrs=[]), "4.7": colored("4.7", "red", attrs=[]), "5.0": colored("5.0", "red", attrs=["bold"]), - }[str(round(search.grade, 1))] + }[s_grade] # Grade cmp s_cmp = _generate_grade_cmp(search, comp) @@ -108,7 +111,7 @@ def _gen_pos_indicator(search: search_quality_test.Evaluation) -> str: + " " ) if search.full_search.was_top20: - return colored("[ ]", "white") + colored(">", "yellow") + " " + return colored("[ ]", "white") + colored(">", "yellow") if search.full_search.num_results > 0: return ( colored("[", "white") diff --git a/server/main-api/test/search_quality_test.py b/server/main-api/test/search_quality_test.py index c68a84155..b09c9b898 100644 --- a/server/main-api/test/search_quality_test.py +++ b/server/main-api/test/search_quality_test.py @@ -160,6 +160,6 @@ def results(self) -> list[Evaluation]: if __name__ == "__main__": current = Evaluations(search_endpoint="https://nav.tum.de/api/search") - comparison = Evaluations(search_endpoint="https://nav.tum.de/api/search") + comparison = Evaluations(search_endpoint="http://localhost:8080/api/search") printer.print_specific_queries_result(current.results, comparison.results) diff --git a/server/main-api/test/test-queries.yaml b/server/main-api/test/test-queries.yaml index b9730a0aa..c6b69b141 100644 --- a/server/main-api/test/test-queries.yaml +++ b/server/main-api/test/test-queries.yaml @@ -25,6 +25,9 @@ - { target: "5608.03.011", query: "03.08.011" } - { target: "5602.EG.001", query: "mi hs 1" } - { target: "5508.02.801", query: "MW 1801" } +- { target: "5508.02.801", query: "MW1801" } # splitting necessary +- { target: "5510.EG.001", query: "MW0001" } # splitting nessesary +- { target: "5510.02.001", query: "MW2001" } # splitting nessesary - { target: "5508.02.801", query: "1801 maschinen" } - { target: "5503.EG.337", query: "Raum 0337 mw" } - { target: "5510.EG.001", query: "niemann" } diff --git a/webclient/package-lock.json b/webclient/package-lock.json index 27db74140..a85e7f73d 100644 --- a/webclient/package-lock.json +++ b/webclient/package-lock.json @@ -8,41 +8,41 @@ "name": "navigatum", "version": "0.1.0", "dependencies": { - "@sentry/tracing": "7.68.0", - "@sentry/vue": "7.68.0", + "@sentry/tracing": "7.72.0", + "@sentry/vue": "7.72.0", "@vueuse/core": "10.4.1", "maplibre-gl": "3.3.1", "pinia": "2.1.6", "spectre.css": "github:Valexr/spectre#dfe3bc2c59d23cd4bfd43c690aae3655576ff708", - "swagger-ui-dist": "5.6.2", + "swagger-ui-dist": "5.7.2", "swaggerdark": "github:octycs/SwaggerDark#f02d394c8ff698cdd93e09c2188b058d2d686ca3", "vue": "3.3.4", - "vue-router": "4.2.4" + "vue-router": "4.2.5" }, "devDependencies": { - "@intlify/unplugin-vue-i18n": "1.0.1", - "@rushstack/eslint-patch": "1.3.3", + "@intlify/unplugin-vue-i18n": "1.2.0", + "@rushstack/eslint-patch": "1.5.0", "@sentry/vite-plugin": "2.7.1", - "@types/swagger-ui-dist": "3.30.1", + "@types/swagger-ui-dist": "3.30.2", "@vitejs/plugin-vue": "4.3.4", "@vue/eslint-config-prettier": "8.0.0", - "@vue/eslint-config-typescript": "11.0.3", + "@vue/eslint-config-typescript": "12.0.0", "@vue/tsconfig": "0.4.0", "@yankeeinlondon/link-builder": "1.2.1", - "cypress": "13.1.0", - "eslint": "8.49.0", + "cypress": "13.3.0", + "eslint": "8.50.0", "eslint-plugin-vue": "9.17.0", "isomorphic-fetch": "3.0.0", "npm-run-all": "4.1.5", "prettier": "3.0.3", - "sass": "1.66.1", - "stylelint-scss": "5.1.0", + "sass": "1.68.0", + "stylelint-scss": "5.2.1", "typescript": "5.2.2", "vite": "4.4.9", "vite-plugin-md": "0.21.5", "vite-plugin-rewrite-all": "1.0.1", - "vue-i18n": "9.3.0", - "vue-tsc": "1.8.10" + "vue-i18n": "9.4.1", + "vue-tsc": "1.8.15" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -808,9 +808,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.49.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.49.0.tgz", - "integrity": "sha512-1S8uAY/MTJqVx0SC4epBq+N2yhuwtNwLbJYNZyhL2pO1ZVKn5HFXav5T41Ryzy9K9V7ZId2JB2oy/W4aCd9/2w==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz", + "integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -850,13 +850,13 @@ "dev": true }, "node_modules/@intlify/bundle-utils": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@intlify/bundle-utils/-/bundle-utils-7.2.0.tgz", - "integrity": "sha512-ORmE/wx7ffb4hml+WsDYSciEX3cJhc/1hY3OUzByN/utvMnRkA/k/2AkRg5t2v9OUR/FuWgCPIsf2ERIF8EITA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@intlify/bundle-utils/-/bundle-utils-7.3.0.tgz", + "integrity": "sha512-lcnfsLA5Dyd3TbvfoLS0ejLr1vAJYyT6VRYtE4LGNexy1ZD/GEcbXrC33fI9oQp7t2hDlHbCn2o4BBVgXaJFqg==", "dev": true, "dependencies": { - "@intlify/message-compiler": "^9.3.0", - "@intlify/shared": "^9.3.0", + "@intlify/message-compiler": "^9.4.0", + "@intlify/shared": "^9.4.0", "acorn": "^8.8.2", "escodegen": "^2.0.0", "estree-walker": "^2.0.2", @@ -879,30 +879,13 @@ } }, "node_modules/@intlify/core-base": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.3.0.tgz", - "integrity": "sha512-SRzn8TMnPZ6MY8OFrgouRq4DGaf01SHcJEF6FglYFYvRkgPzziEcQe+v2PD+O5lUp/rJafP4dabm1CmsVAA7rA==", - "dev": true, - "dependencies": { - "@intlify/devtools-if": "9.3.0", - "@intlify/message-compiler": "9.3.0", - "@intlify/shared": "9.3.0", - "@intlify/vue-devtools": "9.3.0" - }, - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://github.com/sponsors/kazupon" - } - }, - "node_modules/@intlify/devtools-if": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@intlify/devtools-if/-/devtools-if-9.3.0.tgz", - "integrity": "sha512-5aKZnqj0Ff4dfwBX2Oo+MheVs00CBnC0RzWK26aT2M4AF0cxdFLOJAs51/eHT01jmzrxSvfBMjdArUWHwgetfg==", + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.4.1.tgz", + "integrity": "sha512-WIwx+elsZbxSMxRG5+LC+utRohFvmZMoDevfKOfnYMLbpCjCSavqTfHJAtfsY6ruowzqXeKkeLhRHbYbjoJx5g==", "dev": true, "dependencies": { - "@intlify/shared": "9.3.0" + "@intlify/message-compiler": "9.4.1", + "@intlify/shared": "9.4.1" }, "engines": { "node": ">= 16" @@ -912,12 +895,12 @@ } }, "node_modules/@intlify/message-compiler": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.3.0.tgz", - "integrity": "sha512-D8tSJEhTCSFcCzkThjE4Sbk1tIdvzkYa1FaVIzUtZ8hKPATvokNrOiDw1i/h671m8A80l9Ywq594i/LPTB6EJA==", + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.4.1.tgz", + "integrity": "sha512-aN2N+dUx320108QhH51Ycd2LEpZ+NKbzyQ2kjjhqMcxhHdxtOnkgdx+MDBhOy/CObwBmhC3Nygzc6hNlfKvPNw==", "dev": true, "dependencies": { - "@intlify/shared": "9.3.0", + "@intlify/shared": "9.4.1", "source-map-js": "^1.0.2" }, "engines": { @@ -928,9 +911,9 @@ } }, "node_modules/@intlify/shared": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.3.0.tgz", - "integrity": "sha512-MMGRz6zWxtz7rHtxIIdnyb8SYOIaaseN1IvUhAEs9tOW4u77RD4DFp4qgPXesp2Gxo/5QitH9kwSs0jnxGUNEw==", + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.4.1.tgz", + "integrity": "sha512-A51elBmZWf1FS80inf/32diO9DeXoqg9GR9aUDHFcfHoNDuT46Q+fpPOdj8jiJnSHSBh8E1E+6qWRhAZXdK3Ng==", "dev": true, "engines": { "node": ">= 16" @@ -940,13 +923,13 @@ } }, "node_modules/@intlify/unplugin-vue-i18n": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@intlify/unplugin-vue-i18n/-/unplugin-vue-i18n-1.0.1.tgz", - "integrity": "sha512-fqiT42Sd619juSjjBcv5x3itVZ+77xYSB0AaQHpE01gPyfc7TNGaKDsTJJXGzkTCznOSjnhJZbiTzrZEnJ1vDQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@intlify/unplugin-vue-i18n/-/unplugin-vue-i18n-1.2.0.tgz", + "integrity": "sha512-AzjlMZKj9DG10ICDR2VWjfJudHJ1XK2GNSHxw+VmOUYpUm4S0L/a7OAdvgnuY7S4plk1VnPdT4YilpZk+uQcqg==", "dev": true, "dependencies": { - "@intlify/bundle-utils": "^7.2.0", - "@intlify/shared": "^9.3.0", + "@intlify/bundle-utils": "^7.3.0", + "@intlify/shared": "^9.4.0", "@rollup/pluginutils": "^5.0.2", "@vue/compiler-sfc": "^3.2.47", "debug": "^4.3.3", @@ -978,22 +961,6 @@ } } }, - "node_modules/@intlify/vue-devtools": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@intlify/vue-devtools/-/vue-devtools-9.3.0.tgz", - "integrity": "sha512-kEaxIz1VEgsz2q5RhoS+fBGTkXr/4+pxmK9mN14+speVGb82HPRntKBmz0GO18I1JisD4Z0vAva+KCTHGeAqbQ==", - "dev": true, - "dependencies": { - "@intlify/core-base": "9.3.0", - "@intlify/shared": "9.3.0" - }, - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://github.com/sponsors/kazupon" - } - }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", @@ -1172,9 +1139,9 @@ } }, "node_modules/@rushstack/eslint-patch": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.3.3.tgz", - "integrity": "sha512-0xd7qez0AQ+MbHatZTlI1gu5vkG8r7MYRUJAHPAHJBmGLs16zpkrpAVLvjQKQOqaXPDUBwOiJzNc00znHSCVBw==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.5.0.tgz", + "integrity": "sha512-EF3948ckf3f5uPgYbQ6GhyA56Dmv8yg0+ir+BroRjwdxyZJsekhZzawOecC2rOTPCz173t7ZcR1HHZu0dZgOCw==", "dev": true }, "node_modules/@sentry-internal/tracing": { @@ -1193,15 +1160,15 @@ } }, "node_modules/@sentry/browser": { - "version": "7.68.0", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.68.0.tgz", - "integrity": "sha512-1RIPLzKcBeUeG8CQc4OIRfQ6F1zmGKku1am7P9QTz0bz//Mu7bEjm75DM69LBoUlP/Ab9cQQA3fZFUvrH0j1Tg==", - "dependencies": { - "@sentry-internal/tracing": "7.68.0", - "@sentry/core": "7.68.0", - "@sentry/replay": "7.68.0", - "@sentry/types": "7.68.0", - "@sentry/utils": "7.68.0", + "version": "7.72.0", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.72.0.tgz", + "integrity": "sha512-fcFDTzqhPd3VZAmmYW3KvBTBaEfrKjPmRhlAsfhkGWYLCHqVkNtzsFER4cmUNRGNxjyt9tcG3WlTTqgLRucycQ==", + "dependencies": { + "@sentry-internal/tracing": "7.72.0", + "@sentry/core": "7.72.0", + "@sentry/replay": "7.72.0", + "@sentry/types": "7.72.0", + "@sentry/utils": "7.72.0", "tslib": "^2.4.1 || ^1.9.3" }, "engines": { @@ -1209,13 +1176,13 @@ } }, "node_modules/@sentry/browser/node_modules/@sentry-internal/tracing": { - "version": "7.68.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.68.0.tgz", - "integrity": "sha512-nNKS/q21+Iqzxs2K7T/l3dZi8Z9s/uxsAazpk2AYhFzx9mFnPj1Xfe3dgbFoygNifE+IrpUuldr6D5HQamTDPQ==", + "version": "7.72.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.72.0.tgz", + "integrity": "sha512-DToryaRSHk9R5RLgN4ktYEXZjQdqncOAWPqyyIurji8lIobXFRfmLtGL1wjoCK6sQNgWsjhSM9kXxwGnva1DNw==", "dependencies": { - "@sentry/core": "7.68.0", - "@sentry/types": "7.68.0", - "@sentry/utils": "7.68.0", + "@sentry/core": "7.72.0", + "@sentry/types": "7.72.0", + "@sentry/utils": "7.72.0", "tslib": "^2.4.1 || ^1.9.3" }, "engines": { @@ -1223,12 +1190,12 @@ } }, "node_modules/@sentry/browser/node_modules/@sentry/core": { - "version": "7.68.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.68.0.tgz", - "integrity": "sha512-mT3ObBWgvAky/QF3dZy4KBoXbRXbNsD6evn+mYi9UEeIZQ5NpnQYDEp78mapiEjI/TAHZIhTIuaBhj1Jk0qUUA==", + "version": "7.72.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.72.0.tgz", + "integrity": "sha512-G03JdQ5ZsFNRjcNNi+QvCjqOuBvYqU92Gs1T2iK3GE8dSBTu2khThydMpG4xrKZQLIpHOyiIhlFZiuPtZ66W8w==", "dependencies": { - "@sentry/types": "7.68.0", - "@sentry/utils": "7.68.0", + "@sentry/types": "7.72.0", + "@sentry/utils": "7.72.0", "tslib": "^2.4.1 || ^1.9.3" }, "engines": { @@ -1236,19 +1203,19 @@ } }, "node_modules/@sentry/browser/node_modules/@sentry/types": { - "version": "7.68.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.68.0.tgz", - "integrity": "sha512-5J2pH1Pjx/029zTm3CNY9MaE8Aui81nG7JCtlMp7uEfQ//9Ja4d4Sliz/kV4ARbkIKUZerSgaRAm3xCy5XOXLg==", + "version": "7.72.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.72.0.tgz", + "integrity": "sha512-g6u0mk62yGshx02rfFADIfyR/S9VXcf3RG2qQPuvykrWtOfN/BOTrZypF7I+MiqKwRW76r3Pcu2C/AB+6z9XQA==", "engines": { "node": ">=8" } }, "node_modules/@sentry/browser/node_modules/@sentry/utils": { - "version": "7.68.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.68.0.tgz", - "integrity": "sha512-NecnQegvKARyeFmBx7mYmbI17mTvjARWs1nfzY5jhPyNc3Zk4M3bQsgIdnJ1t+jo93UYudlNND7hxhDzjcBAVg==", + "version": "7.72.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.72.0.tgz", + "integrity": "sha512-o/MtqI7WJXuswidH0bSgBP40KN2lrnyQEIx5uoyJUJi/QEaboIsqbxU62vaFJpde8SYrbA+rTnP3J3ujF2gUag==", "dependencies": { - "@sentry/types": "7.68.0", + "@sentry/types": "7.72.0", "tslib": "^2.4.1 || ^1.9.3" }, "engines": { @@ -1352,25 +1319,25 @@ } }, "node_modules/@sentry/replay": { - "version": "7.68.0", - "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.68.0.tgz", - "integrity": "sha512-be8QT2pxcLOTuX6HBRkK0mCVwM97dU5ZLCeofI+xJEWcRnoJdbx00nFwvBXvvoCizbtf4YIMCGwaT2k5LrVxsQ==", + "version": "7.72.0", + "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.72.0.tgz", + "integrity": "sha512-dHH/mYCFBwJ/kYmL9L5KihjwQKcefiuvcH0otHSwKSpbbeEoM/BV+SHQoYGd6OMSYnL9fq1dHfF7Zo26p5Yu0Q==", "dependencies": { - "@sentry/core": "7.68.0", - "@sentry/types": "7.68.0", - "@sentry/utils": "7.68.0" + "@sentry/core": "7.72.0", + "@sentry/types": "7.72.0", + "@sentry/utils": "7.72.0" }, "engines": { "node": ">=12" } }, "node_modules/@sentry/replay/node_modules/@sentry/core": { - "version": "7.68.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.68.0.tgz", - "integrity": "sha512-mT3ObBWgvAky/QF3dZy4KBoXbRXbNsD6evn+mYi9UEeIZQ5NpnQYDEp78mapiEjI/TAHZIhTIuaBhj1Jk0qUUA==", + "version": "7.72.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.72.0.tgz", + "integrity": "sha512-G03JdQ5ZsFNRjcNNi+QvCjqOuBvYqU92Gs1T2iK3GE8dSBTu2khThydMpG4xrKZQLIpHOyiIhlFZiuPtZ66W8w==", "dependencies": { - "@sentry/types": "7.68.0", - "@sentry/utils": "7.68.0", + "@sentry/types": "7.72.0", + "@sentry/utils": "7.72.0", "tslib": "^2.4.1 || ^1.9.3" }, "engines": { @@ -1378,19 +1345,19 @@ } }, "node_modules/@sentry/replay/node_modules/@sentry/types": { - "version": "7.68.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.68.0.tgz", - "integrity": "sha512-5J2pH1Pjx/029zTm3CNY9MaE8Aui81nG7JCtlMp7uEfQ//9Ja4d4Sliz/kV4ARbkIKUZerSgaRAm3xCy5XOXLg==", + "version": "7.72.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.72.0.tgz", + "integrity": "sha512-g6u0mk62yGshx02rfFADIfyR/S9VXcf3RG2qQPuvykrWtOfN/BOTrZypF7I+MiqKwRW76r3Pcu2C/AB+6z9XQA==", "engines": { "node": ">=8" } }, "node_modules/@sentry/replay/node_modules/@sentry/utils": { - "version": "7.68.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.68.0.tgz", - "integrity": "sha512-NecnQegvKARyeFmBx7mYmbI17mTvjARWs1nfzY5jhPyNc3Zk4M3bQsgIdnJ1t+jo93UYudlNND7hxhDzjcBAVg==", + "version": "7.72.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.72.0.tgz", + "integrity": "sha512-o/MtqI7WJXuswidH0bSgBP40KN2lrnyQEIx5uoyJUJi/QEaboIsqbxU62vaFJpde8SYrbA+rTnP3J3ujF2gUag==", "dependencies": { - "@sentry/types": "7.68.0", + "@sentry/types": "7.72.0", "tslib": "^2.4.1 || ^1.9.3" }, "engines": { @@ -1398,24 +1365,24 @@ } }, "node_modules/@sentry/tracing": { - "version": "7.68.0", - "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.68.0.tgz", - "integrity": "sha512-4kGGHStTG0MkRD92AmKAcyWUzkFjFKVyEW/Hm69NIoLvcPv3QMa5QlkTDAeJNnON+hRIB4KWwDPMhdYNIwjl3A==", + "version": "7.72.0", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.72.0.tgz", + "integrity": "sha512-DOMlyviMLNwWgN4gJw/TrHaAdBcZWvm8xLbgwMwrihRn/m84kmH2Ui1FUYpL30o/mH+mQS+53IHZukrgQjHkZA==", "dependencies": { - "@sentry-internal/tracing": "7.68.0" + "@sentry-internal/tracing": "7.72.0" }, "engines": { "node": ">=8" } }, "node_modules/@sentry/tracing/node_modules/@sentry-internal/tracing": { - "version": "7.68.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.68.0.tgz", - "integrity": "sha512-nNKS/q21+Iqzxs2K7T/l3dZi8Z9s/uxsAazpk2AYhFzx9mFnPj1Xfe3dgbFoygNifE+IrpUuldr6D5HQamTDPQ==", + "version": "7.72.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.72.0.tgz", + "integrity": "sha512-DToryaRSHk9R5RLgN4ktYEXZjQdqncOAWPqyyIurji8lIobXFRfmLtGL1wjoCK6sQNgWsjhSM9kXxwGnva1DNw==", "dependencies": { - "@sentry/core": "7.68.0", - "@sentry/types": "7.68.0", - "@sentry/utils": "7.68.0", + "@sentry/core": "7.72.0", + "@sentry/types": "7.72.0", + "@sentry/utils": "7.72.0", "tslib": "^2.4.1 || ^1.9.3" }, "engines": { @@ -1423,12 +1390,12 @@ } }, "node_modules/@sentry/tracing/node_modules/@sentry/core": { - "version": "7.68.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.68.0.tgz", - "integrity": "sha512-mT3ObBWgvAky/QF3dZy4KBoXbRXbNsD6evn+mYi9UEeIZQ5NpnQYDEp78mapiEjI/TAHZIhTIuaBhj1Jk0qUUA==", + "version": "7.72.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.72.0.tgz", + "integrity": "sha512-G03JdQ5ZsFNRjcNNi+QvCjqOuBvYqU92Gs1T2iK3GE8dSBTu2khThydMpG4xrKZQLIpHOyiIhlFZiuPtZ66W8w==", "dependencies": { - "@sentry/types": "7.68.0", - "@sentry/utils": "7.68.0", + "@sentry/types": "7.72.0", + "@sentry/utils": "7.72.0", "tslib": "^2.4.1 || ^1.9.3" }, "engines": { @@ -1436,19 +1403,19 @@ } }, "node_modules/@sentry/tracing/node_modules/@sentry/types": { - "version": "7.68.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.68.0.tgz", - "integrity": "sha512-5J2pH1Pjx/029zTm3CNY9MaE8Aui81nG7JCtlMp7uEfQ//9Ja4d4Sliz/kV4ARbkIKUZerSgaRAm3xCy5XOXLg==", + "version": "7.72.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.72.0.tgz", + "integrity": "sha512-g6u0mk62yGshx02rfFADIfyR/S9VXcf3RG2qQPuvykrWtOfN/BOTrZypF7I+MiqKwRW76r3Pcu2C/AB+6z9XQA==", "engines": { "node": ">=8" } }, "node_modules/@sentry/tracing/node_modules/@sentry/utils": { - "version": "7.68.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.68.0.tgz", - "integrity": "sha512-NecnQegvKARyeFmBx7mYmbI17mTvjARWs1nfzY5jhPyNc3Zk4M3bQsgIdnJ1t+jo93UYudlNND7hxhDzjcBAVg==", + "version": "7.72.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.72.0.tgz", + "integrity": "sha512-o/MtqI7WJXuswidH0bSgBP40KN2lrnyQEIx5uoyJUJi/QEaboIsqbxU62vaFJpde8SYrbA+rTnP3J3ujF2gUag==", "dependencies": { - "@sentry/types": "7.68.0", + "@sentry/types": "7.72.0", "tslib": "^2.4.1 || ^1.9.3" }, "engines": { @@ -1503,14 +1470,14 @@ } }, "node_modules/@sentry/vue": { - "version": "7.68.0", - "resolved": "https://registry.npmjs.org/@sentry/vue/-/vue-7.68.0.tgz", - "integrity": "sha512-rOQ7bSmiVhtKEUX08bLyKUg/eQ3ibGnrBzqzV/GXVa3pYzNf1Z/A5a0Xa5i6YFNzRr209DZx7P1eqaIL4fT7IQ==", - "dependencies": { - "@sentry/browser": "7.68.0", - "@sentry/core": "7.68.0", - "@sentry/types": "7.68.0", - "@sentry/utils": "7.68.0", + "version": "7.72.0", + "resolved": "https://registry.npmjs.org/@sentry/vue/-/vue-7.72.0.tgz", + "integrity": "sha512-XTJK7C8WH370jBhXzKwPS3TgG5w5tT+qW25IQ+ypyBv4vclcaKeeGMlIehuH2n3hVI9ut/f4Wjj1EwCrQE4ORw==", + "dependencies": { + "@sentry/browser": "7.72.0", + "@sentry/core": "7.72.0", + "@sentry/types": "7.72.0", + "@sentry/utils": "7.72.0", "tslib": "^2.4.1 || ^1.9.3" }, "engines": { @@ -1521,12 +1488,12 @@ } }, "node_modules/@sentry/vue/node_modules/@sentry/core": { - "version": "7.68.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.68.0.tgz", - "integrity": "sha512-mT3ObBWgvAky/QF3dZy4KBoXbRXbNsD6evn+mYi9UEeIZQ5NpnQYDEp78mapiEjI/TAHZIhTIuaBhj1Jk0qUUA==", + "version": "7.72.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.72.0.tgz", + "integrity": "sha512-G03JdQ5ZsFNRjcNNi+QvCjqOuBvYqU92Gs1T2iK3GE8dSBTu2khThydMpG4xrKZQLIpHOyiIhlFZiuPtZ66W8w==", "dependencies": { - "@sentry/types": "7.68.0", - "@sentry/utils": "7.68.0", + "@sentry/types": "7.72.0", + "@sentry/utils": "7.72.0", "tslib": "^2.4.1 || ^1.9.3" }, "engines": { @@ -1534,19 +1501,19 @@ } }, "node_modules/@sentry/vue/node_modules/@sentry/types": { - "version": "7.68.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.68.0.tgz", - "integrity": "sha512-5J2pH1Pjx/029zTm3CNY9MaE8Aui81nG7JCtlMp7uEfQ//9Ja4d4Sliz/kV4ARbkIKUZerSgaRAm3xCy5XOXLg==", + "version": "7.72.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.72.0.tgz", + "integrity": "sha512-g6u0mk62yGshx02rfFADIfyR/S9VXcf3RG2qQPuvykrWtOfN/BOTrZypF7I+MiqKwRW76r3Pcu2C/AB+6z9XQA==", "engines": { "node": ">=8" } }, "node_modules/@sentry/vue/node_modules/@sentry/utils": { - "version": "7.68.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.68.0.tgz", - "integrity": "sha512-NecnQegvKARyeFmBx7mYmbI17mTvjARWs1nfzY5jhPyNc3Zk4M3bQsgIdnJ1t+jo93UYudlNND7hxhDzjcBAVg==", + "version": "7.72.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.72.0.tgz", + "integrity": "sha512-o/MtqI7WJXuswidH0bSgBP40KN2lrnyQEIx5uoyJUJi/QEaboIsqbxU62vaFJpde8SYrbA+rTnP3J3ujF2gUag==", "dependencies": { - "@sentry/types": "7.68.0", + "@sentry/types": "7.72.0", "tslib": "^2.4.1 || ^1.9.3" }, "engines": { @@ -1630,9 +1597,9 @@ "peer": true }, "node_modules/@types/node": { - "version": "16.18.48", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.48.tgz", - "integrity": "sha512-mlaecDKQ7rIZrYD7iiKNdzFb6e/qD5I9U1rAhq+Fd+DWvYVs+G2kv74UFHmSOlg5+i/vF3XxuR522V4u8BqO+Q==", + "version": "18.17.16", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.17.16.tgz", + "integrity": "sha512-e0zgs7qe1XH/X3KEPnldfkD07LH9O1B9T31U8qoO7lqGSjj3/IrBuvqMeJ1aYejXRK3KOphIUDw6pLIplEW17A==", "dev": true }, "node_modules/@types/normalize-package-data": { @@ -1674,9 +1641,9 @@ } }, "node_modules/@types/swagger-ui-dist": { - "version": "3.30.1", - "resolved": "https://registry.npmjs.org/@types/swagger-ui-dist/-/swagger-ui-dist-3.30.1.tgz", - "integrity": "sha512-wWojDensMF33dSrhak4iWSPOsWBbvf+rSJ6VWQ7ohQbGdKAiT2IwUexrDZkMvf3+vVAPVnNFDRDtxADFszbh+Q==", + "version": "3.30.2", + "resolved": "https://registry.npmjs.org/@types/swagger-ui-dist/-/swagger-ui-dist-3.30.2.tgz", + "integrity": "sha512-Wx1swzWAUisf/zTr6eg6H0v/crVw52311aZ1qdM1/qk7pv8kxvYeqzfqtUIl1xAWhIrJu1mHF+D8BfEK4YQuqQ==", "dev": true }, "node_modules/@types/web-bluetooth": { @@ -1694,194 +1661,6 @@ "@types/node": "*" } }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", - "dev": true, - "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@vitejs/plugin-vue": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.3.4.tgz", @@ -1988,14 +1767,14 @@ } }, "node_modules/@vue/eslint-config-typescript": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-11.0.3.tgz", - "integrity": "sha512-dkt6W0PX6H/4Xuxg/BlFj5xHvksjpSlVjtkQCpaYJBIEuKj2hOVU7r+TIe+ysCwRYFz/lGqvklntRkCAibsbPw==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-12.0.0.tgz", + "integrity": "sha512-StxLFet2Qe97T8+7L8pGlhYBBr8Eg05LPuTDVopQV6il+SK6qqom59BA/rcFipUef2jD8P2X44Vd8tMFytfvlg==", "dev": true, "dependencies": { - "@typescript-eslint/eslint-plugin": "^5.59.1", - "@typescript-eslint/parser": "^5.59.1", - "vue-eslint-parser": "^9.1.1" + "@typescript-eslint/eslint-plugin": "^6.7.0", + "@typescript-eslint/parser": "^6.7.0", + "vue-eslint-parser": "^9.3.1" }, "engines": { "node": "^14.17.0 || >=16.0.0" @@ -2011,10 +1790,199 @@ } } }, + "node_modules/@vue/eslint-config-typescript/node_modules/@typescript-eslint/eslint-plugin": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.0.tgz", + "integrity": "sha512-gUqtknHm0TDs1LhY12K2NA3Rmlmp88jK9Tx8vGZMfHeNMLE3GH2e9TRub+y+SOjuYgtOmok+wt1AyDPZqxbNag==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.7.0", + "@typescript-eslint/type-utils": "6.7.0", + "@typescript-eslint/utils": "6.7.0", + "@typescript-eslint/visitor-keys": "6.7.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/eslint-config-typescript/node_modules/@typescript-eslint/parser": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.7.0.tgz", + "integrity": "sha512-jZKYwqNpNm5kzPVP5z1JXAuxjtl2uG+5NpaMocFPTNC2EdYIgbXIPImObOkhbONxtFTTdoZstLZefbaK+wXZng==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "6.7.0", + "@typescript-eslint/types": "6.7.0", + "@typescript-eslint/typescript-estree": "6.7.0", + "@typescript-eslint/visitor-keys": "6.7.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/eslint-config-typescript/node_modules/@typescript-eslint/scope-manager": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.0.tgz", + "integrity": "sha512-lAT1Uau20lQyjoLUQ5FUMSX/dS07qux9rYd5FGzKz/Kf8W8ccuvMyldb8hadHdK/qOI7aikvQWqulnEq2nCEYA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.7.0", + "@typescript-eslint/visitor-keys": "6.7.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@vue/eslint-config-typescript/node_modules/@typescript-eslint/type-utils": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.7.0.tgz", + "integrity": "sha512-f/QabJgDAlpSz3qduCyQT0Fw7hHpmhOzY/Rv6zO3yO+HVIdPfIWhrQoAyG+uZVtWAIS85zAyzgAFfyEr+MgBpg==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "6.7.0", + "@typescript-eslint/utils": "6.7.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/eslint-config-typescript/node_modules/@typescript-eslint/types": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.0.tgz", + "integrity": "sha512-ihPfvOp7pOcN/ysoj0RpBPOx3HQTJTrIN8UZK+WFd3/iDeFHHqeyYxa4hQk4rMhsz9H9mXpR61IzwlBVGXtl9Q==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@vue/eslint-config-typescript/node_modules/@typescript-eslint/typescript-estree": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.0.tgz", + "integrity": "sha512-dPvkXj3n6e9yd/0LfojNU8VMUGHWiLuBZvbM6V6QYD+2qxqInE7J+J/ieY2iGwR9ivf/R/haWGkIj04WVUeiSQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.7.0", + "@typescript-eslint/visitor-keys": "6.7.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/eslint-config-typescript/node_modules/@typescript-eslint/utils": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.7.0.tgz", + "integrity": "sha512-MfCq3cM0vh2slSikQYqK2Gq52gvOhe57vD2RM3V4gQRZYX4rDPnKLu5p6cm89+LJiGlwEXU8hkYxhqqEC/V3qA==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.7.0", + "@typescript-eslint/types": "6.7.0", + "@typescript-eslint/typescript-estree": "6.7.0", + "semver": "^7.5.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/@vue/eslint-config-typescript/node_modules/@typescript-eslint/visitor-keys": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.0.tgz", + "integrity": "sha512-/C1RVgKFDmGMcVGeD8HjKv2bd72oI1KxQDeY8uc66gw9R0OK0eMq48cA+jv9/2Ag6cdrsUGySm1yzYmfz0hxwQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.7.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@vue/language-core": { - "version": "1.8.10", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-1.8.10.tgz", - "integrity": "sha512-db8PtM4ZZr7SYNH30XpKxUYnUBYaTvcuJ4c2whKK04fuAjbtjAIZ2al5GzGEfUlesmvkpgdbiSviRXUxgD9Omw==", + "version": "1.8.15", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-1.8.15.tgz", + "integrity": "sha512-zche5Aw8kkvp3YaghuLiOZyVIpoWHjSQ0EfjxGSsqHOPMamdCoa9x3HtbenpR38UMUoKJ88wiWuiOrV3B/Yq+A==", "dev": true, "dependencies": { "@volar/language-core": "~1.10.0", @@ -2122,13 +2090,13 @@ "dev": true }, "node_modules/@vue/typescript": { - "version": "1.8.10", - "resolved": "https://registry.npmjs.org/@vue/typescript/-/typescript-1.8.10.tgz", - "integrity": "sha512-vPSpTXMk4chYwvyTGjM891cKgnx2r6vtbdANOp2mRU31f4HYGyLrZBlGgiua7SaO2cLjUg8y91OipJe0t8OFhA==", + "version": "1.8.15", + "resolved": "https://registry.npmjs.org/@vue/typescript/-/typescript-1.8.15.tgz", + "integrity": "sha512-qWyanQKXOsK84S8rP7QBrqsvUdQ0nZABZmTjXMpb3ox4Bp5IbkscREA3OPUrkgl64mAxwwCzIWcOc3BPTCPjQw==", "dev": true, "dependencies": { "@volar/typescript": "~1.10.0", - "@vue/language-core": "1.8.10" + "@vue/language-core": "1.8.15" } }, "node_modules/@vueuse/core": { @@ -3282,15 +3250,15 @@ "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" }, "node_modules/cypress": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.1.0.tgz", - "integrity": "sha512-LUKxCYlB973QBFls1Up4FAE9QIYobT+2I8NvvAwMfQS2YwsWbr6yx7y9hmsk97iqbHkKwZW3MRjoK1RToBFVdQ==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.3.0.tgz", + "integrity": "sha512-mpI8qcTwLGiA4zEQvTC/U1xGUezVV4V8HQCOYjlEOrVmU1etVvxOjkCXHGwrlYdZU/EPmUiWfsO3yt1o+Q2bgw==", "dev": true, "hasInstallScript": true, "dependencies": { "@cypress/request": "^3.0.0", "@cypress/xvfb": "^1.2.4", - "@types/node": "^16.18.39", + "@types/node": "^18.17.5", "@types/sinonjs__fake-timers": "8.1.1", "@types/sizzle": "^2.3.2", "arch": "^2.2.0", @@ -3902,15 +3870,15 @@ } }, "node_modules/eslint": { - "version": "8.49.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.49.0.tgz", - "integrity": "sha512-jw03ENfm6VJI0jA9U+8H5zfl5b+FvuU3YYvZRdZHOlU2ggJkxrlkJH4HcDrZpj6YwD8kuYqvQM8LyesoazrSOQ==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz", + "integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.49.0", + "@eslint/js": "8.50.0", "@humanwhocodes/config-array": "^0.11.11", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -4018,32 +3986,14 @@ } }, "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "estraverse": "^5.2.0" }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-scope/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -4051,15 +4001,11 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -5703,8 +5649,7 @@ "version": "0.28.0", "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.28.0.tgz", "integrity": "sha512-9pSL5XB4J+ifHP0e0jmmC98OGC1nL8/JjS+fi6mnTlIf//yt/MfVLtKg7S6nCtj/8KTcWX7nRlY0XywoYY1ISQ==", - "dev": true, - "peer": true + "dev": true }, "node_modules/lazy-ass": { "version": "1.6.0", @@ -6304,12 +6249,6 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true - }, "node_modules/nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", @@ -7700,9 +7639,9 @@ "dev": true }, "node_modules/sass": { - "version": "1.66.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.66.1.tgz", - "integrity": "sha512-50c+zTsZOJVgFfTgwwEzkjA3/QACgdNsKueWPyAR0mRINIvLAStVQBbPg14iuqEQ74NPDbXzJARJ/O4SI1zftA==", + "version": "1.68.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.68.0.tgz", + "integrity": "sha512-Lmj9lM/fef0nQswm1J2HJcEsBUba4wgNx2fea6yJHODREoMFnwRpZydBnX/RjyXw2REIwdkbqE4hrTo4qfDBUA==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -8248,11 +8187,12 @@ } }, "node_modules/stylelint-scss": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-5.1.0.tgz", - "integrity": "sha512-E+KlQFXv1Euha43qw3q+wKBSli557wxbbo6/39DWhRNXlUa9Cz+FYrcgz+PT6ag0l6UisCYjAGCNhoSl4FcwlA==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-5.2.1.tgz", + "integrity": "sha512-ZoTJUM85/qqpQHfEppjW/St//8s6p9Qsg8deWlYlr56F9iUgC9vXeIDQvH4odkRRJLTLFQzYMALSOFCQ3MDkgw==", "dev": true, "dependencies": { + "known-css-properties": "^0.28.0", "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.1", "postcss-selector-parser": "^6.0.13", @@ -8349,9 +8289,9 @@ "peer": true }, "node_modules/swagger-ui-dist": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-5.6.2.tgz", - "integrity": "sha512-2LKVuU2m6RHkemJloKiKJOTpN2RPmbsiad0OfSdtmFHOXJKAgYRZMwJcpT96RX6E9HUB5RkVOFC6vWqVjRgSOg==" + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-5.7.2.tgz", + "integrity": "sha512-mVZc9QVQ6pTCV5crli3+Ng+DoMPwdtMHK8QLk2oX8Mtamp4D/hV+uYdC3lV0JZrDgpNEcjs0RrWTqMwwosuLPQ==" }, "node_modules/swaggerdark": { "version": "1.0.0", @@ -8560,31 +8500,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "node_modules/ts-api-utils": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", + "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, "engines": { - "node": ">= 6" + "node": ">=16.13.0" }, "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + "typescript": ">=4.2.0" } }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "node_modules/tunnel-agent": { "version": "0.6.0", @@ -9047,31 +8978,14 @@ "eslint": ">=6.0.0" } }, - "node_modules/vue-eslint-parser/node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/vue-i18n": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.3.0.tgz", - "integrity": "sha512-+2L+ae/e4+fixhjym3lgzGCGQG8wVGlGrDHzjfdgUudheHvbVHu5i6tn6FF+buH75UFA7T5ZO2ZO7zrh6CzuaA==", + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.4.1.tgz", + "integrity": "sha512-vnQyYE9LBuNOqPpETIcCaGnAyLEqfeIvDcyZ9T+WBCWFTqWw1J8FuF1jfeDwpHBi5JKgAwgXyq1mt8jp/x/GPA==", "dev": true, "dependencies": { - "@intlify/core-base": "9.3.0", - "@intlify/shared": "9.3.0", - "@intlify/vue-devtools": "9.3.0", + "@intlify/core-base": "9.4.1", + "@intlify/shared": "9.4.1", "@vue/devtools-api": "^6.5.0" }, "engines": { @@ -9085,9 +8999,9 @@ } }, "node_modules/vue-router": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.2.4.tgz", - "integrity": "sha512-9PISkmaCO02OzPVOMq2w82ilty6+xJmQrarYZDkjZBfl4RvYAlt4PKnEX21oW4KTtWfa9OuO/b3qk1Od3AEdCQ==", + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.2.5.tgz", + "integrity": "sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw==", "dependencies": { "@vue/devtools-api": "^6.5.0" }, @@ -9109,13 +9023,13 @@ } }, "node_modules/vue-tsc": { - "version": "1.8.10", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.8.10.tgz", - "integrity": "sha512-ptpTFFDoHQgkWJF7i5iERxooiQzOGtG1uKTfmAUuS3qPuSQGq+Ky/S8BFHhnFGwoOxq/PjmGN2QSZEfg1rtzQA==", + "version": "1.8.15", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.8.15.tgz", + "integrity": "sha512-4DoB3LUj7IToLmggoCxRiFG+QU5lem0nv03m1ocqugXA9rSVoTOEoYYaP8vu8b99Eh+/cCVdYOeIAQ+RsgUYUw==", "dev": true, "dependencies": { - "@vue/language-core": "1.8.10", - "@vue/typescript": "1.8.10", + "@vue/language-core": "1.8.15", + "@vue/typescript": "1.8.15", "semver": "^7.3.8" }, "bin": { diff --git a/webclient/package.json b/webclient/package.json index d20942d64..decc4a203 100644 --- a/webclient/package.json +++ b/webclient/package.json @@ -15,41 +15,41 @@ "format": "prettier --write ." }, "dependencies": { - "@sentry/tracing": "7.68.0", - "@sentry/vue": "7.68.0", + "@sentry/tracing": "7.72.0", + "@sentry/vue": "7.72.0", "@vueuse/core": "10.4.1", "maplibre-gl": "3.3.1", "pinia": "2.1.6", "spectre.css": "github:Valexr/spectre#dfe3bc2c59d23cd4bfd43c690aae3655576ff708", - "swagger-ui-dist": "5.6.2", + "swagger-ui-dist": "5.7.2", "swaggerdark": "github:octycs/SwaggerDark#f02d394c8ff698cdd93e09c2188b058d2d686ca3", "vue": "3.3.4", - "vue-router": "4.2.4" + "vue-router": "4.2.5" }, "devDependencies": { - "@intlify/unplugin-vue-i18n": "1.0.1", - "@rushstack/eslint-patch": "1.3.3", + "@intlify/unplugin-vue-i18n": "1.2.0", + "@rushstack/eslint-patch": "1.5.0", "@sentry/vite-plugin": "2.7.1", - "@types/swagger-ui-dist": "3.30.1", + "@types/swagger-ui-dist": "3.30.2", "@vitejs/plugin-vue": "4.3.4", "@vue/eslint-config-prettier": "8.0.0", - "@vue/eslint-config-typescript": "11.0.3", + "@vue/eslint-config-typescript": "12.0.0", "@vue/tsconfig": "0.4.0", "@yankeeinlondon/link-builder": "1.2.1", - "cypress": "13.1.0", - "eslint": "8.49.0", + "cypress": "13.3.0", + "eslint": "8.50.0", "eslint-plugin-vue": "9.17.0", "isomorphic-fetch": "3.0.0", "npm-run-all": "4.1.5", "prettier": "3.0.3", - "sass": "1.66.1", - "stylelint-scss": "5.1.0", + "sass": "1.68.0", + "stylelint-scss": "5.2.1", "typescript": "5.2.2", "vite": "4.4.9", "vite-plugin-md": "0.21.5", "vite-plugin-rewrite-all": "1.0.1", - "vue-i18n": "9.3.0", - "vue-tsc": "1.8.10" + "vue-i18n": "9.4.1", + "vue-tsc": "1.8.15" }, "type": "module" }