From c8dfbc8e2d3fd50958b124bdc4e1ad6b0af8f7ca Mon Sep 17 00:00:00 2001 From: Manuel <30572287+manuel-rw@users.noreply.github.com> Date: Sat, 14 Sep 2024 10:01:22 +0200 Subject: [PATCH 01/33] fix: workflow inputs and docker push (#1123) --- .github/workflows/deployment-docker-image.yml | 33 +++++++++++++++---- 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/.github/workflows/deployment-docker-image.yml b/.github/workflows/deployment-docker-image.yml index 3611ae31e..1a8d69642 100644 --- a/.github/workflows/deployment-docker-image.yml +++ b/.github/workflows/deployment-docker-image.yml @@ -38,7 +38,7 @@ jobs: node-version: [20] steps: - name: Discord notification - if: ${{ github.events.inputs.send-notifications }} + if: ${{ github.events.inputs.send-notifications || true }} env: DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} uses: Ilshidur/action-discord@master @@ -52,7 +52,7 @@ jobs: token: ${{ github.token }} branch: dev - name: Discord notification - if: ${{ github.events.inputs.send-notifications }} + if: ${{ github.events.inputs.send-notifications || true }} env: DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} uses: Ilshidur/action-discord@master @@ -67,7 +67,7 @@ jobs: node-version: ${{ matrix.node-version }} cache: "pnpm" - name: Discord notification - if: ${{ github.events.inputs.send-notifications }} + if: ${{ github.events.inputs.send-notifications || true }} env: DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} uses: Ilshidur/action-discord@master @@ -97,19 +97,40 @@ jobs: - name: Build and push id: buildPushAction uses: docker/build-push-action@v6 + if: ${{ github.events.inputs.push-image == 'true' || github.events.inputs.push-image == null }} with: platforms: linux/amd64,linux/arm64 context: . - push: ${{ github.events.inputs.push-image && 'true' || 'false' }} + push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} network: host env: SKIP_ENV_VALIDATION: true + - name: Build + id: buildPushDryAction + uses: docker/build-push-action@v6 + if: ${{ github.events.inputs.push-image == 'false' }} + with: + platforms: linux/amd64,linux/arm64 + context: . + push: false + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + network: host + env: + SKIP_ENV_VALIDATION: true + - name: Discord notification + if: ${{ github.events.inputs.send-notifications || true && (github.events.inputs.push-image == 'true' || github.events.inputs.push-image == null) }} + env: + DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} + uses: Ilshidur/action-discord@master + with: + args: "Deployment of image has completed. Image ID is '${{ steps.buildPushAction.outputs.imageid }}'." - name: Discord notification - if: ${{ github.events.inputs.send-notifications }} + if: ${{ github.events.inputs.send-notifications || true && !(github.events.inputs.push-image == 'true' || github.events.inputs.push-image == null) }} env: DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} uses: Ilshidur/action-discord@master with: - args: "Deployment of image has completed. Image ID is '${{ steps.buildPushAction.outputs.imageid }}'. This was a dry run." + args: "Deployment of image has completed. Image ID is '${{ steps.buildPushDryAction.outputs.imageid }}'. This was a dry run." From 16a5b43695f5e8c8d3ba5ac9d1bfe2dec83f3bf1 Mon Sep 17 00:00:00 2001 From: Manuel <30572287+manuel-rw@users.noreply.github.com> Date: Sat, 14 Sep 2024 11:08:09 +0200 Subject: [PATCH 02/33] fix: node cache cleanup error (#1124) --- .github/workflows/deployment-docker-image.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/deployment-docker-image.yml b/.github/workflows/deployment-docker-image.yml index 1a8d69642..a3bfd26df 100644 --- a/.github/workflows/deployment-docker-image.yml +++ b/.github/workflows/deployment-docker-image.yml @@ -43,7 +43,7 @@ jobs: DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} uses: Ilshidur/action-discord@master with: - args: "Deployment of an image has been triggered: [run ${{ github.run_number }}](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})" + args: "Deployment of an image has been triggered: [run ${{ github.run_number }}](<${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}>)" - uses: actions/checkout@v4 - name: Get Next Version id: semver @@ -65,7 +65,6 @@ jobs: uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} - cache: "pnpm" - name: Discord notification if: ${{ github.events.inputs.send-notifications || true }} env: From 7059a3d88f73ddceb70d037bb0f362fe50bda225 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Sat, 14 Sep 2024 09:26:15 +0000 Subject: [PATCH 03/33] fix(deps): update dependency tldts to ^6.1.45 (#1121) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- packages/common/package.json | 2 +- pnpm-lock.yaml | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/common/package.json b/packages/common/package.json index 57eefabcd..379766bf0 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -28,7 +28,7 @@ "dayjs": "^1.11.13", "next": "^14.2.11", "react": "^18.3.1", - "tldts": "^6.1.44" + "tldts": "^6.1.45" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4ab214132..56bc79bc7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -663,8 +663,8 @@ importers: specifier: ^18.3.1 version: 18.3.1 tldts: - specifier: ^6.1.44 - version: 6.1.44 + specifier: ^6.1.45 + version: 6.1.45 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -6983,11 +6983,11 @@ packages: title-case@2.1.1: resolution: {integrity: sha512-EkJoZ2O3zdCz3zJsYCsxyq2OC5hrxR9mfdd5I+w8h/tmFfeOxJ+vvkxsKxdmN0WtS9zLdHEgfgVOiMVgv+Po4Q==} - tldts-core@6.1.44: - resolution: {integrity: sha512-DMOTcn8pGmuY65zDPH+M1xAOVtBj7Phrah0HxuspKEu33hOArCDmk3R4UEVymtuN+HveeUlVgX0+RNf4mFkoAw==} + tldts-core@6.1.45: + resolution: {integrity: sha512-5HhO4lUBhKL3kIKkDv5+DM6XfSlEKUT0hJK+w/nSY6JLNPhWYEII24Pp3FpVGtTfSB6IvDpIptIOgcrw/jhb6Q==} - tldts@6.1.44: - resolution: {integrity: sha512-Id5Kq3vy4fAHgrMasofrYZ4ghMa9rX64BfstBFgnGN+CAPdXYeZ0xWA2BXk3F+VgS+/jJ9PdYEQrP8LEZvGrCw==} + tldts@6.1.45: + resolution: {integrity: sha512-7wj/uWW1vk+wp9WgLwUmah2DeWdHuF9oLx83IwJH4ZbhRhqKd1h9sL4vkaRMZHLVmlQcPvhqQNiRpFNPJAfIOw==} hasBin: true tmp@0.0.33: @@ -13742,11 +13742,11 @@ snapshots: no-case: 2.3.2 upper-case: 1.1.3 - tldts-core@6.1.44: {} + tldts-core@6.1.45: {} - tldts@6.1.44: + tldts@6.1.45: dependencies: - tldts-core: 6.1.44 + tldts-core: 6.1.45 tmp@0.0.33: dependencies: From 6685f4c8060867ec32e28c8ddfa351791feeaa53 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Sun, 15 Sep 2024 13:15:44 +0000 Subject: [PATCH 04/33] fix(deps): update dependency @tabler/icons-react to ^3.17.0 (#1126) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- apps/nextjs/package.json | 2 +- packages/notifications/package.json | 2 +- packages/spotlight/package.json | 2 +- packages/ui/package.json | 2 +- packages/widgets/package.json | 2 +- pnpm-lock.yaml | 46 ++++++++++++++--------------- 6 files changed, 28 insertions(+), 28 deletions(-) diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index 7b96c572f..81c9636a9 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -42,7 +42,7 @@ "@mantine/tiptap": "^7.12.2", "@million/lint": "1.0.0-rc.84", "@t3-oss/env-nextjs": "^0.11.1", - "@tabler/icons-react": "^3.16.0", + "@tabler/icons-react": "^3.17.0", "@tanstack/react-query": "^5.56.2", "@tanstack/react-query-devtools": "^5.56.2", "@tanstack/react-query-next-experimental": "5.56.2", diff --git a/packages/notifications/package.json b/packages/notifications/package.json index 74cb86d91..6843ee867 100644 --- a/packages/notifications/package.json +++ b/packages/notifications/package.json @@ -25,7 +25,7 @@ "dependencies": { "@homarr/ui": "workspace:^0.1.0", "@mantine/notifications": "^7.12.2", - "@tabler/icons-react": "^3.16.0" + "@tabler/icons-react": "^3.17.0" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/spotlight/package.json b/packages/spotlight/package.json index baea3f973..af4cdd14f 100644 --- a/packages/spotlight/package.json +++ b/packages/spotlight/package.json @@ -28,7 +28,7 @@ "@mantine/core": "^7.12.2", "@mantine/hooks": "^7.12.2", "@mantine/spotlight": "^7.12.2", - "@tabler/icons-react": "^3.16.0", + "@tabler/icons-react": "^3.17.0", "jotai": "^2.9.3", "next": "^14.2.11", "react": "^18.3.1", diff --git a/packages/ui/package.json b/packages/ui/package.json index 9e65b6efd..f9bc894d8 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -31,7 +31,7 @@ "@mantine/core": "^7.12.2", "@mantine/dates": "^7.12.2", "@mantine/hooks": "^7.12.2", - "@tabler/icons-react": "^3.16.0", + "@tabler/icons-react": "^3.17.0", "mantine-react-table": "2.0.0-beta.6", "next": "^14.2.11", "react": "^18.3.1" diff --git a/packages/widgets/package.json b/packages/widgets/package.json index 965497781..080be36f5 100644 --- a/packages/widgets/package.json +++ b/packages/widgets/package.json @@ -40,7 +40,7 @@ "@homarr/validation": "workspace:^0.1.0", "@mantine/core": "^7.12.2", "@mantine/hooks": "^7.12.2", - "@tabler/icons-react": "^3.16.0", + "@tabler/icons-react": "^3.17.0", "@tiptap/extension-color": "2.6.6", "@tiptap/extension-highlight": "2.6.6", "@tiptap/extension-image": "2.6.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 56bc79bc7..5b56e8d75 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -137,8 +137,8 @@ importers: specifier: ^0.11.1 version: 0.11.1(typescript@5.6.2)(zod@3.23.8) '@tabler/icons-react': - specifier: ^3.16.0 - version: 3.16.0(react@18.3.1) + specifier: ^3.17.0 + version: 3.17.0(react@18.3.1) '@tanstack/react-query': specifier: ^5.56.2 version: 5.56.2(react@18.3.1) @@ -192,7 +192,7 @@ importers: version: 2.9.3(@types/react@18.3.5)(react@18.3.1) mantine-react-table: specifier: 2.0.0-beta.6 - version: 2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.16.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.17.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next: specifier: ^14.2.11 version: 14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) @@ -1077,8 +1077,8 @@ importers: specifier: ^7.12.2 version: 7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tabler/icons-react': - specifier: ^3.16.0 - version: 3.16.0(react@18.3.1) + specifier: ^3.17.0 + version: 3.17.0(react@18.3.1) devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1256,8 +1256,8 @@ importers: specifier: ^7.12.2 version: 7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tabler/icons-react': - specifier: ^3.16.0 - version: 3.16.0(react@18.3.1) + specifier: ^3.17.0 + version: 3.17.0(react@18.3.1) jotai: specifier: ^2.9.3 version: 2.9.3(@types/react@18.3.5)(react@18.3.1) @@ -1294,7 +1294,7 @@ importers: version: 1.11.13 mantine-react-table: specifier: 2.0.0-beta.6 - version: 2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.16.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.17.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-international: specifier: ^1.2.4 version: 1.2.4 @@ -1339,11 +1339,11 @@ importers: specifier: ^7.12.2 version: 7.12.2(react@18.3.1) '@tabler/icons-react': - specifier: ^3.16.0 - version: 3.16.0(react@18.3.1) + specifier: ^3.17.0 + version: 3.17.0(react@18.3.1) mantine-react-table: specifier: 2.0.0-beta.6 - version: 2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.16.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.17.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next: specifier: ^14.2.11 version: 14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) @@ -1458,8 +1458,8 @@ importers: specifier: ^7.12.2 version: 7.12.2(react@18.3.1) '@tabler/icons-react': - specifier: ^3.16.0 - version: 3.16.0(react@18.3.1) + specifier: ^3.17.0 + version: 3.17.0(react@18.3.1) '@tiptap/extension-color': specifier: 2.6.6 version: 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/extension-text-style@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))) @@ -1513,7 +1513,7 @@ importers: version: 1.11.13 mantine-react-table: specifier: 2.0.0-beta.6 - version: 2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.16.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.17.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next: specifier: ^14.2.11 version: 14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) @@ -2763,13 +2763,13 @@ packages: typescript: optional: true - '@tabler/icons-react@3.16.0': - resolution: {integrity: sha512-u2ABvvw71+VZMmkQ9PXsBQb+xoox8YSV8+96Xbg5jocE+gqIrAJD/3dJxWN9YhEP3TBhbcFQdkY4svvhhE+FBw==} + '@tabler/icons-react@3.17.0': + resolution: {integrity: sha512-Ndm9Htv7KpIU1PYYrzs5EMhyA3aZGcgaxUp9Q1XOxcRZ+I0X+Ub2WS5f4bkRyDdL1s0++k2T9XRgmg2pG113sw==} peerDependencies: react: '>= 16' - '@tabler/icons@3.16.0': - resolution: {integrity: sha512-GU7MSx4uQEr55BmyON6hD/QYTl6k1v0YlRhM91gBWDoKAbyCt6QIYw7rpJ/ecdh5zrHaTOJKPenZ4+luoutwFA==} + '@tabler/icons@3.17.0': + resolution: {integrity: sha512-sCSfAQ0w93KSnSL7tS08n73CdIKpuHP8foeLMWgDKiZaCs8ZE//N3ytazCk651ZtruTtByI3b+ZDj7nRf+hHvA==} '@tanstack/match-sorter-utils@8.15.1': resolution: {integrity: sha512-PnVV3d2poenUM31ZbZi/yXkBu3J7kd5k2u51CGwwNojag451AjTH9N6n41yjXz2fpLeewleyLBmNS6+HcGDlXw==} @@ -8931,12 +8931,12 @@ snapshots: optionalDependencies: typescript: 5.6.2 - '@tabler/icons-react@3.16.0(react@18.3.1)': + '@tabler/icons-react@3.17.0(react@18.3.1)': dependencies: - '@tabler/icons': 3.16.0 + '@tabler/icons': 3.17.0 react: 18.3.1 - '@tabler/icons@3.16.0': {} + '@tabler/icons@3.17.0': {} '@tanstack/match-sorter-utils@8.15.1': dependencies: @@ -12070,12 +12070,12 @@ snapshots: make-error@1.3.6: {} - mantine-react-table@2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.16.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + mantine-react-table@2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.17.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@mantine/core': 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mantine/dates': 7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mantine/hooks': 7.12.2(react@18.3.1) - '@tabler/icons-react': 3.16.0(react@18.3.1) + '@tabler/icons-react': 3.17.0(react@18.3.1) '@tanstack/match-sorter-utils': 8.15.1 '@tanstack/react-table': 8.19.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tanstack/react-virtual': 3.8.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) From aca5c279b5360fdacd3f5dc77fd58ce41c343e5f Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Sun, 15 Sep 2024 18:34:25 +0000 Subject: [PATCH 05/33] fix(deps): update dependency tldts to ^6.1.46 (#1128) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- packages/common/package.json | 2 +- pnpm-lock.yaml | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/common/package.json b/packages/common/package.json index 379766bf0..63b5b254e 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -28,7 +28,7 @@ "dayjs": "^1.11.13", "next": "^14.2.11", "react": "^18.3.1", - "tldts": "^6.1.45" + "tldts": "^6.1.46" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5b56e8d75..5e0d42a94 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -663,8 +663,8 @@ importers: specifier: ^18.3.1 version: 18.3.1 tldts: - specifier: ^6.1.45 - version: 6.1.45 + specifier: ^6.1.46 + version: 6.1.46 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -6983,11 +6983,11 @@ packages: title-case@2.1.1: resolution: {integrity: sha512-EkJoZ2O3zdCz3zJsYCsxyq2OC5hrxR9mfdd5I+w8h/tmFfeOxJ+vvkxsKxdmN0WtS9zLdHEgfgVOiMVgv+Po4Q==} - tldts-core@6.1.45: - resolution: {integrity: sha512-5HhO4lUBhKL3kIKkDv5+DM6XfSlEKUT0hJK+w/nSY6JLNPhWYEII24Pp3FpVGtTfSB6IvDpIptIOgcrw/jhb6Q==} + tldts-core@6.1.46: + resolution: {integrity: sha512-zA3ai/j4aFcmbqTvTONkSBuWs0Q4X4tJxa0gV9sp6kDbq5dAhQDSg0WUkReEm0fBAKAGNj+wPKCCsR8MYOYmwA==} - tldts@6.1.45: - resolution: {integrity: sha512-7wj/uWW1vk+wp9WgLwUmah2DeWdHuF9oLx83IwJH4ZbhRhqKd1h9sL4vkaRMZHLVmlQcPvhqQNiRpFNPJAfIOw==} + tldts@6.1.46: + resolution: {integrity: sha512-fw81lXV2CijkNrZAZvee7wegs+EOlTyIuVl/z4q6OUzZHQ1jGL2xQzKXq9geYf/1tzo9LZQLrkcko2m8HLh+rg==} hasBin: true tmp@0.0.33: @@ -13742,11 +13742,11 @@ snapshots: no-case: 2.3.2 upper-case: 1.1.3 - tldts-core@6.1.45: {} + tldts-core@6.1.46: {} - tldts@6.1.45: + tldts@6.1.46: dependencies: - tldts-core: 6.1.45 + tldts-core: 6.1.46 tmp@0.0.33: dependencies: From 414fb32c32d1c549b1934b775f138cc8f5b78f4b Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 09:33:11 +0000 Subject: [PATCH 06/33] chore(deps): update dependency @types/react to ^18.3.6 (#1133) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- apps/nextjs/package.json | 2 +- pnpm-lock.yaml | 142 +++++++++++++++++++-------------------- 2 files changed, 72 insertions(+), 72 deletions(-) diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index 81c9636a9..7de37921d 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -80,7 +80,7 @@ "@types/chroma-js": "2.4.4", "@types/node": "^20.16.5", "@types/prismjs": "^1.26.4", - "@types/react": "^18.3.5", + "@types/react": "^18.3.6", "@types/react-dom": "^18.3.0", "@types/swagger-ui-react": "^4.18.3", "concurrently": "^9.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5e0d42a94..b5de292ec 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -120,16 +120,16 @@ importers: version: 7.12.2(chroma-js@3.1.1) '@mantine/core': specifier: ^7.12.2 - version: 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mantine/hooks': specifier: ^7.12.2 version: 7.12.2(react@18.3.1) '@mantine/modals': specifier: ^7.12.2 - version: 7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mantine/tiptap': specifier: ^7.12.2 - version: 7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tiptap/extension-link@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6))(@tiptap/react@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tiptap/extension-link@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6))(@tiptap/react@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@million/lint': specifier: 1.0.0-rc.84 version: 1.0.0-rc.84(encoding@0.1.13)(rollup@4.17.2) @@ -189,10 +189,10 @@ importers: version: 11.0.0 jotai: specifier: ^2.9.3 - version: 2.9.3(@types/react@18.3.5)(react@18.3.1) + version: 2.9.3(@types/react@18.3.6)(react@18.3.1) mantine-react-table: specifier: 2.0.0-beta.6 - version: 2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.17.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.17.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next: specifier: ^14.2.11 version: 14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) @@ -222,7 +222,7 @@ importers: version: 2.2.1 swagger-ui-react: specifier: ^5.17.14 - version: 5.17.14(@types/react@18.3.5)(ramda@0.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 5.17.14(@types/react@18.3.6)(ramda@0.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) use-deep-compare-effect: specifier: ^1.8.1 version: 1.8.1(react@18.3.1) @@ -246,8 +246,8 @@ importers: specifier: ^1.26.4 version: 1.26.4 '@types/react': - specifier: ^18.3.5 - version: 18.3.5 + specifier: ^18.3.6 + version: 18.3.6 '@types/react-dom': specifier: ^18.3.0 version: 18.3.0 @@ -849,7 +849,7 @@ importers: version: 0.24.2 drizzle-orm: specifier: ^0.33.0 - version: 0.33.0(@prisma/client@5.16.1)(@types/better-sqlite3@7.6.11)(@types/react@18.3.5)(better-sqlite3@11.3.0)(mysql2@3.11.2)(react@18.3.1) + version: 0.33.0(@prisma/client@5.16.1)(@types/better-sqlite3@7.6.11)(@types/react@18.3.6)(better-sqlite3@11.3.0)(mysql2@3.11.2)(react@18.3.1) mysql2: specifier: 3.11.2 version: 3.11.2 @@ -1044,7 +1044,7 @@ importers: version: link:../ui '@mantine/core': specifier: ^7.12.2 - version: 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mantine/hooks': specifier: ^7.12.2 version: 7.12.2(react@18.3.1) @@ -1075,7 +1075,7 @@ importers: version: link:../ui '@mantine/notifications': specifier: ^7.12.2 - version: 7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tabler/icons-react': specifier: ^3.17.0 version: 3.17.0(react@18.3.1) @@ -1248,19 +1248,19 @@ importers: version: link:../ui '@mantine/core': specifier: ^7.12.2 - version: 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mantine/hooks': specifier: ^7.12.2 version: 7.12.2(react@18.3.1) '@mantine/spotlight': specifier: ^7.12.2 - version: 7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tabler/icons-react': specifier: ^3.17.0 version: 3.17.0(react@18.3.1) jotai: specifier: ^2.9.3 - version: 2.9.3(@types/react@18.3.5)(react@18.3.1) + version: 2.9.3(@types/react@18.3.6)(react@18.3.1) next: specifier: ^14.2.11 version: 14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) @@ -1294,7 +1294,7 @@ importers: version: 1.11.13 mantine-react-table: specifier: 2.0.0-beta.6 - version: 2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.17.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.17.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-international: specifier: ^1.2.4 version: 1.2.4 @@ -1331,10 +1331,10 @@ importers: version: link:../validation '@mantine/core': specifier: ^7.12.2 - version: 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mantine/dates': specifier: ^7.12.2 - version: 7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mantine/hooks': specifier: ^7.12.2 version: 7.12.2(react@18.3.1) @@ -1343,7 +1343,7 @@ importers: version: 3.17.0(react@18.3.1) mantine-react-table: specifier: 2.0.0-beta.6 - version: 2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.17.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.17.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next: specifier: ^14.2.11 version: 14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) @@ -1453,7 +1453,7 @@ importers: version: link:../validation '@mantine/core': specifier: ^7.12.2 - version: 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mantine/hooks': specifier: ^7.12.2 version: 7.12.2(react@18.3.1) @@ -1513,7 +1513,7 @@ importers: version: 1.11.13 mantine-react-table: specifier: 2.0.0-beta.6 - version: 2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.17.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.17.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next: specifier: ^14.2.11 version: 14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) @@ -3190,8 +3190,8 @@ packages: '@types/react-dom@18.3.0': resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} - '@types/react@18.3.5': - resolution: {integrity: sha512-WeqMfGJLGuLCqHGYRGHxnKrXcTitc6L/nBUWfWPcTarG3t9PsquqUMuVeXZeca+mglY4Vo5GZjCi0A3Or2lnxA==} + '@types/react@18.3.6': + resolution: {integrity: sha512-CnGaRYNu2iZlkGXGrOYtdg5mLK8neySj0woZ4e2wF/eli2E6Sazmq5X+Nrj6OBrrFVQfJWTUFeqAzoRhWQXYvg==} '@types/send@0.17.4': resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} @@ -8306,7 +8306,7 @@ snapshots: dependencies: chroma-js: 3.1.1 - '@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@floating-ui/react': 0.26.15(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mantine/hooks': 7.12.2(react@18.3.1) @@ -8314,15 +8314,15 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-number-format: 5.3.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react-remove-scroll: 2.5.10(@types/react@18.3.5)(react@18.3.1) - react-textarea-autosize: 8.5.3(@types/react@18.3.5)(react@18.3.1) + react-remove-scroll: 2.5.10(@types/react@18.3.6)(react@18.3.1) + react-textarea-autosize: 8.5.3(@types/react@18.3.6)(react@18.3.1) type-fest: 4.18.2 transitivePeerDependencies: - '@types/react' - '@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@mantine/core': 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mantine/core': 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mantine/hooks': 7.12.2(react@18.3.1) clsx: 2.1.1 dayjs: 1.11.13 @@ -8339,25 +8339,25 @@ snapshots: dependencies: react: 18.3.1 - '@mantine/modals@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mantine/modals@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@mantine/core': 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mantine/core': 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mantine/hooks': 7.12.2(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@mantine/notifications@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mantine/notifications@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@mantine/core': 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mantine/core': 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mantine/hooks': 7.12.2(react@18.3.1) '@mantine/store': 7.12.2(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@mantine/spotlight@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mantine/spotlight@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@mantine/core': 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mantine/core': 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mantine/hooks': 7.12.2(react@18.3.1) '@mantine/store': 7.12.2(react@18.3.1) react: 18.3.1 @@ -8367,9 +8367,9 @@ snapshots: dependencies: react: 18.3.1 - '@mantine/tiptap@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tiptap/extension-link@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6))(@tiptap/react@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mantine/tiptap@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tiptap/extension-link@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6))(@tiptap/react@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@mantine/core': 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mantine/core': 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mantine/hooks': 7.12.2(react@18.3.1) '@tiptap/extension-link': 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6) '@tiptap/react': 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -9400,9 +9400,9 @@ snapshots: '@types/react-dom@18.3.0': dependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.6 - '@types/react@18.3.5': + '@types/react@18.3.6': dependencies: '@types/prop-types': 15.7.12 csstype: 3.1.3 @@ -9433,7 +9433,7 @@ snapshots: '@types/swagger-ui-react@4.18.3': dependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.6 '@types/through@0.0.33': dependencies: @@ -10675,11 +10675,11 @@ snapshots: transitivePeerDependencies: - supports-color - drizzle-orm@0.33.0(@prisma/client@5.16.1)(@types/better-sqlite3@7.6.11)(@types/react@18.3.5)(better-sqlite3@11.3.0)(mysql2@3.11.2)(react@18.3.1): + drizzle-orm@0.33.0(@prisma/client@5.16.1)(@types/better-sqlite3@7.6.11)(@types/react@18.3.6)(better-sqlite3@11.3.0)(mysql2@3.11.2)(react@18.3.1): optionalDependencies: '@prisma/client': 5.16.1 '@types/better-sqlite3': 7.6.11 - '@types/react': 18.3.5 + '@types/react': 18.3.6 better-sqlite3: 11.3.0 mysql2: 3.11.2 react: 18.3.1 @@ -11851,9 +11851,9 @@ snapshots: jose@5.3.0: {} - jotai@2.9.3(@types/react@18.3.5)(react@18.3.1): + jotai@2.9.3(@types/react@18.3.6)(react@18.3.1): optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.6 react: 18.3.1 js-file-download@0.4.12: {} @@ -12070,10 +12070,10 @@ snapshots: make-error@1.3.6: {} - mantine-react-table@2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.17.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + mantine-react-table@2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.17.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@mantine/core': 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@mantine/dates': 7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mantine/core': 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mantine/dates': 7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mantine/hooks': 7.12.2(react@18.3.1) '@tabler/icons-react': 3.17.0(react@18.3.1) '@tanstack/match-sorter-utils': 8.15.1 @@ -12913,49 +12913,49 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-redux@9.1.2(@types/react@18.3.5)(react@18.3.1)(redux@5.0.1): + react-redux@9.1.2(@types/react@18.3.6)(react@18.3.1)(redux@5.0.1): dependencies: '@types/use-sync-external-store': 0.0.3 react: 18.3.1 use-sync-external-store: 1.2.2(react@18.3.1) optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.6 redux: 5.0.1 react-refresh@0.14.2: {} - react-remove-scroll-bar@2.3.6(@types/react@18.3.5)(react@18.3.1): + react-remove-scroll-bar@2.3.6(@types/react@18.3.6)(react@18.3.1): dependencies: react: 18.3.1 - react-style-singleton: 2.2.1(@types/react@18.3.5)(react@18.3.1) + react-style-singleton: 2.2.1(@types/react@18.3.6)(react@18.3.1) tslib: 2.6.2 optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.6 - react-remove-scroll@2.5.10(@types/react@18.3.5)(react@18.3.1): + react-remove-scroll@2.5.10(@types/react@18.3.6)(react@18.3.1): dependencies: react: 18.3.1 - react-remove-scroll-bar: 2.3.6(@types/react@18.3.5)(react@18.3.1) - react-style-singleton: 2.2.1(@types/react@18.3.5)(react@18.3.1) + react-remove-scroll-bar: 2.3.6(@types/react@18.3.6)(react@18.3.1) + react-style-singleton: 2.2.1(@types/react@18.3.6)(react@18.3.1) tslib: 2.6.2 - use-callback-ref: 1.3.2(@types/react@18.3.5)(react@18.3.1) - use-sidecar: 1.1.2(@types/react@18.3.5)(react@18.3.1) + use-callback-ref: 1.3.2(@types/react@18.3.6)(react@18.3.1) + use-sidecar: 1.1.2(@types/react@18.3.6)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.6 react-simple-code-editor@0.14.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-style-singleton@2.2.1(@types/react@18.3.5)(react@18.3.1): + react-style-singleton@2.2.1(@types/react@18.3.6)(react@18.3.1): dependencies: get-nonce: 1.0.1 invariant: 2.2.4 react: 18.3.1 tslib: 2.6.2 optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.6 react-syntax-highlighter@15.5.0(react@18.3.1): dependencies: @@ -12966,12 +12966,12 @@ snapshots: react: 18.3.1 refractor: 3.6.0 - react-textarea-autosize@8.5.3(@types/react@18.3.5)(react@18.3.1): + react-textarea-autosize@8.5.3(@types/react@18.3.6)(react@18.3.1): dependencies: '@babel/runtime': 7.24.5 react: 18.3.1 use-composed-ref: 1.3.0(react@18.3.1) - use-latest: 1.2.1(@types/react@18.3.5)(react@18.3.1) + use-latest: 1.2.1(@types/react@18.3.6)(react@18.3.1) transitivePeerDependencies: - '@types/react' @@ -13561,7 +13561,7 @@ snapshots: - debug - ramda - swagger-ui-react@5.17.14(@types/react@18.3.5)(ramda@0.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + swagger-ui-react@5.17.14(@types/react@18.3.6)(ramda@0.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@babel/runtime-corejs3': 7.24.5 '@braintree/sanitize-url': 7.0.2 @@ -13585,7 +13585,7 @@ snapshots: react-immutable-proptypes: 2.2.0(immutable@3.8.2) react-immutable-pure-component: 2.2.2(immutable@3.8.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-inspector: 6.0.2(react@18.3.1) - react-redux: 9.1.2(@types/react@18.3.5)(react@18.3.1)(redux@5.0.1) + react-redux: 9.1.2(@types/react@18.3.6)(react@18.3.1)(redux@5.0.1) react-syntax-highlighter: 15.5.0(react@18.3.1) redux: 5.0.1 redux-immutable: 4.0.0(immutable@3.8.2) @@ -14066,12 +14066,12 @@ snapshots: url-toolkit@2.2.5: {} - use-callback-ref@1.3.2(@types/react@18.3.5)(react@18.3.1): + use-callback-ref@1.3.2(@types/react@18.3.6)(react@18.3.1): dependencies: react: 18.3.1 tslib: 2.6.2 optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.6 use-composed-ref@1.3.0(react@18.3.1): dependencies: @@ -14083,26 +14083,26 @@ snapshots: dequal: 2.0.3 react: 18.3.1 - use-isomorphic-layout-effect@1.1.2(@types/react@18.3.5)(react@18.3.1): + use-isomorphic-layout-effect@1.1.2(@types/react@18.3.6)(react@18.3.1): dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.6 - use-latest@1.2.1(@types/react@18.3.5)(react@18.3.1): + use-latest@1.2.1(@types/react@18.3.6)(react@18.3.1): dependencies: react: 18.3.1 - use-isomorphic-layout-effect: 1.1.2(@types/react@18.3.5)(react@18.3.1) + use-isomorphic-layout-effect: 1.1.2(@types/react@18.3.6)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.6 - use-sidecar@1.1.2(@types/react@18.3.5)(react@18.3.1): + use-sidecar@1.1.2(@types/react@18.3.6)(react@18.3.1): dependencies: detect-node-es: 1.1.0 react: 18.3.1 tslib: 2.6.2 optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.6 use-sync-external-store@1.2.2(react@18.3.1): dependencies: From 929054d5bddd9863671227c2bc71e07ff4b197be Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 09:48:33 +0000 Subject: [PATCH 07/33] fix(deps): update dependency @auth/drizzle-adapter to ^1.5.0 (#1130) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- packages/auth/package.json | 2 +- pnpm-lock.yaml | 36 ++++++++++++++++++++++++++++++------ 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/packages/auth/package.json b/packages/auth/package.json index eaca572c6..ef7179b1e 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -24,7 +24,7 @@ "prettier": "@homarr/prettier-config", "dependencies": { "@auth/core": "^0.34.2", - "@auth/drizzle-adapter": "^1.4.2", + "@auth/drizzle-adapter": "^1.5.0", "@homarr/common": "workspace:^0.1.0", "@homarr/db": "workspace:^0.1.0", "@homarr/definitions": "workspace:^0.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b5de292ec..3214979ae 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -550,8 +550,8 @@ importers: specifier: ^0.34.2 version: 0.34.2 '@auth/drizzle-adapter': - specifier: ^1.4.2 - version: 1.4.2 + specifier: ^1.5.0 + version: 1.5.0 '@homarr/common': specifier: workspace:^0.1.0 version: link:../common @@ -1629,8 +1629,22 @@ packages: nodemailer: optional: true - '@auth/drizzle-adapter@1.4.2': - resolution: {integrity: sha512-rqukaT9CeWB8VOt6g2bQ6uYMHVOQIYCBkzddZXWshi8aqwLABatpRWAc+pehpcMDn0RSW/uvKMs7tkON+Bho9Q==} + '@auth/core@0.35.0': + resolution: {integrity: sha512-XvMALiYn5ZQd1hVeG1t+jCU89jRrc7ortl/05wkBrPHnRWZScxAK5jKuzBz+AOBQXewDjYcMpzeF5tTqg6rDhQ==} + peerDependencies: + '@simplewebauthn/browser': ^9.0.1 + '@simplewebauthn/server': ^9.0.2 + nodemailer: ^6.8.0 + peerDependenciesMeta: + '@simplewebauthn/browser': + optional: true + '@simplewebauthn/server': + optional: true + nodemailer: + optional: true + + '@auth/drizzle-adapter@1.5.0': + resolution: {integrity: sha512-JLeooOEoCulPjoLJa2IBKX8RSgSfkhmyaAeO8Xr37y+fitsEvJNqe0SsaRw3D8nXDasppSaop4uUT3ViXP+OZw==} '@axiomhq/js@1.0.0-rc.3': resolution: {integrity: sha512-Zm10TczcMLounWqC42nMkXQ7XKLqjzLrd5ia022oBKDUZqAFVg2y9d1quQVNV4FlXyg9MKDdfMjpKQRmzEGaog==} @@ -7705,9 +7719,19 @@ snapshots: preact: 10.11.3 preact-render-to-string: 5.2.3(preact@10.11.3) - '@auth/drizzle-adapter@1.4.2': + '@auth/core@0.35.0': dependencies: - '@auth/core': 0.34.2 + '@panva/hkdf': 1.1.1 + '@types/cookie': 0.6.0 + cookie: 0.6.0 + jose: 5.3.0 + oauth4webapi: 2.11.0 + preact: 10.11.3 + preact-render-to-string: 5.2.3(preact@10.11.3) + + '@auth/drizzle-adapter@1.5.0': + dependencies: + '@auth/core': 0.35.0 transitivePeerDependencies: - '@simplewebauthn/browser' - '@simplewebauthn/server' From 9fb6e67ed33264f877ba819240e00d8fc8dbb984 Mon Sep 17 00:00:00 2001 From: SeDemal Date: Mon, 16 Sep 2024 16:34:45 +0200 Subject: [PATCH 08/33] feat: Add Simple-Icons and Selfh.st collections (#1118) * feat: Add Simple-Icons and Selfh.st collections refactor: icon file path parsing * refactor: allowed extensions check --- packages/icons/src/icons-fetcher.ts | 16 +++++++++++++ .../repositories/github.icon-repository.ts | 24 ++++++++++++------- .../icons/src/repositories/icon-repository.ts | 4 ---- .../repositories/jsdelivr.icon-repository.ts | 19 ++++++++------- .../src/types/icon-repository-license.ts | 2 +- 5 files changed, 43 insertions(+), 22 deletions(-) diff --git a/packages/icons/src/icons-fetcher.ts b/packages/icons/src/icons-fetcher.ts index 32ba31af8..ba60296a7 100644 --- a/packages/icons/src/icons-fetcher.ts +++ b/packages/icons/src/icons-fetcher.ts @@ -11,6 +11,22 @@ const repositories = [ new URL("https://api.github.com/repos/walkxcode/dashboard-icons/git/trees/main?recursive=true"), "https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/{0}", ), + new GitHubIconRepository( + "selfh.st", + "selfhst/icons", + "CC0-1.0", + new URL("https://github.com/selfhst/icons"), + new URL("https://api.github.com/repos/selfhst/icons/git/trees/main?recursive=true"), + "https://cdn.jsdelivr.net/gh/selfhst/icons/{0}", + ), + new GitHubIconRepository( + "SimpleIcons", + "simple-icons/simple-icons", + "CC0-1.0", + new URL("https://github.com/simple-icons/simple-icons"), + new URL("https://api.github.com/repos/simple-icons/simple-icons/git/trees/master?recursive=true"), + "https://cdn.simpleicons.org/{1}", + ), new JsdelivrIconRepository( "Papirus", "PapirusDevelopmentTeam/papirus-icon-theme", diff --git a/packages/icons/src/repositories/github.icon-repository.ts b/packages/icons/src/repositories/github.icon-repository.ts index 695ade2a0..eb5e92b90 100644 --- a/packages/icons/src/repositories/github.icon-repository.ts +++ b/packages/icons/src/repositories/github.icon-repository.ts @@ -1,3 +1,5 @@ +import { parse } from "path"; + import { fetchWithTimeout } from "@homarr/common"; import type { IconRepositoryLicense } from "../types/icon-repository-license"; @@ -27,19 +29,23 @@ export class GitHubIconRepository extends IconRepository { return { success: true, icons: listOfFiles.tree - .filter((treeItem) => - this.allowedImageFileTypes.some((allowedExtension) => treeItem.path.includes(allowedExtension)), + .filter(({ path }) => + this.allowedImageFileTypes.some((allowedImageFileType) => parse(path).ext === allowedImageFileType), ) - .map((treeItem) => { - const fileNameWithExtension = this.getFileNameWithoutExtensionFromPath(treeItem.path); + .map(({ path, size: sizeInBytes, sha: checksum }) => { + const file = parse(path); + const fileNameWithExtension = file.base; + const imageUrl = new URL( + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + this.repositoryBlobUrlTemplate!.replace("{0}", path).replace("{1}", file.name), + ); return { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - imageUrl: new URL(this.repositoryBlobUrlTemplate!.replace("{0}", treeItem.path)), - fileNameWithExtension: fileNameWithExtension, + imageUrl, + fileNameWithExtension, local: false, - sizeInBytes: treeItem.size, - checksum: treeItem.sha, + sizeInBytes, + checksum, }; }), slug: this.slug, diff --git a/packages/icons/src/repositories/icon-repository.ts b/packages/icons/src/repositories/icon-repository.ts index 358e48dfa..525ca1422 100644 --- a/packages/icons/src/repositories/icon-repository.ts +++ b/packages/icons/src/repositories/icon-repository.ts @@ -29,8 +29,4 @@ export abstract class IconRepository { } protected abstract getAllIconsInternalAsync(): Promise; - - protected getFileNameWithoutExtensionFromPath(path: string) { - return path.replace(/^.*[\\/]/, ""); - } } diff --git a/packages/icons/src/repositories/jsdelivr.icon-repository.ts b/packages/icons/src/repositories/jsdelivr.icon-repository.ts index 1c153d5b2..c611fcd7e 100644 --- a/packages/icons/src/repositories/jsdelivr.icon-repository.ts +++ b/packages/icons/src/repositories/jsdelivr.icon-repository.ts @@ -1,3 +1,5 @@ +import { parse } from "path"; + import { fetchWithTimeout } from "@homarr/common"; import type { IconRepositoryLicense } from "../types/icon-repository-license"; @@ -23,18 +25,19 @@ export class JsdelivrIconRepository extends IconRepository { return { success: true, icons: listOfFiles.files - .filter((file) => - this.allowedImageFileTypes.some((allowedImageFileType) => file.name.includes(allowedImageFileType)), + .filter(({ name: path }) => + this.allowedImageFileTypes.some((allowedImageFileType) => parse(path).ext === allowedImageFileType), ) - .map((file) => { - const fileNameWithExtension = this.getFileNameWithoutExtensionFromPath(file.name); + .map(({ name: path, size: sizeInBytes, hash: checksum }) => { + const file = parse(path); + const fileNameWithExtension = file.base; return { - imageUrl: new URL(this.repositoryBlobUrlTemplate.replace("{0}", file.name)), - fileNameWithExtension: fileNameWithExtension, + imageUrl: new URL(this.repositoryBlobUrlTemplate.replace("{0}", path).replace("{1}", file.name)), + fileNameWithExtension, local: false, - sizeInBytes: file.size, - checksum: file.hash, + sizeInBytes, + checksum, }; }), slug: this.slug, diff --git a/packages/icons/src/types/icon-repository-license.ts b/packages/icons/src/types/icon-repository-license.ts index a3ebe8728..1a01ca02d 100644 --- a/packages/icons/src/types/icon-repository-license.ts +++ b/packages/icons/src/types/icon-repository-license.ts @@ -1 +1 @@ -export type IconRepositoryLicense = "MIT" | "GPL-3.0" | undefined; +export type IconRepositoryLicense = "MIT" | "GPL-3.0" | "CC0-1.0" | undefined; From cd4619845b83dd7d5bcd039b7ddeaf023eb42a84 Mon Sep 17 00:00:00 2001 From: Meier Lukas Date: Mon, 16 Sep 2024 18:10:58 +0200 Subject: [PATCH 09/33] feat: add nginx proxy (#1073) * feat: add nginx proxy * fix: adjust path for websocket client to connect --- Dockerfile | 10 ++++++- .../app/[locale]/_client-providers/trpc.tsx | 5 +++- nginx.conf | 27 +++++++++++++++++++ scripts/run.sh | 7 +++++ 4 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 nginx.conf diff --git a/Dockerfile b/Dockerfile index a0e2c5949..635a03172 100644 --- a/Dockerfile +++ b/Dockerfile @@ -61,7 +61,8 @@ RUN corepack enable pnpm && pnpm build FROM base AS runner WORKDIR /app -RUN apk add --no-cache redis bash +# gettext is required for envsubst +RUN apk add --no-cache redis nginx bash gettext RUN mkdir /appdata RUN mkdir /appdata/db RUN mkdir /appdata/redis @@ -79,6 +80,11 @@ RUN chmod +x /usr/bin/homarr # Don't run production as root RUN chown -R nextjs:nodejs /appdata +RUN mkdir -p /var/cache/nginx && chown -R nextjs:nodejs /var/cache/nginx && \ + mkdir -p /var/log/nginx && chown -R nextjs:nodejs /var/log/nginx && \ + mkdir -p /var/lib/nginx && chown -R nextjs:nodejs /var/lib/nginx && \ + touch /run/nginx/nginx.pid && chown -R nextjs:nodejs /run/nginx/nginx.pid && \ + mkdir -p /etc/nginx/templates /etc/nginx/ssl/certs && chown -R nextjs:nodejs /etc/nginx USER nextjs COPY --from=installer /app/apps/nextjs/next.config.mjs . @@ -97,6 +103,8 @@ COPY --from=installer --chown=nextjs:nodejs /app/apps/nextjs/.next/static ./apps COPY --from=installer --chown=nextjs:nodejs /app/apps/nextjs/public ./apps/nextjs/public COPY --chown=nextjs:nodejs scripts/run.sh ./run.sh COPY --chown=nextjs:nodejs packages/redis/redis.conf /app/redis.conf +COPY --chown=nextjs:nodejs nginx.conf /etc/nginx/templates/nginx.conf + ENV DB_URL='/appdata/db/db.sqlite' ENV DB_DIALECT='sqlite' diff --git a/apps/nextjs/src/app/[locale]/_client-providers/trpc.tsx b/apps/nextjs/src/app/[locale]/_client-providers/trpc.tsx index 8583ac24f..c08542590 100644 --- a/apps/nextjs/src/app/[locale]/_client-providers/trpc.tsx +++ b/apps/nextjs/src/app/[locale]/_client-providers/trpc.tsx @@ -20,7 +20,10 @@ import type { AppRouter } from "@homarr/api"; import { clientApi } from "@homarr/api/client"; const wsClient = createWSClient({ - url: typeof window === "undefined" ? "ws://localhost:3001" : `ws://${window.location.hostname}:3001`, + url: + typeof window === "undefined" + ? "ws://localhost:3001/websockets" + : `ws://${window.location.hostname}:${window.location.port}/websockets`, }); export function TRPCReactProvider(props: PropsWithChildren) { diff --git a/nginx.conf b/nginx.conf new file mode 100644 index 000000000..25e571394 --- /dev/null +++ b/nginx.conf @@ -0,0 +1,27 @@ +events { + worker_connections 1024; +} + +http { + server { + listen 7575; + + # Route websockets traffic to port 3001 + location /websockets { + proxy_pass http://${HOSTNAME}:3001; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "Upgrade"; + proxy_set_header Host $http_host; + } + + # Route all other traffic to port 3000 + location / { + proxy_pass http://${HOSTNAME}:3000; + proxy_set_header Host $http_host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + } +} \ No newline at end of file diff --git a/scripts/run.sh b/scripts/run.sh index 10ac35a5e..41779881b 100644 --- a/scripts/run.sh +++ b/scripts/run.sh @@ -1,6 +1,13 @@ # Run migrations node ./db/migrations/$DB_DIALECT/migrate.cjs ./db/migrations/$DB_DIALECT +# Start nginx proxy +# 1. Replace the HOSTNAME in the nginx template file +# 2. Create the nginx configuration file from the template +# 3. Start the nginx server +envsubst '${HOSTNAME}' < /etc/nginx/templates/nginx.conf > /etc/nginx/nginx.conf +nginx -g 'daemon off;' & + # Start Redis redis-server /app/redis.conf & From b9206d3628360309361f605b33001d4f5879a87f Mon Sep 17 00:00:00 2001 From: SeDemal Date: Mon, 16 Sep 2024 18:21:27 +0200 Subject: [PATCH 10/33] refactor: Remove typed-rpc dependency and used fetch instead (#1108) * feat: Remove typed-rpc dependency and used fetch instead * fix: tests * fix: typing --- packages/integrations/package.json | 3 +- .../nzbget/nzbget-integration.ts | 51 ++++++++++++------- packages/integrations/test/nzbget.spec.ts | 2 +- packages/widgets/src/downloads/component.tsx | 1 + pnpm-lock.yaml | 8 --- 5 files changed, 35 insertions(+), 30 deletions(-) diff --git a/packages/integrations/package.json b/packages/integrations/package.json index 206b71a33..9df797fc8 100644 --- a/packages/integrations/package.json +++ b/packages/integrations/package.json @@ -33,8 +33,7 @@ "@homarr/log": "workspace:^0.1.0", "@homarr/translation": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", - "@jellyfin/sdk": "^0.10.0", - "typed-rpc": "^5.1.0" + "@jellyfin/sdk": "^0.10.0" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/integrations/src/download-client/nzbget/nzbget-integration.ts b/packages/integrations/src/download-client/nzbget/nzbget-integration.ts index 824a47a9c..5e91f393b 100644 --- a/packages/integrations/src/download-client/nzbget/nzbget-integration.ts +++ b/packages/integrations/src/download-client/nzbget/nzbget-integration.ts @@ -1,5 +1,4 @@ import dayjs from "dayjs"; -import { rpcClient } from "typed-rpc"; import type { DownloadClientJobsAndStatus } from "../../interfaces/downloads/download-client-data"; import { DownloadClientIntegration } from "../../interfaces/downloads/download-client-integration"; @@ -9,16 +8,14 @@ import type { NzbGetClient } from "./nzbget-types"; export class NzbGetIntegration extends DownloadClientIntegration { public async testConnectionAsync(): Promise { - const client = this.getClient(); - await client.version(); + await this.nzbGetApiCallAsync("version"); } public async getClientJobsAndStatusAsync(): Promise { const type = "usenet"; - const nzbGetClient = this.getClient(); - const queue = await nzbGetClient.listgroups(); - const history = await nzbGetClient.history(); - const nzbGetStatus = await nzbGetClient.status(); + const queue = await this.nzbGetApiCallAsync("listgroups"); + const history = await this.nzbGetApiCallAsync("history"); + const nzbGetStatus = await this.nzbGetApiCallAsync("status"); const status: DownloadClientStatus = { paused: nzbGetStatus.DownloadPaused, rates: { down: nzbGetStatus.DownloadRate }, @@ -64,39 +61,55 @@ export class NzbGetIntegration extends DownloadClientIntegration { } public async pauseQueueAsync() { - await this.getClient().pausedownload(); + await this.nzbGetApiCallAsync("pausedownload"); } public async pauseItemAsync({ id }: DownloadClientItem): Promise { - await this.getClient().editqueue("GroupPause", "", [Number(id)]); + await this.nzbGetApiCallAsync("editqueue", "GroupPause", "", [Number(id)]); } public async resumeQueueAsync() { - await this.getClient().resumedownload(); + await this.nzbGetApiCallAsync("resumedownload"); } public async resumeItemAsync({ id }: DownloadClientItem): Promise { - await this.getClient().editqueue("GroupResume", "", [Number(id)]); + await this.nzbGetApiCallAsync("editqueue", "GroupResume", "", [Number(id)]); } public async deleteItemAsync({ id, progress }: DownloadClientItem, fromDisk: boolean): Promise { - const client = this.getClient(); if (fromDisk) { - const filesIds = (await client.listfiles(0, 0, Number(id))).map((value) => value.ID); - await this.getClient().editqueue("FileDelete", "", filesIds); + const filesIds = (await this.nzbGetApiCallAsync("listfiles", 0, 0, Number(id))).map((file) => file.ID); + await this.nzbGetApiCallAsync("editqueue", "FileDelete", "", filesIds); } - if (progress !== 1) { - await client.editqueue("GroupFinalDelete", "", [Number(id)]); + if (progress === 1) { + await this.nzbGetApiCallAsync("editqueue", "GroupFinalDelete", "", [Number(id)]); } else { - await client.editqueue("HistoryFinalDelete", "", [Number(id)]); + await this.nzbGetApiCallAsync("editqueue", "HistoryFinalDelete", "", [Number(id)]); } } - private getClient() { + private async nzbGetApiCallAsync( + method: CallType, + ...params: Parameters + ): Promise> { const url = new URL(this.integration.url); url.pathname += `${this.getSecretValue("username")}:${this.getSecretValue("password")}`; url.pathname += url.pathname.endsWith("/") ? "jsonrpc" : "/jsonrpc"; - return rpcClient(url.toString()); + const body = JSON.stringify({ method, params }); + return await fetch(url, { method: "POST", body }) + .then(async (response) => { + if (!response.ok) { + throw new Error(response.statusText); + } + return ((await response.json()) as { result: ReturnType }).result; + }) + .catch((error) => { + if (error instanceof Error) { + throw new Error(error.message); + } else { + throw new Error("Error communicating with NzbGet"); + } + }); } private static getUsenetQueueState(status: string): DownloadClientItem["state"] { diff --git a/packages/integrations/test/nzbget.spec.ts b/packages/integrations/test/nzbget.spec.ts index a23f081c7..b19b39d71 100644 --- a/packages/integrations/test/nzbget.spec.ts +++ b/packages/integrations/test/nzbget.spec.ts @@ -125,7 +125,7 @@ describe("Nzbget integration", () => { // Act const getAsync = async () => await nzbGetIntegration.getClientJobsAndStatusAsync(); - const actAsync = async () => await nzbGetIntegration.deleteItemAsync(item, false); + const actAsync = async () => await nzbGetIntegration.deleteItemAsync(item, true); // Assert await expect(actAsync()).resolves.not.toThrow(); diff --git a/packages/widgets/src/downloads/component.tsx b/packages/widgets/src/downloads/component.tsx index 5fae5bce5..afd8be9cc 100644 --- a/packages/widgets/src/downloads/component.tsx +++ b/packages/widgets/src/downloads/component.tsx @@ -831,6 +831,7 @@ const ClientsControl = ({ clients, style }: ClientsControlProps) => { px="calc(var(--space-size)*2)" fw="500" onClick={open} + styles={{ label: { height: "fit-content", paddingBottom: "calc(var(--space-size)*0.75)" } }} > {totalSpeed} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3214979ae..d92e95ea4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -986,9 +986,6 @@ importers: '@jellyfin/sdk': specifier: ^0.10.0 version: 0.10.0(axios@1.7.2) - typed-rpc: - specifier: ^5.1.0 - version: 5.1.0 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -7200,9 +7197,6 @@ packages: resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} engines: {node: '>= 0.4'} - typed-rpc@5.1.0: - resolution: {integrity: sha512-qPWUQrLye3Z5kQ8GuVLIURIUNPaDrKgBBts5nXVjR87j8+4sva/sw7lmaBfOw+7m/S4F9jplkv9XZl0hUDUHZg==} - typedarray-to-buffer@3.1.5: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} @@ -13967,8 +13961,6 @@ snapshots: is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 - typed-rpc@5.1.0: {} - typedarray-to-buffer@3.1.5: dependencies: is-typedarray: 1.0.0 From f9cc34c12f1c8c3334f34a72322852a1e9e8e007 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 18:42:45 +0200 Subject: [PATCH 11/33] fix(deps): update dependency @auth/core to ^0.35.0 (#1129) * fix(deps): update dependency @auth/core to ^0.35.0 * fix(deps): update dependency @auth/core to ^0.35.0 * fix: type issue --------- Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> Co-authored-by: Meier Lukas --- packages/auth/package.json | 2 +- .../auth/permissions/integrations-with-permissions.ts | 2 +- packages/db/package.json | 2 +- pnpm-lock.yaml | 8 ++++---- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/auth/package.json b/packages/auth/package.json index ef7179b1e..59da30291 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -23,7 +23,7 @@ }, "prettier": "@homarr/prettier-config", "dependencies": { - "@auth/core": "^0.34.2", + "@auth/core": "^0.35.0", "@auth/drizzle-adapter": "^1.5.0", "@homarr/common": "workspace:^0.1.0", "@homarr/db": "workspace:^0.1.0", diff --git a/packages/auth/permissions/integrations-with-permissions.ts b/packages/auth/permissions/integrations-with-permissions.ts index 98a25be66..64fe09087 100644 --- a/packages/auth/permissions/integrations-with-permissions.ts +++ b/packages/auth/permissions/integrations-with-permissions.ts @@ -1,4 +1,4 @@ -import type { Session } from "@auth/core/types"; +import type { Session } from "next-auth"; import { db, eq, inArray } from "@homarr/db"; import { groupMembers, integrationGroupPermissions, integrationUserPermissions } from "@homarr/db/schema/sqlite"; diff --git a/packages/db/package.json b/packages/db/package.json index 663150cb6..3bcb4573a 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -31,7 +31,7 @@ }, "prettier": "@homarr/prettier-config", "dependencies": { - "@auth/core": "^0.34.2", + "@auth/core": "^0.35.0", "@homarr/common": "workspace:^0.1.0", "@homarr/definitions": "workspace:^0.1.0", "@homarr/log": "workspace:^0.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d92e95ea4..e4c2da89f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -547,8 +547,8 @@ importers: packages/auth: dependencies: '@auth/core': - specifier: ^0.34.2 - version: 0.34.2 + specifier: ^0.35.0 + version: 0.35.0 '@auth/drizzle-adapter': specifier: ^1.5.0 version: 1.5.0 @@ -824,8 +824,8 @@ importers: packages/db: dependencies: '@auth/core': - specifier: ^0.34.2 - version: 0.34.2 + specifier: ^0.35.0 + version: 0.35.0 '@homarr/common': specifier: workspace:^0.1.0 version: link:../common From 59861602652a5717e74a342059cd403151d8a6fd Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 18:45:53 +0200 Subject: [PATCH 12/33] fix(deps): update dependency @ctrl/transmission to v7 (#1103) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- packages/integrations/package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/integrations/package.json b/packages/integrations/package.json index 9df797fc8..c60ca8133 100644 --- a/packages/integrations/package.json +++ b/packages/integrations/package.json @@ -26,7 +26,7 @@ "dependencies": { "@ctrl/deluge": "^6.1.0", "@ctrl/qbittorrent": "^9.0.1", - "@ctrl/transmission": "^6.1.0", + "@ctrl/transmission": "^7.0.0", "@homarr/common": "workspace:^0.1.0", "@homarr/db": "workspace:^0.1.0", "@homarr/definitions": "workspace:^0.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e4c2da89f..43bef1995 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -963,8 +963,8 @@ importers: specifier: ^9.0.1 version: 9.0.1 '@ctrl/transmission': - specifier: ^6.1.0 - version: 6.1.0 + specifier: ^7.0.0 + version: 7.0.0 '@homarr/common': specifier: workspace:^0.1.0 version: link:../common @@ -1820,8 +1820,8 @@ packages: resolution: {integrity: sha512-mC6HdmCrRhhwpthM+OboJvGIywVR05IbdhVSBkfbGslzbQk2xNnx4UOKljV/x2YI2M1DDF3F3o0paIiYd5O0Og==} engines: {node: '>=18'} - '@ctrl/transmission@6.1.0': - resolution: {integrity: sha512-5LjNdNOFqeWKJ7yym2Iz6+bLpBWetE3gbH5AMhgPfpQdXlyoCvX4Ro/fD5pSDuTu4tnen3Eob2cHBgWmqPU47A==} + '@ctrl/transmission@7.0.0': + resolution: {integrity: sha512-D5Sei25y2Ji5BJTPOKZCDnuCEtD9Jcz6+D/y+1hY8O8vwFyDvAu30DzWYTDahP5wqj2024vO3B0Xkt/CKUpZHw==} engines: {node: '>=18'} '@dabh/diagnostics@2.0.3': @@ -7949,7 +7949,7 @@ snapshots: dependencies: uint8array-extras: 1.4.0 - '@ctrl/transmission@6.1.0': + '@ctrl/transmission@7.0.0': dependencies: '@ctrl/magnet-link': 4.0.2 '@ctrl/shared-torrent': 6.0.0 From 6c39612c0731c0728b62057eb240543ae4a1ec15 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 17:11:02 +0000 Subject: [PATCH 13/33] fix(deps): update dependency mysql2 to v3.11.3 (#1132) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- packages/db/package.json | 2 +- pnpm-lock.yaml | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/db/package.json b/packages/db/package.json index 3bcb4573a..a01da92ad 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -40,7 +40,7 @@ "dotenv": "^16.4.5", "drizzle-kit": "^0.24.2", "drizzle-orm": "^0.33.0", - "mysql2": "3.11.2" + "mysql2": "3.11.3" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 43bef1995..08aa08355 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -849,10 +849,10 @@ importers: version: 0.24.2 drizzle-orm: specifier: ^0.33.0 - version: 0.33.0(@prisma/client@5.16.1)(@types/better-sqlite3@7.6.11)(@types/react@18.3.6)(better-sqlite3@11.3.0)(mysql2@3.11.2)(react@18.3.1) + version: 0.33.0(@prisma/client@5.16.1)(@types/better-sqlite3@7.6.11)(@types/react@18.3.6)(better-sqlite3@11.3.0)(mysql2@3.11.3)(react@18.3.1) mysql2: - specifier: 3.11.2 - version: 3.11.2 + specifier: 3.11.3 + version: 3.11.3 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -5675,8 +5675,8 @@ packages: engines: {node: '>=8', npm: '>=5'} hasBin: true - mysql2@3.11.2: - resolution: {integrity: sha512-3jhjAk4NHs3rcKjOiFTqmU76kdib/KDOC+lshrYa76QWkcfF1GbYGK4d5PqPljVmIAc0ChozCRmeYIlNp5bz5w==} + mysql2@3.11.3: + resolution: {integrity: sha512-Qpu2ADfbKzyLdwC/5d4W7+5Yz7yBzCU05YWt5npWzACST37wJsB23wgOSo00qi043urkiRwXtEvJc9UnuLX/MQ==} engines: {node: '>= 8.0'} named-placeholders@1.1.3: @@ -10693,13 +10693,13 @@ snapshots: transitivePeerDependencies: - supports-color - drizzle-orm@0.33.0(@prisma/client@5.16.1)(@types/better-sqlite3@7.6.11)(@types/react@18.3.6)(better-sqlite3@11.3.0)(mysql2@3.11.2)(react@18.3.1): + drizzle-orm@0.33.0(@prisma/client@5.16.1)(@types/better-sqlite3@7.6.11)(@types/react@18.3.6)(better-sqlite3@11.3.0)(mysql2@3.11.3)(react@18.3.1): optionalDependencies: '@prisma/client': 5.16.1 '@types/better-sqlite3': 7.6.11 '@types/react': 18.3.6 better-sqlite3: 11.3.0 - mysql2: 3.11.2 + mysql2: 3.11.3 react: 18.3.1 eastasianwidth@0.2.0: {} @@ -12213,7 +12213,7 @@ snapshots: '@babel/runtime': 7.24.5 global: 4.4.0 - mysql2@3.11.2: + mysql2@3.11.3: dependencies: aws-ssl-profiles: 1.1.1 denque: 2.1.0 From 5a73700f571b6628161b55380fd08da93cede0a8 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 17:33:37 +0000 Subject: [PATCH 14/33] fix(deps): update dependency next-auth to v5.0.0-beta.21 (#1131) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- packages/auth/package.json | 2 +- pnpm-lock.yaml | 36 ++++++------------------------------ 2 files changed, 7 insertions(+), 31 deletions(-) diff --git a/packages/auth/package.json b/packages/auth/package.json index 59da30291..14ee4aa77 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -35,7 +35,7 @@ "cookies": "^0.9.1", "ldapts": "7.2.0", "next": "^14.2.11", - "next-auth": "5.0.0-beta.20", + "next-auth": "5.0.0-beta.21", "react": "^18.3.1", "react-dom": "^18.3.1" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 08aa08355..65181a6ed 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -583,8 +583,8 @@ importers: specifier: ^14.2.11 version: 14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) next-auth: - specifier: 5.0.0-beta.20 - version: 5.0.0-beta.20(next@14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0))(react@18.3.1) + specifier: 5.0.0-beta.21 + version: 5.0.0-beta.21(next@14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0))(react@18.3.1) react: specifier: ^18.3.1 version: 18.3.1 @@ -1612,20 +1612,6 @@ packages: resolution: {integrity: sha512-2aDL3WUv8hMJb2L3r/PIQWsTLyq7RQr3v9xD16fiz6O8ys1xEyLhhTOv8gxtZvJiTzjTF5pHoArvRdesGL1DMQ==} hasBin: true - '@auth/core@0.34.2': - resolution: {integrity: sha512-KywHKRgLiF3l7PLyL73fjLSIBe1YNcA6sMeew4yMP6cfCWGXZrkkXd32AjRi1hlJ9nvovUBGZHvbn+LijO6ZeQ==} - peerDependencies: - '@simplewebauthn/browser': ^9.0.1 - '@simplewebauthn/server': ^9.0.2 - nodemailer: ^6.8.0 - peerDependenciesMeta: - '@simplewebauthn/browser': - optional: true - '@simplewebauthn/server': - optional: true - nodemailer: - optional: true - '@auth/core@0.35.0': resolution: {integrity: sha512-XvMALiYn5ZQd1hVeG1t+jCU89jRrc7ortl/05wkBrPHnRWZScxAK5jKuzBz+AOBQXewDjYcMpzeF5tTqg6rDhQ==} peerDependencies: @@ -5713,8 +5699,8 @@ packages: resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} engines: {node: '>= 0.4.0'} - next-auth@5.0.0-beta.20: - resolution: {integrity: sha512-+48SjV9k9AtUU3JbEIa4PXNjKIewfFjVGL7Xs2RKkuQ5QqegDNIQiIG8sLk6/qo7RTScQYIGKgeQ5IuQRtrTQg==} + next-auth@5.0.0-beta.21: + resolution: {integrity: sha512-VrT6LV9u/o5tMuWxRDN5d/K1OgPskrMHy+aITTwasVfIrkIaU/8UVg3TXH8ynJgzhfzlDx/3hLWGhi+eXQw4qg==} peerDependencies: '@simplewebauthn/browser': ^9.0.1 '@simplewebauthn/server': ^9.0.2 @@ -7703,16 +7689,6 @@ snapshots: '@antfu/ni@0.21.12': {} - '@auth/core@0.34.2': - dependencies: - '@panva/hkdf': 1.1.1 - '@types/cookie': 0.6.0 - cookie: 0.6.0 - jose: 5.3.0 - oauth4webapi: 2.11.0 - preact: 10.11.3 - preact-render-to-string: 5.2.3(preact@10.11.3) - '@auth/core@0.35.0': dependencies: '@panva/hkdf': 1.1.1 @@ -12246,9 +12222,9 @@ snapshots: netmask@2.0.2: {} - next-auth@5.0.0-beta.20(next@14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0))(react@18.3.1): + next-auth@5.0.0-beta.21(next@14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0))(react@18.3.1): dependencies: - '@auth/core': 0.34.2 + '@auth/core': 0.35.0 next: 14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) react: 18.3.1 From 3ef478c53ab56c50b1ee1d71eebfcc32a4b8828a Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 17:42:28 +0000 Subject: [PATCH 15/33] fix(deps): update dependency typescript-eslint to ^8.6.0 (#1136) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 114 ++++++++++++++++++------------------ tooling/eslint/package.json | 2 +- 2 files changed, 58 insertions(+), 58 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 65181a6ed..031a1e136 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1553,7 +1553,7 @@ importers: version: 2.1.2(eslint@9.10.0) eslint-plugin-import: specifier: ^2.30.0 - version: 2.30.0(@typescript-eslint/parser@8.5.0(eslint@9.10.0)(typescript@5.6.2))(eslint@9.10.0) + version: 2.30.0(@typescript-eslint/parser@8.6.0(eslint@9.10.0)(typescript@5.6.2))(eslint@9.10.0) eslint-plugin-jsx-a11y: specifier: ^6.10.0 version: 6.10.0(eslint@9.10.0) @@ -1564,8 +1564,8 @@ importers: specifier: ^4.6.2 version: 4.6.2(eslint@9.10.0) typescript-eslint: - specifier: ^8.5.0 - version: 8.5.0(eslint@9.10.0)(typescript@5.6.2) + specifier: ^8.6.0 + version: 8.6.0(eslint@9.10.0)(typescript@5.6.2) devDependencies: '@homarr/prettier-config': specifier: workspace:^0.1.0 @@ -3232,8 +3232,8 @@ packages: '@types/ws@8.5.12': resolution: {integrity: sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==} - '@typescript-eslint/eslint-plugin@8.5.0': - resolution: {integrity: sha512-lHS5hvz33iUFQKuPFGheAB84LwcJ60G8vKnEhnfcK1l8kGVLro2SFYW6K0/tj8FUhRJ0VHyg1oAfg50QGbPPHw==} + '@typescript-eslint/eslint-plugin@8.6.0': + resolution: {integrity: sha512-UOaz/wFowmoh2G6Mr9gw60B1mm0MzUtm6Ic8G2yM1Le6gyj5Loi/N+O5mocugRGY+8OeeKmkMmbxNqUCq3B4Sg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 @@ -3243,8 +3243,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@8.5.0': - resolution: {integrity: sha512-gF77eNv0Xz2UJg/NbpWJ0kqAm35UMsvZf1GHj8D9MRFTj/V3tAciIWXfmPLsAAF/vUlpWPvUDyH1jjsr0cMVWw==} + '@typescript-eslint/parser@8.6.0': + resolution: {integrity: sha512-eQcbCuA2Vmw45iGfcyG4y6rS7BhWfz9MQuk409WD47qMM+bKCGQWXxvoOs1DUp+T7UBMTtRTVT+kXr7Sh4O9Ow==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -3253,12 +3253,12 @@ packages: typescript: optional: true - '@typescript-eslint/scope-manager@8.5.0': - resolution: {integrity: sha512-06JOQ9Qgj33yvBEx6tpC8ecP9o860rsR22hWMEd12WcTRrfaFgHr2RB/CA/B+7BMhHkXT4chg2MyboGdFGawYg==} + '@typescript-eslint/scope-manager@8.6.0': + resolution: {integrity: sha512-ZuoutoS5y9UOxKvpc/GkvF4cuEmpokda4wRg64JEia27wX+PysIE9q+lzDtlHHgblwUWwo5/Qn+/WyTUvDwBHw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.5.0': - resolution: {integrity: sha512-N1K8Ix+lUM+cIDhL2uekVn/ZD7TZW+9/rwz8DclQpcQ9rk4sIL5CAlBC0CugWKREmDjBzI/kQqU4wkg46jWLYA==} + '@typescript-eslint/type-utils@8.6.0': + resolution: {integrity: sha512-dtePl4gsuenXVwC7dVNlb4mGDcKjDT/Ropsk4za/ouMBPplCLyznIaR+W65mvCvsyS97dymoBRrioEXI7k0XIg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -3266,12 +3266,12 @@ packages: typescript: optional: true - '@typescript-eslint/types@8.5.0': - resolution: {integrity: sha512-qjkormnQS5wF9pjSi6q60bKUHH44j2APxfh9TQRXK8wbYVeDYYdYJGIROL87LGZZ2gz3Rbmjc736qyL8deVtdw==} + '@typescript-eslint/types@8.6.0': + resolution: {integrity: sha512-rojqFZGd4MQxw33SrOy09qIDS8WEldM8JWtKQLAjf/X5mGSeEFh5ixQlxssMNyPslVIk9yzWqXCsV2eFhYrYUw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.5.0': - resolution: {integrity: sha512-vEG2Sf9P8BPQ+d0pxdfndw3xIXaoSjliG0/Ejk7UggByZPKXmJmw3GW5jV2gHNQNawBUyfahoSiCFVov0Ruf7Q==} + '@typescript-eslint/typescript-estree@8.6.0': + resolution: {integrity: sha512-MOVAzsKJIPIlLK239l5s06YXjNqpKTVhBVDnqUumQJja5+Y94V3+4VUFRA0G60y2jNnTVwRCkhyGQpavfsbq/g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -3279,14 +3279,14 @@ packages: typescript: optional: true - '@typescript-eslint/utils@8.5.0': - resolution: {integrity: sha512-6yyGYVL0e+VzGYp60wvkBHiqDWOpT63pdMV2CVG4LVDd5uR6q1qQN/7LafBZtAtNIn/mqXjsSeS5ggv/P0iECw==} + '@typescript-eslint/utils@8.6.0': + resolution: {integrity: sha512-eNp9cWnYf36NaOVjkEUznf6fEgVy1TWpE0o52e4wtojjBx7D1UV2WAWGzR+8Y5lVFtpMLPwNbC67T83DWSph4A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - '@typescript-eslint/visitor-keys@8.5.0': - resolution: {integrity: sha512-yTPqMnbAZJNy2Xq2XU8AdtOW9tJIr+UQb64aXB9f3B1498Zx9JorVgFJcZpEc9UBuCCrdzKID2RGAMkYcDtZOw==} + '@typescript-eslint/visitor-keys@8.6.0': + resolution: {integrity: sha512-wapVFfZg9H0qOYh4grNVQiMklJGluQrOUiOhYRrQWhx7BY/+I1IYb8BczWNbbUpO+pqy0rDciv3lQH5E1bCLrg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@umami/node@0.4.0': @@ -7189,8 +7189,8 @@ packages: types-ramda@0.30.0: resolution: {integrity: sha512-oVPw/KHB5M0Du0txTEKKM8xZOG9cZBRdCVXvwHYuNJUVkAiJ9oWyqkA+9Bj2gjMsHgkkhsYevobQBWs8I2/Xvw==} - typescript-eslint@8.5.0: - resolution: {integrity: sha512-uD+XxEoSIvqtm4KE97etm32Tn5MfaZWgWfMMREStLxR6JzvHkc2Tkj7zhTEK5XmtpTmKHNnG8Sot6qDfhHtR1Q==} + typescript-eslint@8.6.0: + resolution: {integrity: sha512-eEhhlxCEpCd4helh3AO1hk0UP2MvbRi9CtIAJTVPQjuSXOOO2jsEacNi4UdcJzZJbeuVg1gMhtZ8UYb+NFYPrA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -9449,14 +9449,14 @@ snapshots: dependencies: '@types/node': 20.16.5 - '@typescript-eslint/eslint-plugin@8.5.0(@typescript-eslint/parser@8.5.0(eslint@9.10.0)(typescript@5.6.2))(eslint@9.10.0)(typescript@5.6.2)': + '@typescript-eslint/eslint-plugin@8.6.0(@typescript-eslint/parser@8.6.0(eslint@9.10.0)(typescript@5.6.2))(eslint@9.10.0)(typescript@5.6.2)': dependencies: '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 8.5.0(eslint@9.10.0)(typescript@5.6.2) - '@typescript-eslint/scope-manager': 8.5.0 - '@typescript-eslint/type-utils': 8.5.0(eslint@9.10.0)(typescript@5.6.2) - '@typescript-eslint/utils': 8.5.0(eslint@9.10.0)(typescript@5.6.2) - '@typescript-eslint/visitor-keys': 8.5.0 + '@typescript-eslint/parser': 8.6.0(eslint@9.10.0)(typescript@5.6.2) + '@typescript-eslint/scope-manager': 8.6.0 + '@typescript-eslint/type-utils': 8.6.0(eslint@9.10.0)(typescript@5.6.2) + '@typescript-eslint/utils': 8.6.0(eslint@9.10.0)(typescript@5.6.2) + '@typescript-eslint/visitor-keys': 8.6.0 eslint: 9.10.0 graphemer: 1.4.0 ignore: 5.3.1 @@ -9467,12 +9467,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.5.0(eslint@9.10.0)(typescript@5.6.2)': + '@typescript-eslint/parser@8.6.0(eslint@9.10.0)(typescript@5.6.2)': dependencies: - '@typescript-eslint/scope-manager': 8.5.0 - '@typescript-eslint/types': 8.5.0 - '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.6.2) - '@typescript-eslint/visitor-keys': 8.5.0 + '@typescript-eslint/scope-manager': 8.6.0 + '@typescript-eslint/types': 8.6.0 + '@typescript-eslint/typescript-estree': 8.6.0(typescript@5.6.2) + '@typescript-eslint/visitor-keys': 8.6.0 debug: 4.3.7 eslint: 9.10.0 optionalDependencies: @@ -9480,15 +9480,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.5.0': + '@typescript-eslint/scope-manager@8.6.0': dependencies: - '@typescript-eslint/types': 8.5.0 - '@typescript-eslint/visitor-keys': 8.5.0 + '@typescript-eslint/types': 8.6.0 + '@typescript-eslint/visitor-keys': 8.6.0 - '@typescript-eslint/type-utils@8.5.0(eslint@9.10.0)(typescript@5.6.2)': + '@typescript-eslint/type-utils@8.6.0(eslint@9.10.0)(typescript@5.6.2)': dependencies: - '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.6.2) - '@typescript-eslint/utils': 8.5.0(eslint@9.10.0)(typescript@5.6.2) + '@typescript-eslint/typescript-estree': 8.6.0(typescript@5.6.2) + '@typescript-eslint/utils': 8.6.0(eslint@9.10.0)(typescript@5.6.2) debug: 4.3.7 ts-api-utils: 1.3.0(typescript@5.6.2) optionalDependencies: @@ -9497,12 +9497,12 @@ snapshots: - eslint - supports-color - '@typescript-eslint/types@8.5.0': {} + '@typescript-eslint/types@8.6.0': {} - '@typescript-eslint/typescript-estree@8.5.0(typescript@5.6.2)': + '@typescript-eslint/typescript-estree@8.6.0(typescript@5.6.2)': dependencies: - '@typescript-eslint/types': 8.5.0 - '@typescript-eslint/visitor-keys': 8.5.0 + '@typescript-eslint/types': 8.6.0 + '@typescript-eslint/visitor-keys': 8.6.0 debug: 4.3.7 fast-glob: 3.3.2 is-glob: 4.0.3 @@ -9514,20 +9514,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.5.0(eslint@9.10.0)(typescript@5.6.2)': + '@typescript-eslint/utils@8.6.0(eslint@9.10.0)(typescript@5.6.2)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0) - '@typescript-eslint/scope-manager': 8.5.0 - '@typescript-eslint/types': 8.5.0 - '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.6.2) + '@typescript-eslint/scope-manager': 8.6.0 + '@typescript-eslint/types': 8.6.0 + '@typescript-eslint/typescript-estree': 8.6.0(typescript@5.6.2) eslint: 9.10.0 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/visitor-keys@8.5.0': + '@typescript-eslint/visitor-keys@8.6.0': dependencies: - '@typescript-eslint/types': 8.5.0 + '@typescript-eslint/types': 8.6.0 eslint-visitor-keys: 3.4.3 '@umami/node@0.4.0': {} @@ -10945,17 +10945,17 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.9.0(@typescript-eslint/parser@8.5.0(eslint@9.10.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint@9.10.0): + eslint-module-utils@2.9.0(@typescript-eslint/parser@8.6.0(eslint@9.10.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint@9.10.0): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.5.0(eslint@9.10.0)(typescript@5.6.2) + '@typescript-eslint/parser': 8.6.0(eslint@9.10.0)(typescript@5.6.2) eslint: 9.10.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.5.0(eslint@9.10.0)(typescript@5.6.2))(eslint@9.10.0): + eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.6.0(eslint@9.10.0)(typescript@5.6.2))(eslint@9.10.0): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -10966,7 +10966,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.10.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.9.0(@typescript-eslint/parser@8.5.0(eslint@9.10.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint@9.10.0) + eslint-module-utils: 2.9.0(@typescript-eslint/parser@8.6.0(eslint@9.10.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint@9.10.0) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -10977,7 +10977,7 @@ snapshots: semver: 6.3.1 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.5.0(eslint@9.10.0)(typescript@5.6.2) + '@typescript-eslint/parser': 8.6.0(eslint@9.10.0)(typescript@5.6.2) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -13945,11 +13945,11 @@ snapshots: dependencies: ts-toolbelt: 9.6.0 - typescript-eslint@8.5.0(eslint@9.10.0)(typescript@5.6.2): + typescript-eslint@8.6.0(eslint@9.10.0)(typescript@5.6.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.5.0(@typescript-eslint/parser@8.5.0(eslint@9.10.0)(typescript@5.6.2))(eslint@9.10.0)(typescript@5.6.2) - '@typescript-eslint/parser': 8.5.0(eslint@9.10.0)(typescript@5.6.2) - '@typescript-eslint/utils': 8.5.0(eslint@9.10.0)(typescript@5.6.2) + '@typescript-eslint/eslint-plugin': 8.6.0(@typescript-eslint/parser@8.6.0(eslint@9.10.0)(typescript@5.6.2))(eslint@9.10.0)(typescript@5.6.2) + '@typescript-eslint/parser': 8.6.0(eslint@9.10.0)(typescript@5.6.2) + '@typescript-eslint/utils': 8.6.0(eslint@9.10.0)(typescript@5.6.2) optionalDependencies: typescript: 5.6.2 transitivePeerDependencies: diff --git a/tooling/eslint/package.json b/tooling/eslint/package.json index 0184d30b2..807e267e4 100644 --- a/tooling/eslint/package.json +++ b/tooling/eslint/package.json @@ -23,7 +23,7 @@ "eslint-plugin-jsx-a11y": "^6.10.0", "eslint-plugin-react": "^7.36.1", "eslint-plugin-react-hooks": "^4.6.2", - "typescript-eslint": "^8.5.0" + "typescript-eslint": "^8.6.0" }, "devDependencies": { "@homarr/prettier-config": "workspace:^0.1.0", From 67382968304190e70b30eab41adecacf638879a1 Mon Sep 17 00:00:00 2001 From: Meier Lukas Date: Mon, 16 Sep 2024 19:53:37 +0200 Subject: [PATCH 16/33] refactor: move modals to seperate package (#1135) * refactor: move modals to seperate package * fix: format issue * fix: lint issues * fix: format issue * fix: only used as type --- apps/nextjs/package.json | 1 + .../app/[locale]/auth/login/_login-form.tsx | 3 +- .../boards/(content)/_header-actions.tsx | 2 +- .../manage/apps/_app-delete-button.tsx | 3 +- .../manage/apps/edit/[id]/_app-edit-form.tsx | 2 +- .../manage/apps/new/_app-new-form.tsx | 2 +- .../_components/board-card-menu-dropdown.tsx | 2 +- .../_components/create-board-button.tsx | 26 +- .../integrations/_integration-buttons.tsx | 3 +- .../edit/[id]/_integration-edit-form.tsx | 2 +- .../new/_integration-new-form.tsx | 2 +- .../_components/analytics.settings.tsx | 2 +- .../crawling-and-indexing.settings.tsx | 2 +- .../_components/_change-home-board.tsx | 3 +- .../_components/_delete-user-button.tsx | 3 +- .../_components/_profile-avatar-form.tsx | 3 +- .../general/_components/_profile-form.tsx | 3 +- .../_components/_change-password-form.tsx | 3 +- .../users/groups/[id]/_delete-group.tsx | 3 +- .../users/groups/[id]/_rename-group-form.tsx | 3 +- .../groups/[id]/members/_add-group-member.tsx | 2 +- .../[id]/members/_remove-group-member.tsx | 3 +- .../manage/users/groups/_add-group.tsx | 2 +- .../users/invites/_components/invite-list.tsx | 3 +- .../manage/boards/add-board-modal.tsx | 66 - packages/api/src/client.ts | 22 +- packages/api/src/router/board.ts | 14 + packages/common/src/client.ts | 1 + .../common/src/revalidate-path-action.ts | 0 packages/modals-collection/eslint.config.js | 9 + packages/modals-collection/index.ts | 1 + packages/modals-collection/package.json | 47 + .../src/boards/add-board-modal.tsx | 128 + .../src}/boards/import-board-modal.tsx | 31 +- .../modals-collection/src/boards/index.ts | 2 + packages/modals-collection/src/index.ts | 2 + .../modals-collection/src/invites/index.ts | 2 + .../src/invites}/invite-copy-modal.tsx | 0 .../src/invites}/invite-create-modal.tsx | 0 packages/modals-collection/tsconfig.json | 8 + packages/validation/src/board.ts | 28 +- packages/validation/src/index.ts | 2 +- pnpm-lock.yaml | 2633 +++++++++-------- turbo/generators/templates/package.json.hbs | 4 +- 44 files changed, 1693 insertions(+), 1390 deletions(-) delete mode 100644 apps/nextjs/src/components/manage/boards/add-board-modal.tsx rename apps/nextjs/src/app/revalidatePathAction.ts => packages/common/src/revalidate-path-action.ts (100%) create mode 100644 packages/modals-collection/eslint.config.js create mode 100644 packages/modals-collection/index.ts create mode 100644 packages/modals-collection/package.json create mode 100644 packages/modals-collection/src/boards/add-board-modal.tsx rename {apps/nextjs/src/components/manage => packages/modals-collection/src}/boards/import-board-modal.tsx (85%) create mode 100644 packages/modals-collection/src/boards/index.ts create mode 100644 packages/modals-collection/src/index.ts create mode 100644 packages/modals-collection/src/invites/index.ts rename {apps/nextjs/src/app/[locale]/manage/users/invites/_components => packages/modals-collection/src/invites}/invite-copy-modal.tsx (100%) rename {apps/nextjs/src/app/[locale]/manage/users/invites/_components => packages/modals-collection/src/invites}/invite-create-modal.tsx (100%) create mode 100644 packages/modals-collection/tsconfig.json diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index 7de37921d..c9b8b1853 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -27,6 +27,7 @@ "@homarr/integrations": "workspace:^0.1.0", "@homarr/log": "workspace:^", "@homarr/modals": "workspace:^0.1.0", + "@homarr/modals-collection": "workspace:^0.1.0", "@homarr/notifications": "workspace:^0.1.0", "@homarr/old-schema": "workspace:^0.1.0", "@homarr/server-settings": "workspace:^0.1.0", diff --git a/apps/nextjs/src/app/[locale]/auth/login/_login-form.tsx b/apps/nextjs/src/app/[locale]/auth/login/_login-form.tsx index 6b144d35a..0c745c656 100644 --- a/apps/nextjs/src/app/[locale]/auth/login/_login-form.tsx +++ b/apps/nextjs/src/app/[locale]/auth/login/_login-form.tsx @@ -7,6 +7,7 @@ import { Anchor, Button, Card, Code, Collapse, Divider, PasswordInput, Stack, Te import { useDisclosure } from "@mantine/hooks"; import { signIn } from "@homarr/auth/client"; +import { revalidatePathActionAsync } from "@homarr/common/client"; import type { useForm } from "@homarr/form"; import { useZodForm } from "@homarr/form"; import { showErrorNotification, showSuccessNotification } from "@homarr/notifications"; @@ -14,8 +15,6 @@ import { useScopedI18n } from "@homarr/translation/client"; import type { z } from "@homarr/validation"; import { validation } from "@homarr/validation"; -import { revalidatePathActionAsync } from "~/app/revalidatePathAction"; - interface LoginFormProps { providers: string[]; oidcClientName: string; diff --git a/apps/nextjs/src/app/[locale]/boards/(content)/_header-actions.tsx b/apps/nextjs/src/app/[locale]/boards/(content)/_header-actions.tsx index 27980758b..0782c1f94 100644 --- a/apps/nextjs/src/app/[locale]/boards/(content)/_header-actions.tsx +++ b/apps/nextjs/src/app/[locale]/boards/(content)/_header-actions.tsx @@ -15,11 +15,11 @@ import { } from "@tabler/icons-react"; import { clientApi } from "@homarr/api/client"; +import { revalidatePathActionAsync } from "@homarr/common/client"; import { useModalAction } from "@homarr/modals"; import { showErrorNotification, showSuccessNotification } from "@homarr/notifications"; import { useI18n, useScopedI18n } from "@homarr/translation/client"; -import { revalidatePathActionAsync } from "~/app/revalidatePathAction"; import { ItemSelectModal } from "~/components/board/items/item-select-modal"; import { useBoardPermissions } from "~/components/board/permissions/client"; import { useCategoryActions } from "~/components/board/sections/category/category-actions"; diff --git a/apps/nextjs/src/app/[locale]/manage/apps/_app-delete-button.tsx b/apps/nextjs/src/app/[locale]/manage/apps/_app-delete-button.tsx index dd20241d3..bdc520579 100644 --- a/apps/nextjs/src/app/[locale]/manage/apps/_app-delete-button.tsx +++ b/apps/nextjs/src/app/[locale]/manage/apps/_app-delete-button.tsx @@ -6,12 +6,11 @@ import { IconTrash } from "@tabler/icons-react"; import type { RouterOutputs } from "@homarr/api"; import { clientApi } from "@homarr/api/client"; +import { revalidatePathActionAsync } from "@homarr/common/client"; import { useConfirmModal } from "@homarr/modals"; import { showErrorNotification, showSuccessNotification } from "@homarr/notifications"; import { useScopedI18n } from "@homarr/translation/client"; -import { revalidatePathActionAsync } from "../../../revalidatePathAction"; - interface AppDeleteButtonProps { app: RouterOutputs["app"]["all"][number]; } diff --git a/apps/nextjs/src/app/[locale]/manage/apps/edit/[id]/_app-edit-form.tsx b/apps/nextjs/src/app/[locale]/manage/apps/edit/[id]/_app-edit-form.tsx index 5fda90040..9c34c160a 100644 --- a/apps/nextjs/src/app/[locale]/manage/apps/edit/[id]/_app-edit-form.tsx +++ b/apps/nextjs/src/app/[locale]/manage/apps/edit/[id]/_app-edit-form.tsx @@ -5,12 +5,12 @@ import { useRouter } from "next/navigation"; import type { RouterOutputs } from "@homarr/api"; import { clientApi } from "@homarr/api/client"; +import { revalidatePathActionAsync } from "@homarr/common/client"; import { showErrorNotification, showSuccessNotification } from "@homarr/notifications"; import type { TranslationFunction } from "@homarr/translation"; import { useScopedI18n } from "@homarr/translation/client"; import type { validation, z } from "@homarr/validation"; -import { revalidatePathActionAsync } from "~/app/revalidatePathAction"; import { AppForm } from "../../_form"; interface AppEditFormProps { diff --git a/apps/nextjs/src/app/[locale]/manage/apps/new/_app-new-form.tsx b/apps/nextjs/src/app/[locale]/manage/apps/new/_app-new-form.tsx index 171dec027..42a9ea40f 100644 --- a/apps/nextjs/src/app/[locale]/manage/apps/new/_app-new-form.tsx +++ b/apps/nextjs/src/app/[locale]/manage/apps/new/_app-new-form.tsx @@ -4,12 +4,12 @@ import { useCallback } from "react"; import { useRouter } from "next/navigation"; import { clientApi } from "@homarr/api/client"; +import { revalidatePathActionAsync } from "@homarr/common/client"; import { showErrorNotification, showSuccessNotification } from "@homarr/notifications"; import type { TranslationFunction } from "@homarr/translation"; import { useScopedI18n } from "@homarr/translation/client"; import type { validation, z } from "@homarr/validation"; -import { revalidatePathActionAsync } from "~/app/revalidatePathAction"; import { AppForm } from "../_form"; export const AppNewForm = () => { diff --git a/apps/nextjs/src/app/[locale]/manage/boards/_components/board-card-menu-dropdown.tsx b/apps/nextjs/src/app/[locale]/manage/boards/_components/board-card-menu-dropdown.tsx index 0da1a442d..dd7794db8 100644 --- a/apps/nextjs/src/app/[locale]/manage/boards/_components/board-card-menu-dropdown.tsx +++ b/apps/nextjs/src/app/[locale]/manage/boards/_components/board-card-menu-dropdown.tsx @@ -7,10 +7,10 @@ import { IconHome, IconSettings, IconTrash } from "@tabler/icons-react"; import type { RouterOutputs } from "@homarr/api"; import { clientApi } from "@homarr/api/client"; +import { revalidatePathActionAsync } from "@homarr/common/client"; import { useConfirmModal } from "@homarr/modals"; import { useScopedI18n } from "@homarr/translation/client"; -import { revalidatePathActionAsync } from "~/app/revalidatePathAction"; import { useBoardPermissions } from "~/components/board/permissions/client"; const iconProps = { diff --git a/apps/nextjs/src/app/[locale]/manage/boards/_components/create-board-button.tsx b/apps/nextjs/src/app/[locale]/manage/boards/_components/create-board-button.tsx index 864c5ea83..cbe15468d 100644 --- a/apps/nextjs/src/app/[locale]/manage/boards/_components/create-board-button.tsx +++ b/apps/nextjs/src/app/[locale]/manage/boards/_components/create-board-button.tsx @@ -4,15 +4,12 @@ import { useCallback } from "react"; import { Affix, Button, Group, Menu } from "@mantine/core"; import { IconCategoryPlus, IconChevronDown, IconFileImport } from "@tabler/icons-react"; -import { clientApi } from "@homarr/api/client"; +import { revalidatePathActionAsync } from "@homarr/common/client"; import { useModalAction } from "@homarr/modals"; +import { AddBoardModal, ImportBoardModal } from "@homarr/modals-collection"; import { useI18n } from "@homarr/translation/client"; import { BetaBadge } from "@homarr/ui"; -import { revalidatePathActionAsync } from "~/app/revalidatePathAction"; -import { AddBoardModal } from "~/components/manage/boards/add-board-modal"; -import { ImportBoardModal } from "~/components/manage/boards/import-board-modal"; - interface CreateBoardButtonProps { boardNames: string[]; } @@ -22,24 +19,13 @@ export const CreateBoardButton = ({ boardNames }: CreateBoardButtonProps) => { const { openModal: openAddModal } = useModalAction(AddBoardModal); const { openModal: openImportModal } = useModalAction(ImportBoardModal); - const { mutateAsync, isPending } = clientApi.board.createBoard.useMutation({ - onSettled: async () => { - await revalidatePathActionAsync("/manage/boards"); - }, - }); - const onCreateClick = useCallback(() => { openAddModal({ - onSuccess: async (values) => { - await mutateAsync({ - name: values.name, - columnCount: values.columnCount, - isPublic: values.isPublic, - }); + onSettled: async () => { + await revalidatePathActionAsync("/manage/boards"); }, - boardNames, }); - }, [mutateAsync, boardNames, openAddModal]); + }, [openAddModal]); const onImportClick = useCallback(() => { openImportModal({ boardNames }); @@ -47,7 +33,7 @@ export const CreateBoardButton = ({ boardNames }: CreateBoardButtonProps) => { const buttonGroupContent = ( <> - diff --git a/apps/nextjs/src/app/[locale]/manage/integrations/_integration-buttons.tsx b/apps/nextjs/src/app/[locale]/manage/integrations/_integration-buttons.tsx index 3640dc790..7ccbde09f 100644 --- a/apps/nextjs/src/app/[locale]/manage/integrations/_integration-buttons.tsx +++ b/apps/nextjs/src/app/[locale]/manage/integrations/_integration-buttons.tsx @@ -5,12 +5,11 @@ import { ActionIcon } from "@mantine/core"; import { IconTrash } from "@tabler/icons-react"; import { clientApi } from "@homarr/api/client"; +import { revalidatePathActionAsync } from "@homarr/common/client"; import { useConfirmModal } from "@homarr/modals"; import { showErrorNotification, showSuccessNotification } from "@homarr/notifications"; import { useScopedI18n } from "@homarr/translation/client"; -import { revalidatePathActionAsync } from "../../../revalidatePathAction"; - interface DeleteIntegrationActionButtonProps { count: number; integration: { id: string; name: string }; diff --git a/apps/nextjs/src/app/[locale]/manage/integrations/edit/[id]/_integration-edit-form.tsx b/apps/nextjs/src/app/[locale]/manage/integrations/edit/[id]/_integration-edit-form.tsx index 847479ea3..60707e35a 100644 --- a/apps/nextjs/src/app/[locale]/manage/integrations/edit/[id]/_integration-edit-form.tsx +++ b/apps/nextjs/src/app/[locale]/manage/integrations/edit/[id]/_integration-edit-form.tsx @@ -6,6 +6,7 @@ import { Button, Fieldset, Group, Stack, TextInput } from "@mantine/core"; import type { RouterOutputs } from "@homarr/api"; import { clientApi } from "@homarr/api/client"; +import { revalidatePathActionAsync } from "@homarr/common/client"; import { getAllSecretKindOptions, getDefaultSecretKinds } from "@homarr/definitions"; import { useZodForm } from "@homarr/form"; import { convertIntegrationTestConnectionError } from "@homarr/integrations/client"; @@ -15,7 +16,6 @@ import { useI18n } from "@homarr/translation/client"; import type { z } from "@homarr/validation"; import { validation } from "@homarr/validation"; -import { revalidatePathActionAsync } from "~/app/revalidatePathAction"; import { SecretCard } from "../../_components/secrets/integration-secret-card"; import { IntegrationSecretInput } from "../../_components/secrets/integration-secret-inputs"; diff --git a/apps/nextjs/src/app/[locale]/manage/integrations/new/_integration-new-form.tsx b/apps/nextjs/src/app/[locale]/manage/integrations/new/_integration-new-form.tsx index 6d4ed9727..25eacf9b9 100644 --- a/apps/nextjs/src/app/[locale]/manage/integrations/new/_integration-new-form.tsx +++ b/apps/nextjs/src/app/[locale]/manage/integrations/new/_integration-new-form.tsx @@ -7,6 +7,7 @@ import { Alert, Button, Fieldset, Group, SegmentedControl, Stack, Text, TextInpu import { IconInfoCircle } from "@tabler/icons-react"; import { clientApi } from "@homarr/api/client"; +import { revalidatePathActionAsync } from "@homarr/common/client"; import type { IntegrationKind, IntegrationSecretKind } from "@homarr/definitions"; import { getAllSecretKindOptions } from "@homarr/definitions"; import type { UseFormReturnType } from "@homarr/form"; @@ -18,7 +19,6 @@ import type { z } from "@homarr/validation"; import { validation } from "@homarr/validation"; import { IntegrationSecretInput } from "../_components/secrets/integration-secret-inputs"; -import { revalidatePathActionAsync } from "../../../../revalidatePathAction"; interface NewIntegrationFormProps { searchParams: Partial> & { diff --git a/apps/nextjs/src/app/[locale]/manage/settings/_components/analytics.settings.tsx b/apps/nextjs/src/app/[locale]/manage/settings/_components/analytics.settings.tsx index f56b4a1b9..21215e6d0 100644 --- a/apps/nextjs/src/app/[locale]/manage/settings/_components/analytics.settings.tsx +++ b/apps/nextjs/src/app/[locale]/manage/settings/_components/analytics.settings.tsx @@ -4,12 +4,12 @@ import React from "react"; import { Card, LoadingOverlay, Stack, Title } from "@mantine/core"; import { clientApi } from "@homarr/api/client"; +import { revalidatePathActionAsync } from "@homarr/common/client"; import { useForm } from "@homarr/form"; import type { defaultServerSettings } from "@homarr/server-settings"; import { useScopedI18n } from "@homarr/translation/client"; import { SwitchSetting } from "~/app/[locale]/manage/settings/_components/setting-switch"; -import { revalidatePathActionAsync } from "~/app/revalidatePathAction"; interface AnalyticsSettingsProps { initialData: typeof defaultServerSettings.analytics; diff --git a/apps/nextjs/src/app/[locale]/manage/settings/_components/crawling-and-indexing.settings.tsx b/apps/nextjs/src/app/[locale]/manage/settings/_components/crawling-and-indexing.settings.tsx index a74c4cf47..b99f298ee 100644 --- a/apps/nextjs/src/app/[locale]/manage/settings/_components/crawling-and-indexing.settings.tsx +++ b/apps/nextjs/src/app/[locale]/manage/settings/_components/crawling-and-indexing.settings.tsx @@ -4,12 +4,12 @@ import React from "react"; import { Card, LoadingOverlay, Stack, Text, Title } from "@mantine/core"; import { clientApi } from "@homarr/api/client"; +import { revalidatePathActionAsync } from "@homarr/common/client"; import { useForm } from "@homarr/form"; import type { defaultServerSettings } from "@homarr/server-settings"; import { useScopedI18n } from "@homarr/translation/client"; import { SwitchSetting } from "~/app/[locale]/manage/settings/_components/setting-switch"; -import { revalidatePathActionAsync } from "~/app/revalidatePathAction"; interface CrawlingAndIndexingSettingsProps { initialData: typeof defaultServerSettings.crawlingAndIndexing; diff --git a/apps/nextjs/src/app/[locale]/manage/users/[userId]/general/_components/_change-home-board.tsx b/apps/nextjs/src/app/[locale]/manage/users/[userId]/general/_components/_change-home-board.tsx index bbc8f308c..b6fe54770 100644 --- a/apps/nextjs/src/app/[locale]/manage/users/[userId]/general/_components/_change-home-board.tsx +++ b/apps/nextjs/src/app/[locale]/manage/users/[userId]/general/_components/_change-home-board.tsx @@ -4,14 +4,13 @@ import { Button, Group, Select, Stack } from "@mantine/core"; import type { RouterOutputs } from "@homarr/api"; import { clientApi } from "@homarr/api/client"; +import { revalidatePathActionAsync } from "@homarr/common/client"; import { useZodForm } from "@homarr/form"; import { showErrorNotification, showSuccessNotification } from "@homarr/notifications"; import { useI18n } from "@homarr/translation/client"; import type { z } from "@homarr/validation"; import { validation } from "@homarr/validation"; -import { revalidatePathActionAsync } from "~/app/revalidatePathAction"; - interface ChangeHomeBoardFormProps { user: RouterOutputs["user"]["getById"]; boardsData: { value: string; label: string }[]; diff --git a/apps/nextjs/src/app/[locale]/manage/users/[userId]/general/_components/_delete-user-button.tsx b/apps/nextjs/src/app/[locale]/manage/users/[userId]/general/_components/_delete-user-button.tsx index c23202e79..7ca9f64d6 100644 --- a/apps/nextjs/src/app/[locale]/manage/users/[userId]/general/_components/_delete-user-button.tsx +++ b/apps/nextjs/src/app/[locale]/manage/users/[userId]/general/_components/_delete-user-button.tsx @@ -6,11 +6,10 @@ import { Button } from "@mantine/core"; import type { RouterOutputs } from "@homarr/api"; import { clientApi } from "@homarr/api/client"; +import { revalidatePathActionAsync } from "@homarr/common/client"; import { useConfirmModal } from "@homarr/modals"; import { useI18n } from "@homarr/translation/client"; -import { revalidatePathActionAsync } from "~/app/revalidatePathAction"; - interface DeleteUserButtonProps { user: RouterOutputs["user"]["getById"]; } diff --git a/apps/nextjs/src/app/[locale]/manage/users/[userId]/general/_components/_profile-avatar-form.tsx b/apps/nextjs/src/app/[locale]/manage/users/[userId]/general/_components/_profile-avatar-form.tsx index 7a61bc3de..00b7c0deb 100644 --- a/apps/nextjs/src/app/[locale]/manage/users/[userId]/general/_components/_profile-avatar-form.tsx +++ b/apps/nextjs/src/app/[locale]/manage/users/[userId]/general/_components/_profile-avatar-form.tsx @@ -7,13 +7,12 @@ import { IconPencil, IconPhotoEdit, IconPhotoX } from "@tabler/icons-react"; import type { RouterOutputs } from "@homarr/api"; import { clientApi } from "@homarr/api/client"; +import { revalidatePathActionAsync } from "@homarr/common/client"; import { useConfirmModal } from "@homarr/modals"; import { showErrorNotification, showSuccessNotification } from "@homarr/notifications"; import { useI18n, useScopedI18n } from "@homarr/translation/client"; import { UserAvatar } from "@homarr/ui"; -import { revalidatePathActionAsync } from "~/app/revalidatePathAction"; - interface UserProfileAvatarForm { user: RouterOutputs["user"]["getById"]; } diff --git a/apps/nextjs/src/app/[locale]/manage/users/[userId]/general/_components/_profile-form.tsx b/apps/nextjs/src/app/[locale]/manage/users/[userId]/general/_components/_profile-form.tsx index 0921ccd61..0099dcbd8 100644 --- a/apps/nextjs/src/app/[locale]/manage/users/[userId]/general/_components/_profile-form.tsx +++ b/apps/nextjs/src/app/[locale]/manage/users/[userId]/general/_components/_profile-form.tsx @@ -5,13 +5,12 @@ import { Button, Group, Stack, TextInput } from "@mantine/core"; import type { RouterInputs, RouterOutputs } from "@homarr/api"; import { clientApi } from "@homarr/api/client"; +import { revalidatePathActionAsync } from "@homarr/common/client"; import { useZodForm } from "@homarr/form"; import { showErrorNotification, showSuccessNotification } from "@homarr/notifications"; import { useI18n } from "@homarr/translation/client"; import { validation } from "@homarr/validation"; -import { revalidatePathActionAsync } from "~/app/revalidatePathAction"; - interface UserProfileFormProps { user: RouterOutputs["user"]["getById"]; } diff --git a/apps/nextjs/src/app/[locale]/manage/users/[userId]/security/_components/_change-password-form.tsx b/apps/nextjs/src/app/[locale]/manage/users/[userId]/security/_components/_change-password-form.tsx index 961ed23f3..e8ea4e96c 100644 --- a/apps/nextjs/src/app/[locale]/manage/users/[userId]/security/_components/_change-password-form.tsx +++ b/apps/nextjs/src/app/[locale]/manage/users/[userId]/security/_components/_change-password-form.tsx @@ -5,14 +5,13 @@ import { Button, Fieldset, Group, PasswordInput, Stack } from "@mantine/core"; import type { RouterInputs, RouterOutputs } from "@homarr/api"; import { clientApi } from "@homarr/api/client"; import { useSession } from "@homarr/auth/client"; +import { revalidatePathActionAsync } from "@homarr/common/client"; import { useZodForm } from "@homarr/form"; import { showErrorNotification, showSuccessNotification } from "@homarr/notifications"; import { useI18n } from "@homarr/translation/client"; import { CustomPasswordInput } from "@homarr/ui"; import { validation } from "@homarr/validation"; -import { revalidatePathActionAsync } from "~/app/revalidatePathAction"; - interface ChangePasswordFormProps { user: RouterOutputs["user"]["getById"]; } diff --git a/apps/nextjs/src/app/[locale]/manage/users/groups/[id]/_delete-group.tsx b/apps/nextjs/src/app/[locale]/manage/users/groups/[id]/_delete-group.tsx index 5941a31a2..2ee946944 100644 --- a/apps/nextjs/src/app/[locale]/manage/users/groups/[id]/_delete-group.tsx +++ b/apps/nextjs/src/app/[locale]/manage/users/groups/[id]/_delete-group.tsx @@ -5,12 +5,11 @@ import { useRouter } from "next/navigation"; import { Button } from "@mantine/core"; import { clientApi } from "@homarr/api/client"; +import { revalidatePathActionAsync } from "@homarr/common/client"; import { useConfirmModal } from "@homarr/modals"; import { showErrorNotification, showSuccessNotification } from "@homarr/notifications"; import { useI18n, useScopedI18n } from "@homarr/translation/client"; -import { revalidatePathActionAsync } from "~/app/revalidatePathAction"; - interface DeleteGroupProps { group: { id: string; diff --git a/apps/nextjs/src/app/[locale]/manage/users/groups/[id]/_rename-group-form.tsx b/apps/nextjs/src/app/[locale]/manage/users/groups/[id]/_rename-group-form.tsx index fea242030..f5241161f 100644 --- a/apps/nextjs/src/app/[locale]/manage/users/groups/[id]/_rename-group-form.tsx +++ b/apps/nextjs/src/app/[locale]/manage/users/groups/[id]/_rename-group-form.tsx @@ -4,13 +4,12 @@ import { useCallback } from "react"; import { Button, Group, Stack, TextInput } from "@mantine/core"; import { clientApi } from "@homarr/api/client"; +import { revalidatePathActionAsync } from "@homarr/common/client"; import { useZodForm } from "@homarr/form"; import { showErrorNotification, showSuccessNotification } from "@homarr/notifications"; import { useI18n } from "@homarr/translation/client"; import { validation } from "@homarr/validation"; -import { revalidatePathActionAsync } from "~/app/revalidatePathAction"; - interface RenameGroupFormProps { group: { id: string; diff --git a/apps/nextjs/src/app/[locale]/manage/users/groups/[id]/members/_add-group-member.tsx b/apps/nextjs/src/app/[locale]/manage/users/groups/[id]/members/_add-group-member.tsx index adc364f99..745af9e3e 100644 --- a/apps/nextjs/src/app/[locale]/manage/users/groups/[id]/members/_add-group-member.tsx +++ b/apps/nextjs/src/app/[locale]/manage/users/groups/[id]/members/_add-group-member.tsx @@ -3,10 +3,10 @@ import { useCallback } from "react"; import { clientApi } from "@homarr/api/client"; +import { revalidatePathActionAsync } from "@homarr/common/client"; import { useModalAction } from "@homarr/modals"; import { useScopedI18n } from "@homarr/translation/client"; -import { revalidatePathActionAsync } from "~/app/revalidatePathAction"; import { UserSelectModal } from "~/components/access/user-select-modal"; import { MobileAffixButton } from "~/components/manage/mobile-affix-button"; diff --git a/apps/nextjs/src/app/[locale]/manage/users/groups/[id]/members/_remove-group-member.tsx b/apps/nextjs/src/app/[locale]/manage/users/groups/[id]/members/_remove-group-member.tsx index be9b9ff78..1fba4ccaa 100644 --- a/apps/nextjs/src/app/[locale]/manage/users/groups/[id]/members/_remove-group-member.tsx +++ b/apps/nextjs/src/app/[locale]/manage/users/groups/[id]/members/_remove-group-member.tsx @@ -4,11 +4,10 @@ import { useCallback } from "react"; import { Button } from "@mantine/core"; import { clientApi } from "@homarr/api/client"; +import { revalidatePathActionAsync } from "@homarr/common/client"; import { useConfirmModal } from "@homarr/modals"; import { useI18n, useScopedI18n } from "@homarr/translation/client"; -import { revalidatePathActionAsync } from "~/app/revalidatePathAction"; - interface RemoveGroupMemberProps { groupId: string; user: { id: string; name: string | null }; diff --git a/apps/nextjs/src/app/[locale]/manage/users/groups/_add-group.tsx b/apps/nextjs/src/app/[locale]/manage/users/groups/_add-group.tsx index ed6e6dd3d..97d135589 100644 --- a/apps/nextjs/src/app/[locale]/manage/users/groups/_add-group.tsx +++ b/apps/nextjs/src/app/[locale]/manage/users/groups/_add-group.tsx @@ -4,13 +4,13 @@ import { useCallback } from "react"; import { Button, Group, Stack, TextInput } from "@mantine/core"; import { clientApi } from "@homarr/api/client"; +import { revalidatePathActionAsync } from "@homarr/common/client"; import { useZodForm } from "@homarr/form"; import { createModal, useModalAction } from "@homarr/modals"; import { showErrorNotification, showSuccessNotification } from "@homarr/notifications"; import { useI18n } from "@homarr/translation/client"; import { validation } from "@homarr/validation"; -import { revalidatePathActionAsync } from "~/app/revalidatePathAction"; import { MobileAffixButton } from "~/components/manage/mobile-affix-button"; export const AddGroup = () => { diff --git a/apps/nextjs/src/app/[locale]/manage/users/invites/_components/invite-list.tsx b/apps/nextjs/src/app/[locale]/manage/users/invites/_components/invite-list.tsx index d5aea273e..8e6d59e62 100644 --- a/apps/nextjs/src/app/[locale]/manage/users/invites/_components/invite-list.tsx +++ b/apps/nextjs/src/app/[locale]/manage/users/invites/_components/invite-list.tsx @@ -11,11 +11,10 @@ import { MantineReactTable } from "mantine-react-table"; import type { RouterOutputs } from "@homarr/api"; import { clientApi } from "@homarr/api/client"; import { useConfirmModal, useModalAction } from "@homarr/modals"; +import { InviteCreateModal } from "@homarr/modals-collection"; import { useScopedI18n } from "@homarr/translation/client"; import { useTranslatedMantineReactTable } from "@homarr/ui/hooks"; -import { InviteCreateModal } from "./invite-create-modal"; - dayjs.extend(relativeTime); interface InviteListComponentProps { diff --git a/apps/nextjs/src/components/manage/boards/add-board-modal.tsx b/apps/nextjs/src/components/manage/boards/add-board-modal.tsx deleted file mode 100644 index e3bf35f8a..000000000 --- a/apps/nextjs/src/components/manage/boards/add-board-modal.tsx +++ /dev/null @@ -1,66 +0,0 @@ -import { Button, Group, InputWrapper, Slider, Stack, Switch, TextInput } from "@mantine/core"; - -import { useZodForm } from "@homarr/form"; -import { createModal } from "@homarr/modals"; -import { useI18n } from "@homarr/translation/client"; -import { validation } from "@homarr/validation"; -import { createCustomErrorParams } from "@homarr/validation/form"; - -interface InnerProps { - boardNames: string[]; - onSuccess: (props: { name: string; columnCount: number; isPublic: boolean }) => Promise; -} - -export const AddBoardModal = createModal(({ actions, innerProps }) => { - const t = useI18n(); - const form = useZodForm( - validation.board.create.refine((value) => !innerProps.boardNames.includes(value.name), { - params: createCustomErrorParams("boardAlreadyExists"), - path: ["name"], - }), - { - initialValues: { - name: "", - columnCount: 10, - isPublic: false, - }, - }, - ); - - const columnCountChecks = validation.board.create.shape.columnCount._def.checks; - const minColumnCount = columnCountChecks.find((check) => check.kind === "min")?.value; - const maxColumnCount = columnCountChecks.find((check) => check.kind === "max")?.value; - - return ( -
{ - void innerProps.onSuccess(values); - actions.closeModal(); - })} - > - - - - - - - - - - - - - -
- ); -}).withOptions({ - defaultTitle: (t) => t("management.page.board.action.new.label"), -}); diff --git a/packages/api/src/client.ts b/packages/api/src/client.ts index 48f89771d..0d7c95f38 100644 --- a/packages/api/src/client.ts +++ b/packages/api/src/client.ts @@ -1,5 +1,25 @@ -import { createTRPCReact } from "@trpc/react-query"; +import { createTRPCClient, createTRPCReact, httpLink } from "@trpc/react-query"; +import SuperJSON from "superjson"; import type { AppRouter } from "."; export const clientApi = createTRPCReact(); +export const fetchApi = createTRPCClient({ + links: [ + httpLink({ + url: `${getBaseUrl()}/api/trpc`, + transformer: SuperJSON, + headers() { + const headers = new Headers(); + headers.set("x-trpc-source", "fetch"); + return headers; + }, + }), + ], +}); + +function getBaseUrl() { + if (typeof window !== "undefined") return window.location.origin; + if (process.env.VERCEL_URL) return `https://${process.env.VERCEL_URL}`; + return `http://localhost:${process.env.PORT ?? 3000}`; +} diff --git a/packages/api/src/router/board.ts b/packages/api/src/router/board.ts index 0a937f374..97931de95 100644 --- a/packages/api/src/router/board.ts +++ b/packages/api/src/router/board.ts @@ -26,6 +26,20 @@ import { createTRPCRouter, permissionRequiredProcedure, protectedProcedure, publ import { throwIfActionForbiddenAsync } from "./board/board-access"; export const boardRouter = createTRPCRouter({ + exists: permissionRequiredProcedure + .requiresPermission("board-create") + .input(z.string()) + .query(async ({ ctx, input: name }) => { + try { + await noBoardWithSimilarNameAsync(ctx.db, name); + return false; + } catch (error) { + if (error instanceof TRPCError && error.code === "CONFLICT") { + return true; + } + throw error; + } + }), getAllBoards: publicProcedure.query(async ({ ctx }) => { const userId = ctx.session?.user.id; const permissionsOfCurrentUserWhenPresent = await ctx.db.query.boardUserPermissions.findMany({ diff --git a/packages/common/src/client.ts b/packages/common/src/client.ts index ce5720136..1a9fcaadf 100644 --- a/packages/common/src/client.ts +++ b/packages/common/src/client.ts @@ -1 +1,2 @@ export * from "./app-url/client"; +export * from "./revalidate-path-action"; diff --git a/apps/nextjs/src/app/revalidatePathAction.ts b/packages/common/src/revalidate-path-action.ts similarity index 100% rename from apps/nextjs/src/app/revalidatePathAction.ts rename to packages/common/src/revalidate-path-action.ts diff --git a/packages/modals-collection/eslint.config.js b/packages/modals-collection/eslint.config.js new file mode 100644 index 000000000..5b19b6f8a --- /dev/null +++ b/packages/modals-collection/eslint.config.js @@ -0,0 +1,9 @@ +import baseConfig from "@homarr/eslint-config/base"; + +/** @type {import('typescript-eslint').Config} */ +export default [ + { + ignores: [], + }, + ...baseConfig, +]; diff --git a/packages/modals-collection/index.ts b/packages/modals-collection/index.ts new file mode 100644 index 000000000..3bd16e178 --- /dev/null +++ b/packages/modals-collection/index.ts @@ -0,0 +1 @@ +export * from "./src"; diff --git a/packages/modals-collection/package.json b/packages/modals-collection/package.json new file mode 100644 index 000000000..c67106f62 --- /dev/null +++ b/packages/modals-collection/package.json @@ -0,0 +1,47 @@ +{ + "name": "@homarr/modals-collection", + "private": true, + "version": "0.1.0", + "type": "module", + "exports": { + ".": "./index.ts" + }, + "typesVersions": { + "*": { + "*": [ + "src/*" + ] + } + }, + "license": "MIT", + "scripts": { + "clean": "rm -rf .turbo node_modules", + "lint": "eslint", + "format": "prettier --check . --ignore-path ../../.gitignore", + "typecheck": "tsc --noEmit" + }, + "dependencies": { + "@homarr/api": "workspace:^0.1.0", + "@homarr/common": "workspace:^0.1.0", + "@homarr/form": "workspace:^0.1.0", + "@homarr/modals": "workspace:^0.1.0", + "@homarr/notifications": "workspace:^0.1.0", + "@homarr/old-schema": "workspace:^0.1.0", + "@homarr/translation": "workspace:^0.1.0", + "@homarr/ui": "workspace:^0.1.0", + "@homarr/validation": "workspace:^0.1.0", + "@mantine/core": "^7.12.2", + "@tabler/icons-react": "^3.17.0", + "dayjs": "^1.11.13", + "next": "^14.2.11", + "react": "^18.3.1" + }, + "devDependencies": { + "@homarr/eslint-config": "workspace:^0.2.0", + "@homarr/prettier-config": "workspace:^0.1.0", + "@homarr/tsconfig": "workspace:^0.1.0", + "eslint": "^9.10.0", + "typescript": "^5.6.2" + }, + "prettier": "@homarr/prettier-config" +} diff --git a/packages/modals-collection/src/boards/add-board-modal.tsx b/packages/modals-collection/src/boards/add-board-modal.tsx new file mode 100644 index 000000000..2573ffe2c --- /dev/null +++ b/packages/modals-collection/src/boards/add-board-modal.tsx @@ -0,0 +1,128 @@ +import { Button, Group, InputWrapper, Slider, Stack, Switch, TextInput } from "@mantine/core"; +import { useDebouncedValue } from "@mantine/hooks"; +import { IconAlertTriangle, IconCircleCheck } from "@tabler/icons-react"; + +import { clientApi } from "@homarr/api/client"; +import type { MaybePromise } from "@homarr/common/types"; +import { useZodForm } from "@homarr/form"; +import { createModal } from "@homarr/modals"; +import { showErrorNotification, showSuccessNotification } from "@homarr/notifications"; +import { useI18n } from "@homarr/translation/client"; +import { validation } from "@homarr/validation"; + +interface InnerProps { + onSettled: () => MaybePromise; +} + +export const AddBoardModal = createModal(({ actions, innerProps }) => { + const t = useI18n(); + const form = useZodForm(validation.board.create, { + mode: "controlled", + initialValues: { + name: "", + columnCount: 10, + isPublic: false, + }, + }); + const { mutate, isPending } = clientApi.board.createBoard.useMutation({ + onSettled: innerProps.onSettled, + }); + + const boardNameStatus = useBoardNameStatus(form.values.name); + + const columnCountChecks = validation.board.create.shape.columnCount._def.checks; + const minColumnCount = columnCountChecks.find((check) => check.kind === "min")?.value; + const maxColumnCount = columnCountChecks.find((check) => check.kind === "max")?.value; + + return ( +
{ + // Prevent submit before name availability check + if (!boardNameStatus.canSubmit) return; + mutate(values, { + onSuccess: () => { + actions.closeModal(); + showSuccessNotification({ + title: "Board created", + message: `Board ${values.name} has been created`, + }); + }, + onError() { + showErrorNotification({ + title: "Failed to create board", + message: `Board ${values.name} could not be created`, + }); + }, + }); + })} + > + + + {boardNameStatus.description.icon ? : null} + {boardNameStatus.description.label} + + ) : null + } + /> + + + + + + + + + + + +
+ ); +}).withOptions({ + defaultTitle: (t) => t("management.page.board.action.new.label"), +}); + +export const useBoardNameStatus = (name: string) => { + const t = useI18n(); + const [debouncedName] = useDebouncedValue(name, 250); + const { data: boardExists, isLoading } = clientApi.board.exists.useQuery(debouncedName, { + enabled: validation.board.create.shape.name.safeParse(debouncedName).success, + }); + + return { + canSubmit: !boardExists && !isLoading, + description: + debouncedName.trim() === "" + ? undefined + : isLoading + ? { + label: "Checking availability...", + } + : boardExists === undefined + ? undefined + : boardExists + ? { + icon: IconAlertTriangle, + label: t("common.zod.errors.custom.boardAlreadyExists"), // The board ${debouncedName} already exists + color: "red", + } + : { + icon: IconCircleCheck, + label: `${debouncedName} is available`, + color: "green", + }, + }; +}; diff --git a/apps/nextjs/src/components/manage/boards/import-board-modal.tsx b/packages/modals-collection/src/boards/import-board-modal.tsx similarity index 85% rename from apps/nextjs/src/components/manage/boards/import-board-modal.tsx rename to packages/modals-collection/src/boards/import-board-modal.tsx index bf201477f..82caa0b75 100644 --- a/apps/nextjs/src/components/manage/boards/import-board-modal.tsx +++ b/packages/modals-collection/src/boards/import-board-modal.tsx @@ -3,6 +3,7 @@ import { Button, Fieldset, FileInput, Grid, Group, Radio, Stack, Switch, TextInp import { IconFileUpload } from "@tabler/icons-react"; import { clientApi } from "@homarr/api/client"; +import { revalidatePathActionAsync } from "@homarr/common/client"; import { useZodForm } from "@homarr/form"; import { createModal } from "@homarr/modals"; import { showErrorNotification, showSuccessNotification } from "@homarr/notifications"; @@ -10,24 +11,21 @@ import { oldmarrConfigSchema } from "@homarr/old-schema"; import { useScopedI18n } from "@homarr/translation/client"; import { SelectWithDescription } from "@homarr/ui"; import type { OldmarrImportConfiguration } from "@homarr/validation"; -import { createOldmarrImportConfigurationSchema, superRefineJsonImportFile, z } from "@homarr/validation"; +import { oldmarrImportConfigurationSchema, superRefineJsonImportFile, z } from "@homarr/validation"; -import { revalidatePathActionAsync } from "~/app/revalidatePathAction"; +import { useBoardNameStatus } from "./add-board-modal"; -interface InnerProps { - boardNames: string[]; -} - -export const ImportBoardModal = createModal(({ actions, innerProps }) => { +export const ImportBoardModal = createModal(({ actions }) => { const tOldImport = useScopedI18n("board.action.oldImport"); const tCommon = useScopedI18n("common"); const [fileValid, setFileValid] = useState(true); const form = useZodForm( z.object({ file: z.instanceof(File).nullable().superRefine(superRefineJsonImportFile), - configuration: createOldmarrImportConfigurationSchema(innerProps.boardNames), + configuration: oldmarrImportConfigurationSchema, }), { + mode: "controlled", initialValues: { // eslint-disable-next-line @typescript-eslint/no-non-null-assertion file: null!, @@ -67,6 +65,7 @@ export const ImportBoardModal = createModal(({ actions, innerProps } ); const { mutateAsync, isPending } = clientApi.board.importOldmarrConfig.useMutation(); + const boardNameStatus = useBoardNameStatus(form.values.configuration.name); const handleSubmitAsync = async (values: { file: File; configuration: OldmarrImportConfiguration }) => { const formData = new FormData(); @@ -94,7 +93,7 @@ export const ImportBoardModal = createModal(({ actions, innerProps } return (
{ - if (!fileValid) { + if (!fileValid || !boardNameStatus.canSubmit) { return; } @@ -139,7 +138,19 @@ export const ImportBoardModal = createModal(({ actions, innerProps } - + + {boardNameStatus.description.icon ? : null} + {boardNameStatus.description.label} + + ) : null + } + {...form.getInputProps("configuration.name")} + /> - z.object({ - name: boardNameSchema.refine( - (value) => { - return existingBoardNames.every((name) => name.toLowerCase().trim() !== value.toLowerCase().trim()); - }, - { - params: createCustomErrorParams("boardAlreadyExists"), - }, - ), - onlyImportApps: z.boolean().default(false), - distinctAppsByHref: z.boolean().default(true), - screenSize: z.enum(["lg", "md", "sm"]).default("lg"), - sidebarBehaviour: z.enum(["remove-items", "last-section"]).default("last-section"), - }); - -export type OldmarrImportConfiguration = z.infer>; +export const oldmarrImportConfigurationSchema = z.object({ + name: boardNameSchema, + onlyImportApps: z.boolean().default(false), + distinctAppsByHref: z.boolean().default(true), + screenSize: z.enum(["lg", "md", "sm"]).default("lg"), + sidebarBehaviour: z.enum(["remove-items", "last-section"]).default("last-section"), +}); + +export type OldmarrImportConfiguration = z.infer; export const superRefineJsonImportFile = (value: File | null, context: z.RefinementCtx) => { if (!value) { @@ -121,7 +113,7 @@ export const superRefineJsonImportFile = (value: File | null, context: z.Refinem const importJsonFileSchema = zfd.formData({ file: zfd.file().superRefine(superRefineJsonImportFile), - configuration: zfd.json(createOldmarrImportConfigurationSchema([])), + configuration: zfd.json(oldmarrImportConfigurationSchema), }); const savePermissionsSchema = createSavePermissionsSchema(zodEnumFromArray(boardPermissions)); diff --git a/packages/validation/src/index.ts b/packages/validation/src/index.ts index 6361c31a7..b03232328 100644 --- a/packages/validation/src/index.ts +++ b/packages/validation/src/index.ts @@ -26,5 +26,5 @@ export { type BoardItemAdvancedOptions, } from "./shared"; export { passwordRequirements } from "./user"; -export { createOldmarrImportConfigurationSchema, superRefineJsonImportFile } from "./board"; +export { oldmarrImportConfigurationSchema, superRefineJsonImportFile } from "./board"; export type { OldmarrImportConfiguration } from "./board"; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 031a1e136..6da03bb70 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,10 +21,10 @@ importers: version: 2.1.2(@types/node@20.16.5)(typescript@5.6.2) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.1(vite@5.2.11(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.45))(terser@5.32.0)) + version: 4.3.1(vite@5.4.5(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) '@vitest/coverage-v8': specifier: ^2.1.1 - version: 2.1.1(vitest@2.1.1(@types/node@20.16.5)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.45))(terser@5.32.0)) + version: 2.1.1(vitest@2.1.1(@types/node@20.16.5)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) '@vitest/ui': specifier: ^2.1.1 version: 2.1.1(vitest@2.1.1) @@ -48,10 +48,10 @@ importers: version: 5.6.2 vite-tsconfig-paths: specifier: ^5.0.1 - version: 5.0.1(typescript@5.6.2)(vite@5.2.11(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.45))(terser@5.32.0)) + version: 5.0.1(typescript@5.6.2)(vite@5.4.5(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) vitest: specifier: ^2.1.1 - version: 2.1.1(@types/node@20.16.5)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.45))(terser@5.32.0) + version: 2.1.1(@types/node@20.16.5)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) apps/nextjs: dependencies: @@ -91,6 +91,9 @@ importers: '@homarr/modals': specifier: workspace:^0.1.0 version: link:../../packages/modals + '@homarr/modals-collection': + specifier: workspace:^0.1.0 + version: link:../../packages/modals-collection '@homarr/notifications': specifier: workspace:^0.1.0 version: link:../../packages/notifications @@ -132,7 +135,7 @@ importers: version: 7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tiptap/extension-link@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6))(@tiptap/react@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@million/lint': specifier: 1.0.0-rc.84 - version: 1.0.0-rc.84(encoding@0.1.13)(rollup@4.17.2) + version: 1.0.0-rc.84(rollup@4.21.3)(webpack-sources@3.2.3) '@t3-oss/env-nextjs': specifier: ^0.11.1 version: 0.11.1(typescript@5.6.2)(zod@3.23.8) @@ -198,7 +201,7 @@ importers: version: 14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) postcss-preset-mantine: specifier: ^1.17.0 - version: 1.17.0(postcss@8.4.45) + version: 1.17.0(postcss@8.4.47) prismjs: specifier: ^1.29.0 version: 1.29.0 @@ -222,7 +225,7 @@ importers: version: 2.2.1 swagger-ui-react: specifier: ^5.17.14 - version: 5.17.14(@types/react@18.3.6)(ramda@0.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 5.17.14(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) use-deep-compare-effect: specifier: ^1.8.1 version: 1.8.1(react@18.3.1) @@ -262,7 +265,7 @@ importers: version: 9.10.0 node-loader: specifier: ^2.0.0 - version: 2.0.0(webpack@5.91.0) + version: 2.0.0(webpack@5.94.0) prettier: specifier: ^3.3.3 version: 3.3.3 @@ -511,7 +514,7 @@ importers: version: 4.0.2 next: specifier: ^14.2.11 - version: 14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) + version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) react: specifier: ^18.3.1 version: 18.3.1 @@ -572,7 +575,7 @@ importers: version: 0.11.1(typescript@5.6.2)(zod@3.23.8) bcrypt: specifier: ^5.1.1 - version: 5.1.1(encoding@0.1.13) + version: 5.1.1 cookies: specifier: ^0.9.1 version: 0.9.1 @@ -581,10 +584,10 @@ importers: version: 7.2.0 next: specifier: ^14.2.11 - version: 14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) + version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) next-auth: specifier: 5.0.0-beta.21 - version: 5.0.0-beta.21(next@14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0))(react@18.3.1) + version: 5.0.0-beta.21(next@14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0))(react@18.3.1) react: specifier: ^18.3.1 version: 18.3.1 @@ -658,7 +661,7 @@ importers: version: 1.11.13 next: specifier: ^14.2.11 - version: 14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) + version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) react: specifier: ^18.3.1 version: 18.3.1 @@ -736,7 +739,7 @@ importers: dependencies: '@extractus/feed-extractor': specifier: ^7.1.3 - version: 7.1.3(encoding@0.1.13) + version: 7.1.3 '@homarr/analytics': specifier: workspace:^0.1.0 version: link:../analytics @@ -849,7 +852,7 @@ importers: version: 0.24.2 drizzle-orm: specifier: ^0.33.0 - version: 0.33.0(@prisma/client@5.16.1)(@types/better-sqlite3@7.6.11)(@types/react@18.3.6)(better-sqlite3@11.3.0)(mysql2@3.11.3)(react@18.3.1) + version: 0.33.0(@types/better-sqlite3@7.6.11)(@types/react@18.3.6)(better-sqlite3@11.3.0)(mysql2@3.11.3)(react@18.3.1) mysql2: specifier: 3.11.3 version: 3.11.3 @@ -985,7 +988,7 @@ importers: version: link:../validation '@jellyfin/sdk': specifier: ^0.10.0 - version: 0.10.0(axios@1.7.2) + version: 0.10.0(axios@1.7.7) devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1065,6 +1068,67 @@ importers: specifier: ^5.6.2 version: 5.6.2 + packages/modals-collection: + dependencies: + '@homarr/api': + specifier: workspace:^0.1.0 + version: link:../api + '@homarr/common': + specifier: workspace:^0.1.0 + version: link:../common + '@homarr/form': + specifier: workspace:^0.1.0 + version: link:../form + '@homarr/modals': + specifier: workspace:^0.1.0 + version: link:../modals + '@homarr/notifications': + specifier: workspace:^0.1.0 + version: link:../notifications + '@homarr/old-schema': + specifier: workspace:^0.1.0 + version: link:../old-schema + '@homarr/translation': + specifier: workspace:^0.1.0 + version: link:../translation + '@homarr/ui': + specifier: workspace:^0.1.0 + version: link:../ui + '@homarr/validation': + specifier: workspace:^0.1.0 + version: link:../validation + '@mantine/core': + specifier: ^7.12.2 + version: 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@tabler/icons-react': + specifier: ^3.17.0 + version: 3.17.0(react@18.3.1) + dayjs: + specifier: ^1.11.13 + version: 1.11.13 + next: + specifier: ^14.2.11 + version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) + react: + specifier: ^18.3.1 + version: 18.3.1 + devDependencies: + '@homarr/eslint-config': + specifier: workspace:^0.2.0 + version: link:../../tooling/eslint + '@homarr/prettier-config': + specifier: workspace:^0.1.0 + version: link:../../tooling/prettier + '@homarr/tsconfig': + specifier: workspace:^0.1.0 + version: link:../../tooling/typescript + eslint: + specifier: ^9.10.0 + version: 9.10.0 + typescript: + specifier: ^5.6.2 + version: 5.6.2 + packages/notifications: dependencies: '@homarr/ui': @@ -1260,7 +1324,7 @@ importers: version: 2.9.3(@types/react@18.3.6)(react@18.3.1) next: specifier: ^14.2.11 - version: 14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) + version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) react: specifier: ^18.3.1 version: 18.3.1 @@ -1343,7 +1407,7 @@ importers: version: 2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.17.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next: specifier: ^14.2.11 - version: 14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) + version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) react: specifier: ^18.3.1 version: 18.3.1 @@ -1405,7 +1469,7 @@ importers: dependencies: '@extractus/feed-extractor': specifier: ^7.1.3 - version: 7.1.3(encoding@0.1.13) + version: 7.1.3 '@homarr/api': specifier: workspace:^0.1.0 version: link:../api @@ -1513,7 +1577,7 @@ importers: version: 2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.17.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next: specifier: ^14.2.11 - version: 14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) + version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) react: specifier: ^18.3.1 version: 18.3.1 @@ -1586,7 +1650,7 @@ importers: dependencies: '@ianvs/prettier-plugin-sort-imports': specifier: ^4.3.1 - version: 4.3.1(@vue/compiler-sfc@3.4.31)(prettier@3.3.3) + version: 4.3.1(prettier@3.3.3) prettier: specifier: ^3.3.3 version: 3.3.3 @@ -1633,124 +1697,99 @@ packages: resolution: {integrity: sha512-Zm10TczcMLounWqC42nMkXQ7XKLqjzLrd5ia022oBKDUZqAFVg2y9d1quQVNV4FlXyg9MKDdfMjpKQRmzEGaog==} engines: {node: '>=16'} - '@babel/code-frame@7.24.6': - resolution: {integrity: sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==} + '@babel/code-frame@7.24.7': + resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.24.6': - resolution: {integrity: sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==} + '@babel/compat-data@7.25.4': + resolution: {integrity: sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==} engines: {node: '>=6.9.0'} '@babel/core@7.24.6': resolution: {integrity: sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==} engines: {node: '>=6.9.0'} - '@babel/generator@7.24.6': - resolution: {integrity: sha512-S7m4eNa6YAPJRHmKsLHIDJhNAGNKoWNiWefz1MBbpnt8g9lvMDl1hir4P9bo/57bQEmuwEhnRU/AMWsD0G/Fbg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-compilation-targets@7.24.6': - resolution: {integrity: sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==} + '@babel/core@7.25.2': + resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==} engines: {node: '>=6.9.0'} - '@babel/helper-environment-visitor@7.24.6': - resolution: {integrity: sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g==} + '@babel/generator@7.25.6': + resolution: {integrity: sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==} engines: {node: '>=6.9.0'} - '@babel/helper-function-name@7.24.6': - resolution: {integrity: sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w==} + '@babel/helper-compilation-targets@7.25.2': + resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==} engines: {node: '>=6.9.0'} - '@babel/helper-hoist-variables@7.24.6': - resolution: {integrity: sha512-SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA==} + '@babel/helper-module-imports@7.24.7': + resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.24.6': - resolution: {integrity: sha512-a26dmxFJBF62rRO9mmpgrfTLsAuyHk4e1hKTUkD/fcMfynt8gvEKwQPQDVxWhca8dHoDck+55DFt42zV0QMw5g==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-transforms@7.24.6': - resolution: {integrity: sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==} + '@babel/helper-module-transforms@7.25.2': + resolution: {integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-plugin-utils@7.24.6': - resolution: {integrity: sha512-MZG/JcWfxybKwsA9N9PmtF2lOSFSEMVCpIRrbxccZFLJPrJciJdG/UhSh5W96GEteJI2ARqm5UAHxISwRDLSNg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-simple-access@7.24.6': - resolution: {integrity: sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==} + '@babel/helper-plugin-utils@7.24.8': + resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==} engines: {node: '>=6.9.0'} - '@babel/helper-split-export-declaration@7.24.6': - resolution: {integrity: sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-string-parser@7.24.6': - resolution: {integrity: sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==} + '@babel/helper-simple-access@7.24.7': + resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} engines: {node: '>=6.9.0'} '@babel/helper-string-parser@7.24.8': resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.24.6': - resolution: {integrity: sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==} - engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.24.7': resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.24.6': - resolution: {integrity: sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ==} + '@babel/helper-validator-option@7.24.8': + resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.24.6': - resolution: {integrity: sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA==} + '@babel/helpers@7.25.6': + resolution: {integrity: sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==} engines: {node: '>=6.9.0'} - '@babel/highlight@7.24.6': - resolution: {integrity: sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==} + '@babel/highlight@7.24.7': + resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.24.7': - resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==} - engines: {node: '>=6.0.0'} - hasBin: true - '@babel/parser@7.25.6': resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/plugin-transform-react-jsx-self@7.24.5': - resolution: {integrity: sha512-RtCJoUO2oYrYwFPtR1/jkoBEcFuI1ae9a9IMxeyAVa3a1Ap4AnxmyIKG2b2FaJKqkidw/0cxRbWN+HOs6ZWd1w==} + '@babel/plugin-transform-react-jsx-self@7.24.7': + resolution: {integrity: sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-source@7.24.1': - resolution: {integrity: sha512-1v202n7aUq4uXAieRTKcwPzNyphlCuqHHDcdSNc+vdhoTEZcFMh+L5yZuCmGaIO7bs1nJUNfHB89TZyoL48xNA==} + '@babel/plugin-transform-react-jsx-source@7.24.7': + resolution: {integrity: sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/runtime-corejs3@7.24.5': - resolution: {integrity: sha512-GWO0mgzNMLWaSYM4z4NVIuY0Cd1fl8cPnuetuddu5w/qGuvt5Y7oUi/kvvQGK9xgOkFJDQX2heIvTRn/OQ1XTg==} + '@babel/runtime-corejs3@7.25.6': + resolution: {integrity: sha512-Gz0Nrobx8szge6kQQ5Z5MX9L3ObqNwCQY1PSwSNzreFL7aHGxv8Fp2j3ETV6/wWdbiV+mW6OSm8oQhg3Tcsniw==} engines: {node: '>=6.9.0'} - '@babel/runtime@7.24.5': - resolution: {integrity: sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==} + '@babel/runtime@7.25.6': + resolution: {integrity: sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==} engines: {node: '>=6.9.0'} - '@babel/template@7.24.6': - resolution: {integrity: sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw==} + '@babel/template@7.25.0': + resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.24.6': - resolution: {integrity: sha512-OsNjaJwT9Zn8ozxcfoBc+RaHdj3gFmCmYoQLUII1o6ZrUwku0BMg80FoOTPx+Gi6XhcQxAYE4xyjPTo4SxEQqw==} + '@babel/traverse@7.25.6': + resolution: {integrity: sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==} engines: {node: '>=6.9.0'} '@babel/types@7.24.6': @@ -1834,6 +1873,12 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.18.20': resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} engines: {node: '>=12'} @@ -1852,6 +1897,12 @@ packages: cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.18.20': resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} engines: {node: '>=12'} @@ -1870,6 +1921,12 @@ packages: cpu: [arm] os: [android] + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.18.20': resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} engines: {node: '>=12'} @@ -1888,6 +1945,12 @@ packages: cpu: [x64] os: [android] + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.18.20': resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} engines: {node: '>=12'} @@ -1906,6 +1969,12 @@ packages: cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.18.20': resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} engines: {node: '>=12'} @@ -1924,6 +1993,12 @@ packages: cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.18.20': resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} engines: {node: '>=12'} @@ -1942,6 +2017,12 @@ packages: cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.18.20': resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} engines: {node: '>=12'} @@ -1960,6 +2041,12 @@ packages: cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.18.20': resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} engines: {node: '>=12'} @@ -1978,6 +2065,12 @@ packages: cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.18.20': resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} engines: {node: '>=12'} @@ -1996,6 +2089,12 @@ packages: cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.18.20': resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} engines: {node: '>=12'} @@ -2014,6 +2113,12 @@ packages: cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.18.20': resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} engines: {node: '>=12'} @@ -2032,6 +2137,12 @@ packages: cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.18.20': resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} engines: {node: '>=12'} @@ -2050,6 +2161,12 @@ packages: cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.18.20': resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} engines: {node: '>=12'} @@ -2068,6 +2185,12 @@ packages: cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.18.20': resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} engines: {node: '>=12'} @@ -2086,6 +2209,12 @@ packages: cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.18.20': resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} engines: {node: '>=12'} @@ -2104,6 +2233,12 @@ packages: cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.18.20': resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} engines: {node: '>=12'} @@ -2122,6 +2257,12 @@ packages: cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + '@esbuild/netbsd-x64@0.18.20': resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} engines: {node: '>=12'} @@ -2140,6 +2281,12 @@ packages: cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + '@esbuild/openbsd-x64@0.18.20': resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} engines: {node: '>=12'} @@ -2158,6 +2305,12 @@ packages: cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + '@esbuild/sunos-x64@0.18.20': resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} engines: {node: '>=12'} @@ -2176,6 +2329,12 @@ packages: cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.18.20': resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} engines: {node: '>=12'} @@ -2194,6 +2353,12 @@ packages: cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.18.20': resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} engines: {node: '>=12'} @@ -2212,6 +2377,12 @@ packages: cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.18.20': resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} engines: {node: '>=12'} @@ -2230,14 +2401,20 @@ packages: cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.4.0': resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.11.0': - resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} + '@eslint-community/regexpp@4.11.1': + resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} '@eslint/config-array@0.18.0': @@ -2268,26 +2445,26 @@ packages: resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} engines: {node: '>=14'} - '@floating-ui/core@1.6.2': - resolution: {integrity: sha512-+2XpQV9LLZeanU4ZevzRnGFg2neDeKHgFLjP6YLW+tly0IvrhqT4u8enLGjLH3qeh85g19xY5rsAusfwTdn5lg==} + '@floating-ui/core@1.6.8': + resolution: {integrity: sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==} - '@floating-ui/dom@1.6.5': - resolution: {integrity: sha512-Nsdud2X65Dz+1RHjAIP0t8z5e2ff/IRbei6BqFrl1urT8sDVzM1HMQ+R0XcU5ceRfyO3I6ayeqIfh+6Wb8LGTw==} + '@floating-ui/dom@1.6.11': + resolution: {integrity: sha512-qkMCxSR24v2vGkhYDo/UzxfJN3D4syqSjyuTFz6C7XcpU1pASPRieNI0Kj5VP3/503mOfYiGY891ugBX1GlABQ==} - '@floating-ui/react-dom@2.0.9': - resolution: {integrity: sha512-q0umO0+LQK4+p6aGyvzASqKbKOJcAHJ7ycE9CuUvfx3s9zTHWmGJTPOIlM/hmSBfUfg/XfY5YhLBLR/LHwShQQ==} + '@floating-ui/react-dom@2.1.2': + resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==} peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' - '@floating-ui/react@0.26.15': - resolution: {integrity: sha512-WKmfLkxTwCm09Dxq4LpjL3EPbZVSp5wvnap1jmculsfnzg2Ag/pCkP+OPyjE5dFMXqX97hsLIqJehboZ5XAHXw==} + '@floating-ui/react@0.26.24': + resolution: {integrity: sha512-2ly0pCkZIGEQUq5H8bBK0XJmc1xIK/RM3tvVzY3GBER7IOD1UgmC2Y2tjj4AuS+TC+vTE1KJv2053290jua0Sw==} peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' - '@floating-ui/utils@0.2.2': - resolution: {integrity: sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==} + '@floating-ui/utils@0.2.8': + resolution: {integrity: sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==} '@hapi/bourne@3.0.0': resolution: {integrity: sha512-Waj1cwPXJDucOib4a3bAISsKJVb15MKi9IvmTI/7ssVEm6sywXGjVJDhl6/umt1pK1ZS7PacXU3A1PmFKHEZ2w==} @@ -2295,9 +2472,11 @@ packages: '@homarr/gridstack@1.0.3': resolution: {integrity: sha512-qgBYQUQ75mO51YSm/02aRmfJMRz7bWEqFQAQii5lwKb73hlAtDHTuGBeEL5H/mqxFIKEbxPtjeL/Eax9UvXUhA==} - '@hono/node-server@1.11.1': - resolution: {integrity: sha512-GW1Iomhmm1o4Z+X57xGby8A35Cu9UZLL7pSMdqDBkD99U5cywff8F+8hLk5aBTzNubnsFAvWQ/fZjNwPsEn9lA==} + '@hono/node-server@1.13.0': + resolution: {integrity: sha512-kz323qIQkNQElEGroo/E9MKPDuIR5pkuk/XEWd50K+cSEKdmdiYx0PKWUdaNY2ecJYngtF+njDMsMKplL6zfEg==} engines: {node: '>=18.14.1'} + peerDependencies: + hono: ^4 '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} @@ -2498,9 +2677,9 @@ packages: cpu: [x64] os: [win32] - '@noble/hashes@1.4.0': - resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==} - engines: {node: '>= 16'} + '@noble/hashes@1.5.0': + resolution: {integrity: sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==} + engines: {node: ^14.21.3 || >=16} '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -2514,8 +2693,8 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@panva/hkdf@1.1.1': - resolution: {integrity: sha512-dhPeilub1NuIG0X5Kvhh9lH4iW3ZsHlnzwgwbOlgwQ2wG1IqFzsgHqmKPk3WzsdWAeaxKJxgM0+W433RmN45GA==} + '@panva/hkdf@1.2.1': + resolution: {integrity: sha512-6oclG6Y3PiDFcoyk8srjLfVKyMfVCKJ27JwNPViuXziFpmdz+MZnZN/aKY0JGXgYuO/VghU0jcOAZgWXZ1Dmrw==} '@paralleldrive/cuid2@2.2.2': resolution: {integrity: sha512-ZOBkgDwEdoYVlSeRbYYXs0S9MejQofiVYoTbKzy/6GQa39/q5tQU2IX46+shYnUkpEl3wc+J6wRlar7r2EK2xA==} @@ -2542,15 +2721,6 @@ packages: '@popperjs/core@2.11.8': resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} - '@prisma/client@5.16.1': - resolution: {integrity: sha512-wM9SKQjF0qLxdnOZIVAIMKiz6Hu7vDt4FFAih85K1dk/Rr2mdahy6d3QP41K62N9O0DJJA//gUDA3Mp49xsKIg==} - engines: {node: '>=16.13'} - peerDependencies: - prisma: '*' - peerDependenciesMeta: - prisma: - optional: true - '@remirror/core-constants@2.0.2': resolution: {integrity: sha512-dyHY+sMF0ihPus3O27ODd4+agdHMEmuRdyiZJ2CCWjPV5UFmn17ZbElvk6WOGVE4rdCJKZQCrPV2BcikOMLUGQ==} @@ -2563,83 +2733,83 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.17.2': - resolution: {integrity: sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ==} + '@rollup/rollup-android-arm-eabi@4.21.3': + resolution: {integrity: sha512-MmKSfaB9GX+zXl6E8z4koOr/xU63AMVleLEa64v7R0QF/ZloMs5vcD1sHgM64GXXS1csaJutG+ddtzcueI/BLg==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.17.2': - resolution: {integrity: sha512-yeX/Usk7daNIVwkq2uGoq2BYJKZY1JfyLTaHO/jaiSwi/lsf8fTFoQW/n6IdAsx5tx+iotu2zCJwz8MxI6D/Bw==} + '@rollup/rollup-android-arm64@4.21.3': + resolution: {integrity: sha512-zrt8ecH07PE3sB4jPOggweBjJMzI1JG5xI2DIsUbkA+7K+Gkjys6eV7i9pOenNSDJH3eOr/jLb/PzqtmdwDq5g==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.17.2': - resolution: {integrity: sha512-kcMLpE6uCwls023+kknm71ug7MZOrtXo+y5p/tsg6jltpDtgQY1Eq5sGfHcQfb+lfuKwhBmEURDga9N0ol4YPw==} + '@rollup/rollup-darwin-arm64@4.21.3': + resolution: {integrity: sha512-P0UxIOrKNBFTQaXTxOH4RxuEBVCgEA5UTNV6Yz7z9QHnUJ7eLX9reOd/NYMO3+XZO2cco19mXTxDMXxit4R/eQ==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.17.2': - resolution: {integrity: sha512-AtKwD0VEx0zWkL0ZjixEkp5tbNLzX+FCqGG1SvOu993HnSz4qDI6S4kGzubrEJAljpVkhRSlg5bzpV//E6ysTQ==} + '@rollup/rollup-darwin-x64@4.21.3': + resolution: {integrity: sha512-L1M0vKGO5ASKntqtsFEjTq/fD91vAqnzeaF6sfNAy55aD+Hi2pBI5DKwCO+UNDQHWsDViJLqshxOahXyLSh3EA==} cpu: [x64] os: [darwin] - '@rollup/rollup-linux-arm-gnueabihf@4.17.2': - resolution: {integrity: sha512-3reX2fUHqN7sffBNqmEyMQVj/CKhIHZd4y631duy0hZqI8Qoqf6lTtmAKvJFYa6bhU95B1D0WgzHkmTg33In0A==} + '@rollup/rollup-linux-arm-gnueabihf@4.21.3': + resolution: {integrity: sha512-btVgIsCjuYFKUjopPoWiDqmoUXQDiW2A4C3Mtmp5vACm7/GnyuprqIDPNczeyR5W8rTXEbkmrJux7cJmD99D2g==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.17.2': - resolution: {integrity: sha512-uSqpsp91mheRgw96xtyAGP9FW5ChctTFEoXP0r5FAzj/3ZRv3Uxjtc7taRQSaQM/q85KEKjKsZuiZM3GyUivRg==} + '@rollup/rollup-linux-arm-musleabihf@4.21.3': + resolution: {integrity: sha512-zmjbSphplZlau6ZTkxd3+NMtE4UKVy7U4aVFMmHcgO5CUbw17ZP6QCgyxhzGaU/wFFdTfiojjbLG3/0p9HhAqA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.17.2': - resolution: {integrity: sha512-EMMPHkiCRtE8Wdk3Qhtciq6BndLtstqZIroHiiGzB3C5LDJmIZcSzVtLRbwuXuUft1Cnv+9fxuDtDxz3k3EW2A==} + '@rollup/rollup-linux-arm64-gnu@4.21.3': + resolution: {integrity: sha512-nSZfcZtAnQPRZmUkUQwZq2OjQciR6tEoJaZVFvLHsj0MF6QhNMg0fQ6mUOsiCUpTqxTx0/O6gX0V/nYc7LrgPw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.17.2': - resolution: {integrity: sha512-NMPylUUZ1i0z/xJUIx6VUhISZDRT+uTWpBcjdv0/zkp7b/bQDF+NfnfdzuTiB1G6HTodgoFa93hp0O1xl+/UbA==} + '@rollup/rollup-linux-arm64-musl@4.21.3': + resolution: {integrity: sha512-MnvSPGO8KJXIMGlQDYfvYS3IosFN2rKsvxRpPO2l2cum+Z3exiExLwVU+GExL96pn8IP+GdH8Tz70EpBhO0sIQ==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.17.2': - resolution: {integrity: sha512-T19My13y8uYXPw/L/k0JYaX1fJKFT/PWdXiHr8mTbXWxjVF1t+8Xl31DgBBvEKclw+1b00Chg0hxE2O7bTG7GQ==} + '@rollup/rollup-linux-powerpc64le-gnu@4.21.3': + resolution: {integrity: sha512-+W+p/9QNDr2vE2AXU0qIy0qQE75E8RTwTwgqS2G5CRQ11vzq0tbnfBd6brWhS9bCRjAjepJe2fvvkvS3dno+iw==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.17.2': - resolution: {integrity: sha512-BOaNfthf3X3fOWAB+IJ9kxTgPmMqPPH5f5k2DcCsRrBIbWnaJCgX2ll77dV1TdSy9SaXTR5iDXRL8n7AnoP5cg==} + '@rollup/rollup-linux-riscv64-gnu@4.21.3': + resolution: {integrity: sha512-yXH6K6KfqGXaxHrtr+Uoy+JpNlUlI46BKVyonGiaD74ravdnF9BUNC+vV+SIuB96hUMGShhKV693rF9QDfO6nQ==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.17.2': - resolution: {integrity: sha512-W0UP/x7bnn3xN2eYMql2T/+wpASLE5SjObXILTMPUBDB/Fg/FxC+gX4nvCfPBCbNhz51C+HcqQp2qQ4u25ok6g==} + '@rollup/rollup-linux-s390x-gnu@4.21.3': + resolution: {integrity: sha512-R8cwY9wcnApN/KDYWTH4gV/ypvy9yZUHlbJvfaiXSB48JO3KpwSpjOGqO4jnGkLDSk1hgjYkTbTt6Q7uvPf8eg==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.17.2': - resolution: {integrity: sha512-Hy7pLwByUOuyaFC6mAr7m+oMC+V7qyifzs/nW2OJfC8H4hbCzOX07Ov0VFk/zP3kBsELWNFi7rJtgbKYsav9QQ==} + '@rollup/rollup-linux-x64-gnu@4.21.3': + resolution: {integrity: sha512-kZPbX/NOPh0vhS5sI+dR8L1bU2cSO9FgxwM8r7wHzGydzfSjLRCFAT87GR5U9scj2rhzN3JPYVC7NoBbl4FZ0g==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.17.2': - resolution: {integrity: sha512-h1+yTWeYbRdAyJ/jMiVw0l6fOOm/0D1vNLui9iPuqgRGnXA0u21gAqOyB5iHjlM9MMfNOm9RHCQ7zLIzT0x11Q==} + '@rollup/rollup-linux-x64-musl@4.21.3': + resolution: {integrity: sha512-S0Yq+xA1VEH66uiMNhijsWAafffydd2X5b77eLHfRmfLsRSpbiAWiRHV6DEpz6aOToPsgid7TI9rGd6zB1rhbg==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.17.2': - resolution: {integrity: sha512-tmdtXMfKAjy5+IQsVtDiCfqbynAQE/TQRpWdVataHmhMb9DCoJxp9vLcCBjEQWMiUYxO1QprH/HbY9ragCEFLA==} + '@rollup/rollup-win32-arm64-msvc@4.21.3': + resolution: {integrity: sha512-9isNzeL34yquCPyerog+IMCNxKR8XYmGd0tHSV+OVx0TmE0aJOo9uw4fZfUuk2qxobP5sug6vNdZR6u7Mw7Q+Q==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.17.2': - resolution: {integrity: sha512-7II/QCSTAHuE5vdZaQEwJq2ZACkBpQDOmQsE6D6XUbnBHW8IAhm4eTufL6msLJorzrHDFv3CF8oCA/hSIRuZeQ==} + '@rollup/rollup-win32-ia32-msvc@4.21.3': + resolution: {integrity: sha512-nMIdKnfZfzn1Vsk+RuOvl43ONTZXoAPUUxgcU0tXooqg4YrAqzfKzVenqqk2g5efWh46/D28cKFrOzDSW28gTA==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.17.2': - resolution: {integrity: sha512-TGGO7v7qOq4CYmSBVEYpI1Y5xDuCEnbVC5Vth8mOsW0gDSzxNrVERPc790IGHsrT2dQSimgMr9Ub3Y1Jci5/8w==} + '@rollup/rollup-win32-x64-msvc@4.21.3': + resolution: {integrity: sha512-fOvu7PCQjAj4eWDEuD8Xz5gpzFqXzGlxHZozHP4b9Jxv9APtdxL6STqztDzMLuRXEc4UpXGGhx029Xgm91QBeA==} cpu: [x64] os: [win32] @@ -2652,89 +2822,89 @@ packages: '@socket.io/component-emitter@3.1.2': resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} - '@swagger-api/apidom-ast@1.0.0-alpha.5': - resolution: {integrity: sha512-ZH3xryzmwd8OvUdOJH4ujNAyQMXN6NCrRT0HGR8z9TnA0nFPFoOAswq7317mCn77VJmViu/tpCuvmRS0a9BROg==} + '@swagger-api/apidom-ast@1.0.0-alpha.9': + resolution: {integrity: sha512-SAOQrFSFwgDiI4QSIPDwAIJEb4Za+8bu45sNojgV3RMtCz+n4Agw66iqGsDib5YSI/Cg1h4AKFovT3iWdfGWfw==} - '@swagger-api/apidom-core@1.0.0-alpha.5': - resolution: {integrity: sha512-iArtPxwcQ/EpQU/VqwBDrD+F0lngyUyLVCa8zR4gT+7mP6fpiU7jcerizw0hDpFmvieXddx5UdfO28Pxuq204g==} + '@swagger-api/apidom-core@1.0.0-alpha.9': + resolution: {integrity: sha512-vGl8BWRf6ODl39fxElcIOjRE2QG5AJhn8tTNMqjjHB/2WppNBuxOVStYZeVJoWfK03OPK8v4Fp/TAcaP9+R7DQ==} - '@swagger-api/apidom-error@1.0.0-alpha.5': - resolution: {integrity: sha512-5UEgSZuQPdkqKSKDtRXQ0cm7x1o4EPyusLBVsCG4l8QtJvAhG1OOpEzJbTZ48/nRt7VkbK7MTj/up+oEILzVvw==} + '@swagger-api/apidom-error@1.0.0-alpha.9': + resolution: {integrity: sha512-FU/2sFSgsICB9HYFELJ79caRpXXzlAV41QTHsAM46WfRehbzZUQpOBQm4jRi3qJGSa/Jk+mQ7Vt8HLRFMpJFfg==} - '@swagger-api/apidom-json-pointer@1.0.0-alpha.5': - resolution: {integrity: sha512-eDAz7/UaGpGCvB0y1GoRjFwxFWseCsF/0ZYIQvvq9PS025inc/I6M+XX8dWMmkpNpbbf+KfD7WlwfqnUZLv/MQ==} + '@swagger-api/apidom-json-pointer@1.0.0-alpha.9': + resolution: {integrity: sha512-/W8Ktbgbs29zdhed6KHTFk0qmuIRbvEFi8wu2MHGQ5UT4i99Bdu2OyUiayhnpejWztfQxDgL08pjrQPEwgY8Yg==} - '@swagger-api/apidom-ns-api-design-systems@1.0.0-alpha.5': - resolution: {integrity: sha512-aq9Ix2Wo2TMfYW3HmheTO3qVd2MYrdinjLFHn9uozzC2x+CSzALhvKkwOc29HiGOn4QQ6QHHPRojNgD86WkwUg==} + '@swagger-api/apidom-ns-api-design-systems@1.0.0-alpha.9': + resolution: {integrity: sha512-aduC2vbwGgn6ia9IkKpqBYBaKyIDGM/80M3oU3DFgaYIIwynzuwVpN1TkBOLIFy3mAzkWoYKUS0jdZJhMy/6Ug==} - '@swagger-api/apidom-ns-asyncapi-2@1.0.0-alpha.5': - resolution: {integrity: sha512-JFtQBhCOkYuyNVcYGMFd9+U0UO6lEj9kO5qCgUjPOTgkOpZOZQslVEtg3TDmRlBATwVdmRv39xy3ZLK8O/JdmQ==} + '@swagger-api/apidom-ns-asyncapi-2@1.0.0-alpha.9': + resolution: {integrity: sha512-hZjxXJgMt517ADnAauWJh01k7WNRwkbWT5p6b7AXF2H3tl549A2hhLnIg3BBSE3GwB3Nv25GyrI3aA/1dFVC8A==} - '@swagger-api/apidom-ns-json-schema-draft-4@1.0.0-alpha.5': - resolution: {integrity: sha512-aDmcpGikL5JZmDTg7J6EJfLFjtUmX/MfduS4hQeopFCkw91dZsqxO10j7KEiRVVuJBuGStbYoHI5aIsQTlebzA==} + '@swagger-api/apidom-ns-json-schema-draft-4@1.0.0-alpha.9': + resolution: {integrity: sha512-OfX4UBb08C0xD5+F80dQAM2yt5lXxcURWkVEeCwxz7i23BB3nNEbnZXNV91Qo9eaJflPh8dO9iiHQxvfw5IgSg==} - '@swagger-api/apidom-ns-json-schema-draft-6@1.0.0-alpha.5': - resolution: {integrity: sha512-ylh96E59aaV1VDv9sDrNwpTmjVT6vmOSncpmytlc0ynb374dwZkLZ63Hd30rcMFAhKmg5aYOG+i5O1QXKFYz8A==} + '@swagger-api/apidom-ns-json-schema-draft-6@1.0.0-alpha.9': + resolution: {integrity: sha512-qzUVRSSrnlYGMhK6w57o/RboNvy1FO0iFgEnTk56dD4wN49JRNuFqKI18IgXc1W2r9tTTG70nG1khe4cPE8TNg==} - '@swagger-api/apidom-ns-json-schema-draft-7@1.0.0-alpha.5': - resolution: {integrity: sha512-Mks9gabJvz4atkjzLDwjWbo12xirul7a9ifHYZQJc/jfVKfVNy1e3QgFG1+EbSWWG5Yfbr3WKyxUDJLgr75qKg==} + '@swagger-api/apidom-ns-json-schema-draft-7@1.0.0-alpha.9': + resolution: {integrity: sha512-Zml8Z8VCckdFjvTogaec1dabd85hg1+xZDseWcCuD0tYkaTY/sZ8zzI0dz6/4HsKCb58qjiWSa0w60N8Syr6WQ==} - '@swagger-api/apidom-ns-openapi-2@1.0.0-alpha.5': - resolution: {integrity: sha512-uY+1G4oRf9UT/6sGuatvWKstmlRnEiN9XqaVvV8euXESxI4jtwcPbRwoEX31vEYXoTqq2ZScFy8UQJ2CJ2ZADw==} + '@swagger-api/apidom-ns-openapi-2@1.0.0-alpha.9': + resolution: {integrity: sha512-WUZxt7Gs7P4EQsGtoD6cKAjf0uDJhkUxsIW9Bb4EAgO6tdp7LlXhbJ0fJ2QycCLY717SfJbvGLfhuSfTYo4Iow==} - '@swagger-api/apidom-ns-openapi-3-0@1.0.0-alpha.5': - resolution: {integrity: sha512-UAOGZaGMDVRQ10l8OgXCAfxS9PxGoCW66o/vFmhPfrK8NwU1GEo6sYHYoo1mflNMHCN2eVYyM5LxA+qYm0SJgQ==} + '@swagger-api/apidom-ns-openapi-3-0@1.0.0-alpha.9': + resolution: {integrity: sha512-7ra5uoZGrfCn1LabfJLueChPcYXyg24//LCYBtjTstyueqd5Vp7JCPeP5NnJSAaqVAP47r8ygceBPoxNp9k1EQ==} - '@swagger-api/apidom-ns-openapi-3-1@1.0.0-alpha.5': - resolution: {integrity: sha512-8VkdZ2MfxXIdmzQZrV0qGk18MG7XNJKIL3GT9lad9NyXyiKSvBVFJDmS4S43qcQTL0rjHXF6ds25yErDSTprjg==} + '@swagger-api/apidom-ns-openapi-3-1@1.0.0-alpha.9': + resolution: {integrity: sha512-nQOwNQgf0C8EVjf2loAAl4ifRuVOdcqycvXUdcTpsUfHN3fbndR8IKpb26mQNmnACmqgmX+LkbMdW9b+K6089g==} - '@swagger-api/apidom-ns-workflows-1@1.0.0-alpha.5': - resolution: {integrity: sha512-6cMv37y4kftJySoMAeubz5yhHaRKnSK0YglvCv8v7rE2OBduR/yEITDOej2/KFAnt29LxkhotSbNsmHx0weICQ==} + '@swagger-api/apidom-ns-workflows-1@1.0.0-alpha.9': + resolution: {integrity: sha512-yKo0p8OkQmDib93Kt1yqWmI7JsD6D9qUHxr/SCuAmNNWny1hxm7cZGoKJwJlGd0uAg84j4vmzWOlG3AsJbnT8g==} - '@swagger-api/apidom-parser-adapter-api-design-systems-json@1.0.0-alpha.5': - resolution: {integrity: sha512-QVWS2sPKA1sG52UIJut/St6+j7zO8QxzPlL5akR/8QPX2FWKqmw808Ewvjq9WLtqlPhVY2G33tv90d4/FJUNwQ==} + '@swagger-api/apidom-parser-adapter-api-design-systems-json@1.0.0-alpha.9': + resolution: {integrity: sha512-xfVMR4HrTzXU0HB4TtxwkNbUIa/cQrPa0BWutJZ0fMYMAtUox2s8GsFYnJfZP52XfpSHFM1VPclivorZqET14g==} - '@swagger-api/apidom-parser-adapter-api-design-systems-yaml@1.0.0-alpha.5': - resolution: {integrity: sha512-T7UD/SWd5u2zlPyswDdtfAStm6Qt5hQWAWvCmQKxy37qJA9QGXcQKNavaSMPGvN660hufNaJEBxgJ/B0Zd5iaw==} + '@swagger-api/apidom-parser-adapter-api-design-systems-yaml@1.0.0-alpha.9': + resolution: {integrity: sha512-lJZkrhZ8qRTtc5fSLKefCv8j7Xzo8UBfMjpqTJhmETAtU8YfVV2i2znjgxJpm0QwV6FVQqGfK1+ASZQWPLiVcA==} - '@swagger-api/apidom-parser-adapter-asyncapi-json-2@1.0.0-alpha.5': - resolution: {integrity: sha512-UfCS9DFIURTUfaHfmEn8omHaevIV2i24Ncp46M/Pnk6JwZHjAEMxmPxsgMl4TTGbzqvySUQsJka8Qz1ziYZ1og==} + '@swagger-api/apidom-parser-adapter-asyncapi-json-2@1.0.0-alpha.9': + resolution: {integrity: sha512-65nmKdPzw4C1bmtYn+3zoxXCI6Gnobr0StI9XE0YWiK+lpso7RH3Cgyl1yPZ0DBRVGzP+Fn9FVzmDNulEfR95w==} - '@swagger-api/apidom-parser-adapter-asyncapi-yaml-2@1.0.0-alpha.5': - resolution: {integrity: sha512-X5avFyLnlu6Zjyul35f8Ff0DRE70aNc+Bk7il+eV8g+FR/qgrmuNziQEBOhCrIUnYB1kFbTty6BZRsNLdjW9XQ==} + '@swagger-api/apidom-parser-adapter-asyncapi-yaml-2@1.0.0-alpha.9': + resolution: {integrity: sha512-RLI4FpVB3vB6mIuT77yrsv5V2LMZ80dW9XpV+Fmbd4Jkdj+ysAFwT38cI4AsUMOxixpTDIXY1oWD7AjvylHhQQ==} - '@swagger-api/apidom-parser-adapter-json@1.0.0-alpha.5': - resolution: {integrity: sha512-NdVjlRrtr1EvrBsk6DHSkjI8zdnSve/bjeGgo0NR2IRmA/8BRcY6rffM1BR76Ku+CjxhCB2mfQxotilD71dL+g==} + '@swagger-api/apidom-parser-adapter-json@1.0.0-alpha.9': + resolution: {integrity: sha512-aOewp8/3zobf/O+5Jx8y7+bX3BPRfRlHIv15qp4YVTsLs6gLISWSzTO9JpWe9cR+AfhpsAalFq4t1LwIkmLk4A==} - '@swagger-api/apidom-parser-adapter-openapi-json-2@1.0.0-alpha.5': - resolution: {integrity: sha512-qOwQl2WezfdDVmtf9ZlOiqT1hcDS52j7ZbBdH9MqMGJ+/mo6sv0qEY2ZXS104lWeRamgi4o/4o4jGqjZS1YrMg==} + '@swagger-api/apidom-parser-adapter-openapi-json-2@1.0.0-alpha.9': + resolution: {integrity: sha512-zgtsAfkplCFusX2P/saqdn10J8P3kQizCXxHLvxd2j0EhMJk2wfu4HYN5Pej/7/qf/OR1QZxqtacwebd4RfpXA==} - '@swagger-api/apidom-parser-adapter-openapi-json-3-0@1.0.0-alpha.5': - resolution: {integrity: sha512-t5oj7XteTu2Yh8uNkzXAcKU81CQky+q6Qt/ImQ/S6MGxpXJnWwgVfm/j/dH2wnHFKghNS3vgm6IewpojSbUw4w==} + '@swagger-api/apidom-parser-adapter-openapi-json-3-0@1.0.0-alpha.9': + resolution: {integrity: sha512-iPuHf0cAZSUhSv8mB0FnVgatTc26cVYohgqz2cvjoGofdqoh5KKIfxOkWlIhm+qGuBp71CfZUrPYPRsd0dHgeg==} - '@swagger-api/apidom-parser-adapter-openapi-json-3-1@1.0.0-alpha.5': - resolution: {integrity: sha512-w0G53HXYdzcespfa3atN90jVLDRoH9FU7XEWG4DvFWM90WGwuNscojcaB28r8pZMhSQAKMPxggh6PnmvK3gdEQ==} + '@swagger-api/apidom-parser-adapter-openapi-json-3-1@1.0.0-alpha.9': + resolution: {integrity: sha512-jwkfO7tzZyyrAgok+O9fKFOv1q/5njMb9DBc3D/ZF3ZLTcnEw8uj4V2HkjKxUweH5k8ip/gc8ueKmO/i7p2fng==} - '@swagger-api/apidom-parser-adapter-openapi-yaml-2@1.0.0-alpha.5': - resolution: {integrity: sha512-nfeYRL0o6QwtKsyF30d2JmtW7fzoI/EYKSFgzaDm7IFlrQWMpB6BidpZKdk5MtYN4zvmfAM+lOhrqR7a5BvHMg==} + '@swagger-api/apidom-parser-adapter-openapi-yaml-2@1.0.0-alpha.9': + resolution: {integrity: sha512-jEIDpjbjwFKXQXS/RHJeA4tthsguLoz+nJPYS3AOLfuSiby5QXsKTxgqHXxG/YJqF1xJbZL+5KcF8UyiDePumw==} - '@swagger-api/apidom-parser-adapter-openapi-yaml-3-0@1.0.0-alpha.5': - resolution: {integrity: sha512-HRziGD/YUcO21hmDIYNzwYivp/faeZRxcq8Gex7RLLhJZ60fGTJJ1k1yhWFPNSe9DEJUNBN949SDxMdZnGT9PQ==} + '@swagger-api/apidom-parser-adapter-openapi-yaml-3-0@1.0.0-alpha.9': + resolution: {integrity: sha512-ieJL8dfIF8fmP3uJRNh/duJa3cCIIv6MzUe6o4uPT/oTDroy4qIATvnq9Dq/gtAv6rcPRpA9VhyghJ1DmjKsZQ==} - '@swagger-api/apidom-parser-adapter-openapi-yaml-3-1@1.0.0-alpha.5': - resolution: {integrity: sha512-aul2wSOvkdp9jQjSv1pvEGllVaDUnTKmRbCy7M/dFQyIhJQBvwW+/Cu//PprzAODtFNraOBjIXiJ5tVdv6NuIQ==} + '@swagger-api/apidom-parser-adapter-openapi-yaml-3-1@1.0.0-alpha.9': + resolution: {integrity: sha512-EatIH7PZQSNDsRn9ompc62MYzboY7wAkjfYz+2FzBaSA8Vl5/+740qGQj22tu/xhwW4K72aV2NNL1m47QVF7hA==} - '@swagger-api/apidom-parser-adapter-workflows-json-1@1.0.0-alpha.5': - resolution: {integrity: sha512-R1LVe/gx7fRSCuDmmN3qScWonz6Xlaw11J+NAfiJzrNXBy1Qa1mCxgGs47w0slQN+FjYkVj5Y/q29jJgpUbLHA==} + '@swagger-api/apidom-parser-adapter-workflows-json-1@1.0.0-alpha.9': + resolution: {integrity: sha512-LylC2cQdAmvR7bXqwMwBt6FHTMVGinwIdI8pjl4EbPT9hCVm1rdED53caTYM4gCm+CJGRw20r4gb9vn3+N6RrA==} - '@swagger-api/apidom-parser-adapter-workflows-yaml-1@1.0.0-alpha.5': - resolution: {integrity: sha512-W5wD+TdGNdW4aP9uqkxFbVmjWvLOXyV02VvyStyTlzxdUaPzKY3FGaxjxk8TGVRqwe2yEQVUc2zfGalrScA/Sg==} + '@swagger-api/apidom-parser-adapter-workflows-yaml-1@1.0.0-alpha.9': + resolution: {integrity: sha512-TlA4+1ca33D7fWxO5jKBytSCv86IGI4Lze4JfrawWUXZ5efhi4LiNmW5TrGlZUyvL7yJtZcA4tn3betlj6jVwA==} - '@swagger-api/apidom-parser-adapter-yaml-1-2@1.0.0-alpha.5': - resolution: {integrity: sha512-21TIQPkB+Z4ekNj5dh1uN0dhOBBCPeK572YpooA/pBTFLeH6Wtildx7ZZYfpJEejHaQKaqoRx3hp0G42GDOb7g==} + '@swagger-api/apidom-parser-adapter-yaml-1-2@1.0.0-alpha.9': + resolution: {integrity: sha512-jSIHEB7lbh+MP3BhYIXFkeivDR01kugXN70e5FskW7oet2TIARsVEPheWKQFSP1U8bUZA4bsp9h9gOQ9xEeErw==} - '@swagger-api/apidom-reference@1.0.0-alpha.5': - resolution: {integrity: sha512-zPMTScWI8oVUAT//RdAhl9GJuwtQLibP8iCrqFQDGjBzKQS5Uxz4hSXr/jqKPdkCJXbEoP94yYjvQjtI5yrv1A==} + '@swagger-api/apidom-reference@1.0.0-alpha.9': + resolution: {integrity: sha512-KQ6wB5KplqdSsjxdA8BaQulj5zlF5VBCd5KP3RN/9vvixgsD/gyrVY59nisdzmPTqiL6yjhk612eQ96MgG8KiA==} '@swc/counter@0.1.3': resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} @@ -3082,8 +3252,8 @@ packages: '@types/babel__template@7.4.4': resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - '@types/babel__traverse@7.20.5': - resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} + '@types/babel__traverse@7.20.6': + resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} '@types/bcrypt@5.0.2': resolution: {integrity: sha512-6atioO8Y75fNcbmj0G7UjI9lXN2pQ/IGJ2FWT4a/btd0Lk9lQalHLKhkgKVZ3r+spnmWUKfbMi1GEe9wyHQfNQ==} @@ -3118,17 +3288,11 @@ packages: '@types/dockerode@3.3.31': resolution: {integrity: sha512-42R9eoVqJDSvVspV89g7RwRqfNExgievLNWoHkg7NoWIqAmavIbgQBb4oc0qRtHkxE+I3Xxvqv7qVXFABKPBTg==} - '@types/eslint-scope@3.7.7': - resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} - - '@types/eslint@9.6.1': - resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} - '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - '@types/express-serve-static-core@4.19.0': - resolution: {integrity: sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==} + '@types/express-serve-static-core@4.19.5': + resolution: {integrity: sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==} '@types/express@4.17.21': resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} @@ -3163,8 +3327,8 @@ packages: '@types/node-cron@3.0.11': resolution: {integrity: sha512-0ikrnug3/IyneSHqCBeslAhlK2aBfYek1fGo4bP4QnZPmiqSGRK+Oy7ZMisLWkesffJvQ1cqAcBnJC+8+nxIAg==} - '@types/node@18.19.33': - resolution: {integrity: sha512-NR9+KrpSajr2qBVp/Yt5TU/rp+b5Mayi3+OlMlcg2cVCfRmcG5PWZ7S4+MG9PZ5gWBoc9Pd0BKSRViuBCRPu0A==} + '@types/node@18.19.50': + resolution: {integrity: sha512-xonK+NRrMBRtkL1hVCc3G+uXtjh1Al4opBLjqVmipe5ZAaBYWW6cNAiBVZ1BvmkBhep698rP3UM3aRAdSALuhg==} '@types/node@20.16.5': resolution: {integrity: sha512-VwYCweNo3ERajwy0IUlqqcyZ8/A7Zwa9ZP3MnENWcB11AejO+tLy3pu850goUW2FC/IJMdZUfKpX/yxL1gymCA==} @@ -3175,11 +3339,11 @@ packages: '@types/prop-types@15.7.12': resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} - '@types/qs@6.9.15': - resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} + '@types/qs@6.9.16': + resolution: {integrity: sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==} - '@types/ramda@0.30.0': - resolution: {integrity: sha512-DQtfqUbSB18iM9NHbQ++kVUDuBWHMr6T2FpW1XTiksYRGjq4WnNPZLt712OEHEBJs7aMyJ68Mf2kGMOP1srVVw==} + '@types/ramda@0.30.2': + resolution: {integrity: sha512-PyzHvjCalm2BRYjAU6nIB3TprYwMNOUY/7P/N8bSzp9W/yM2YrtGtAnnVtaCNSeOZ8DzKyFDvaqQs7LnWwwmBA==} '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} @@ -3202,8 +3366,8 @@ packages: '@types/ssh2@0.5.52': resolution: {integrity: sha512-lbLLlXxdCZOSJMCInKH2+9V/77ET2J6NPQHpFI0kda61Dd1KglJs+fPQBchizmzYSOJBgdTajhPqBO1xxLywvg==} - '@types/ssh2@1.15.0': - resolution: {integrity: sha512-YcT8jP5F8NzWeevWvcyrrLB3zcneVjzYY9ZDSMAMboI+2zR1qYWFhwsyOFVzT7Jorn67vqxC0FRiw8YyG9P1ww==} + '@types/ssh2@1.15.1': + resolution: {integrity: sha512-ZIbEqKAsi5gj35y4P4vkJYly642wIbY6PqoN0xiyQGshKUGXR9WQjF/iF9mXBQ8uBKy3ezfsCkcoHKhd0BzuDA==} '@types/swagger-ui-react@4.18.3': resolution: {integrity: sha512-Mo/R7IjDVwtiFPs84pWvh5pI9iyNGBjmfielxqbOh2Jv+8WVSDVe8Nu25kb5BOuV2xmGS3o33jr6nwDJMBcX+Q==} @@ -3217,8 +3381,8 @@ packages: '@types/triple-beam@1.3.5': resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} - '@types/unist@2.0.10': - resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} + '@types/unist@2.0.11': + resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} '@types/use-sync-external-store@0.0.3': resolution: {integrity: sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==} @@ -3306,6 +3470,10 @@ packages: resolution: {integrity: sha512-xJp7Yd4jMLwje2vHCUmi8MOUU76nxiwII3z4Eg3Ucb+6rrkFVGosrXlMgGnaLjq724j3wzNElRZ71D/CKrTtxg==} engines: {node: '>=8', npm: '>=5'} + '@videojs/vhs-utils@4.1.1': + resolution: {integrity: sha512-5iLX6sR2ownbv4Mtejw6Ax+naosGvoT9kY+gcuHzANyUZZ+4NpeNdKMUhb6ag0acYej1Y7cmr/F2+4PrggMiVA==} + engines: {node: '>=8', npm: '>=5'} + '@videojs/xhr@2.7.0': resolution: {integrity: sha512-giab+EVRanChIupZK7gXjHy90y3nncA2phIOyG3Ne5fvpiMJzvqYwiTOnEVW2S4CoYcuKJkomat7bMXA/UoUZQ==} @@ -3359,21 +3527,6 @@ packages: '@vitest/utils@2.1.1': resolution: {integrity: sha512-Y6Q9TsI+qJ2CC0ZKj6VBb+T8UPz593N113nnUykqwANqhgf3QkZeHFlusgKLTqrnVHbj/XDKZcDHol+dxVT+rQ==} - '@vue/compiler-core@3.4.31': - resolution: {integrity: sha512-skOiodXWTV3DxfDhB4rOf3OGalpITLlgCeOwb+Y9GJpfQ8ErigdBUHomBzvG78JoVE8MJoQsb+qhZiHfKeNeEg==} - - '@vue/compiler-dom@3.4.31': - resolution: {integrity: sha512-wK424WMXsG1IGMyDGyLqB+TbmEBFM78hIsOJ9QwUVLGrcSk0ak6zYty7Pj8ftm7nEtdU/DGQxAXp0/lM/2cEpQ==} - - '@vue/compiler-sfc@3.4.31': - resolution: {integrity: sha512-einJxqEw8IIJxzmnxmJBuK2usI+lJonl53foq+9etB2HAzlPjAS/wa7r0uUpXw5ByX3/0uswVSrjNb17vJm1kQ==} - - '@vue/compiler-ssr@3.4.31': - resolution: {integrity: sha512-RtefmITAje3fJ8FSg1gwgDhdKhZVntIVbwupdyZDSifZTRMiWxWehAOTCc8/KZDnBOcYQ4/9VWxsTbd3wT0hAA==} - - '@vue/shared@3.4.31': - resolution: {integrity: sha512-Yp3wtJk//8cO4NItOPpi3QkLExAr/aLBGZMmTtW9WpdwBCJpRM6zj9WgWktXAl8IDIozwNMByT45JP3tO3ACWA==} - '@webassemblyjs/ast@1.12.1': resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} @@ -3456,8 +3609,8 @@ packages: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} - acorn-import-assertions@1.9.0: - resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} + acorn-import-attributes@1.9.5: + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} peerDependencies: acorn: ^8 @@ -3466,15 +3619,10 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn-walk@8.3.2: - resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + acorn-walk@8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} engines: {node: '>=0.4.0'} - acorn@8.12.0: - resolution: {integrity: sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==} - engines: {node: '>=0.4.0'} - hasBin: true - acorn@8.12.1: resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} engines: {node: '>=0.4.0'} @@ -3483,6 +3631,9 @@ packages: aes-decrypter@4.0.1: resolution: {integrity: sha512-H1nh/P9VZXUf17AA5NQfJML88CFjVBDuGkp5zDHa7oEhYN9TTpNLJknRY1ie0iSKWlDf6JRnJKaZVDSQdPy6Cg==} + aes-decrypter@4.0.2: + resolution: {integrity: sha512-lc+/9s6iJvuaRe5qDlMTpCFjnwpkeOXp8qP3oiZ5jsj1MRg+SBVUmmICrhxHvc8OELSmc+fEyyxAuppY6hrWzw==} + agent-base@6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} @@ -3514,8 +3665,8 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} engines: {node: '>=12'} ansi-styles@3.2.1: @@ -3534,8 +3685,8 @@ packages: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} - apg-lite@1.0.3: - resolution: {integrity: sha512-lOoNkL7vN7PGdyQMFPey1aok2oVVqvs3n7UMFBRvQ9FoELSbKhgPc3rd7JptaGwCmo4125gLX9Cqb8ElvLCFaQ==} + apg-lite@1.0.4: + resolution: {integrity: sha512-B32zCN3IdHIc99Vy7V9BaYTUzLeRA8YXYY1aQD1/5I2aqIrO0coi4t6hJPqMisidlBxhyME8UexkHt31SlR6Og==} aproba@2.0.0: resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} @@ -3618,8 +3769,8 @@ packages: async-lock@1.4.1: resolution: {integrity: sha512-Az2ZTpuytrtqENulXwO3GGv1Bztugx6TT37NIo7imr/Qo0gsYiGtSdBa2B6fsXhTpVZDNfu1Qn3pk531e3q+nQ==} - async@3.2.5: - resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} @@ -3631,16 +3782,16 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - aws-ssl-profiles@1.1.1: - resolution: {integrity: sha512-+H+kuK34PfMaI9PNU/NSjBKL5hh/KDM9J72kwYeYEm0A8B1AC4fuCy3qsjnA7lxklgyXsB68yn8Z2xoZEjgwCQ==} + aws-ssl-profiles@1.1.2: + resolution: {integrity: sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==} engines: {node: '>= 6.0.0'} axe-core@4.10.0: resolution: {integrity: sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g==} engines: {node: '>=4'} - axios@1.7.2: - resolution: {integrity: sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==} + axios@1.7.7: + resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} @@ -3658,17 +3809,17 @@ packages: bare-events@2.4.2: resolution: {integrity: sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==} - bare-fs@2.3.1: - resolution: {integrity: sha512-W/Hfxc/6VehXlsgFtbB5B4xFcsCl+pAh30cYhoFyXErf6oGrwjh8SwiPAdHgpmWonKuYpZgGywN0SXt7dgsADA==} + bare-fs@2.3.5: + resolution: {integrity: sha512-SlE9eTxifPDJrT6YgemQ1WGFleevzwY+XAP1Xqgl56HtcrisC2CHCZ2tq6dBpcH2TnNxwUEUGhweo+lrQtYuiw==} - bare-os@2.4.0: - resolution: {integrity: sha512-v8DTT08AS/G0F9xrhyLtepoo9EJBJ85FRSMbu1pQUlAf6A8T0tEEQGMVObWeqpjhSPXsE0VGlluFBJu2fdoTNg==} + bare-os@2.4.4: + resolution: {integrity: sha512-z3UiI2yi1mK0sXeRdc4O1Kk8aOa/e+FNWZcTiPB/dfTWyLypuE99LibgRaQki914Jq//yAWylcAt+mknKdixRQ==} bare-path@2.1.3: resolution: {integrity: sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==} - bare-stream@2.1.3: - resolution: {integrity: sha512-tiDAH9H/kP+tvNO5sczyn9ZAA7utrSMobyDchsnyyXBuUe2FSQWbxhtuHB8jwpHYYevVo2UJpcmvvjrbHboUUQ==} + bare-stream@2.3.0: + resolution: {integrity: sha512-pVRWciewGUeCyKEuRxwv06M079r+fRjAQjBEK2P6OYGrO43O+Z0LrPZZEjlc4mB6C2RpZ9AxJ1s7NLEtOHO6eA==} base64-arraybuffer@1.0.2: resolution: {integrity: sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==} @@ -3718,15 +3869,10 @@ packages: brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.23.0: - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - browserslist@4.23.3: resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -3991,8 +4137,8 @@ packages: copy-to-clipboard@3.3.3: resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} - core-js-pure@3.37.1: - resolution: {integrity: sha512-J/r5JTHSmzTxbiYYrzXg9w1VpqrYt+gexenBE9pugeyhwPZTAEJddyiReJWsLO6uNQ8xJZFbod6XC7KKwatCiA==} + core-js-pure@3.38.1: + resolution: {integrity: sha512-BY8Etc1FZqdw1glX0XNOq2FDwfrg/VGqoZOZCdaL+UmdaqDwQwYXkMJT4t6In+zfEfOJDcM9T0KdbBeJg8KKCQ==} core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -4040,8 +4186,8 @@ packages: engines: {node: '>=4'} hasBin: true - cssstyle@4.0.1: - resolution: {integrity: sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==} + cssstyle@4.1.0: + resolution: {integrity: sha512-h66W1URKpBS5YMI/V8PyXvTMFT8SupJ1IzoIV8IeBC/ji8WVmrO8dGlTi+2dh6whmdk6BiKJLD/ZBkhWbcg6nA==} engines: {node: '>=18'} csstype@3.1.3: @@ -4081,33 +4227,6 @@ packages: supports-color: optional: true - debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@4.3.5: - resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@4.3.6: - resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@4.3.7: resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} engines: {node: '>=6.0'} @@ -4363,11 +4482,8 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - electron-to-chromium@1.4.772: - resolution: {integrity: sha512-jFfEbxR/abTTJA3ci+2ok1NTuOBBtB4jH+UT6PUmRN+DY3WSD4FFRsgoVQ+QNIJ0T7wrXwzsWCI2WKC46b++2A==} - - electron-to-chromium@1.5.18: - resolution: {integrity: sha512-1OfuVACu+zKlmjsNdcJuVQuVE61sZOLbNM4JAQ1Rvh6EOj0/EUKhMJjRH73InPlXSh8HIJk1cVZ8pyOV/FMdUQ==} + electron-to-chromium@1.5.23: + resolution: {integrity: sha512-mBhODedOXg4v5QWwl21DjM5amzjmI1zw9EPrPK/5Wx7C8jt33bpZNrC7OhHUG3pxRtbLpr3W2dXT+Ph1SsfRZA==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -4382,9 +4498,6 @@ packages: enabled@2.0.0: resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} - encoding@0.1.13: - resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} - end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} @@ -4440,8 +4553,8 @@ packages: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} - esbuild-register@3.5.0: - resolution: {integrity: sha512-+4G/XmakeBAsvJuDugJvtyF1x+XJT4FMocynNpxrvEBViirpfUn2PgNpCHedfWhF4WokNsO/OvMKrmJOIJsI5A==} + esbuild-register@3.6.0: + resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==} peerDependencies: esbuild: '>=0.12 <1' @@ -4460,6 +4573,11 @@ packages: engines: {node: '>=12'} hasBin: true + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -4495,8 +4613,8 @@ packages: eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - eslint-module-utils@2.9.0: - resolution: {integrity: sha512-McVbYmwA3NEKwRQY5g4aWMdcZE5xZxV8i8l7CqJSrameuGSQJtSWaL/LxTEzSKKaCcOhlpDR8XEfYXWPrdo/ZQ==} + eslint-module-utils@2.11.0: + resolution: {integrity: sha512-gbBE5Hitek/oG6MUVj6sFuzEjA/ClzNflVrLovHi/JgLdC7fiN5gLAY1WIPW1a0V5I999MnsrvVrCOGmmVqDBQ==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -4584,8 +4702,8 @@ packages: engines: {node: '>=4'} hasBin: true - esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} engines: {node: '>=0.10'} esrecurse@4.3.0: @@ -4649,8 +4767,8 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - fast-xml-parser@4.4.0: - resolution: {integrity: sha512-kLY3jFlwIYwBNDojclKsNAC12sfD6NwW74QB2CoNGPvtVxjliYehVunB3HYyNi+n4Tt1dAcgwYvmKF/Z18flqg==} + fast-xml-parser@4.5.0: + resolution: {integrity: sha512-/PlTQCI96+fZMAOLMZK4CWG1ItCbfZ/0jx7UIJFChPNrx7tcEgerUgWbeieCM9MfHInUDyK8DWYZ+YrywDJuTg==} hasBin: true fastq@1.17.1: @@ -4690,8 +4808,8 @@ packages: file-uri-to-path@1.0.0: resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} - fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} find-up@5.0.0: @@ -4711,8 +4829,8 @@ packages: fn.name@1.1.0: resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} - follow-redirects@1.15.6: - resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -4723,8 +4841,8 @@ packages: for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} - foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + foreground-child@3.3.0: + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} engines: {node: '>=14'} form-data@4.0.0: @@ -4811,8 +4929,8 @@ packages: resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} engines: {node: '>= 0.4'} - get-tsconfig@4.7.5: - resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==} + get-tsconfig@4.8.1: + resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} get-uri@6.0.3: resolution: {integrity: sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==} @@ -4952,8 +5070,8 @@ packages: highlight.js@10.7.3: resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} - hono@4.4.0: - resolution: {integrity: sha512-Bb2GHk8jmlLIuxc3U+7UBGOoA5lByJTAFnRdH2N2fqEVy9TEQzJ9saIJUQ/ZqBvEvgEFe7UjPFNSFi8cyeU+3Q==} + hono@4.6.1: + resolution: {integrity: sha512-6NGwvttY1+HAFii08VYiEKI6ETPAFbpLntpm2M/MogEsAFWdZV74UNT+2M4bmqX90cIQhjlpBSP+tO+CfB0uww==} engines: {node: '>=16.0.0'} html-encoding-sniffer@4.0.0: @@ -4997,16 +5115,16 @@ packages: ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} immutable@3.8.2: resolution: {integrity: sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==} engines: {node: '>=0.10.0'} - immutable@4.3.6: - resolution: {integrity: sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==} + immutable@4.3.7: + resolution: {integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==} import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} @@ -5292,9 +5410,8 @@ packages: resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} engines: {node: '>=14'} - jackspeak@3.1.2: - resolution: {integrity: sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==} - engines: {node: '>=14'} + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} jackspeak@4.0.1: resolution: {integrity: sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog==} @@ -5304,8 +5421,8 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} - jose@5.3.0: - resolution: {integrity: sha512-IChe9AtAE79ru084ow8jzkN2lNrG3Ntfiv65Cvj9uOCE2m5LNsdHG+9EbxWxAoWRF9TgDOqLN5jm08++owDVRg==} + jose@5.9.2: + resolution: {integrity: sha512-ILI2xx/I57b20sd7rHZvgiiQrmp2mcotwsAH+5ajbpFQbrYVQdNHYlQhoA5cFb78CgtBOxtC05TeA+mcgkuCqQ==} jotai@2.9.3: resolution: {integrity: sha512-IqMWKoXuEzWSShjd9UhalNsRGbdju5G2FrqNLQJT+Ih6p41VNYe2sav5hnwQx4HJr25jq9wRqvGSWGviGG6Gjw==} @@ -5388,8 +5505,8 @@ packages: kuler@2.0.0: resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} - language-subtag-registry@0.3.22: - resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} + language-subtag-registry@0.3.23: + resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} language-tags@1.0.9: resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} @@ -5454,8 +5571,8 @@ packages: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} engines: {node: '>=10'} - logform@2.6.0: - resolution: {integrity: sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==} + logform@2.6.1: + resolution: {integrity: sha512-CdaO738xRapbKIMVn2m4F6KTj4j7ooJ8POVnebSgKo3KBz5axNXRAL7ZdRjIV6NOr2Uf4vjtRkxrFETOioCqSA==} engines: {node: '>= 12.0.0'} long@5.2.3: @@ -5477,12 +5594,11 @@ packages: lowlight@1.20.0: resolution: {integrity: sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==} - lru-cache@10.2.2: - resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} - engines: {node: 14 || >=16.14} + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - lru-cache@11.0.0: - resolution: {integrity: sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==} + lru-cache@11.0.1: + resolution: {integrity: sha512-CgeuL5uom6j/ZVrg7G/+1IXqRY8JXX4Hghfy5YE0EhoYQWvndP1kufu58cmZLNIDKnRhZrXfdS9urVWx98AipQ==} engines: {node: 20 || >=22} lru-cache@5.1.1: @@ -5496,14 +5612,14 @@ packages: resolution: {integrity: sha512-86xXMB6DiuKrTqkE/lRL0drlNh568awttBPJ7D66fzDHpy6NC5r3N+Ly/lKCS2zjmeGyvFDx670z0cD0PVBwGA==} engines: {bun: '>=1.0.0', deno: '>=1.30.0', node: '>=8.0.0'} - m3u8-parser@7.1.0: - resolution: {integrity: sha512-7N+pk79EH4oLKPEYdgRXgAsKDyA/VCo0qCHlUwacttQA0WqsjZQYmNfywMvjlY9MpEBVZEt0jKFd73Kv15EBYQ==} + m3u8-parser@7.2.0: + resolution: {integrity: sha512-CRatFqpjVtMiMaKXxNvuI3I++vUumIXVVT/JpCpdU/FynV/ceVw1qpPyyBNindL+JlPMSesx+WX1QJaZEJSaMQ==} magic-string@0.30.11: resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} - magicast@0.3.4: - resolution: {integrity: sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==} + magicast@0.3.5: + resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} make-dir@3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} @@ -5554,8 +5670,8 @@ packages: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} - micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} mime-db@1.52.0: @@ -5601,8 +5717,8 @@ packages: resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} engines: {node: '>=10'} - minimatch@9.0.4: - resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} minimist@1.2.8: @@ -5647,9 +5763,6 @@ packages: resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} engines: {node: '>=10'} - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -5669,8 +5782,8 @@ packages: resolution: {integrity: sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==} engines: {node: '>=12.0.0'} - nan@2.19.0: - resolution: {integrity: sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==} + nan@2.20.0: + resolution: {integrity: sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==} nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} @@ -5695,6 +5808,10 @@ packages: neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + neotraverse@0.6.18: + resolution: {integrity: sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==} + engines: {node: '>= 10'} + netmask@2.0.2: resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} engines: {node: '>= 0.4.0'} @@ -5743,8 +5860,8 @@ packages: no-case@2.3.2: resolution: {integrity: sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==} - node-abi@3.62.0: - resolution: {integrity: sha512-CPMcGa+y33xuL1E0TcNIu4YyaZCxnnvkVaEXrsosR3FxN+fV8xvb7Mzpb7IgKler10qeMkE6+Dp8qJhpzdq35g==} + node-abi@3.67.0: + resolution: {integrity: sha512-bLn/fU/ALVBE9wj+p4Y21ZJWYFjUXLXPi/IewyLZkx3ApxKDNBWCKdReeKOtD8dWpOdDCeMyLh6ZewzcLsG2Nw==} engines: {node: '>=10'} node-abort-controller@3.1.1: @@ -5780,8 +5897,8 @@ packages: encoding: optional: true - node-gyp-build@4.8.1: - resolution: {integrity: sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==} + node-gyp-build@4.8.2: + resolution: {integrity: sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==} hasBin: true node-loader@2.0.0: @@ -5790,17 +5907,14 @@ packages: peerDependencies: webpack: ^5.0.0 - node-mocks-http@1.14.1: - resolution: {integrity: sha512-mfXuCGonz0A7uG1FEjnypjm34xegeN5+HI6xeGhYKecfgaZhjsmYoLE9LEFmT+53G1n8IuagPZmVnEL/xNsFaA==} + node-mocks-http@1.16.0: + resolution: {integrity: sha512-jmDjsr87ugnZ4nqBeX8ccMB1Fn04qc5Fz45XgrneJerWGV0VqS+wpu/zVkwv8LDAYHljDy5FzNvRJaOzEW9Dyw==} engines: {node: '>=14'} node-plop@0.26.3: resolution: {integrity: sha512-Cov028YhBZ5aB7MdMWJEmwyBig43aGL5WT4vdoB28Oitau1zZAcHUn8Sgfk9HM33TqhtLJ9PlM/O0Mv+QpV/4Q==} engines: {node: '>=8.9.4'} - node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} - node-releases@2.0.18: resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} @@ -5824,15 +5938,16 @@ packages: nwsapi@2.2.12: resolution: {integrity: sha512-qXDmcVlZV4XRtKFzddidpfVP4oMSGhga+xdMc25mv8kaLUHtgzCDhUxkrN8exkGdTlLNaXj7CV3GtON7zuGZ+w==} - oauth4webapi@2.11.0: - resolution: {integrity: sha512-UchKtYyLuWwrZLB7g9Px+0JScIAK/bD1awLK5gdOCIs0cjxc7ol+ESL+Rr4nOmEJSvib6kEgvdUHvXm8DrZQ+w==} + oauth4webapi@2.15.0: + resolution: {integrity: sha512-6nZnlxj6M3LeVrxB7bgxwY8hq0B5Quemxhbw85evRlK70qCCUm9O1s47AepSmgYUbkwLTFedP1DZ1eBUIKyRSw==} object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + object-inspect@1.13.2: + resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + engines: {node: '>= 0.4'} object-is@1.1.6: resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} @@ -5875,12 +5990,12 @@ packages: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} - openapi-path-templating@1.5.3: - resolution: {integrity: sha512-NPL+3w4NsBmqTzCQGQbSUHTAUYM/ubm3tH9BWe77uvGyA8L32L73w+w7zhBCsql0zp+gqGvglaHdQTpWx/tzmA==} + openapi-path-templating@1.6.0: + resolution: {integrity: sha512-1atBNwOUrZXthTvlvvX8k8ovFEF3iA8mDidYMkdOtvVdndBhTrspbwGXNOzEUaJhm9iUl4Tf5uQaeTLAJvwPig==} engines: {node: '>=12.20.0'} - openapi-server-url-templating@1.0.0: - resolution: {integrity: sha512-hJ3sCVx7XyYATfRqBfUY+dE+DSM/tsqZ83xtcyHhNqtDiN2Il/uedCzBaE9re3gLRkC4I0GrCI84aaQHboNMCw==} + openapi-server-url-templating@1.1.0: + resolution: {integrity: sha512-dtyTFKx2xVcO0W8JKaluXIHC9l/MLjHeflBaWjiWNMCHp/TBs9dEjQDbj/VFlHR4omFOKjjmqm1pW1aCAhmPBg==} engines: {node: '>=12.20.0'} openapi-types@12.1.3: @@ -5917,8 +6032,8 @@ packages: resolution: {integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==} engines: {node: '>=8'} - pac-proxy-agent@7.0.1: - resolution: {integrity: sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==} + pac-proxy-agent@7.0.2: + resolution: {integrity: sha512-BFi3vZnO9X5Qt6NRz7ZOaPja3ic0PhlsmCRYLOpN11+mWBCR6XJDqW5RF3j8jm4WGGQZtBA+bTfxYzeKW73eHg==} engines: {node: '>= 14'} pac-resolver@7.0.1: @@ -6009,8 +6124,8 @@ packages: resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} - piscina@4.5.1: - resolution: {integrity: sha512-DVhySLPfqAW+uRH9dF0bjA2xEWr5ANLAzkYXx5adSLMFnwssSIVJYhg0FlvgYsnT/khILQJ3WkjqbAlBvt+maw==} + piscina@4.6.1: + resolution: {integrity: sha512-z30AwWGtQE+Apr+2WBZensP2lIvwoaMcOPkQlIEmSGMJNUvaYACylPYrQM6wSdUNJlnDVMSpLv7xTMJqlVshOA==} pkcs7@1.0.4: resolution: {integrity: sha512-afRERtHn54AlwaF2/+LFszyAANTCggGilmcmILUzEjvs3XgFZT+xE6+QWQcAGmu4xajy+Xtj7acLOPdx5/eXWQ==} @@ -6032,8 +6147,8 @@ packages: peerDependencies: postcss: ^8.2.14 - postcss-nested@6.0.1: - resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + postcss-nested@6.2.0: + resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 @@ -6043,8 +6158,8 @@ packages: peerDependencies: postcss: '>=8.0.0' - postcss-selector-parser@6.0.16: - resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} engines: {node: '>=4'} postcss-simple-vars@7.0.1: @@ -6057,8 +6172,8 @@ packages: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} - postcss@8.4.45: - resolution: {integrity: sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==} + postcss@8.4.47: + resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} engines: {node: ^10 || ^12 || >=14} preact-render-to-string@5.2.3: @@ -6124,8 +6239,8 @@ packages: prosemirror-collab@1.3.1: resolution: {integrity: sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ==} - prosemirror-commands@1.5.2: - resolution: {integrity: sha512-hgLcPaakxH8tu6YvVAaILV2tXYsW3rAdDR8WNkeKGcgeMVQg3/TMhPdVoh7iAmfgVjZGtcOSjKiQaoeKjzd2mQ==} + prosemirror-commands@1.6.0: + resolution: {integrity: sha512-xn1U/g36OqXn2tn5nGmvnnimAj/g1pUx2ypJJIe8WkVX83WyJVC5LTARaxZa2AtQRwntu9Jc5zXs9gL9svp/mg==} prosemirror-dropcursor@1.8.1: resolution: {integrity: sha512-M30WJdJZLyXHi3N8vxN6Zh5O8ZBbQCz0gURTfPmTIBNQ5pxrdU7A58QkNqfa98YEjSAL1HUyyU34f6Pm5xBSGw==} @@ -6160,8 +6275,8 @@ packages: prosemirror-state@1.4.3: resolution: {integrity: sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==} - prosemirror-tables@1.4.0: - resolution: {integrity: sha512-fxryZZkQG12fSCNuZDrYx6Xvo2rLYZTbKLRd8rglOPgNJGMKIS8uvTt6gGC38m7UCu/ENnXIP9pEz5uDaPc+cA==} + prosemirror-tables@1.5.0: + resolution: {integrity: sha512-VMx4zlYWm7aBlZ5xtfJHpqa3Xgu3b7srV54fXYnXgsAcIGRqKSrhiK3f89omzzgaAgAtDOV4ImXnLKhVfheVNQ==} prosemirror-trailing-node@2.0.9: resolution: {integrity: sha512-YvyIn3/UaLFlFKrlJB6cObvUhmwFNZVhy1Q8OpW/avoTbD/Y7H5EcjK4AZFKhmuS6/N6WkGgt7gWtBWDnmFvHg==} @@ -6173,8 +6288,8 @@ packages: prosemirror-transform@1.10.0: resolution: {integrity: sha512-9UOgFSgN6Gj2ekQH5CTDJ8Rp/fnKR2IkYfGdzzp5zQMFsS4zDllLVx/+jGcX86YlACpG7UR5fwAXiWzxqWtBTg==} - prosemirror-view@1.33.10: - resolution: {integrity: sha512-wsKg9JeQkWlkXG8DDcloI/tbB9r3CysziubigoC8wTuE6zobN/9cl8bGRk1J1XjkUp7rxGBziOSxrhoILL84hg==} + prosemirror-view@1.34.2: + resolution: {integrity: sha512-tPX/V2Xd70vrAGQ/V9CppJtPKnQyQMypJGlLylvdI94k6JaG+4P6fVmXPR1zc1eVTW0gq3c6zsfqwJKCRLaG9Q==} proto-list@1.2.4: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} @@ -6189,8 +6304,8 @@ packages: psl@1.9.0: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} - pump@3.0.0: - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + pump@3.0.2: + resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} punycode.js@2.3.1: resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} @@ -6204,8 +6319,8 @@ packages: resolution: {integrity: sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==} engines: {node: '>=8'} - qs@6.12.1: - resolution: {integrity: sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==} + qs@6.13.0: + resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} querystringify@2.2.0: @@ -6217,8 +6332,8 @@ packages: queue-tick@1.0.1: resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} - ramda-adjunct@5.0.1: - resolution: {integrity: sha512-UTQCcWnoiuYH+ua+jGg3GTktcmCSD2W7OO2++tmv8p2Ze+N9VgVACERg4g36rRfIXklVMtqazyBLBWXfoPKgRQ==} + ramda-adjunct@5.1.0: + resolution: {integrity: sha512-8qCpl2vZBXEJyNbi4zqcgdfHtcdsWjOGbiNSEnEBrM6Y0OKOT8UxJbIVGm1TIcjaSu2MxaWcgtsNlKlCk7o7qg==} engines: {node: '>=0.10.3'} peerDependencies: ramda: '>= 0.30.0' @@ -6285,8 +6400,8 @@ packages: react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - react-number-format@5.3.4: - resolution: {integrity: sha512-2hHN5mbLuCDUx19bv0Q8wet67QqYK6xmtLQeY5xx+h7UXiMmRtaCwqko4mMPoKXLc6xAzwRrutg8XbTRlsfjRg==} + react-number-format@5.4.2: + resolution: {integrity: sha512-cg//jVdS49PYDgmcYoBnMMHl4XNTMuV723ZnHD2aXYtWWWqbVF3hjQ8iB+UZEuXapLbeA8P8H+1o6ZB1lcw3vg==} peerDependencies: react: ^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 react-dom: ^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 @@ -6317,8 +6432,8 @@ packages: '@types/react': optional: true - react-remove-scroll@2.5.10: - resolution: {integrity: sha512-m3zvBRANPBw3qxVVjEIPEQinkcwlFZ4qyomuWVpNJdv4c6MvHfXV0C3L9Jx5rr3HeBHKNRX+1jreB5QloDIJjA==} + react-remove-scroll@2.6.0: + resolution: {integrity: sha512-I2U4JVEsQenxDAKaVa3VZ/JeJZe0/2DxPWL8Tj8yLKctQJQiZM52pn/GWFpSp8dftjM3pSAHVJZscAnC/y+ySQ==} engines: {node: '>=10'} peerDependencies: '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -6488,8 +6603,8 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rollup@4.17.2: - resolution: {integrity: sha512-/9ClTJPByC0U4zNLowV1tMBe8yMEAxewtR3cUNX5BoEpGH3dQEWpJLr6CLp0fPdYRF/fzVOgvDb1zXuakwF5kQ==} + rollup@4.21.3: + resolution: {integrity: sha512-7sqRtBNnEbcBtMeRVc6VRsJMmpI+JU1z9VTvW8D4gXIYQFz0aLcsE6rRkyghZkLfEgUZgVvOG7A5CVz/VW5GIA==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -6499,9 +6614,6 @@ packages: rrdom@0.1.7: resolution: {integrity: sha512-ZLd8f14z9pUy2Hk9y636cNv5Y2BMnNEY99wxzW9tD2BLDfe1xFxtLjB4q/xCBYo6HRe0wofzKzjm4JojmpBfFw==} - rrweb-cssom@0.6.0: - resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} - rrweb-cssom@0.7.1: resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==} @@ -6545,8 +6657,8 @@ packages: resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} engines: {node: '>= 0.4'} - safe-stable-stringify@2.4.3: - resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} + safe-stable-stringify@2.5.0: + resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} engines: {node: '>=10'} safer-buffer@2.1.2: @@ -6576,11 +6688,6 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.6.2: - resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} - engines: {node: '>=10'} - hasBin: true - semver@7.6.3: resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} engines: {node: '>=10'} @@ -6684,18 +6791,14 @@ packages: resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==} engines: {node: '>=10.0.0'} - socks-proxy-agent@8.0.3: - resolution: {integrity: sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==} + socks-proxy-agent@8.0.4: + resolution: {integrity: sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==} engines: {node: '>= 14'} socks@2.8.3: resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==} engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} - source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -6726,8 +6829,8 @@ packages: ssh-remote-port-forward@1.0.4: resolution: {integrity: sha512-x0LV1eVDwjf1gmG7TTnfqIzf+3VPRz7vrNIjX6oYLbeCrf/PeVY6hkT68Mg+q02qXxQhrLjB0jfgvhevoCRmLQ==} - ssh2@1.15.0: - resolution: {integrity: sha512-C0PHgX4h6lBxYx7hcXwu3QWdh4tg6tZZsTfXcdvc5caW/EMxaB4H9dWsl7qk+F7LAW762hp8VbXOX7x4xUYvEw==} + ssh2@1.16.0: + resolution: {integrity: sha512-r1X4KsBGedJqo7h8F5c4Ybpcr5RjyP+aWIG007uBPRjmdQWfEiVLzSK71Zji1B9sKxwaCvD8y8cwSkYrlLiRRg==} engines: {node: '>=10.16.0'} stack-trace@0.0.10: @@ -6754,8 +6857,8 @@ packages: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} - streamx@2.18.0: - resolution: {integrity: sha512-LLUC1TWdjVdn1weXGcSxyTR3T4+acB6tVGXT95y0nGbca4t4o/ng1wKAGTljm9VicuCVLvRlqFYXYy5GwgM7sQ==} + streamx@2.20.1: + resolution: {integrity: sha512-uTa0mU6WUC65iUvzKH4X9hEdvSW7rbPxPtwfWiLMSj3qTdQbAiUboZTxauKfpFuGIGa1C2BYijZ7wgdUXICJhA==} strict-event-emitter-types@2.0.0: resolution: {integrity: sha512-Nk/brWYpD85WlOgzw5h173aci0Teyv8YdIAEtV+N88nDB0dLlazZyJMIsN6eo1/AR61l+p6CJTG1JIyFaoNEEA==} @@ -6864,8 +6967,8 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - swagger-client@3.28.2: - resolution: {integrity: sha512-g30KCdSVyZlMulWOJnheNo7Ea+L06OZebl0oRU6zHd5Zf5AZKHTqurKRdNOLsMWA3l3bWJiEh7s3JlzFJHRmoQ==} + swagger-client@3.29.3: + resolution: {integrity: sha512-OhhMAO2dwDEaxtUNDxwaqzw75uiZY5lX/2vx+U6eKCYZYhXWQ5mylU/0qfk/xMR20VyitsnzRc6KcFFjRoCS7A==} swagger-ui-react@5.17.14: resolution: {integrity: sha512-mCXerZrbcn4ftPYifUF0+iKIRTHoVCv0HcJc/sXl9nCe3oeWdsjmOWVqKabzzAkAa0NwsbKNJFv2UL/Ivnf6VQ==} @@ -6934,8 +7037,8 @@ packages: testcontainers@10.13.1: resolution: {integrity: sha512-JBbOhxmygj/ouH/47GnoVNt+c55Telh/45IjVxEbDoswsLchVmJiuKiw/eF6lE5i7LN+/99xsrSCttI3YRtirg==} - text-decoder@1.1.0: - resolution: {integrity: sha512-TmLJNj6UgX8xcUZo4UDStGQtDiTzF7BzWlzn9g7UWrjkpHr5uJTK1ld16wZ3LXb2vb6jH8qU89dW5whuMdXYdw==} + text-decoder@1.2.0: + resolution: {integrity: sha512-n1yg1mOj9DNpk3NeZOx7T6jchTbyJS3i3cucbNN6FcdPriMZx7NsgrGpWWdWZZGxD7ES1XB+3uoqHMgOKaN+fg==} text-hex@1.0.0: resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} @@ -6962,16 +7065,16 @@ packages: tinygradient@1.1.5: resolution: {integrity: sha512-8nIfc2vgQ4TeLnk2lFj4tRLvvJwEfQuabdsmvDdQPT0xlk9TaNtpGd6nNRxXoK6vQhN6RSzj+Cnp5tTQmpxmbw==} - tinypool@1.0.0: - resolution: {integrity: sha512-KIKExllK7jp3uvrNtvRBYBWBOAXSX8ZvoaD8T+7KB/QHIuoJW3Pmr60zucywjAlMb5TeXUkcs/MWeWLu0qvuAQ==} + tinypool@1.0.1: + resolution: {integrity: sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA==} engines: {node: ^18.0.0 || >=20.0.0} tinyrainbow@1.2.0: resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} engines: {node: '>=14.0.0'} - tinyspy@3.0.0: - resolution: {integrity: sha512-q5nmENpTHgiPVd1cJDDc9cVoYN5x4vCvwT3FMilvKPKneCBZAxn2YWQjDF0UMcE9k0Cay1gBiDfTMU0g+mPMQA==} + tinyspy@3.0.2: + resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} engines: {node: '>=14.0.0'} tippy.js@6.3.7: @@ -7025,10 +7128,6 @@ packages: resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} engines: {node: '>=18'} - traverse@0.6.8: - resolution: {integrity: sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA==} - engines: {node: '>= 0.4'} - tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true @@ -7079,8 +7178,8 @@ packages: ts-toolbelt@9.6.0: resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==} - tsconfck@3.0.3: - resolution: {integrity: sha512-4t0noZX9t6GcPTfBAbIbbIU4pfpCwh0ueq3S4O/5qXI1VwK1outmxhe9dOiEWqMz3MW2LKgDTpqWV+37IWuVbA==} + tsconfck@3.1.3: + resolution: {integrity: sha512-ulNZP1SVpRDesxeMLON/LtWM8HIgAJEIVpVVhBM6gsmvQ8+Rh+ZG7FWGvHh7Ah3pRABwVJWklWCr/BTZSv0xnQ==} engines: {node: ^18 || >=20} hasBin: true peerDependencies: @@ -7095,8 +7194,8 @@ packages: tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + tslib@2.7.0: + resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} tsscmp@1.0.6: resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} @@ -7159,8 +7258,8 @@ packages: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} - type-fest@4.18.2: - resolution: {integrity: sha512-+suCYpfJLAe4OXS6+PPXjW3urOS4IoP9waSiLuXfLgqZODKw/aWwASvzqE886wA0kQgGy0mIWyhd87VpqIy6Xg==} + type-fest@4.26.1: + resolution: {integrity: sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==} engines: {node: '>=16'} type-is@1.6.18: @@ -7186,8 +7285,8 @@ packages: typedarray-to-buffer@3.1.5: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - types-ramda@0.30.0: - resolution: {integrity: sha512-oVPw/KHB5M0Du0txTEKKM8xZOG9cZBRdCVXvwHYuNJUVkAiJ9oWyqkA+9Bj2gjMsHgkkhsYevobQBWs8I2/Xvw==} + types-ramda@0.30.1: + resolution: {integrity: sha512-1HTsf5/QVRmLzcGfldPFvkVsAdi1db1BBKzi7iW3KBUlOICg/nKnFS+jGqDJS3YD8VsWbAh7JiHeBvbsw8RPxA==} typescript-eslint@8.6.0: resolution: {integrity: sha512-eEhhlxCEpCd4helh3AO1hk0UP2MvbRi9CtIAJTVPQjuSXOOO2jsEacNi4UdcJzZJbeuVg1gMhtZ8UYb+NFYPrA==} @@ -7209,8 +7308,8 @@ packages: ufo@1.5.4: resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} - uglify-js@3.17.4: - resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} + uglify-js@3.19.3: + resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} engines: {node: '>=0.8.0'} hasBin: true @@ -7224,8 +7323,8 @@ packages: undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - undici-types@6.19.6: - resolution: {integrity: sha512-e/vggGopEfTKSvj4ihnOLTsqhrKRN3LeO6qSN/GxohhuRv8qH9bNQ4B8W7e/vFL+0XTnmHPB4/kegunZGA4Org==} + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} undici@5.28.4: resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} @@ -7251,19 +7350,18 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} - unplugin@1.10.1: - resolution: {integrity: sha512-d6Mhq8RJeGA8UfKCu54Um4lFA0eSaRa3XxdAJg8tIdxbu1ubW0hBCZUL7yI2uGyYCRndvbK8FLHzqy2XKfeMsg==} + unplugin@1.14.1: + resolution: {integrity: sha512-lBlHbfSFPToDYp9pjXlUEFVxYLaue9f9T1HC+4OHlmj+HnMDdz9oZY+erXfoCe/5V/7gKUSY2jpXPb9S7f0f/w==} engines: {node: '>=14.0.0'} + peerDependencies: + webpack-sources: ^3 + peerDependenciesMeta: + webpack-sources: + optional: true unraw@3.0.0: resolution: {integrity: sha512-08/DA66UF65OlpUDIQtbJyrqTR0jTAlJ+jsnkQ4jxR7+K5g5YG1APZKQSMCE1vqqmD+2pv6+IdEjmopFatacvg==} - update-browserslist-db@1.0.16: - resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - update-browserslist-db@1.1.0: resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} hasBin: true @@ -7396,8 +7494,8 @@ packages: vite: optional: true - vite@5.2.11: - resolution: {integrity: sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==} + vite@5.4.5: + resolution: {integrity: sha512-pXqR0qtb2bTwLkev4SE3r4abCNioP3GkjvIDLlzziPpXtHgiJIjuKl+1GN6ESOT3wMjG3JTeARopj2SwYaHTOA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -7405,6 +7503,7 @@ packages: less: '*' lightningcss: ^1.21.0 sass: '*' + sass-embedded: '*' stylus: '*' sugarss: '*' terser: ^5.4.0 @@ -7417,6 +7516,8 @@ packages: optional: true sass: optional: true + sass-embedded: + optional: true stylus: optional: true sugarss: @@ -7481,11 +7582,11 @@ packages: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} - webpack-virtual-modules@0.6.1: - resolution: {integrity: sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==} + webpack-virtual-modules@0.6.2: + resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} - webpack@5.91.0: - resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==} + webpack@5.94.0: + resolution: {integrity: sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -7515,8 +7616,8 @@ packages: which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} - which-builtin-type@1.1.3: - resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} + which-builtin-type@1.1.4: + resolution: {integrity: sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==} engines: {node: '>= 0.4'} which-collection@1.0.2: @@ -7544,8 +7645,8 @@ packages: resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} engines: {node: '>=8'} - winston-transport@4.7.0: - resolution: {integrity: sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==} + winston-transport@4.7.1: + resolution: {integrity: sha512-wQCXXVgfv/wUPOfb2x0ruxzwkcZfxcktz6JIMUaPLmcNhO4bZTwA/WtDWK74xV3F2dKu8YadrFv0qhwYjVEwhA==} engines: {node: '>= 12.0.0'} winston@3.14.2: @@ -7639,8 +7740,8 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - yaml@2.4.5: - resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} + yaml@2.5.1: + resolution: {integrity: sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==} engines: {node: '>= 14'} hasBin: true @@ -7672,8 +7773,8 @@ packages: peerDependencies: zod: '>= 3.11.0' - zod-to-json-schema@3.23.0: - resolution: {integrity: sha512-az0uJ243PxsRIa2x1WmNE/pnuA05gUq/JB8Lwe1EDCCL/Fz9MgjYQ0fPlyc2Tcv6aF2ZA7WM5TWaRZVEFaAIag==} + zod-to-json-schema@3.23.3: + resolution: {integrity: sha512-TYWChTxKQbRJp5ST22o/Irt9KC5nj7CdBKYB/AosCRdj/wxEMvv4NNaj9XVUHDOIp53ZxArGhnw5HMZziPFjog==} peerDependencies: zod: ^3.23.3 @@ -7691,11 +7792,11 @@ snapshots: '@auth/core@0.35.0': dependencies: - '@panva/hkdf': 1.1.1 + '@panva/hkdf': 1.2.1 '@types/cookie': 0.6.0 cookie: 0.6.0 - jose: 5.3.0 - oauth4webapi: 2.11.0 + jose: 5.9.2 + oauth4webapi: 2.15.0 preact: 10.11.3 preact-render-to-string: 5.2.3(preact@10.11.3) @@ -7712,147 +7813,158 @@ snapshots: fetch-retry: 6.0.0 uuid: 8.3.2 - '@babel/code-frame@7.24.6': + '@babel/code-frame@7.24.7': dependencies: - '@babel/highlight': 7.24.6 + '@babel/highlight': 7.24.7 picocolors: 1.1.0 - '@babel/compat-data@7.24.6': {} + '@babel/compat-data@7.25.4': {} '@babel/core@7.24.6': dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.6 - '@babel/generator': 7.24.6 - '@babel/helper-compilation-targets': 7.24.6 - '@babel/helper-module-transforms': 7.24.6(@babel/core@7.24.6) - '@babel/helpers': 7.24.6 - '@babel/parser': 7.24.7 - '@babel/template': 7.24.6 - '@babel/traverse': 7.24.6 + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.25.6 + '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.24.6) + '@babel/helpers': 7.25.6 + '@babel/parser': 7.25.6 + '@babel/template': 7.25.0 + '@babel/traverse': 7.25.6 '@babel/types': 7.24.6 convert-source-map: 2.0.0 - debug: 4.3.6 + debug: 4.3.7 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/generator@7.24.6': + '@babel/core@7.25.2': dependencies: - '@babel/types': 7.24.6 + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.25.6 + '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) + '@babel/helpers': 7.25.6 + '@babel/parser': 7.25.6 + '@babel/template': 7.25.0 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 + convert-source-map: 2.0.0 + debug: 4.3.7 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.25.6': + dependencies: + '@babel/types': 7.25.6 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 - '@babel/helper-compilation-targets@7.24.6': + '@babel/helper-compilation-targets@7.25.2': dependencies: - '@babel/compat-data': 7.24.6 - '@babel/helper-validator-option': 7.24.6 - browserslist: 4.23.0 + '@babel/compat-data': 7.25.4 + '@babel/helper-validator-option': 7.24.8 + browserslist: 4.23.3 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-environment-visitor@7.24.6': {} - - '@babel/helper-function-name@7.24.6': - dependencies: - '@babel/template': 7.24.6 - '@babel/types': 7.25.6 - - '@babel/helper-hoist-variables@7.24.6': - dependencies: - '@babel/types': 7.25.6 - - '@babel/helper-module-imports@7.24.6': + '@babel/helper-module-imports@7.24.7': dependencies: + '@babel/traverse': 7.25.6 '@babel/types': 7.25.6 + transitivePeerDependencies: + - supports-color - '@babel/helper-module-transforms@7.24.6(@babel/core@7.24.6)': + '@babel/helper-module-transforms@7.25.2(@babel/core@7.24.6)': dependencies: '@babel/core': 7.24.6 - '@babel/helper-environment-visitor': 7.24.6 - '@babel/helper-module-imports': 7.24.6 - '@babel/helper-simple-access': 7.24.6 - '@babel/helper-split-export-declaration': 7.24.6 - '@babel/helper-validator-identifier': 7.24.6 - - '@babel/helper-plugin-utils@7.24.6': {} + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-simple-access': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + '@babel/traverse': 7.25.6 + transitivePeerDependencies: + - supports-color - '@babel/helper-simple-access@7.24.6': + '@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2)': dependencies: - '@babel/types': 7.25.6 + '@babel/core': 7.25.2 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-simple-access': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + '@babel/traverse': 7.25.6 + transitivePeerDependencies: + - supports-color + + '@babel/helper-plugin-utils@7.24.8': {} - '@babel/helper-split-export-declaration@7.24.6': + '@babel/helper-simple-access@7.24.7': dependencies: + '@babel/traverse': 7.25.6 '@babel/types': 7.25.6 - - '@babel/helper-string-parser@7.24.6': {} + transitivePeerDependencies: + - supports-color '@babel/helper-string-parser@7.24.8': {} - '@babel/helper-validator-identifier@7.24.6': {} - '@babel/helper-validator-identifier@7.24.7': {} - '@babel/helper-validator-option@7.24.6': {} + '@babel/helper-validator-option@7.24.8': {} - '@babel/helpers@7.24.6': + '@babel/helpers@7.25.6': dependencies: - '@babel/template': 7.24.6 + '@babel/template': 7.25.0 '@babel/types': 7.25.6 - '@babel/highlight@7.24.6': + '@babel/highlight@7.24.7': dependencies: '@babel/helper-validator-identifier': 7.24.7 chalk: 2.4.2 js-tokens: 4.0.0 picocolors: 1.1.0 - '@babel/parser@7.24.7': - dependencies: - '@babel/types': 7.24.6 - '@babel/parser@7.25.6': dependencies: '@babel/types': 7.25.6 - '@babel/plugin-transform-react-jsx-self@7.24.5(@babel/core@7.24.6)': + '@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-react-jsx-source@7.24.1(@babel/core@7.24.6)': + '@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 - '@babel/runtime-corejs3@7.24.5': + '@babel/runtime-corejs3@7.25.6': dependencies: - core-js-pure: 3.37.1 + core-js-pure: 3.38.1 regenerator-runtime: 0.14.1 - '@babel/runtime@7.24.5': + '@babel/runtime@7.25.6': dependencies: regenerator-runtime: 0.14.1 - '@babel/template@7.24.6': + '@babel/template@7.25.0': dependencies: - '@babel/code-frame': 7.24.6 - '@babel/parser': 7.24.7 + '@babel/code-frame': 7.24.7 + '@babel/parser': 7.25.6 '@babel/types': 7.25.6 - '@babel/traverse@7.24.6': + '@babel/traverse@7.25.6': dependencies: - '@babel/code-frame': 7.24.6 - '@babel/generator': 7.24.6 - '@babel/helper-environment-visitor': 7.24.6 - '@babel/helper-function-name': 7.24.6 - '@babel/helper-hoist-variables': 7.24.6 - '@babel/helper-split-export-declaration': 7.24.6 - '@babel/parser': 7.24.7 - '@babel/types': 7.24.6 + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.25.6 + '@babel/parser': 7.25.6 + '@babel/template': 7.25.0 + '@babel/types': 7.25.6 debug: 4.3.7 globals: 11.12.0 transitivePeerDependencies: @@ -7860,8 +7972,8 @@ snapshots: '@babel/types@7.24.6': dependencies: - '@babel/helper-string-parser': 7.24.6 - '@babel/helper-validator-identifier': 7.24.6 + '@babel/helper-string-parser': 7.24.8 + '@babel/helper-validator-identifier': 7.24.7 to-fast-properties: 2.0.0 '@babel/types@7.25.6': @@ -7949,7 +8061,7 @@ snapshots: '@esbuild-kit/esm-loader@2.6.5': dependencies: '@esbuild-kit/core-utils': 3.3.2 - get-tsconfig: 4.7.5 + get-tsconfig: 4.8.1 '@esbuild/aix-ppc64@0.19.12': optional: true @@ -7957,6 +8069,9 @@ snapshots: '@esbuild/aix-ppc64@0.20.2': optional: true + '@esbuild/aix-ppc64@0.21.5': + optional: true + '@esbuild/android-arm64@0.18.20': optional: true @@ -7966,6 +8081,9 @@ snapshots: '@esbuild/android-arm64@0.20.2': optional: true + '@esbuild/android-arm64@0.21.5': + optional: true + '@esbuild/android-arm@0.18.20': optional: true @@ -7975,6 +8093,9 @@ snapshots: '@esbuild/android-arm@0.20.2': optional: true + '@esbuild/android-arm@0.21.5': + optional: true + '@esbuild/android-x64@0.18.20': optional: true @@ -7984,6 +8105,9 @@ snapshots: '@esbuild/android-x64@0.20.2': optional: true + '@esbuild/android-x64@0.21.5': + optional: true + '@esbuild/darwin-arm64@0.18.20': optional: true @@ -7993,6 +8117,9 @@ snapshots: '@esbuild/darwin-arm64@0.20.2': optional: true + '@esbuild/darwin-arm64@0.21.5': + optional: true + '@esbuild/darwin-x64@0.18.20': optional: true @@ -8002,6 +8129,9 @@ snapshots: '@esbuild/darwin-x64@0.20.2': optional: true + '@esbuild/darwin-x64@0.21.5': + optional: true + '@esbuild/freebsd-arm64@0.18.20': optional: true @@ -8011,6 +8141,9 @@ snapshots: '@esbuild/freebsd-arm64@0.20.2': optional: true + '@esbuild/freebsd-arm64@0.21.5': + optional: true + '@esbuild/freebsd-x64@0.18.20': optional: true @@ -8020,6 +8153,9 @@ snapshots: '@esbuild/freebsd-x64@0.20.2': optional: true + '@esbuild/freebsd-x64@0.21.5': + optional: true + '@esbuild/linux-arm64@0.18.20': optional: true @@ -8029,6 +8165,9 @@ snapshots: '@esbuild/linux-arm64@0.20.2': optional: true + '@esbuild/linux-arm64@0.21.5': + optional: true + '@esbuild/linux-arm@0.18.20': optional: true @@ -8038,6 +8177,9 @@ snapshots: '@esbuild/linux-arm@0.20.2': optional: true + '@esbuild/linux-arm@0.21.5': + optional: true + '@esbuild/linux-ia32@0.18.20': optional: true @@ -8047,6 +8189,9 @@ snapshots: '@esbuild/linux-ia32@0.20.2': optional: true + '@esbuild/linux-ia32@0.21.5': + optional: true + '@esbuild/linux-loong64@0.18.20': optional: true @@ -8056,6 +8201,9 @@ snapshots: '@esbuild/linux-loong64@0.20.2': optional: true + '@esbuild/linux-loong64@0.21.5': + optional: true + '@esbuild/linux-mips64el@0.18.20': optional: true @@ -8065,6 +8213,9 @@ snapshots: '@esbuild/linux-mips64el@0.20.2': optional: true + '@esbuild/linux-mips64el@0.21.5': + optional: true + '@esbuild/linux-ppc64@0.18.20': optional: true @@ -8074,6 +8225,9 @@ snapshots: '@esbuild/linux-ppc64@0.20.2': optional: true + '@esbuild/linux-ppc64@0.21.5': + optional: true + '@esbuild/linux-riscv64@0.18.20': optional: true @@ -8083,6 +8237,9 @@ snapshots: '@esbuild/linux-riscv64@0.20.2': optional: true + '@esbuild/linux-riscv64@0.21.5': + optional: true + '@esbuild/linux-s390x@0.18.20': optional: true @@ -8092,6 +8249,9 @@ snapshots: '@esbuild/linux-s390x@0.20.2': optional: true + '@esbuild/linux-s390x@0.21.5': + optional: true + '@esbuild/linux-x64@0.18.20': optional: true @@ -8101,6 +8261,9 @@ snapshots: '@esbuild/linux-x64@0.20.2': optional: true + '@esbuild/linux-x64@0.21.5': + optional: true + '@esbuild/netbsd-x64@0.18.20': optional: true @@ -8110,6 +8273,9 @@ snapshots: '@esbuild/netbsd-x64@0.20.2': optional: true + '@esbuild/netbsd-x64@0.21.5': + optional: true + '@esbuild/openbsd-x64@0.18.20': optional: true @@ -8119,6 +8285,9 @@ snapshots: '@esbuild/openbsd-x64@0.20.2': optional: true + '@esbuild/openbsd-x64@0.21.5': + optional: true + '@esbuild/sunos-x64@0.18.20': optional: true @@ -8128,6 +8297,9 @@ snapshots: '@esbuild/sunos-x64@0.20.2': optional: true + '@esbuild/sunos-x64@0.21.5': + optional: true + '@esbuild/win32-arm64@0.18.20': optional: true @@ -8137,6 +8309,9 @@ snapshots: '@esbuild/win32-arm64@0.20.2': optional: true + '@esbuild/win32-arm64@0.21.5': + optional: true + '@esbuild/win32-ia32@0.18.20': optional: true @@ -8146,6 +8321,9 @@ snapshots: '@esbuild/win32-ia32@0.20.2': optional: true + '@esbuild/win32-ia32@0.21.5': + optional: true + '@esbuild/win32-x64@0.18.20': optional: true @@ -8155,17 +8333,20 @@ snapshots: '@esbuild/win32-x64@0.20.2': optional: true + '@esbuild/win32-x64@0.21.5': + optional: true + '@eslint-community/eslint-utils@4.4.0(eslint@9.10.0)': dependencies: eslint: 9.10.0 eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.11.0': {} + '@eslint-community/regexpp@4.11.1': {} '@eslint/config-array@0.18.0': dependencies: '@eslint/object-schema': 2.1.4 - debug: 4.3.6 + debug: 4.3.7 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -8173,10 +8354,10 @@ snapshots: '@eslint/eslintrc@3.1.0': dependencies: ajv: 6.12.6 - debug: 4.3.6 + debug: 4.3.7 espree: 10.1.0 globals: 14.0.0 - ignore: 5.3.1 + ignore: 5.3.2 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -8192,63 +8373,63 @@ snapshots: dependencies: levn: 0.4.1 - '@extractus/feed-extractor@7.1.3(encoding@0.1.13)': + '@extractus/feed-extractor@7.1.3': dependencies: bellajs: 11.2.0 - cross-fetch: 4.0.0(encoding@0.1.13) - fast-xml-parser: 4.4.0 + cross-fetch: 4.0.0 + fast-xml-parser: 4.5.0 html-entities: 2.5.2 transitivePeerDependencies: - encoding '@fastify/busboy@2.1.1': {} - '@floating-ui/core@1.6.2': + '@floating-ui/core@1.6.8': dependencies: - '@floating-ui/utils': 0.2.2 + '@floating-ui/utils': 0.2.8 - '@floating-ui/dom@1.6.5': + '@floating-ui/dom@1.6.11': dependencies: - '@floating-ui/core': 1.6.2 - '@floating-ui/utils': 0.2.2 + '@floating-ui/core': 1.6.8 + '@floating-ui/utils': 0.2.8 - '@floating-ui/react-dom@2.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@floating-ui/react-dom@2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@floating-ui/dom': 1.6.5 + '@floating-ui/dom': 1.6.11 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@floating-ui/react@0.26.15(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@floating-ui/react@0.26.24(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@floating-ui/react-dom': 2.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@floating-ui/utils': 0.2.2 + '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@floating-ui/utils': 0.2.8 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) tabbable: 6.2.0 - '@floating-ui/utils@0.2.2': {} + '@floating-ui/utils@0.2.8': {} '@hapi/bourne@3.0.0': {} '@homarr/gridstack@1.0.3': {} - '@hono/node-server@1.11.1': {} + '@hono/node-server@1.13.0(hono@4.6.1)': + dependencies: + hono: 4.6.1 '@humanwhocodes/module-importer@1.0.1': {} '@humanwhocodes/retry@0.3.0': {} - '@ianvs/prettier-plugin-sort-imports@4.3.1(@vue/compiler-sfc@3.4.31)(prettier@3.3.3)': + '@ianvs/prettier-plugin-sort-imports@4.3.1(prettier@3.3.3)': dependencies: - '@babel/core': 7.24.6 - '@babel/generator': 7.24.6 - '@babel/parser': 7.24.7 - '@babel/traverse': 7.24.6 - '@babel/types': 7.24.6 + '@babel/core': 7.25.2 + '@babel/generator': 7.25.6 + '@babel/parser': 7.25.6 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 prettier: 3.3.3 - semver: 7.6.2 - optionalDependencies: - '@vue/compiler-sfc': 3.4.31 + semver: 7.6.3 transitivePeerDependencies: - supports-color @@ -8265,9 +8446,9 @@ snapshots: '@istanbuljs/schema@0.1.3': {} - '@jellyfin/sdk@0.10.0(axios@1.7.2)': + '@jellyfin/sdk@0.10.0(axios@1.7.7)': dependencies: - axios: 1.7.2 + axios: 1.7.7 '@jridgewell/gen-mapping@0.3.5': dependencies: @@ -8302,15 +8483,15 @@ snapshots: '@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@floating-ui/react': 0.26.15(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@floating-ui/react': 0.26.24(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mantine/hooks': 7.12.2(react@18.3.1) clsx: 2.1.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-number-format: 5.3.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react-remove-scroll: 2.5.10(@types/react@18.3.6)(react@18.3.1) + react-number-format: 5.4.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-remove-scroll: 2.6.0(@types/react@18.3.6)(react@18.3.1) react-textarea-autosize: 8.5.3(@types/react@18.3.6)(react@18.3.1) - type-fest: 4.18.2 + type-fest: 4.26.1 transitivePeerDependencies: - '@types/react' @@ -8370,16 +8551,16 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@mapbox/node-pre-gyp@1.0.11(encoding@0.1.13)': + '@mapbox/node-pre-gyp@1.0.11': dependencies: detect-libc: 2.0.3 https-proxy-agent: 5.0.1 make-dir: 3.1.0 - node-fetch: 2.7.0(encoding@0.1.13) + node-fetch: 2.7.0 nopt: 5.0.0 npmlog: 5.0.1 rimraf: 3.0.2 - semver: 7.6.2 + semver: 7.6.3 tar: 6.2.1 transitivePeerDependencies: - encoding @@ -8389,7 +8570,7 @@ snapshots: dependencies: '@antfu/ni': 0.21.12 '@axiomhq/js': 1.0.0-rc.3 - '@babel/core': 7.24.6 + '@babel/core': 7.25.2 '@babel/types': 7.25.6 '@clack/prompts': 0.7.0 cli-high: 0.4.2 @@ -8399,38 +8580,39 @@ snapshots: transitivePeerDependencies: - supports-color - '@million/lint@1.0.0-rc.84(encoding@0.1.13)(rollup@4.17.2)': + '@million/lint@1.0.0-rc.84(rollup@4.21.3)(webpack-sources@3.2.3)': dependencies: '@axiomhq/js': 1.0.0-rc.3 '@babel/core': 7.24.6 '@babel/types': 7.24.6 - '@hono/node-server': 1.11.1 + '@hono/node-server': 1.13.0(hono@4.6.1) '@million/install': 0.0.18 - '@rollup/pluginutils': 5.1.0(rollup@4.17.2) + '@rollup/pluginutils': 5.1.0(rollup@4.21.3) '@rrweb/types': 2.0.0-alpha.16 babel-plugin-syntax-hermes-parser: 0.21.1 ci-info: 4.0.0 esbuild: 0.20.2 - hono: 4.4.0 - isomorphic-fetch: 3.0.0(encoding@0.1.13) + hono: 4.6.1 + isomorphic-fetch: 3.0.0 nanoid: 5.0.7 pako: 2.1.0 pathe: 1.1.2 - piscina: 4.5.1 + piscina: 4.6.1 pretty-ms: 8.0.0 rrweb: 2.0.0-alpha.4 rrweb-player: 1.0.0-alpha.4 semver: 7.6.3 socket.io-client: 4.7.5 tmp: 0.2.3 - unplugin: 1.10.1 - update-notifier-cjs: 5.1.6(encoding@0.1.13) + unplugin: 1.14.1(webpack-sources@3.2.3) + update-notifier-cjs: 5.1.6 transitivePeerDependencies: - bufferutil - encoding - rollup - supports-color - utf-8-validate + - webpack-sources '@next/env@14.2.11': {} @@ -8465,7 +8647,7 @@ snapshots: '@next/swc-win32-x64-msvc@14.2.11': optional: true - '@noble/hashes@1.4.0': {} + '@noble/hashes@1.5.0': {} '@nodelib/fs.scandir@2.1.5': dependencies: @@ -8479,11 +8661,11 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - '@panva/hkdf@1.1.1': {} + '@panva/hkdf@1.2.1': {} '@paralleldrive/cuid2@2.2.2': dependencies: - '@noble/hashes': 1.4.0 + '@noble/hashes': 1.5.0 '@pkgjs/parseargs@0.11.0': optional: true @@ -8504,65 +8686,62 @@ snapshots: '@popperjs/core@2.11.8': {} - '@prisma/client@5.16.1': - optional: true - '@remirror/core-constants@2.0.2': {} - '@rollup/pluginutils@5.1.0(rollup@4.17.2)': + '@rollup/pluginutils@5.1.0(rollup@4.21.3)': dependencies: '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 optionalDependencies: - rollup: 4.17.2 + rollup: 4.21.3 - '@rollup/rollup-android-arm-eabi@4.17.2': + '@rollup/rollup-android-arm-eabi@4.21.3': optional: true - '@rollup/rollup-android-arm64@4.17.2': + '@rollup/rollup-android-arm64@4.21.3': optional: true - '@rollup/rollup-darwin-arm64@4.17.2': + '@rollup/rollup-darwin-arm64@4.21.3': optional: true - '@rollup/rollup-darwin-x64@4.17.2': + '@rollup/rollup-darwin-x64@4.21.3': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.17.2': + '@rollup/rollup-linux-arm-gnueabihf@4.21.3': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.17.2': + '@rollup/rollup-linux-arm-musleabihf@4.21.3': optional: true - '@rollup/rollup-linux-arm64-gnu@4.17.2': + '@rollup/rollup-linux-arm64-gnu@4.21.3': optional: true - '@rollup/rollup-linux-arm64-musl@4.17.2': + '@rollup/rollup-linux-arm64-musl@4.21.3': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.17.2': + '@rollup/rollup-linux-powerpc64le-gnu@4.21.3': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.17.2': + '@rollup/rollup-linux-riscv64-gnu@4.21.3': optional: true - '@rollup/rollup-linux-s390x-gnu@4.17.2': + '@rollup/rollup-linux-s390x-gnu@4.21.3': optional: true - '@rollup/rollup-linux-x64-gnu@4.17.2': + '@rollup/rollup-linux-x64-gnu@4.21.3': optional: true - '@rollup/rollup-linux-x64-musl@4.17.2': + '@rollup/rollup-linux-x64-musl@4.21.3': optional: true - '@rollup/rollup-win32-arm64-msvc@4.17.2': + '@rollup/rollup-win32-arm64-msvc@4.21.3': optional: true - '@rollup/rollup-win32-ia32-msvc@4.17.2': + '@rollup/rollup-win32-ia32-msvc@4.21.3': optional: true - '@rollup/rollup-win32-x64-msvc@4.17.2': + '@rollup/rollup-win32-x64-msvc@4.21.3': optional: true '@rrweb/types@2.0.0-alpha.16': @@ -8573,335 +8752,335 @@ snapshots: '@socket.io/component-emitter@3.1.2': {} - '@swagger-api/apidom-ast@1.0.0-alpha.5': + '@swagger-api/apidom-ast@1.0.0-alpha.9': dependencies: - '@babel/runtime-corejs3': 7.24.5 - '@swagger-api/apidom-error': 1.0.0-alpha.5 - '@types/ramda': 0.30.0 + '@babel/runtime-corejs3': 7.25.6 + '@swagger-api/apidom-error': 1.0.0-alpha.9 + '@types/ramda': 0.30.2 ramda: 0.30.1 - ramda-adjunct: 5.0.1(ramda@0.30.1) + ramda-adjunct: 5.1.0(ramda@0.30.1) unraw: 3.0.0 - '@swagger-api/apidom-core@1.0.0-alpha.5': + '@swagger-api/apidom-core@1.0.0-alpha.9': dependencies: - '@babel/runtime-corejs3': 7.24.5 - '@swagger-api/apidom-ast': 1.0.0-alpha.5 - '@swagger-api/apidom-error': 1.0.0-alpha.5 - '@types/ramda': 0.30.0 + '@babel/runtime-corejs3': 7.25.6 + '@swagger-api/apidom-ast': 1.0.0-alpha.9 + '@swagger-api/apidom-error': 1.0.0-alpha.9 + '@types/ramda': 0.30.2 minim: 0.23.8 ramda: 0.30.1 - ramda-adjunct: 5.0.1(ramda@0.30.1) + ramda-adjunct: 5.1.0(ramda@0.30.1) short-unique-id: 5.2.0 ts-mixer: 6.0.4 - '@swagger-api/apidom-error@1.0.0-alpha.5': + '@swagger-api/apidom-error@1.0.0-alpha.9': dependencies: - '@babel/runtime-corejs3': 7.24.5 + '@babel/runtime-corejs3': 7.25.6 - '@swagger-api/apidom-json-pointer@1.0.0-alpha.5': + '@swagger-api/apidom-json-pointer@1.0.0-alpha.9': dependencies: - '@babel/runtime-corejs3': 7.24.5 - '@swagger-api/apidom-core': 1.0.0-alpha.5 - '@swagger-api/apidom-error': 1.0.0-alpha.5 - '@types/ramda': 0.30.0 + '@babel/runtime-corejs3': 7.25.6 + '@swagger-api/apidom-core': 1.0.0-alpha.9 + '@swagger-api/apidom-error': 1.0.0-alpha.9 + '@types/ramda': 0.30.2 ramda: 0.30.1 - ramda-adjunct: 5.0.1(ramda@0.30.1) + ramda-adjunct: 5.1.0(ramda@0.30.1) - '@swagger-api/apidom-ns-api-design-systems@1.0.0-alpha.5': + '@swagger-api/apidom-ns-api-design-systems@1.0.0-alpha.9': dependencies: - '@babel/runtime-corejs3': 7.24.5 - '@swagger-api/apidom-core': 1.0.0-alpha.5 - '@swagger-api/apidom-error': 1.0.0-alpha.5 - '@swagger-api/apidom-ns-openapi-3-1': 1.0.0-alpha.5 - '@types/ramda': 0.30.0 + '@babel/runtime-corejs3': 7.25.6 + '@swagger-api/apidom-core': 1.0.0-alpha.9 + '@swagger-api/apidom-error': 1.0.0-alpha.9 + '@swagger-api/apidom-ns-openapi-3-1': 1.0.0-alpha.9 + '@types/ramda': 0.30.2 ramda: 0.30.1 - ramda-adjunct: 5.0.1(ramda@0.30.1) + ramda-adjunct: 5.1.0(ramda@0.30.1) ts-mixer: 6.0.4 optional: true - '@swagger-api/apidom-ns-asyncapi-2@1.0.0-alpha.5': + '@swagger-api/apidom-ns-asyncapi-2@1.0.0-alpha.9': dependencies: - '@babel/runtime-corejs3': 7.24.5 - '@swagger-api/apidom-core': 1.0.0-alpha.5 - '@swagger-api/apidom-ns-json-schema-draft-7': 1.0.0-alpha.5 - '@types/ramda': 0.30.0 + '@babel/runtime-corejs3': 7.25.6 + '@swagger-api/apidom-core': 1.0.0-alpha.9 + '@swagger-api/apidom-ns-json-schema-draft-7': 1.0.0-alpha.9 + '@types/ramda': 0.30.2 ramda: 0.30.1 - ramda-adjunct: 5.0.1(ramda@0.30.1) + ramda-adjunct: 5.1.0(ramda@0.30.1) ts-mixer: 6.0.4 optional: true - '@swagger-api/apidom-ns-json-schema-draft-4@1.0.0-alpha.5': + '@swagger-api/apidom-ns-json-schema-draft-4@1.0.0-alpha.9': dependencies: - '@babel/runtime-corejs3': 7.24.5 - '@swagger-api/apidom-ast': 1.0.0-alpha.5 - '@swagger-api/apidom-core': 1.0.0-alpha.5 - '@types/ramda': 0.30.0 + '@babel/runtime-corejs3': 7.25.6 + '@swagger-api/apidom-ast': 1.0.0-alpha.9 + '@swagger-api/apidom-core': 1.0.0-alpha.9 + '@types/ramda': 0.30.2 ramda: 0.30.1 - ramda-adjunct: 5.0.1(ramda@0.30.1) + ramda-adjunct: 5.1.0(ramda@0.30.1) ts-mixer: 6.0.4 - '@swagger-api/apidom-ns-json-schema-draft-6@1.0.0-alpha.5': + '@swagger-api/apidom-ns-json-schema-draft-6@1.0.0-alpha.9': dependencies: - '@babel/runtime-corejs3': 7.24.5 - '@swagger-api/apidom-core': 1.0.0-alpha.5 - '@swagger-api/apidom-error': 1.0.0-alpha.5 - '@swagger-api/apidom-ns-json-schema-draft-4': 1.0.0-alpha.5 - '@types/ramda': 0.30.0 + '@babel/runtime-corejs3': 7.25.6 + '@swagger-api/apidom-core': 1.0.0-alpha.9 + '@swagger-api/apidom-error': 1.0.0-alpha.9 + '@swagger-api/apidom-ns-json-schema-draft-4': 1.0.0-alpha.9 + '@types/ramda': 0.30.2 ramda: 0.30.1 - ramda-adjunct: 5.0.1(ramda@0.30.1) + ramda-adjunct: 5.1.0(ramda@0.30.1) ts-mixer: 6.0.4 optional: true - '@swagger-api/apidom-ns-json-schema-draft-7@1.0.0-alpha.5': + '@swagger-api/apidom-ns-json-schema-draft-7@1.0.0-alpha.9': dependencies: - '@babel/runtime-corejs3': 7.24.5 - '@swagger-api/apidom-core': 1.0.0-alpha.5 - '@swagger-api/apidom-error': 1.0.0-alpha.5 - '@swagger-api/apidom-ns-json-schema-draft-6': 1.0.0-alpha.5 - '@types/ramda': 0.30.0 + '@babel/runtime-corejs3': 7.25.6 + '@swagger-api/apidom-core': 1.0.0-alpha.9 + '@swagger-api/apidom-error': 1.0.0-alpha.9 + '@swagger-api/apidom-ns-json-schema-draft-6': 1.0.0-alpha.9 + '@types/ramda': 0.30.2 ramda: 0.30.1 - ramda-adjunct: 5.0.1(ramda@0.30.1) + ramda-adjunct: 5.1.0(ramda@0.30.1) ts-mixer: 6.0.4 optional: true - '@swagger-api/apidom-ns-openapi-2@1.0.0-alpha.5': + '@swagger-api/apidom-ns-openapi-2@1.0.0-alpha.9': dependencies: - '@babel/runtime-corejs3': 7.24.5 - '@swagger-api/apidom-core': 1.0.0-alpha.5 - '@swagger-api/apidom-error': 1.0.0-alpha.5 - '@swagger-api/apidom-ns-json-schema-draft-4': 1.0.0-alpha.5 - '@types/ramda': 0.30.0 + '@babel/runtime-corejs3': 7.25.6 + '@swagger-api/apidom-core': 1.0.0-alpha.9 + '@swagger-api/apidom-error': 1.0.0-alpha.9 + '@swagger-api/apidom-ns-json-schema-draft-4': 1.0.0-alpha.9 + '@types/ramda': 0.30.2 ramda: 0.30.1 - ramda-adjunct: 5.0.1(ramda@0.30.1) + ramda-adjunct: 5.1.0(ramda@0.30.1) ts-mixer: 6.0.4 optional: true - '@swagger-api/apidom-ns-openapi-3-0@1.0.0-alpha.5': + '@swagger-api/apidom-ns-openapi-3-0@1.0.0-alpha.9': dependencies: - '@babel/runtime-corejs3': 7.24.5 - '@swagger-api/apidom-core': 1.0.0-alpha.5 - '@swagger-api/apidom-error': 1.0.0-alpha.5 - '@swagger-api/apidom-ns-json-schema-draft-4': 1.0.0-alpha.5 - '@types/ramda': 0.30.0 + '@babel/runtime-corejs3': 7.25.6 + '@swagger-api/apidom-core': 1.0.0-alpha.9 + '@swagger-api/apidom-error': 1.0.0-alpha.9 + '@swagger-api/apidom-ns-json-schema-draft-4': 1.0.0-alpha.9 + '@types/ramda': 0.30.2 ramda: 0.30.1 - ramda-adjunct: 5.0.1(ramda@0.30.1) + ramda-adjunct: 5.1.0(ramda@0.30.1) ts-mixer: 6.0.4 - '@swagger-api/apidom-ns-openapi-3-1@1.0.0-alpha.5': + '@swagger-api/apidom-ns-openapi-3-1@1.0.0-alpha.9': dependencies: - '@babel/runtime-corejs3': 7.24.5 - '@swagger-api/apidom-ast': 1.0.0-alpha.5 - '@swagger-api/apidom-core': 1.0.0-alpha.5 - '@swagger-api/apidom-json-pointer': 1.0.0-alpha.5 - '@swagger-api/apidom-ns-openapi-3-0': 1.0.0-alpha.5 - '@types/ramda': 0.30.0 + '@babel/runtime-corejs3': 7.25.6 + '@swagger-api/apidom-ast': 1.0.0-alpha.9 + '@swagger-api/apidom-core': 1.0.0-alpha.9 + '@swagger-api/apidom-json-pointer': 1.0.0-alpha.9 + '@swagger-api/apidom-ns-openapi-3-0': 1.0.0-alpha.9 + '@types/ramda': 0.30.2 ramda: 0.30.1 - ramda-adjunct: 5.0.1(ramda@0.30.1) + ramda-adjunct: 5.1.0(ramda@0.30.1) ts-mixer: 6.0.4 - '@swagger-api/apidom-ns-workflows-1@1.0.0-alpha.5': + '@swagger-api/apidom-ns-workflows-1@1.0.0-alpha.9': dependencies: - '@babel/runtime-corejs3': 7.24.5 - '@swagger-api/apidom-core': 1.0.0-alpha.5 - '@swagger-api/apidom-ns-openapi-3-1': 1.0.0-alpha.5 - '@types/ramda': 0.30.0 + '@babel/runtime-corejs3': 7.25.6 + '@swagger-api/apidom-core': 1.0.0-alpha.9 + '@swagger-api/apidom-ns-openapi-3-1': 1.0.0-alpha.9 + '@types/ramda': 0.30.2 ramda: 0.30.1 - ramda-adjunct: 5.0.1(ramda@0.30.1) + ramda-adjunct: 5.1.0(ramda@0.30.1) ts-mixer: 6.0.4 optional: true - '@swagger-api/apidom-parser-adapter-api-design-systems-json@1.0.0-alpha.5': + '@swagger-api/apidom-parser-adapter-api-design-systems-json@1.0.0-alpha.9': dependencies: - '@babel/runtime-corejs3': 7.24.5 - '@swagger-api/apidom-core': 1.0.0-alpha.5 - '@swagger-api/apidom-ns-api-design-systems': 1.0.0-alpha.5 - '@swagger-api/apidom-parser-adapter-json': 1.0.0-alpha.5 - '@types/ramda': 0.30.0 + '@babel/runtime-corejs3': 7.25.6 + '@swagger-api/apidom-core': 1.0.0-alpha.9 + '@swagger-api/apidom-ns-api-design-systems': 1.0.0-alpha.9 + '@swagger-api/apidom-parser-adapter-json': 1.0.0-alpha.9 + '@types/ramda': 0.30.2 ramda: 0.30.1 - ramda-adjunct: 5.0.1(ramda@0.30.1) + ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-api-design-systems-yaml@1.0.0-alpha.5': + '@swagger-api/apidom-parser-adapter-api-design-systems-yaml@1.0.0-alpha.9': dependencies: - '@babel/runtime-corejs3': 7.24.5 - '@swagger-api/apidom-core': 1.0.0-alpha.5 - '@swagger-api/apidom-ns-api-design-systems': 1.0.0-alpha.5 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.0.0-alpha.5 - '@types/ramda': 0.30.0 + '@babel/runtime-corejs3': 7.25.6 + '@swagger-api/apidom-core': 1.0.0-alpha.9 + '@swagger-api/apidom-ns-api-design-systems': 1.0.0-alpha.9 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.0.0-alpha.9 + '@types/ramda': 0.30.2 ramda: 0.30.1 - ramda-adjunct: 5.0.1(ramda@0.30.1) + ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-asyncapi-json-2@1.0.0-alpha.5': + '@swagger-api/apidom-parser-adapter-asyncapi-json-2@1.0.0-alpha.9': dependencies: - '@babel/runtime-corejs3': 7.24.5 - '@swagger-api/apidom-core': 1.0.0-alpha.5 - '@swagger-api/apidom-ns-asyncapi-2': 1.0.0-alpha.5 - '@swagger-api/apidom-parser-adapter-json': 1.0.0-alpha.5 - '@types/ramda': 0.30.0 + '@babel/runtime-corejs3': 7.25.6 + '@swagger-api/apidom-core': 1.0.0-alpha.9 + '@swagger-api/apidom-ns-asyncapi-2': 1.0.0-alpha.9 + '@swagger-api/apidom-parser-adapter-json': 1.0.0-alpha.9 + '@types/ramda': 0.30.2 ramda: 0.30.1 - ramda-adjunct: 5.0.1(ramda@0.30.1) + ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-asyncapi-yaml-2@1.0.0-alpha.5': + '@swagger-api/apidom-parser-adapter-asyncapi-yaml-2@1.0.0-alpha.9': dependencies: - '@babel/runtime-corejs3': 7.24.5 - '@swagger-api/apidom-core': 1.0.0-alpha.5 - '@swagger-api/apidom-ns-asyncapi-2': 1.0.0-alpha.5 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.0.0-alpha.5 - '@types/ramda': 0.30.0 + '@babel/runtime-corejs3': 7.25.6 + '@swagger-api/apidom-core': 1.0.0-alpha.9 + '@swagger-api/apidom-ns-asyncapi-2': 1.0.0-alpha.9 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.0.0-alpha.9 + '@types/ramda': 0.30.2 ramda: 0.30.1 - ramda-adjunct: 5.0.1(ramda@0.30.1) + ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-json@1.0.0-alpha.5': + '@swagger-api/apidom-parser-adapter-json@1.0.0-alpha.9': dependencies: - '@babel/runtime-corejs3': 7.24.5 - '@swagger-api/apidom-ast': 1.0.0-alpha.5 - '@swagger-api/apidom-core': 1.0.0-alpha.5 - '@swagger-api/apidom-error': 1.0.0-alpha.5 - '@types/ramda': 0.30.0 + '@babel/runtime-corejs3': 7.25.6 + '@swagger-api/apidom-ast': 1.0.0-alpha.9 + '@swagger-api/apidom-core': 1.0.0-alpha.9 + '@swagger-api/apidom-error': 1.0.0-alpha.9 + '@types/ramda': 0.30.2 ramda: 0.30.1 - ramda-adjunct: 5.0.1(ramda@0.30.1) + ramda-adjunct: 5.1.0(ramda@0.30.1) tree-sitter: 0.20.4 tree-sitter-json: 0.20.2 web-tree-sitter: 0.20.3 optional: true - '@swagger-api/apidom-parser-adapter-openapi-json-2@1.0.0-alpha.5': + '@swagger-api/apidom-parser-adapter-openapi-json-2@1.0.0-alpha.9': dependencies: - '@babel/runtime-corejs3': 7.24.5 - '@swagger-api/apidom-core': 1.0.0-alpha.5 - '@swagger-api/apidom-ns-openapi-2': 1.0.0-alpha.5 - '@swagger-api/apidom-parser-adapter-json': 1.0.0-alpha.5 - '@types/ramda': 0.30.0 + '@babel/runtime-corejs3': 7.25.6 + '@swagger-api/apidom-core': 1.0.0-alpha.9 + '@swagger-api/apidom-ns-openapi-2': 1.0.0-alpha.9 + '@swagger-api/apidom-parser-adapter-json': 1.0.0-alpha.9 + '@types/ramda': 0.30.2 ramda: 0.30.1 - ramda-adjunct: 5.0.1(ramda@0.30.1) + ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-openapi-json-3-0@1.0.0-alpha.5': + '@swagger-api/apidom-parser-adapter-openapi-json-3-0@1.0.0-alpha.9': dependencies: - '@babel/runtime-corejs3': 7.24.5 - '@swagger-api/apidom-core': 1.0.0-alpha.5 - '@swagger-api/apidom-ns-openapi-3-0': 1.0.0-alpha.5 - '@swagger-api/apidom-parser-adapter-json': 1.0.0-alpha.5 - '@types/ramda': 0.30.0 + '@babel/runtime-corejs3': 7.25.6 + '@swagger-api/apidom-core': 1.0.0-alpha.9 + '@swagger-api/apidom-ns-openapi-3-0': 1.0.0-alpha.9 + '@swagger-api/apidom-parser-adapter-json': 1.0.0-alpha.9 + '@types/ramda': 0.30.2 ramda: 0.30.1 - ramda-adjunct: 5.0.1(ramda@0.30.1) + ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-openapi-json-3-1@1.0.0-alpha.5': + '@swagger-api/apidom-parser-adapter-openapi-json-3-1@1.0.0-alpha.9': dependencies: - '@babel/runtime-corejs3': 7.24.5 - '@swagger-api/apidom-core': 1.0.0-alpha.5 - '@swagger-api/apidom-ns-openapi-3-1': 1.0.0-alpha.5 - '@swagger-api/apidom-parser-adapter-json': 1.0.0-alpha.5 - '@types/ramda': 0.30.0 + '@babel/runtime-corejs3': 7.25.6 + '@swagger-api/apidom-core': 1.0.0-alpha.9 + '@swagger-api/apidom-ns-openapi-3-1': 1.0.0-alpha.9 + '@swagger-api/apidom-parser-adapter-json': 1.0.0-alpha.9 + '@types/ramda': 0.30.2 ramda: 0.30.1 - ramda-adjunct: 5.0.1(ramda@0.30.1) + ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-openapi-yaml-2@1.0.0-alpha.5': + '@swagger-api/apidom-parser-adapter-openapi-yaml-2@1.0.0-alpha.9': dependencies: - '@babel/runtime-corejs3': 7.24.5 - '@swagger-api/apidom-core': 1.0.0-alpha.5 - '@swagger-api/apidom-ns-openapi-2': 1.0.0-alpha.5 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.0.0-alpha.5 - '@types/ramda': 0.30.0 + '@babel/runtime-corejs3': 7.25.6 + '@swagger-api/apidom-core': 1.0.0-alpha.9 + '@swagger-api/apidom-ns-openapi-2': 1.0.0-alpha.9 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.0.0-alpha.9 + '@types/ramda': 0.30.2 ramda: 0.30.1 - ramda-adjunct: 5.0.1(ramda@0.30.1) + ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-openapi-yaml-3-0@1.0.0-alpha.5': + '@swagger-api/apidom-parser-adapter-openapi-yaml-3-0@1.0.0-alpha.9': dependencies: - '@babel/runtime-corejs3': 7.24.5 - '@swagger-api/apidom-core': 1.0.0-alpha.5 - '@swagger-api/apidom-ns-openapi-3-0': 1.0.0-alpha.5 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.0.0-alpha.5 - '@types/ramda': 0.30.0 + '@babel/runtime-corejs3': 7.25.6 + '@swagger-api/apidom-core': 1.0.0-alpha.9 + '@swagger-api/apidom-ns-openapi-3-0': 1.0.0-alpha.9 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.0.0-alpha.9 + '@types/ramda': 0.30.2 ramda: 0.30.1 - ramda-adjunct: 5.0.1(ramda@0.30.1) + ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-openapi-yaml-3-1@1.0.0-alpha.5': + '@swagger-api/apidom-parser-adapter-openapi-yaml-3-1@1.0.0-alpha.9': dependencies: - '@babel/runtime-corejs3': 7.24.5 - '@swagger-api/apidom-core': 1.0.0-alpha.5 - '@swagger-api/apidom-ns-openapi-3-1': 1.0.0-alpha.5 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.0.0-alpha.5 - '@types/ramda': 0.30.0 + '@babel/runtime-corejs3': 7.25.6 + '@swagger-api/apidom-core': 1.0.0-alpha.9 + '@swagger-api/apidom-ns-openapi-3-1': 1.0.0-alpha.9 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.0.0-alpha.9 + '@types/ramda': 0.30.2 ramda: 0.30.1 - ramda-adjunct: 5.0.1(ramda@0.30.1) + ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-workflows-json-1@1.0.0-alpha.5': + '@swagger-api/apidom-parser-adapter-workflows-json-1@1.0.0-alpha.9': dependencies: - '@babel/runtime-corejs3': 7.24.5 - '@swagger-api/apidom-core': 1.0.0-alpha.5 - '@swagger-api/apidom-ns-workflows-1': 1.0.0-alpha.5 - '@swagger-api/apidom-parser-adapter-json': 1.0.0-alpha.5 - '@types/ramda': 0.30.0 + '@babel/runtime-corejs3': 7.25.6 + '@swagger-api/apidom-core': 1.0.0-alpha.9 + '@swagger-api/apidom-ns-workflows-1': 1.0.0-alpha.9 + '@swagger-api/apidom-parser-adapter-json': 1.0.0-alpha.9 + '@types/ramda': 0.30.2 ramda: 0.30.1 - ramda-adjunct: 5.0.1(ramda@0.30.1) + ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-workflows-yaml-1@1.0.0-alpha.5': + '@swagger-api/apidom-parser-adapter-workflows-yaml-1@1.0.0-alpha.9': dependencies: - '@babel/runtime-corejs3': 7.24.5 - '@swagger-api/apidom-core': 1.0.0-alpha.5 - '@swagger-api/apidom-ns-workflows-1': 1.0.0-alpha.5 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.0.0-alpha.5 - '@types/ramda': 0.30.0 + '@babel/runtime-corejs3': 7.25.6 + '@swagger-api/apidom-core': 1.0.0-alpha.9 + '@swagger-api/apidom-ns-workflows-1': 1.0.0-alpha.9 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.0.0-alpha.9 + '@types/ramda': 0.30.2 ramda: 0.30.1 - ramda-adjunct: 5.0.1(ramda@0.30.1) + ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-yaml-1-2@1.0.0-alpha.5': + '@swagger-api/apidom-parser-adapter-yaml-1-2@1.0.0-alpha.9': dependencies: - '@babel/runtime-corejs3': 7.24.5 - '@swagger-api/apidom-ast': 1.0.0-alpha.5 - '@swagger-api/apidom-core': 1.0.0-alpha.5 - '@swagger-api/apidom-error': 1.0.0-alpha.5 - '@types/ramda': 0.30.0 + '@babel/runtime-corejs3': 7.25.6 + '@swagger-api/apidom-ast': 1.0.0-alpha.9 + '@swagger-api/apidom-core': 1.0.0-alpha.9 + '@swagger-api/apidom-error': 1.0.0-alpha.9 + '@types/ramda': 0.30.2 ramda: 0.30.1 - ramda-adjunct: 5.0.1(ramda@0.30.1) + ramda-adjunct: 5.1.0(ramda@0.30.1) tree-sitter: 0.20.4 tree-sitter-yaml: 0.5.0 web-tree-sitter: 0.20.3 optional: true - '@swagger-api/apidom-reference@1.0.0-alpha.5': + '@swagger-api/apidom-reference@1.0.0-alpha.9': dependencies: - '@babel/runtime-corejs3': 7.24.5 - '@swagger-api/apidom-core': 1.0.0-alpha.5 - '@types/ramda': 0.30.0 - axios: 1.7.2 + '@babel/runtime-corejs3': 7.25.6 + '@swagger-api/apidom-core': 1.0.0-alpha.9 + '@types/ramda': 0.30.2 + axios: 1.7.7 minimatch: 7.4.6 process: 0.11.10 ramda: 0.30.1 - ramda-adjunct: 5.0.1(ramda@0.30.1) + ramda-adjunct: 5.1.0(ramda@0.30.1) optionalDependencies: - '@swagger-api/apidom-error': 1.0.0-alpha.5 - '@swagger-api/apidom-json-pointer': 1.0.0-alpha.5 - '@swagger-api/apidom-ns-asyncapi-2': 1.0.0-alpha.5 - '@swagger-api/apidom-ns-openapi-2': 1.0.0-alpha.5 - '@swagger-api/apidom-ns-openapi-3-0': 1.0.0-alpha.5 - '@swagger-api/apidom-ns-openapi-3-1': 1.0.0-alpha.5 - '@swagger-api/apidom-ns-workflows-1': 1.0.0-alpha.5 - '@swagger-api/apidom-parser-adapter-api-design-systems-json': 1.0.0-alpha.5 - '@swagger-api/apidom-parser-adapter-api-design-systems-yaml': 1.0.0-alpha.5 - '@swagger-api/apidom-parser-adapter-asyncapi-json-2': 1.0.0-alpha.5 - '@swagger-api/apidom-parser-adapter-asyncapi-yaml-2': 1.0.0-alpha.5 - '@swagger-api/apidom-parser-adapter-json': 1.0.0-alpha.5 - '@swagger-api/apidom-parser-adapter-openapi-json-2': 1.0.0-alpha.5 - '@swagger-api/apidom-parser-adapter-openapi-json-3-0': 1.0.0-alpha.5 - '@swagger-api/apidom-parser-adapter-openapi-json-3-1': 1.0.0-alpha.5 - '@swagger-api/apidom-parser-adapter-openapi-yaml-2': 1.0.0-alpha.5 - '@swagger-api/apidom-parser-adapter-openapi-yaml-3-0': 1.0.0-alpha.5 - '@swagger-api/apidom-parser-adapter-openapi-yaml-3-1': 1.0.0-alpha.5 - '@swagger-api/apidom-parser-adapter-workflows-json-1': 1.0.0-alpha.5 - '@swagger-api/apidom-parser-adapter-workflows-yaml-1': 1.0.0-alpha.5 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.0.0-alpha.5 + '@swagger-api/apidom-error': 1.0.0-alpha.9 + '@swagger-api/apidom-json-pointer': 1.0.0-alpha.9 + '@swagger-api/apidom-ns-asyncapi-2': 1.0.0-alpha.9 + '@swagger-api/apidom-ns-openapi-2': 1.0.0-alpha.9 + '@swagger-api/apidom-ns-openapi-3-0': 1.0.0-alpha.9 + '@swagger-api/apidom-ns-openapi-3-1': 1.0.0-alpha.9 + '@swagger-api/apidom-ns-workflows-1': 1.0.0-alpha.9 + '@swagger-api/apidom-parser-adapter-api-design-systems-json': 1.0.0-alpha.9 + '@swagger-api/apidom-parser-adapter-api-design-systems-yaml': 1.0.0-alpha.9 + '@swagger-api/apidom-parser-adapter-asyncapi-json-2': 1.0.0-alpha.9 + '@swagger-api/apidom-parser-adapter-asyncapi-yaml-2': 1.0.0-alpha.9 + '@swagger-api/apidom-parser-adapter-json': 1.0.0-alpha.9 + '@swagger-api/apidom-parser-adapter-openapi-json-2': 1.0.0-alpha.9 + '@swagger-api/apidom-parser-adapter-openapi-json-3-0': 1.0.0-alpha.9 + '@swagger-api/apidom-parser-adapter-openapi-json-3-1': 1.0.0-alpha.9 + '@swagger-api/apidom-parser-adapter-openapi-yaml-2': 1.0.0-alpha.9 + '@swagger-api/apidom-parser-adapter-openapi-yaml-3-0': 1.0.0-alpha.9 + '@swagger-api/apidom-parser-adapter-openapi-yaml-3-1': 1.0.0-alpha.9 + '@swagger-api/apidom-parser-adapter-workflows-json-1': 1.0.0-alpha.9 + '@swagger-api/apidom-parser-adapter-workflows-yaml-1': 1.0.0-alpha.9 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.0.0-alpha.9 transitivePeerDependencies: - debug @@ -8910,7 +9089,7 @@ snapshots: '@swc/helpers@0.5.5': dependencies: '@swc/counter': 0.1.3 - tslib: 2.6.2 + tslib: 2.7.0 '@t3-oss/env-core@0.11.1(typescript@5.6.2)(zod@3.23.8)': dependencies: @@ -9127,7 +9306,7 @@ snapshots: dependencies: prosemirror-changeset: 2.2.1 prosemirror-collab: 1.3.1 - prosemirror-commands: 1.5.2 + prosemirror-commands: 1.6.0 prosemirror-dropcursor: 1.8.1 prosemirror-gapcursor: 1.3.2 prosemirror-history: 1.4.1 @@ -9139,10 +9318,10 @@ snapshots: prosemirror-schema-basic: 1.2.3 prosemirror-schema-list: 1.4.1 prosemirror-state: 1.4.3 - prosemirror-tables: 1.4.0 - prosemirror-trailing-node: 2.0.9(prosemirror-model@1.22.3)(prosemirror-state@1.4.3)(prosemirror-view@1.33.10) + prosemirror-tables: 1.5.0 + prosemirror-trailing-node: 2.0.9(prosemirror-model@1.22.3)(prosemirror-state@1.4.3)(prosemirror-view@1.34.2) prosemirror-transform: 1.10.0 - prosemirror-view: 1.33.10 + prosemirror-view: 1.34.2 '@tiptap/react@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -9221,7 +9400,7 @@ snapshots: commander: 10.0.1 fs-extra: 10.1.0 inquirer: 8.2.6 - minimatch: 9.0.4 + minimatch: 9.0.5 node-plop: 0.26.3 picocolors: 1.0.1 proxy-agent: 6.4.0 @@ -9256,11 +9435,11 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.24.7 - '@babel/types': 7.24.6 + '@babel/parser': 7.25.6 + '@babel/types': 7.25.6 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.5 + '@types/babel__traverse': 7.20.6 '@types/babel__generator@7.6.8': dependencies: @@ -9271,7 +9450,7 @@ snapshots: '@babel/parser': 7.25.6 '@babel/types': 7.25.6 - '@types/babel__traverse@7.20.5': + '@types/babel__traverse@7.20.6': dependencies: '@babel/types': 7.25.6 @@ -9310,38 +9489,28 @@ snapshots: '@types/docker-modem@3.0.6': dependencies: '@types/node': 20.16.5 - '@types/ssh2': 1.15.0 + '@types/ssh2': 1.15.1 '@types/dockerode@3.3.31': dependencies: '@types/docker-modem': 3.0.6 '@types/node': 20.16.5 - '@types/ssh2': 1.15.0 - - '@types/eslint-scope@3.7.7': - dependencies: - '@types/eslint': 9.6.1 - '@types/estree': 1.0.5 - - '@types/eslint@9.6.1': - dependencies: - '@types/estree': 1.0.5 - '@types/json-schema': 7.0.15 + '@types/ssh2': 1.15.1 '@types/estree@1.0.5': {} - '@types/express-serve-static-core@4.19.0': + '@types/express-serve-static-core@4.19.5': dependencies: '@types/node': 20.16.5 - '@types/qs': 6.9.15 + '@types/qs': 6.9.16 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 '@types/express@4.17.21': dependencies: '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 4.19.0 - '@types/qs': 6.9.15 + '@types/express-serve-static-core': 4.19.5 + '@types/qs': 6.9.16 '@types/serve-static': 1.15.7 '@types/glob@7.2.0': @@ -9351,7 +9520,7 @@ snapshots: '@types/hast@2.3.10': dependencies: - '@types/unist': 2.0.10 + '@types/unist': 2.0.11 '@types/http-errors@2.0.4': {} @@ -9372,23 +9541,23 @@ snapshots: '@types/node-cron@3.0.11': {} - '@types/node@18.19.33': + '@types/node@18.19.50': dependencies: undici-types: 5.26.5 '@types/node@20.16.5': dependencies: - undici-types: 6.19.6 + undici-types: 6.19.8 '@types/prismjs@1.26.4': {} '@types/prop-types@15.7.12': {} - '@types/qs@6.9.15': {} + '@types/qs@6.9.16': {} - '@types/ramda@0.30.0': + '@types/ramda@0.30.2': dependencies: - types-ramda: 0.30.0 + types-ramda: 0.30.1 '@types/range-parser@1.2.7': {} @@ -9421,9 +9590,9 @@ snapshots: '@types/node': 20.16.5 '@types/ssh2-streams': 0.1.12 - '@types/ssh2@1.15.0': + '@types/ssh2@1.15.1': dependencies: - '@types/node': 18.19.33 + '@types/node': 18.19.50 '@types/swagger-ui-react@4.18.3': dependencies: @@ -9437,7 +9606,7 @@ snapshots: '@types/triple-beam@1.3.5': {} - '@types/unist@2.0.10': {} + '@types/unist@2.0.11': {} '@types/use-sync-external-store@0.0.3': {} @@ -9451,7 +9620,7 @@ snapshots: '@typescript-eslint/eslint-plugin@8.6.0(@typescript-eslint/parser@8.6.0(eslint@9.10.0)(typescript@5.6.2))(eslint@9.10.0)(typescript@5.6.2)': dependencies: - '@eslint-community/regexpp': 4.11.0 + '@eslint-community/regexpp': 4.11.1 '@typescript-eslint/parser': 8.6.0(eslint@9.10.0)(typescript@5.6.2) '@typescript-eslint/scope-manager': 8.6.0 '@typescript-eslint/type-utils': 8.6.0(eslint@9.10.0)(typescript@5.6.2) @@ -9459,7 +9628,7 @@ snapshots: '@typescript-eslint/visitor-keys': 8.6.0 eslint: 9.10.0 graphemer: 1.4.0 - ignore: 5.3.1 + ignore: 5.3.2 natural-compare: 1.4.0 ts-api-utils: 1.3.0(typescript@5.6.2) optionalDependencies: @@ -9506,7 +9675,7 @@ snapshots: debug: 4.3.7 fast-glob: 3.3.2 is-glob: 4.0.3 - minimatch: 9.0.4 + minimatch: 9.0.5 semver: 7.6.3 ts-api-utils: 1.3.0(typescript@5.6.2) optionalDependencies: @@ -9534,45 +9703,50 @@ snapshots: '@videojs/http-streaming@3.13.3(video.js@8.17.4)': dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.25.6 '@videojs/vhs-utils': 4.0.0 aes-decrypter: 4.0.1 global: 4.4.0 - m3u8-parser: 7.1.0 + m3u8-parser: 7.2.0 mpd-parser: 1.3.0 mux.js: 7.0.3 video.js: 8.17.4 '@videojs/vhs-utils@3.0.5': dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.25.6 global: 4.4.0 url-toolkit: 2.2.5 '@videojs/vhs-utils@4.0.0': dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.25.6 global: 4.4.0 url-toolkit: 2.2.5 + '@videojs/vhs-utils@4.1.1': + dependencies: + '@babel/runtime': 7.25.6 + global: 4.4.0 + '@videojs/xhr@2.7.0': dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.25.6 global: 4.4.0 is-function: 1.0.2 - '@vitejs/plugin-react@4.3.1(vite@5.2.11(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.45))(terser@5.32.0))': + '@vitejs/plugin-react@4.3.1(vite@5.4.5(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))': dependencies: - '@babel/core': 7.24.6 - '@babel/plugin-transform-react-jsx-self': 7.24.5(@babel/core@7.24.6) - '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.6) + '@babel/core': 7.25.2 + '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.25.2) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 5.2.11(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.45))(terser@5.32.0) + vite: 5.4.5(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@2.1.1(vitest@2.1.1(@types/node@20.16.5)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.45))(terser@5.32.0))': + '@vitest/coverage-v8@2.1.1(vitest@2.1.1(@types/node@20.16.5)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 @@ -9582,11 +9756,11 @@ snapshots: istanbul-lib-source-maps: 5.0.6 istanbul-reports: 3.1.7 magic-string: 0.30.11 - magicast: 0.3.4 + magicast: 0.3.5 std-env: 3.7.0 test-exclude: 7.0.1 tinyrainbow: 1.2.0 - vitest: 2.1.1(@types/node@20.16.5)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.45))(terser@5.32.0) + vitest: 2.1.1(@types/node@20.16.5)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) transitivePeerDependencies: - supports-color @@ -9597,13 +9771,13 @@ snapshots: chai: 5.1.1 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.1(@vitest/spy@2.1.1)(vite@5.2.11(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.45))(terser@5.32.0))': + '@vitest/mocker@2.1.1(@vitest/spy@2.1.1)(vite@5.4.5(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))': dependencies: '@vitest/spy': 2.1.1 estree-walker: 3.0.3 magic-string: 0.30.11 optionalDependencies: - vite: 5.2.11(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.45))(terser@5.32.0) + vite: 5.4.5(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) '@vitest/pretty-format@2.1.1': dependencies: @@ -9622,7 +9796,7 @@ snapshots: '@vitest/spy@2.1.1': dependencies: - tinyspy: 3.0.0 + tinyspy: 3.0.2 '@vitest/ui@2.1.1(vitest@2.1.1)': dependencies: @@ -9633,7 +9807,7 @@ snapshots: sirv: 2.0.4 tinyglobby: 0.2.6 tinyrainbow: 1.2.0 - vitest: 2.1.1(@types/node@20.16.5)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.45))(terser@5.32.0) + vitest: 2.1.1(@types/node@20.16.5)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) '@vitest/utils@2.1.1': dependencies: @@ -9641,43 +9815,6 @@ snapshots: loupe: 3.1.1 tinyrainbow: 1.2.0 - '@vue/compiler-core@3.4.31': - dependencies: - '@babel/parser': 7.25.6 - '@vue/shared': 3.4.31 - entities: 4.5.0 - estree-walker: 2.0.2 - source-map-js: 1.2.1 - optional: true - - '@vue/compiler-dom@3.4.31': - dependencies: - '@vue/compiler-core': 3.4.31 - '@vue/shared': 3.4.31 - optional: true - - '@vue/compiler-sfc@3.4.31': - dependencies: - '@babel/parser': 7.25.6 - '@vue/compiler-core': 3.4.31 - '@vue/compiler-dom': 3.4.31 - '@vue/compiler-ssr': 3.4.31 - '@vue/shared': 3.4.31 - estree-walker: 2.0.2 - magic-string: 0.30.11 - postcss: 8.4.45 - source-map-js: 1.2.1 - optional: true - - '@vue/compiler-ssr@3.4.31': - dependencies: - '@vue/compiler-dom': 3.4.31 - '@vue/shared': 3.4.31 - optional: true - - '@vue/shared@3.4.31': - optional: true - '@webassemblyjs/ast@1.12.1': dependencies: '@webassemblyjs/helper-numbers': 1.11.6 @@ -9783,27 +9920,34 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 - acorn-import-assertions@1.9.0(acorn@8.12.1): + acorn-import-attributes@1.9.5(acorn@8.12.1): dependencies: acorn: 8.12.1 - acorn-jsx@5.3.2(acorn@8.12.0): + acorn-jsx@5.3.2(acorn@8.12.1): dependencies: - acorn: 8.12.0 - - acorn-walk@8.3.2: {} + acorn: 8.12.1 - acorn@8.12.0: {} + acorn-walk@8.3.4: + dependencies: + acorn: 8.12.1 acorn@8.12.1: {} aes-decrypter@4.0.1: dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.25.6 '@videojs/vhs-utils': 3.0.5 global: 4.4.0 pkcs7: 1.0.4 + aes-decrypter@4.0.2: + dependencies: + '@babel/runtime': 7.25.6 + '@videojs/vhs-utils': 4.1.1 + global: 4.4.0 + pkcs7: 1.0.4 + agent-base@6.0.2: dependencies: debug: 4.3.7 @@ -9842,7 +9986,7 @@ snapshots: ansi-regex@5.0.1: {} - ansi-regex@6.0.1: {} + ansi-regex@6.1.0: {} ansi-styles@3.2.1: dependencies: @@ -9859,7 +10003,7 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.1 - apg-lite@1.0.3: {} + apg-lite@1.0.4: {} aproba@2.0.0: {} @@ -9876,7 +10020,7 @@ snapshots: archiver@7.0.1: dependencies: archiver-utils: 5.0.2 - async: 3.2.5 + async: 3.2.6 buffer-crc32: 1.0.0 readable-stream: 4.5.2 readdir-glob: 1.1.3 @@ -9977,29 +10121,29 @@ snapshots: ast-types@0.13.4: dependencies: - tslib: 2.6.2 + tslib: 2.7.0 async-lock@1.4.1: {} - async@3.2.5: {} + async@3.2.6: {} asynckit@0.4.0: {} autolinker@3.16.2: dependencies: - tslib: 2.6.2 + tslib: 2.7.0 available-typed-arrays@1.0.7: dependencies: possible-typed-array-names: 1.0.0 - aws-ssl-profiles@1.1.1: {} + aws-ssl-profiles@1.1.2: {} axe-core@4.10.0: {} - axios@1.7.2: + axios@1.7.7: dependencies: - follow-redirects: 1.15.6 + follow-redirects: 1.15.9 form-data: 4.0.0 proxy-from-env: 1.1.0 transitivePeerDependencies: @@ -10018,24 +10162,25 @@ snapshots: bare-events@2.4.2: optional: true - bare-fs@2.3.1: + bare-fs@2.3.5: dependencies: bare-events: 2.4.2 bare-path: 2.1.3 - bare-stream: 2.1.3 + bare-stream: 2.3.0 optional: true - bare-os@2.4.0: + bare-os@2.4.4: optional: true bare-path@2.1.3: dependencies: - bare-os: 2.4.0 + bare-os: 2.4.4 optional: true - bare-stream@2.1.3: + bare-stream@2.3.0: dependencies: - streamx: 2.18.0 + b4a: 1.6.6 + streamx: 2.20.1 optional: true base64-arraybuffer@1.0.2: {} @@ -10048,9 +10193,9 @@ snapshots: dependencies: tweetnacl: 0.14.5 - bcrypt@5.1.1(encoding@0.1.13): + bcrypt@5.1.1: dependencies: - '@mapbox/node-pre-gyp': 1.0.11(encoding@0.1.13) + '@mapbox/node-pre-gyp': 1.0.11 node-addon-api: 5.1.0 transitivePeerDependencies: - encoding @@ -10097,21 +10242,14 @@ snapshots: dependencies: balanced-match: 1.0.2 - braces@3.0.2: + braces@3.0.3: dependencies: - fill-range: 7.0.1 - - browserslist@4.23.0: - dependencies: - caniuse-lite: 1.0.30001660 - electron-to-chromium: 1.4.772 - node-releases: 2.0.14 - update-browserslist-db: 1.0.16(browserslist@4.23.0) + fill-range: 7.1.1 browserslist@4.23.3: dependencies: caniuse-lite: 1.0.30001660 - electron-to-chromium: 1.5.18 + electron-to-chromium: 1.5.23 node-releases: 2.0.18 update-browserslist-db: 1.1.0(browserslist@4.23.3) @@ -10229,7 +10367,7 @@ snapshots: chokidar@3.6.0: dependencies: anymatch: 3.1.3 - braces: 3.0.2 + braces: 3.0.3 glob-parent: 5.1.2 is-binary-path: 2.1.0 is-glob: 4.0.3 @@ -10289,7 +10427,7 @@ snapshots: dependencies: '@hapi/bourne': 3.0.0 inflation: 2.1.0 - qs: 6.12.1 + qs: 6.13.0 raw-body: 2.5.2 type-is: 1.6.18 @@ -10394,14 +10532,14 @@ snapshots: dependencies: toggle-selection: 1.0.6 - core-js-pure@3.37.1: {} + core-js-pure@3.38.1: {} core-util-is@1.0.3: {} cpu-features@0.0.10: dependencies: buildcheck: 0.0.6 - nan: 2.19.0 + nan: 2.20.0 optional: true crc-32@1.2.2: {} @@ -10419,9 +10557,9 @@ snapshots: dependencies: cross-spawn: 7.0.3 - cross-fetch@4.0.0(encoding@0.1.13): + cross-fetch@4.0.0: dependencies: - node-fetch: 2.7.0(encoding@0.1.13) + node-fetch: 2.7.0 transitivePeerDependencies: - encoding @@ -10437,9 +10575,9 @@ snapshots: cssesc@3.0.0: {} - cssstyle@4.0.1: + cssstyle@4.1.0: dependencies: - rrweb-cssom: 0.6.0 + rrweb-cssom: 0.7.1 csstype@3.1.3: {} @@ -10476,18 +10614,6 @@ snapshots: dependencies: ms: 2.1.3 - debug@4.3.4: - dependencies: - ms: 2.1.2 - - debug@4.3.5: - dependencies: - ms: 2.1.2 - - debug@4.3.6: - dependencies: - ms: 2.1.2 - debug@4.3.7: dependencies: ms: 2.1.3 @@ -10588,23 +10714,23 @@ snapshots: docker-compose@0.24.8: dependencies: - yaml: 2.4.5 + yaml: 2.5.1 docker-modem@3.0.8: dependencies: debug: 4.3.7 readable-stream: 3.6.2 split-ca: 1.0.1 - ssh2: 1.15.0 + ssh2: 1.16.0 transitivePeerDependencies: - supports-color docker-modem@5.0.3: dependencies: - debug: 4.3.6 + debug: 4.3.7 readable-stream: 3.6.2 split-ca: 1.0.1 - ssh2: 1.15.0 + ssh2: 1.16.0 transitivePeerDependencies: - supports-color @@ -10630,7 +10756,7 @@ snapshots: dom-helpers@5.2.1: dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.25.6 csstype: 3.1.3 dom-walk@0.1.2: {} @@ -10665,13 +10791,12 @@ snapshots: '@drizzle-team/brocli': 0.10.1 '@esbuild-kit/esm-loader': 2.6.5 esbuild: 0.19.12 - esbuild-register: 3.5.0(esbuild@0.19.12) + esbuild-register: 3.6.0(esbuild@0.19.12) transitivePeerDependencies: - supports-color - drizzle-orm@0.33.0(@prisma/client@5.16.1)(@types/better-sqlite3@7.6.11)(@types/react@18.3.6)(better-sqlite3@11.3.0)(mysql2@3.11.3)(react@18.3.1): + drizzle-orm@0.33.0(@types/better-sqlite3@7.6.11)(@types/react@18.3.6)(better-sqlite3@11.3.0)(mysql2@3.11.3)(react@18.3.1): optionalDependencies: - '@prisma/client': 5.16.1 '@types/better-sqlite3': 7.6.11 '@types/react': 18.3.6 better-sqlite3: 11.3.0 @@ -10680,9 +10805,7 @@ snapshots: eastasianwidth@0.2.0: {} - electron-to-chromium@1.4.772: {} - - electron-to-chromium@1.5.18: {} + electron-to-chromium@1.5.23: {} emoji-regex@8.0.0: {} @@ -10692,11 +10815,6 @@ snapshots: enabled@2.0.0: {} - encoding@0.1.13: - dependencies: - iconv-lite: 0.6.3 - optional: true - end-of-stream@1.4.4: dependencies: once: 1.4.0 @@ -10755,7 +10873,7 @@ snapshots: is-string: 1.0.7 is-typed-array: 1.1.13 is-weakref: 1.0.2 - object-inspect: 1.13.1 + object-inspect: 1.13.2 object-keys: 1.1.1 object.assign: 4.1.5 regexp.prototype.flags: 1.5.2 @@ -10828,9 +10946,9 @@ snapshots: is-date-object: 1.0.5 is-symbol: 1.0.4 - esbuild-register@3.5.0(esbuild@0.19.12): + esbuild-register@3.6.0(esbuild@0.19.12): dependencies: - debug: 4.3.6 + debug: 4.3.7 esbuild: 0.19.12 transitivePeerDependencies: - supports-color @@ -10912,6 +11030,32 @@ snapshots: '@esbuild/win32-ia32': 0.20.2 '@esbuild/win32-x64': 0.20.2 + esbuild@0.21.5: + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 + escalade@3.2.0: {} escape-goat@2.1.1: {} @@ -10945,7 +11089,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.9.0(@typescript-eslint/parser@8.6.0(eslint@9.10.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint@9.10.0): + eslint-module-utils@2.11.0(@typescript-eslint/parser@8.6.0(eslint@9.10.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint@9.10.0): dependencies: debug: 3.2.7 optionalDependencies: @@ -10966,7 +11110,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.10.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.9.0(@typescript-eslint/parser@8.6.0(eslint@9.10.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint@9.10.0) + eslint-module-utils: 2.11.0(@typescript-eslint/parser@8.6.0(eslint@9.10.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint@9.10.0) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -11051,7 +11195,7 @@ snapshots: eslint@9.10.0: dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0) - '@eslint-community/regexpp': 4.11.0 + '@eslint-community/regexpp': 4.11.1 '@eslint/config-array': 0.18.0 '@eslint/eslintrc': 3.1.0 '@eslint/js': 9.10.0 @@ -11062,18 +11206,18 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.6 + debug: 4.3.7 escape-string-regexp: 4.0.0 eslint-scope: 8.0.2 eslint-visitor-keys: 4.0.0 espree: 10.1.0 - esquery: 1.5.0 + esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 8.0.0 find-up: 5.0.0 glob-parent: 6.0.2 - ignore: 5.3.1 + ignore: 5.3.2 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -11089,13 +11233,13 @@ snapshots: espree@10.1.0: dependencies: - acorn: 8.12.0 - acorn-jsx: 5.3.2(acorn@8.12.0) + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) eslint-visitor-keys: 4.0.0 esprima@4.0.1: {} - esquery@1.5.0: + esquery@1.6.0: dependencies: estraverse: 5.3.0 @@ -11149,7 +11293,7 @@ snapshots: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.5 + micromatch: 4.0.8 fast-json-patch@3.1.1: {} @@ -11157,7 +11301,7 @@ snapshots: fast-levenshtein@2.0.6: {} - fast-xml-parser@4.4.0: + fast-xml-parser@4.5.0: dependencies: strnum: 1.0.5 @@ -11191,7 +11335,7 @@ snapshots: file-uri-to-path@1.0.0: {} - fill-range@7.0.1: + fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -11211,13 +11355,13 @@ snapshots: fn.name@1.1.0: {} - follow-redirects@1.15.6: {} + follow-redirects@1.15.9: {} for-each@0.3.3: dependencies: is-callable: 1.2.7 - foreground-child@3.1.1: + foreground-child@3.3.0: dependencies: cross-spawn: 7.0.3 signal-exit: 4.1.0 @@ -11308,7 +11452,7 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.2.4 - get-tsconfig@4.7.5: + get-tsconfig@4.8.1: dependencies: resolve-pkg-maps: 1.0.0 @@ -11335,24 +11479,24 @@ snapshots: glob@10.3.10: dependencies: - foreground-child: 3.1.1 + foreground-child: 3.3.0 jackspeak: 2.3.6 - minimatch: 9.0.4 + minimatch: 9.0.5 minipass: 7.1.2 path-scurry: 1.11.1 glob@10.4.5: dependencies: - foreground-child: 3.1.1 - jackspeak: 3.1.2 - minimatch: 9.0.4 + foreground-child: 3.3.0 + jackspeak: 3.4.3 + minimatch: 9.0.5 minipass: 7.1.2 package-json-from-dist: 1.0.0 path-scurry: 1.11.1 glob@11.0.0: dependencies: - foreground-child: 3.1.1 + foreground-child: 3.3.0 jackspeak: 4.0.1 minimatch: 10.0.1 minipass: 7.1.2 @@ -11393,7 +11537,7 @@ snapshots: dir-glob: 3.0.1 fast-glob: 3.3.2 glob: 7.2.3 - ignore: 5.3.1 + ignore: 5.3.2 merge2: 1.4.1 slash: 3.0.0 @@ -11421,7 +11565,7 @@ snapshots: source-map: 0.6.1 wordwrap: 1.0.0 optionalDependencies: - uglify-js: 3.17.4 + uglify-js: 3.19.3 has-bigints@1.0.2: {} @@ -11472,7 +11616,7 @@ snapshots: highlight.js@10.7.3: {} - hono@4.4.0: {} + hono@4.6.1: {} html-encoding-sniffer@4.0.0: dependencies: @@ -11523,11 +11667,11 @@ snapshots: ieee754@1.2.1: {} - ignore@5.3.1: {} + ignore@5.3.2: {} immutable@3.8.2: {} - immutable@4.3.6: {} + immutable@4.3.7: {} import-fresh@3.3.0: dependencies: @@ -11603,7 +11747,7 @@ snapshots: dependencies: '@ioredis/commands': 1.2.0 cluster-key-slot: 1.1.2 - debug: 4.3.4 + debug: 4.3.7 denque: 2.1.0 lodash.defaults: 4.2.0 lodash.isarguments: 3.1.0 @@ -11783,9 +11927,9 @@ snapshots: isexe@2.0.0: {} - isomorphic-fetch@3.0.0(encoding@0.1.13): + isomorphic-fetch@3.0.0: dependencies: - node-fetch: 2.7.0(encoding@0.1.13) + node-fetch: 2.7.0 whatwg-fetch: 3.6.20 transitivePeerDependencies: - encoding @@ -11825,7 +11969,7 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 - jackspeak@3.1.2: + jackspeak@3.4.3: dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: @@ -11843,7 +11987,7 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 - jose@5.3.0: {} + jose@5.9.2: {} jotai@2.9.3(@types/react@18.3.6)(react@18.3.1): optionalDependencies: @@ -11862,7 +12006,7 @@ snapshots: jsdom@25.0.0: dependencies: - cssstyle: 4.0.1 + cssstyle: 4.1.0 data-urls: 5.0.0 decimal.js: 10.4.3 form-data: 4.0.0 @@ -11929,11 +12073,11 @@ snapshots: kuler@2.0.0: {} - language-subtag-registry@0.3.22: {} + language-subtag-registry@0.3.23: {} language-tags@1.0.9: dependencies: - language-subtag-registry: 0.3.22 + language-subtag-registry: 0.3.23 lazystream@1.0.1: dependencies: @@ -11996,13 +12140,13 @@ snapshots: chalk: 4.1.2 is-unicode-supported: 0.1.0 - logform@2.6.0: + logform@2.6.1: dependencies: '@colors/colors': 1.6.0 '@types/triple-beam': 1.3.5 fecha: 4.2.3 ms: 2.1.3 - safe-stable-stringify: 2.4.3 + safe-stable-stringify: 2.5.0 triple-beam: 1.4.1 long@5.2.3: {} @@ -12026,9 +12170,9 @@ snapshots: fault: 1.0.4 highlight.js: 10.7.3 - lru-cache@10.2.2: {} + lru-cache@10.4.3: {} - lru-cache@11.0.0: {} + lru-cache@11.0.1: {} lru-cache@5.1.1: dependencies: @@ -12038,17 +12182,17 @@ snapshots: lru.min@1.1.0: {} - m3u8-parser@7.1.0: + m3u8-parser@7.2.0: dependencies: - '@babel/runtime': 7.24.5 - '@videojs/vhs-utils': 3.0.5 + '@babel/runtime': 7.25.6 + '@videojs/vhs-utils': 4.1.1 global: 4.4.0 magic-string@0.30.11: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 - magicast@0.3.4: + magicast@0.3.5: dependencies: '@babel/parser': 7.25.6 '@babel/types': 7.25.6 @@ -12099,9 +12243,9 @@ snapshots: methods@1.1.2: {} - micromatch@4.0.5: + micromatch@4.0.8: dependencies: - braces: 3.0.2 + braces: 3.0.3 picomatch: 2.3.1 mime-db@1.52.0: {} @@ -12140,7 +12284,7 @@ snapshots: dependencies: brace-expansion: 2.0.1 - minimatch@9.0.4: + minimatch@9.0.5: dependencies: brace-expansion: 2.0.1 @@ -12171,27 +12315,25 @@ snapshots: mpd-parser@1.3.0: dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.25.6 '@videojs/vhs-utils': 4.0.0 '@xmldom/xmldom': 0.8.10 global: 4.4.0 mrmime@2.0.0: {} - ms@2.1.2: {} - ms@2.1.3: {} mute-stream@0.0.8: {} mux.js@7.0.3: dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.25.6 global: 4.4.0 mysql2@3.11.3: dependencies: - aws-ssl-profiles: 1.1.1 + aws-ssl-profiles: 1.1.2 denque: 2.1.0 generate-function: 2.3.1 iconv-lite: 0.6.3 @@ -12205,7 +12347,7 @@ snapshots: dependencies: lru-cache: 7.18.3 - nan@2.19.0: + nan@2.20.0: optional: true nanoid@3.3.7: {} @@ -12220,12 +12362,14 @@ snapshots: neo-async@2.6.2: {} + neotraverse@0.6.18: {} + netmask@2.0.2: {} - next-auth@5.0.0-beta.21(next@14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0))(react@18.3.1): + next-auth@5.0.0-beta.21(next@14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0))(react@18.3.1): dependencies: '@auth/core': 0.35.0 - next: 14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) + next: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) react: 18.3.1 next-international@1.2.4: @@ -12260,17 +12404,43 @@ snapshots: - '@babel/core' - babel-plugin-macros + next@14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0): + dependencies: + '@next/env': 14.2.11 + '@swc/helpers': 0.5.5 + busboy: 1.6.0 + caniuse-lite: 1.0.30001660 + graceful-fs: 4.2.11 + postcss: 8.4.31 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + styled-jsx: 5.1.1(@babel/core@7.25.2)(react@18.3.1) + optionalDependencies: + '@next/swc-darwin-arm64': 14.2.11 + '@next/swc-darwin-x64': 14.2.11 + '@next/swc-linux-arm64-gnu': 14.2.11 + '@next/swc-linux-arm64-musl': 14.2.11 + '@next/swc-linux-x64-gnu': 14.2.11 + '@next/swc-linux-x64-musl': 14.2.11 + '@next/swc-win32-arm64-msvc': 14.2.11 + '@next/swc-win32-ia32-msvc': 14.2.11 + '@next/swc-win32-x64-msvc': 14.2.11 + sass: 1.78.0 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + nice-napi@1.0.2: dependencies: node-addon-api: 3.2.1 - node-gyp-build: 4.8.1 + node-gyp-build: 4.8.2 optional: true no-case@2.3.2: dependencies: lower-case: 1.1.4 - node-abi@3.62.0: + node-abi@3.67.0: dependencies: semver: 7.6.3 @@ -12294,21 +12464,19 @@ snapshots: node-fetch-native@1.6.4: {} - node-fetch@2.7.0(encoding@0.1.13): + node-fetch@2.7.0: dependencies: whatwg-url: 5.0.0 - optionalDependencies: - encoding: 0.1.13 - node-gyp-build@4.8.1: + node-gyp-build@4.8.2: optional: true - node-loader@2.0.0(webpack@5.91.0): + node-loader@2.0.0(webpack@5.94.0): dependencies: loader-utils: 2.0.4 - webpack: 5.91.0 + webpack: 5.94.0 - node-mocks-http@1.14.1: + node-mocks-http@1.16.0: dependencies: '@types/express': 4.17.21 '@types/node': 20.16.5 @@ -12325,7 +12493,7 @@ snapshots: node-plop@0.26.3: dependencies: - '@babel/runtime-corejs3': 7.24.5 + '@babel/runtime-corejs3': 7.25.6 '@types/inquirer': 6.5.0 change-case: 3.1.0 del: 5.1.0 @@ -12337,8 +12505,6 @@ snapshots: mkdirp: 0.5.6 resolve: 1.22.8 - node-releases@2.0.14: {} - node-releases@2.0.18: {} nopt@5.0.0: @@ -12360,11 +12526,11 @@ snapshots: nwsapi@2.2.12: {} - oauth4webapi@2.11.0: {} + oauth4webapi@2.15.0: {} object-assign@4.1.1: {} - object-inspect@1.13.1: {} + object-inspect@1.13.2: {} object-is@1.1.6: dependencies: @@ -12423,13 +12589,13 @@ snapshots: dependencies: mimic-fn: 2.1.0 - openapi-path-templating@1.5.3: + openapi-path-templating@1.6.0: dependencies: - apg-lite: 1.0.3 + apg-lite: 1.0.4 - openapi-server-url-templating@1.0.0: + openapi-server-url-templating@1.1.0: dependencies: - apg-lite: 1.0.3 + apg-lite: 1.0.4 openapi-types@12.1.3: {} @@ -12481,7 +12647,7 @@ snapshots: dependencies: aggregate-error: 3.1.0 - pac-proxy-agent@7.0.1: + pac-proxy-agent@7.0.2: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.1 @@ -12490,7 +12656,7 @@ snapshots: http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.5 pac-resolver: 7.0.1 - socks-proxy-agent: 8.0.3 + socks-proxy-agent: 8.0.4 transitivePeerDependencies: - supports-color @@ -12547,12 +12713,12 @@ snapshots: path-scurry@1.11.1: dependencies: - lru-cache: 10.2.2 + lru-cache: 10.4.3 minipass: 7.1.2 path-scurry@2.0.0: dependencies: - lru-cache: 11.0.0 + lru-cache: 11.0.1 minipass: 7.1.2 path-type@4.0.0: {} @@ -12571,48 +12737,48 @@ snapshots: picomatch@4.0.2: {} - piscina@4.5.1: + piscina@4.6.1: optionalDependencies: nice-napi: 1.0.2 pkcs7@1.0.4: dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.25.6 possible-typed-array-names@1.0.0: {} - postcss-js@4.0.1(postcss@8.4.45): + postcss-js@4.0.1(postcss@8.4.47): dependencies: camelcase-css: 2.0.1 - postcss: 8.4.45 + postcss: 8.4.47 - postcss-mixins@9.0.4(postcss@8.4.45): + postcss-mixins@9.0.4(postcss@8.4.47): dependencies: fast-glob: 3.3.2 - postcss: 8.4.45 - postcss-js: 4.0.1(postcss@8.4.45) - postcss-simple-vars: 7.0.1(postcss@8.4.45) - sugarss: 4.0.1(postcss@8.4.45) + postcss: 8.4.47 + postcss-js: 4.0.1(postcss@8.4.47) + postcss-simple-vars: 7.0.1(postcss@8.4.47) + sugarss: 4.0.1(postcss@8.4.47) - postcss-nested@6.0.1(postcss@8.4.45): + postcss-nested@6.2.0(postcss@8.4.47): dependencies: - postcss: 8.4.45 - postcss-selector-parser: 6.0.16 + postcss: 8.4.47 + postcss-selector-parser: 6.1.2 - postcss-preset-mantine@1.17.0(postcss@8.4.45): + postcss-preset-mantine@1.17.0(postcss@8.4.47): dependencies: - postcss: 8.4.45 - postcss-mixins: 9.0.4(postcss@8.4.45) - postcss-nested: 6.0.1(postcss@8.4.45) + postcss: 8.4.47 + postcss-mixins: 9.0.4(postcss@8.4.47) + postcss-nested: 6.2.0(postcss@8.4.47) - postcss-selector-parser@6.0.16: + postcss-selector-parser@6.1.2: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-simple-vars@7.0.1(postcss@8.4.45): + postcss-simple-vars@7.0.1(postcss@8.4.47): dependencies: - postcss: 8.4.45 + postcss: 8.4.47 postcss@8.4.31: dependencies: @@ -12620,7 +12786,7 @@ snapshots: picocolors: 1.1.0 source-map-js: 1.2.1 - postcss@8.4.45: + postcss@8.4.47: dependencies: nanoid: 3.3.7 picocolors: 1.1.0 @@ -12641,8 +12807,8 @@ snapshots: minimist: 1.2.8 mkdirp-classic: 0.5.3 napi-build-utils: 1.0.2 - node-abi: 3.62.0 - pump: 3.0.0 + node-abi: 3.67.0 + pump: 3.0.2 rc: 1.2.8 simple-get: 4.0.1 tar-fs: 2.1.1 @@ -12694,7 +12860,7 @@ snapshots: dependencies: prosemirror-state: 1.4.3 - prosemirror-commands@1.5.2: + prosemirror-commands@1.6.0: dependencies: prosemirror-model: 1.22.3 prosemirror-state: 1.4.3 @@ -12704,20 +12870,20 @@ snapshots: dependencies: prosemirror-state: 1.4.3 prosemirror-transform: 1.10.0 - prosemirror-view: 1.33.10 + prosemirror-view: 1.34.2 prosemirror-gapcursor@1.3.2: dependencies: prosemirror-keymap: 1.2.2 prosemirror-model: 1.22.3 prosemirror-state: 1.4.3 - prosemirror-view: 1.33.10 + prosemirror-view: 1.34.2 prosemirror-history@1.4.1: dependencies: prosemirror-state: 1.4.3 prosemirror-transform: 1.10.0 - prosemirror-view: 1.33.10 + prosemirror-view: 1.34.2 rope-sequence: 1.3.4 prosemirror-inputrules@1.4.0: @@ -12738,7 +12904,7 @@ snapshots: prosemirror-menu@1.2.4: dependencies: crelt: 1.0.6 - prosemirror-commands: 1.5.2 + prosemirror-commands: 1.6.0 prosemirror-history: 1.4.1 prosemirror-state: 1.4.3 @@ -12760,29 +12926,29 @@ snapshots: dependencies: prosemirror-model: 1.22.3 prosemirror-transform: 1.10.0 - prosemirror-view: 1.33.10 + prosemirror-view: 1.34.2 - prosemirror-tables@1.4.0: + prosemirror-tables@1.5.0: dependencies: prosemirror-keymap: 1.2.2 prosemirror-model: 1.22.3 prosemirror-state: 1.4.3 prosemirror-transform: 1.10.0 - prosemirror-view: 1.33.10 + prosemirror-view: 1.34.2 - prosemirror-trailing-node@2.0.9(prosemirror-model@1.22.3)(prosemirror-state@1.4.3)(prosemirror-view@1.33.10): + prosemirror-trailing-node@2.0.9(prosemirror-model@1.22.3)(prosemirror-state@1.4.3)(prosemirror-view@1.34.2): dependencies: '@remirror/core-constants': 2.0.2 escape-string-regexp: 4.0.0 prosemirror-model: 1.22.3 prosemirror-state: 1.4.3 - prosemirror-view: 1.33.10 + prosemirror-view: 1.34.2 prosemirror-transform@1.10.0: dependencies: prosemirror-model: 1.22.3 - prosemirror-view@1.33.10: + prosemirror-view@1.34.2: dependencies: prosemirror-model: 1.22.3 prosemirror-state: 1.4.3 @@ -12797,9 +12963,9 @@ snapshots: http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.5 lru-cache: 7.18.3 - pac-proxy-agent: 7.0.1 + pac-proxy-agent: 7.0.2 proxy-from-env: 1.1.0 - socks-proxy-agent: 8.0.3 + socks-proxy-agent: 8.0.4 transitivePeerDependencies: - supports-color @@ -12807,7 +12973,7 @@ snapshots: psl@1.9.0: {} - pump@3.0.0: + pump@3.0.2: dependencies: end-of-stream: 1.4.4 once: 1.4.0 @@ -12820,7 +12986,7 @@ snapshots: dependencies: escape-goat: 2.1.1 - qs@6.12.1: + qs@6.13.0: dependencies: side-channel: 1.0.6 @@ -12830,7 +12996,7 @@ snapshots: queue-tick@1.0.1: {} - ramda-adjunct@5.0.1(ramda@0.30.1): + ramda-adjunct@5.1.0(ramda@0.30.1): dependencies: ramda: 0.30.1 @@ -12881,7 +13047,7 @@ snapshots: react-error-boundary@4.0.13(react@18.3.1): dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.25.6 react: 18.3.1 react-immutable-proptypes@2.2.0(immutable@3.8.2): @@ -12901,9 +13067,8 @@ snapshots: react-is@16.13.1: {} - react-number-format@5.3.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-number-format@5.4.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - prop-types: 15.8.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -12922,16 +13087,16 @@ snapshots: dependencies: react: 18.3.1 react-style-singleton: 2.2.1(@types/react@18.3.6)(react@18.3.1) - tslib: 2.6.2 + tslib: 2.7.0 optionalDependencies: '@types/react': 18.3.6 - react-remove-scroll@2.5.10(@types/react@18.3.6)(react@18.3.1): + react-remove-scroll@2.6.0(@types/react@18.3.6)(react@18.3.1): dependencies: react: 18.3.1 react-remove-scroll-bar: 2.3.6(@types/react@18.3.6)(react@18.3.1) react-style-singleton: 2.2.1(@types/react@18.3.6)(react@18.3.1) - tslib: 2.6.2 + tslib: 2.7.0 use-callback-ref: 1.3.2(@types/react@18.3.6)(react@18.3.1) use-sidecar: 1.1.2(@types/react@18.3.6)(react@18.3.1) optionalDependencies: @@ -12947,13 +13112,13 @@ snapshots: get-nonce: 1.0.1 invariant: 2.2.4 react: 18.3.1 - tslib: 2.6.2 + tslib: 2.7.0 optionalDependencies: '@types/react': 18.3.6 react-syntax-highlighter@15.5.0(react@18.3.1): dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.25.6 highlight.js: 10.7.3 lowlight: 1.20.0 prismjs: 1.29.0 @@ -12962,7 +13127,7 @@ snapshots: react-textarea-autosize@8.5.3(@types/react@18.3.6)(react@18.3.1): dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.25.6 react: 18.3.1 use-composed-ref: 1.3.0(react@18.3.1) use-latest: 1.2.1(@types/react@18.3.6)(react@18.3.1) @@ -12971,7 +13136,7 @@ snapshots: react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.25.6 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 @@ -13034,7 +13199,7 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.2.4 globalthis: 1.0.4 - which-builtin-type: 1.1.3 + which-builtin-type: 1.1.4 refractor@3.6.0: dependencies: @@ -13116,26 +13281,26 @@ snapshots: dependencies: glob: 7.2.3 - rollup@4.17.2: + rollup@4.21.3: dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.17.2 - '@rollup/rollup-android-arm64': 4.17.2 - '@rollup/rollup-darwin-arm64': 4.17.2 - '@rollup/rollup-darwin-x64': 4.17.2 - '@rollup/rollup-linux-arm-gnueabihf': 4.17.2 - '@rollup/rollup-linux-arm-musleabihf': 4.17.2 - '@rollup/rollup-linux-arm64-gnu': 4.17.2 - '@rollup/rollup-linux-arm64-musl': 4.17.2 - '@rollup/rollup-linux-powerpc64le-gnu': 4.17.2 - '@rollup/rollup-linux-riscv64-gnu': 4.17.2 - '@rollup/rollup-linux-s390x-gnu': 4.17.2 - '@rollup/rollup-linux-x64-gnu': 4.17.2 - '@rollup/rollup-linux-x64-musl': 4.17.2 - '@rollup/rollup-win32-arm64-msvc': 4.17.2 - '@rollup/rollup-win32-ia32-msvc': 4.17.2 - '@rollup/rollup-win32-x64-msvc': 4.17.2 + '@rollup/rollup-android-arm-eabi': 4.21.3 + '@rollup/rollup-android-arm64': 4.21.3 + '@rollup/rollup-darwin-arm64': 4.21.3 + '@rollup/rollup-darwin-x64': 4.21.3 + '@rollup/rollup-linux-arm-gnueabihf': 4.21.3 + '@rollup/rollup-linux-arm-musleabihf': 4.21.3 + '@rollup/rollup-linux-arm64-gnu': 4.21.3 + '@rollup/rollup-linux-arm64-musl': 4.21.3 + '@rollup/rollup-linux-powerpc64le-gnu': 4.21.3 + '@rollup/rollup-linux-riscv64-gnu': 4.21.3 + '@rollup/rollup-linux-s390x-gnu': 4.21.3 + '@rollup/rollup-linux-x64-gnu': 4.21.3 + '@rollup/rollup-linux-x64-musl': 4.21.3 + '@rollup/rollup-win32-arm64-msvc': 4.21.3 + '@rollup/rollup-win32-ia32-msvc': 4.21.3 + '@rollup/rollup-win32-x64-msvc': 4.21.3 fsevents: 2.3.3 rope-sequence@1.3.4: {} @@ -13144,8 +13309,6 @@ snapshots: dependencies: rrweb-snapshot: 2.0.0-alpha.4 - rrweb-cssom@0.6.0: {} - rrweb-cssom@0.7.1: {} rrweb-player@1.0.0-alpha.4: @@ -13155,7 +13318,7 @@ snapshots: rrweb-snapshot@2.0.0-alpha.17: dependencies: - postcss: 8.4.45 + postcss: 8.4.47 rrweb-snapshot@2.0.0-alpha.4: {} @@ -13182,7 +13345,7 @@ snapshots: rxjs@7.8.1: dependencies: - tslib: 2.6.2 + tslib: 2.7.0 safe-array-concat@1.1.2: dependencies: @@ -13201,15 +13364,15 @@ snapshots: es-errors: 1.3.0 is-regex: 1.1.4 - safe-stable-stringify@2.4.3: {} + safe-stable-stringify@2.5.0: {} safer-buffer@2.1.2: {} sass@1.78.0: dependencies: chokidar: 3.6.0 - immutable: 4.3.6 - source-map-js: 1.2.0 + immutable: 4.3.7 + source-map-js: 1.2.1 saxes@6.0.0: dependencies: @@ -13231,8 +13394,6 @@ snapshots: semver@6.3.1: {} - semver@7.6.2: {} - semver@7.6.3: {} sentence-case@2.1.1: @@ -13292,7 +13453,7 @@ snapshots: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 - object-inspect: 1.13.1 + object-inspect: 1.13.2 siginfo@2.0.0: {} @@ -13331,7 +13492,7 @@ snapshots: socket.io-client@4.7.5: dependencies: '@socket.io/component-emitter': 3.1.2 - debug: 4.3.6 + debug: 4.3.7 engine.io-client: 6.5.4 socket.io-parser: 4.2.4 transitivePeerDependencies: @@ -13346,7 +13507,7 @@ snapshots: transitivePeerDependencies: - supports-color - socks-proxy-agent@8.0.3: + socks-proxy-agent@8.0.4: dependencies: agent-base: 7.1.1 debug: 4.3.7 @@ -13359,8 +13520,6 @@ snapshots: ip-address: 9.0.5 smart-buffer: 4.2.0 - source-map-js@1.2.0: {} - source-map-js@1.2.1: {} source-map-support@0.5.21: @@ -13383,15 +13542,15 @@ snapshots: ssh-remote-port-forward@1.0.4: dependencies: '@types/ssh2': 0.5.52 - ssh2: 1.15.0 + ssh2: 1.16.0 - ssh2@1.15.0: + ssh2@1.16.0: dependencies: asn1: 0.2.6 bcrypt-pbkdf: 1.0.2 optionalDependencies: cpu-features: 0.0.10 - nan: 2.19.0 + nan: 2.20.0 stack-trace@0.0.10: {} @@ -13409,11 +13568,11 @@ snapshots: streamsearch@1.1.0: {} - streamx@2.18.0: + streamx@2.20.1: dependencies: fast-fifo: 1.3.2 queue-tick: 1.0.1 - text-decoder: 1.1.0 + text-decoder: 1.2.0 optionalDependencies: bare-events: 2.4.2 @@ -13489,7 +13648,7 @@ snapshots: strip-ansi@7.1.0: dependencies: - ansi-regex: 6.0.1 + ansi-regex: 6.1.0 strip-bom@3.0.0: {} @@ -13508,11 +13667,18 @@ snapshots: optionalDependencies: '@babel/core': 7.24.6 + styled-jsx@5.1.1(@babel/core@7.25.2)(react@18.3.1): + dependencies: + client-only: 0.0.1 + react: 18.3.1 + optionalDependencies: + '@babel/core': 7.25.2 + sugar-high@0.6.1: {} - sugarss@4.0.1(postcss@8.4.45): + sugarss@4.0.1(postcss@8.4.47): dependencies: - postcss: 8.4.45 + postcss: 8.4.47 superjson@2.2.1: dependencies: @@ -13532,32 +13698,31 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - swagger-client@3.28.2(ramda@0.30.1): + swagger-client@3.29.3: dependencies: - '@babel/runtime-corejs3': 7.24.5 - '@swagger-api/apidom-core': 1.0.0-alpha.5 - '@swagger-api/apidom-error': 1.0.0-alpha.5 - '@swagger-api/apidom-json-pointer': 1.0.0-alpha.5 - '@swagger-api/apidom-ns-openapi-3-1': 1.0.0-alpha.5 - '@swagger-api/apidom-reference': 1.0.0-alpha.5 + '@babel/runtime-corejs3': 7.25.6 + '@swagger-api/apidom-core': 1.0.0-alpha.9 + '@swagger-api/apidom-error': 1.0.0-alpha.9 + '@swagger-api/apidom-json-pointer': 1.0.0-alpha.9 + '@swagger-api/apidom-ns-openapi-3-1': 1.0.0-alpha.9 + '@swagger-api/apidom-reference': 1.0.0-alpha.9 cookie: 0.6.0 deepmerge: 4.3.1 fast-json-patch: 3.1.1 js-yaml: 4.1.0 + neotraverse: 0.6.18 node-abort-controller: 3.1.1 node-fetch-commonjs: 3.3.2 - openapi-path-templating: 1.5.3 - openapi-server-url-templating: 1.0.0 - qs: 6.12.1 - ramda-adjunct: 5.0.1(ramda@0.30.1) - traverse: 0.6.8 + openapi-path-templating: 1.6.0 + openapi-server-url-templating: 1.1.0 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) transitivePeerDependencies: - debug - - ramda - swagger-ui-react@5.17.14(@types/react@18.3.6)(ramda@0.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + swagger-ui-react@5.17.14(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime-corejs3': 7.24.5 + '@babel/runtime-corejs3': 7.25.6 '@braintree/sanitize-url': 7.0.2 base64-js: 1.5.1 classnames: 2.5.1 @@ -13587,7 +13752,7 @@ snapshots: reselect: 5.1.1 serialize-error: 8.1.0 sha.js: 2.4.11 - swagger-client: 3.28.2(ramda@0.30.1) + swagger-client: 3.29.3 url-parse: 1.5.10 xml: 1.0.1 xml-but-prettier: 1.0.1 @@ -13595,7 +13760,6 @@ snapshots: transitivePeerDependencies: - '@types/react' - debug - - ramda swap-case@1.1.2: dependencies: @@ -13612,22 +13776,22 @@ snapshots: dependencies: chownr: 1.1.4 mkdirp-classic: 0.5.3 - pump: 3.0.0 + pump: 3.0.2 tar-stream: 2.2.0 tar-fs@2.1.1: dependencies: chownr: 1.1.4 mkdirp-classic: 0.5.3 - pump: 3.0.0 + pump: 3.0.2 tar-stream: 2.2.0 tar-fs@3.0.6: dependencies: - pump: 3.0.0 + pump: 3.0.2 tar-stream: 3.1.7 optionalDependencies: - bare-fs: 2.3.1 + bare-fs: 2.3.5 bare-path: 2.1.3 tar-stream@2.2.0: @@ -13642,7 +13806,7 @@ snapshots: dependencies: b4a: 1.6.6 fast-fifo: 1.3.2 - streamx: 2.18.0 + streamx: 2.20.1 tar@6.2.1: dependencies: @@ -13653,14 +13817,14 @@ snapshots: mkdirp: 1.0.4 yallist: 4.0.0 - terser-webpack-plugin@5.3.10(webpack@5.91.0): + terser-webpack-plugin@5.3.10(webpack@5.94.0): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.32.0 - webpack: 5.91.0 + webpack: 5.94.0 terser@5.32.0: dependencies: @@ -13673,7 +13837,7 @@ snapshots: dependencies: '@istanbuljs/schema': 0.1.3 glob: 10.4.5 - minimatch: 9.0.4 + minimatch: 9.0.5 testcontainers@10.13.1: dependencies: @@ -13695,7 +13859,7 @@ snapshots: transitivePeerDependencies: - supports-color - text-decoder@1.1.0: + text-decoder@1.2.0: dependencies: b4a: 1.6.6 @@ -13721,11 +13885,11 @@ snapshots: '@types/tinycolor2': 1.4.6 tinycolor2: 1.6.0 - tinypool@1.0.0: {} + tinypool@1.0.1: {} tinyrainbow@1.2.0: {} - tinyspy@3.0.0: {} + tinyspy@3.0.2: {} tippy.js@6.3.7: dependencies: @@ -13773,23 +13937,21 @@ snapshots: dependencies: punycode: 2.3.1 - traverse@0.6.8: {} - tree-kill@1.2.2: {} tree-sitter-json@0.20.2: dependencies: - nan: 2.19.0 + nan: 2.20.0 optional: true tree-sitter-yaml@0.5.0: dependencies: - nan: 2.19.0 + nan: 2.20.0 optional: true tree-sitter@0.20.4: dependencies: - nan: 2.19.0 + nan: 2.20.0 prebuild-install: 7.1.2 optional: true @@ -13802,10 +13964,10 @@ snapshots: chalk-scripts: 1.2.8 co-body: 6.2.0 lodash.clonedeep: 4.5.0 - node-mocks-http: 1.14.1 + node-mocks-http: 1.16.0 openapi-types: 12.1.3 zod: 3.23.8 - zod-to-json-schema: 3.23.0(zod@3.23.8) + zod-to-json-schema: 3.23.3(zod@3.23.8) ts-api-utils@1.3.0(typescript@5.6.2): dependencies: @@ -13822,7 +13984,7 @@ snapshots: '@tsconfig/node16': 1.0.4 '@types/node': 20.16.5 acorn: 8.12.1 - acorn-walk: 8.3.2 + acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 @@ -13833,7 +13995,7 @@ snapshots: ts-toolbelt@9.6.0: {} - tsconfck@3.0.3(typescript@5.6.2): + tsconfck@3.1.3(typescript@5.6.2): optionalDependencies: typescript: 5.6.2 @@ -13846,14 +14008,14 @@ snapshots: tslib@1.14.1: {} - tslib@2.6.2: {} + tslib@2.7.0: {} tsscmp@1.0.6: {} tsx@4.13.3: dependencies: esbuild: 0.20.2 - get-tsconfig: 4.7.5 + get-tsconfig: 4.8.1 optionalDependencies: fsevents: 2.3.3 @@ -13898,7 +14060,7 @@ snapshots: type-fest@0.21.3: {} - type-fest@4.18.2: {} + type-fest@4.26.1: {} type-is@1.6.18: dependencies: @@ -13941,7 +14103,7 @@ snapshots: dependencies: is-typedarray: 1.0.0 - types-ramda@0.30.0: + types-ramda@0.30.1: dependencies: ts-toolbelt: 9.6.0 @@ -13962,7 +14124,7 @@ snapshots: ufo@1.5.4: {} - uglify-js@3.17.4: + uglify-js@3.19.3: optional: true uint8array-extras@1.4.0: {} @@ -13976,7 +14138,7 @@ snapshots: undici-types@5.26.5: {} - undici-types@6.19.6: {} + undici-types@6.19.8: {} undici@5.28.4: dependencies: @@ -13994,21 +14156,15 @@ snapshots: unpipe@1.0.0: {} - unplugin@1.10.1: + unplugin@1.14.1(webpack-sources@3.2.3): dependencies: - acorn: 8.12.0 - chokidar: 3.6.0 + acorn: 8.12.1 + webpack-virtual-modules: 0.6.2 + optionalDependencies: webpack-sources: 3.2.3 - webpack-virtual-modules: 0.6.1 unraw@3.0.0: {} - update-browserslist-db@1.0.16(browserslist@4.23.0): - dependencies: - browserslist: 4.23.0 - escalade: 3.2.0 - picocolors: 1.1.0 - update-browserslist-db@1.1.0(browserslist@4.23.3): dependencies: browserslist: 4.23.3 @@ -14020,7 +14176,7 @@ snapshots: registry-auth-token: 3.3.2 registry-url: 3.1.0 - update-notifier-cjs@5.1.6(encoding@0.1.13): + update-notifier-cjs@5.1.6: dependencies: boxen: 5.1.2 chalk: 4.1.2 @@ -14031,7 +14187,7 @@ snapshots: is-installed-globally: 0.4.0 is-npm: 5.0.0 is-yarn-global: 0.3.0 - isomorphic-fetch: 3.0.0(encoding@0.1.13) + isomorphic-fetch: 3.0.0 pupa: 2.1.1 registry-auth-token: 5.0.2 registry-url: 5.1.0 @@ -14061,7 +14217,7 @@ snapshots: use-callback-ref@1.3.2(@types/react@18.3.6)(react@18.3.1): dependencies: react: 18.3.1 - tslib: 2.6.2 + tslib: 2.7.0 optionalDependencies: '@types/react': 18.3.6 @@ -14071,7 +14227,7 @@ snapshots: use-deep-compare-effect@1.8.1(react@18.3.1): dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.25.6 dequal: 2.0.3 react: 18.3.1 @@ -14092,7 +14248,7 @@ snapshots: dependencies: detect-node-es: 1.1.0 react: 18.3.1 - tslib: 2.6.2 + tslib: 2.7.0 optionalDependencies: '@types/react': 18.3.6 @@ -14114,13 +14270,13 @@ snapshots: video.js@8.17.4: dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.25.6 '@videojs/http-streaming': 3.13.3(video.js@8.17.4) '@videojs/vhs-utils': 4.0.0 '@videojs/xhr': 2.7.0 - aes-decrypter: 4.0.1 + aes-decrypter: 4.0.2 global: 4.4.0 - m3u8-parser: 7.1.0 + m3u8-parser: 7.2.0 mpd-parser: 1.3.0 mux.js: 7.0.3 videojs-contrib-quality-levels: 4.1.0(video.js@8.17.4) @@ -14138,49 +14294,50 @@ snapshots: dependencies: global: 4.4.0 - vite-node@2.1.1(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.45))(terser@5.32.0): + vite-node@2.1.1(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): dependencies: cac: 6.7.14 debug: 4.3.7 pathe: 1.1.2 - vite: 5.2.11(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.45))(terser@5.32.0) + vite: 5.4.5(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) transitivePeerDependencies: - '@types/node' - less - lightningcss - sass + - sass-embedded - stylus - sugarss - supports-color - terser - vite-tsconfig-paths@5.0.1(typescript@5.6.2)(vite@5.2.11(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.45))(terser@5.32.0)): + vite-tsconfig-paths@5.0.1(typescript@5.6.2)(vite@5.4.5(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)): dependencies: - debug: 4.3.5 + debug: 4.3.7 globrex: 0.1.2 - tsconfck: 3.0.3(typescript@5.6.2) + tsconfck: 3.1.3(typescript@5.6.2) optionalDependencies: - vite: 5.2.11(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.45))(terser@5.32.0) + vite: 5.4.5(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) transitivePeerDependencies: - supports-color - typescript - vite@5.2.11(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.45))(terser@5.32.0): + vite@5.4.5(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): dependencies: - esbuild: 0.20.2 - postcss: 8.4.45 - rollup: 4.17.2 + esbuild: 0.21.5 + postcss: 8.4.47 + rollup: 4.21.3 optionalDependencies: '@types/node': 20.16.5 fsevents: 2.3.3 sass: 1.78.0 - sugarss: 4.0.1(postcss@8.4.45) + sugarss: 4.0.1(postcss@8.4.47) terser: 5.32.0 - vitest@2.1.1(@types/node@20.16.5)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.45))(terser@5.32.0): + vitest@2.1.1(@types/node@20.16.5)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): dependencies: '@vitest/expect': 2.1.1 - '@vitest/mocker': 2.1.1(@vitest/spy@2.1.1)(vite@5.2.11(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.45))(terser@5.32.0)) + '@vitest/mocker': 2.1.1(@vitest/spy@2.1.1)(vite@5.4.5(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) '@vitest/pretty-format': 2.1.1 '@vitest/runner': 2.1.1 '@vitest/snapshot': 2.1.1 @@ -14193,10 +14350,10 @@ snapshots: std-env: 3.7.0 tinybench: 2.9.0 tinyexec: 0.3.0 - tinypool: 1.0.0 + tinypool: 1.0.1 tinyrainbow: 1.2.0 - vite: 5.2.11(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.45))(terser@5.32.0) - vite-node: 2.1.1(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.45))(terser@5.32.0) + vite: 5.4.5(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vite-node: 2.1.1(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 20.16.5 @@ -14207,6 +14364,7 @@ snapshots: - lightningcss - msw - sass + - sass-embedded - stylus - sugarss - supports-color @@ -14238,17 +14396,16 @@ snapshots: webpack-sources@3.2.3: {} - webpack-virtual-modules@0.6.1: {} + webpack-virtual-modules@0.6.2: {} - webpack@5.91.0: + webpack@5.94.0: dependencies: - '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.5 '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/wasm-edit': 1.12.1 '@webassemblyjs/wasm-parser': 1.12.1 acorn: 8.12.1 - acorn-import-assertions: 1.9.0(acorn@8.12.1) + acorn-import-attributes: 1.9.5(acorn@8.12.1) browserslist: 4.23.3 chrome-trace-event: 1.0.4 enhanced-resolve: 5.17.1 @@ -14263,7 +14420,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(webpack@5.91.0) + terser-webpack-plugin: 5.3.10(webpack@5.94.0) watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -14297,7 +14454,7 @@ snapshots: is-string: 1.0.7 is-symbol: 1.0.4 - which-builtin-type@1.1.3: + which-builtin-type@1.1.4: dependencies: function.prototype.name: 1.1.6 has-tostringtag: 1.0.2 @@ -14344,9 +14501,9 @@ snapshots: dependencies: string-width: 4.2.3 - winston-transport@4.7.0: + winston-transport@4.7.1: dependencies: - logform: 2.6.0 + logform: 2.6.1 readable-stream: 3.6.2 triple-beam: 1.4.1 @@ -14354,15 +14511,15 @@ snapshots: dependencies: '@colors/colors': 1.6.0 '@dabh/diagnostics': 2.0.3 - async: 3.2.5 + async: 3.2.6 is-stream: 2.0.1 - logform: 2.6.0 + logform: 2.6.1 one-time: 1.0.0 readable-stream: 3.6.2 - safe-stable-stringify: 2.4.3 + safe-stable-stringify: 2.5.0 stack-trace: 0.0.10 triple-beam: 1.4.1 - winston-transport: 4.7.0 + winston-transport: 4.7.1 word-wrap@1.2.5: {} @@ -14423,7 +14580,7 @@ snapshots: yallist@4.0.0: {} - yaml@2.4.5: {} + yaml@2.5.1: {} yargs-parser@21.1.1: {} @@ -14453,7 +14610,7 @@ snapshots: dependencies: zod: 3.23.8 - zod-to-json-schema@3.23.0(zod@3.23.8): + zod-to-json-schema@3.23.3(zod@3.23.8): dependencies: zod: 3.23.8 diff --git a/turbo/generators/templates/package.json.hbs b/turbo/generators/templates/package.json.hbs index f49557ca7..f870e9cd2 100644 --- a/turbo/generators/templates/package.json.hbs +++ b/turbo/generators/templates/package.json.hbs @@ -24,8 +24,8 @@ "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "eslint": "^9.9.1", - "typescript": "^5.5.4" + "eslint": "^9.10.0", + "typescript": "^5.6.2" }, "prettier": "@homarr/prettier-config" } \ No newline at end of file From d01ddd61b6fe3583412c7a553cfba8d32ae797a7 Mon Sep 17 00:00:00 2001 From: Meier Lukas Date: Mon, 16 Sep 2024 21:41:40 +0200 Subject: [PATCH 17/33] fix: db port validation for env variable wrong (#1137) * fix: db port validation for env variable wrong * fix: wrong default --- apps/nextjs/src/env.mjs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/apps/nextjs/src/env.mjs b/apps/nextjs/src/env.mjs index d5b00da89..bdef43eb0 100644 --- a/apps/nextjs/src/env.mjs +++ b/apps/nextjs/src/env.mjs @@ -23,7 +23,14 @@ export const env = createEnv({ // If the DB_HOST is set, the DB_URL is optional DB_URL: isUsingDbHost ? z.string().optional() : z.string(), DB_HOST: isUsingDbUrl ? z.string().optional() : z.string(), - DB_PORT: isUsingDbUrl ? z.number().optional() : z.number().min(1).default(3306), + DB_PORT: isUsingDbUrl + ? z.string().regex(/\d+/).transform(Number).optional() + : z + .string() + .regex(/\d+/) + .transform(Number) + .refine((number) => number >= 1) + .default("3306"), DB_USER: isUsingDbCredentials ? z.string() : z.string().optional(), DB_PASSWORD: isUsingDbCredentials ? z.string() : z.string().optional(), DB_NAME: isUsingDbUrl ? z.string().optional() : z.string(), From 657c2eef80a6562c45c7d2a3b63fb03edff8eb3e Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Tue, 17 Sep 2024 14:39:02 +0000 Subject: [PATCH 18/33] fix(deps): update tiptap monorepo to v2.7.1 (#1139) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- packages/widgets/package.json | 30 +- pnpm-lock.yaml | 541 +++++++++++++++++----------------- 2 files changed, 286 insertions(+), 285 deletions(-) diff --git a/packages/widgets/package.json b/packages/widgets/package.json index 080be36f5..e73d7232f 100644 --- a/packages/widgets/package.json +++ b/packages/widgets/package.json @@ -41,21 +41,21 @@ "@mantine/core": "^7.12.2", "@mantine/hooks": "^7.12.2", "@tabler/icons-react": "^3.17.0", - "@tiptap/extension-color": "2.6.6", - "@tiptap/extension-highlight": "2.6.6", - "@tiptap/extension-image": "2.6.6", - "@tiptap/extension-link": "^2.6.6", - "@tiptap/extension-table": "2.6.6", - "@tiptap/extension-table-cell": "2.6.6", - "@tiptap/extension-table-header": "2.6.6", - "@tiptap/extension-table-row": "2.6.6", - "@tiptap/extension-task-item": "2.6.6", - "@tiptap/extension-task-list": "2.6.6", - "@tiptap/extension-text-align": "2.6.6", - "@tiptap/extension-text-style": "2.6.6", - "@tiptap/extension-underline": "2.6.6", - "@tiptap/react": "^2.6.6", - "@tiptap/starter-kit": "^2.6.6", + "@tiptap/extension-color": "2.7.1", + "@tiptap/extension-highlight": "2.7.1", + "@tiptap/extension-image": "2.7.1", + "@tiptap/extension-link": "^2.7.1", + "@tiptap/extension-table": "2.7.1", + "@tiptap/extension-table-cell": "2.7.1", + "@tiptap/extension-table-header": "2.7.1", + "@tiptap/extension-table-row": "2.7.1", + "@tiptap/extension-task-item": "2.7.1", + "@tiptap/extension-task-list": "2.7.1", + "@tiptap/extension-text-align": "2.7.1", + "@tiptap/extension-text-style": "2.7.1", + "@tiptap/extension-underline": "2.7.1", + "@tiptap/react": "^2.7.1", + "@tiptap/starter-kit": "^2.7.1", "clsx": "^2.1.1", "dayjs": "^1.11.13", "mantine-react-table": "2.0.0-beta.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6da03bb70..7d854ec5d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -132,7 +132,7 @@ importers: version: 7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mantine/tiptap': specifier: ^7.12.2 - version: 7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tiptap/extension-link@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6))(@tiptap/react@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tiptap/extension-link@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/pm@2.7.1))(@tiptap/react@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/pm@2.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@million/lint': specifier: 1.0.0-rc.84 version: 1.0.0-rc.84(rollup@4.21.3)(webpack-sources@3.2.3) @@ -1522,50 +1522,50 @@ importers: specifier: ^3.17.0 version: 3.17.0(react@18.3.1) '@tiptap/extension-color': - specifier: 2.6.6 - version: 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/extension-text-style@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))) + specifier: 2.7.1 + version: 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/extension-text-style@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))) '@tiptap/extension-highlight': - specifier: 2.6.6 - version: 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6)) + specifier: 2.7.1 + version: 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1)) '@tiptap/extension-image': - specifier: 2.6.6 - version: 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6)) + specifier: 2.7.1 + version: 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1)) '@tiptap/extension-link': - specifier: ^2.6.6 - version: 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6) + specifier: ^2.7.1 + version: 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/pm@2.7.1) '@tiptap/extension-table': - specifier: 2.6.6 - version: 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6) + specifier: 2.7.1 + version: 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/pm@2.7.1) '@tiptap/extension-table-cell': - specifier: 2.6.6 - version: 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6)) + specifier: 2.7.1 + version: 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1)) '@tiptap/extension-table-header': - specifier: 2.6.6 - version: 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6)) + specifier: 2.7.1 + version: 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1)) '@tiptap/extension-table-row': - specifier: 2.6.6 - version: 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6)) + specifier: 2.7.1 + version: 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1)) '@tiptap/extension-task-item': - specifier: 2.6.6 - version: 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6) + specifier: 2.7.1 + version: 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/pm@2.7.1) '@tiptap/extension-task-list': - specifier: 2.6.6 - version: 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6)) + specifier: 2.7.1 + version: 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1)) '@tiptap/extension-text-align': - specifier: 2.6.6 - version: 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6)) + specifier: 2.7.1 + version: 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1)) '@tiptap/extension-text-style': - specifier: 2.6.6 - version: 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6)) + specifier: 2.7.1 + version: 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1)) '@tiptap/extension-underline': - specifier: 2.6.6 - version: 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6)) + specifier: 2.7.1 + version: 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1)) '@tiptap/react': - specifier: ^2.6.6 - version: 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^2.7.1 + version: 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/pm@2.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tiptap/starter-kit': - specifier: ^2.6.6 - version: 2.6.6 + specifier: ^2.7.1 + version: 2.7.1 clsx: specifier: ^2.1.1 version: 2.1.1 @@ -2721,8 +2721,8 @@ packages: '@popperjs/core@2.11.8': resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} - '@remirror/core-constants@2.0.2': - resolution: {integrity: sha512-dyHY+sMF0ihPus3O27ODd4+agdHMEmuRdyiZJ2CCWjPV5UFmn17ZbElvk6WOGVE4rdCJKZQCrPV2BcikOMLUGQ==} + '@remirror/core-constants@3.0.0': + resolution: {integrity: sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==} '@rollup/pluginutils@5.1.0': resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} @@ -2986,200 +2986,200 @@ packages: '@tanstack/virtual-core@3.8.3': resolution: {integrity: sha512-vd2A2TnM5lbnWZnHi9B+L2gPtkSeOtJOAw358JqokIH1+v2J7vUAzFVPwB/wrye12RFOurffXu33plm4uQ+JBQ==} - '@tiptap/core@2.6.6': - resolution: {integrity: sha512-VO5qTsjt6rwworkuo0s5AqYMfDA0ZwiTiH6FHKFSu2G/6sS7HKcc/LjPq+5Legzps4QYdBDl3W28wGsGuS1GdQ==} + '@tiptap/core@2.7.1': + resolution: {integrity: sha512-/sOJ3J2OWxQrho6MWgE9xaRBln5MC4BEuevTYIGia4zrc523lX9s+h/lUeLtCPhI0+J6z9Vz+v3G/uoEqWCL+A==} peerDependencies: - '@tiptap/pm': ^2.6.6 + '@tiptap/pm': ^2.7.0 - '@tiptap/extension-blockquote@2.6.6': - resolution: {integrity: sha512-hAdsNlMfzzxld154hJqPqtWqO5i4/7HoDfuxmyqBxdMJ+e2UMaIGBGwoLRXG0V9UoRwJusjqlpyD7pIorxNlgA==} + '@tiptap/extension-blockquote@2.7.1': + resolution: {integrity: sha512-d/+3I7YvyTaZZe1LKofctoopLxlzYo7cEAYhzB8LFNzFZmBQKglefpLZZ2D4BSzBG/fzr1y5A2UPXReoEyHxug==} peerDependencies: - '@tiptap/core': ^2.6.6 + '@tiptap/core': ^2.7.0 - '@tiptap/extension-bold@2.6.6': - resolution: {integrity: sha512-CD6gBhdQtCoqYSmx8oAV8gvKtVOGZSyyvuNYo7by9eZ56DqLYnd7kbUj0RH7o9Ymf/iJTOUJ6XcvrsWwo4lubg==} + '@tiptap/extension-bold@2.7.1': + resolution: {integrity: sha512-k03srawDKtS8P4w2TKv59MzgvZoKGssTGqvOF1YDxArriB2pK3jz6i4jbGs79qRlyGyWFSCEkpF9amFrCajlIw==} peerDependencies: - '@tiptap/core': ^2.6.6 + '@tiptap/core': ^2.7.0 - '@tiptap/extension-bubble-menu@2.6.6': - resolution: {integrity: sha512-IkfmlZq67aaegym5sBddBc/xXWCArxn5WJEl1oxKEayjQhybKSaqI7tk0lOx/x7fa5Ml1WlGpCFh+KKXbQTG0g==} + '@tiptap/extension-bubble-menu@2.7.1': + resolution: {integrity: sha512-ZQh2Q2bAu61Z249b8eRLMKk0WU2ILvUz9JM9uxjxXaGE9L8nQbv0Pc5sZxIecOKmdX9N5Nq6mSoh/kD+klUOzA==} peerDependencies: - '@tiptap/core': ^2.6.6 - '@tiptap/pm': ^2.6.6 + '@tiptap/core': ^2.7.0 + '@tiptap/pm': ^2.7.0 - '@tiptap/extension-bullet-list@2.6.6': - resolution: {integrity: sha512-WEKxbVSYuvmX2wkHWP8HXk5nzA7stYwtdaubwWH/R17kGI3IGScJuMQ9sEN82uzJU8bfgL9yCbH2bY8Fj/Q4Ow==} + '@tiptap/extension-bullet-list@2.7.1': + resolution: {integrity: sha512-yqwnv1STjjn6vEIsFf+YsHJxF6eNrlPGqTBMnliGzIDm61aTYaOlixdT5JpYiLFC3XNdUEGBrvHkFzBnVFwAWA==} peerDependencies: - '@tiptap/core': ^2.6.6 + '@tiptap/core': ^2.7.0 - '@tiptap/extension-code-block@2.6.6': - resolution: {integrity: sha512-1YLp/zHMHSkE2xzht8nPR6T4sQJJ3ket798czxWuQEbetFv/l0U/mpiPpYSLObj6oTAoqYZ0kWXZj5eQSpPB8Q==} + '@tiptap/extension-code-block@2.7.1': + resolution: {integrity: sha512-JShpH4um7HUYTkm3bLA+Xng4HKdVHJT/JG/SzvIQpi4/6vQTKnwgeFen4c1lJfIX2v6G/aT+PiuuwJnuHhwnDg==} peerDependencies: - '@tiptap/core': ^2.6.6 - '@tiptap/pm': ^2.6.6 + '@tiptap/core': ^2.7.0 + '@tiptap/pm': ^2.7.0 - '@tiptap/extension-code@2.6.6': - resolution: {integrity: sha512-JrEFKsZiLvfvOFhOnnrpA0TzCuJjDeysfbMeuKUZNV4+DhYOL28d39H1++rEtJAX0LcbBU60oC5/PrlU9SpvRQ==} + '@tiptap/extension-code@2.7.1': + resolution: {integrity: sha512-VC9/AzIyfIKaxvTW1hIJUc373IY3D5Z3ykODPaNqplrvqonwULxrciLLh+GcCAwTjH8XnJtc66IaM9VDYxrSTw==} peerDependencies: - '@tiptap/core': ^2.6.6 + '@tiptap/core': ^2.7.0 - '@tiptap/extension-color@2.6.6': - resolution: {integrity: sha512-aq2XnbWMak1yJxH2EoVKpCjFONRkZcX9D72LvvgOgtDQ62wG3/axZ75bT1B/NNfqlEp7U78Fpqib7jq/uCLYTg==} + '@tiptap/extension-color@2.7.1': + resolution: {integrity: sha512-xLiYitdwFCQsJ/aQJFMAsG0A2VyozWi7WLNwH7Nau4wqwSerM/+Ih1/NQvcTpmZCWs082h5HcrjVlqDLdrbWgw==} peerDependencies: - '@tiptap/core': ^2.6.6 - '@tiptap/extension-text-style': ^2.6.6 + '@tiptap/core': ^2.7.0 + '@tiptap/extension-text-style': ^2.7.0 - '@tiptap/extension-document@2.6.6': - resolution: {integrity: sha512-6qlH5VWzLHHRVeeciRC6C4ZHpMsAGPNG16EF53z0GeMSaaFD/zU3B239QlmqXmLsAl8bpf8Bn93N0t2ABUvScw==} + '@tiptap/extension-document@2.7.1': + resolution: {integrity: sha512-9wp/rXv9uBnqfEoJ5l7Rdx50H3m5via2r6TDRUXffneckd4fZDsVi+WKJxlxCU0ABi1F6glEuZ95zln+mqx3Pw==} peerDependencies: - '@tiptap/core': ^2.6.6 + '@tiptap/core': ^2.7.0 - '@tiptap/extension-dropcursor@2.6.6': - resolution: {integrity: sha512-O6CeKriA9uyHsg7Ui4z5ZjEWXQxrIL+1zDekffW0wenGC3G4LUsCzAiFS4LSrR9a3u7tnwqGApW10rdkmCGF4w==} + '@tiptap/extension-dropcursor@2.7.1': + resolution: {integrity: sha512-D9pWKKf3KhA8Y8QdnFNFwMoUsu4ymcjCUFoDayyLDwJ5xneX5qe9MRpqs9mVW0s31I9yqZtaSrT1Re8bhdxDNw==} peerDependencies: - '@tiptap/core': ^2.6.6 - '@tiptap/pm': ^2.6.6 + '@tiptap/core': ^2.7.0 + '@tiptap/pm': ^2.7.0 - '@tiptap/extension-floating-menu@2.6.6': - resolution: {integrity: sha512-lPkESOfAUxgmXRiNqUU23WSyja5FUfSWjsW4hqe+BKNjsUt1OuFMEtYJtNc+MCGhhtPfFvM3Jg6g9jd6g5XsLQ==} + '@tiptap/extension-floating-menu@2.7.1': + resolution: {integrity: sha512-t6nANJPDudo8lOTN2zxXUBqMK8K8ZZgGfC8j3vVbOzLCLEgffU1ZX6YfYqOWPRBua0TXLJPZnGD6nff4pxzG5g==} peerDependencies: - '@tiptap/core': ^2.6.6 - '@tiptap/pm': ^2.6.6 + '@tiptap/core': ^2.7.0 + '@tiptap/pm': ^2.7.0 - '@tiptap/extension-gapcursor@2.6.6': - resolution: {integrity: sha512-O2lQ2t0X0Vsbn3yLWxFFHrXY6C2N9Y6ZF/M7LWzpcDTUZeWuhoNkFE/1yOM0h6ZX1DO2A9hNIrKpi5Ny8yx+QA==} + '@tiptap/extension-gapcursor@2.7.1': + resolution: {integrity: sha512-oSfir7KRnnZ46PsZrSpgpSYr+0zYmIvwL0HhCzaUg8a44ISg730MhrD0jZibQ/+AWatLVHx8Pcd/eHm/R9+rXA==} peerDependencies: - '@tiptap/core': ^2.6.6 - '@tiptap/pm': ^2.6.6 + '@tiptap/core': ^2.7.0 + '@tiptap/pm': ^2.7.0 - '@tiptap/extension-hard-break@2.6.6': - resolution: {integrity: sha512-bsUuyYBrMDEiudx1dOQSr9MzKv13m0xHWrOK+DYxuIDYJb5g+c9un5cK7Js+et/HEYYSPOoH/iTW6h+4I5YeUg==} + '@tiptap/extension-hard-break@2.7.1': + resolution: {integrity: sha512-zy7lK2d0tu6BagzqkBwp2cIXM2t/QbHiKap1roj9B+QafsF9Im9p92bEK6fJEw+qC/j0PucR668MYsfUU7d2gQ==} peerDependencies: - '@tiptap/core': ^2.6.6 + '@tiptap/core': ^2.7.0 - '@tiptap/extension-heading@2.6.6': - resolution: {integrity: sha512-bgx9vptVFi5yFkIw1OI53J7+xJ71Or3SOe/Q8eSpZv53DlaKpL/TzKw8Z54t1PrI2rJ6H9vrLtkvixJvBZH1Ug==} + '@tiptap/extension-heading@2.7.1': + resolution: {integrity: sha512-waVLZBKJADGYeqs4B09LEoe8wZtltut1pe68cHaGn4SuTXSbAhV/S5F3xBi4kLVJ9rN8qcNAqwPj9ZgOzeZqvQ==} peerDependencies: - '@tiptap/core': ^2.6.6 + '@tiptap/core': ^2.7.0 - '@tiptap/extension-highlight@2.6.6': - resolution: {integrity: sha512-Z02AYWm1AJAfhmfT4fGCI3YitijF4uNu+eiuq7OxhCiVf9IYaq8xlH2YMxa09QvMUo70ovklxk97+vQUUHeqfQ==} + '@tiptap/extension-highlight@2.7.1': + resolution: {integrity: sha512-oxxamwtXZajJcwpupESWP2rl2YmSKD3bPBjcj/PfYA3LrjM6uNr/bi9EV8T4/jn3gQzlZGe4LqtHxVz0yVOf1A==} peerDependencies: - '@tiptap/core': ^2.6.6 + '@tiptap/core': ^2.7.0 - '@tiptap/extension-history@2.6.6': - resolution: {integrity: sha512-tPTzAmPGqMX5Bd5H8lzRpmsaMvB9DvI5Dy2za/VQuFtxgXmDiFVgHRkRXIuluSkPTuANu84XBOQ0cBijqY8x4w==} + '@tiptap/extension-history@2.7.1': + resolution: {integrity: sha512-cQrnZxqdFykGllQ4icivEw1IwCm9s8cB/nVqJj09Sl8VyR28PuOVJUDBXfD81c3id+R152hoCEgZmzwkBmNrHQ==} peerDependencies: - '@tiptap/core': ^2.6.6 - '@tiptap/pm': ^2.6.6 + '@tiptap/core': ^2.7.0 + '@tiptap/pm': ^2.7.0 - '@tiptap/extension-horizontal-rule@2.6.6': - resolution: {integrity: sha512-cFEfv7euDpuLSe8exY8buwxkreKBAZY9Hn3EetKhPcLQo+ut5Y24chZTxFyf9b+Y0wz3UhOhLTZSz7fTobLqBA==} + '@tiptap/extension-horizontal-rule@2.7.1': + resolution: {integrity: sha512-6MAUp5gahrKk0jIHJOgmcfmuscU/UU+7zyTUqTWPI6lll1Wu2HYQPzQKlFT3L8QAE+XXj7vlY9vMFMleGsw1Eg==} peerDependencies: - '@tiptap/core': ^2.6.6 - '@tiptap/pm': ^2.6.6 + '@tiptap/core': ^2.7.0 + '@tiptap/pm': ^2.7.0 - '@tiptap/extension-image@2.6.6': - resolution: {integrity: sha512-dwJKvoqsr72B4tcTH8hXhfBJzUMs/jXUEE9MnfzYnSXf+CYALLjF8r/IkGYbxce62GP/bMDoj8BgpF8saeHtqA==} + '@tiptap/extension-image@2.7.1': + resolution: {integrity: sha512-H+08hXe5GZl8L1pxNx9xaQQeIzhsh/FReZPqwmMRIrN+KzIij1Hf02WiJSWbHSiYrwA0b7r9LHUOETvYDGoLAQ==} peerDependencies: - '@tiptap/core': ^2.6.6 + '@tiptap/core': ^2.7.0 - '@tiptap/extension-italic@2.6.6': - resolution: {integrity: sha512-t7ZPsXqa8nJZZ/6D0rQyZ/KsvzLaSihC6hBTjUQ77CeDGV9PhDWjIcBW4OrvwraJDBd12ETBeQ2CkULJOgH+lQ==} + '@tiptap/extension-italic@2.7.1': + resolution: {integrity: sha512-xH8X63C3ewEpN53qdV1UsdkeQA6/srOtuwGf0rLhiYI4whg02WQTQ2A66VEuRk1kPTkpu8nmD3bf9OvvlPqE0Q==} peerDependencies: - '@tiptap/core': ^2.6.6 + '@tiptap/core': ^2.7.0 - '@tiptap/extension-link@2.6.6': - resolution: {integrity: sha512-NJSR5Yf/dI3do0+Mr6e6nkbxRQcqbL7NOPxo5Xw8VaKs2Oe8PX+c7hyqN3GZgn6uEbZdbVi1xjAniUokouwpFg==} + '@tiptap/extension-link@2.7.1': + resolution: {integrity: sha512-CoM43k2xDVN+SaDctuFNf/ELox1hCizAXnyt4oEMXpEfOZCQ4BjwKYBior0LxClg6vEvO0n8KzhS9LAAVZHS8Q==} peerDependencies: - '@tiptap/core': ^2.6.6 - '@tiptap/pm': ^2.6.6 + '@tiptap/core': ^2.7.0 + '@tiptap/pm': ^2.7.0 - '@tiptap/extension-list-item@2.6.6': - resolution: {integrity: sha512-k+oEzZu2cgVKqPqOP1HzASOKLpTEV9m7mRVPAbuaaX8mSyvIgD6f+JUx9PvgYv//D918wk98LMoRBFX53tDJ4w==} + '@tiptap/extension-list-item@2.7.1': + resolution: {integrity: sha512-1O94dJeEZRRRKaAHafihXnbwJTxz72G2Fi7siS+xP0aG0EbxcT3yFkzDZw8WyLHcgjW9AAsCdvsCnokIbXD+7A==} peerDependencies: - '@tiptap/core': ^2.6.6 + '@tiptap/core': ^2.7.0 - '@tiptap/extension-ordered-list@2.6.6': - resolution: {integrity: sha512-AJwyfLXIi7iUGnK5twJbwdVVpQyh7fU6OK75h1AwDztzsOcoPcxtffDlZvUOd4ZtwuyhkzYqVkeI0f+abTWZTw==} + '@tiptap/extension-ordered-list@2.7.1': + resolution: {integrity: sha512-OZ2DH2UE8zs5d2XbZzuKCdMkvaLkofAi6y/uf/m6SnaAt47feGXUPXj0i19rEVH1WabebS25vE9fVYXgYj3Arg==} peerDependencies: - '@tiptap/core': ^2.6.6 + '@tiptap/core': ^2.7.0 - '@tiptap/extension-paragraph@2.6.6': - resolution: {integrity: sha512-fD/onCr16UQWx+/xEmuFC2MccZZ7J5u4YaENh8LMnAnBXf78iwU7CAcmuc9rfAEO3qiLoYGXgLKiHlh2ZfD4wA==} + '@tiptap/extension-paragraph@2.7.1': + resolution: {integrity: sha512-qMZvyadhzKCQ5oqpeh9AwJnHgaH8T8NYu+cQUT27EPGSzsvLjVq1CdgMpmh5WRvwVpi7GtelHfokle/nenH14w==} peerDependencies: - '@tiptap/core': ^2.6.6 + '@tiptap/core': ^2.7.0 - '@tiptap/extension-strike@2.6.6': - resolution: {integrity: sha512-Ze8KhGk+wzSJSJRl5fbhTI6AvPu2LmcHYeO3pMEH8u4gV5WTXfmKJVStEIAzkoqvwEQVWzXvy8nDgsFQHiojPg==} + '@tiptap/extension-strike@2.7.1': + resolution: {integrity: sha512-NF9z/7suQ+vg+a6HmbCk5yWPxuue68D1fy/T/fkcoqLHO+gGtp0CvmZfJK5eBDFWrfHsSVzr/YNNZktcW4ApPg==} peerDependencies: - '@tiptap/core': ^2.6.6 + '@tiptap/core': ^2.7.0 - '@tiptap/extension-table-cell@2.6.6': - resolution: {integrity: sha512-XakU9qnlYAf/ux4q7zgiJs2pvkjOl9mVzQw5j55aQHYLiw0gXomEgUbrkn7jhA7N6WP9PlngS3quwIDfyoqLvw==} + '@tiptap/extension-table-cell@2.7.1': + resolution: {integrity: sha512-nEkCnQcdgtmPrOSMGM+g/Qvmy3dkSKxlFvnwgqZOlDTE3eYfNZCWu6pYchuy4wkTmEGnesZtO2ngHipJKnhKHw==} peerDependencies: - '@tiptap/core': ^2.6.6 + '@tiptap/core': ^2.7.0 - '@tiptap/extension-table-header@2.6.6': - resolution: {integrity: sha512-BX2cVTrOZzIQAAWrNjD2Dzk/RpCJWUqgdW2bh27x0nJwKfMWfqLPoplTTuCZ+J9yK7rlNj3jEhKewe/yR1Tudw==} + '@tiptap/extension-table-header@2.7.1': + resolution: {integrity: sha512-KKFMk1kXGpGZDshK17hEMu4HSAfw/Ux31mfIaKfuL9QJJ/J5Fd/Lnatz9SCfVzGnFFa1JO+qelCw+/uRbcsAMg==} peerDependencies: - '@tiptap/core': ^2.6.6 + '@tiptap/core': ^2.7.0 - '@tiptap/extension-table-row@2.6.6': - resolution: {integrity: sha512-VN8MwrEbq2hs/BE3cizbasFMLfh0F9I9MF7cmU8V1j1Zju0ONUIEXOscO4TNFfCB8lf5tTwIp1sr+fxYUUprhg==} + '@tiptap/extension-table-row@2.7.1': + resolution: {integrity: sha512-nUMvMtRCSCV1w5AJVcRE1+/MiK/sdM3ZiR3x+plOo6m24+DRlETg8AN5ierOvWoObb56apl5onk8A75/ZRPlAg==} peerDependencies: - '@tiptap/core': ^2.6.6 + '@tiptap/core': ^2.7.0 - '@tiptap/extension-table@2.6.6': - resolution: {integrity: sha512-Ay/IClmB9R8MjnLobGnA9tI0+7ev4GUwvNf/JA2razI8CeaMCJ7CcAzG6pnIp4d7I6ELWYmAt3vwxoRlsAZcEw==} + '@tiptap/extension-table@2.7.1': + resolution: {integrity: sha512-gyiv9pWWbu7oXTmXdYopESgC9UF34B3Kb1MKcrw2MQdC14bsbxgDHO5S9t+Ttit7ljKskNSGMF1XW2UhyRvzxQ==} peerDependencies: - '@tiptap/core': ^2.6.6 - '@tiptap/pm': ^2.6.6 + '@tiptap/core': ^2.7.0 + '@tiptap/pm': ^2.7.0 - '@tiptap/extension-task-item@2.6.6': - resolution: {integrity: sha512-fvzy8/TN5sm3A2HSokJzHj5ZvcOAsRdqPS6fPOpmf5dQZ+EIAJrlfyxqb9B6055pNXBbuXcMEXdeU44zCU0YRg==} + '@tiptap/extension-task-item@2.7.1': + resolution: {integrity: sha512-/xv0jcait6Sz6hcBEH2eJfIm/rzQzaKjmftRFV/V2ogVbDunLoaaz95hTgOuOrBV+YMaz7Nx+KSxaJrxIbwCzg==} peerDependencies: - '@tiptap/core': ^2.6.6 - '@tiptap/pm': ^2.6.6 + '@tiptap/core': ^2.7.0 + '@tiptap/pm': ^2.7.0 - '@tiptap/extension-task-list@2.6.6': - resolution: {integrity: sha512-0N4xCCJZu0PcKoCRDywQngNNW6qlB26hyVJGDGgW53p/2zk5gdlzAA6/NxElO3iSAXKFm0QOWAg/x8E+ggDu4w==} + '@tiptap/extension-task-list@2.7.1': + resolution: {integrity: sha512-TQv5+TzizVYgl/CDhoxT/EpMsdG4xuYxAZCnPz8q6MGgroUY+B/sgLjqnWhahYaD0B9pUCip1gXEAC8i+aWI7g==} peerDependencies: - '@tiptap/core': ^2.6.6 + '@tiptap/core': ^2.7.0 - '@tiptap/extension-text-align@2.6.6': - resolution: {integrity: sha512-WdyxULEEHfI3hRDHAFOUoeP84h9myabadfjtZrub7/zO2PKKPAZLBN2vWat5PowH8E8GYX8vqKr9vaX+slfh5g==} + '@tiptap/extension-text-align@2.7.1': + resolution: {integrity: sha512-VfaJFTnd2uVjI1jJzJP6Erg2i77AeG1bKtTZOwPwkOhnCZMfr4188bCy74iJrrDf8cpAfbMwPOlpxfkMR2L7Lg==} peerDependencies: - '@tiptap/core': ^2.6.6 + '@tiptap/core': ^2.7.0 - '@tiptap/extension-text-style@2.6.6': - resolution: {integrity: sha512-8fO8m0/QI+rFKgZLP28GG2Nz0zhYsYd76O2Y+HsDTmMypJl/cdiNcVOWWffAwXAfMN43BNX7b1VI1XwGAMgYlg==} + '@tiptap/extension-text-style@2.7.1': + resolution: {integrity: sha512-9Hww/wz+cOa+lenifaWcwRF21ewyVa1YbwAHVvWRDAZiRKo/AEvDVI4+DuHe5ZNBkqUVNA7W7rHTvHdBE1mstA==} peerDependencies: - '@tiptap/core': ^2.6.6 + '@tiptap/core': ^2.7.0 - '@tiptap/extension-text@2.6.6': - resolution: {integrity: sha512-e84uILnRzNzcwK1DVQNpXVmBG1Cq3BJipTOIDl1LHifOok7MBjhI/X+/NR0bd3N2t6gmDTWi63+4GuJ5EeDmsg==} + '@tiptap/extension-text@2.7.1': + resolution: {integrity: sha512-4VsX661judEpjzFokTDe1ZBI/6tJxvPeo2qZ4gFMUOH133sgEtMPwx0KtUi1uDtXjxa3G5w5Frdu8SNTB048sA==} peerDependencies: - '@tiptap/core': ^2.6.6 + '@tiptap/core': ^2.7.0 - '@tiptap/extension-underline@2.6.6': - resolution: {integrity: sha512-3A4HqsDM/AFb2VaeWACpGexjgI257kz0yU4jNV8uyydDR2KhqeinuEnoSoOmx9T3pL006TWfPg4vaQYPO3qvrQ==} + '@tiptap/extension-underline@2.7.1': + resolution: {integrity: sha512-J5LH1DsHNke4f1nnY0x0O3vdGIKgawhhDsVkp6PncCBN+Q/ZQP+q8elaCsLXd4WpqTdkN4LKV7Kf2fALgLoG4g==} peerDependencies: - '@tiptap/core': ^2.6.6 + '@tiptap/core': ^2.7.0 - '@tiptap/pm@2.6.6': - resolution: {integrity: sha512-56FGLPn3fwwUlIbLs+BO21bYfyqP9fKyZQbQyY0zWwA/AG2kOwoXaRn7FOVbjP6CylyWpFJnpRRmgn694QKHEg==} + '@tiptap/pm@2.7.1': + resolution: {integrity: sha512-gG++eBQu9SObWCmxZDv6tkwFHVmbg7phowy0F7Nihq9Um7/oae5Ag9skfiG8GG9eYdw54paEAY/MP+tE3x/smA==} - '@tiptap/react@2.6.6': - resolution: {integrity: sha512-AUmdb/J1O/vCO2b8LL68ctcZr9a3931BwX4fUUZ1kCrCA5lTj2xz0rjeAtpxEdzLnR+Z7q96vB7vf7bPYOUAew==} + '@tiptap/react@2.7.1': + resolution: {integrity: sha512-FlH40q0hGNkSO3uE3hvBYYcVEoWvUpolwB6J76P+WAjUl+sPnw5ARtQ4eYnDtYi+ehnVJPoRh8ifnBMXLV1nDA==} peerDependencies: - '@tiptap/core': ^2.6.6 - '@tiptap/pm': ^2.6.6 + '@tiptap/core': ^2.7.0 + '@tiptap/pm': ^2.7.0 react: ^17.0.0 || ^18.0.0 react-dom: ^17.0.0 || ^18.0.0 - '@tiptap/starter-kit@2.6.6': - resolution: {integrity: sha512-zb9xIg3WjG9AsJoyWrfqx5SL9WH7/HTdkB79jFpWtOF/Kaigo7fHFmhs2FsXtJMJlcdMTO2xeRuCYHt5ozXlhg==} + '@tiptap/starter-kit@2.7.1': + resolution: {integrity: sha512-m6i0o9c2Atsiol768FAfXFgrTniejSBI3vRc0gwn6GU4zzgaJrrMOGUTODbozwctOquCpVs36uIQxwDynqySVw==} '@tootallnate/quickjs-emscripten@0.23.0': resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} @@ -6278,8 +6278,8 @@ packages: prosemirror-tables@1.5.0: resolution: {integrity: sha512-VMx4zlYWm7aBlZ5xtfJHpqa3Xgu3b7srV54fXYnXgsAcIGRqKSrhiK3f89omzzgaAgAtDOV4ImXnLKhVfheVNQ==} - prosemirror-trailing-node@2.0.9: - resolution: {integrity: sha512-YvyIn3/UaLFlFKrlJB6cObvUhmwFNZVhy1Q8OpW/avoTbD/Y7H5EcjK4AZFKhmuS6/N6WkGgt7gWtBWDnmFvHg==} + prosemirror-trailing-node@3.0.0: + resolution: {integrity: sha512-xiun5/3q0w5eRnGYfNlW1uU9W6x5MoFKWwq/0TIRgt09lv7Hcser2QYV8t4muXbEr+Fwo0geYn79Xs4GKywrRQ==} peerDependencies: prosemirror-model: ^1.22.1 prosemirror-state: ^1.4.2 @@ -8542,12 +8542,12 @@ snapshots: dependencies: react: 18.3.1 - '@mantine/tiptap@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tiptap/extension-link@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6))(@tiptap/react@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mantine/tiptap@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tiptap/extension-link@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/pm@2.7.1))(@tiptap/react@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/pm@2.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@mantine/core': 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mantine/hooks': 7.12.2(react@18.3.1) - '@tiptap/extension-link': 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6) - '@tiptap/react': 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@tiptap/extension-link': 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/pm@2.7.1) + '@tiptap/react': 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/pm@2.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -8686,7 +8686,7 @@ snapshots: '@popperjs/core@2.11.8': {} - '@remirror/core-constants@2.0.2': {} + '@remirror/core-constants@3.0.0': {} '@rollup/pluginutils@5.1.0(rollup@4.21.3)': dependencies: @@ -9152,157 +9152,157 @@ snapshots: '@tanstack/virtual-core@3.8.3': {} - '@tiptap/core@2.6.6(@tiptap/pm@2.6.6)': + '@tiptap/core@2.7.1(@tiptap/pm@2.7.1)': dependencies: - '@tiptap/pm': 2.6.6 + '@tiptap/pm': 2.7.1 - '@tiptap/extension-blockquote@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))': + '@tiptap/extension-blockquote@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))': dependencies: - '@tiptap/core': 2.6.6(@tiptap/pm@2.6.6) + '@tiptap/core': 2.7.1(@tiptap/pm@2.7.1) - '@tiptap/extension-bold@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))': + '@tiptap/extension-bold@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))': dependencies: - '@tiptap/core': 2.6.6(@tiptap/pm@2.6.6) + '@tiptap/core': 2.7.1(@tiptap/pm@2.7.1) - '@tiptap/extension-bubble-menu@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6)': + '@tiptap/extension-bubble-menu@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/pm@2.7.1)': dependencies: - '@tiptap/core': 2.6.6(@tiptap/pm@2.6.6) - '@tiptap/pm': 2.6.6 + '@tiptap/core': 2.7.1(@tiptap/pm@2.7.1) + '@tiptap/pm': 2.7.1 tippy.js: 6.3.7 - '@tiptap/extension-bullet-list@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))': + '@tiptap/extension-bullet-list@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))': dependencies: - '@tiptap/core': 2.6.6(@tiptap/pm@2.6.6) + '@tiptap/core': 2.7.1(@tiptap/pm@2.7.1) - '@tiptap/extension-code-block@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6)': + '@tiptap/extension-code-block@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/pm@2.7.1)': dependencies: - '@tiptap/core': 2.6.6(@tiptap/pm@2.6.6) - '@tiptap/pm': 2.6.6 + '@tiptap/core': 2.7.1(@tiptap/pm@2.7.1) + '@tiptap/pm': 2.7.1 - '@tiptap/extension-code@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))': + '@tiptap/extension-code@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))': dependencies: - '@tiptap/core': 2.6.6(@tiptap/pm@2.6.6) + '@tiptap/core': 2.7.1(@tiptap/pm@2.7.1) - '@tiptap/extension-color@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/extension-text-style@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6)))': + '@tiptap/extension-color@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/extension-text-style@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1)))': dependencies: - '@tiptap/core': 2.6.6(@tiptap/pm@2.6.6) - '@tiptap/extension-text-style': 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6)) + '@tiptap/core': 2.7.1(@tiptap/pm@2.7.1) + '@tiptap/extension-text-style': 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1)) - '@tiptap/extension-document@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))': + '@tiptap/extension-document@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))': dependencies: - '@tiptap/core': 2.6.6(@tiptap/pm@2.6.6) + '@tiptap/core': 2.7.1(@tiptap/pm@2.7.1) - '@tiptap/extension-dropcursor@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6)': + '@tiptap/extension-dropcursor@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/pm@2.7.1)': dependencies: - '@tiptap/core': 2.6.6(@tiptap/pm@2.6.6) - '@tiptap/pm': 2.6.6 + '@tiptap/core': 2.7.1(@tiptap/pm@2.7.1) + '@tiptap/pm': 2.7.1 - '@tiptap/extension-floating-menu@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6)': + '@tiptap/extension-floating-menu@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/pm@2.7.1)': dependencies: - '@tiptap/core': 2.6.6(@tiptap/pm@2.6.6) - '@tiptap/pm': 2.6.6 + '@tiptap/core': 2.7.1(@tiptap/pm@2.7.1) + '@tiptap/pm': 2.7.1 tippy.js: 6.3.7 - '@tiptap/extension-gapcursor@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6)': + '@tiptap/extension-gapcursor@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/pm@2.7.1)': dependencies: - '@tiptap/core': 2.6.6(@tiptap/pm@2.6.6) - '@tiptap/pm': 2.6.6 + '@tiptap/core': 2.7.1(@tiptap/pm@2.7.1) + '@tiptap/pm': 2.7.1 - '@tiptap/extension-hard-break@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))': + '@tiptap/extension-hard-break@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))': dependencies: - '@tiptap/core': 2.6.6(@tiptap/pm@2.6.6) + '@tiptap/core': 2.7.1(@tiptap/pm@2.7.1) - '@tiptap/extension-heading@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))': + '@tiptap/extension-heading@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))': dependencies: - '@tiptap/core': 2.6.6(@tiptap/pm@2.6.6) + '@tiptap/core': 2.7.1(@tiptap/pm@2.7.1) - '@tiptap/extension-highlight@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))': + '@tiptap/extension-highlight@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))': dependencies: - '@tiptap/core': 2.6.6(@tiptap/pm@2.6.6) + '@tiptap/core': 2.7.1(@tiptap/pm@2.7.1) - '@tiptap/extension-history@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6)': + '@tiptap/extension-history@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/pm@2.7.1)': dependencies: - '@tiptap/core': 2.6.6(@tiptap/pm@2.6.6) - '@tiptap/pm': 2.6.6 + '@tiptap/core': 2.7.1(@tiptap/pm@2.7.1) + '@tiptap/pm': 2.7.1 - '@tiptap/extension-horizontal-rule@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6)': + '@tiptap/extension-horizontal-rule@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/pm@2.7.1)': dependencies: - '@tiptap/core': 2.6.6(@tiptap/pm@2.6.6) - '@tiptap/pm': 2.6.6 + '@tiptap/core': 2.7.1(@tiptap/pm@2.7.1) + '@tiptap/pm': 2.7.1 - '@tiptap/extension-image@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))': + '@tiptap/extension-image@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))': dependencies: - '@tiptap/core': 2.6.6(@tiptap/pm@2.6.6) + '@tiptap/core': 2.7.1(@tiptap/pm@2.7.1) - '@tiptap/extension-italic@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))': + '@tiptap/extension-italic@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))': dependencies: - '@tiptap/core': 2.6.6(@tiptap/pm@2.6.6) + '@tiptap/core': 2.7.1(@tiptap/pm@2.7.1) - '@tiptap/extension-link@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6)': + '@tiptap/extension-link@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/pm@2.7.1)': dependencies: - '@tiptap/core': 2.6.6(@tiptap/pm@2.6.6) - '@tiptap/pm': 2.6.6 + '@tiptap/core': 2.7.1(@tiptap/pm@2.7.1) + '@tiptap/pm': 2.7.1 linkifyjs: 4.1.3 - '@tiptap/extension-list-item@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))': + '@tiptap/extension-list-item@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))': dependencies: - '@tiptap/core': 2.6.6(@tiptap/pm@2.6.6) + '@tiptap/core': 2.7.1(@tiptap/pm@2.7.1) - '@tiptap/extension-ordered-list@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))': + '@tiptap/extension-ordered-list@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))': dependencies: - '@tiptap/core': 2.6.6(@tiptap/pm@2.6.6) + '@tiptap/core': 2.7.1(@tiptap/pm@2.7.1) - '@tiptap/extension-paragraph@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))': + '@tiptap/extension-paragraph@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))': dependencies: - '@tiptap/core': 2.6.6(@tiptap/pm@2.6.6) + '@tiptap/core': 2.7.1(@tiptap/pm@2.7.1) - '@tiptap/extension-strike@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))': + '@tiptap/extension-strike@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))': dependencies: - '@tiptap/core': 2.6.6(@tiptap/pm@2.6.6) + '@tiptap/core': 2.7.1(@tiptap/pm@2.7.1) - '@tiptap/extension-table-cell@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))': + '@tiptap/extension-table-cell@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))': dependencies: - '@tiptap/core': 2.6.6(@tiptap/pm@2.6.6) + '@tiptap/core': 2.7.1(@tiptap/pm@2.7.1) - '@tiptap/extension-table-header@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))': + '@tiptap/extension-table-header@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))': dependencies: - '@tiptap/core': 2.6.6(@tiptap/pm@2.6.6) + '@tiptap/core': 2.7.1(@tiptap/pm@2.7.1) - '@tiptap/extension-table-row@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))': + '@tiptap/extension-table-row@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))': dependencies: - '@tiptap/core': 2.6.6(@tiptap/pm@2.6.6) + '@tiptap/core': 2.7.1(@tiptap/pm@2.7.1) - '@tiptap/extension-table@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6)': + '@tiptap/extension-table@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/pm@2.7.1)': dependencies: - '@tiptap/core': 2.6.6(@tiptap/pm@2.6.6) - '@tiptap/pm': 2.6.6 + '@tiptap/core': 2.7.1(@tiptap/pm@2.7.1) + '@tiptap/pm': 2.7.1 - '@tiptap/extension-task-item@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6)': + '@tiptap/extension-task-item@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/pm@2.7.1)': dependencies: - '@tiptap/core': 2.6.6(@tiptap/pm@2.6.6) - '@tiptap/pm': 2.6.6 + '@tiptap/core': 2.7.1(@tiptap/pm@2.7.1) + '@tiptap/pm': 2.7.1 - '@tiptap/extension-task-list@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))': + '@tiptap/extension-task-list@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))': dependencies: - '@tiptap/core': 2.6.6(@tiptap/pm@2.6.6) + '@tiptap/core': 2.7.1(@tiptap/pm@2.7.1) - '@tiptap/extension-text-align@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))': + '@tiptap/extension-text-align@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))': dependencies: - '@tiptap/core': 2.6.6(@tiptap/pm@2.6.6) + '@tiptap/core': 2.7.1(@tiptap/pm@2.7.1) - '@tiptap/extension-text-style@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))': + '@tiptap/extension-text-style@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))': dependencies: - '@tiptap/core': 2.6.6(@tiptap/pm@2.6.6) + '@tiptap/core': 2.7.1(@tiptap/pm@2.7.1) - '@tiptap/extension-text@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))': + '@tiptap/extension-text@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))': dependencies: - '@tiptap/core': 2.6.6(@tiptap/pm@2.6.6) + '@tiptap/core': 2.7.1(@tiptap/pm@2.7.1) - '@tiptap/extension-underline@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))': + '@tiptap/extension-underline@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))': dependencies: - '@tiptap/core': 2.6.6(@tiptap/pm@2.6.6) + '@tiptap/core': 2.7.1(@tiptap/pm@2.7.1) - '@tiptap/pm@2.6.6': + '@tiptap/pm@2.7.1': dependencies: prosemirror-changeset: 2.2.1 prosemirror-collab: 1.3.1 @@ -9319,43 +9319,44 @@ snapshots: prosemirror-schema-list: 1.4.1 prosemirror-state: 1.4.3 prosemirror-tables: 1.5.0 - prosemirror-trailing-node: 2.0.9(prosemirror-model@1.22.3)(prosemirror-state@1.4.3)(prosemirror-view@1.34.2) + prosemirror-trailing-node: 3.0.0(prosemirror-model@1.22.3)(prosemirror-state@1.4.3)(prosemirror-view@1.34.2) prosemirror-transform: 1.10.0 prosemirror-view: 1.34.2 - '@tiptap/react@2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@tiptap/react@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/pm@2.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@tiptap/core': 2.6.6(@tiptap/pm@2.6.6) - '@tiptap/extension-bubble-menu': 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6) - '@tiptap/extension-floating-menu': 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6) - '@tiptap/pm': 2.6.6 + '@tiptap/core': 2.7.1(@tiptap/pm@2.7.1) + '@tiptap/extension-bubble-menu': 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/pm@2.7.1) + '@tiptap/extension-floating-menu': 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/pm@2.7.1) + '@tiptap/pm': 2.7.1 '@types/use-sync-external-store': 0.0.6 + fast-deep-equal: 3.1.3 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) use-sync-external-store: 1.2.2(react@18.3.1) - '@tiptap/starter-kit@2.6.6': - dependencies: - '@tiptap/core': 2.6.6(@tiptap/pm@2.6.6) - '@tiptap/extension-blockquote': 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6)) - '@tiptap/extension-bold': 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6)) - '@tiptap/extension-bullet-list': 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6)) - '@tiptap/extension-code': 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6)) - '@tiptap/extension-code-block': 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6) - '@tiptap/extension-document': 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6)) - '@tiptap/extension-dropcursor': 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6) - '@tiptap/extension-gapcursor': 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6) - '@tiptap/extension-hard-break': 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6)) - '@tiptap/extension-heading': 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6)) - '@tiptap/extension-history': 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6) - '@tiptap/extension-horizontal-rule': 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6))(@tiptap/pm@2.6.6) - '@tiptap/extension-italic': 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6)) - '@tiptap/extension-list-item': 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6)) - '@tiptap/extension-ordered-list': 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6)) - '@tiptap/extension-paragraph': 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6)) - '@tiptap/extension-strike': 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6)) - '@tiptap/extension-text': 2.6.6(@tiptap/core@2.6.6(@tiptap/pm@2.6.6)) - '@tiptap/pm': 2.6.6 + '@tiptap/starter-kit@2.7.1': + dependencies: + '@tiptap/core': 2.7.1(@tiptap/pm@2.7.1) + '@tiptap/extension-blockquote': 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1)) + '@tiptap/extension-bold': 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1)) + '@tiptap/extension-bullet-list': 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1)) + '@tiptap/extension-code': 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1)) + '@tiptap/extension-code-block': 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/pm@2.7.1) + '@tiptap/extension-document': 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1)) + '@tiptap/extension-dropcursor': 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/pm@2.7.1) + '@tiptap/extension-gapcursor': 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/pm@2.7.1) + '@tiptap/extension-hard-break': 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1)) + '@tiptap/extension-heading': 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1)) + '@tiptap/extension-history': 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/pm@2.7.1) + '@tiptap/extension-horizontal-rule': 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/pm@2.7.1) + '@tiptap/extension-italic': 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1)) + '@tiptap/extension-list-item': 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1)) + '@tiptap/extension-ordered-list': 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1)) + '@tiptap/extension-paragraph': 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1)) + '@tiptap/extension-strike': 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1)) + '@tiptap/extension-text': 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1)) + '@tiptap/pm': 2.7.1 '@tootallnate/quickjs-emscripten@0.23.0': {} @@ -12936,9 +12937,9 @@ snapshots: prosemirror-transform: 1.10.0 prosemirror-view: 1.34.2 - prosemirror-trailing-node@2.0.9(prosemirror-model@1.22.3)(prosemirror-state@1.4.3)(prosemirror-view@1.34.2): + prosemirror-trailing-node@3.0.0(prosemirror-model@1.22.3)(prosemirror-state@1.4.3)(prosemirror-view@1.34.2): dependencies: - '@remirror/core-constants': 2.0.2 + '@remirror/core-constants': 3.0.0 escape-string-regexp: 4.0.0 prosemirror-model: 1.22.3 prosemirror-state: 1.4.3 From 6f50f37462fe09618f2c93d15e346cecf98267e5 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Tue, 17 Sep 2024 15:29:18 +0000 Subject: [PATCH 19/33] chore(deps): update dependency @types/react to ^18.3.7 (#1140) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- apps/nextjs/package.json | 2 +- pnpm-lock.yaml | 144 +++++++++++++++++++-------------------- 2 files changed, 73 insertions(+), 73 deletions(-) diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index c9b8b1853..c972d3937 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -81,7 +81,7 @@ "@types/chroma-js": "2.4.4", "@types/node": "^20.16.5", "@types/prismjs": "^1.26.4", - "@types/react": "^18.3.6", + "@types/react": "^18.3.7", "@types/react-dom": "^18.3.0", "@types/swagger-ui-react": "^4.18.3", "concurrently": "^9.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7d854ec5d..0a39ff76f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -123,16 +123,16 @@ importers: version: 7.12.2(chroma-js@3.1.1) '@mantine/core': specifier: ^7.12.2 - version: 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mantine/hooks': specifier: ^7.12.2 version: 7.12.2(react@18.3.1) '@mantine/modals': specifier: ^7.12.2 - version: 7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mantine/tiptap': specifier: ^7.12.2 - version: 7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tiptap/extension-link@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/pm@2.7.1))(@tiptap/react@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/pm@2.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tiptap/extension-link@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/pm@2.7.1))(@tiptap/react@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/pm@2.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@million/lint': specifier: 1.0.0-rc.84 version: 1.0.0-rc.84(rollup@4.21.3)(webpack-sources@3.2.3) @@ -192,10 +192,10 @@ importers: version: 11.0.0 jotai: specifier: ^2.9.3 - version: 2.9.3(@types/react@18.3.6)(react@18.3.1) + version: 2.9.3(@types/react@18.3.7)(react@18.3.1) mantine-react-table: specifier: 2.0.0-beta.6 - version: 2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.17.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.17.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next: specifier: ^14.2.11 version: 14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) @@ -225,7 +225,7 @@ importers: version: 2.2.1 swagger-ui-react: specifier: ^5.17.14 - version: 5.17.14(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 5.17.14(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) use-deep-compare-effect: specifier: ^1.8.1 version: 1.8.1(react@18.3.1) @@ -249,8 +249,8 @@ importers: specifier: ^1.26.4 version: 1.26.4 '@types/react': - specifier: ^18.3.6 - version: 18.3.6 + specifier: ^18.3.7 + version: 18.3.7 '@types/react-dom': specifier: ^18.3.0 version: 18.3.0 @@ -852,7 +852,7 @@ importers: version: 0.24.2 drizzle-orm: specifier: ^0.33.0 - version: 0.33.0(@types/better-sqlite3@7.6.11)(@types/react@18.3.6)(better-sqlite3@11.3.0)(mysql2@3.11.3)(react@18.3.1) + version: 0.33.0(@types/better-sqlite3@7.6.11)(@types/react@18.3.7)(better-sqlite3@11.3.0)(mysql2@3.11.3)(react@18.3.1) mysql2: specifier: 3.11.3 version: 3.11.3 @@ -1044,7 +1044,7 @@ importers: version: link:../ui '@mantine/core': specifier: ^7.12.2 - version: 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mantine/hooks': specifier: ^7.12.2 version: 7.12.2(react@18.3.1) @@ -1099,7 +1099,7 @@ importers: version: link:../validation '@mantine/core': specifier: ^7.12.2 - version: 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tabler/icons-react': specifier: ^3.17.0 version: 3.17.0(react@18.3.1) @@ -1136,7 +1136,7 @@ importers: version: link:../ui '@mantine/notifications': specifier: ^7.12.2 - version: 7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tabler/icons-react': specifier: ^3.17.0 version: 3.17.0(react@18.3.1) @@ -1309,19 +1309,19 @@ importers: version: link:../ui '@mantine/core': specifier: ^7.12.2 - version: 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mantine/hooks': specifier: ^7.12.2 version: 7.12.2(react@18.3.1) '@mantine/spotlight': specifier: ^7.12.2 - version: 7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tabler/icons-react': specifier: ^3.17.0 version: 3.17.0(react@18.3.1) jotai: specifier: ^2.9.3 - version: 2.9.3(@types/react@18.3.6)(react@18.3.1) + version: 2.9.3(@types/react@18.3.7)(react@18.3.1) next: specifier: ^14.2.11 version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) @@ -1355,7 +1355,7 @@ importers: version: 1.11.13 mantine-react-table: specifier: 2.0.0-beta.6 - version: 2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.17.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.17.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-international: specifier: ^1.2.4 version: 1.2.4 @@ -1392,10 +1392,10 @@ importers: version: link:../validation '@mantine/core': specifier: ^7.12.2 - version: 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mantine/dates': specifier: ^7.12.2 - version: 7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mantine/hooks': specifier: ^7.12.2 version: 7.12.2(react@18.3.1) @@ -1404,7 +1404,7 @@ importers: version: 3.17.0(react@18.3.1) mantine-react-table: specifier: 2.0.0-beta.6 - version: 2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.17.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.17.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next: specifier: ^14.2.11 version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) @@ -1514,7 +1514,7 @@ importers: version: link:../validation '@mantine/core': specifier: ^7.12.2 - version: 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mantine/hooks': specifier: ^7.12.2 version: 7.12.2(react@18.3.1) @@ -1574,7 +1574,7 @@ importers: version: 1.11.13 mantine-react-table: specifier: 2.0.0-beta.6 - version: 2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.17.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.17.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next: specifier: ^14.2.11 version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) @@ -3351,8 +3351,8 @@ packages: '@types/react-dom@18.3.0': resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} - '@types/react@18.3.6': - resolution: {integrity: sha512-CnGaRYNu2iZlkGXGrOYtdg5mLK8neySj0woZ4e2wF/eli2E6Sazmq5X+Nrj6OBrrFVQfJWTUFeqAzoRhWQXYvg==} + '@types/react@18.3.7': + resolution: {integrity: sha512-KUnDCJF5+AiZd8owLIeVHqmW9yM4sqmDVf2JRJiBMFkGvkoZ4/WyV2lL4zVsoinmRS/W3FeEdZLEWFRofnT2FQ==} '@types/send@0.17.4': resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} @@ -8481,7 +8481,7 @@ snapshots: dependencies: chroma-js: 3.1.1 - '@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@floating-ui/react': 0.26.24(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mantine/hooks': 7.12.2(react@18.3.1) @@ -8489,15 +8489,15 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-number-format: 5.4.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react-remove-scroll: 2.6.0(@types/react@18.3.6)(react@18.3.1) - react-textarea-autosize: 8.5.3(@types/react@18.3.6)(react@18.3.1) + react-remove-scroll: 2.6.0(@types/react@18.3.7)(react@18.3.1) + react-textarea-autosize: 8.5.3(@types/react@18.3.7)(react@18.3.1) type-fest: 4.26.1 transitivePeerDependencies: - '@types/react' - '@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@mantine/core': 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mantine/core': 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mantine/hooks': 7.12.2(react@18.3.1) clsx: 2.1.1 dayjs: 1.11.13 @@ -8514,25 +8514,25 @@ snapshots: dependencies: react: 18.3.1 - '@mantine/modals@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mantine/modals@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@mantine/core': 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mantine/core': 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mantine/hooks': 7.12.2(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@mantine/notifications@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mantine/notifications@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@mantine/core': 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mantine/core': 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mantine/hooks': 7.12.2(react@18.3.1) '@mantine/store': 7.12.2(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@mantine/spotlight@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mantine/spotlight@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@mantine/core': 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mantine/core': 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mantine/hooks': 7.12.2(react@18.3.1) '@mantine/store': 7.12.2(react@18.3.1) react: 18.3.1 @@ -8542,9 +8542,9 @@ snapshots: dependencies: react: 18.3.1 - '@mantine/tiptap@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tiptap/extension-link@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/pm@2.7.1))(@tiptap/react@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/pm@2.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mantine/tiptap@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tiptap/extension-link@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/pm@2.7.1))(@tiptap/react@2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/pm@2.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@mantine/core': 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mantine/core': 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mantine/hooks': 7.12.2(react@18.3.1) '@tiptap/extension-link': 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/pm@2.7.1) '@tiptap/react': 2.7.1(@tiptap/core@2.7.1(@tiptap/pm@2.7.1))(@tiptap/pm@2.7.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -9564,9 +9564,9 @@ snapshots: '@types/react-dom@18.3.0': dependencies: - '@types/react': 18.3.6 + '@types/react': 18.3.7 - '@types/react@18.3.6': + '@types/react@18.3.7': dependencies: '@types/prop-types': 15.7.12 csstype: 3.1.3 @@ -9597,7 +9597,7 @@ snapshots: '@types/swagger-ui-react@4.18.3': dependencies: - '@types/react': 18.3.6 + '@types/react': 18.3.7 '@types/through@0.0.33': dependencies: @@ -10796,10 +10796,10 @@ snapshots: transitivePeerDependencies: - supports-color - drizzle-orm@0.33.0(@types/better-sqlite3@7.6.11)(@types/react@18.3.6)(better-sqlite3@11.3.0)(mysql2@3.11.3)(react@18.3.1): + drizzle-orm@0.33.0(@types/better-sqlite3@7.6.11)(@types/react@18.3.7)(better-sqlite3@11.3.0)(mysql2@3.11.3)(react@18.3.1): optionalDependencies: '@types/better-sqlite3': 7.6.11 - '@types/react': 18.3.6 + '@types/react': 18.3.7 better-sqlite3: 11.3.0 mysql2: 3.11.3 react: 18.3.1 @@ -11990,9 +11990,9 @@ snapshots: jose@5.9.2: {} - jotai@2.9.3(@types/react@18.3.6)(react@18.3.1): + jotai@2.9.3(@types/react@18.3.7)(react@18.3.1): optionalDependencies: - '@types/react': 18.3.6 + '@types/react': 18.3.7 react: 18.3.1 js-file-download@0.4.12: {} @@ -12209,10 +12209,10 @@ snapshots: make-error@1.3.6: {} - mantine-react-table@2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.17.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + mantine-react-table@2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.17.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@mantine/core': 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@mantine/dates': 7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mantine/core': 7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mantine/dates': 7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mantine/hooks': 7.12.2(react@18.3.1) '@tabler/icons-react': 3.17.0(react@18.3.1) '@tanstack/match-sorter-utils': 8.15.1 @@ -13073,49 +13073,49 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-redux@9.1.2(@types/react@18.3.6)(react@18.3.1)(redux@5.0.1): + react-redux@9.1.2(@types/react@18.3.7)(react@18.3.1)(redux@5.0.1): dependencies: '@types/use-sync-external-store': 0.0.3 react: 18.3.1 use-sync-external-store: 1.2.2(react@18.3.1) optionalDependencies: - '@types/react': 18.3.6 + '@types/react': 18.3.7 redux: 5.0.1 react-refresh@0.14.2: {} - react-remove-scroll-bar@2.3.6(@types/react@18.3.6)(react@18.3.1): + react-remove-scroll-bar@2.3.6(@types/react@18.3.7)(react@18.3.1): dependencies: react: 18.3.1 - react-style-singleton: 2.2.1(@types/react@18.3.6)(react@18.3.1) + react-style-singleton: 2.2.1(@types/react@18.3.7)(react@18.3.1) tslib: 2.7.0 optionalDependencies: - '@types/react': 18.3.6 + '@types/react': 18.3.7 - react-remove-scroll@2.6.0(@types/react@18.3.6)(react@18.3.1): + react-remove-scroll@2.6.0(@types/react@18.3.7)(react@18.3.1): dependencies: react: 18.3.1 - react-remove-scroll-bar: 2.3.6(@types/react@18.3.6)(react@18.3.1) - react-style-singleton: 2.2.1(@types/react@18.3.6)(react@18.3.1) + react-remove-scroll-bar: 2.3.6(@types/react@18.3.7)(react@18.3.1) + react-style-singleton: 2.2.1(@types/react@18.3.7)(react@18.3.1) tslib: 2.7.0 - use-callback-ref: 1.3.2(@types/react@18.3.6)(react@18.3.1) - use-sidecar: 1.1.2(@types/react@18.3.6)(react@18.3.1) + use-callback-ref: 1.3.2(@types/react@18.3.7)(react@18.3.1) + use-sidecar: 1.1.2(@types/react@18.3.7)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.6 + '@types/react': 18.3.7 react-simple-code-editor@0.14.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-style-singleton@2.2.1(@types/react@18.3.6)(react@18.3.1): + react-style-singleton@2.2.1(@types/react@18.3.7)(react@18.3.1): dependencies: get-nonce: 1.0.1 invariant: 2.2.4 react: 18.3.1 tslib: 2.7.0 optionalDependencies: - '@types/react': 18.3.6 + '@types/react': 18.3.7 react-syntax-highlighter@15.5.0(react@18.3.1): dependencies: @@ -13126,12 +13126,12 @@ snapshots: react: 18.3.1 refractor: 3.6.0 - react-textarea-autosize@8.5.3(@types/react@18.3.6)(react@18.3.1): + react-textarea-autosize@8.5.3(@types/react@18.3.7)(react@18.3.1): dependencies: '@babel/runtime': 7.25.6 react: 18.3.1 use-composed-ref: 1.3.0(react@18.3.1) - use-latest: 1.2.1(@types/react@18.3.6)(react@18.3.1) + use-latest: 1.2.1(@types/react@18.3.7)(react@18.3.1) transitivePeerDependencies: - '@types/react' @@ -13721,7 +13721,7 @@ snapshots: transitivePeerDependencies: - debug - swagger-ui-react@5.17.14(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + swagger-ui-react@5.17.14(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@babel/runtime-corejs3': 7.25.6 '@braintree/sanitize-url': 7.0.2 @@ -13745,7 +13745,7 @@ snapshots: react-immutable-proptypes: 2.2.0(immutable@3.8.2) react-immutable-pure-component: 2.2.2(immutable@3.8.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-inspector: 6.0.2(react@18.3.1) - react-redux: 9.1.2(@types/react@18.3.6)(react@18.3.1)(redux@5.0.1) + react-redux: 9.1.2(@types/react@18.3.7)(react@18.3.1)(redux@5.0.1) react-syntax-highlighter: 15.5.0(react@18.3.1) redux: 5.0.1 redux-immutable: 4.0.0(immutable@3.8.2) @@ -14215,12 +14215,12 @@ snapshots: url-toolkit@2.2.5: {} - use-callback-ref@1.3.2(@types/react@18.3.6)(react@18.3.1): + use-callback-ref@1.3.2(@types/react@18.3.7)(react@18.3.1): dependencies: react: 18.3.1 tslib: 2.7.0 optionalDependencies: - '@types/react': 18.3.6 + '@types/react': 18.3.7 use-composed-ref@1.3.0(react@18.3.1): dependencies: @@ -14232,26 +14232,26 @@ snapshots: dequal: 2.0.3 react: 18.3.1 - use-isomorphic-layout-effect@1.1.2(@types/react@18.3.6)(react@18.3.1): + use-isomorphic-layout-effect@1.1.2(@types/react@18.3.7)(react@18.3.1): dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.6 + '@types/react': 18.3.7 - use-latest@1.2.1(@types/react@18.3.6)(react@18.3.1): + use-latest@1.2.1(@types/react@18.3.7)(react@18.3.1): dependencies: react: 18.3.1 - use-isomorphic-layout-effect: 1.1.2(@types/react@18.3.6)(react@18.3.1) + use-isomorphic-layout-effect: 1.1.2(@types/react@18.3.7)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.6 + '@types/react': 18.3.7 - use-sidecar@1.1.2(@types/react@18.3.6)(react@18.3.1): + use-sidecar@1.1.2(@types/react@18.3.7)(react@18.3.1): dependencies: detect-node-es: 1.1.0 react: 18.3.1 tslib: 2.7.0 optionalDependencies: - '@types/react': 18.3.6 + '@types/react': 18.3.7 use-sync-external-store@1.2.2(react@18.3.1): dependencies: From 003cc5160c68d73e3cfbc3e933099a9275782b5b Mon Sep 17 00:00:00 2001 From: Meier Lukas Date: Tue, 17 Sep 2024 19:27:47 +0200 Subject: [PATCH 20/33] fix: mysql migration not working (#1138) * fix: mysql migration not working * test: add system integration test for mysql migration * fix: format issues * fix: deepsource issues * chore: address bad name for mysql migration test --- .../mysql/0004_noisy_giant_girl.sql | 6 +-- .../migrations/mysql/0006_young_micromax.sql | 2 +- .../migrations/mysql/meta/0004_snapshot.json | 8 ++-- .../migrations/mysql/meta/0005_snapshot.json | 8 ++-- .../migrations/mysql/meta/0006_snapshot.json | 10 ++--- .../migrations/mysql/meta/0007_snapshot.json | 10 ++--- .../migrations/sqlite/meta/0004_snapshot.json | 4 +- .../migrations/sqlite/meta/0005_snapshot.json | 4 +- .../migrations/sqlite/meta/0006_snapshot.json | 4 +- .../migrations/sqlite/meta/0007_snapshot.json | 4 +- packages/db/package.json | 1 + packages/db/schema/mysql.ts | 7 ++-- packages/db/test/mysql-migration.spec.ts | 38 +++++++++++++++++++ pnpm-lock.yaml | 12 ++++++ 14 files changed, 85 insertions(+), 33 deletions(-) create mode 100644 packages/db/test/mysql-migration.spec.ts diff --git a/packages/db/migrations/mysql/0004_noisy_giant_girl.sql b/packages/db/migrations/mysql/0004_noisy_giant_girl.sql index dd1732222..d6c3d4d36 100644 --- a/packages/db/migrations/mysql/0004_noisy_giant_girl.sql +++ b/packages/db/migrations/mysql/0004_noisy_giant_girl.sql @@ -1,14 +1,14 @@ CREATE TABLE `integrationGroupPermissions` ( `integration_id` varchar(64) NOT NULL, `group_id` varchar(64) NOT NULL, - `permission` text NOT NULL, - CONSTRAINT `integrationGroupPermissions_integration_id_group_id_permission_pk` PRIMARY KEY(`integration_id`,`group_id`,`permission`) + `permission` varchar(128) NOT NULL, + CONSTRAINT `integration_group_permission__pk` PRIMARY KEY(`integration_id`,`group_id`,`permission`) ); --> statement-breakpoint CREATE TABLE `integrationUserPermission` ( `integration_id` varchar(64) NOT NULL, `user_id` varchar(64) NOT NULL, - `permission` text NOT NULL, + `permission` varchar(128) NOT NULL, CONSTRAINT `integrationUserPermission_integration_id_user_id_permission_pk` PRIMARY KEY(`integration_id`,`user_id`,`permission`) ); --> statement-breakpoint diff --git a/packages/db/migrations/mysql/0006_young_micromax.sql b/packages/db/migrations/mysql/0006_young_micromax.sql index 9cf760f08..46550bf1a 100644 --- a/packages/db/migrations/mysql/0006_young_micromax.sql +++ b/packages/db/migrations/mysql/0006_young_micromax.sql @@ -2,5 +2,5 @@ ALTER TABLE `section` RENAME COLUMN `position` TO `y_offset`;--> statement-break ALTER TABLE `section` ADD `x_offset` int NOT NULL;--> statement-breakpoint ALTER TABLE `section` ADD `width` int;--> statement-breakpoint ALTER TABLE `section` ADD `height` int;--> statement-breakpoint -ALTER TABLE `section` ADD `parent_section_id` text;--> statement-breakpoint +ALTER TABLE `section` ADD `parent_section_id` varchar(64);--> statement-breakpoint ALTER TABLE `section` ADD CONSTRAINT `section_parent_section_id_section_id_fk` FOREIGN KEY (`parent_section_id`) REFERENCES `section`(`id`) ON DELETE cascade ON UPDATE no action; \ No newline at end of file diff --git a/packages/db/migrations/mysql/meta/0004_snapshot.json b/packages/db/migrations/mysql/meta/0004_snapshot.json index 5f8bfaecf..24a1de0cc 100644 --- a/packages/db/migrations/mysql/meta/0004_snapshot.json +++ b/packages/db/migrations/mysql/meta/0004_snapshot.json @@ -655,7 +655,7 @@ }, "permission": { "name": "permission", - "type": "text", + "type": "varchar(128)", "primaryKey": false, "notNull": true, "autoincrement": false @@ -683,8 +683,8 @@ } }, "compositePrimaryKeys": { - "integrationGroupPermissions_integration_id_group_id_permission_pk": { - "name": "integrationGroupPermissions_integration_id_group_id_permission_pk", + "integration_group_permission__pk": { + "name": "integration_group_permission__pk", "columns": ["integration_id", "group_id", "permission"] } }, @@ -819,7 +819,7 @@ }, "permission": { "name": "permission", - "type": "text", + "type": "varchar(128)", "primaryKey": false, "notNull": true, "autoincrement": false diff --git a/packages/db/migrations/mysql/meta/0005_snapshot.json b/packages/db/migrations/mysql/meta/0005_snapshot.json index 123e68089..59a34b677 100644 --- a/packages/db/migrations/mysql/meta/0005_snapshot.json +++ b/packages/db/migrations/mysql/meta/0005_snapshot.json @@ -655,7 +655,7 @@ }, "permission": { "name": "permission", - "type": "text", + "type": "varchar(128)", "primaryKey": false, "notNull": true, "autoincrement": false @@ -683,8 +683,8 @@ } }, "compositePrimaryKeys": { - "integrationGroupPermissions_integration_id_group_id_permission_pk": { - "name": "integrationGroupPermissions_integration_id_group_id_permission_pk", + "integration_group_permission__pk": { + "name": "integration_group_permission__pk", "columns": ["integration_id", "group_id", "permission"] } }, @@ -819,7 +819,7 @@ }, "permission": { "name": "permission", - "type": "text", + "type": "varchar(128)", "primaryKey": false, "notNull": true, "autoincrement": false diff --git a/packages/db/migrations/mysql/meta/0006_snapshot.json b/packages/db/migrations/mysql/meta/0006_snapshot.json index 784cb4ef2..2e1dd71a4 100644 --- a/packages/db/migrations/mysql/meta/0006_snapshot.json +++ b/packages/db/migrations/mysql/meta/0006_snapshot.json @@ -655,7 +655,7 @@ }, "permission": { "name": "permission", - "type": "text", + "type": "varchar(128)", "primaryKey": false, "notNull": true, "autoincrement": false @@ -683,8 +683,8 @@ } }, "compositePrimaryKeys": { - "integrationGroupPermissions_integration_id_group_id_permission_pk": { - "name": "integrationGroupPermissions_integration_id_group_id_permission_pk", + "integration_group_permission__pk": { + "name": "integration_group_permission__pk", "columns": ["integration_id", "group_id", "permission"] } }, @@ -819,7 +819,7 @@ }, "permission": { "name": "permission", - "type": "text", + "type": "varchar(128)", "primaryKey": false, "notNull": true, "autoincrement": false @@ -1109,7 +1109,7 @@ }, "parent_section_id": { "name": "parent_section_id", - "type": "text", + "type": "varchar(64)", "primaryKey": false, "notNull": false, "autoincrement": false diff --git a/packages/db/migrations/mysql/meta/0007_snapshot.json b/packages/db/migrations/mysql/meta/0007_snapshot.json index b1b162698..bba63722f 100644 --- a/packages/db/migrations/mysql/meta/0007_snapshot.json +++ b/packages/db/migrations/mysql/meta/0007_snapshot.json @@ -655,7 +655,7 @@ }, "permission": { "name": "permission", - "type": "text", + "type": "varchar(128)", "primaryKey": false, "notNull": true, "autoincrement": false @@ -683,8 +683,8 @@ } }, "compositePrimaryKeys": { - "integrationGroupPermissions_integration_id_group_id_permission_pk": { - "name": "integrationGroupPermissions_integration_id_group_id_permission_pk", + "integration_group_permission__pk": { + "name": "integration_group_permission__pk", "columns": ["integration_id", "group_id", "permission"] } }, @@ -819,7 +819,7 @@ }, "permission": { "name": "permission", - "type": "text", + "type": "varchar(128)", "primaryKey": false, "notNull": true, "autoincrement": false @@ -1109,7 +1109,7 @@ }, "parent_section_id": { "name": "parent_section_id", - "type": "text", + "type": "varchar(64)", "primaryKey": false, "notNull": false, "autoincrement": false diff --git a/packages/db/migrations/sqlite/meta/0004_snapshot.json b/packages/db/migrations/sqlite/meta/0004_snapshot.json index 2d0f12df4..b5cc11ab0 100644 --- a/packages/db/migrations/sqlite/meta/0004_snapshot.json +++ b/packages/db/migrations/sqlite/meta/0004_snapshot.json @@ -659,9 +659,9 @@ } }, "compositePrimaryKeys": { - "integrationGroupPermissions_integration_id_group_id_permission_pk": { + "integration_group_permission__pk": { "columns": ["group_id", "integration_id", "permission"], - "name": "integrationGroupPermissions_integration_id_group_id_permission_pk" + "name": "integration_group_permission__pk" } }, "uniqueConstraints": {} diff --git a/packages/db/migrations/sqlite/meta/0005_snapshot.json b/packages/db/migrations/sqlite/meta/0005_snapshot.json index 90a6c7d32..99770a1c7 100644 --- a/packages/db/migrations/sqlite/meta/0005_snapshot.json +++ b/packages/db/migrations/sqlite/meta/0005_snapshot.json @@ -659,9 +659,9 @@ } }, "compositePrimaryKeys": { - "integrationGroupPermissions_integration_id_group_id_permission_pk": { + "integration_group_permission__pk": { "columns": ["group_id", "integration_id", "permission"], - "name": "integrationGroupPermissions_integration_id_group_id_permission_pk" + "name": "integration_group_permission__pk" } }, "uniqueConstraints": {} diff --git a/packages/db/migrations/sqlite/meta/0006_snapshot.json b/packages/db/migrations/sqlite/meta/0006_snapshot.json index 899500eb8..aa727f8dc 100644 --- a/packages/db/migrations/sqlite/meta/0006_snapshot.json +++ b/packages/db/migrations/sqlite/meta/0006_snapshot.json @@ -659,9 +659,9 @@ } }, "compositePrimaryKeys": { - "integrationGroupPermissions_integration_id_group_id_permission_pk": { + "integration_group_permission__pk": { "columns": ["group_id", "integration_id", "permission"], - "name": "integrationGroupPermissions_integration_id_group_id_permission_pk" + "name": "integration_group_permission__pk" } }, "uniqueConstraints": {} diff --git a/packages/db/migrations/sqlite/meta/0007_snapshot.json b/packages/db/migrations/sqlite/meta/0007_snapshot.json index 85bccfaea..9d256da25 100644 --- a/packages/db/migrations/sqlite/meta/0007_snapshot.json +++ b/packages/db/migrations/sqlite/meta/0007_snapshot.json @@ -659,9 +659,9 @@ } }, "compositePrimaryKeys": { - "integrationGroupPermissions_integration_id_group_id_permission_pk": { + "integration_group_permission__pk": { "columns": ["integration_id", "group_id", "permission"], - "name": "integrationGroupPermissions_integration_id_group_id_permission_pk" + "name": "integration_group_permission__pk" } }, "uniqueConstraints": {} diff --git a/packages/db/package.json b/packages/db/package.json index a01da92ad..29589d74b 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -36,6 +36,7 @@ "@homarr/definitions": "workspace:^0.1.0", "@homarr/log": "workspace:^0.1.0", "@paralleldrive/cuid2": "^2.2.2", + "@testcontainers/mysql": "^10.13.1", "better-sqlite3": "^11.3.0", "dotenv": "^16.4.5", "drizzle-kit": "^0.24.2", diff --git a/packages/db/schema/mysql.ts b/packages/db/schema/mysql.ts index 32cabdbe5..e89942d43 100644 --- a/packages/db/schema/mysql.ts +++ b/packages/db/schema/mysql.ts @@ -171,7 +171,7 @@ export const integrationUserPermissions = mysqlTable( userId: varchar("user_id", { length: 64 }) .notNull() .references(() => users.id, { onDelete: "cascade" }), - permission: text("permission").$type().notNull(), + permission: varchar("permission", { length: 128 }).$type().notNull(), }, (table) => ({ compoundKey: primaryKey({ @@ -189,11 +189,12 @@ export const integrationGroupPermissions = mysqlTable( groupId: varchar("group_id", { length: 64 }) .notNull() .references(() => groups.id, { onDelete: "cascade" }), - permission: text("permission").$type().notNull(), + permission: varchar("permission", { length: 128 }).$type().notNull(), }, (table) => ({ compoundKey: primaryKey({ columns: [table.integrationId, table.groupId, table.permission], + name: "integration_group_permission__pk", }), }), ); @@ -276,7 +277,7 @@ export const sections = mysqlTable("section", { width: int("width"), height: int("height"), name: text("name"), - parentSectionId: text("parent_section_id").references((): AnyMySqlColumn => sections.id, { + parentSectionId: varchar("parent_section_id", { length: 64 }).references((): AnyMySqlColumn => sections.id, { onDelete: "cascade", }), }); diff --git a/packages/db/test/mysql-migration.spec.ts b/packages/db/test/mysql-migration.spec.ts new file mode 100644 index 000000000..d7dad22d0 --- /dev/null +++ b/packages/db/test/mysql-migration.spec.ts @@ -0,0 +1,38 @@ +import path from "path"; +import { MySqlContainer } from "@testcontainers/mysql"; +import { drizzle } from "drizzle-orm/mysql2"; +import { migrate } from "drizzle-orm/mysql2/migrator"; +import mysql from "mysql2"; +import { describe, test } from "vitest"; + +import * as mysqlSchema from "../schema/mysql"; + +describe("Mysql Migration", () => { + test("should add all tables and keys specified in migration files", async () => { + const mysqlContainer = await new MySqlContainer().start(); + + const connection = mysql.createConnection({ + host: mysqlContainer.getHost(), + database: mysqlContainer.getDatabase(), + port: mysqlContainer.getPort(), + user: mysqlContainer.getUsername(), + password: mysqlContainer.getUserPassword(), + }); + + const database = drizzle(connection, { + schema: mysqlSchema, + mode: "default", + }); + + // Run migrations and check if it works + await migrate(database, { + migrationsFolder: path.join(__dirname, "..", "migrations", "mysql"), + }); + + // Check if users table exists + await database.query.users.findMany(); + + connection.end(); + await mysqlContainer.stop(); + }, 40_000); +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0a39ff76f..27bf05743 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -841,6 +841,9 @@ importers: '@paralleldrive/cuid2': specifier: ^2.2.2 version: 2.2.2 + '@testcontainers/mysql': + specifier: ^10.13.1 + version: 10.13.1 better-sqlite3: specifier: ^11.3.0 version: 11.3.0 @@ -2986,6 +2989,9 @@ packages: '@tanstack/virtual-core@3.8.3': resolution: {integrity: sha512-vd2A2TnM5lbnWZnHi9B+L2gPtkSeOtJOAw358JqokIH1+v2J7vUAzFVPwB/wrye12RFOurffXu33plm4uQ+JBQ==} + '@testcontainers/mysql@10.13.1': + resolution: {integrity: sha512-G4I59inEQ37yxeMgXyNgLbGf+aUNGoQDdgrfNWpWC/s0z5fiFSROEngcp8ueGA4UgH9Jte8iXo0WrMgmBfwJEQ==} + '@tiptap/core@2.7.1': resolution: {integrity: sha512-/sOJ3J2OWxQrho6MWgE9xaRBln5MC4BEuevTYIGia4zrc523lX9s+h/lUeLtCPhI0+J6z9Vz+v3G/uoEqWCL+A==} peerDependencies: @@ -9152,6 +9158,12 @@ snapshots: '@tanstack/virtual-core@3.8.3': {} + '@testcontainers/mysql@10.13.1': + dependencies: + testcontainers: 10.13.1 + transitivePeerDependencies: + - supports-color + '@tiptap/core@2.7.1(@tiptap/pm@2.7.1)': dependencies: '@tiptap/pm': 2.7.1 From fc317840a79d0aea7f5de7ff27f9a25a537a814e Mon Sep 17 00:00:00 2001 From: Meier Lukas Date: Tue, 17 Sep 2024 19:30:14 +0200 Subject: [PATCH 21/33] refactor: use suspense query instead of serverdata for app widget (#1143) * refactor: use suspense query instead of serverdata for app widget * chore: add missing translation for loading tooltip --- packages/translation/src/lang/en.ts | 1 + packages/widgets/src/app/component.tsx | 118 ++++------------ packages/widgets/src/app/index.ts | 13 +- packages/widgets/src/app/ping/ping-dot.tsx | 24 ++++ .../widgets/src/app/ping/ping-indicator.tsx | 41 ++++++ packages/widgets/src/app/serverData.ts | 28 ---- .../widgets/src/app/test/serverData.spec.ts | 132 ------------------ packages/widgets/src/definition.ts | 1 + packages/widgets/src/errors/component.tsx | 28 ++-- packages/widgets/src/index.tsx | 8 +- packages/widgets/src/server/runner.tsx | 2 +- 11 files changed, 128 insertions(+), 268 deletions(-) create mode 100644 packages/widgets/src/app/ping/ping-dot.tsx create mode 100644 packages/widgets/src/app/ping/ping-indicator.tsx delete mode 100644 packages/widgets/src/app/serverData.ts delete mode 100644 packages/widgets/src/app/test/serverData.spec.ts diff --git a/packages/translation/src/lang/en.ts b/packages/translation/src/lang/en.ts index b22979d42..f16ece370 100644 --- a/packages/translation/src/lang/en.ts +++ b/packages/translation/src/lang/en.ts @@ -556,6 +556,7 @@ export default { next: "Next", checkoutDocs: "Check out the documentation", tryAgain: "Try again", + loading: "Loading", }, iconPicker: { label: "Icon URL", diff --git a/packages/widgets/src/app/component.tsx b/packages/widgets/src/app/component.tsx index cf9422832..36472e715 100644 --- a/packages/widgets/src/app/component.tsx +++ b/packages/widgets/src/app/component.tsx @@ -1,58 +1,37 @@ "use client"; import type { PropsWithChildren } from "react"; -import { useState } from "react"; -import { Box, Center, Flex, Loader, Stack, Text, Tooltip, UnstyledButton } from "@mantine/core"; -import { IconDeviceDesktopX } from "@tabler/icons-react"; +import { Suspense } from "react"; +import { Flex, Text, Tooltip, UnstyledButton } from "@mantine/core"; import combineClasses from "clsx"; -import type { RouterOutputs } from "@homarr/api"; import { clientApi } from "@homarr/api/client"; import { parseAppHrefWithVariablesClient } from "@homarr/common/client"; import { useRegisterSpotlightActions } from "@homarr/spotlight"; -import { useScopedI18n } from "@homarr/translation/client"; +import { useI18n } from "@homarr/translation/client"; import type { WidgetComponentProps } from "../definition"; import classes from "./app.module.css"; +import { PingDot } from "./ping/ping-dot"; +import { PingIndicator } from "./ping/ping-indicator"; -export default function AppWidget({ options, serverData, isEditMode, width }: WidgetComponentProps<"app">) { - const t = useScopedI18n("widget.app"); - const isQueryEnabled = Boolean(options.appId); - const { - data: app, - isPending, - isError, - } = clientApi.app.byId.useQuery( +export default function AppWidget({ options, isEditMode }: WidgetComponentProps<"app">) { + const t = useI18n(); + const [app] = clientApi.app.byId.useSuspenseQuery( { id: options.appId, }, { - initialData: - // We need to check if the id's match because otherwise the same initialData for a changed id will be used - serverData?.app?.id === options.appId ? serverData.app : undefined, refetchOnMount: false, refetchOnWindowFocus: false, refetchOnReconnect: false, - enabled: isQueryEnabled, - }, - ); - - const [pingResult, setPingResult] = useState(null); - - const shouldRunPing = Boolean(app?.href) && options.pingEnabled; - clientApi.widget.app.updatedPing.useSubscription( - { url: parseAppHrefWithVariablesClient(app?.href ?? "") }, - { - enabled: shouldRunPing, - onData(data) { - setPingResult(data); - }, + retry: false, }, ); useRegisterSpotlightActions( `app-${options.appId}`, - app?.href + app.href ? [ { id: `app-${options.appId}`, @@ -69,44 +48,21 @@ export default function AppWidget({ options, serverData, isEditMode, width }: Wi [app, options.appId, options.openInNewTab], ); - if (isPending && isQueryEnabled) { - return ( -
- -
- ); - } - - if (isError || !isQueryEnabled) { - return ( - - - = 96 ? "2rem" : "1rem"} /> - {width >= 96 && ( - - {t("error.notFound.label")} - - )} - - - ); - } - return ( {options.showTitle && ( - - {app?.name} + + {app.name} )} - {app?.name} + {app.name} - {shouldRunPing && } + {options.pingEnabled && app.href ? ( + + } + > + + + ) : null} ); } @@ -141,31 +105,3 @@ const AppLink = ({ href, openInNewTab, enabled, children }: PropsWithChildren { - return ( - - - = 500 - ? "red" - : "green", - }} - w={16} - h={16} - > - - - ); -}; diff --git a/packages/widgets/src/app/index.ts b/packages/widgets/src/app/index.ts index cfa202e5c..506f654e5 100644 --- a/packages/widgets/src/app/index.ts +++ b/packages/widgets/src/app/index.ts @@ -1,4 +1,4 @@ -import { IconApps } from "@tabler/icons-react"; +import { IconApps, IconDeviceDesktopX } from "@tabler/icons-react"; import { createWidgetDefinition } from "../definition"; import { optionsBuilder } from "../options"; @@ -12,6 +12,11 @@ export const { definition, componentLoader, serverDataLoader } = createWidgetDef showDescriptionTooltip: factory.switch({ defaultValue: false }), pingEnabled: factory.switch({ defaultValue: false }), })), -}) - .withServerData(() => import("./serverData")) - .withDynamicImport(() => import("./component")); + errors: { + NOT_FOUND: { + icon: IconDeviceDesktopX, + message: (t) => t("widget.app.error.notFound.label"), + hideLogsLink: true, + }, + }, +}).withDynamicImport(() => import("./component")); diff --git a/packages/widgets/src/app/ping/ping-dot.tsx b/packages/widgets/src/app/ping/ping-dot.tsx new file mode 100644 index 000000000..b54262f28 --- /dev/null +++ b/packages/widgets/src/app/ping/ping-dot.tsx @@ -0,0 +1,24 @@ +import type { MantineColor } from "@mantine/core"; +import { Box, Tooltip } from "@mantine/core"; + +interface PingDotProps { + color: MantineColor; + tooltip: string; +} + +export const PingDot = ({ color, tooltip }: PingDotProps) => { + return ( + + + + + + ); +}; diff --git a/packages/widgets/src/app/ping/ping-indicator.tsx b/packages/widgets/src/app/ping/ping-indicator.tsx new file mode 100644 index 000000000..058600257 --- /dev/null +++ b/packages/widgets/src/app/ping/ping-indicator.tsx @@ -0,0 +1,41 @@ +import { useState } from "react"; + +import type { RouterOutputs } from "@homarr/api"; +import { clientApi } from "@homarr/api/client"; +import { parseAppHrefWithVariablesClient } from "@homarr/common/client"; + +import { PingDot } from "./ping-dot"; + +interface PingIndicatorProps { + href: string; +} + +export const PingIndicator = ({ href }: PingIndicatorProps) => { + const [ping] = clientApi.widget.app.ping.useSuspenseQuery( + { + url: parseAppHrefWithVariablesClient(href), + }, + { + refetchOnMount: false, + refetchOnWindowFocus: false, + }, + ); + + const [pingResult, setPingResult] = useState(ping); + + clientApi.widget.app.updatedPing.useSubscription( + { url: parseAppHrefWithVariablesClient(href) }, + { + onData(data) { + setPingResult(data); + }, + }, + ); + + return ( + = 500 ? "red" : "green"} + tooltip={"statusCode" in pingResult ? pingResult.statusCode.toString() : pingResult.error} + /> + ); +}; diff --git a/packages/widgets/src/app/serverData.ts b/packages/widgets/src/app/serverData.ts deleted file mode 100644 index 4b8d7204a..000000000 --- a/packages/widgets/src/app/serverData.ts +++ /dev/null @@ -1,28 +0,0 @@ -"use server"; - -import type { RouterOutputs } from "@homarr/api"; -import { api } from "@homarr/api/server"; -import { parseAppHrefWithVariablesServer } from "@homarr/common/server"; - -import type { WidgetProps } from "../definition"; - -export default async function getServerDataAsync({ options }: WidgetProps<"app">) { - if (!options.appId) { - return { app: null, pingResult: null }; - } - - try { - const app = await api.app.byId({ id: options.appId }); - let pingResult: RouterOutputs["widget"]["app"]["ping"] | null = null; - - if (app.href && options.pingEnabled) { - pingResult = await api.widget.app.ping({ - url: parseAppHrefWithVariablesServer(app.href), - }); - } - - return { app, pingResult }; - } catch { - return { app: null, pingResult: null }; - } -} diff --git a/packages/widgets/src/app/test/serverData.spec.ts b/packages/widgets/src/app/test/serverData.spec.ts deleted file mode 100644 index 999d7d1e8..000000000 --- a/packages/widgets/src/app/test/serverData.spec.ts +++ /dev/null @@ -1,132 +0,0 @@ -import { TRPCError } from "@trpc/server"; -import { describe, expect, test, vi } from "vitest"; - -import type { RouterOutputs } from "@homarr/api"; -import { api } from "@homarr/api/server"; -import { objectKeys } from "@homarr/common"; - -import type { WidgetProps } from "../../definition"; -import getServerDataAsync from "../serverData"; - -const mockApp = (override: Partial) => - ({ - id: "1", - name: "Mock app", - iconUrl: "https://some.com/icon.png", - description: null, - href: "https://google.ch", - ...override, - }) satisfies RouterOutputs["app"]["byId"]; - -vi.mock("@homarr/api/server", () => ({ - api: { - app: { - byId: () => null, - }, - widget: { - app: { - ping: () => null, - }, - }, - }, -})); -vi.mock("@homarr/common/server", () => ({ - parseAppHrefWithVariablesServer: () => "http://localhost", -})); - -describe("getServerDataAsync should load app and ping result", () => { - test("when appId is empty it should return null for app and pingResult", async () => { - // Arrange - const options = { - appId: "", - pingEnabled: true, - }; - - // Act - const result = await getServerDataAsync({ options } as unknown as WidgetProps<"app">); - - // Assert - expect(result.app).toBeNull(); - expect(result.pingResult).toBeNull(); - }); - - test("when app exists and ping is disabled it should return existing app and pingResult null", async () => { - // Arrange - const spy = vi.spyOn(api.app, "byId"); - const options = { - appId: "1", - pingEnabled: false, - }; - const mockedApp = mockApp({}); - spy.mockImplementation(() => Promise.resolve(mockedApp)); - - // Act - const result = await getServerDataAsync({ options } as unknown as WidgetProps<"app">); - - // Assert - expect(result.pingResult).toBeNull(); - objectKeys(mockedApp).forEach((key) => expect(result.app?.[key]).toBe(mockedApp[key])); - }); - - test("when app exists without href and ping enabled it should return existing app and pingResult null", async () => { - // Arrange - const spy = vi.spyOn(api.app, "byId"); - const options = { - appId: "1", - pingEnabled: true, - }; - const mockedApp = mockApp({ href: null }); - spy.mockImplementation(() => Promise.resolve(mockedApp)); - - // Act - const result = await getServerDataAsync({ options } as unknown as WidgetProps<"app">); - - // Assert - expect(result.pingResult).toBeNull(); - objectKeys(mockedApp).forEach((key) => expect(result.app?.[key]).toBe(mockedApp[key])); - }); - - test("when app does not exist it should return for both null", async () => { - // Arrange - const spy = vi.spyOn(api.app, "byId"); - const options = { - appId: "1", - pingEnabled: true, - }; - spy.mockImplementation(() => - Promise.reject( - new TRPCError({ - code: "NOT_FOUND", - }), - ), - ); - - // Act - const result = await getServerDataAsync({ options } as unknown as WidgetProps<"app">); - - // Assert - expect(result.pingResult).toBeNull(); - expect(result.app).toBeNull(); - }); - - test("when app found and ping enabled it should return existing app and pingResult", async () => { - // Arrange - const spyById = vi.spyOn(api.app, "byId"); - const spyPing = vi.spyOn(api.widget.app, "ping"); - const options = { - appId: "1", - pingEnabled: true, - }; - const mockedApp = mockApp({}); - const pingResult = { statusCode: 200, url: "http://localhost" }; - spyById.mockImplementation(() => Promise.resolve(mockedApp)); - spyPing.mockImplementation(() => Promise.resolve(pingResult)); - - // Act - const result = await getServerDataAsync({ options } as unknown as WidgetProps<"app">); - - // Assert - expect(result.pingResult).toBe(pingResult); - expect(result.app).toBe(mockedApp); - }); -}); diff --git a/packages/widgets/src/definition.ts b/packages/widgets/src/definition.ts index 9bb36b275..46346bddb 100644 --- a/packages/widgets/src/definition.ts +++ b/packages/widgets/src/definition.ts @@ -71,6 +71,7 @@ export interface WidgetDefinition { { icon: TablerIcon; message: stringOrTranslation; + hideLogsLink?: boolean; } > >; diff --git a/packages/widgets/src/errors/component.tsx b/packages/widgets/src/errors/component.tsx index b27b52875..5638ef321 100644 --- a/packages/widgets/src/errors/component.tsx +++ b/packages/widgets/src/errors/component.tsx @@ -5,6 +5,7 @@ import type { DefaultErrorData } from "@trpc/server/unstable-core-do-not-import" import type { WidgetKind } from "@homarr/definitions"; +import type { WidgetDefinition } from ".."; import { widgetImports } from ".."; import { ErrorBoundaryError } from "./base"; import { BaseWidgetError } from "./base-component"; @@ -22,21 +23,28 @@ export const WidgetError = ({ error, resetErrorBoundary, kind }: WidgetErrorProp return ; } + const commonFallbackError = ( + string }).toString()} + onRetry={resetErrorBoundary} + /> + ); + if (error instanceof TRPCClientError && "code" in error.data) { const errorData = error.data as DefaultErrorData; - if (!("errors" in currentDefinition && errorData.code in currentDefinition.errors)) return null; + if (!("errors" in currentDefinition)) return commonFallbackError; - const errorDefinition = currentDefinition.errors[errorData.code as keyof typeof currentDefinition.errors]; + const errors: Exclude = currentDefinition.errors; + const errorDefinition = errors[errorData.code]; - return ; + if (!errorDefinition) return commonFallbackError; + + return ( + + ); } - return ( - string }).toString()} - onRetry={resetErrorBoundary} - /> - ); + return commonFallbackError; }; diff --git a/packages/widgets/src/index.tsx b/packages/widgets/src/index.tsx index 4c1b04b8c..842f201ba 100644 --- a/packages/widgets/src/index.tsx +++ b/packages/widgets/src/index.tsx @@ -1,7 +1,7 @@ import type { ComponentType } from "react"; import type { Loader } from "next/dynamic"; import dynamic from "next/dynamic"; -import { Loader as UiLoader } from "@mantine/core"; +import { Center, Loader as UiLoader } from "@mantine/core"; import type { WidgetKind } from "@homarr/definitions"; @@ -65,7 +65,11 @@ export const loadWidgetDynamic = (kind: TKind) => { const newlyLoadedComponent = dynamic>( widgetImports[kind].componentLoader as Loader>, { - loading: () => , + loading: () => ( +
+ +
+ ), }, ); diff --git a/packages/widgets/src/server/runner.tsx b/packages/widgets/src/server/runner.tsx index 53f960cfe..91effec0f 100644 --- a/packages/widgets/src/server/runner.tsx +++ b/packages/widgets/src/server/runner.tsx @@ -37,7 +37,7 @@ interface ItemDataLoaderProps { const ItemDataLoader = async ({ item }: ItemDataLoaderProps) => { const widgetImport = widgetImports[item.kind]; - if (!("serverDataLoader" in widgetImport)) { + if (!("serverDataLoader" in widgetImport) || !widgetImport.serverDataLoader) { return ; } const loader = await widgetImport.serverDataLoader(); From f1d5dd03cbea8ea569d21f94b95e31d66cb03adc Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Tue, 17 Sep 2024 23:38:29 +0000 Subject: [PATCH 22/33] fix(deps): update dependency sass to ^1.79.0 (#1147) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- apps/nextjs/package.json | 2 +- pnpm-lock.yaml | 147 +++++++++++++++------------------------ 2 files changed, 58 insertions(+), 91 deletions(-) diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index c972d3937..d155173da 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -69,7 +69,7 @@ "react-dom": "^18.3.1", "react-error-boundary": "^4.0.13", "react-simple-code-editor": "^0.14.1", - "sass": "^1.78.0", + "sass": "^1.79.0", "superjson": "2.2.1", "swagger-ui-react": "^5.17.14", "use-deep-compare-effect": "^1.8.1" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 27bf05743..5f470d52a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,10 +21,10 @@ importers: version: 2.1.2(@types/node@20.16.5)(typescript@5.6.2) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.1(vite@5.4.5(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) + version: 4.3.1(vite@5.4.5(@types/node@20.16.5)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) '@vitest/coverage-v8': specifier: ^2.1.1 - version: 2.1.1(vitest@2.1.1(@types/node@20.16.5)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) + version: 2.1.1(vitest@2.1.1(@types/node@20.16.5)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) '@vitest/ui': specifier: ^2.1.1 version: 2.1.1(vitest@2.1.1) @@ -48,10 +48,10 @@ importers: version: 5.6.2 vite-tsconfig-paths: specifier: ^5.0.1 - version: 5.0.1(typescript@5.6.2)(vite@5.4.5(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) + version: 5.0.1(typescript@5.6.2)(vite@5.4.5(@types/node@20.16.5)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) vitest: specifier: ^2.1.1 - version: 2.1.1(@types/node@20.16.5)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + version: 2.1.1(@types/node@20.16.5)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) apps/nextjs: dependencies: @@ -150,13 +150,13 @@ importers: version: 5.56.2(@tanstack/react-query@5.56.2(react@18.3.1))(react@18.3.1) '@tanstack/react-query-next-experimental': specifier: 5.56.2 - version: 5.56.2(@tanstack/react-query@5.56.2(react@18.3.1))(next@14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0))(react@18.3.1) + version: 5.56.2(@tanstack/react-query@5.56.2(react@18.3.1))(next@14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.0))(react@18.3.1) '@trpc/client': specifier: next version: 11.0.0-rc.502(@trpc/server@11.0.0-rc.502) '@trpc/next': specifier: next - version: 11.0.0-rc.502(@tanstack/react-query@5.56.2(react@18.3.1))(@trpc/client@11.0.0-rc.502(@trpc/server@11.0.0-rc.502))(@trpc/react-query@11.0.0-rc.502(@tanstack/react-query@5.56.2(react@18.3.1))(@trpc/client@11.0.0-rc.502(@trpc/server@11.0.0-rc.502))(@trpc/server@11.0.0-rc.502)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/server@11.0.0-rc.502)(next@14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 11.0.0-rc.502(@tanstack/react-query@5.56.2(react@18.3.1))(@trpc/client@11.0.0-rc.502(@trpc/server@11.0.0-rc.502))(@trpc/react-query@11.0.0-rc.502(@tanstack/react-query@5.56.2(react@18.3.1))(@trpc/client@11.0.0-rc.502(@trpc/server@11.0.0-rc.502))(@trpc/server@11.0.0-rc.502)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/server@11.0.0-rc.502)(next@14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@trpc/react-query': specifier: next version: 11.0.0-rc.502(@tanstack/react-query@5.56.2(react@18.3.1))(@trpc/client@11.0.0-rc.502(@trpc/server@11.0.0-rc.502))(@trpc/server@11.0.0-rc.502)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -198,7 +198,7 @@ importers: version: 2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.17.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next: specifier: ^14.2.11 - version: 14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) + version: 14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.0) postcss-preset-mantine: specifier: ^1.17.0 version: 1.17.0(postcss@8.4.47) @@ -218,8 +218,8 @@ importers: specifier: ^0.14.1 version: 0.14.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) sass: - specifier: ^1.78.0 - version: 1.78.0 + specifier: ^1.79.0 + version: 1.79.0 superjson: specifier: 2.2.1 version: 2.2.1 @@ -514,7 +514,7 @@ importers: version: 4.0.2 next: specifier: ^14.2.11 - version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) + version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.0) react: specifier: ^18.3.1 version: 18.3.1 @@ -584,10 +584,10 @@ importers: version: 7.2.0 next: specifier: ^14.2.11 - version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) + version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.0) next-auth: specifier: 5.0.0-beta.21 - version: 5.0.0-beta.21(next@14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0))(react@18.3.1) + version: 5.0.0-beta.21(next@14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.0))(react@18.3.1) react: specifier: ^18.3.1 version: 18.3.1 @@ -661,7 +661,7 @@ importers: version: 1.11.13 next: specifier: ^14.2.11 - version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) + version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.0) react: specifier: ^18.3.1 version: 18.3.1 @@ -1111,7 +1111,7 @@ importers: version: 1.11.13 next: specifier: ^14.2.11 - version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) + version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.0) react: specifier: ^18.3.1 version: 18.3.1 @@ -1327,7 +1327,7 @@ importers: version: 2.9.3(@types/react@18.3.7)(react@18.3.1) next: specifier: ^14.2.11 - version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) + version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.0) react: specifier: ^18.3.1 version: 18.3.1 @@ -1410,7 +1410,7 @@ importers: version: 2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.17.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next: specifier: ^14.2.11 - version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) + version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.0) react: specifier: ^18.3.1 version: 18.3.1 @@ -1580,7 +1580,7 @@ importers: version: 2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.17.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next: specifier: ^14.2.11 - version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) + version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.0) react: specifier: ^18.3.1 version: 18.3.1 @@ -3687,10 +3687,6 @@ packages: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - apg-lite@1.0.4: resolution: {integrity: sha512-B32zCN3IdHIc99Vy7V9BaYTUzLeRA8YXYY1aQD1/5I2aqIrO0coi4t6hJPqMisidlBxhyME8UexkHt31SlR6Og==} @@ -3855,10 +3851,6 @@ packages: big.js@5.2.2: resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} - binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} - bindings@1.5.0: resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} @@ -3981,9 +3973,9 @@ packages: resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} engines: {node: '>= 16'} - chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} + chokidar@4.0.0: + resolution: {integrity: sha512-mxIojEAQcuEvT/lyXq+jf/3cO/KoA6z4CeNDGGevTybECPOMFCnQy3OPahluUkbqgPNGw5Bi78UC7Po6Lhy+NA==} + engines: {node: '>= 14.16.0'} chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} @@ -5216,10 +5208,6 @@ packages: is-bigint@1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} - is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - is-boolean-object@1.1.2: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} @@ -6499,9 +6487,9 @@ packages: readdir-glob@1.1.3: resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} - readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} + readdirp@4.0.1: + resolution: {integrity: sha512-GkMg9uOTpIWWKbSsgwb5fA4EavTR+SG/PMPoAY8hkhHfEEY0/vqljY+XHqtDf2cr2IJtoNRDbrrEpZUiZCkYRw==} + engines: {node: '>= 14.16.0'} redis-errors@1.2.0: resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} @@ -6670,8 +6658,8 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sass@1.78.0: - resolution: {integrity: sha512-AaIqGSrjo5lA2Yg7RvFZrlXDBCp3nV4XP73GrLGvdRWWwk+8H3l0SDvq/5bA4eF+0RFPLuWUk3E+P1U/YqnpsQ==} + sass@1.79.0: + resolution: {integrity: sha512-9Q1xXsm9XT54yYkmQAoH3vCMEIavwWWQGJ3cZ0WJAgecR4edDDTdtiPyEeFDNWO/hLCy3qZKvwjK4ulPR5Yzow==} engines: {node: '>=14.0.0'} hasBin: true @@ -9131,10 +9119,10 @@ snapshots: '@tanstack/react-query': 5.56.2(react@18.3.1) react: 18.3.1 - '@tanstack/react-query-next-experimental@5.56.2(@tanstack/react-query@5.56.2(react@18.3.1))(next@14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0))(react@18.3.1)': + '@tanstack/react-query-next-experimental@5.56.2(@tanstack/react-query@5.56.2(react@18.3.1))(next@14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.0))(react@18.3.1)': dependencies: '@tanstack/react-query': 5.56.2(react@18.3.1) - next: 14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) + next: 14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.0) react: 18.3.1 '@tanstack/react-query@5.56.2(react@18.3.1)': @@ -9376,11 +9364,11 @@ snapshots: dependencies: '@trpc/server': 11.0.0-rc.502 - '@trpc/next@11.0.0-rc.502(@tanstack/react-query@5.56.2(react@18.3.1))(@trpc/client@11.0.0-rc.502(@trpc/server@11.0.0-rc.502))(@trpc/react-query@11.0.0-rc.502(@tanstack/react-query@5.56.2(react@18.3.1))(@trpc/client@11.0.0-rc.502(@trpc/server@11.0.0-rc.502))(@trpc/server@11.0.0-rc.502)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/server@11.0.0-rc.502)(next@14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@trpc/next@11.0.0-rc.502(@tanstack/react-query@5.56.2(react@18.3.1))(@trpc/client@11.0.0-rc.502(@trpc/server@11.0.0-rc.502))(@trpc/react-query@11.0.0-rc.502(@tanstack/react-query@5.56.2(react@18.3.1))(@trpc/client@11.0.0-rc.502(@trpc/server@11.0.0-rc.502))(@trpc/server@11.0.0-rc.502)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/server@11.0.0-rc.502)(next@14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@trpc/client': 11.0.0-rc.502(@trpc/server@11.0.0-rc.502) '@trpc/server': 11.0.0-rc.502 - next: 14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) + next: 14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.0) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: @@ -9748,18 +9736,18 @@ snapshots: global: 4.4.0 is-function: 1.0.2 - '@vitejs/plugin-react@4.3.1(vite@5.4.5(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))': + '@vitejs/plugin-react@4.3.1(vite@5.4.5(@types/node@20.16.5)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))': dependencies: '@babel/core': 7.25.2 '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.25.2) '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.25.2) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 5.4.5(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vite: 5.4.5(@types/node@20.16.5)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@2.1.1(vitest@2.1.1(@types/node@20.16.5)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))': + '@vitest/coverage-v8@2.1.1(vitest@2.1.1(@types/node@20.16.5)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 @@ -9773,7 +9761,7 @@ snapshots: std-env: 3.7.0 test-exclude: 7.0.1 tinyrainbow: 1.2.0 - vitest: 2.1.1(@types/node@20.16.5)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vitest: 2.1.1(@types/node@20.16.5)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) transitivePeerDependencies: - supports-color @@ -9784,13 +9772,13 @@ snapshots: chai: 5.1.1 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.1(@vitest/spy@2.1.1)(vite@5.4.5(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))': + '@vitest/mocker@2.1.1(@vitest/spy@2.1.1)(vite@5.4.5(@types/node@20.16.5)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))': dependencies: '@vitest/spy': 2.1.1 estree-walker: 3.0.3 magic-string: 0.30.11 optionalDependencies: - vite: 5.4.5(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vite: 5.4.5(@types/node@20.16.5)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) '@vitest/pretty-format@2.1.1': dependencies: @@ -9820,7 +9808,7 @@ snapshots: sirv: 2.0.4 tinyglobby: 0.2.6 tinyrainbow: 1.2.0 - vitest: 2.1.1(@types/node@20.16.5)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vitest: 2.1.1(@types/node@20.16.5)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) '@vitest/utils@2.1.1': dependencies: @@ -10011,11 +9999,6 @@ snapshots: ansi-styles@6.2.1: {} - anymatch@3.1.3: - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - apg-lite@1.0.4: {} aproba@2.0.0: {} @@ -10223,8 +10206,6 @@ snapshots: big.js@5.2.2: {} - binary-extensions@2.3.0: {} - bindings@1.5.0: dependencies: file-uri-to-path: 1.0.0 @@ -10377,17 +10358,9 @@ snapshots: check-error@2.1.1: {} - chokidar@3.6.0: + chokidar@4.0.0: dependencies: - anymatch: 3.1.3 - braces: 3.0.3 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 + readdirp: 4.0.1 chownr@1.1.4: {} @@ -11802,10 +11775,6 @@ snapshots: dependencies: has-bigints: 1.0.2 - is-binary-path@2.1.0: - dependencies: - binary-extensions: 2.3.0 - is-boolean-object@1.1.2: dependencies: call-bind: 1.0.7 @@ -12379,10 +12348,10 @@ snapshots: netmask@2.0.2: {} - next-auth@5.0.0-beta.21(next@14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0))(react@18.3.1): + next-auth@5.0.0-beta.21(next@14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.0))(react@18.3.1): dependencies: '@auth/core': 0.35.0 - next: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0) + next: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.0) react: 18.3.1 next-international@1.2.4: @@ -12391,7 +12360,7 @@ snapshots: international-types: 0.8.1 server-only: 0.0.1 - next@14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0): + next@14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.0): dependencies: '@next/env': 14.2.11 '@swc/helpers': 0.5.5 @@ -12412,12 +12381,12 @@ snapshots: '@next/swc-win32-arm64-msvc': 14.2.11 '@next/swc-win32-ia32-msvc': 14.2.11 '@next/swc-win32-x64-msvc': 14.2.11 - sass: 1.78.0 + sass: 1.79.0 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros - next@14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.78.0): + next@14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.0): dependencies: '@next/env': 14.2.11 '@swc/helpers': 0.5.5 @@ -12438,7 +12407,7 @@ snapshots: '@next/swc-win32-arm64-msvc': 14.2.11 '@next/swc-win32-ia32-msvc': 14.2.11 '@next/swc-win32-x64-msvc': 14.2.11 - sass: 1.78.0 + sass: 1.79.0 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -13188,9 +13157,7 @@ snapshots: dependencies: minimatch: 5.1.6 - readdirp@3.6.0: - dependencies: - picomatch: 2.3.1 + readdirp@4.0.1: {} redis-errors@1.2.0: {} @@ -13381,9 +13348,9 @@ snapshots: safer-buffer@2.1.2: {} - sass@1.78.0: + sass@1.79.0: dependencies: - chokidar: 3.6.0 + chokidar: 4.0.0 immutable: 4.3.7 source-map-js: 1.2.1 @@ -14307,12 +14274,12 @@ snapshots: dependencies: global: 4.4.0 - vite-node@2.1.1(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): + vite-node@2.1.1(@types/node@20.16.5)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): dependencies: cac: 6.7.14 debug: 4.3.7 pathe: 1.1.2 - vite: 5.4.5(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vite: 5.4.5(@types/node@20.16.5)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) transitivePeerDependencies: - '@types/node' - less @@ -14324,18 +14291,18 @@ snapshots: - supports-color - terser - vite-tsconfig-paths@5.0.1(typescript@5.6.2)(vite@5.4.5(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)): + vite-tsconfig-paths@5.0.1(typescript@5.6.2)(vite@5.4.5(@types/node@20.16.5)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)): dependencies: debug: 4.3.7 globrex: 0.1.2 tsconfck: 3.1.3(typescript@5.6.2) optionalDependencies: - vite: 5.4.5(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vite: 5.4.5(@types/node@20.16.5)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) transitivePeerDependencies: - supports-color - typescript - vite@5.4.5(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): + vite@5.4.5(@types/node@20.16.5)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): dependencies: esbuild: 0.21.5 postcss: 8.4.47 @@ -14343,14 +14310,14 @@ snapshots: optionalDependencies: '@types/node': 20.16.5 fsevents: 2.3.3 - sass: 1.78.0 + sass: 1.79.0 sugarss: 4.0.1(postcss@8.4.47) terser: 5.32.0 - vitest@2.1.1(@types/node@20.16.5)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): + vitest@2.1.1(@types/node@20.16.5)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): dependencies: '@vitest/expect': 2.1.1 - '@vitest/mocker': 2.1.1(@vitest/spy@2.1.1)(vite@5.4.5(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) + '@vitest/mocker': 2.1.1(@vitest/spy@2.1.1)(vite@5.4.5(@types/node@20.16.5)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) '@vitest/pretty-format': 2.1.1 '@vitest/runner': 2.1.1 '@vitest/snapshot': 2.1.1 @@ -14365,8 +14332,8 @@ snapshots: tinyexec: 0.3.0 tinypool: 1.0.1 tinyrainbow: 1.2.0 - vite: 5.4.5(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) - vite-node: 2.1.1(@types/node@20.16.5)(sass@1.78.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vite: 5.4.5(@types/node@20.16.5)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vite-node: 2.1.1(@types/node@20.16.5)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 20.16.5 From 3cb1221038715ae8d771c3a6622f666ae9493aef Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Wed, 18 Sep 2024 07:36:26 +0000 Subject: [PATCH 23/33] fix(deps): update dependency sass to ^1.79.1 (#1148) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- apps/nextjs/package.json | 2 +- pnpm-lock.yaml | 94 ++++++++++++++++++++-------------------- 2 files changed, 48 insertions(+), 48 deletions(-) diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index d155173da..95b02ebc6 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -69,7 +69,7 @@ "react-dom": "^18.3.1", "react-error-boundary": "^4.0.13", "react-simple-code-editor": "^0.14.1", - "sass": "^1.79.0", + "sass": "^1.79.1", "superjson": "2.2.1", "swagger-ui-react": "^5.17.14", "use-deep-compare-effect": "^1.8.1" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5f470d52a..f60c1ec1c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,10 +21,10 @@ importers: version: 2.1.2(@types/node@20.16.5)(typescript@5.6.2) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.1(vite@5.4.5(@types/node@20.16.5)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) + version: 4.3.1(vite@5.4.5(@types/node@20.16.5)(sass@1.79.1)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) '@vitest/coverage-v8': specifier: ^2.1.1 - version: 2.1.1(vitest@2.1.1(@types/node@20.16.5)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) + version: 2.1.1(vitest@2.1.1(@types/node@20.16.5)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.79.1)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) '@vitest/ui': specifier: ^2.1.1 version: 2.1.1(vitest@2.1.1) @@ -48,10 +48,10 @@ importers: version: 5.6.2 vite-tsconfig-paths: specifier: ^5.0.1 - version: 5.0.1(typescript@5.6.2)(vite@5.4.5(@types/node@20.16.5)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) + version: 5.0.1(typescript@5.6.2)(vite@5.4.5(@types/node@20.16.5)(sass@1.79.1)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) vitest: specifier: ^2.1.1 - version: 2.1.1(@types/node@20.16.5)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + version: 2.1.1(@types/node@20.16.5)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.79.1)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) apps/nextjs: dependencies: @@ -150,13 +150,13 @@ importers: version: 5.56.2(@tanstack/react-query@5.56.2(react@18.3.1))(react@18.3.1) '@tanstack/react-query-next-experimental': specifier: 5.56.2 - version: 5.56.2(@tanstack/react-query@5.56.2(react@18.3.1))(next@14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.0))(react@18.3.1) + version: 5.56.2(@tanstack/react-query@5.56.2(react@18.3.1))(next@14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1))(react@18.3.1) '@trpc/client': specifier: next version: 11.0.0-rc.502(@trpc/server@11.0.0-rc.502) '@trpc/next': specifier: next - version: 11.0.0-rc.502(@tanstack/react-query@5.56.2(react@18.3.1))(@trpc/client@11.0.0-rc.502(@trpc/server@11.0.0-rc.502))(@trpc/react-query@11.0.0-rc.502(@tanstack/react-query@5.56.2(react@18.3.1))(@trpc/client@11.0.0-rc.502(@trpc/server@11.0.0-rc.502))(@trpc/server@11.0.0-rc.502)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/server@11.0.0-rc.502)(next@14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 11.0.0-rc.502(@tanstack/react-query@5.56.2(react@18.3.1))(@trpc/client@11.0.0-rc.502(@trpc/server@11.0.0-rc.502))(@trpc/react-query@11.0.0-rc.502(@tanstack/react-query@5.56.2(react@18.3.1))(@trpc/client@11.0.0-rc.502(@trpc/server@11.0.0-rc.502))(@trpc/server@11.0.0-rc.502)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/server@11.0.0-rc.502)(next@14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@trpc/react-query': specifier: next version: 11.0.0-rc.502(@tanstack/react-query@5.56.2(react@18.3.1))(@trpc/client@11.0.0-rc.502(@trpc/server@11.0.0-rc.502))(@trpc/server@11.0.0-rc.502)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -198,7 +198,7 @@ importers: version: 2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.17.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next: specifier: ^14.2.11 - version: 14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.0) + version: 14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1) postcss-preset-mantine: specifier: ^1.17.0 version: 1.17.0(postcss@8.4.47) @@ -218,8 +218,8 @@ importers: specifier: ^0.14.1 version: 0.14.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) sass: - specifier: ^1.79.0 - version: 1.79.0 + specifier: ^1.79.1 + version: 1.79.1 superjson: specifier: 2.2.1 version: 2.2.1 @@ -514,7 +514,7 @@ importers: version: 4.0.2 next: specifier: ^14.2.11 - version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.0) + version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1) react: specifier: ^18.3.1 version: 18.3.1 @@ -584,10 +584,10 @@ importers: version: 7.2.0 next: specifier: ^14.2.11 - version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.0) + version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1) next-auth: specifier: 5.0.0-beta.21 - version: 5.0.0-beta.21(next@14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.0))(react@18.3.1) + version: 5.0.0-beta.21(next@14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1))(react@18.3.1) react: specifier: ^18.3.1 version: 18.3.1 @@ -661,7 +661,7 @@ importers: version: 1.11.13 next: specifier: ^14.2.11 - version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.0) + version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1) react: specifier: ^18.3.1 version: 18.3.1 @@ -1111,7 +1111,7 @@ importers: version: 1.11.13 next: specifier: ^14.2.11 - version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.0) + version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1) react: specifier: ^18.3.1 version: 18.3.1 @@ -1327,7 +1327,7 @@ importers: version: 2.9.3(@types/react@18.3.7)(react@18.3.1) next: specifier: ^14.2.11 - version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.0) + version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1) react: specifier: ^18.3.1 version: 18.3.1 @@ -1410,7 +1410,7 @@ importers: version: 2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.17.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next: specifier: ^14.2.11 - version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.0) + version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1) react: specifier: ^18.3.1 version: 18.3.1 @@ -1580,7 +1580,7 @@ importers: version: 2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.17.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next: specifier: ^14.2.11 - version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.0) + version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1) react: specifier: ^18.3.1 version: 18.3.1 @@ -6658,8 +6658,8 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sass@1.79.0: - resolution: {integrity: sha512-9Q1xXsm9XT54yYkmQAoH3vCMEIavwWWQGJ3cZ0WJAgecR4edDDTdtiPyEeFDNWO/hLCy3qZKvwjK4ulPR5Yzow==} + sass@1.79.1: + resolution: {integrity: sha512-+mA7svoNKeL0DiJqZGeR/ZGUu8he4I8o3jyUcOFyo4eBJrwNgIMmAEwCMo/N2Y3wdjOBcRzoNxZIOtrtMX8EXg==} engines: {node: '>=14.0.0'} hasBin: true @@ -9119,10 +9119,10 @@ snapshots: '@tanstack/react-query': 5.56.2(react@18.3.1) react: 18.3.1 - '@tanstack/react-query-next-experimental@5.56.2(@tanstack/react-query@5.56.2(react@18.3.1))(next@14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.0))(react@18.3.1)': + '@tanstack/react-query-next-experimental@5.56.2(@tanstack/react-query@5.56.2(react@18.3.1))(next@14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1))(react@18.3.1)': dependencies: '@tanstack/react-query': 5.56.2(react@18.3.1) - next: 14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.0) + next: 14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1) react: 18.3.1 '@tanstack/react-query@5.56.2(react@18.3.1)': @@ -9364,11 +9364,11 @@ snapshots: dependencies: '@trpc/server': 11.0.0-rc.502 - '@trpc/next@11.0.0-rc.502(@tanstack/react-query@5.56.2(react@18.3.1))(@trpc/client@11.0.0-rc.502(@trpc/server@11.0.0-rc.502))(@trpc/react-query@11.0.0-rc.502(@tanstack/react-query@5.56.2(react@18.3.1))(@trpc/client@11.0.0-rc.502(@trpc/server@11.0.0-rc.502))(@trpc/server@11.0.0-rc.502)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/server@11.0.0-rc.502)(next@14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@trpc/next@11.0.0-rc.502(@tanstack/react-query@5.56.2(react@18.3.1))(@trpc/client@11.0.0-rc.502(@trpc/server@11.0.0-rc.502))(@trpc/react-query@11.0.0-rc.502(@tanstack/react-query@5.56.2(react@18.3.1))(@trpc/client@11.0.0-rc.502(@trpc/server@11.0.0-rc.502))(@trpc/server@11.0.0-rc.502)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/server@11.0.0-rc.502)(next@14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@trpc/client': 11.0.0-rc.502(@trpc/server@11.0.0-rc.502) '@trpc/server': 11.0.0-rc.502 - next: 14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.0) + next: 14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: @@ -9736,18 +9736,18 @@ snapshots: global: 4.4.0 is-function: 1.0.2 - '@vitejs/plugin-react@4.3.1(vite@5.4.5(@types/node@20.16.5)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))': + '@vitejs/plugin-react@4.3.1(vite@5.4.5(@types/node@20.16.5)(sass@1.79.1)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))': dependencies: '@babel/core': 7.25.2 '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.25.2) '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.25.2) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 5.4.5(@types/node@20.16.5)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vite: 5.4.5(@types/node@20.16.5)(sass@1.79.1)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@2.1.1(vitest@2.1.1(@types/node@20.16.5)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))': + '@vitest/coverage-v8@2.1.1(vitest@2.1.1(@types/node@20.16.5)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.79.1)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 @@ -9761,7 +9761,7 @@ snapshots: std-env: 3.7.0 test-exclude: 7.0.1 tinyrainbow: 1.2.0 - vitest: 2.1.1(@types/node@20.16.5)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vitest: 2.1.1(@types/node@20.16.5)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.79.1)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) transitivePeerDependencies: - supports-color @@ -9772,13 +9772,13 @@ snapshots: chai: 5.1.1 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.1(@vitest/spy@2.1.1)(vite@5.4.5(@types/node@20.16.5)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))': + '@vitest/mocker@2.1.1(@vitest/spy@2.1.1)(vite@5.4.5(@types/node@20.16.5)(sass@1.79.1)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))': dependencies: '@vitest/spy': 2.1.1 estree-walker: 3.0.3 magic-string: 0.30.11 optionalDependencies: - vite: 5.4.5(@types/node@20.16.5)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vite: 5.4.5(@types/node@20.16.5)(sass@1.79.1)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) '@vitest/pretty-format@2.1.1': dependencies: @@ -9808,7 +9808,7 @@ snapshots: sirv: 2.0.4 tinyglobby: 0.2.6 tinyrainbow: 1.2.0 - vitest: 2.1.1(@types/node@20.16.5)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vitest: 2.1.1(@types/node@20.16.5)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.79.1)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) '@vitest/utils@2.1.1': dependencies: @@ -12348,10 +12348,10 @@ snapshots: netmask@2.0.2: {} - next-auth@5.0.0-beta.21(next@14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.0))(react@18.3.1): + next-auth@5.0.0-beta.21(next@14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1))(react@18.3.1): dependencies: '@auth/core': 0.35.0 - next: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.0) + next: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1) react: 18.3.1 next-international@1.2.4: @@ -12360,7 +12360,7 @@ snapshots: international-types: 0.8.1 server-only: 0.0.1 - next@14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.0): + next@14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1): dependencies: '@next/env': 14.2.11 '@swc/helpers': 0.5.5 @@ -12381,12 +12381,12 @@ snapshots: '@next/swc-win32-arm64-msvc': 14.2.11 '@next/swc-win32-ia32-msvc': 14.2.11 '@next/swc-win32-x64-msvc': 14.2.11 - sass: 1.79.0 + sass: 1.79.1 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros - next@14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.0): + next@14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1): dependencies: '@next/env': 14.2.11 '@swc/helpers': 0.5.5 @@ -12407,7 +12407,7 @@ snapshots: '@next/swc-win32-arm64-msvc': 14.2.11 '@next/swc-win32-ia32-msvc': 14.2.11 '@next/swc-win32-x64-msvc': 14.2.11 - sass: 1.79.0 + sass: 1.79.1 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -13348,7 +13348,7 @@ snapshots: safer-buffer@2.1.2: {} - sass@1.79.0: + sass@1.79.1: dependencies: chokidar: 4.0.0 immutable: 4.3.7 @@ -14274,12 +14274,12 @@ snapshots: dependencies: global: 4.4.0 - vite-node@2.1.1(@types/node@20.16.5)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): + vite-node@2.1.1(@types/node@20.16.5)(sass@1.79.1)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): dependencies: cac: 6.7.14 debug: 4.3.7 pathe: 1.1.2 - vite: 5.4.5(@types/node@20.16.5)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vite: 5.4.5(@types/node@20.16.5)(sass@1.79.1)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) transitivePeerDependencies: - '@types/node' - less @@ -14291,18 +14291,18 @@ snapshots: - supports-color - terser - vite-tsconfig-paths@5.0.1(typescript@5.6.2)(vite@5.4.5(@types/node@20.16.5)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)): + vite-tsconfig-paths@5.0.1(typescript@5.6.2)(vite@5.4.5(@types/node@20.16.5)(sass@1.79.1)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)): dependencies: debug: 4.3.7 globrex: 0.1.2 tsconfck: 3.1.3(typescript@5.6.2) optionalDependencies: - vite: 5.4.5(@types/node@20.16.5)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vite: 5.4.5(@types/node@20.16.5)(sass@1.79.1)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) transitivePeerDependencies: - supports-color - typescript - vite@5.4.5(@types/node@20.16.5)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): + vite@5.4.5(@types/node@20.16.5)(sass@1.79.1)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): dependencies: esbuild: 0.21.5 postcss: 8.4.47 @@ -14310,14 +14310,14 @@ snapshots: optionalDependencies: '@types/node': 20.16.5 fsevents: 2.3.3 - sass: 1.79.0 + sass: 1.79.1 sugarss: 4.0.1(postcss@8.4.47) terser: 5.32.0 - vitest@2.1.1(@types/node@20.16.5)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): + vitest@2.1.1(@types/node@20.16.5)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.79.1)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): dependencies: '@vitest/expect': 2.1.1 - '@vitest/mocker': 2.1.1(@vitest/spy@2.1.1)(vite@5.4.5(@types/node@20.16.5)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) + '@vitest/mocker': 2.1.1(@vitest/spy@2.1.1)(vite@5.4.5(@types/node@20.16.5)(sass@1.79.1)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) '@vitest/pretty-format': 2.1.1 '@vitest/runner': 2.1.1 '@vitest/snapshot': 2.1.1 @@ -14332,8 +14332,8 @@ snapshots: tinyexec: 0.3.0 tinypool: 1.0.1 tinyrainbow: 1.2.0 - vite: 5.4.5(@types/node@20.16.5)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) - vite-node: 2.1.1(@types/node@20.16.5)(sass@1.79.0)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vite: 5.4.5(@types/node@20.16.5)(sass@1.79.1)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vite-node: 2.1.1(@types/node@20.16.5)(sass@1.79.1)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 20.16.5 From 8f5d7f83879e68b73f20303fbd9d3f4f70f69e3d Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Wed, 18 Sep 2024 07:48:58 +0000 Subject: [PATCH 24/33] fix(deps): update nextjs monorepo to ^14.2.12 (#1146) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- apps/nextjs/package.json | 2 +- packages/api/package.json | 2 +- packages/auth/package.json | 2 +- packages/common/package.json | 2 +- packages/modals-collection/package.json | 2 +- packages/spotlight/package.json | 2 +- packages/ui/package.json | 2 +- packages/widgets/package.json | 2 +- pnpm-lock.yaml | 168 ++++++++++++------------ tooling/eslint/package.json | 2 +- 10 files changed, 93 insertions(+), 93 deletions(-) diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index 95b02ebc6..84401e21c 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -62,7 +62,7 @@ "glob": "^11.0.0", "jotai": "^2.9.3", "mantine-react-table": "2.0.0-beta.6", - "next": "^14.2.11", + "next": "^14.2.12", "postcss-preset-mantine": "^1.17.0", "prismjs": "^1.29.0", "react": "^18.3.1", diff --git a/packages/api/package.json b/packages/api/package.json index 782e0a281..309ec92fe 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -39,7 +39,7 @@ "@trpc/react-query": "next", "@trpc/server": "next", "dockerode": "^4.0.2", - "next": "^14.2.11", + "next": "^14.2.12", "react": "^18.3.1", "superjson": "2.2.1", "trpc-swagger": "^1.2.6" diff --git a/packages/auth/package.json b/packages/auth/package.json index 14ee4aa77..27ff2579e 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -34,7 +34,7 @@ "bcrypt": "^5.1.1", "cookies": "^0.9.1", "ldapts": "7.2.0", - "next": "^14.2.11", + "next": "^14.2.12", "next-auth": "5.0.0-beta.21", "react": "^18.3.1", "react-dom": "^18.3.1" diff --git a/packages/common/package.json b/packages/common/package.json index 63b5b254e..7840c8cf2 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -26,7 +26,7 @@ "prettier": "@homarr/prettier-config", "dependencies": { "dayjs": "^1.11.13", - "next": "^14.2.11", + "next": "^14.2.12", "react": "^18.3.1", "tldts": "^6.1.46" }, diff --git a/packages/modals-collection/package.json b/packages/modals-collection/package.json index c67106f62..8dfd59c65 100644 --- a/packages/modals-collection/package.json +++ b/packages/modals-collection/package.json @@ -33,7 +33,7 @@ "@mantine/core": "^7.12.2", "@tabler/icons-react": "^3.17.0", "dayjs": "^1.11.13", - "next": "^14.2.11", + "next": "^14.2.12", "react": "^18.3.1" }, "devDependencies": { diff --git a/packages/spotlight/package.json b/packages/spotlight/package.json index af4cdd14f..4683a84c2 100644 --- a/packages/spotlight/package.json +++ b/packages/spotlight/package.json @@ -30,7 +30,7 @@ "@mantine/spotlight": "^7.12.2", "@tabler/icons-react": "^3.17.0", "jotai": "^2.9.3", - "next": "^14.2.11", + "next": "^14.2.12", "react": "^18.3.1", "use-deep-compare-effect": "^1.8.1" }, diff --git a/packages/ui/package.json b/packages/ui/package.json index f9bc894d8..db828f05b 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -33,7 +33,7 @@ "@mantine/hooks": "^7.12.2", "@tabler/icons-react": "^3.17.0", "mantine-react-table": "2.0.0-beta.6", - "next": "^14.2.11", + "next": "^14.2.12", "react": "^18.3.1" }, "devDependencies": { diff --git a/packages/widgets/package.json b/packages/widgets/package.json index e73d7232f..aed56e8b5 100644 --- a/packages/widgets/package.json +++ b/packages/widgets/package.json @@ -59,7 +59,7 @@ "clsx": "^2.1.1", "dayjs": "^1.11.13", "mantine-react-table": "2.0.0-beta.6", - "next": "^14.2.11", + "next": "^14.2.12", "react": "^18.3.1", "video.js": "^8.17.4" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f60c1ec1c..7e009e6ef 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -150,13 +150,13 @@ importers: version: 5.56.2(@tanstack/react-query@5.56.2(react@18.3.1))(react@18.3.1) '@tanstack/react-query-next-experimental': specifier: 5.56.2 - version: 5.56.2(@tanstack/react-query@5.56.2(react@18.3.1))(next@14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1))(react@18.3.1) + version: 5.56.2(@tanstack/react-query@5.56.2(react@18.3.1))(next@14.2.12(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1))(react@18.3.1) '@trpc/client': specifier: next version: 11.0.0-rc.502(@trpc/server@11.0.0-rc.502) '@trpc/next': specifier: next - version: 11.0.0-rc.502(@tanstack/react-query@5.56.2(react@18.3.1))(@trpc/client@11.0.0-rc.502(@trpc/server@11.0.0-rc.502))(@trpc/react-query@11.0.0-rc.502(@tanstack/react-query@5.56.2(react@18.3.1))(@trpc/client@11.0.0-rc.502(@trpc/server@11.0.0-rc.502))(@trpc/server@11.0.0-rc.502)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/server@11.0.0-rc.502)(next@14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 11.0.0-rc.502(@tanstack/react-query@5.56.2(react@18.3.1))(@trpc/client@11.0.0-rc.502(@trpc/server@11.0.0-rc.502))(@trpc/react-query@11.0.0-rc.502(@tanstack/react-query@5.56.2(react@18.3.1))(@trpc/client@11.0.0-rc.502(@trpc/server@11.0.0-rc.502))(@trpc/server@11.0.0-rc.502)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/server@11.0.0-rc.502)(next@14.2.12(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@trpc/react-query': specifier: next version: 11.0.0-rc.502(@tanstack/react-query@5.56.2(react@18.3.1))(@trpc/client@11.0.0-rc.502(@trpc/server@11.0.0-rc.502))(@trpc/server@11.0.0-rc.502)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -197,8 +197,8 @@ importers: specifier: 2.0.0-beta.6 version: 2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.17.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next: - specifier: ^14.2.11 - version: 14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1) + specifier: ^14.2.12 + version: 14.2.12(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1) postcss-preset-mantine: specifier: ^1.17.0 version: 1.17.0(postcss@8.4.47) @@ -513,8 +513,8 @@ importers: specifier: ^4.0.2 version: 4.0.2 next: - specifier: ^14.2.11 - version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1) + specifier: ^14.2.12 + version: 14.2.12(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1) react: specifier: ^18.3.1 version: 18.3.1 @@ -583,11 +583,11 @@ importers: specifier: 7.2.0 version: 7.2.0 next: - specifier: ^14.2.11 - version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1) + specifier: ^14.2.12 + version: 14.2.12(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1) next-auth: specifier: 5.0.0-beta.21 - version: 5.0.0-beta.21(next@14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1))(react@18.3.1) + version: 5.0.0-beta.21(next@14.2.12(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1))(react@18.3.1) react: specifier: ^18.3.1 version: 18.3.1 @@ -660,8 +660,8 @@ importers: specifier: ^1.11.13 version: 1.11.13 next: - specifier: ^14.2.11 - version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1) + specifier: ^14.2.12 + version: 14.2.12(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1) react: specifier: ^18.3.1 version: 18.3.1 @@ -1110,8 +1110,8 @@ importers: specifier: ^1.11.13 version: 1.11.13 next: - specifier: ^14.2.11 - version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1) + specifier: ^14.2.12 + version: 14.2.12(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1) react: specifier: ^18.3.1 version: 18.3.1 @@ -1326,8 +1326,8 @@ importers: specifier: ^2.9.3 version: 2.9.3(@types/react@18.3.7)(react@18.3.1) next: - specifier: ^14.2.11 - version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1) + specifier: ^14.2.12 + version: 14.2.12(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1) react: specifier: ^18.3.1 version: 18.3.1 @@ -1409,8 +1409,8 @@ importers: specifier: 2.0.0-beta.6 version: 2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.17.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next: - specifier: ^14.2.11 - version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1) + specifier: ^14.2.12 + version: 14.2.12(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1) react: specifier: ^18.3.1 version: 18.3.1 @@ -1579,8 +1579,8 @@ importers: specifier: 2.0.0-beta.6 version: 2.0.0-beta.6(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.12.2(@mantine/core@7.12.2(@mantine/hooks@7.12.2(react@18.3.1))(@types/react@18.3.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.12.2(react@18.3.1))(@tabler/icons-react@3.17.0(react@18.3.1))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next: - specifier: ^14.2.11 - version: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1) + specifier: ^14.2.12 + version: 14.2.12(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1) react: specifier: ^18.3.1 version: 18.3.1 @@ -1610,8 +1610,8 @@ importers: tooling/eslint: dependencies: '@next/eslint-plugin-next': - specifier: ^14.2.11 - version: 14.2.11 + specifier: ^14.2.12 + version: 14.2.12 eslint-config-prettier: specifier: ^9.1.0 version: 9.1.0(eslint@9.10.0) @@ -2620,62 +2620,62 @@ packages: resolution: {integrity: sha512-wtxyxMPAJNoX66LQMy/elx0JfikYD62zflc0q4LngQHGiCKmwgncTg9MebsPUtsBikGY1Aom28hKmhq1T51V/w==} hasBin: true - '@next/env@14.2.11': - resolution: {integrity: sha512-HYsQRSIXwiNqvzzYThrBwq6RhXo3E0n8j8nQnAs8i4fCEo2Zf/3eS0IiRA8XnRg9Ha0YnpkyJZIZg1qEwemrHw==} + '@next/env@14.2.12': + resolution: {integrity: sha512-3fP29GIetdwVIfIRyLKM7KrvJaqepv+6pVodEbx0P5CaMLYBtx+7eEg8JYO5L9sveJO87z9eCReceZLi0hxO1Q==} - '@next/eslint-plugin-next@14.2.11': - resolution: {integrity: sha512-7mw+xW7Y03Ph4NTCcAzYe+vu4BNjEHZUfZayyF3Y1D9RX6c5NIe25m1grHEAkyUuaqjRxOYhnCNeglOkIqLkBA==} + '@next/eslint-plugin-next@14.2.12': + resolution: {integrity: sha512-cPrKbXtK8NTThOOFNxRGGTw+5s02Ek8z8ri/hZqeKs6uP8LOTGqFyBy6hpCXt7TvLzzriWiiwRyD4h0XYmPEEg==} - '@next/swc-darwin-arm64@14.2.11': - resolution: {integrity: sha512-eiY9u7wEJZWp/Pga07Qy3ZmNEfALmmSS1HtsJF3y1QEyaExu7boENz11fWqDmZ3uvcyAxCMhTrA1jfVxITQW8g==} + '@next/swc-darwin-arm64@14.2.12': + resolution: {integrity: sha512-crHJ9UoinXeFbHYNok6VZqjKnd8rTd7K3Z2zpyzF1ch7vVNKmhjv/V7EHxep3ILoN8JB9AdRn/EtVVyG9AkCXw==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@14.2.11': - resolution: {integrity: sha512-lnB0zYCld4yE0IX3ANrVMmtAbziBb7MYekcmR6iE9bujmgERl6+FK+b0MBq0pl304lYe7zO4yxJus9H/Af8jbg==} + '@next/swc-darwin-x64@14.2.12': + resolution: {integrity: sha512-JbEaGbWq18BuNBO+lCtKfxl563Uw9oy2TodnN2ioX00u7V1uzrsSUcg3Ep9ce+P0Z9es+JmsvL2/rLphz+Frcw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@14.2.11': - resolution: {integrity: sha512-Ulo9TZVocYmUAtzvZ7FfldtwUoQY0+9z3BiXZCLSUwU2bp7GqHA7/bqrfsArDlUb2xeGwn3ZuBbKtNK8TR0A8w==} + '@next/swc-linux-arm64-gnu@14.2.12': + resolution: {integrity: sha512-qBy7OiXOqZrdp88QEl2H4fWalMGnSCrr1agT/AVDndlyw2YJQA89f3ttR/AkEIP9EkBXXeGl6cC72/EZT5r6rw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@14.2.11': - resolution: {integrity: sha512-fH377DnKGyUnkWlmUpFF1T90m0dADBfK11dF8sOQkiELF9M+YwDRCGe8ZyDzvQcUd20Rr5U7vpZRrAxKwd3Rzg==} + '@next/swc-linux-arm64-musl@14.2.12': + resolution: {integrity: sha512-EfD9L7o9biaQxjwP1uWXnk3vYZi64NVcKUN83hpVkKocB7ogJfyH2r7o1pPnMtir6gHZiGCeHKagJ0yrNSLNHw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-x64-gnu@14.2.11': - resolution: {integrity: sha512-a0TH4ZZp4NS0LgXP/488kgvWelNpwfgGTUCDXVhPGH6pInb7yIYNgM4kmNWOxBFt+TIuOH6Pi9NnGG4XWFUyXQ==} + '@next/swc-linux-x64-gnu@14.2.12': + resolution: {integrity: sha512-iQ+n2pxklJew9IpE47hE/VgjmljlHqtcD5UhZVeHICTPbLyrgPehaKf2wLRNjYH75udroBNCgrSSVSVpAbNoYw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@14.2.11': - resolution: {integrity: sha512-DYYZcO4Uir2gZxA4D2JcOAKVs8ZxbOFYPpXSVIgeoQbREbeEHxysVsg3nY4FrQy51e5opxt5mOHl/LzIyZBoKA==} + '@next/swc-linux-x64-musl@14.2.12': + resolution: {integrity: sha512-rFkUkNwcQ0ODn7cxvcVdpHlcOpYxMeyMfkJuzaT74xjAa5v4fxP4xDk5OoYmPi8QNLDs3UgZPMSBmpBuv9zKWA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-win32-arm64-msvc@14.2.11': - resolution: {integrity: sha512-PwqHeKG3/kKfPpM6of1B9UJ+Er6ySUy59PeFu0Un0LBzJTRKKAg2V6J60Yqzp99m55mLa+YTbU6xj61ImTv9mg==} + '@next/swc-win32-arm64-msvc@14.2.12': + resolution: {integrity: sha512-PQFYUvwtHs/u0K85SG4sAdDXYIPXpETf9mcEjWc0R4JmjgMKSDwIU/qfZdavtP6MPNiMjuKGXHCtyhR/M5zo8g==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-ia32-msvc@14.2.11': - resolution: {integrity: sha512-0U7PWMnOYIvM74GY6rbH6w7v+vNPDVH1gUhlwHpfInJnNe5LkmUZqhp7FNWeNa5wbVgRcRi1F1cyxp4dmeLLvA==} + '@next/swc-win32-ia32-msvc@14.2.12': + resolution: {integrity: sha512-FAj2hMlcbeCV546eU2tEv41dcJb4NeqFlSXU/xL/0ehXywHnNpaYajOUvn3P8wru5WyQe6cTZ8fvckj/2XN4Vw==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@next/swc-win32-x64-msvc@14.2.11': - resolution: {integrity: sha512-gQpS7mcgovWoaTG1FbS5/ojF7CGfql1Q0ZLsMrhcsi2Sr9HEqsUZ70MPJyaYBXbk6iEAP7UXMD9HC8KY1qNwvA==} + '@next/swc-win32-x64-msvc@14.2.12': + resolution: {integrity: sha512-yu8QvV53sBzoIVRHsxCHqeuS8jYq6Lrmdh0briivuh+Brsp6xjg80MAozUsBTAV9KNmY08KlX0KYTWz1lbPzEg==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -5829,8 +5829,8 @@ packages: next-international@1.2.4: resolution: {integrity: sha512-JQvp+h2iSgA/t8hu5S/Lwow1ZErJutQRdpnplxjv4VTlCiND8T95fYih8BjkHcVhQbtM+Wu9Mb1CM32wD9hlWQ==} - next@14.2.11: - resolution: {integrity: sha512-8MDFqHBhdmR2wdfaWc8+lW3A/hppFe1ggQ9vgIu/g2/2QEMYJrPoQP6b+VNk56gIug/bStysAmrpUKtj3XN8Bw==} + next@14.2.12: + resolution: {integrity: sha512-cDOtUSIeoOvt1skKNihdExWMTybx3exnvbFbb9ecZDIxlvIbREQzt9A5Km3Zn3PfU+IFjyYGsHS+lN9VInAGKA==} engines: {node: '>=18.17.0'} hasBin: true peerDependencies: @@ -8608,37 +8608,37 @@ snapshots: - utf-8-validate - webpack-sources - '@next/env@14.2.11': {} + '@next/env@14.2.12': {} - '@next/eslint-plugin-next@14.2.11': + '@next/eslint-plugin-next@14.2.12': dependencies: glob: 10.3.10 - '@next/swc-darwin-arm64@14.2.11': + '@next/swc-darwin-arm64@14.2.12': optional: true - '@next/swc-darwin-x64@14.2.11': + '@next/swc-darwin-x64@14.2.12': optional: true - '@next/swc-linux-arm64-gnu@14.2.11': + '@next/swc-linux-arm64-gnu@14.2.12': optional: true - '@next/swc-linux-arm64-musl@14.2.11': + '@next/swc-linux-arm64-musl@14.2.12': optional: true - '@next/swc-linux-x64-gnu@14.2.11': + '@next/swc-linux-x64-gnu@14.2.12': optional: true - '@next/swc-linux-x64-musl@14.2.11': + '@next/swc-linux-x64-musl@14.2.12': optional: true - '@next/swc-win32-arm64-msvc@14.2.11': + '@next/swc-win32-arm64-msvc@14.2.12': optional: true - '@next/swc-win32-ia32-msvc@14.2.11': + '@next/swc-win32-ia32-msvc@14.2.12': optional: true - '@next/swc-win32-x64-msvc@14.2.11': + '@next/swc-win32-x64-msvc@14.2.12': optional: true '@noble/hashes@1.5.0': {} @@ -9119,10 +9119,10 @@ snapshots: '@tanstack/react-query': 5.56.2(react@18.3.1) react: 18.3.1 - '@tanstack/react-query-next-experimental@5.56.2(@tanstack/react-query@5.56.2(react@18.3.1))(next@14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1))(react@18.3.1)': + '@tanstack/react-query-next-experimental@5.56.2(@tanstack/react-query@5.56.2(react@18.3.1))(next@14.2.12(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1))(react@18.3.1)': dependencies: '@tanstack/react-query': 5.56.2(react@18.3.1) - next: 14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1) + next: 14.2.12(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1) react: 18.3.1 '@tanstack/react-query@5.56.2(react@18.3.1)': @@ -9364,11 +9364,11 @@ snapshots: dependencies: '@trpc/server': 11.0.0-rc.502 - '@trpc/next@11.0.0-rc.502(@tanstack/react-query@5.56.2(react@18.3.1))(@trpc/client@11.0.0-rc.502(@trpc/server@11.0.0-rc.502))(@trpc/react-query@11.0.0-rc.502(@tanstack/react-query@5.56.2(react@18.3.1))(@trpc/client@11.0.0-rc.502(@trpc/server@11.0.0-rc.502))(@trpc/server@11.0.0-rc.502)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/server@11.0.0-rc.502)(next@14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@trpc/next@11.0.0-rc.502(@tanstack/react-query@5.56.2(react@18.3.1))(@trpc/client@11.0.0-rc.502(@trpc/server@11.0.0-rc.502))(@trpc/react-query@11.0.0-rc.502(@tanstack/react-query@5.56.2(react@18.3.1))(@trpc/client@11.0.0-rc.502(@trpc/server@11.0.0-rc.502))(@trpc/server@11.0.0-rc.502)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/server@11.0.0-rc.502)(next@14.2.12(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@trpc/client': 11.0.0-rc.502(@trpc/server@11.0.0-rc.502) '@trpc/server': 11.0.0-rc.502 - next: 14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1) + next: 14.2.12(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: @@ -12348,10 +12348,10 @@ snapshots: netmask@2.0.2: {} - next-auth@5.0.0-beta.21(next@14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1))(react@18.3.1): + next-auth@5.0.0-beta.21(next@14.2.12(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1))(react@18.3.1): dependencies: '@auth/core': 0.35.0 - next: 14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1) + next: 14.2.12(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1) react: 18.3.1 next-international@1.2.4: @@ -12360,9 +12360,9 @@ snapshots: international-types: 0.8.1 server-only: 0.0.1 - next@14.2.11(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1): + next@14.2.12(@babel/core@7.24.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1): dependencies: - '@next/env': 14.2.11 + '@next/env': 14.2.12 '@swc/helpers': 0.5.5 busboy: 1.6.0 caniuse-lite: 1.0.30001660 @@ -12372,23 +12372,23 @@ snapshots: react-dom: 18.3.1(react@18.3.1) styled-jsx: 5.1.1(@babel/core@7.24.6)(react@18.3.1) optionalDependencies: - '@next/swc-darwin-arm64': 14.2.11 - '@next/swc-darwin-x64': 14.2.11 - '@next/swc-linux-arm64-gnu': 14.2.11 - '@next/swc-linux-arm64-musl': 14.2.11 - '@next/swc-linux-x64-gnu': 14.2.11 - '@next/swc-linux-x64-musl': 14.2.11 - '@next/swc-win32-arm64-msvc': 14.2.11 - '@next/swc-win32-ia32-msvc': 14.2.11 - '@next/swc-win32-x64-msvc': 14.2.11 + '@next/swc-darwin-arm64': 14.2.12 + '@next/swc-darwin-x64': 14.2.12 + '@next/swc-linux-arm64-gnu': 14.2.12 + '@next/swc-linux-arm64-musl': 14.2.12 + '@next/swc-linux-x64-gnu': 14.2.12 + '@next/swc-linux-x64-musl': 14.2.12 + '@next/swc-win32-arm64-msvc': 14.2.12 + '@next/swc-win32-ia32-msvc': 14.2.12 + '@next/swc-win32-x64-msvc': 14.2.12 sass: 1.79.1 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros - next@14.2.11(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1): + next@14.2.12(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.79.1): dependencies: - '@next/env': 14.2.11 + '@next/env': 14.2.12 '@swc/helpers': 0.5.5 busboy: 1.6.0 caniuse-lite: 1.0.30001660 @@ -12398,15 +12398,15 @@ snapshots: react-dom: 18.3.1(react@18.3.1) styled-jsx: 5.1.1(@babel/core@7.25.2)(react@18.3.1) optionalDependencies: - '@next/swc-darwin-arm64': 14.2.11 - '@next/swc-darwin-x64': 14.2.11 - '@next/swc-linux-arm64-gnu': 14.2.11 - '@next/swc-linux-arm64-musl': 14.2.11 - '@next/swc-linux-x64-gnu': 14.2.11 - '@next/swc-linux-x64-musl': 14.2.11 - '@next/swc-win32-arm64-msvc': 14.2.11 - '@next/swc-win32-ia32-msvc': 14.2.11 - '@next/swc-win32-x64-msvc': 14.2.11 + '@next/swc-darwin-arm64': 14.2.12 + '@next/swc-darwin-x64': 14.2.12 + '@next/swc-linux-arm64-gnu': 14.2.12 + '@next/swc-linux-arm64-musl': 14.2.12 + '@next/swc-linux-x64-gnu': 14.2.12 + '@next/swc-linux-x64-musl': 14.2.12 + '@next/swc-win32-arm64-msvc': 14.2.12 + '@next/swc-win32-ia32-msvc': 14.2.12 + '@next/swc-win32-x64-msvc': 14.2.12 sass: 1.79.1 transitivePeerDependencies: - '@babel/core' diff --git a/tooling/eslint/package.json b/tooling/eslint/package.json index 807e267e4..59fc897a6 100644 --- a/tooling/eslint/package.json +++ b/tooling/eslint/package.json @@ -16,7 +16,7 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@next/eslint-plugin-next": "^14.2.11", + "@next/eslint-plugin-next": "^14.2.12", "eslint-config-prettier": "^9.1.0", "eslint-config-turbo": "^2.1.2", "eslint-plugin-import": "^2.30.0", From 6d4d6efe3f575830d10e8d04d71b14dcda82223b Mon Sep 17 00:00:00 2001 From: SeDemal Date: Wed, 18 Sep 2024 12:11:23 +0200 Subject: [PATCH 25/33] fix: indexer manager UI behaviour + class naming (#1134) --- .../widgets/src/indexer-manager/component.tsx | 56 +++++++++++++------ 1 file changed, 39 insertions(+), 17 deletions(-) diff --git a/packages/widgets/src/indexer-manager/component.tsx b/packages/widgets/src/indexer-manager/component.tsx index d9d79020f..6e487af5a 100644 --- a/packages/widgets/src/indexer-manager/component.tsx +++ b/packages/widgets/src/indexer-manager/component.tsx @@ -16,9 +16,6 @@ export default function IndexerManagerWidget({ integrationIds, serverData, }: WidgetComponentProps<"indexerManager">) { - if (integrationIds.length === 0) { - throw new NoIntegrationSelectedError(); - } const t = useI18n(); const [indexersData, setIndexersData] = useState<{ integrationId: string; indexers: Indexer[] }[]>( serverData?.initialData ?? [], @@ -39,26 +36,49 @@ export default function IndexerManagerWidget({ }, ); + const iconStyle = { height: "7.5cqmin", width: "7.5cqmin" }; + + if (integrationIds.length === 0) { + throw new NoIntegrationSelectedError(); + } + return ( - - - {t("widget.indexerManager.title")} + + + {t("widget.indexerManager.title")} - - + + {indexersData.map(({ integrationId, indexers }) => ( - + {indexers.map((indexer) => ( - - - + + + {indexer.name} {indexer.status === false || indexer.enabled === false ? ( - + ) : ( - + )} ))} @@ -67,11 +87,13 @@ export default function IndexerManagerWidget({ @@ -43,7 +25,7 @@ export const CreateBoardButton = ({ boardNames }: CreateBoardButtonProps) => { - }> + }> {t("board.action.oldImport.label")} diff --git a/apps/nextjs/src/app/[locale]/manage/boards/page.tsx b/apps/nextjs/src/app/[locale]/manage/boards/page.tsx index 506af6a99..482701639 100644 --- a/apps/nextjs/src/app/[locale]/manage/boards/page.tsx +++ b/apps/nextjs/src/app/[locale]/manage/boards/page.tsx @@ -39,7 +39,7 @@ export default async function ManageBoardsPage() { {t("title")} - board.name)} /> + diff --git a/apps/nextjs/src/app/[locale]/manage/integrations/edit/[id]/page.tsx b/apps/nextjs/src/app/[locale]/manage/integrations/edit/[id]/page.tsx index a2b557522..7fa82f019 100644 --- a/apps/nextjs/src/app/[locale]/manage/integrations/edit/[id]/page.tsx +++ b/apps/nextjs/src/app/[locale]/manage/integrations/edit/[id]/page.tsx @@ -3,10 +3,10 @@ import { Container, Fieldset, Group, Stack, Title } from "@mantine/core"; import { api } from "@homarr/api/server"; import { getIntegrationName } from "@homarr/definitions"; import { getI18n, getScopedI18n } from "@homarr/translation/server"; +import { IntegrationAvatar } from "@homarr/ui"; import { DynamicBreadcrumb } from "~/components/navigation/dynamic-breadcrumb"; import { IntegrationAccessSettings } from "../../_components/integration-access-settings"; -import { IntegrationAvatar } from "../../_integration-avatar"; import { EditIntegrationForm } from "./_integration-edit-form"; interface EditIntegrationPageProps { diff --git a/apps/nextjs/src/app/[locale]/manage/integrations/new/_integration-new-dropdown.tsx b/apps/nextjs/src/app/[locale]/manage/integrations/new/_integration-new-dropdown.tsx index b2700ff70..188916e9e 100644 --- a/apps/nextjs/src/app/[locale]/manage/integrations/new/_integration-new-dropdown.tsx +++ b/apps/nextjs/src/app/[locale]/manage/integrations/new/_integration-new-dropdown.tsx @@ -8,8 +8,7 @@ import { IconSearch } from "@tabler/icons-react"; import { getIntegrationName, integrationKinds } from "@homarr/definitions"; import { useI18n } from "@homarr/translation/client"; - -import { IntegrationAvatar } from "../_integration-avatar"; +import { IntegrationAvatar } from "@homarr/ui"; export const IntegrationCreateDropdownContent = () => { const t = useI18n(); diff --git a/apps/nextjs/src/app/[locale]/manage/integrations/new/page.tsx b/apps/nextjs/src/app/[locale]/manage/integrations/new/page.tsx index 3dcc78ab2..6665a2417 100644 --- a/apps/nextjs/src/app/[locale]/manage/integrations/new/page.tsx +++ b/apps/nextjs/src/app/[locale]/manage/integrations/new/page.tsx @@ -4,11 +4,11 @@ import { Container, Group, Stack, Title } from "@mantine/core"; import type { IntegrationKind } from "@homarr/definitions"; import { getIntegrationName, integrationKinds } from "@homarr/definitions"; import { getScopedI18n } from "@homarr/translation/server"; +import { IntegrationAvatar } from "@homarr/ui"; import type { validation } from "@homarr/validation"; import { z } from "@homarr/validation"; import { DynamicBreadcrumb } from "~/components/navigation/dynamic-breadcrumb"; -import { IntegrationAvatar } from "../_integration-avatar"; import { NewIntegrationForm } from "./_integration-new-form"; interface NewIntegrationPageProps { diff --git a/apps/nextjs/src/app/[locale]/manage/integrations/page.tsx b/apps/nextjs/src/app/[locale]/manage/integrations/page.tsx index f3d1cc0af..7df483661 100644 --- a/apps/nextjs/src/app/[locale]/manage/integrations/page.tsx +++ b/apps/nextjs/src/app/[locale]/manage/integrations/page.tsx @@ -34,12 +34,11 @@ import { objectEntries } from "@homarr/common"; import type { IntegrationKind } from "@homarr/definitions"; import { getIntegrationName } from "@homarr/definitions"; import { getScopedI18n } from "@homarr/translation/server"; -import { CountBadge } from "@homarr/ui"; +import { CountBadge, IntegrationAvatar } from "@homarr/ui"; import { ManageContainer } from "~/components/manage/manage-container"; import { DynamicBreadcrumb } from "~/components/navigation/dynamic-breadcrumb"; import { ActiveTabAccordion } from "../../../../components/active-tab-accordion"; -import { IntegrationAvatar } from "./_integration-avatar"; import { DeleteIntegrationActionButton } from "./_integration-buttons"; import { IntegrationCreateDropdownContent } from "./new/_integration-new-dropdown"; diff --git a/apps/nextjs/src/app/[locale]/manage/layout.tsx b/apps/nextjs/src/app/[locale]/manage/layout.tsx index 613383fd1..58314d65a 100644 --- a/apps/nextjs/src/app/[locale]/manage/layout.tsx +++ b/apps/nextjs/src/app/[locale]/manage/layout.tsx @@ -113,7 +113,7 @@ export default async function ManageLayout({ children }: PropsWithChildren) { { label: t("items.help.items.documentation"), icon: IconBook2, - href: "https://homarr.dev/docs/getting-started/prerequisites", + href: "https://homarr.dev/docs/getting-started/", external: true, }, { @@ -123,7 +123,7 @@ export default async function ManageLayout({ children }: PropsWithChildren) { external: true, }, { - label: t("items.tools.items.docker"), + label: t("items.help.items.discord"), icon: IconBrandDiscord, href: "https://discord.com/invite/aCsmEV5RgA", external: true, diff --git a/apps/nextjs/src/app/[locale]/manage/users/groups/_add-group.tsx b/apps/nextjs/src/app/[locale]/manage/users/groups/_add-group.tsx index 97d135589..f3febd49c 100644 --- a/apps/nextjs/src/app/[locale]/manage/users/groups/_add-group.tsx +++ b/apps/nextjs/src/app/[locale]/manage/users/groups/_add-group.tsx @@ -1,15 +1,10 @@ "use client"; import { useCallback } from "react"; -import { Button, Group, Stack, TextInput } from "@mantine/core"; -import { clientApi } from "@homarr/api/client"; -import { revalidatePathActionAsync } from "@homarr/common/client"; -import { useZodForm } from "@homarr/form"; -import { createModal, useModalAction } from "@homarr/modals"; -import { showErrorNotification, showSuccessNotification } from "@homarr/notifications"; +import { useModalAction } from "@homarr/modals"; +import { AddGroupModal } from "@homarr/modals-collection"; import { useI18n } from "@homarr/translation/client"; -import { validation } from "@homarr/validation"; import { MobileAffixButton } from "~/components/manage/mobile-affix-button"; @@ -27,50 +22,3 @@ export const AddGroup = () => { ); }; - -const AddGroupModal = createModal(({ actions }) => { - const t = useI18n(); - const { mutate, isPending } = clientApi.group.createGroup.useMutation(); - const form = useZodForm(validation.group.create, { - initialValues: { - name: "", - }, - }); - - return ( - { - mutate(values, { - onSuccess() { - actions.closeModal(); - void revalidatePathActionAsync("/manage/users/groups"); - showSuccessNotification({ - title: t("common.notification.create.success"), - message: t("group.action.create.notification.success.message"), - }); - }, - onError() { - showErrorNotification({ - title: t("common.notification.create.error"), - message: t("group.action.create.notification.error.message"), - }); - }, - }); - })} - > - - - - - - - - - ); -}).withOptions({ - defaultTitle: (t) => t("group.action.create.label"), -}); diff --git a/apps/nextjs/src/components/board/items/item-menu.tsx b/apps/nextjs/src/components/board/items/item-menu.tsx index c02f915cd..4c4d9642f 100644 --- a/apps/nextjs/src/components/board/items/item-menu.tsx +++ b/apps/nextjs/src/components/board/items/item-menu.tsx @@ -107,7 +107,7 @@ export const BoardItemMenu = ({ }} > {tItem("action.moveResize")} - {" "} + } onClick={() => duplicateItem({ itemId: item.id })}> {tItem("action.duplicate")} diff --git a/apps/nextjs/src/components/icons/picker/icon-picker.tsx b/apps/nextjs/src/components/icons/picker/icon-picker.tsx index 51143cd01..91983ff7c 100644 --- a/apps/nextjs/src/components/icons/picker/icon-picker.tsx +++ b/apps/nextjs/src/components/icons/picker/icon-picker.tsx @@ -3,7 +3,7 @@ import { useState } from "react"; import { Combobox, Group, Image, InputBase, Skeleton, Text, useCombobox } from "@mantine/core"; import { clientApi } from "@homarr/api/client"; -import { useScopedI18n } from "@homarr/translation/client"; +import { useI18n, useScopedI18n } from "@homarr/translation/client"; interface IconPickerProps { initialValue?: string; @@ -18,7 +18,8 @@ export const IconPicker = ({ initialValue, onChange, error, onFocus, onBlur }: I const [search, setSearch] = useState(initialValue ?? ""); const [previewUrl, setPreviewUrl] = useState(initialValue ?? null); - const t = useScopedI18n("common"); + const t = useI18n(); + const tCommon = useScopedI18n("common"); const { data, isFetching } = clientApi.icon.findIcons.useQuery({ searchText: search, @@ -89,13 +90,13 @@ export const IconPicker = ({ initialValue, onChange, error, onFocus, onBlur }: I rightSectionPointerEvents="none" withAsterisk error={error} - label={t("iconPicker.label")} + label={tCommon("iconPicker.label")} /> - {t("iconPicker.header", { countIcons: data?.countIcons })} + {tCommon("iconPicker.header", { countIcons: data?.countIcons })} {totalOptions > 0 ? ( diff --git a/apps/nextjs/src/components/layout/header/search.tsx b/apps/nextjs/src/components/layout/header/search.tsx index 4dad0404f..9b2edd78f 100644 --- a/apps/nextjs/src/components/layout/header/search.tsx +++ b/apps/nextjs/src/components/layout/header/search.tsx @@ -4,13 +4,13 @@ import { TextInput, UnstyledButton } from "@mantine/core"; import { IconSearch } from "@tabler/icons-react"; import { openSpotlight } from "@homarr/spotlight"; -import { useScopedI18n } from "@homarr/translation/client"; +import { useI18n } from "@homarr/translation/client"; import { HeaderButton } from "./button"; import classes from "./search.module.css"; export const DesktopSearchInput = () => { - const t = useScopedI18n("common.search"); + const t = useI18n(); return ( { leftSection={} onClick={openSpotlight} > - {t("placeholder")} + {t("common.rtl", { + value: t("search.placeholder"), + symbol: "...", + })} ); }; diff --git a/packages/api/src/router/app.ts b/packages/api/src/router/app.ts index 38171a946..714828838 100644 --- a/packages/api/src/router/app.ts +++ b/packages/api/src/router/app.ts @@ -1,8 +1,8 @@ import { TRPCError } from "@trpc/server"; -import { asc, createId, eq } from "@homarr/db"; +import { asc, createId, eq, like } from "@homarr/db"; import { apps } from "@homarr/db/schema/sqlite"; -import { validation } from "@homarr/validation"; +import { validation, z } from "@homarr/validation"; import { createTRPCRouter, publicProcedure } from "../trpc"; @@ -22,6 +22,15 @@ export const appRouter = createTRPCRouter({ orderBy: asc(apps.name), }); }), + search: publicProcedure + .input(z.object({ query: z.string(), limit: z.number().min(1).max(100).default(10) })) + .query(async ({ ctx, input }) => { + return await ctx.db.query.apps.findMany({ + where: like(apps.name, `%${input.query}%`), + orderBy: asc(apps.name), + limit: input.limit, + }); + }), byId: publicProcedure.input(validation.app.byId).query(async ({ ctx, input }) => { const app = await ctx.db.query.apps.findFirst({ where: eq(apps.id, input.id), diff --git a/packages/api/src/router/board.ts b/packages/api/src/router/board.ts index 97931de95..bc1fba67a 100644 --- a/packages/api/src/router/board.ts +++ b/packages/api/src/router/board.ts @@ -1,8 +1,9 @@ import { TRPCError } from "@trpc/server"; import superjson from "superjson"; +import { constructBoardPermissions } from "@homarr/auth/shared"; import type { Database, SQL } from "@homarr/db"; -import { and, createId, eq, inArray, or } from "@homarr/db"; +import { and, createId, eq, inArray, like, or } from "@homarr/db"; import { boardGroupPermissions, boards, @@ -109,6 +110,79 @@ export const boardRouter = createTRPCRouter({ isHome: currentUserWhenPresent?.homeBoardId === board.id, })); }), + search: publicProcedure + .input(z.object({ query: z.string(), limit: z.number().min(1).max(100).default(10) })) + .query(async ({ ctx, input }) => { + const userId = ctx.session?.user.id; + const permissionsOfCurrentUserWhenPresent = await ctx.db.query.boardUserPermissions.findMany({ + where: eq(boardUserPermissions.userId, userId ?? ""), + }); + + const permissionsOfCurrentUserGroupsWhenPresent = await ctx.db.query.groupMembers.findMany({ + where: eq(groupMembers.userId, userId ?? ""), + with: { + group: { + with: { + boardPermissions: {}, + }, + }, + }, + }); + const boardIds = permissionsOfCurrentUserWhenPresent + .map((permission) => permission.boardId) + .concat( + permissionsOfCurrentUserGroupsWhenPresent + .map((groupMember) => groupMember.group.boardPermissions.map((permission) => permission.boardId)) + .flat(), + ); + + const currentUserWhenPresent = await ctx.db.query.users.findFirst({ + where: eq(users.id, userId ?? ""), + }); + + const foundBoards = await ctx.db.query.boards.findMany({ + where: and( + like(boards.name, `%${input.query}%`), + ctx.session?.user.permissions.includes("board-view-all") + ? undefined + : or( + eq(boards.isPublic, true), + eq(boards.creatorId, ctx.session?.user.id ?? ""), + inArray(boards.id, boardIds), + ), + ), + limit: input.limit, + columns: { + id: true, + name: true, + creatorId: true, + isPublic: true, + logoImageUrl: true, + }, + with: { + userPermissions: { + where: eq(boardUserPermissions.userId, ctx.session?.user.id ?? ""), + }, + groupPermissions: { + where: + permissionsOfCurrentUserGroupsWhenPresent.length >= 1 + ? inArray( + boardGroupPermissions.groupId, + permissionsOfCurrentUserGroupsWhenPresent.map((groupMember) => groupMember.groupId), + ) + : undefined, + }, + }, + }); + + return foundBoards.map((board) => ({ + id: board.id, + name: board.name, + logoImageUrl: board.logoImageUrl, + permissions: constructBoardPermissions(board, ctx.session), + isHome: currentUserWhenPresent?.homeBoardId === board.id, + })); + }), createBoard: permissionRequiredProcedure .requiresPermission("board-create") .input(validation.board.create) diff --git a/packages/api/src/router/group.ts b/packages/api/src/router/group.ts index 7a47e7d3e..639a5bf15 100644 --- a/packages/api/src/router/group.ts +++ b/packages/api/src/router/group.ts @@ -3,9 +3,9 @@ import { TRPCError } from "@trpc/server"; import type { Database } from "@homarr/db"; import { and, createId, eq, like, not, sql } from "@homarr/db"; import { groupMembers, groupPermissions, groups } from "@homarr/db/schema/sqlite"; -import { validation } from "@homarr/validation"; +import { validation, z } from "@homarr/validation"; -import { createTRPCRouter, protectedProcedure } from "../trpc"; +import { createTRPCRouter, protectedProcedure, publicProcedure } from "../trpc"; export const groupRouter = createTRPCRouter({ getPaginated: protectedProcedure.input(validation.group.paginated).query(async ({ input, ctx }) => { @@ -91,6 +91,23 @@ export const groupRouter = createTRPCRouter({ }, }); }), + search: publicProcedure + .input( + z.object({ + query: z.string(), + limit: z.number().min(1).max(100).default(10), + }), + ) + .query(async ({ input, ctx }) => { + return await ctx.db.query.groups.findMany({ + where: like(groups.name, `%${input.query}%`), + columns: { + id: true, + name: true, + }, + limit: input.limit, + }); + }), createGroup: protectedProcedure.input(validation.group.create).mutation(async ({ input, ctx }) => { const normalizedName = normalizeName(input.name); await checkSimilarNameAndThrowAsync(ctx.db, normalizedName); diff --git a/packages/api/src/router/integration/integration-router.ts b/packages/api/src/router/integration/integration-router.ts index 5ac6c4350..196c30761 100644 --- a/packages/api/src/router/integration/integration-router.ts +++ b/packages/api/src/router/integration/integration-router.ts @@ -2,7 +2,7 @@ import { TRPCError } from "@trpc/server"; import { decryptSecret, encryptSecret } from "@homarr/common/server"; import type { Database } from "@homarr/db"; -import { and, createId, eq, inArray } from "@homarr/db"; +import { and, asc, createId, eq, inArray, like } from "@homarr/db"; import { groupPermissions, integrationGroupPermissions, @@ -12,7 +12,7 @@ import { } from "@homarr/db/schema/sqlite"; import type { IntegrationSecretKind } from "@homarr/definitions"; import { getPermissionsWithParents, integrationKinds, integrationSecretKindObject } from "@homarr/definitions"; -import { validation } from "@homarr/validation"; +import { validation, z } from "@homarr/validation"; import { createTRPCRouter, permissionRequiredProcedure, protectedProcedure } from "../../trpc"; import { throwIfActionForbiddenAsync } from "./integration-access"; @@ -33,6 +33,15 @@ export const integrationRouter = createTRPCRouter({ integrationKinds.indexOf(integrationA.kind) - integrationKinds.indexOf(integrationB.kind), ); }), + search: protectedProcedure + .input(z.object({ query: z.string(), limit: z.number().min(1).max(100).default(10) })) + .query(async ({ ctx, input }) => { + return await ctx.db.query.integrations.findMany({ + where: like(integrations.name, `%${input.query}%`), + orderBy: asc(integrations.name), + limit: input.limit, + }); + }), byId: protectedProcedure.input(validation.integration.byId).query(async ({ ctx, input }) => { await throwIfActionForbiddenAsync(ctx, eq(integrations.id, input.id), "full"); const integration = await ctx.db.query.integrations.findFirst({ diff --git a/packages/api/src/router/user.ts b/packages/api/src/router/user.ts index 362b3b7d7..4d10a4652 100644 --- a/packages/api/src/router/user.ts +++ b/packages/api/src/router/user.ts @@ -2,7 +2,7 @@ import { TRPCError } from "@trpc/server"; import { createSaltAsync, hashPasswordAsync } from "@homarr/auth"; import type { Database } from "@homarr/db"; -import { and, createId, eq, schema } from "@homarr/db"; +import { and, createId, eq, like, schema } from "@homarr/db"; import { groupMembers, groupPermissions, groups, invites, users } from "@homarr/db/schema/sqlite"; import type { SupportedAuthProvider } from "@homarr/definitions"; import { logger } from "@homarr/log"; @@ -164,6 +164,29 @@ export const userRouter = createTRPCRouter({ }, }); }), + search: publicProcedure + .input( + z.object({ + query: z.string(), + limit: z.number().min(1).max(100).default(10), + }), + ) + .query(async ({ input, ctx }) => { + const dbUsers = await ctx.db.query.users.findMany({ + columns: { + id: true, + name: true, + image: true, + }, + where: like(users.name, `%${input.query}%`), + limit: input.limit, + }); + return dbUsers.map((user) => ({ + id: user.id, + name: user.name ?? "", + image: user.image, + })); + }), getById: publicProcedure.input(z.object({ userId: z.string() })).query(async ({ input, ctx }) => { const user = await ctx.db.query.users.findFirst({ columns: { diff --git a/packages/auth/permissions/board-permissions.ts b/packages/auth/permissions/board-permissions.ts index 817cced6f..c59d56a3e 100644 --- a/packages/auth/permissions/board-permissions.ts +++ b/packages/auth/permissions/board-permissions.ts @@ -25,17 +25,18 @@ export const constructBoardPermissions = (board: BoardPermissionsProps, session: const creatorId = "creator" in board ? board.creator?.id : board.creatorId; return { - hasFullAccess: session?.user.id === creatorId || session?.user.permissions.includes("board-full-all"), + hasFullAccess: session?.user.id === creatorId || (session?.user.permissions.includes("board-full-all") ?? false), hasChangeAccess: session?.user.id === creatorId || board.userPermissions.some(({ permission }) => permission === "modify") || board.groupPermissions.some(({ permission }) => permission === "modify") || - session?.user.permissions.includes("board-modify-all"), + (session?.user.permissions.includes("board-modify-all") ?? false) || + (session?.user.permissions.includes("board-full-all") ?? false), hasViewAccess: session?.user.id === creatorId || board.userPermissions.length >= 1 || board.groupPermissions.length >= 1 || board.isPublic || - session?.user.permissions.includes("board-view-all"), + (session?.user.permissions.includes("board-view-all") ?? false), }; }; diff --git a/packages/modals-collection/src/boards/add-board-modal.tsx b/packages/modals-collection/src/boards/add-board-modal.tsx index 2573ffe2c..45990aad0 100644 --- a/packages/modals-collection/src/boards/add-board-modal.tsx +++ b/packages/modals-collection/src/boards/add-board-modal.tsx @@ -3,18 +3,14 @@ import { useDebouncedValue } from "@mantine/hooks"; import { IconAlertTriangle, IconCircleCheck } from "@tabler/icons-react"; import { clientApi } from "@homarr/api/client"; -import type { MaybePromise } from "@homarr/common/types"; +import { revalidatePathActionAsync } from "@homarr/common/client"; import { useZodForm } from "@homarr/form"; import { createModal } from "@homarr/modals"; import { showErrorNotification, showSuccessNotification } from "@homarr/notifications"; import { useI18n } from "@homarr/translation/client"; import { validation } from "@homarr/validation"; -interface InnerProps { - onSettled: () => MaybePromise; -} - -export const AddBoardModal = createModal(({ actions, innerProps }) => { +export const AddBoardModal = createModal(({ actions }) => { const t = useI18n(); const form = useZodForm(validation.board.create, { mode: "controlled", @@ -25,7 +21,9 @@ export const AddBoardModal = createModal(({ actions, innerProps }) = }, }); const { mutate, isPending } = clientApi.board.createBoard.useMutation({ - onSettled: innerProps.onSettled, + onSettled: async () => { + await revalidatePathActionAsync("/manage/boards"); + }, }); const boardNameStatus = useBoardNameStatus(form.values.name); diff --git a/packages/modals-collection/src/groups/add-group-modal.tsx b/packages/modals-collection/src/groups/add-group-modal.tsx new file mode 100644 index 000000000..2ba0af1a3 --- /dev/null +++ b/packages/modals-collection/src/groups/add-group-modal.tsx @@ -0,0 +1,56 @@ +import { Button, Group, Stack, TextInput } from "@mantine/core"; + +import { clientApi } from "@homarr/api/client"; +import { revalidatePathActionAsync } from "@homarr/common/client"; +import { useZodForm } from "@homarr/form"; +import { createModal } from "@homarr/modals"; +import { showErrorNotification, showSuccessNotification } from "@homarr/notifications"; +import { useI18n } from "@homarr/translation/client"; +import { validation } from "@homarr/validation"; + +export const AddGroupModal = createModal(({ actions }) => { + const t = useI18n(); + const { mutate, isPending } = clientApi.group.createGroup.useMutation(); + const form = useZodForm(validation.group.create, { + initialValues: { + name: "", + }, + }); + + return ( +
{ + mutate(values, { + onSuccess() { + actions.closeModal(); + void revalidatePathActionAsync("/manage/users/groups"); + showSuccessNotification({ + title: t("common.notification.create.success"), + message: t("group.action.create.notification.success.message"), + }); + }, + onError() { + showErrorNotification({ + title: t("common.notification.create.error"), + message: t("group.action.create.notification.error.message"), + }); + }, + }); + })} + > + + + + + + + +
+ ); +}).withOptions({ + defaultTitle: (t) => t("group.action.create.label"), +}); diff --git a/packages/modals-collection/src/groups/index.ts b/packages/modals-collection/src/groups/index.ts new file mode 100644 index 000000000..428bea2ec --- /dev/null +++ b/packages/modals-collection/src/groups/index.ts @@ -0,0 +1 @@ +export { AddGroupModal } from "./add-group-modal"; diff --git a/packages/modals-collection/src/index.ts b/packages/modals-collection/src/index.ts index 410b744a3..45caf0411 100644 --- a/packages/modals-collection/src/index.ts +++ b/packages/modals-collection/src/index.ts @@ -1,2 +1,3 @@ export * from "./boards"; export * from "./invites"; +export * from "./groups"; diff --git a/packages/spotlight/ReadMe.md b/packages/spotlight/ReadMe.md deleted file mode 100644 index ac4122282..000000000 --- a/packages/spotlight/ReadMe.md +++ /dev/null @@ -1,145 +0,0 @@ -# Spotlight - -Spotlight is the search functionality of Homarr. It can be opened by pressing `Ctrl + K` or `Cmd + K` on Mac. It is a quick way to search for anything in Homarr. - -## API - -### SpotlightActionData - -The [SpotlightActionData](./src/type.ts) is the data structure that is used to define the actions that are shown in the spotlight. - -#### Common properties - -| Name | Type | Description | -| ------------------------------ | ------------------------------------------------------------- | ----------------------------------------------------------------------------------- | -| id | `string` | The id of the action. | -| title | `string \| (t: TranslationFunction) => string` | The title of the action. Either static or generated with translation function | -| description | `string \| (t: TranslationFunction) => string` | The description of the action. Either static or generated with translation function | -| icon | `string \| TablerIcon` | The icon of the action. Either a url to an image or a TablerIcon | -| group | `string` | The group of the action. By default the groups all, web and action exist. | -| ignoreSearchAndOnlyShowInGroup | `boolean` | If true, the action will only be shown in the group and not in the search results. | -| type | `'link' \| 'button'` | The type of the action. Either link or button | - -#### Properties for links - -| Name | Type | Description | -| ---- | -------- | ---------------------------------------------------------------------------------------------------------- | -| href | `string` | The url the link should navigate to. If %s is contained it will be replaced with the current search query. | - -#### Properties for buttons - -| Name | Type | Description | -| ------- | -------------------------- | ----------------------------------------------------------------------------------------- | -| onClick | `() => MaybePromise` | The function that should be called when the button is clicked. It can be async if needed. | - -### useRegisterSpotlightActions - -The [useRegisterSpotlightActions](./src/data-store.ts) hook is used to register actions to the spotlight. It takes an unique key and the array of [SpotlightActionData](#SpotlightActionData). - -#### Usage - -The following example shows how to use the `useRegisterSpotlightActions` hook to register an action to the spotlight. - -```tsx -"use client"; - -import { useRegisterSpotlightActions } from "@homarr/spotlight"; - -const MyComponent = () => { - useRegisterSpotlightActions("my-component", [ - { - id: "my-action", - title: "My Action", - description: "This is my action", - icon: "https://example.com/icon.png", - group: "web", - type: "link", - href: "https://example.com", - }, - ]); - - return
My Component
; -}; -``` - -##### Using translation function - -```tsx -"use client"; - -import { useRegisterSpotlightActions } from "@homarr/spotlight"; - -const MyComponent = () => { - useRegisterSpotlightActions("my-component", [ - { - id: "my-action", - title: (t) => t("some.path.to.translation.key"), - description: (t) => t("some.other.path.to.translation.key"), - icon: "https://example.com/icon.png", - group: "web", - type: "link", - href: "https://example.com", - }, - ]); - - return
Component implementation
; -}; -``` - -##### Using TablerIcon - -```tsx -"use client"; - -import { IconUserCog } from "tabler-react"; - -import { useRegisterSpotlightActions } from "@homarr/spotlight"; - -const UserMenu = () => { - useRegisterSpotlightActions("header-user-menu", [ - { - id: "user-preferences", - title: (t) => t("user.preferences.title"), - description: (t) => t("user.preferences.description"), - icon: IconUserCog, - group: "action", - type: "link", - href: "/user/preferences", - }, - ]); - - return
Component implementation
; -}; -``` - -##### Using dependency array - -```tsx -"use client"; - -import { IconUserCog } from "tabler-react"; - -import { useRegisterSpotlightActions } from "@homarr/spotlight"; - -const ColorSchemeButton = () => { - const { colorScheme, toggleColorScheme } = useColorScheme(); - - useRegisterSpotlightActions( - "toggle-color-scheme", - [ - { - id: "toggle-color-scheme", - title: (t) => t("common.colorScheme.toggle.title"), - description: (t) => t(`common.colorScheme.toggle.${colorScheme}.description`), - icon: colorScheme === "light" ? IconSun : IconMoon, - group: "action", - type: "button", - onClick: toggleColorScheme, - }, - ], - [colorScheme], - ); - - return
Component implementation
; -}; -``` diff --git a/packages/spotlight/package.json b/packages/spotlight/package.json index ad0c1ba70..029f0f7e5 100644 --- a/packages/spotlight/package.json +++ b/packages/spotlight/package.json @@ -21,8 +21,13 @@ "lint": "eslint", "typecheck": "tsc --noEmit" }, - "prettier": "@homarr/prettier-config", "dependencies": { + "@homarr/api": "workspace:^0.1.0", + "@homarr/auth": "workspace:^0.1.0", + "@homarr/common": "workspace:^0.1.0", + "@homarr/definitions": "workspace:^0.1.0", + "@homarr/modals": "workspace:^0.1.0", + "@homarr/modals-collection": "workspace:^0.1.0", "@homarr/translation": "workspace:^0.1.0", "@homarr/ui": "workspace:^0.1.0", "@mantine/core": "^7.12.2", @@ -40,5 +45,6 @@ "@homarr/tsconfig": "workspace:^0.1.0", "eslint": "^9.10.0", "typescript": "^5.6.2" - } + }, + "prettier": "@homarr/prettier-config" } diff --git a/packages/spotlight/src/chip-group.tsx b/packages/spotlight/src/chip-group.tsx deleted file mode 100644 index d2cc08cc9..000000000 --- a/packages/spotlight/src/chip-group.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import { Chip } from "@mantine/core"; - -import { useScopedI18n } from "@homarr/translation/client"; - -import { selectNextAction, selectPreviousAction, spotlightStore, triggerSelectedAction } from "./spotlight-store"; -import type { SpotlightActionGroup } from "./type"; - -const disableArrowUpAndDown = (event: React.KeyboardEvent) => { - if (event.key === "ArrowDown") { - selectNextAction(spotlightStore); - event.preventDefault(); - } else if (event.key === "ArrowUp") { - selectPreviousAction(spotlightStore); - event.preventDefault(); - } else if (event.key === "Enter") { - triggerSelectedAction(spotlightStore); - } -}; - -const focusActiveByDefault = (event: React.FocusEvent) => { - const relatedTarget = event.relatedTarget; - - const isPreviousTargetRadio = relatedTarget && "type" in relatedTarget && relatedTarget.type === "radio"; - if (isPreviousTargetRadio) return; - - const group = event.currentTarget.parentElement?.parentElement; - if (!group) return; - const label = group.querySelector("label[data-checked]"); - if (!label) return; - label.focus(); -}; - -interface Props { - group: SpotlightActionGroup; -} - -export const GroupChip = ({ group }: Props) => { - const t = useScopedI18n("common.search.group"); - return ( - - {t(group)} - - ); -}; diff --git a/packages/spotlight/src/component.tsx b/packages/spotlight/src/component.tsx deleted file mode 100644 index 59f67ef20..000000000 --- a/packages/spotlight/src/component.tsx +++ /dev/null @@ -1,126 +0,0 @@ -"use client"; - -import { useCallback, useState } from "react"; -import Link from "next/link"; -import { Center, Chip, Divider, Flex, Group, Text } from "@mantine/core"; -import { Spotlight as MantineSpotlight, SpotlightAction } from "@mantine/spotlight"; -import { IconSearch } from "@tabler/icons-react"; -import { useAtomValue } from "jotai"; - -import type { TranslationFunction } from "@homarr/translation"; -import { useI18n } from "@homarr/translation/client"; - -import { GroupChip } from "./chip-group"; -import classes from "./component.module.css"; -import { actionsAtomRead, groupsAtomRead } from "./data-store"; -import { setSelectedAction, spotlightStore } from "./spotlight-store"; -import type { SpotlightActionData } from "./type"; -import { useWebSearchEngines } from "./web-search-engines"; - -export const Spotlight = () => { - useWebSearchEngines(); - const [query, setQuery] = useState(""); - const [group, setGroup] = useState("all"); - const groups = useAtomValue(groupsAtomRead); - const actions = useAtomValue(actionsAtomRead); - const t = useI18n(); - - const preparedActions = actions.map((action) => prepareAction(action, t)); - const items = preparedActions - .filter( - (item) => - (item.ignoreSearchAndOnlyShowInGroup - ? item.group === group - : item.title.toLowerCase().includes(query.toLowerCase().trim())) && - (group === "all" || item.group === group), - ) - .map((item) => { - const renderRoot = - item.type === "link" - ? (props: Record) => ( - - ) - : undefined; - - return ( - - - {item.icon && ( -
- {typeof item.icon !== "string" && } - {typeof item.icon === "string" && {item.title}} -
- )} - - - {item.title} - - {item.description && ( - - {item.description} - - )} - -
-
- ); - }); - - const onGroupChange = useCallback( - (group: string) => { - setSelectedAction(-1, spotlightStore); - setGroup(group); - }, - [setGroup, setSelectedAction], - ); - - return ( - - } - /> - - - - - - {groups.map((group) => ( - - ))} - - - - - - {items.length > 0 ? items : {t("common.search.nothingFound")}} - - - ); -}; - -const prepareHref = (href: string, query: string) => { - return href.replace("%s", query); -}; - -const translateIfNecessary = (value: string | ((t: TranslationFunction) => string), t: TranslationFunction) => { - if (typeof value === "function") { - return value(t); - } - - return value; -}; - -const prepareAction = (action: SpotlightActionData, t: TranslationFunction) => ({ - ...action, - title: translateIfNecessary(action.title, t), - description: translateIfNecessary(action.description, t), -}); diff --git a/packages/spotlight/src/components/actions/children-actions.tsx b/packages/spotlight/src/components/actions/children-actions.tsx new file mode 100644 index 000000000..b7f36909d --- /dev/null +++ b/packages/spotlight/src/components/actions/children-actions.tsx @@ -0,0 +1,17 @@ +import type { inferSearchInteractionOptions } from "../../lib/interaction"; +import { ChildrenActionItem } from "./items/children-action-item"; + +interface SpotlightChildrenActionsProps { + childrenOptions: inferSearchInteractionOptions<"children">; + query: string; +} + +export const SpotlightChildrenActions = ({ childrenOptions, query }: SpotlightChildrenActionsProps) => { + const actions = childrenOptions.useActions(childrenOptions.option, query); + + return actions + .filter((action) => (typeof action.hide === "function" ? !action.hide(childrenOptions.option) : !action.hide)) + .map((action) => ( + + )); +}; diff --git a/packages/spotlight/src/components/actions/group-actions.tsx b/packages/spotlight/src/components/actions/group-actions.tsx new file mode 100644 index 000000000..ce2d8f370 --- /dev/null +++ b/packages/spotlight/src/components/actions/group-actions.tsx @@ -0,0 +1,87 @@ +import { Center, Loader } from "@mantine/core"; + +import type { TranslationObject } from "@homarr/translation"; +import { useI18n } from "@homarr/translation/client"; + +import type { SearchGroup } from "../../lib/group"; +import type { inferSearchInteractionOptions } from "../../lib/interaction"; +import { SpotlightNoResults } from "../no-results"; +import { SpotlightGroupActionItem } from "./items/group-action-item"; + +interface GroupActionsProps> { + group: SearchGroup; + query: string; + setMode: (mode: keyof TranslationObject["search"]["mode"]) => void; + setChildrenOptions: (options: inferSearchInteractionOptions<"children">) => void; +} + +export const SpotlightGroupActions = >({ + group, + query, + setMode, + setChildrenOptions, +}: GroupActionsProps) => { + // This does work as the same amount of hooks is called on every render + const useOptions = + "options" in group ? () => group.options : "useOptions" in group ? group.useOptions : group.useQueryOptions; + const options = useOptions(query); + const t = useI18n(); + + if (Array.isArray(options)) { + const filteredOptions = options + .filter((option) => ("filter" in group ? group.filter(query, option) : false)) + .sort((optionA, optionB) => { + if ("sort" in group) { + return group.sort?.(query, [optionA, optionB]) ?? 0; + } + + return 0; + }); + + if (filteredOptions.length === 0) { + return ; + } + + return filteredOptions.map((option) => ( + + )); + } + + if (options.isLoading) { + return ( +
+ +
+ ); + } + + if (options.isError) { + return
{t("search.error.fetch")}
; + } + + if (!options.data) { + return null; + } + + if (options.data.length === 0) { + return ; + } + + return options.data.map((option) => ( + + )); +}; diff --git a/packages/spotlight/src/components/actions/groups/action-group.tsx b/packages/spotlight/src/components/actions/groups/action-group.tsx new file mode 100644 index 000000000..c35fa2d35 --- /dev/null +++ b/packages/spotlight/src/components/actions/groups/action-group.tsx @@ -0,0 +1,32 @@ +import { Spotlight } from "@mantine/spotlight"; + +import type { TranslationObject } from "@homarr/translation"; +import { translateIfNecessary } from "@homarr/translation"; +import { useI18n } from "@homarr/translation/client"; + +import type { SearchGroup } from "../../../lib/group"; +import type { inferSearchInteractionOptions } from "../../../lib/interaction"; +import { SpotlightGroupActions } from "../group-actions"; + +interface SpotlightActionGroupsProps { + groups: SearchGroup[]; + query: string; + setMode: (mode: keyof TranslationObject["search"]["mode"]) => void; + setChildrenOptions: (options: inferSearchInteractionOptions<"children">) => void; +} + +export const SpotlightActionGroups = ({ groups, query, setMode, setChildrenOptions }: SpotlightActionGroupsProps) => { + const t = useI18n(); + + return groups.map((group) => ( + + {/*eslint-disable-next-line @typescript-eslint/no-explicit-any */} + + group={group} + query={query} + setMode={setMode} + setChildrenOptions={setChildrenOptions} + /> + + )); +}; diff --git a/packages/spotlight/src/component.module.css b/packages/spotlight/src/components/actions/items/action-item.module.css similarity index 100% rename from packages/spotlight/src/component.module.css rename to packages/spotlight/src/components/actions/items/action-item.module.css diff --git a/packages/spotlight/src/components/actions/items/children-action-item.tsx b/packages/spotlight/src/components/actions/items/children-action-item.tsx new file mode 100644 index 000000000..c36fb3c65 --- /dev/null +++ b/packages/spotlight/src/components/actions/items/children-action-item.tsx @@ -0,0 +1,30 @@ +import Link from "next/link"; +import { Spotlight } from "@mantine/spotlight"; + +import type { inferSearchInteractionOptions } from "../../../lib/interaction"; +import classes from "./action-item.module.css"; + +interface ChildrenActionItemProps { + childrenOptions: inferSearchInteractionOptions<"children">; + query: string; + action: ReturnType["useActions"]>[number]; +} + +export const ChildrenActionItem = ({ childrenOptions, action, query }: ChildrenActionItemProps) => { + const interaction = action.useInteraction(childrenOptions.option, query); + + const renderRoot = + interaction.type === "link" + ? (props: Record) => { + return ; + } + : undefined; + + const onClick = interaction.type === "javaScript" ? interaction.onSelect : undefined; + + return ( + + + + ); +}; diff --git a/packages/spotlight/src/components/actions/items/group-action-item.tsx b/packages/spotlight/src/components/actions/items/group-action-item.tsx new file mode 100644 index 000000000..1b2ebe1c5 --- /dev/null +++ b/packages/spotlight/src/components/actions/items/group-action-item.tsx @@ -0,0 +1,54 @@ +import Link from "next/link"; +import { Spotlight } from "@mantine/spotlight"; + +import type { TranslationObject } from "@homarr/translation"; + +import type { SearchGroup } from "../../../lib/group"; +import type { inferSearchInteractionOptions } from "../../../lib/interaction"; +import classes from "./action-item.module.css"; + +interface SpotlightGroupActionItemProps> { + option: TOption; + query: string; + setMode: (mode: keyof TranslationObject["search"]["mode"]) => void; + setChildrenOptions: (options: inferSearchInteractionOptions<"children">) => void; + group: SearchGroup; +} + +export const SpotlightGroupActionItem = >({ + group, + query, + setMode, + setChildrenOptions, + option, +}: SpotlightGroupActionItemProps) => { + const interaction = group.useInteraction(option, query); + + const renderRoot = + interaction.type === "link" + ? (props: Record) => { + return ; + } + : undefined; + + const handleClickAsync = async () => { + if (interaction.type === "javaScript") { + await interaction.onSelect(); + } else if (interaction.type === "mode") { + setMode(interaction.mode); + } else if (interaction.type === "children") { + setChildrenOptions(interaction); + } + }; + + return ( + + + + ); +}; diff --git a/packages/spotlight/src/components/no-results.tsx b/packages/spotlight/src/components/no-results.tsx new file mode 100644 index 000000000..e5fc52f99 --- /dev/null +++ b/packages/spotlight/src/components/no-results.tsx @@ -0,0 +1,9 @@ +import { Spotlight } from "@mantine/spotlight"; + +import { useI18n } from "@homarr/translation/client"; + +export const SpotlightNoResults = () => { + const t = useI18n(); + + return {t("search.nothingFound")}; +}; diff --git a/packages/spotlight/src/components/spotlight.tsx b/packages/spotlight/src/components/spotlight.tsx new file mode 100644 index 000000000..c9c9c2904 --- /dev/null +++ b/packages/spotlight/src/components/spotlight.tsx @@ -0,0 +1,118 @@ +"use client"; + +import { useMemo, useRef, useState } from "react"; +import { ActionIcon, Center, Group, Kbd } from "@mantine/core"; +import { Spotlight as MantineSpotlight } from "@mantine/spotlight"; +import { IconSearch, IconX } from "@tabler/icons-react"; + +import type { TranslationObject } from "@homarr/translation"; +import { useI18n } from "@homarr/translation/client"; + +import type { inferSearchInteractionOptions } from "../lib/interaction"; +import { searchModes } from "../modes"; +import { selectAction, spotlightStore } from "../spotlight-store"; +import { SpotlightChildrenActions } from "./actions/children-actions"; +import { SpotlightActionGroups } from "./actions/groups/action-group"; + +export const Spotlight = () => { + const [query, setQuery] = useState(""); + const [mode, setMode] = useState("help"); + const [childrenOptions, setChildrenOptions] = useState | null>(null); + const t = useI18n(); + const inputRef = useRef(null); + const activeMode = useMemo(() => searchModes.find((searchMode) => searchMode.modeKey === mode), [mode]); + + if (!activeMode) { + return null; + } + + return ( + { + setMode("help"); + setChildrenOptions(null); + }} + query={query} + onQueryChange={(query) => { + if (mode !== "help" || query.length !== 1) { + setQuery(query); + } + + const modeToActivate = searchModes.find((mode) => mode.character === query); + if (!modeToActivate) { + return; + } + + setMode(modeToActivate.modeKey); + setQuery(""); + setTimeout(() => selectAction(0, spotlightStore)); + }} + store={spotlightStore} + > + +
+ +
+ {activeMode.modeKey !== "help" ? {activeMode.character} : null} + + } + rightSection={ + mode === "help" ? undefined : ( + { + setMode("help"); + setChildrenOptions(null); + inputRef.current?.focus(); + }} + variant="subtle" + > + + + ) + } + value={query} + onKeyDown={(event) => { + if (query.length === 0 && mode !== "help" && event.key === "Backspace") { + setMode("help"); + setChildrenOptions(null); + } + }} + /> + + {childrenOptions ? ( + + + + ) : null} + + + {childrenOptions ? ( + + ) : ( + { + setMode(mode); + setChildrenOptions(null); + setTimeout(() => selectAction(0, spotlightStore)); + }} + setChildrenOptions={(options) => { + setChildrenOptions(options); + setQuery(""); + setTimeout(() => selectAction(0, spotlightStore)); + }} + query={query} + groups={activeMode.groups} + /> + )} + +
+ ); +}; diff --git a/packages/spotlight/src/data-store.ts b/packages/spotlight/src/data-store.ts deleted file mode 100644 index 0a2dbd52d..000000000 --- a/packages/spotlight/src/data-store.ts +++ /dev/null @@ -1,69 +0,0 @@ -import { useEffect } from "react"; -import { atom, useSetAtom } from "jotai"; -import useDeepCompareEffect from "use-deep-compare-effect"; - -import type { SpotlightActionData, SpotlightActionGroup } from "./type"; - -const defaultGroups = ["all", "web", "action"] as const; -const reversedDefaultGroups = [...defaultGroups].reverse() as string[]; -const actionsAtom = atom>({}); -export const actionsAtomRead = atom((get) => Object.values(get(actionsAtom)).flatMap((item) => item)); - -export const groupsAtomRead = atom((get) => - Array.from( - new Set( - get(actionsAtomRead) - .map((item) => item.group as SpotlightActionGroup) // Allow "all" group to be included in the list of groups - .concat(...defaultGroups), - ), - ) - .sort((groupA, groupB) => { - const groupAIndex = reversedDefaultGroups.indexOf(groupA); - const groupBIndex = reversedDefaultGroups.indexOf(groupB); - - // if both groups are not in the default groups, sort them by name (here reversed because we reverse the array afterwards) - if (groupAIndex === -1 && groupBIndex === -1) { - return groupB.localeCompare(groupA); - } - - return groupAIndex - groupBIndex; - }) - .reverse(), -); - -const registrations = new Map(); - -export const useRegisterSpotlightActions = ( - key: string, - actions: SpotlightActionData[], - dependencies: readonly unknown[] = [], -) => { - const setActions = useSetAtom(actionsAtom); - - // Use deep compare effect if there are dependencies for the actions, this supports deep compare of the action dependencies - const useSpecificEffect = dependencies.length >= 1 ? useDeepCompareEffect : useEffect; - - useSpecificEffect(() => { - if (!registrations.has(key) || dependencies.length >= 1) { - setActions((prev) => ({ - ...prev, - [key]: actions, - })); - } - registrations.set(key, (registrations.get(key) ?? 0) + 1); - - return () => { - if (registrations.get(key) === 1) { - setActions((prev) => { - const { [key]: _, ...rest } = prev; - return rest; - }); - } - - registrations.set(key, (registrations.get(key) ?? 0) - 1); - if (registrations.get(key) === 0) { - registrations.delete(key); - } - }; - }, [key, dependencies.length >= 1 ? dependencies : undefined]); -}; diff --git a/packages/spotlight/src/index.ts b/packages/spotlight/src/index.ts index d0e3aa43a..2d4207075 100644 --- a/packages/spotlight/src/index.ts +++ b/packages/spotlight/src/index.ts @@ -2,8 +2,7 @@ import { spotlightActions } from "./spotlight-store"; -export { Spotlight } from "./component"; -export { useRegisterSpotlightActions } from "./data-store"; +export { Spotlight } from "./components/spotlight"; export { openSpotlight }; const openSpotlight = spotlightActions.open; diff --git a/packages/spotlight/src/lib/children.ts b/packages/spotlight/src/lib/children.ts new file mode 100644 index 000000000..1a792a2b6 --- /dev/null +++ b/packages/spotlight/src/lib/children.ts @@ -0,0 +1,24 @@ +import type { ReactNode } from "react"; + +import type { inferSearchInteractionDefinition } from "./interaction"; + +export interface CreateChildrenOptionsProps> { + detailComponent: ({ options }: { options: TParentOptions }) => ReactNode; + useActions: (options: TParentOptions, query: string) => ChildrenAction[]; +} + +export interface ChildrenAction> { + key: string; + component: (option: TParentOptions) => JSX.Element; + useInteraction: (option: TParentOptions, query: string) => inferSearchInteractionDefinition<"link" | "javaScript">; + hide?: boolean | ((option: TParentOptions) => boolean); +} + +export const createChildrenOptions = >( + props: CreateChildrenOptionsProps, +) => { + return (option: TParentOptions) => ({ + option, + ...props, + }); +}; diff --git a/packages/spotlight/src/lib/group.ts b/packages/spotlight/src/lib/group.ts new file mode 100644 index 000000000..d1cfc4a44 --- /dev/null +++ b/packages/spotlight/src/lib/group.ts @@ -0,0 +1,28 @@ +import type { UseTRPCQueryResult } from "@trpc/react-query/shared"; + +import type { stringOrTranslation } from "@homarr/translation"; + +import type { inferSearchInteractionDefinition, SearchInteraction } from "./interaction"; + +type CommonSearchGroup, TOptionProps extends Record> = { + // key path is used to define the path to a unique key in the option object + keyPath: keyof TOption; + title: stringOrTranslation; + component: (option: TOption) => JSX.Element; + useInteraction: (option: TOption, query: string) => inferSearchInteractionDefinition; +} & TOptionProps; + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export type SearchGroup = any> = + | CommonSearchGroup boolean; options: TOption[] }> + | CommonSearchGroup< + TOption, + { + filter: (query: string, option: TOption) => boolean; + sort?: (query: string, options: [TOption, TOption]) => number; + useOptions: () => TOption[]; + } + > + | CommonSearchGroup UseTRPCQueryResult }>; + +export const createGroup = >(group: SearchGroup) => group; diff --git a/packages/spotlight/src/lib/interaction.ts b/packages/spotlight/src/lib/interaction.ts new file mode 100644 index 000000000..1528a39ca --- /dev/null +++ b/packages/spotlight/src/lib/interaction.ts @@ -0,0 +1,56 @@ +import type { MaybePromise } from "@homarr/common/types"; +import type { TranslationObject } from "@homarr/translation"; + +import type { CreateChildrenOptionsProps } from "./children"; + +const createSearchInteraction = (type: TType) => ({ + optionsType: >() => ({ type, _inferOptions: {} as TOption }), +}); + +// This is used to define search interactions with their options +const searchInteractions = [ + createSearchInteraction("link").optionsType<{ href: string; newTab?: boolean }>(), + createSearchInteraction("javaScript").optionsType<{ onSelect: () => MaybePromise }>(), + createSearchInteraction("mode").optionsType<{ mode: keyof TranslationObject["search"]["mode"] }>(), + createSearchInteraction("children").optionsType<{ + // eslint-disable-next-line @typescript-eslint/no-explicit-any + useActions: CreateChildrenOptionsProps["useActions"]; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + detailComponent: CreateChildrenOptionsProps["detailComponent"]; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + option: any; + }>(), +] as const; + +// Union of all search interactions types +export type SearchInteraction = (typeof searchInteractions)[number]["type"]; + +// Infer the options for the specified search interaction +export type inferSearchInteractionOptions = Extract< + (typeof searchInteractions)[number], + { type: TInteraction } +>["_inferOptions"]; + +// Infer the search interaction definition (type + options) for the specified search interaction +export type inferSearchInteractionDefinition = { + [interactionKey in TInteraction]: { type: interactionKey } & inferSearchInteractionOptions; +}[TInteraction]; + +// Type used for helper functions to define basic search interactions +type SearchInteractions = { + [optionKey in SearchInteraction]: >( + callback: (option: TOption, query: string) => inferSearchInteractionOptions, + ) => (option: TOption, query: string) => inferSearchInteractionDefinition; +}; + +// Helper functions to define basic search interactions +export const interaction = searchInteractions.reduce((acc, interaction) => { + return { + ...acc, + [interaction.type]: >( + callback: (option: TOption, query: string) => inferSearchInteractionOptions, + ) => { + return (option: TOption, query: string) => ({ type: interaction.type, ...callback(option, query) }); + }, + }; +}, {} as SearchInteractions); diff --git a/packages/spotlight/src/lib/mode.ts b/packages/spotlight/src/lib/mode.ts new file mode 100644 index 000000000..a0b480f3c --- /dev/null +++ b/packages/spotlight/src/lib/mode.ts @@ -0,0 +1,9 @@ +import type { TranslationObject } from "@homarr/translation"; + +import type { SearchGroup } from "./group"; + +export interface SearchMode { + modeKey: keyof TranslationObject["search"]["mode"]; + character: string; + groups: SearchGroup[]; +} diff --git a/packages/spotlight/src/modes/app-integration-board/apps-search-group.tsx b/packages/spotlight/src/modes/app-integration-board/apps-search-group.tsx new file mode 100644 index 000000000..5d2dc98a6 --- /dev/null +++ b/packages/spotlight/src/modes/app-integration-board/apps-search-group.tsx @@ -0,0 +1,97 @@ +import { Avatar, Group, Stack, Text } from "@mantine/core"; +import { IconExternalLink, IconEye } from "@tabler/icons-react"; + +import { clientApi } from "@homarr/api/client"; +import { useI18n } from "@homarr/translation/client"; + +import { createChildrenOptions } from "../../lib/children"; +import { createGroup } from "../../lib/group"; +import { interaction } from "../../lib/interaction"; + +// This has to be type so it can be interpreted as Record. +// eslint-disable-next-line @typescript-eslint/consistent-type-definitions +type App = { id: string; name: string; iconUrl: string; href: string | null }; + +const appChildrenOptions = createChildrenOptions({ + useActions: () => [ + { + key: "open", + component: () => { + const t = useI18n(); + + return ( + + + {t("search.mode.appIntegrationBoard.group.app.children.action.open.label")} + + ); + }, + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + useInteraction: interaction.link((option) => ({ href: option.href! })), + hide(option) { + return !option.href; + }, + }, + { + key: "edit", + component: () => { + const t = useI18n(); + + return ( + + + {t("search.mode.appIntegrationBoard.group.app.children.action.edit.label")} + + ); + }, + useInteraction: interaction.link(({ id }) => ({ href: `/manage/apps/edit/${id}` })), + }, + ], + detailComponent: ({ options }) => { + const t = useI18n(); + + return ( + + {t("search.mode.appIntegrationBoard.group.app.children.detail.title")} + + + + {options.name} + + + ); + }, +}); + +export const appsSearchGroup = createGroup({ + keyPath: "id", + title: (t) => t("search.mode.appIntegrationBoard.group.app.title"), + component: (app) => ( + + + {app.name} + + ), + useInteraction: interaction.children(appChildrenOptions), + useQueryOptions(query) { + return clientApi.app.search.useQuery({ query, limit: 5 }); + }, +}); diff --git a/packages/spotlight/src/modes/app-integration-board/boards-search-group.tsx b/packages/spotlight/src/modes/app-integration-board/boards-search-group.tsx new file mode 100644 index 000000000..089fb732c --- /dev/null +++ b/packages/spotlight/src/modes/app-integration-board/boards-search-group.tsx @@ -0,0 +1,120 @@ +import { Group, Stack, Text } from "@mantine/core"; +import { IconHome, IconLayoutDashboard, IconLink, IconSettings } from "@tabler/icons-react"; + +import { clientApi } from "@homarr/api/client"; +import { useI18n } from "@homarr/translation/client"; + +import type { ChildrenAction } from "../../lib/children"; +import { createChildrenOptions } from "../../lib/children"; +import { createGroup } from "../../lib/group"; +import { interaction } from "../../lib/interaction"; + +// This has to be type so it can be interpreted as Record. +// eslint-disable-next-line @typescript-eslint/consistent-type-definitions +type Board = { + id: string; + name: string; + logoImageUrl: string | null; + permissions: { hasFullAccess: boolean; hasChangeAccess: boolean; hasViewAccess: boolean }; +}; + +const boardChildrenOptions = createChildrenOptions({ + useActions: (options) => { + const actions: (ChildrenAction & { hidden?: boolean })[] = [ + { + key: "open", + component: () => { + const t = useI18n(); + + return ( + + + {t("search.mode.appIntegrationBoard.group.board.children.action.open.label")} + + ); + }, + useInteraction: interaction.link(({ name }) => ({ href: `/boards/${name}` })), + }, + { + key: "homeBoard", + component: () => { + const t = useI18n(); + + return ( + + + {t("search.mode.appIntegrationBoard.group.board.children.action.homeBoard.label")} + + ); + }, + useInteraction(option) { + const { mutateAsync } = clientApi.board.setHomeBoard.useMutation(); + + return { + type: "javaScript", + // eslint-disable-next-line no-restricted-syntax + async onSelect() { + await mutateAsync({ id: option.id }); + }, + }; + }, + }, + { + key: "settings", + component: () => { + const t = useI18n(); + + return ( + + + {t("search.mode.appIntegrationBoard.group.board.children.action.settings.label")} + + ); + }, + useInteraction: interaction.link(({ name }) => ({ href: `/boards/${name}/settings` })), + hidden: !options.permissions.hasChangeAccess, + }, + ]; + + return actions; + }, + detailComponent: ({ options: board }) => { + const t = useI18n(); + + return ( + + {t("search.mode.appIntegrationBoard.group.board.children.detail.title")} + + + {board.logoImageUrl ? ( + {board.name} + ) : ( + + )} + + {board.name} + + + ); + }, +}); + +export const boardsSearchGroup = createGroup({ + keyPath: "id", + title: "Boards", + component: (board) => ( + + {board.logoImageUrl ? ( + {board.name} + ) : ( + + )} + + {board.name} + + ), + useInteraction: interaction.children(boardChildrenOptions), + useQueryOptions(query) { + return clientApi.board.search.useQuery({ query, limit: 5 }); + }, +}); diff --git a/packages/spotlight/src/modes/app-integration-board/index.tsx b/packages/spotlight/src/modes/app-integration-board/index.tsx new file mode 100644 index 000000000..417fe967c --- /dev/null +++ b/packages/spotlight/src/modes/app-integration-board/index.tsx @@ -0,0 +1,10 @@ +import type { SearchMode } from "../../lib/mode"; +import { appsSearchGroup } from "./apps-search-group"; +import { boardsSearchGroup } from "./boards-search-group"; +import { integrationsSearchGroup } from "./integrations-search-group"; + +export const appIntegrationBoardMode = { + modeKey: "appIntegrationBoard", + character: "#", + groups: [appsSearchGroup, integrationsSearchGroup, boardsSearchGroup], +} satisfies SearchMode; diff --git a/packages/spotlight/src/modes/app-integration-board/integrations-search-group.tsx b/packages/spotlight/src/modes/app-integration-board/integrations-search-group.tsx new file mode 100644 index 000000000..55fd14eca --- /dev/null +++ b/packages/spotlight/src/modes/app-integration-board/integrations-search-group.tsx @@ -0,0 +1,24 @@ +import { Group, Text } from "@mantine/core"; + +import { clientApi } from "@homarr/api/client"; +import type { IntegrationKind } from "@homarr/definitions"; +import { IntegrationAvatar } from "@homarr/ui"; + +import { createGroup } from "../../lib/group"; +import { interaction } from "../../lib/interaction"; + +export const integrationsSearchGroup = createGroup<{ id: string; kind: IntegrationKind; name: string }>({ + keyPath: "id", + title: (t) => t("search.mode.appIntegrationBoard.group.integration.title"), + component: (integration) => ( + + + + {integration.name} + + ), + useInteraction: interaction.link(({ id }) => ({ href: `/manage/integrations/edit/${id}` })), + useQueryOptions(query) { + return clientApi.integration.search.useQuery({ query, limit: 5 }); + }, +}); diff --git a/packages/spotlight/src/modes/command/children/language.tsx b/packages/spotlight/src/modes/command/children/language.tsx new file mode 100644 index 000000000..7a248275a --- /dev/null +++ b/packages/spotlight/src/modes/command/children/language.tsx @@ -0,0 +1,65 @@ +import { Group, Stack, Text } from "@mantine/core"; +import { IconCheck } from "@tabler/icons-react"; + +import { localeAttributes, supportedLanguages } from "@homarr/translation"; +import { useChangeLocale, useCurrentLocale, useI18n } from "@homarr/translation/client"; + +import { createChildrenOptions } from "../../../lib/children"; + +export const languageChildrenOptions = createChildrenOptions>({ + useActions: (_, query) => { + const normalizedQuery = query.trim().toLowerCase(); + const currentLocale = useCurrentLocale(); + return supportedLanguages + .map((localeKey) => ({ localeKey, attributes: localeAttributes[localeKey] })) + .filter( + ({ attributes }) => + attributes.name.toLowerCase().includes(normalizedQuery) || + attributes.translatedName.toLowerCase().includes(normalizedQuery), + ) + .sort( + (languageA, languageB) => + Math.min( + languageA.attributes.name.toLowerCase().indexOf(normalizedQuery), + languageA.attributes.translatedName.toLowerCase().indexOf(normalizedQuery), + ) - + Math.min( + languageB.attributes.name.toLowerCase().indexOf(normalizedQuery), + languageB.attributes.translatedName.toLowerCase().indexOf(normalizedQuery), + ), + ) + .map(({ localeKey, attributes }) => ({ + key: localeKey, + component() { + return ( + + + + + {attributes.name} + + ({attributes.translatedName}) + + + + {localeKey === currentLocale && } + + ); + }, + useInteraction() { + const changeLocale = useChangeLocale(); + + return { type: "javaScript", onSelect: () => changeLocale(localeKey) }; + }, + })); + }, + detailComponent: () => { + const t = useI18n(); + + return ( + + {t("search.mode.command.group.globalCommand.option.language.children.detail.title")} + + ); + }, +}); diff --git a/packages/spotlight/src/modes/command/children/new-integration.tsx b/packages/spotlight/src/modes/command/children/new-integration.tsx new file mode 100644 index 000000000..d70a719f3 --- /dev/null +++ b/packages/spotlight/src/modes/command/children/new-integration.tsx @@ -0,0 +1,43 @@ +import { Group, Stack, Text } from "@mantine/core"; + +import { objectEntries } from "@homarr/common"; +import { integrationDefs } from "@homarr/definitions"; +import { useI18n } from "@homarr/translation/client"; +import { IntegrationAvatar } from "@homarr/ui"; + +import { createChildrenOptions } from "../../../lib/children"; +import { interaction } from "../../../lib/interaction"; + +export const newIntegrationChildrenOptions = createChildrenOptions>({ + useActions: (_, query) => { + const normalizedQuery = query.trim().toLowerCase(); + return objectEntries(integrationDefs) + .filter(([, integrationDef]) => integrationDef.name.toLowerCase().includes(normalizedQuery)) + .sort( + ([, definitionA], [, definitionB]) => + definitionA.name.toLowerCase().indexOf(normalizedQuery) - + definitionB.name.toLowerCase().indexOf(normalizedQuery), + ) + .map(([kind, integrationDef]) => ({ + key: kind, + component() { + return ( + + + {integrationDef.name} + + ); + }, + useInteraction: interaction.link(() => ({ href: `/manage/integrations/new?kind=${kind}` })), + })); + }, + detailComponent() { + const t = useI18n(); + + return ( + + {t("search.mode.command.group.globalCommand.option.newIntegration.children.detail.title")} + + ); + }, +}); diff --git a/packages/spotlight/src/modes/command/index.tsx b/packages/spotlight/src/modes/command/index.tsx new file mode 100644 index 000000000..240fd13b5 --- /dev/null +++ b/packages/spotlight/src/modes/command/index.tsx @@ -0,0 +1,164 @@ +import { Group, Text, useMantineColorScheme } from "@mantine/core"; +import { + IconCategoryPlus, + IconFileImport, + IconLanguage, + IconMailForward, + IconMoon, + IconPackage, + IconPlug, + IconSun, + IconUserPlus, + IconUsersGroup, +} from "@tabler/icons-react"; + +import { useModalAction } from "@homarr/modals"; +import { AddBoardModal, AddGroupModal, ImportBoardModal, InviteCreateModal } from "@homarr/modals-collection"; +import { useScopedI18n } from "@homarr/translation/client"; +import type { TablerIcon } from "@homarr/ui"; + +import { createGroup } from "../../lib/group"; +import type { inferSearchInteractionDefinition, SearchInteraction } from "../../lib/interaction"; +import { interaction } from "../../lib/interaction"; +import type { SearchMode } from "../../lib/mode"; +import { languageChildrenOptions } from "./children/language"; +import { newIntegrationChildrenOptions } from "./children/new-integration"; + +// This has to be type so it can be interpreted as Record. +// eslint-disable-next-line @typescript-eslint/consistent-type-definitions +type Command = { + commandKey: string; + icon: TablerIcon; + name: string; + useInteraction: ( + _c: Command, + query: string, + ) => inferSearchInteractionDefinition; +}; + +export const commandMode = { + modeKey: "command", + character: ">", + groups: [ + createGroup({ + keyPath: "commandKey", + title: "Global commands", + useInteraction: (option, query) => option.useInteraction(option, query), + component: ({ icon: Icon, name }) => ( + + + {name} + + ), + filter(query, option) { + return option.name.toLowerCase().includes(query.toLowerCase()); + }, + useOptions() { + const tOption = useScopedI18n("search.mode.command.group.globalCommand.option"); + const { colorScheme } = useMantineColorScheme(); + + const commands: (Command & { hidden?: boolean })[] = [ + { + commandKey: "colorScheme", + icon: colorScheme === "dark" ? IconSun : IconMoon, + name: tOption(`colorScheme.${colorScheme === "dark" ? "light" : "dark"}`), + useInteraction: () => { + const { toggleColorScheme } = useMantineColorScheme(); + + return { + type: "javaScript", + onSelect: toggleColorScheme, + }; + }, + }, + { + commandKey: "language", + icon: IconLanguage, + name: tOption("language.label"), + useInteraction: interaction.children(languageChildrenOptions), + }, + { + commandKey: "newBoard", + icon: IconCategoryPlus, + name: tOption("newBoard.label"), + useInteraction() { + const { openModal } = useModalAction(AddBoardModal); + + return { + type: "javaScript", + onSelect() { + openModal(undefined); + }, + }; + }, + }, + { + commandKey: "importBoard", + icon: IconFileImport, + name: tOption("importBoard.label"), + useInteraction() { + const { openModal } = useModalAction(ImportBoardModal); + + return { + type: "javaScript", + onSelect() { + openModal(undefined); + }, + }; + }, + }, + { + commandKey: "newApp", + icon: IconPackage, + name: tOption("newApp.label"), + useInteraction: interaction.link(() => ({ href: "/manage/apps/new" })), + }, + { + commandKey: "newIntegration", + icon: IconPlug, + name: tOption("newIntegration.label"), + useInteraction: interaction.children(newIntegrationChildrenOptions), + }, + { + commandKey: "newUser", + icon: IconUserPlus, + name: tOption("newUser.label"), + useInteraction: interaction.link(() => ({ href: "/manage/users/new" })), + }, + { + commandKey: "newInvite", + icon: IconMailForward, + name: tOption("newInvite.label"), + useInteraction() { + const { openModal } = useModalAction(InviteCreateModal); + + return { + type: "javaScript", + onSelect() { + openModal(undefined); + }, + }; + }, + }, + { + commandKey: "newGroup", + icon: IconUsersGroup, + name: tOption("newGroup.label"), + useInteraction() { + const { openModal } = useModalAction(AddGroupModal); + + return { + type: "javaScript", + onSelect() { + openModal(undefined); + }, + }; + }, + }, + ]; + + return commands.filter((command) => !command.hidden); + }, + }), + ], +} satisfies SearchMode; diff --git a/packages/spotlight/src/modes/external/index.tsx b/packages/spotlight/src/modes/external/index.tsx new file mode 100644 index 000000000..204d01e1d --- /dev/null +++ b/packages/spotlight/src/modes/external/index.tsx @@ -0,0 +1,8 @@ +import type { SearchMode } from "../../lib/mode"; +import { searchEnginesSearchGroups } from "./search-engines-search-group"; + +export const externalMode = { + modeKey: "external", + character: "!", + groups: [searchEnginesSearchGroups], +} satisfies SearchMode; diff --git a/packages/spotlight/src/modes/external/search-engines-search-group.tsx b/packages/spotlight/src/modes/external/search-engines-search-group.tsx new file mode 100644 index 000000000..45669ba52 --- /dev/null +++ b/packages/spotlight/src/modes/external/search-engines-search-group.tsx @@ -0,0 +1,82 @@ +import { Group, Stack, Text } from "@mantine/core"; +import type { TablerIcon } from "@tabler/icons-react"; +import { IconDownload } from "@tabler/icons-react"; + +import { useScopedI18n } from "@homarr/translation/client"; + +import { createGroup } from "../../lib/group"; +import { interaction } from "../../lib/interaction"; + +// This has to be type so it can be interpreted as Record. +// eslint-disable-next-line @typescript-eslint/consistent-type-definitions +type SearchEngine = { + short: string; + image: string | TablerIcon; + name: string; + description: string; + urlTemplate: string; +}; + +export const searchEnginesSearchGroups = createGroup({ + keyPath: "short", + title: (t) => t("search.mode.external.group.searchEngine.title"), + component: ({ image: Image, name, description }) => ( + + + {typeof Image === "string" ? {name} : } + + {name} + + {description} + + + + + ), + filter: () => true, + useInteraction: interaction.link(({ urlTemplate }, query) => ({ + href: urlTemplate.replace("%s", query), + newTab: true, + })), + useOptions() { + const tOption = useScopedI18n("search.mode.external.group.searchEngine.option"); + + return [ + { + short: "g", + name: tOption("google.name"), + image: "https://www.google.com/favicon.ico", + description: tOption("google.description"), + urlTemplate: "https://www.google.com/search?q=%s", + }, + { + short: "b", + name: tOption("bing.name"), + image: "https://www.bing.com/favicon.ico", + description: tOption("bing.description"), + urlTemplate: "https://www.bing.com/search?q=%s", + }, + { + short: "d", + name: tOption("duckduckgo.name"), + image: "https://duckduckgo.com/favicon.ico", + description: tOption("duckduckgo.description"), + urlTemplate: "https://duckduckgo.com/?q=%s", + }, + { + short: "t", + name: tOption("torrent.name"), + image: IconDownload, + description: tOption("torrent.description"), + urlTemplate: "https://www.torrentdownloads.pro/search/?search=%s", + }, + { + short: "y", + name: tOption("youTube.name"), + image: "https://www.youtube.com/favicon.ico", + description: tOption("youTube.description"), + urlTemplate: "https://www.youtube.com/results?search_query=%s", + }, + ]; + }, +}); diff --git a/packages/spotlight/src/modes/index.tsx b/packages/spotlight/src/modes/index.tsx new file mode 100644 index 000000000..29b0f220f --- /dev/null +++ b/packages/spotlight/src/modes/index.tsx @@ -0,0 +1,74 @@ +import { Group, Kbd, Text } from "@mantine/core"; +import { IconBook2, IconBrandDiscord, IconBrandGithub } from "@tabler/icons-react"; + +import { useScopedI18n } from "@homarr/translation/client"; + +import { createGroup } from "../lib/group"; +import { interaction } from "../lib/interaction"; +import type { SearchMode } from "../lib/mode"; +import { appIntegrationBoardMode } from "./app-integration-board"; +import { commandMode } from "./command"; +import { externalMode } from "./external"; +import { pageMode } from "./page"; +import { userGroupMode } from "./user-group"; + +const searchModesWithoutHelp = [userGroupMode, appIntegrationBoardMode, externalMode, commandMode, pageMode] as const; + +const helpMode = { + modeKey: "help", + character: "?", + groups: [ + createGroup({ + keyPath: "character", + title: (t) => t("search.mode.help.group.mode.title"), + options: searchModesWithoutHelp.map(({ character, modeKey }) => ({ character, modeKey })), + component: ({ modeKey, character }) => { + const t = useScopedI18n(`search.mode.${modeKey}`); + + return ( + + {t("help")} + {character} + + ); + }, + filter: () => true, + useInteraction: interaction.mode(({ modeKey }) => ({ mode: modeKey })), + }), + createGroup({ + keyPath: "href", + title: (t) => t("search.mode.help.group.help.title"), + useOptions() { + const t = useScopedI18n("search.mode.help.group.help.option"); + + return [ + { + label: t("documentation.label"), + icon: IconBook2, + href: "https://homarr.dev/docs/getting-started/", + }, + { + label: t("submitIssue.label"), + icon: IconBrandGithub, + href: "https://github.com/ajnart/homarr/issues/new/choose", + }, + { + label: t("discord.label"), + icon: IconBrandDiscord, + href: "https://discord.com/invite/aCsmEV5RgA", + }, + ]; + }, + component: (props) => ( + + + {props.label} + + ), + filter: () => true, + useInteraction: interaction.link(({ href }) => ({ href })), + }), + ], +} satisfies SearchMode; + +export const searchModes = [...searchModesWithoutHelp, helpMode] as const; diff --git a/packages/spotlight/src/modes/page/index.tsx b/packages/spotlight/src/modes/page/index.tsx new file mode 100644 index 000000000..39be2cb19 --- /dev/null +++ b/packages/spotlight/src/modes/page/index.tsx @@ -0,0 +1,8 @@ +import type { SearchMode } from "../../lib/mode"; +import { pagesSearchGroup } from "./pages-search-group"; + +export const pageMode = { + modeKey: "page", + character: "/", + groups: [pagesSearchGroup], +} satisfies SearchMode; diff --git a/packages/spotlight/src/modes/page/pages-search-group.tsx b/packages/spotlight/src/modes/page/pages-search-group.tsx new file mode 100644 index 000000000..d4ad2eb52 --- /dev/null +++ b/packages/spotlight/src/modes/page/pages-search-group.tsx @@ -0,0 +1,156 @@ +import { Group, Text } from "@mantine/core"; +import { + IconBox, + IconBrandDocker, + IconHome, + IconInfoSmall, + IconLayoutDashboard, + IconLogs, + IconMailForward, + IconPlug, + IconReport, + IconSettings, + IconUsers, + IconUsersGroup, +} from "@tabler/icons-react"; + +import { useSession } from "@homarr/auth/client"; +import { useScopedI18n } from "@homarr/translation/client"; +import type { TablerIcon } from "@homarr/ui"; + +import { createGroup } from "../../lib/group"; +import { interaction } from "../../lib/interaction"; + +export const pagesSearchGroup = createGroup<{ + icon: TablerIcon; + name: string; + path: string; +}>({ + keyPath: "path", + title: (t) => t("search.mode.page.group.page.title"), + component: ({ name, icon: Icon }) => ( + + + {name} + + ), + useInteraction: interaction.link(({ path }) => ({ href: path })), + filter: (query, { name, path }) => { + const normalizedQuery = query.trim().toLowerCase(); + return name.toLowerCase().includes(normalizedQuery) || path.toLowerCase().includes(normalizedQuery); + }, + sort: (query, options) => { + const normalizedQuery = query.trim().toLowerCase(); + + const nameMatches = options.map((option) => option.name.toLowerCase().includes(normalizedQuery)); + const pathMatches = options.map((option) => option.path.toLowerCase().includes(normalizedQuery)); + + if (nameMatches.every(Boolean) && pathMatches.every(Boolean)) { + return 0; + } + + if (nameMatches.every(Boolean) && !pathMatches.every(Boolean)) { + return pathMatches[0] ? -1 : 1; + } + + return nameMatches[0] ? -1 : 1; + }, + useOptions() { + const { data: session } = useSession(); + const t = useScopedI18n("search.mode.page.group.page.option"); + + const managePages = [ + { + icon: IconHome, + path: "/manage", + name: t("manageHome.label"), + }, + { + icon: IconLayoutDashboard, + path: "/manage/boards", + name: t("manageBoard.label"), + }, + { + icon: IconBox, + path: "/manage/apps", + name: t("manageApp.label"), + hidden: !session, + }, + { + icon: IconPlug, + path: "/manage/integrations", + name: t("manageIntegration.label"), + hidden: !session, + }, + { + icon: IconUsers, + path: "/manage/users", + name: t("manageUser.label"), + hidden: !session, + }, + { + icon: IconMailForward, + path: "/manage/users/invites", + name: t("manageInvite.label"), + hidden: !session?.user.permissions.includes("admin"), + }, + { + icon: IconUsersGroup, + path: "/manage/users/groups", + name: t("manageGroup.label"), + hidden: !session, + }, + { + icon: IconBrandDocker, + path: "/manage/tools/docker", + name: "Manage Docker", + hidden: !session?.user.permissions.includes("admin"), + }, + { + icon: IconPlug, + path: "/manage/tools/api", + name: t("manageApi.label"), + hidden: !session, + }, + { + icon: IconLogs, + path: "/manage/tools/logs", + name: t("manageLog.label"), + hidden: !session?.user.permissions.includes("admin"), + }, + { + icon: IconReport, + path: "/manage/tools/tasks", + name: t("manageTask.label"), + hidden: !session?.user.permissions.includes("admin"), + }, + { + icon: IconSettings, + path: "/manage/settings", + name: t("manageSettings.label"), + hidden: !session?.user.permissions.includes("admin"), + }, + { + icon: IconInfoSmall, + path: "/manage/about", + name: t("about.label"), + }, + ]; + + const otherPages = [ + { + icon: IconHome, + path: "/boards", + name: t("homeBoard.label"), + }, + { + icon: IconSettings, + path: `/manage/users/${session?.user.id}/general`, + name: t("preferences.label"), + hidden: !session, + }, + ]; + + return otherPages.concat(managePages).filter(({ hidden }) => !hidden); + }, +}); diff --git a/packages/spotlight/src/modes/user-group/groups-search-group.tsx b/packages/spotlight/src/modes/user-group/groups-search-group.tsx new file mode 100644 index 000000000..507c7cb80 --- /dev/null +++ b/packages/spotlight/src/modes/user-group/groups-search-group.tsx @@ -0,0 +1,83 @@ +import { Group, Stack, Text } from "@mantine/core"; +import { IconEye, IconUsersGroup } from "@tabler/icons-react"; + +import { clientApi } from "@homarr/api/client"; +import { useI18n } from "@homarr/translation/client"; + +import { createChildrenOptions } from "../../lib/children"; +import { createGroup } from "../../lib/group"; +import { interaction } from "../../lib/interaction"; + +// This has to be type so it can be interpreted as Record. +// eslint-disable-next-line @typescript-eslint/consistent-type-definitions +type Group = { id: string; name: string }; + +const groupChildrenOptions = createChildrenOptions({ + useActions: () => [ + { + key: "detail", + component: () => { + const t = useI18n(); + return ( + + + {t("search.mode.userGroup.group.group.children.action.detail.label")} + + ); + }, + useInteraction: interaction.link(({ id }) => ({ href: `/manage/users/groups/${id}` })), + }, + { + key: "manageMember", + component: () => { + const t = useI18n(); + return ( + + + {t("search.mode.userGroup.group.group.children.action.manageMember.label")} + + ); + }, + useInteraction: interaction.link(({ id }) => ({ href: `/manage/users/groups/${id}/members` })), + }, + { + key: "managePermission", + component: () => { + const t = useI18n(); + return ( + + + {t("search.mode.userGroup.group.group.children.action.managePermission.label")} + + ); + }, + useInteraction: interaction.link(({ id }) => ({ href: `/manage/users/groups/${id}/permissions` })), + }, + ], + detailComponent: ({ options }) => { + const t = useI18n(); + return ( + + {t("search.mode.userGroup.group.group.children.detail.title")} + + + {options.name} + + + ); + }, +}); + +export const groupsSearchGroup = createGroup({ + keyPath: "id", + title: "Groups", + component: ({ name }) => ( + + {name} + + ), + useInteraction: interaction.children(groupChildrenOptions), + useQueryOptions(query) { + return clientApi.group.search.useQuery({ query, limit: 5 }); + }, +}); diff --git a/packages/spotlight/src/modes/user-group/index.tsx b/packages/spotlight/src/modes/user-group/index.tsx new file mode 100644 index 000000000..e9faa6ab5 --- /dev/null +++ b/packages/spotlight/src/modes/user-group/index.tsx @@ -0,0 +1,9 @@ +import type { SearchMode } from "../../lib/mode"; +import { groupsSearchGroup } from "./groups-search-group"; +import { usersSearchGroup } from "./users-search-group"; + +export const userGroupMode = { + modeKey: "userGroup", + character: "@", + groups: [usersSearchGroup, groupsSearchGroup], +} satisfies SearchMode; diff --git a/packages/spotlight/src/modes/user-group/users-search-group.tsx b/packages/spotlight/src/modes/user-group/users-search-group.tsx new file mode 100644 index 000000000..ec750f182 --- /dev/null +++ b/packages/spotlight/src/modes/user-group/users-search-group.tsx @@ -0,0 +1,62 @@ +import { Group, Stack, Text } from "@mantine/core"; +import { IconEye } from "@tabler/icons-react"; + +import { clientApi } from "@homarr/api/client"; +import { useI18n } from "@homarr/translation/client"; +import { UserAvatar } from "@homarr/ui"; + +import { createChildrenOptions } from "../../lib/children"; +import { createGroup } from "../../lib/group"; +import { interaction } from "../../lib/interaction"; + +// This has to be type so it can be interpreted as Record. +// eslint-disable-next-line @typescript-eslint/consistent-type-definitions +type User = { id: string; name: string; image: string | null }; + +const userChildrenOptions = createChildrenOptions({ + useActions: () => [ + { + key: "detail", + component: () => { + const t = useI18n(); + + return ( + + + {t("search.mode.userGroup.group.user.children.action.detail.label")} + + ); + }, + useInteraction: interaction.link(({ id }) => ({ href: `/manage/users/${id}/general` })), + }, + ], + detailComponent: ({ options }) => { + const t = useI18n(); + + return ( + + {t("search.mode.userGroup.group.user.children.detail.title")} + + + + {options.name} + + + ); + }, +}); + +export const usersSearchGroup = createGroup({ + keyPath: "id", + title: (t) => t("search.mode.userGroup.group.user.title"), + component: (user) => ( + + + {user.name} + + ), + useInteraction: interaction.children(userChildrenOptions), + useQueryOptions(query) { + return clientApi.user.search.useQuery({ query, limit: 5 }); + }, +}); diff --git a/packages/spotlight/src/type.ts b/packages/spotlight/src/type.ts deleted file mode 100644 index 25f96c2c7..000000000 --- a/packages/spotlight/src/type.ts +++ /dev/null @@ -1,28 +0,0 @@ -import type { TranslationFunction, TranslationObject } from "@homarr/translation"; -import type { TablerIcon } from "@homarr/ui"; - -export type SpotlightActionGroup = keyof TranslationObject["common"]["search"]["group"]; - -interface BaseSpotlightAction { - id: string; - title: string | ((t: TranslationFunction) => string); - description: string | ((t: TranslationFunction) => string); - group: Exclude; // actions can not be assigned to the "all" group - icon: TablerIcon | string; - ignoreSearchAndOnlyShowInGroup?: boolean; -} - -interface SpotlightActionLink extends BaseSpotlightAction { - type: "link"; - href: string; - openInNewTab?: boolean; -} - -type MaybePromise = T | Promise; - -interface SpotlightActionButton extends BaseSpotlightAction { - type: "button"; - onClick: () => MaybePromise; -} - -export type SpotlightActionData = SpotlightActionLink | SpotlightActionButton; diff --git a/packages/spotlight/src/web-search-engines.ts b/packages/spotlight/src/web-search-engines.ts deleted file mode 100644 index 870e4a96f..000000000 --- a/packages/spotlight/src/web-search-engines.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { IconDownload } from "@tabler/icons-react"; - -import { useRegisterSpotlightActions } from "./data-store"; - -export const useWebSearchEngines = () => { - useRegisterSpotlightActions("web-search-engines", [ - { - id: "google", - title: "Google", - description: "Search the web with Google", - icon: "https://www.google.com/favicon.ico", - href: "https://www.google.com/search?q=%s", - group: "web", - type: "link", - ignoreSearchAndOnlyShowInGroup: true, - openInNewTab: true, - }, - { - id: "bing", - title: "Bing", - description: "Search the web with Bing", - icon: "https://www.bing.com/favicon.ico", - href: "https://www.bing.com/search?q=%s", - group: "web", - type: "link", - ignoreSearchAndOnlyShowInGroup: true, - openInNewTab: true, - }, - { - id: "duckduckgo", - title: "DuckDuckGo", - description: "Search the web with DuckDuckGo", - icon: "https://duckduckgo.com/favicon.ico", - href: "https://duckduckgo.com/?q=%s", - group: "web", - type: "link", - ignoreSearchAndOnlyShowInGroup: true, - openInNewTab: true, - }, - { - id: "torrent", - title: "Torrents", - description: "Search for torrents on torrentdownloads.pro", - icon: IconDownload, - href: "https://www.torrentdownloads.pro/search/?search=%s", - group: "web", - type: "link", - ignoreSearchAndOnlyShowInGroup: true, - openInNewTab: true, - }, - { - id: "youtube", - title: "YouTube", - description: "Search for videos on YouTube", - icon: "https://www.youtube.com/favicon.ico", - href: "https://www.youtube.com/results?search_query=%s", - group: "web", - type: "link", - ignoreSearchAndOnlyShowInGroup: true, - openInNewTab: true, - }, - ]); -}; diff --git a/packages/translation/src/lang/de.ts b/packages/translation/src/lang/de.ts index c556cef68..4134d7109 100644 --- a/packages/translation/src/lang/de.ts +++ b/packages/translation/src/lang/de.ts @@ -156,10 +156,6 @@ export default { placeholder: "Wähle eine oder mehrere Optionen aus", }, noResults: "Keine Ergebnisse gefunden", - search: { - placeholder: "Suche nach etwas", - nothingFound: "Nichts gefunden", - }, mantineReactTable: MRT_Localization_DE, }, widget: { @@ -193,4 +189,8 @@ export default { }, }, }, + search: { + placeholder: "Suche nach etwas", + nothingFound: "Nichts gefunden", + }, } as const; diff --git a/packages/translation/src/lang/en.ts b/packages/translation/src/lang/en.ts index f16ece370..027732955 100644 --- a/packages/translation/src/lang/en.ts +++ b/packages/translation/src/lang/en.ts @@ -597,16 +597,6 @@ export default { recommended: "Recommended", }, }, - search: { - placeholder: "Search for anything", - nothingFound: "Nothing found", - group: { - all: "All", - web: "Web", - action: "Actions", - app: "Apps", - }, - }, userAvatar: { menu: { switchToDarkMode: "Switch to dark mode", @@ -1723,7 +1713,7 @@ export default { copy: { title: "Copy invite", description: - "Your invitation has been generated. After this modal closes, you'll not be able to copy this link anymore. If you do no longer wish to invite said person, you can delete this invitation any time.", + "Your invitation has been generated. After this modal closes, you'll not be able to copy this link anymore. If you do no longer wish to invite said person, you can delete this invitation any time.", link: "Invitation link", button: "Copy & close", }, @@ -2058,4 +2048,247 @@ export default { }, }, }, + search: { + placeholder: "Search for anything", + nothingFound: "Nothing found", + error: { + fetch: "An error occurred while fetching data", + }, + mode: { + appIntegrationBoard: { + help: "Search for apps, integrations or boards", + group: { + app: { + title: "Apps", + children: { + action: { + open: { + label: "Open app url", + }, + edit: { + label: "Edit app", + }, + }, + detail: { + title: "Select an action for the app", + }, + }, + }, + board: { + title: "Boards", + children: { + action: { + open: { + label: "Open board", + }, + homeBoard: { + label: "Set as home board", + }, + settings: { + label: "Open settings", + }, + }, + detail: { + title: "Select an action for the board", + }, + }, + }, + integration: { + title: "Integrations", + }, + }, + }, + command: { + help: "Activate command mode", + group: { + globalCommand: { + title: "Global commands", + option: { + colorScheme: { + light: "Switch to light mode", + dark: "Switch to dark mode", + }, + language: { + label: "Change language", + children: { + detail: { + title: "Select your prefered language", + }, + }, + }, + newBoard: { + label: "Create a new board", + }, + importBoard: { + label: "Import a board", + }, + newApp: { + label: "Create a new app", + }, + newIntegration: { + label: "Create a new integration", + children: { + detail: { + title: "Select the integration type you want to create", + }, + }, + }, + newUser: { + label: "Create a new user", + }, + newInvite: { + label: "Create a new invite", + }, + newGroup: { + label: "Create a new group", + }, + }, + }, + }, + }, + external: { + help: "Use an external search engine", + group: { + searchEngine: { + title: "Search engines", + option: { + google: { + name: "Google", + description: "Search the web with Google", + }, + bing: { + name: "Bing", + description: "Search the web with Bing", + }, + duckduckgo: { + name: "DuckDuckGo", + description: "Search the web with DuckDuckGo", + }, + torrent: { + name: "Torrents", + description: "Search for torrents on torrentdownloads.pro", + }, + youTube: { + name: "YouTube", + description: "Search for videos on YouTube", + }, + }, + }, + }, + }, + help: { + group: { + mode: { + title: "Modes", + }, + help: { + title: "Help", + option: { + documentation: { + label: "Documentation", + }, + submitIssue: { + label: "Submit an issue", + }, + discord: { + label: "Community Discord", + }, + }, + }, + }, + }, + page: { + help: "Search for pages", + group: { + page: { + title: "Pages", + option: { + manageHome: { + label: "Manage home page", + }, + manageBoard: { + label: "Manage boards", + }, + manageApp: { + label: "Manage apps", + }, + manageIntegration: { + label: "Manage integrations", + }, + manageUser: { + label: "Manage users", + }, + manageInvite: { + label: "Manage invites", + }, + manageGroup: { + label: "Manage groups", + }, + manageDocker: { + label: "Manage docker", + }, + manageApi: { + label: "Swagger API", + }, + manageLog: { + label: "View logs", + }, + manageTask: { + label: "Manage tasks", + }, + manageSettings: { + label: "Global settings", + }, + about: { + label: "About", + }, + homeBoard: { + label: "Home board", + }, + preferences: { + label: "Your preferences", + }, + }, + }, + }, + }, + userGroup: { + help: "Search for users or groups", + group: { + user: { + title: "Users", + children: { + action: { + detail: { + label: "Show user details", + }, + }, + detail: { + title: "Select an action for the user", + }, + }, + }, + group: { + title: "Groups", + children: { + action: { + detail: { + label: "Show group details", + }, + manageMember: { + label: "Manage members", + }, + managePermission: { + label: "Manage permissions", + }, + }, + detail: { + title: "Select an action for the group", + }, + }, + }, + }, + }, + }, + }, } as const; diff --git a/packages/ui/package.json b/packages/ui/package.json index dc1d20f2b..6bef09590 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -22,9 +22,9 @@ "lint": "eslint", "typecheck": "tsc --noEmit" }, - "prettier": "@homarr/prettier-config", "dependencies": { "@homarr/common": "workspace:^0.1.0", + "@homarr/definitions": "workspace:^0.1.0", "@homarr/log": "workspace:^0.1.0", "@homarr/translation": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", @@ -43,5 +43,6 @@ "@types/css-modules": "^1.0.5", "eslint": "^9.10.0", "typescript": "^5.6.2" - } + }, + "prettier": "@homarr/prettier-config" } diff --git a/packages/ui/src/components/index.tsx b/packages/ui/src/components/index.tsx index ff01de8b2..ecd4632ba 100644 --- a/packages/ui/src/components/index.tsx +++ b/packages/ui/src/components/index.tsx @@ -8,4 +8,5 @@ export { TextMultiSelect } from "./text-multi-select"; export { UserAvatar } from "./user-avatar"; export { UserAvatarGroup } from "./user-avatar-group"; export { CustomPasswordInput } from "./password-input/password-input"; +export { IntegrationAvatar } from "./integration-avatar"; export { BetaBadge } from "./beta-badge"; diff --git a/apps/nextjs/src/app/[locale]/manage/integrations/_integration-avatar.tsx b/packages/ui/src/components/integration-avatar.tsx similarity index 100% rename from apps/nextjs/src/app/[locale]/manage/integrations/_integration-avatar.tsx rename to packages/ui/src/components/integration-avatar.tsx index f443569da..59f962eef 100644 --- a/apps/nextjs/src/app/[locale]/manage/integrations/_integration-avatar.tsx +++ b/packages/ui/src/components/integration-avatar.tsx @@ -1,8 +1,8 @@ -import { Avatar } from "@mantine/core"; import type { MantineSize } from "@mantine/core"; +import { Avatar } from "@mantine/core"; -import { getIconUrl } from "@homarr/definitions"; import type { IntegrationKind } from "@homarr/definitions"; +import { getIconUrl } from "@homarr/definitions"; interface IntegrationAvatarProps { size: MantineSize; diff --git a/packages/widgets/src/app/component.tsx b/packages/widgets/src/app/component.tsx index 36472e715..c8628030a 100644 --- a/packages/widgets/src/app/component.tsx +++ b/packages/widgets/src/app/component.tsx @@ -7,7 +7,6 @@ import combineClasses from "clsx"; import { clientApi } from "@homarr/api/client"; import { parseAppHrefWithVariablesClient } from "@homarr/common/client"; -import { useRegisterSpotlightActions } from "@homarr/spotlight"; import { useI18n } from "@homarr/translation/client"; import type { WidgetComponentProps } from "../definition"; @@ -29,25 +28,6 @@ export default function AppWidget({ options, isEditMode }: WidgetComponentProps< }, ); - useRegisterSpotlightActions( - `app-${options.appId}`, - app.href - ? [ - { - id: `app-${options.appId}`, - title: app.name, - description: app.description ?? "", - icon: app.iconUrl, - group: "app", - type: "link", - href: parseAppHrefWithVariablesClient(app.href), - openInNewTab: options.openInNewTab, - }, - ] - : [], - [app, options.appId, options.openInNewTab], - ); - return (