diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 01f325c5e..17e8484c9 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -39,4 +39,4 @@ updates:
open-pull-requests-limit: 10
labels:
- "type/dependencies"
- - "scope/infrastructure"
+ - "scope/infra"
diff --git a/.github/workflows/aws_publisher.yaml b/.github/workflows/aws_publisher.yml
similarity index 98%
rename from .github/workflows/aws_publisher.yaml
rename to .github/workflows/aws_publisher.yml
index 6b87e25ad..6aa70fa91 100644
--- a/.github/workflows/aws_publisher.yaml
+++ b/.github/workflows/aws_publisher.yml
@@ -31,7 +31,7 @@ jobs:
echo "Packer will be triggered in this dir $WORK_DIR"
- name: Configure AWS credentials for Kafka-UI account
- uses: aws-actions/configure-aws-credentials@v3
+ uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_AMI_PUBLISH_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_AMI_PUBLISH_KEY_SECRET }}
diff --git a/.github/workflows/backend_main.yml b/.github/workflows/backend_main.yml
new file mode 100644
index 000000000..b0c7f8ab4
--- /dev/null
+++ b/.github/workflows/backend_main.yml
@@ -0,0 +1,25 @@
+name: "Backend: Main: Build and test"
+
+on:
+ push:
+ branches: [ "main" ]
+ paths:
+ - "pom.xml"
+ - "contract/**"
+ - "api/**"
+ - "serde-api/**"
+
+permissions:
+ contents: read
+ checks: write
+ pull-requests: write
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+jobs:
+ build:
+ uses: ./.github/workflows/backend_tests.yml
+ with:
+ event_name: ${{ github.event_name }}
diff --git a/.github/workflows/backend_pr.yml b/.github/workflows/backend_pr.yml
new file mode 100644
index 000000000..3570dfa97
--- /dev/null
+++ b/.github/workflows/backend_pr.yml
@@ -0,0 +1,26 @@
+name: "Backend: PR: Build and test"
+
+on:
+
+ pull_request_target:
+ types: [ "opened", "reopened", "synchronize" ]
+ paths:
+ - "pom.xml"
+ - "contract/**"
+ - "api/**"
+ - "serde-api/**"
+
+permissions:
+ contents: read
+ checks: write
+ pull-requests: write
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+jobs:
+ build:
+ uses: ./.github/workflows/backend_tests.yml
+ with:
+ event_name: ${{ github.event_name }}
diff --git a/.github/workflows/backend.yml b/.github/workflows/backend_tests.yml
similarity index 77%
rename from .github/workflows/backend.yml
rename to .github/workflows/backend_tests.yml
index 6b10cb43a..8a3ffe2d3 100644
--- a/.github/workflows/backend.yml
+++ b/.github/workflows/backend_tests.yml
@@ -1,19 +1,15 @@
-name: "Backend: PR/main build & test"
+name: "Backend: build and test"
on:
- push:
- branches: [ "main" ]
- paths: &backend_paths
- - "pom.xml"
- - "contract/**"
- - "api/**"
- - "serde-api/**"
-
- pull_request_target:
- types: [ "opened", "reopened", "synchronize" ]
- paths: *backend_paths
+ workflow_call:
+ inputs:
+ event_name:
+ description: 'Original github.event_name'
+ required: true
+ type: string
permissions:
+ contents: read
checks: write
pull-requests: write
@@ -25,7 +21,7 @@ jobs:
- name: Checkout
uses: actions/checkout@v4
with:
- token: ${{ github.token }} # TODO remove when public
+ token: ${{ github.token }}
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
@@ -43,8 +39,8 @@ jobs:
key: ${{ runner.os }}-sonar
restore-keys: ${{ runner.os }}-sonar
- - name: Build and analyze pull request target
- if: ${{ github.event_name == 'pull_request' }}
+ - name: "Pull request: Maven tests & sonar"
+ if: ${{ inputs.event_name == 'pull_request' || inputs.event_name == 'pull_request_target' }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN_BACKEND }}
@@ -60,8 +56,8 @@ jobs:
-Dsonar.pullrequest.branch=$HEAD_REF \
-Dsonar.pullrequest.base=$BASE_REF
- - name: Build and analyze push main
- if: ${{ github.event_name == 'push' }}
+ - name: "Main: Maven tests & sonar"
+ if: ${{ inputs.event_name == 'push' }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN_BACKEND }}
diff --git a/.github/workflows/branch-deploy.yml b/.github/workflows/branch-deploy.yml
index 383599d40..107a93116 100644
--- a/.github/workflows/branch-deploy.yml
+++ b/.github/workflows/branch-deploy.yml
@@ -1,20 +1,23 @@
name: "Infra: Feature Testing: Init env"
+
on:
workflow_dispatch:
pull_request:
types: ['labeled']
+
+permissions:
+ contents: read
+
jobs:
build:
if: ${{ github.event.label.name == 'status/feature_testing' || github.event.label.name == 'status/feature_testing_public' }}
runs-on: ubuntu-latest
- permissions: # TODO remove when public
- contents: read
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
- token: ${{ github.token }} # TODO remove when public
+ token: ${{ github.token }}
- name: get branch name
id: extract_branch
run: |
@@ -48,7 +51,7 @@ jobs:
restore-keys: |
${{ runner.os }}-buildx-
- name: Configure AWS credentials for Kafka-UI account
- uses: aws-actions/configure-aws-credentials@v3
+ uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
diff --git a/.github/workflows/branch-remove.yml b/.github/workflows/branch-remove.yml
index 00b329167..d700ea976 100644
--- a/.github/workflows/branch-remove.yml
+++ b/.github/workflows/branch-remove.yml
@@ -1,18 +1,21 @@
name: "Infra: Feature Testing: Destroy env"
+
on:
workflow_dispatch:
pull_request:
types: ['unlabeled', 'closed']
+
+permissions:
+ contents: read
+
jobs:
remove:
runs-on: ubuntu-latest
- permissions: # TODO remove when public
- contents: read
if: ${{ (github.event.label.name == 'status/feature_testing' || github.event.label.name == 'status/feature_testing_public') || (github.event.action == 'closed' && (contains(github.event.pull_request.labels.*.name, 'status/feature_testing') || contains(github.event.pull_request.labels.*.name, 'status/feature_testing_public'))) }}
steps:
- uses: actions/checkout@v4
with:
- token: ${{ github.token }} # TODO remove when public
+ token: ${{ github.token }}
- name: clone
run: |
git clone https://infra-tech:${{ secrets.INFRA_USER_ACCESS_TOKEN }}@github.com/kafbat/ui-infra.git --branch envs
diff --git a/.github/workflows/build-public-image.yml b/.github/workflows/build-public-image.yml
index 29346adcb..86f90ad9c 100644
--- a/.github/workflows/build-public-image.yml
+++ b/.github/workflows/build-public-image.yml
@@ -1,19 +1,22 @@
name: "Infra: Image Testing: Deploy"
+
on:
workflow_dispatch:
pull_request:
types: ['labeled']
+
+permissions:
+ contents: read
+
jobs:
build:
if: ${{ github.event.label.name == 'status/image_testing' }}
runs-on: ubuntu-latest
- permissions: # TODO remove when public
- contents: read
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
- token: ${{ github.token }} # TODO remove when public
+ token: ${{ github.token }}
- name: get branch name
id: extract_branch
run: |
@@ -45,7 +48,7 @@ jobs:
restore-keys: |
${{ runner.os }}-buildx-
- name: Configure AWS credentials for Kafka-UI account
- uses: aws-actions/configure-aws-credentials@v3
+ uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
@@ -68,7 +71,7 @@ jobs:
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache
- name: make comment with private deployment link
- uses: peter-evans/create-or-update-comment@v3
+ uses: peter-evans/create-or-update-comment@v4
with:
issue-number: ${{ github.event.pull_request.number }}
body: |
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
index 72ecea786..57f5a0251 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -17,12 +17,13 @@ on:
schedule:
- cron: '39 15 * * 6'
+permissions:
+ contents: read
+
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
- permissions: # TODO remove when public
- contents: read
strategy:
fail-fast: false
matrix:
@@ -32,10 +33,10 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v4
with:
- token: ${{ github.token }} # TODO remove when public
+ token: ${{ github.token }}
- name: Initialize CodeQL
- uses: github/codeql-action/init@v2
+ uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
@@ -47,7 +48,7 @@ jobs:
cache: 'maven'
- name: Autobuild
- uses: github/codeql-action/autobuild@v2
+ uses: github/codeql-action/autobuild@v3
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@v2
+ uses: github/codeql-action/analyze@v3
diff --git a/.github/workflows/cve.yaml b/.github/workflows/cve.yml
similarity index 93%
rename from .github/workflows/cve.yaml
rename to .github/workflows/cve.yml
index 1075bef1c..d53913521 100644
--- a/.github/workflows/cve.yaml
+++ b/.github/workflows/cve.yml
@@ -5,15 +5,17 @@ on:
# * is a special character in YAML so you have to quote this string
- cron: '0 8 15 * *'
+permissions:
+ contents: read
+
jobs:
build-and-test:
runs-on: ubuntu-latest
- permissions: # TODO remove when public
- contents: read
+
steps:
- uses: actions/checkout@v4
with:
- token: ${{ github.token }} # TODO remove when public
+ token: ${{ github.token }}
- name: Set up JDK
uses: actions/setup-java@v3
diff --git a/.github/workflows/delete-public-image.yml b/.github/workflows/delete-public-image.yml
index c9509c32b..8e3f2dd7c 100644
--- a/.github/workflows/delete-public-image.yml
+++ b/.github/workflows/delete-public-image.yml
@@ -15,7 +15,7 @@ jobs:
tag='${{ github.event.pull_request.number }}'
echo "tag=${tag}" >> $GITHUB_OUTPUT
- name: Configure AWS credentials for Kafka-UI account
- uses: aws-actions/configure-aws-credentials@v3
+ uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
diff --git a/.github/workflows/e2e-automation.yml b/.github/workflows/e2e-automation.yml
index b631d5b86..6303001a3 100644
--- a/.github/workflows/e2e-automation.yml
+++ b/.github/workflows/e2e-automation.yml
@@ -16,18 +16,19 @@ on:
required: false
type: string
+permissions:
+ contents: read
+
jobs:
build-and-test:
runs-on: ubuntu-latest
- permissions: # TODO remove when public
- contents: read
steps:
- uses: actions/checkout@v4
with:
- token: ${{ github.token }} # TODO remove when public
+ token: ${{ github.token }}
ref: ${{ github.sha }}
- name: Configure AWS credentials
- uses: aws-actions/configure-aws-credentials@v3
+ uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
@@ -88,4 +89,4 @@ jobs:
target_url: http://kafkaui-allure-reports.s3-website.eu-central-1.amazonaws.com/${{ github.run_number }}
- name: Dump Docker logs on failure
if: failure()
- uses: jwalton/gh-docker-logs@v2.2.1
+ uses: jwalton/gh-docker-logs@v2.2.2
diff --git a/.github/workflows/e2e-manual.yml b/.github/workflows/e2e-manual.yml
index 96f76bc96..d554bdaa2 100644
--- a/.github/workflows/e2e-manual.yml
+++ b/.github/workflows/e2e-manual.yml
@@ -15,15 +15,16 @@ on:
required: true
type: string
+permissions:
+ contents: read
+
jobs:
build-and-test:
runs-on: ubuntu-latest
- permissions: # TODO remove when public
- contents: read
steps:
- uses: actions/checkout@v4
with:
- token: ${{ github.token }} # TODO remove when public
+ token: ${{ github.token }}
ref: ${{ github.sha }}
- name: Set up environment
id: set_env_values
diff --git a/.github/workflows/e2e-tests.yaml b/.github/workflows/e2e-tests.yml
similarity index 94%
rename from .github/workflows/e2e-tests.yaml
rename to .github/workflows/e2e-tests.yml
index 0e28e6b51..72e7c92e1 100644
--- a/.github/workflows/e2e-tests.yaml
+++ b/.github/workflows/e2e-tests.yml
@@ -10,9 +10,9 @@ on:
- "frontend/**"
- "e2e-tests/**"
-permissions: # TODO remove when public
- statuses: write
+permissions:
contents: read
+ statuses: write
jobs:
build-and-test:
@@ -20,10 +20,10 @@ jobs:
steps:
- uses: actions/checkout@v4
with:
- token: ${{ github.token }} # TODO remove when public
+ token: ${{ github.token }}
ref: ${{ github.event.pull_request.head.sha }}
- name: Configure AWS credentials
- uses: aws-actions/configure-aws-credentials@v3
+ uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.S3_AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.S3_AWS_SECRET_ACCESS_KEY }}
@@ -84,4 +84,4 @@ jobs:
target_url: http://kafkaui-allure-reports.s3-website.eu-central-1.amazonaws.com/${{ github.run_number }}
- name: Dump docker logs on failure
if: failure()
- uses: jwalton/gh-docker-logs@v2.2.1
+ uses: jwalton/gh-docker-logs@v2.2.2
diff --git a/.github/workflows/e2e-weekly.yml b/.github/workflows/e2e-weekly.yml
index 64e478f88..d8275e473 100644
--- a/.github/workflows/e2e-weekly.yml
+++ b/.github/workflows/e2e-weekly.yml
@@ -3,18 +3,19 @@ on:
schedule:
- cron: '0 1 * * 1'
+permissions:
+ contents: read
+
jobs:
build-and-test:
runs-on: ubuntu-latest
- permissions: # TODO remove when public
- contents: read
steps:
- uses: actions/checkout@v4
with:
- token: ${{ github.token }} # TODO remove when public
+ token: ${{ github.token }}
ref: ${{ github.sha }}
- name: Configure AWS credentials
- uses: aws-actions/configure-aws-credentials@v3
+ uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
@@ -75,4 +76,4 @@ jobs:
target_url: http://kafkaui-allure-reports.s3-website.eu-central-1.amazonaws.com/${{ github.run_number }}
- name: Dump Docker logs on failure
if: failure()
- uses: jwalton/gh-docker-logs@v2.2.1
+ uses: jwalton/gh-docker-logs@v2.2.2
diff --git a/.github/workflows/frontend_main.yml b/.github/workflows/frontend_main.yml
new file mode 100644
index 000000000..b680a7334
--- /dev/null
+++ b/.github/workflows/frontend_main.yml
@@ -0,0 +1,19 @@
+name: "Frontend: Main: Build and test"
+
+on:
+ push:
+ branches: [ "main" ]
+ paths:
+ - "contract/**"
+ - "frontend/**"
+
+permissions:
+ contents: read
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+jobs:
+ build:
+ uses: ./.github/workflows/frontend_tests.yml
diff --git a/.github/workflows/frontend_pr.yml b/.github/workflows/frontend_pr.yml
new file mode 100644
index 000000000..22a4d6f5f
--- /dev/null
+++ b/.github/workflows/frontend_pr.yml
@@ -0,0 +1,20 @@
+name: "Frontend: PR: Build and test"
+
+on:
+
+ pull_request_target:
+ types: [ "opened", "reopened", "synchronize" ]
+ paths:
+ - "contract/**"
+ - "frontend/**"
+
+permissions:
+ contents: read
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+jobs:
+ build:
+ uses: ./.github/workflows/frontend_tests.yml
diff --git a/.github/workflows/frontend.yaml b/.github/workflows/frontend_tests.yml
similarity index 77%
rename from .github/workflows/frontend.yaml
rename to .github/workflows/frontend_tests.yml
index 6daeaf313..4be3239d4 100644
--- a/.github/workflows/frontend.yaml
+++ b/.github/workflows/frontend_tests.yml
@@ -1,16 +1,10 @@
-name: "Frontend: PR/main build & test"
+name: "Frontend: build and test"
+
on:
- push:
- branches: [ "main" ]
- paths:
- - "contract/**"
- - "frontend/**"
+ workflow_call:
- pull_request_target:
- types: [ "opened", "reopened", "synchronize" ]
- paths:
- - "contract/**"
- - "frontend/**"
+permissions:
+ contents: read
jobs:
build-and-test:
@@ -18,16 +12,14 @@ jobs:
CI: true
NODE_ENV: dev
runs-on: ubuntu-latest
- permissions: # TODO remove when public
- contents: read
steps:
- uses: actions/checkout@v4
with:
# Disabling shallow clone is recommended for improving relevancy of reporting
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
- token: ${{ github.token }} # TODO remove when public
- - uses: pnpm/action-setup@v2.4.0
+ token: ${{ github.token }}
+ - uses: pnpm/action-setup@v3.0.0
with:
version: 8.6.12
- name: Install node
diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yml
similarity index 94%
rename from .github/workflows/main.yaml
rename to .github/workflows/main.yml
index bb4143d48..503656b2d 100644
--- a/.github/workflows/main.yaml
+++ b/.github/workflows/main.yml
@@ -5,11 +5,14 @@ on:
push:
branches: [ "main" ]
+permissions:
+ contents: read
+
jobs:
build:
runs-on: ubuntu-latest
permissions:
- contents: read # TODO remove when public
+ contents: read
packages: write
steps:
@@ -17,7 +20,7 @@ jobs:
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
- token: ${{ github.token }} # TODO remove when public
+ token: ${{ github.token }}
- name: Set up JDK
uses: actions/setup-java@v3
diff --git a/.github/workflows/md-links.yaml b/.github/workflows/md-links.yml
similarity index 85%
rename from .github/workflows/md-links.yaml
rename to .github/workflows/md-links.yml
index c033794ba..b885e014d 100644
--- a/.github/workflows/md-links.yaml
+++ b/.github/workflows/md-links.yml
@@ -9,15 +9,17 @@ on:
paths:
- '**.md'
+permissions:
+ contents: read
+
jobs:
build-and-test:
runs-on: ubuntu-latest
- permissions: # TODO remove when public
- contents: read
+
steps:
- uses: actions/checkout@v4
with:
- token: ${{ github.token }} # TODO remove when public
+ token: ${{ github.token }}
- name: Check URLs in files
uses: urlstechie/urlchecker-action@0.0.34
with:
diff --git a/.github/workflows/pr-checks.yaml b/.github/workflows/pr_linter.yml
similarity index 100%
rename from .github/workflows/pr-checks.yaml
rename to .github/workflows/pr_linter.yml
diff --git a/.github/workflows/release-serde-api.yaml b/.github/workflows/release-serde-api.yml
similarity index 88%
rename from .github/workflows/release-serde-api.yaml
rename to .github/workflows/release-serde-api.yml
index 642801e29..af5b1db0d 100644
--- a/.github/workflows/release-serde-api.yaml
+++ b/.github/workflows/release-serde-api.yml
@@ -1,16 +1,19 @@
name: "Infra: Release: Serde API"
+
on: workflow_dispatch
+permissions:
+ contents: read
+
jobs:
release-serde-api:
runs-on: ubuntu-latest
- permissions: # TODO remove when public
- contents: read
+
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- token: ${{ github.token }} # TODO remove when public
+ token: ${{ github.token }}
- run: |
git config user.name github-actions
diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yml
similarity index 95%
rename from .github/workflows/release.yaml
rename to .github/workflows/release.yml
index 115e30141..2ae221180 100644
--- a/.github/workflows/release.yaml
+++ b/.github/workflows/release.yml
@@ -3,10 +3,13 @@ on:
release:
types: [ published ]
+permissions:
+ contents: read
+
jobs:
release:
runs-on: ubuntu-latest
- permissions: # TODO remove when public
+ permissions:
contents: write
packages: write
outputs:
@@ -16,7 +19,7 @@ jobs:
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
- token: ${{ github.token }} # TODO remove when public
+ token: ${{ github.token }}
- run: |
git config user.name github-actions
@@ -99,6 +102,6 @@ jobs:
uses: peter-evans/repository-dispatch@v2
with:
token: ${{ secrets.CHARTS_ACTIONS_TOKEN }}
- repository: kafbat/-ui-charts
+ repository: kafbat/helm-charts
event-type: prepare-helm-release
client-payload: '{"appversion": "${{ needs.release.outputs.version }}"}'
diff --git a/.github/workflows/separate_env_public_create.yml b/.github/workflows/separate_env_public_create.yml
index 8532dc73b..b7bb630e1 100644
--- a/.github/workflows/separate_env_public_create.yml
+++ b/.github/workflows/separate_env_public_create.yml
@@ -7,16 +7,18 @@ on:
required: true
default: 'demo'
+permissions:
+ contents: read
+
jobs:
build:
runs-on: ubuntu-latest
- permissions: # TODO remove when public
- contents: read
+
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
- token: ${{ github.token }} # TODO remove when public
+ token: ${{ github.token }}
- name: get branch name
id: extract_branch
run: |
@@ -50,7 +52,7 @@ jobs:
restore-keys: |
${{ runner.os }}-buildx-
- name: Configure AWS credentials for Kafka-UI account
- uses: aws-actions/configure-aws-credentials@v3
+ uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
diff --git a/.github/workflows/workflow_linter.yaml b/.github/workflows/workflow_linter.yml
similarity index 80%
rename from .github/workflows/workflow_linter.yaml
rename to .github/workflows/workflow_linter.yml
index bb6889bd0..728aaa251 100644
--- a/.github/workflows/workflow_linter.yaml
+++ b/.github/workflows/workflow_linter.yml
@@ -5,17 +5,19 @@ on:
paths:
- ".github/workflows/**"
+permissions:
+ contents: read
+
jobs:
build-and-test:
runs-on: ubuntu-latest
- permissions: # TODO remove when public
- contents: read
+
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
- token: ${{ github.token }} # TODO remove when public
+ token: ${{ github.token }}
- name: Install yamllint
run: sudo apt install -y yamllint
- name: Validate workflow yaml files
diff --git a/api/pom.xml b/api/pom.xml
index 65f5789c5..79dcba395 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -12,7 +12,7 @@
api
- 0.8.10
+ 0.8.11
jacoco
reuseReports
${project.basedir}/target/jacoco.exec
diff --git a/api/src/main/java/io/kafbat/ui/model/rbac/AccessContext.java b/api/src/main/java/io/kafbat/ui/model/rbac/AccessContext.java
index 04b210f46..9ccc10ccf 100644
--- a/api/src/main/java/io/kafbat/ui/model/rbac/AccessContext.java
+++ b/api/src/main/java/io/kafbat/ui/model/rbac/AccessContext.java
@@ -1,5 +1,7 @@
package io.kafbat.ui.model.rbac;
+import static io.kafbat.ui.model.rbac.permission.SchemaAction.MODIFY_GLOBAL_COMPATIBILITY;
+
import com.google.common.base.Preconditions;
import io.kafbat.ui.model.rbac.permission.AclAction;
import io.kafbat.ui.model.rbac.permission.ApplicationConfigAction;
@@ -132,7 +134,7 @@ public AccessContextBuilder schemaActions(String schema, SchemaAction... actions
}
public AccessContextBuilder schemaGlobalCompatChange() {
- accessedResources.add(new SingleResourceAccess(Resource.SCHEMA, List.of(SchemaAction.MODIFY_GLOBAL_COMPATIBILITY)));
+ accessedResources.add(new SingleResourceAccess(Resource.SCHEMA, List.of(MODIFY_GLOBAL_COMPATIBILITY)));
return this;
}
diff --git a/e2e-tests/pom.xml b/e2e-tests/pom.xml
index 97e87686b..9516808fd 100644
--- a/e2e-tests/pom.xml
+++ b/e2e-tests/pom.xml
@@ -12,17 +12,17 @@
e2e-tests
- 3.0.0-M8
+ 3.2.5
${project.version}
- 1.17.6
+ 1.19.5
5.2.1
4.8.1
6.12.3
- 7.7.1
+ 7.9.0
2.25.0
3.0.5
1.9.9.1
- 3.24.2
+ 3.25.3
2.2
2.0.7
3.3.1
diff --git a/frontend/package.json b/frontend/package.json
index 263d7c1ac..cb7919927 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -21,7 +21,7 @@
"fetch-mock": "^9.11.0",
"jest": "^29.4.3",
"jest-watch-typeahead": "^2.2.2",
- "json-schema-faker": "^0.5.0-rcv.44",
+ "json-schema-faker": "^0.5.6",
"jsonpath-plus": "^7.2.0",
"lodash": "^4.17.21",
"lossless-json": "^2.0.8",
@@ -41,7 +41,7 @@
"sass": "^1.52.3",
"styled-components": "^5.3.1",
"use-debounce": "^9.0.3",
- "vite": "^4.0.0",
+ "vite": "^4.5.2",
"vite-tsconfig-paths": "^4.0.2",
"whatwg-fetch": "^3.6.2",
"yup": "^1.0.0",
@@ -108,5 +108,18 @@
"engines": {
"node": "v18.17.1",
"pnpm": "^8.6.12"
+ },
+ "pnpm": {
+ "overrides": {
+ "postcss@<8.4.31": ">=8.4.31",
+ "@adobe/css-tools@<4.3.1": ">=4.3.1",
+ "@babel/traverse@<7.23.2": ">=7.23.2",
+ "@adobe/css-tools@<4.3.2": ">=4.3.2",
+ "vite@>=4.0.0 <=4.5.1": ">=4.5.2",
+ "follow-redirects@<1.15.4": ">=1.15.4",
+ "json5@>=2.0.0 <2.2.2": ">=2.2.2",
+ "semver@>=7.0.0 <7.5.2": ">=7.5.2",
+ "axios@>=0.8.1 <0.28.0": ">=0.28.0"
+ }
}
}
diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml
index 59ee4122e..757bbc622 100644
--- a/frontend/pnpm-lock.yaml
+++ b/frontend/pnpm-lock.yaml
@@ -4,6 +4,17 @@ settings:
autoInstallPeers: true
excludeLinksFromLockfile: false
+overrides:
+ postcss@<8.4.31: '>=8.4.31'
+ '@adobe/css-tools@<4.3.1': '>=4.3.1'
+ '@babel/traverse@<7.23.2': '>=7.23.2'
+ '@adobe/css-tools@<4.3.2': '>=4.3.2'
+ vite@>=4.0.0 <=4.5.1: '>=4.5.2'
+ follow-redirects@<1.15.4: '>=1.15.4'
+ json5@>=2.0.0 <2.2.2: '>=2.2.2'
+ semver@>=7.0.0 <7.5.2: '>=7.5.2'
+ axios@>=0.8.1 <0.28.0: '>=0.28.0'
+
dependencies:
'@floating-ui/react':
specifier: ^0.19.2
@@ -57,8 +68,8 @@ dependencies:
specifier: ^2.2.2
version: 2.2.2(jest@29.6.4)
json-schema-faker:
- specifier: ^0.5.0-rcv.44
- version: 0.5.3
+ specifier: ^0.5.6
+ version: 0.5.6
jsonpath-plus:
specifier: ^7.2.0
version: 7.2.0
@@ -117,11 +128,11 @@ dependencies:
specifier: ^9.0.3
version: 9.0.4(react@18.2.0)
vite:
- specifier: ^4.0.0
- version: 4.0.5(@types/node@20.11.17)(sass@1.66.1)
+ specifier: ^4.5.2
+ version: 4.5.2(@types/node@20.11.17)(sass@1.66.1)
vite-tsconfig-paths:
specifier: ^4.0.2
- version: 4.2.1(typescript@4.7.4)(vite@4.0.5)
+ version: 4.3.1(typescript@4.7.4)(vite@4.5.2)
whatwg-fetch:
specifier: ^3.6.2
version: 3.6.2
@@ -144,7 +155,7 @@ devDependencies:
version: 1.3.38
'@swc/jest':
specifier: ^0.2.24
- version: 0.2.24(@swc/core@1.3.38)
+ version: 0.2.36(@swc/core@1.3.38)
'@testing-library/dom':
specifier: ^9.0.0
version: 9.3.1
@@ -189,7 +200,7 @@ devDependencies:
version: 5.62.0(eslint@8.48.0)(typescript@4.7.4)
'@vitejs/plugin-react-swc':
specifier: ^3.0.0
- version: 3.0.0(vite@4.0.5)
+ version: 3.0.0(vite@4.5.2)
dotenv:
specifier: ^16.0.1
version: 16.4.2
@@ -210,10 +221,10 @@ devDependencies:
version: 0.3.9
eslint-import-resolver-typescript:
specifier: ^3.2.7
- version: 3.2.7(eslint-plugin-import@2.29.1)(eslint@8.48.0)
+ version: 3.6.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.48.0)
eslint-plugin-import:
specifier: ^2.26.0
- version: 2.29.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.2.7)(eslint@8.48.0)
+ version: 2.29.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.48.0)
eslint-plugin-jest-dom:
specifier: ^4.0.3
version: 4.0.3(eslint@8.48.0)
@@ -264,8 +275,8 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
- /@adobe/css-tools@4.2.0:
- resolution: {integrity: sha512-E09FiIft46CmH5Qnjb0wsW54/YQd69LsxeKUOWawmws1XWvyFGURnAChH0mlr7YPFR1ofwvUQfcL0J3lMxXqPA==}
+ /@adobe/css-tools@4.3.3:
+ resolution: {integrity: sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==}
dev: true
/@ampproject/remapping@2.2.0:
@@ -282,6 +293,13 @@ packages:
dependencies:
'@babel/highlight': 7.18.6
+ /@babel/code-frame@7.23.5:
+ resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/highlight': 7.23.4
+ chalk: 2.4.2
+
/@babel/compat-data@7.18.8:
resolution: {integrity: sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==}
engines: {node: '>=6.9.0'}
@@ -299,12 +317,12 @@ packages:
'@babel/helpers': 7.18.9
'@babel/parser': 7.18.9
'@babel/template': 7.18.6
- '@babel/traverse': 7.18.9
+ '@babel/traverse': 7.23.9(supports-color@5.5.0)
'@babel/types': 7.18.9
convert-source-map: 1.7.0
debug: 4.3.4(supports-color@5.5.0)
gensync: 1.0.0-beta.2
- json5: 2.2.1
+ json5: 2.2.3
semver: 6.3.1
transitivePeerDependencies:
- supports-color
@@ -322,12 +340,12 @@ packages:
'@babel/helpers': 7.18.9
'@babel/parser': 7.18.9
'@babel/template': 7.18.6
- '@babel/traverse': 7.18.9
+ '@babel/traverse': 7.23.9(supports-color@5.5.0)
'@babel/types': 7.18.9
convert-source-map: 1.7.0
debug: 4.3.4(supports-color@5.5.0)
gensync: 1.0.0-beta.2
- json5: 2.2.1
+ json5: 2.2.3
semver: 6.3.1
transitivePeerDependencies:
- supports-color
@@ -340,6 +358,16 @@ packages:
'@babel/types': 7.18.9
'@jridgewell/gen-mapping': 0.3.2
jsesc: 2.5.2
+ dev: false
+
+ /@babel/generator@7.23.6:
+ resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.23.9
+ '@jridgewell/gen-mapping': 0.3.2
+ '@jridgewell/trace-mapping': 0.3.19
+ jsesc: 2.5.2
/@babel/helper-annotate-as-pure@7.18.6:
resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==}
@@ -376,19 +404,24 @@ packages:
/@babel/helper-environment-visitor@7.18.9:
resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==}
engines: {node: '>=6.9.0'}
+ dev: false
- /@babel/helper-function-name@7.18.9:
- resolution: {integrity: sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==}
+ /@babel/helper-environment-visitor@7.22.20:
+ resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==}
+ engines: {node: '>=6.9.0'}
+
+ /@babel/helper-function-name@7.23.0:
+ resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/template': 7.18.6
- '@babel/types': 7.18.9
+ '@babel/template': 7.23.9
+ '@babel/types': 7.23.9
- /@babel/helper-hoist-variables@7.18.6:
- resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==}
+ /@babel/helper-hoist-variables@7.22.5:
+ resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.18.9
+ '@babel/types': 7.23.9
/@babel/helper-module-imports@7.16.7:
resolution: {integrity: sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==}
@@ -412,7 +445,7 @@ packages:
'@babel/helper-split-export-declaration': 7.18.6
'@babel/helper-validator-identifier': 7.18.6
'@babel/template': 7.18.6
- '@babel/traverse': 7.18.9
+ '@babel/traverse': 7.23.9(supports-color@5.5.0)
'@babel/types': 7.18.9
transitivePeerDependencies:
- supports-color
@@ -435,11 +468,26 @@ packages:
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.18.9
+ dev: false
+
+ /@babel/helper-split-export-declaration@7.22.6:
+ resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.23.9
+
+ /@babel/helper-string-parser@7.23.4:
+ resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==}
+ engines: {node: '>=6.9.0'}
/@babel/helper-validator-identifier@7.18.6:
resolution: {integrity: sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==}
engines: {node: '>=6.9.0'}
+ /@babel/helper-validator-identifier@7.22.20:
+ resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
+ engines: {node: '>=6.9.0'}
+
/@babel/helper-validator-option@7.18.6:
resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==}
engines: {node: '>=6.9.0'}
@@ -450,7 +498,7 @@ packages:
engines: {node: '>=6.9.0'}
dependencies:
'@babel/template': 7.18.6
- '@babel/traverse': 7.18.9
+ '@babel/traverse': 7.23.9(supports-color@5.5.0)
'@babel/types': 7.18.9
transitivePeerDependencies:
- supports-color
@@ -464,12 +512,28 @@ packages:
chalk: 2.4.2
js-tokens: 4.0.0
+ /@babel/highlight@7.23.4:
+ resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-validator-identifier': 7.22.20
+ chalk: 2.4.2
+ js-tokens: 4.0.0
+
/@babel/parser@7.18.9:
resolution: {integrity: sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg==}
engines: {node: '>=6.0.0'}
hasBin: true
dependencies:
'@babel/types': 7.18.9
+ dev: false
+
+ /@babel/parser@7.23.9:
+ resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+ dependencies:
+ '@babel/types': 7.23.9
/@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.18.9):
resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
@@ -619,41 +683,32 @@ packages:
'@babel/code-frame': 7.18.6
'@babel/parser': 7.18.9
'@babel/types': 7.18.9
+ dev: false
- /@babel/traverse@7.18.2(supports-color@5.5.0):
- resolution: {integrity: sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA==}
+ /@babel/template@7.23.9:
+ resolution: {integrity: sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/code-frame': 7.18.6
- '@babel/generator': 7.18.9
- '@babel/helper-environment-visitor': 7.18.9
- '@babel/helper-function-name': 7.18.9
- '@babel/helper-hoist-variables': 7.18.6
- '@babel/helper-split-export-declaration': 7.18.6
- '@babel/parser': 7.18.9
- '@babel/types': 7.18.9
- debug: 4.3.4(supports-color@5.5.0)
- globals: 11.12.0
- transitivePeerDependencies:
- - supports-color
+ '@babel/code-frame': 7.23.5
+ '@babel/parser': 7.23.9
+ '@babel/types': 7.23.9
- /@babel/traverse@7.18.9:
- resolution: {integrity: sha512-LcPAnujXGwBgv3/WHv01pHtb2tihcyW1XuL9wd7jqh1Z8AQkTd+QVjMrMijrln0T7ED3UXLIy36P9Ao7W75rYg==}
+ /@babel/traverse@7.23.9(supports-color@5.5.0):
+ resolution: {integrity: sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/code-frame': 7.18.6
- '@babel/generator': 7.18.9
- '@babel/helper-environment-visitor': 7.18.9
- '@babel/helper-function-name': 7.18.9
- '@babel/helper-hoist-variables': 7.18.6
- '@babel/helper-split-export-declaration': 7.18.6
- '@babel/parser': 7.18.9
- '@babel/types': 7.18.9
+ '@babel/code-frame': 7.23.5
+ '@babel/generator': 7.23.6
+ '@babel/helper-environment-visitor': 7.22.20
+ '@babel/helper-function-name': 7.23.0
+ '@babel/helper-hoist-variables': 7.22.5
+ '@babel/helper-split-export-declaration': 7.22.6
+ '@babel/parser': 7.23.9
+ '@babel/types': 7.23.9
debug: 4.3.4(supports-color@5.5.0)
globals: 11.12.0
transitivePeerDependencies:
- supports-color
- dev: false
/@babel/types@7.18.9:
resolution: {integrity: sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg==}
@@ -662,6 +717,14 @@ packages:
'@babel/helper-validator-identifier': 7.18.6
to-fast-properties: 2.0.0
+ /@babel/types@7.23.9:
+ resolution: {integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-string-parser': 7.23.4
+ '@babel/helper-validator-identifier': 7.22.20
+ to-fast-properties: 2.0.0
+
/@bcoe/v8-coverage@0.2.3:
resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
dev: false
@@ -686,176 +749,176 @@ packages:
/@emotion/unitless@0.7.5:
resolution: {integrity: sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==}
- /@esbuild/android-arm64@0.16.4:
- resolution: {integrity: sha512-VPuTzXFm/m2fcGfN6CiwZTlLzxrKsWbPkG7ArRFpuxyaHUm/XFHQPD4xNwZT6uUmpIHhnSjcaCmcla8COzmZ5Q==}
+ /@esbuild/android-arm64@0.18.20:
+ resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==}
engines: {node: '>=12'}
cpu: [arm64]
os: [android]
requiresBuild: true
optional: true
- /@esbuild/android-arm@0.16.4:
- resolution: {integrity: sha512-rZzb7r22m20S1S7ufIc6DC6W659yxoOrl7sKP1nCYhuvUlnCFHVSbATG4keGUtV8rDz11sRRDbWkvQZpzPaHiw==}
+ /@esbuild/android-arm@0.18.20:
+ resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==}
engines: {node: '>=12'}
cpu: [arm]
os: [android]
requiresBuild: true
optional: true
- /@esbuild/android-x64@0.16.4:
- resolution: {integrity: sha512-MW+B2O++BkcOfMWmuHXB15/l1i7wXhJFqbJhp82IBOais8RBEQv2vQz/jHrDEHaY2X0QY7Wfw86SBL2PbVOr0g==}
+ /@esbuild/android-x64@0.18.20:
+ resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==}
engines: {node: '>=12'}
cpu: [x64]
os: [android]
requiresBuild: true
optional: true
- /@esbuild/darwin-arm64@0.16.4:
- resolution: {integrity: sha512-a28X1O//aOfxwJVZVs7ZfM8Tyih2Za4nKJrBwW5Wm4yKsnwBy9aiS/xwpxiiTRttw3EaTg4Srerhcm6z0bu9Wg==}
+ /@esbuild/darwin-arm64@0.18.20:
+ resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==}
engines: {node: '>=12'}
cpu: [arm64]
os: [darwin]
requiresBuild: true
optional: true
- /@esbuild/darwin-x64@0.16.4:
- resolution: {integrity: sha512-e3doCr6Ecfwd7VzlaQqEPrnbvvPjE9uoTpxG5pyLzr2rI2NMjDHmvY1E5EO81O/e9TUOLLkXA5m6T8lfjK9yAA==}
+ /@esbuild/darwin-x64@0.18.20:
+ resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==}
engines: {node: '>=12'}
cpu: [x64]
os: [darwin]
requiresBuild: true
optional: true
- /@esbuild/freebsd-arm64@0.16.4:
- resolution: {integrity: sha512-Oup3G/QxBgvvqnXWrBed7xxkFNwAwJVHZcklWyQt7YCAL5bfUkaa6FVWnR78rNQiM8MqqLiT6ZTZSdUFuVIg1w==}
+ /@esbuild/freebsd-arm64@0.18.20:
+ resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==}
engines: {node: '>=12'}
cpu: [arm64]
os: [freebsd]
requiresBuild: true
optional: true
- /@esbuild/freebsd-x64@0.16.4:
- resolution: {integrity: sha512-vAP+eYOxlN/Bpo/TZmzEQapNS8W1njECrqkTpNgvXskkkJC2AwOXwZWai/Kc2vEFZUXQttx6UJbj9grqjD/+9Q==}
+ /@esbuild/freebsd-x64@0.18.20:
+ resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==}
engines: {node: '>=12'}
cpu: [x64]
os: [freebsd]
requiresBuild: true
optional: true
- /@esbuild/linux-arm64@0.16.4:
- resolution: {integrity: sha512-2zXoBhv4r5pZiyjBKrOdFP4CXOChxXiYD50LRUU+65DkdS5niPFHbboKZd/c81l0ezpw7AQnHeoCy5hFrzzs4g==}
+ /@esbuild/linux-arm64@0.18.20:
+ resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==}
engines: {node: '>=12'}
cpu: [arm64]
os: [linux]
requiresBuild: true
optional: true
- /@esbuild/linux-arm@0.16.4:
- resolution: {integrity: sha512-A47ZmtpIPyERxkSvIv+zLd6kNIOtJH03XA0Hy7jaceRDdQaQVGSDt4mZqpWqJYgDk9rg96aglbF6kCRvPGDSUA==}
+ /@esbuild/linux-arm@0.18.20:
+ resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==}
engines: {node: '>=12'}
cpu: [arm]
os: [linux]
requiresBuild: true
optional: true
- /@esbuild/linux-ia32@0.16.4:
- resolution: {integrity: sha512-uxdSrpe9wFhz4yBwt2kl2TxS/NWEINYBUFIxQtaEVtglm1eECvsj1vEKI0KX2k2wCe17zDdQ3v+jVxfwVfvvjw==}
+ /@esbuild/linux-ia32@0.18.20:
+ resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==}
engines: {node: '>=12'}
cpu: [ia32]
os: [linux]
requiresBuild: true
optional: true
- /@esbuild/linux-loong64@0.16.4:
- resolution: {integrity: sha512-peDrrUuxbZ9Jw+DwLCh/9xmZAk0p0K1iY5d2IcwmnN+B87xw7kujOkig6ZRcZqgrXgeRGurRHn0ENMAjjD5DEg==}
+ /@esbuild/linux-loong64@0.18.20:
+ resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==}
engines: {node: '>=12'}
cpu: [loong64]
os: [linux]
requiresBuild: true
optional: true
- /@esbuild/linux-mips64el@0.16.4:
- resolution: {integrity: sha512-sD9EEUoGtVhFjjsauWjflZklTNr57KdQ6xfloO4yH1u7vNQlOfAlhEzbyBKfgbJlW7rwXYBdl5/NcZ+Mg2XhQA==}
+ /@esbuild/linux-mips64el@0.18.20:
+ resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==}
engines: {node: '>=12'}
cpu: [mips64el]
os: [linux]
requiresBuild: true
optional: true
- /@esbuild/linux-ppc64@0.16.4:
- resolution: {integrity: sha512-X1HSqHUX9D+d0l6/nIh4ZZJ94eQky8d8z6yxAptpZE3FxCWYWvTDd9X9ST84MGZEJx04VYUD/AGgciddwO0b8g==}
+ /@esbuild/linux-ppc64@0.18.20:
+ resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==}
engines: {node: '>=12'}
cpu: [ppc64]
os: [linux]
requiresBuild: true
optional: true
- /@esbuild/linux-riscv64@0.16.4:
- resolution: {integrity: sha512-97ANpzyNp0GTXCt6SRdIx1ngwncpkV/z453ZuxbnBROCJ5p/55UjhbaG23UdHj88fGWLKPFtMoU4CBacz4j9FA==}
+ /@esbuild/linux-riscv64@0.18.20:
+ resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==}
engines: {node: '>=12'}
cpu: [riscv64]
os: [linux]
requiresBuild: true
optional: true
- /@esbuild/linux-s390x@0.16.4:
- resolution: {integrity: sha512-pUvPQLPmbEeJRPjP0DYTC1vjHyhrnCklQmCGYbipkep+oyfTn7GTBJXoPodR7ZS5upmEyc8lzAkn2o29wD786A==}
+ /@esbuild/linux-s390x@0.18.20:
+ resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==}
engines: {node: '>=12'}
cpu: [s390x]
os: [linux]
requiresBuild: true
optional: true
- /@esbuild/linux-x64@0.16.4:
- resolution: {integrity: sha512-N55Q0mJs3Sl8+utPRPBrL6NLYZKBCLLx0bme/+RbjvMforTGGzFvsRl4xLTZMUBFC1poDzBEPTEu5nxizQ9Nlw==}
+ /@esbuild/linux-x64@0.18.20:
+ resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==}
engines: {node: '>=12'}
cpu: [x64]
os: [linux]
requiresBuild: true
optional: true
- /@esbuild/netbsd-x64@0.16.4:
- resolution: {integrity: sha512-LHSJLit8jCObEQNYkgsDYBh2JrJT53oJO2HVdkSYLa6+zuLJh0lAr06brXIkljrlI+N7NNW1IAXGn/6IZPi3YQ==}
+ /@esbuild/netbsd-x64@0.18.20:
+ resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==}
engines: {node: '>=12'}
cpu: [x64]
os: [netbsd]
requiresBuild: true
optional: true
- /@esbuild/openbsd-x64@0.16.4:
- resolution: {integrity: sha512-nLgdc6tWEhcCFg/WVFaUxHcPK3AP/bh+KEwKtl69Ay5IBqUwKDaq/6Xk0E+fh/FGjnLwqFSsarsbPHeKM8t8Sw==}
+ /@esbuild/openbsd-x64@0.18.20:
+ resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==}
engines: {node: '>=12'}
cpu: [x64]
os: [openbsd]
requiresBuild: true
optional: true
- /@esbuild/sunos-x64@0.16.4:
- resolution: {integrity: sha512-08SluG24GjPO3tXKk95/85n9kpyZtXCVwURR2i4myhrOfi3jspClV0xQQ0W0PYWHioJj+LejFMt41q+PG3mlAQ==}
+ /@esbuild/sunos-x64@0.18.20:
+ resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==}
engines: {node: '>=12'}
cpu: [x64]
os: [sunos]
requiresBuild: true
optional: true
- /@esbuild/win32-arm64@0.16.4:
- resolution: {integrity: sha512-yYiRDQcqLYQSvNQcBKN7XogbrSvBE45FEQdH8fuXPl7cngzkCvpsG2H9Uey39IjQ6gqqc+Q4VXYHsQcKW0OMjQ==}
+ /@esbuild/win32-arm64@0.18.20:
+ resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==}
engines: {node: '>=12'}
cpu: [arm64]
os: [win32]
requiresBuild: true
optional: true
- /@esbuild/win32-ia32@0.16.4:
- resolution: {integrity: sha512-5rabnGIqexekYkh9zXG5waotq8mrdlRoBqAktjx2W3kb0zsI83mdCwrcAeKYirnUaTGztR5TxXcXmQrEzny83w==}
+ /@esbuild/win32-ia32@0.18.20:
+ resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==}
engines: {node: '>=12'}
cpu: [ia32]
os: [win32]
requiresBuild: true
optional: true
- /@esbuild/win32-x64@0.16.4:
- resolution: {integrity: sha512-sN/I8FMPtmtT2Yw+Dly8Ur5vQ5a/RmC8hW7jO9PtPSQUPkowxWpcUZnqOggU7VwyT3Xkj6vcXWd3V/qTXwultQ==}
+ /@esbuild/win32-x64@0.18.20:
+ resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==}
engines: {node: '>=12'}
cpu: [x64]
os: [win32]
@@ -1046,11 +1109,11 @@ packages:
- ts-node
dev: false
- /@jest/create-cache-key-function@27.5.1:
- resolution: {integrity: sha512-dmH1yW+makpTSURTy8VzdUwFnfQh1G8R+DxO2Ho2FFmBbKFEVm+3jWdvFhE2VqB/LATCTokkP0dotjyQyw5/AQ==}
- engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+ /@jest/create-cache-key-function@29.7.0:
+ resolution: {integrity: sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@jest/types': 27.5.1
+ '@jest/types': 29.6.3
dev: true
/@jest/environment@29.6.4:
@@ -1196,17 +1259,6 @@ packages:
- supports-color
dev: false
- /@jest/types@27.5.1:
- resolution: {integrity: sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==}
- engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
- dependencies:
- '@types/istanbul-lib-coverage': 2.0.3
- '@types/istanbul-reports': 3.0.1
- '@types/node': 16.11.7
- '@types/yargs': 16.0.4
- chalk: 4.1.2
- dev: true
-
/@jest/types@29.6.3:
resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -1274,7 +1326,7 @@ packages:
rxjs: ^6.0.0 || ^7.0.0
dependencies:
'@nestjs/common': 9.3.11(reflect-metadata@0.1.13)(rxjs@7.8.0)
- axios: 0.27.2
+ axios: 1.6.7
reflect-metadata: 0.1.13
rxjs: 7.8.0
transitivePeerDependencies:
@@ -1401,18 +1453,6 @@ packages:
- encoding
dev: true
- /@pkgr/utils@2.3.0:
- resolution: {integrity: sha512-7dIJ9CRVzBnqyEl7diUHPUFJf/oty2SeoVzcMocc5PeOUDK9KGzvgIBjGRRzzlRDaOjh3ADwH0WeibQvi3ls2Q==}
- engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
- dependencies:
- cross-spawn: 7.0.3
- is-glob: 4.0.3
- open: 8.4.0
- picocolors: 1.0.0
- tiny-glob: 0.2.9
- tslib: 2.5.0
- dev: true
-
/@popperjs/core@2.9.2:
resolution: {integrity: sha512-VZMYa7+fXHdwIq1TDhSXoVmSPEGM/aa+6Aiq3nVVJ9bXr24zScr+NlKFKC3iPljA7ho/GAZr+d2jOf5GIRC30Q==}
@@ -1549,14 +1589,19 @@ packages:
'@swc/core-win32-ia32-msvc': 1.3.38
'@swc/core-win32-x64-msvc': 1.3.38
- /@swc/jest@0.2.24(@swc/core@1.3.38):
- resolution: {integrity: sha512-fwgxQbM1wXzyKzl1+IW0aGrRvAA8k0Y3NxFhKigbPjOJ4mCKnWEcNX9HQS3gshflcxq8YKhadabGUVfdwjCr6Q==}
+ /@swc/counter@0.1.3:
+ resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==}
+ dev: true
+
+ /@swc/jest@0.2.36(@swc/core@1.3.38):
+ resolution: {integrity: sha512-8X80dp81ugxs4a11z1ka43FPhP+/e+mJNXJSxiNYk8gIX/jPBtY4gQTrKu/KIoco8bzKuPI5lUxjfLiGsfvnlw==}
engines: {npm: '>= 7.0.0'}
peerDependencies:
'@swc/core': '*'
dependencies:
- '@jest/create-cache-key-function': 27.5.1
+ '@jest/create-cache-key-function': 29.7.0
'@swc/core': 1.3.38
+ '@swc/counter': 0.1.3
jsonc-parser: 3.2.0
dev: true
@@ -1643,7 +1688,7 @@ packages:
resolution: {integrity: sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA==}
engines: {node: '>=8', npm: '>=6', yarn: '>=1'}
dependencies:
- '@adobe/css-tools': 4.2.0
+ '@adobe/css-tools': 4.3.3
'@babel/runtime': 7.17.9
'@types/testing-library__jest-dom': 5.14.5
aria-query: 5.0.0
@@ -1685,7 +1730,7 @@ packages:
/@ts-morph/common@0.12.3:
resolution: {integrity: sha512-4tUmeLyXJnJWvTFOKtcNJ1yh0a3SsTLi2MUoyj8iUNznFRN1ZquaNe7Oukqrnki2FzZkm0J9adCNLDZxUzvj+w==}
dependencies:
- fast-glob: 3.2.11
+ fast-glob: 3.3.2
minimatch: 3.1.2
mkdirp: 1.0.4
path-browserify: 1.0.1
@@ -1885,12 +1930,6 @@ packages:
/@types/yargs-parser@20.2.0:
resolution: {integrity: sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==}
- /@types/yargs@16.0.4:
- resolution: {integrity: sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==}
- dependencies:
- '@types/yargs-parser': 20.2.0
- dev: true
-
/@types/yargs@17.0.10:
resolution: {integrity: sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA==}
dependencies:
@@ -1916,7 +1955,7 @@ packages:
functional-red-black-tree: 1.0.1
ignore: 5.2.0
regexpp: 3.2.0
- semver: 7.3.7
+ semver: 7.5.4
tsutils: 3.21.0(typescript@4.7.4)
typescript: 4.7.4
transitivePeerDependencies:
@@ -2064,13 +2103,13 @@ packages:
eslint-visitor-keys: 3.4.3
dev: true
- /@vitejs/plugin-react-swc@3.0.0(vite@4.0.5):
+ /@vitejs/plugin-react-swc@3.0.0(vite@4.5.2):
resolution: {integrity: sha512-vYlodz/mjYRbxMGbHzDgR8aPR+z8n7K/enWkyBGH096xrL2DIPCuTvQVRYPTXGyy6wO7OFiMxZ3r4nKQD1sH0A==}
peerDependencies:
vite: ^4.0.0
dependencies:
'@swc/core': 1.3.38
- vite: 4.0.5(@types/node@20.11.17)(sass@1.66.1)
+ vite: 4.5.2(@types/node@20.11.17)(sass@1.66.1)
dev: true
/abab@2.0.6:
@@ -2377,11 +2416,12 @@ packages:
engines: {node: '>=4'}
dev: true
- /axios@0.27.2:
- resolution: {integrity: sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==}
+ /axios@1.6.7:
+ resolution: {integrity: sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==}
dependencies:
- follow-redirects: 1.15.2
+ follow-redirects: 1.15.5
form-data: 4.0.0
+ proxy-from-env: 1.1.0
transitivePeerDependencies:
- debug
dev: true
@@ -2926,11 +2966,6 @@ packages:
clone: 1.0.4
dev: true
- /define-lazy-prop@2.0.0:
- resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==}
- engines: {node: '>=8'}
- dev: true
-
/define-properties@1.2.0:
resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==}
engines: {node: '>= 0.4'}
@@ -3036,8 +3071,8 @@ packages:
resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
dev: true
- /enhanced-resolve@5.10.0:
- resolution: {integrity: sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==}
+ /enhanced-resolve@5.15.0:
+ resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==}
engines: {node: '>=10.13.0'}
dependencies:
graceful-fs: 4.2.10
@@ -3136,34 +3171,34 @@ packages:
is-symbol: 1.0.4
dev: true
- /esbuild@0.16.4:
- resolution: {integrity: sha512-qQrPMQpPTWf8jHugLWHoGqZjApyx3OEm76dlTXobHwh/EBbavbRdjXdYi/GWr43GyN0sfpap14GPkb05NH3ROA==}
+ /esbuild@0.18.20:
+ resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==}
engines: {node: '>=12'}
hasBin: true
requiresBuild: true
optionalDependencies:
- '@esbuild/android-arm': 0.16.4
- '@esbuild/android-arm64': 0.16.4
- '@esbuild/android-x64': 0.16.4
- '@esbuild/darwin-arm64': 0.16.4
- '@esbuild/darwin-x64': 0.16.4
- '@esbuild/freebsd-arm64': 0.16.4
- '@esbuild/freebsd-x64': 0.16.4
- '@esbuild/linux-arm': 0.16.4
- '@esbuild/linux-arm64': 0.16.4
- '@esbuild/linux-ia32': 0.16.4
- '@esbuild/linux-loong64': 0.16.4
- '@esbuild/linux-mips64el': 0.16.4
- '@esbuild/linux-ppc64': 0.16.4
- '@esbuild/linux-riscv64': 0.16.4
- '@esbuild/linux-s390x': 0.16.4
- '@esbuild/linux-x64': 0.16.4
- '@esbuild/netbsd-x64': 0.16.4
- '@esbuild/openbsd-x64': 0.16.4
- '@esbuild/sunos-x64': 0.16.4
- '@esbuild/win32-arm64': 0.16.4
- '@esbuild/win32-ia32': 0.16.4
- '@esbuild/win32-x64': 0.16.4
+ '@esbuild/android-arm': 0.18.20
+ '@esbuild/android-arm64': 0.18.20
+ '@esbuild/android-x64': 0.18.20
+ '@esbuild/darwin-arm64': 0.18.20
+ '@esbuild/darwin-x64': 0.18.20
+ '@esbuild/freebsd-arm64': 0.18.20
+ '@esbuild/freebsd-x64': 0.18.20
+ '@esbuild/linux-arm': 0.18.20
+ '@esbuild/linux-arm64': 0.18.20
+ '@esbuild/linux-ia32': 0.18.20
+ '@esbuild/linux-loong64': 0.18.20
+ '@esbuild/linux-mips64el': 0.18.20
+ '@esbuild/linux-ppc64': 0.18.20
+ '@esbuild/linux-riscv64': 0.18.20
+ '@esbuild/linux-s390x': 0.18.20
+ '@esbuild/linux-x64': 0.18.20
+ '@esbuild/netbsd-x64': 0.18.20
+ '@esbuild/openbsd-x64': 0.18.20
+ '@esbuild/sunos-x64': 0.18.20
+ '@esbuild/win32-arm64': 0.18.20
+ '@esbuild/win32-ia32': 0.18.20
+ '@esbuild/win32-x64': 0.18.20
/escalade@3.1.1:
resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
@@ -3204,7 +3239,7 @@ packages:
dependencies:
confusing-browser-globals: 1.0.11
eslint: 8.48.0
- eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.2.7)(eslint@8.48.0)
+ eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.48.0)
object.assign: 4.1.4
object.entries: 1.1.7
semver: 6.3.1
@@ -3222,7 +3257,7 @@ packages:
'@typescript-eslint/parser': 5.62.0(eslint@8.48.0)(typescript@4.7.4)
eslint: 8.48.0
eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.1)(eslint@8.48.0)
- eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.2.7)(eslint@8.48.0)
+ eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.48.0)
dev: true
/eslint-config-airbnb@19.0.4(eslint-plugin-import@2.29.1)(eslint-plugin-jsx-a11y@6.7.1)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.30.1)(eslint@8.48.0):
@@ -3237,7 +3272,7 @@ packages:
dependencies:
eslint: 8.48.0
eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.1)(eslint@8.48.0)
- eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.2.7)(eslint@8.48.0)
+ eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.48.0)
eslint-plugin-jsx-a11y: 6.7.1(eslint@8.48.0)
eslint-plugin-react: 7.30.1(eslint@8.48.0)
eslint-plugin-react-hooks: 4.6.0(eslint@8.48.0)
@@ -3264,27 +3299,30 @@ packages:
- supports-color
dev: true
- /eslint-import-resolver-typescript@3.2.7(eslint-plugin-import@2.29.1)(eslint@8.48.0):
- resolution: {integrity: sha512-WvcsRy3aPmwVsuS/XVliAJWpIdTlaFXXZPZk3TCbvvF8RtaAkjAhcLL5bl5VEoTmE+XnTHjIbWMzNZcOQpK/DA==}
- engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
+ /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.48.0):
+ resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==}
+ engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
eslint: '*'
eslint-plugin-import: '*'
dependencies:
debug: 4.3.4(supports-color@5.5.0)
- enhanced-resolve: 5.10.0
+ enhanced-resolve: 5.15.0
eslint: 8.48.0
- eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.2.7)(eslint@8.48.0)
- get-tsconfig: 4.2.0
- globby: 13.1.2
- is-core-module: 2.9.0
+ eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.48.0)
+ eslint-plugin-import: 2.29.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.48.0)
+ fast-glob: 3.3.2
+ get-tsconfig: 4.7.2
+ is-core-module: 2.13.1
is-glob: 4.0.3
- synckit: 0.8.1
transitivePeerDependencies:
+ - '@typescript-eslint/parser'
+ - eslint-import-resolver-node
+ - eslint-import-resolver-webpack
- supports-color
dev: true
- /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.2.7)(eslint@8.48.0):
+ /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.48.0):
resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==}
engines: {node: '>=4'}
peerDependencies:
@@ -3309,12 +3347,12 @@ packages:
debug: 3.2.7
eslint: 8.48.0
eslint-import-resolver-node: 0.3.9
- eslint-import-resolver-typescript: 3.2.7(eslint-plugin-import@2.29.1)(eslint@8.48.0)
+ eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.48.0)
transitivePeerDependencies:
- supports-color
dev: true
- /eslint-plugin-import@2.29.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.2.7)(eslint@8.48.0):
+ /eslint-plugin-import@2.29.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.48.0):
resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==}
engines: {node: '>=4'}
peerDependencies:
@@ -3333,7 +3371,7 @@ packages:
doctrine: 2.1.0
eslint: 8.48.0
eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.2.7)(eslint@8.48.0)
+ eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.48.0)
hasown: 2.0.0
is-core-module: 2.13.1
is-glob: 4.0.3
@@ -3606,8 +3644,8 @@ packages:
resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==}
dev: true
- /fast-glob@3.2.11:
- resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==}
+ /fast-glob@3.3.2:
+ resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
engines: {node: '>=8.6.0'}
dependencies:
'@nodelib/fs.stat': 2.0.5
@@ -3717,8 +3755,8 @@ packages:
resolution: {integrity: sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==}
dev: true
- /follow-redirects@1.15.2:
- resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==}
+ /follow-redirects@1.15.5:
+ resolution: {integrity: sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==}
engines: {node: '>=4.0'}
peerDependencies:
debug: '*'
@@ -3819,8 +3857,10 @@ packages:
get-intrinsic: 1.2.1
dev: true
- /get-tsconfig@4.2.0:
- resolution: {integrity: sha512-X8u8fREiYOE6S8hLbq99PeykTDoLVnxvF4DjWKJmz9xy2nNRdUcV8ZN9tniJFeKyTU3qnC9lL8n4Chd6LmVKHg==}
+ /get-tsconfig@4.7.2:
+ resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==}
+ dependencies:
+ resolve-pkg-maps: 1.0.0
dev: true
/glob-parent@5.1.2:
@@ -3889,35 +3929,21 @@ packages:
define-properties: 1.2.0
dev: true
- /globalyzer@0.1.0:
- resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==}
- dev: true
-
/globby@11.1.0:
resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
engines: {node: '>=10'}
dependencies:
array-union: 2.1.0
dir-glob: 3.0.1
- fast-glob: 3.2.11
+ fast-glob: 3.3.2
ignore: 5.2.0
merge2: 1.4.1
slash: 3.0.0
dev: true
- /globby@13.1.2:
- resolution: {integrity: sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
- dependencies:
- dir-glob: 3.0.1
- fast-glob: 3.2.11
- ignore: 5.2.0
- merge2: 1.4.1
- slash: 4.0.0
- dev: true
-
/globrex@0.1.2:
resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==}
+ dev: false
/goober@2.1.10(csstype@3.1.2):
resolution: {integrity: sha512-7PpuQMH10jaTWm33sQgBQvz45pHR8N4l3Cu3WMGEWmHShAcTuuP7I+5/DwKo39fwti5A80WAjvqgz6SSlgWmGA==}
@@ -4165,24 +4191,12 @@ packages:
dependencies:
hasown: 2.0.0
- /is-core-module@2.9.0:
- resolution: {integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==}
- dependencies:
- has: 1.0.3
- dev: true
-
/is-date-object@1.0.5:
resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
engines: {node: '>= 0.4'}
dependencies:
has-tostringtag: 1.0.0
- /is-docker@2.2.1:
- resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==}
- engines: {node: '>=8'}
- hasBin: true
- dev: true
-
/is-extglob@2.1.1:
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
engines: {node: '>=0.10.0'}
@@ -4294,13 +4308,6 @@ packages:
call-bind: 1.0.2
get-intrinsic: 1.2.1
- /is-wsl@2.2.0:
- resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
- engines: {node: '>=8'}
- dependencies:
- is-docker: 2.2.1
- dev: true
-
/isarray@2.0.5:
resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
@@ -4802,7 +4809,7 @@ packages:
peerDependencies:
styled-components: '>= 5'
dependencies:
- '@adobe/css-tools': 4.2.0
+ '@adobe/css-tools': 4.3.3
styled-components: 5.3.1(react-dom@18.1.0)(react-is@18.2.0)(react@18.2.0)
dev: true
@@ -4972,8 +4979,8 @@ packages:
/json-parse-even-better-errors@2.3.1:
resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
- /json-schema-faker@0.5.3:
- resolution: {integrity: sha512-BeIrR0+YSrTbAR9dOMnjbFl1MvHyXnq+Wpdw1FpWZDHWKLzK229hZ5huyPcmzFUfVq1ODwf40WdGVoE266UBUg==}
+ /json-schema-faker@0.5.6:
+ resolution: {integrity: sha512-u/cFC26/GDxh2vPiAC8B8xVvpXAW+QYtG2mijEbKrimCk8IHtiwQBjCE8TwvowdhALWq9IcdIWZ+/8ocXvdL3Q==}
hasBin: true
dependencies:
json-schema-ref-parser: 6.1.0
@@ -5008,8 +5015,8 @@ packages:
minimist: 1.2.6
dev: true
- /json5@2.2.1:
- resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==}
+ /json5@2.2.3:
+ resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
engines: {node: '>=6'}
hasBin: true
@@ -5251,8 +5258,8 @@ packages:
resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==}
dev: true
- /nanoid@3.3.4:
- resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==}
+ /nanoid@3.3.7:
+ resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
@@ -5418,15 +5425,6 @@ packages:
format-util: 1.0.5
dev: false
- /open@8.4.0:
- resolution: {integrity: sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==}
- engines: {node: '>=12'}
- dependencies:
- define-lazy-prop: 2.0.0
- is-docker: 2.2.1
- is-wsl: 2.2.0
- dev: true
-
/optionator@0.8.3:
resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==}
engines: {node: '>= 0.8.0'}
@@ -5592,11 +5590,11 @@ packages:
/postcss-value-parser@4.1.0:
resolution: {integrity: sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==}
- /postcss@8.4.20:
- resolution: {integrity: sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==}
+ /postcss@8.4.35:
+ resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==}
engines: {node: ^10 || ^12 || >=14}
dependencies:
- nanoid: 3.3.4
+ nanoid: 3.3.7
picocolors: 1.0.0
source-map-js: 1.0.2
@@ -5665,6 +5663,10 @@ packages:
resolution: {integrity: sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA==}
dev: false
+ /proxy-from-env@1.1.0:
+ resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
+ dev: true
+
/psl@1.8.0:
resolution: {integrity: sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==}
dev: true
@@ -5994,19 +5996,15 @@ packages:
engines: {node: '>=8'}
dev: false
+ /resolve-pkg-maps@1.0.0:
+ resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
+ dev: true
+
/resolve.exports@2.0.1:
resolution: {integrity: sha512-OEJWVeimw8mgQuj3HfkNl4KqRevH7lzeQNaWRPfx0PPse7Jk6ozcsG4FKVgtzDsC1KUF+YlTHh17NcgHOPykLw==}
engines: {node: '>=10'}
dev: false
- /resolve@1.22.1:
- resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==}
- hasBin: true
- dependencies:
- is-core-module: 2.13.1
- path-parse: 1.0.7
- supports-preserve-symlinks-flag: 1.0.0
-
/resolve@1.22.4:
resolution: {integrity: sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==}
hasBin: true
@@ -6050,8 +6048,8 @@ packages:
glob: 9.2.1
dev: true
- /rollup@3.7.3:
- resolution: {integrity: sha512-7e68MQbAWCX6mI4/0lG1WHd+NdNAlVamg0Zkd+8LZ/oXojligdGnCNyHlzXqXCZObyjs5FRc3AH0b17iJESGIQ==}
+ /rollup@3.29.4:
+ resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==}
engines: {node: '>=14.18.0', npm: '>=8.0.0'}
hasBin: true
optionalDependencies:
@@ -6136,14 +6134,6 @@ packages:
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
hasBin: true
- /semver@7.3.7:
- resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==}
- engines: {node: '>=10'}
- hasBin: true
- dependencies:
- lru-cache: 6.0.0
- dev: true
-
/semver@7.5.4:
resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
engines: {node: '>=10'}
@@ -6182,11 +6172,6 @@ packages:
resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
engines: {node: '>=8'}
- /slash@4.0.0:
- resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
- engines: {node: '>=12'}
- dev: true
-
/slash@5.0.0:
resolution: {integrity: sha512-n6KkmvKS0623igEVj3FF0OZs1gYYJ0o0Hj939yc1fyxl2xt+xYpLnzJB6xBSqOfV9ZFLEWodBBN/heZJahuIJQ==}
engines: {node: '>=14.16'}
@@ -6343,7 +6328,7 @@ packages:
react-is: '>= 16.8.0'
dependencies:
'@babel/helper-module-imports': 7.16.7
- '@babel/traverse': 7.18.2(supports-color@5.5.0)
+ '@babel/traverse': 7.23.9(supports-color@5.5.0)
'@emotion/is-prop-valid': 0.8.8
'@emotion/stylis': 0.8.5
'@emotion/unitless': 0.7.5
@@ -6382,14 +6367,6 @@ packages:
resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
dev: true
- /synckit@0.8.1:
- resolution: {integrity: sha512-rJEeygO5PNmcZICmrgnbOd2usi5zWE1ESc0Gn5tTmJlongoU8zCTwMFQtar2UgMSiR68vK9afPQ+uVs2lURSIA==}
- engines: {node: ^14.18.0 || >=16.0.0}
- dependencies:
- '@pkgr/utils': 2.3.0
- tslib: 2.5.0
- dev: true
-
/tabbable@6.1.1:
resolution: {integrity: sha512-4kl5w+nCB44EVRdO0g/UGoOp3vlwgycUVtkk/7DPyeLZUCuNFFKCFG6/t/DgHLrUPHjrZg6s5tNm+56Q2B0xyg==}
dev: false
@@ -6420,13 +6397,6 @@ packages:
resolution: {integrity: sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==}
dev: false
- /tiny-glob@0.2.9:
- resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==}
- dependencies:
- globalyzer: 0.1.0
- globrex: 0.1.2
- dev: true
-
/tmp@0.0.33:
resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==}
engines: {node: '>=0.6.0'}
@@ -6533,18 +6503,18 @@ packages:
dependencies:
commander: 6.2.1
cosmiconfig: 7.0.1
- json5: 2.2.1
+ json5: 2.2.3
lodash: 4.17.21
true-myth: 4.1.1
ts-morph: 13.0.3
dev: true
- /tsconfck@2.1.2(typescript@4.7.4):
- resolution: {integrity: sha512-ghqN1b0puy3MhhviwO2kGF8SeMDNhEbnKxjK7h6+fvY9JAxqvXi8y5NAHSQv687OVboS2uZIByzGd45/YxrRHg==}
- engines: {node: ^14.13.1 || ^16 || >=18}
+ /tsconfck@3.0.2(typescript@4.7.4):
+ resolution: {integrity: sha512-6lWtFjwuhS3XI4HsX4Zg0izOI3FU/AI9EGVlPEUMDIhvLPMD4wkiof0WCoDgW7qY+Dy198g4d9miAqUHWHFH6Q==}
+ engines: {node: ^18 || >=20}
hasBin: true
peerDependencies:
- typescript: ^4.3.5 || ^5.0.0
+ typescript: ^5.0.0
peerDependenciesMeta:
typescript:
optional: true
@@ -6742,8 +6712,8 @@ packages:
ejs: 3.1.8
dev: true
- /vite-tsconfig-paths@4.2.1(typescript@4.7.4)(vite@4.0.5):
- resolution: {integrity: sha512-GNUI6ZgPqT3oervkvzU+qtys83+75N/OuDaQl7HmOqFTb0pjZsuARrRipsyJhJ3enqV8beI1xhGbToR4o78nSQ==}
+ /vite-tsconfig-paths@4.3.1(typescript@4.7.4)(vite@4.5.2):
+ resolution: {integrity: sha512-cfgJwcGOsIxXOLU/nELPny2/LUD/lcf1IbfyeKTv2bsupVbTH/xpFtdQlBmIP1GEK2CjjLxYhFfB+QODFAx5aw==}
peerDependencies:
vite: '*'
peerDependenciesMeta:
@@ -6752,20 +6722,21 @@ packages:
dependencies:
debug: 4.3.4(supports-color@5.5.0)
globrex: 0.1.2
- tsconfck: 2.1.2(typescript@4.7.4)
- vite: 4.0.5(@types/node@20.11.17)(sass@1.66.1)
+ tsconfck: 3.0.2(typescript@4.7.4)
+ vite: 4.5.2(@types/node@20.11.17)(sass@1.66.1)
transitivePeerDependencies:
- supports-color
- typescript
dev: false
- /vite@4.0.5(@types/node@20.11.17)(sass@1.66.1):
- resolution: {integrity: sha512-7m87RC+caiAxG+8j3jObveRLqaWA/neAdCat6JAZwMkSWqFHOvg8MYe5fAQxVBRAuKAQ1S6XDh3CBQuLNbY33w==}
+ /vite@4.5.2(@types/node@20.11.17)(sass@1.66.1):
+ resolution: {integrity: sha512-tBCZBNSBbHQkaGyhGCDUGqeo2ph8Fstyp6FMSvTtsXeZSPpSMGlviAOav2hxVTqFcx8Hj/twtWKsMJXNY0xI8w==}
engines: {node: ^14.18.0 || >=16.0.0}
hasBin: true
peerDependencies:
'@types/node': '>= 14'
less: '*'
+ lightningcss: ^1.21.0
sass: '*'
stylus: '*'
sugarss: '*'
@@ -6775,6 +6746,8 @@ packages:
optional: true
less:
optional: true
+ lightningcss:
+ optional: true
sass:
optional: true
stylus:
@@ -6785,10 +6758,9 @@ packages:
optional: true
dependencies:
'@types/node': 20.11.17
- esbuild: 0.16.4
- postcss: 8.4.20
- resolve: 1.22.1
- rollup: 3.7.3
+ esbuild: 0.18.20
+ postcss: 8.4.35
+ rollup: 3.29.4
sass: 1.66.1
optionalDependencies:
fsevents: 2.3.2
diff --git a/frontend/src/components/Brokers/BrokersList/BrokersList.tsx b/frontend/src/components/Brokers/BrokersList/BrokersList.tsx
index f869269fa..bdc1f9c00 100644
--- a/frontend/src/components/Brokers/BrokersList/BrokersList.tsx
+++ b/frontend/src/components/Brokers/BrokersList/BrokersList.tsx
@@ -1,27 +1,15 @@
-import React from 'react';
+import React, { useMemo } from 'react';
import { ClusterName } from 'redux/interfaces';
import { useNavigate } from 'react-router-dom';
import PageHeading from 'components/common/PageHeading/PageHeading';
-import * as Metrics from 'components/common/Metrics';
import useAppParams from 'lib/hooks/useAppParams';
+import Table from 'components/common/NewTable';
+import { clusterBrokerPath } from 'lib/paths';
import { useBrokers } from 'lib/hooks/api/brokers';
import { useClusterStats } from 'lib/hooks/api/clusters';
-import Table, { LinkCell, SizeCell } from 'components/common/NewTable';
-import CheckMarkRoundIcon from 'components/common/Icons/CheckMarkRoundIcon';
-import { ColumnDef } from '@tanstack/react-table';
-import { clusterBrokerPath } from 'lib/paths';
-import { keyBy } from 'lib/functions/keyBy';
-import Tooltip from 'components/common/Tooltip/Tooltip';
-import ColoredCell from 'components/common/NewTable/ColoredCell';
-
-import SkewHeader from './SkewHeader/SkewHeader';
-import * as S from './BrokersList.styled';
-const NA = 'N/A';
-const NA_DISK_USAGE = {
- segmentCount: NA,
- segmentSize: NA,
-};
+import { BrokersMetrics } from './BrokersMetrics/BrokersMetrics';
+import { getBrokersTableColumns, getBrokersTableRows } from './lib';
const BrokersList: React.FC = () => {
const navigate = useNavigate();
@@ -41,202 +29,35 @@ const BrokersList: React.FC = () => {
version,
} = clusterStats;
- const rows = React.useMemo(() => {
- if (!brokers || brokers.length === 0) {
- return [];
- }
-
- const diskUsageByBroker = keyBy(diskUsage, 'brokerId');
-
- return brokers.map((broker) => {
- const diskUse = diskUsageByBroker[broker.id] || NA_DISK_USAGE;
-
- return {
- brokerId: broker.id,
- size: diskUse.segmentSize,
- count: diskUse.segmentCount,
- port: broker.port,
- host: broker.host,
- partitionsLeader: broker.partitionsLeader,
- partitionsSkew: broker.partitionsSkew,
- leadersSkew: broker.leadersSkew,
- inSyncPartitions: broker.inSyncPartitions,
- };
- });
- }, [diskUsage, brokers]);
-
- const columns = React.useMemo[]>(
- () => [
- {
- header: 'Broker ID',
- accessorKey: 'brokerId',
- // eslint-disable-next-line react/no-unstable-nested-components
- cell: ({ getValue }) => (
-
- ()}`}
- to={encodeURIComponent(`${getValue()}`)}
- />
- {getValue() === activeControllers && (
- }
- content="Active Controller"
- placement="right"
- />
- )}
-
- ),
- },
- {
- header: 'Disk usage',
- accessorKey: 'size',
- // eslint-disable-next-line react/no-unstable-nested-components
- cell: ({ getValue, table, cell, column, renderValue, row }) =>
- getValue() === NA ? (
- NA
- ) : (
-
- ),
- },
- {
- // eslint-disable-next-line react/no-unstable-nested-components
- header: () => ,
- accessorKey: 'partitionsSkew',
- // eslint-disable-next-line react/no-unstable-nested-components
- cell: ({ getValue }) => {
- const value = getValue();
- return (
- = 10 && value < 20}
- attention={value >= 20}
- />
- );
- },
- },
- { header: 'Leaders', accessorKey: 'partitionsLeader' },
- {
- header: 'Leader skew',
- accessorKey: 'leadersSkew',
- // eslint-disable-next-line react/no-unstable-nested-components
- cell: ({ getValue }) => {
- const value = getValue();
- return (
- = 10 && value < 20}
- attention={value >= 20}
- />
- );
- },
- },
- {
- header: 'Online partitions',
- accessorKey: 'inSyncPartitions',
- // eslint-disable-next-line react/no-unstable-nested-components
- cell: ({ getValue, row }) => {
- const value = getValue();
- return (
-
- );
- },
- },
- { header: 'Port', accessorKey: 'port' },
- {
- header: 'Host',
- accessorKey: 'host',
- },
- ],
- []
+ const rows = useMemo(
+ () =>
+ getBrokersTableRows({
+ brokers,
+ diskUsage,
+ activeControllers,
+ onlinePartitionCount,
+ offlinePartitionCount,
+ }),
+ [diskUsage, activeControllers, brokers]
);
- const replicas = (inSyncReplicasCount ?? 0) + (outOfSyncReplicasCount ?? 0);
- const areAllInSync = inSyncReplicasCount && replicas === inSyncReplicasCount;
- const partitionIsOffline = offlinePartitionCount && offlinePartitionCount > 0;
-
- const isActiveControllerUnKnown = typeof activeControllers === 'undefined';
+ const columns = useMemo(() => getBrokersTableColumns(), []);
return (
<>
-
-
-
- {brokerCount}
-
-
- {isActiveControllerUnKnown ? (
- No Active Controller
- ) : (
- activeControllers
- )}
-
- {version}
-
-
-
- {partitionIsOffline ? (
- {onlinePartitionCount}
- ) : (
- onlinePartitionCount
- )}
-
- {` of ${
- (onlinePartitionCount || 0) + (offlinePartitionCount || 0)
- }
- `}
-
-
-
- {!underReplicatedPartitionCount ? (
-
- {underReplicatedPartitionCount}
-
- ) : (
- {underReplicatedPartitionCount}
- )}
-
-
- {areAllInSync ? (
- replicas
- ) : (
- {inSyncReplicasCount}
- )}
- of {replicas}
-
-
- {outOfSyncReplicasCount}
-
-
-
+
+
+
theme.circularAlert.color.error};
+`;
diff --git a/frontend/src/components/Brokers/BrokersList/BrokersMetrics/BrokersMetrics.tsx b/frontend/src/components/Brokers/BrokersList/BrokersMetrics/BrokersMetrics.tsx
new file mode 100644
index 000000000..5c1600806
--- /dev/null
+++ b/frontend/src/components/Brokers/BrokersList/BrokersMetrics/BrokersMetrics.tsx
@@ -0,0 +1,105 @@
+import React from 'react';
+import * as Metrics from 'components/common/Metrics';
+
+import * as S from './BrokersMetrics.styled';
+
+type BrokersMetricsProps = {
+ brokerCount: number | undefined;
+ inSyncReplicasCount: number | undefined;
+ outOfSyncReplicasCount: number | undefined;
+ offlinePartitionCount: number | undefined;
+ activeControllers: number | undefined;
+ onlinePartitionCount: number | undefined;
+ underReplicatedPartitionCount: number | undefined;
+ version: string | undefined;
+};
+
+export const BrokersMetrics = ({
+ brokerCount,
+ version,
+ activeControllers,
+ outOfSyncReplicasCount,
+ inSyncReplicasCount,
+ offlinePartitionCount,
+ underReplicatedPartitionCount,
+ onlinePartitionCount,
+}: BrokersMetricsProps) => {
+ const replicas = (inSyncReplicasCount ?? 0) + (outOfSyncReplicasCount ?? 0);
+ const areAllInSync = inSyncReplicasCount && replicas === inSyncReplicasCount;
+ const partitionIsOffline = offlinePartitionCount && offlinePartitionCount > 0;
+
+ const isActiveControllerUnKnown = typeof activeControllers === 'undefined';
+
+ return (
+
+
+
+ {brokerCount}
+
+
+
+ {isActiveControllerUnKnown ? (
+ No Active Controller
+ ) : (
+ activeControllers
+ )}
+
+
+ {version}
+
+
+
+
+ {partitionIsOffline ? (
+ {onlinePartitionCount}
+ ) : (
+ onlinePartitionCount
+ )}
+
+ {` of ${(onlinePartitionCount || 0) + (offlinePartitionCount || 0)}
+ `}
+
+
+
+
+ {!underReplicatedPartitionCount ? (
+
+ {underReplicatedPartitionCount}
+
+ ) : (
+ {underReplicatedPartitionCount}
+ )}
+
+
+
+ {areAllInSync ? (
+ replicas
+ ) : (
+ {inSyncReplicasCount}
+ )}
+ of {replicas}
+
+
+
+ {outOfSyncReplicasCount}
+
+
+
+ );
+};
diff --git a/frontend/src/components/Brokers/BrokersList/BrokersList.styled.ts b/frontend/src/components/Brokers/BrokersList/TableCells/TableCells.styled.ts
similarity index 64%
rename from frontend/src/components/Brokers/BrokersList/BrokersList.styled.ts
rename to frontend/src/components/Brokers/BrokersList/TableCells/TableCells.styled.ts
index 964e64368..718f952eb 100644
--- a/frontend/src/components/Brokers/BrokersList/BrokersList.styled.ts
+++ b/frontend/src/components/Brokers/BrokersList/TableCells/TableCells.styled.ts
@@ -10,7 +10,3 @@ export const RowCell = styled.div`
padding-left: 6px;
}
`;
-
-export const DangerText = styled.span`
- color: ${({ theme }) => theme.circularAlert.color.error};
-`;
diff --git a/frontend/src/components/Brokers/BrokersList/TableCells/TableCells.tsx b/frontend/src/components/Brokers/BrokersList/TableCells/TableCells.tsx
new file mode 100644
index 000000000..5d6039fbf
--- /dev/null
+++ b/frontend/src/components/Brokers/BrokersList/TableCells/TableCells.tsx
@@ -0,0 +1,97 @@
+import React from 'react';
+import { BrokersTableRow } from 'components/Brokers/BrokersList/lib/types';
+import { CellContext } from '@tanstack/react-table';
+import { LinkCell } from 'components/common/NewTable';
+import Tooltip from 'components/common/Tooltip/Tooltip';
+import CheckMarkRoundIcon from 'components/common/Icons/CheckMarkRoundIcon';
+import { NA } from 'components/Brokers/BrokersList/lib';
+import ColoredCell from 'components/common/NewTable/ColoredCell';
+import SizeCellCount from 'components/common/NewTable/SizeCellCount';
+
+import * as S from './TableCells.styled';
+
+type BrokerIdProps = CellContext;
+
+export const BrokerId = ({ getValue, row }: BrokerIdProps) => {
+ const { activeControllers } = row.original;
+ const brokerId = getValue();
+
+ return (
+
+
+ {brokerId === activeControllers && (
+ }
+ content="Active Controller"
+ placement="right"
+ />
+ )}
+
+ );
+};
+
+type DiscUsageProps = CellContext;
+
+export const DiscUsage = ({
+ getValue,
+ table,
+ cell,
+ column,
+ renderValue,
+ row,
+}: DiscUsageProps) => {
+ if (getValue() === undefined) return NA;
+
+ return (
+
+ );
+};
+
+type ScewProps = CellContext<
+ BrokersTableRow,
+ BrokersTableRow['partitionsSkew'] | BrokersTableRow['leadersSkew']
+>;
+
+export const Skew = ({ getValue }: ScewProps) => {
+ const skew = getValue();
+ const value = skew ? `${skew.toFixed(2)}%` : '-';
+
+ return (
+ = 10 && skew < 20}
+ attention={skew !== undefined && skew >= 20}
+ />
+ );
+};
+
+type OnlinePartitionsProps = CellContext<
+ BrokersTableRow,
+ BrokersTableRow['onlinePartitionCount']
+>;
+
+export const OnlinePartitions = ({ row }: OnlinePartitionsProps) => {
+ const { onlinePartitionCount, offlinePartitionCount } = row.original;
+
+ if (
+ onlinePartitionCount === undefined ||
+ offlinePartitionCount === undefined
+ ) {
+ return null;
+ }
+
+ return (
+ 0}
+ />
+ );
+};
diff --git a/frontend/src/components/Brokers/BrokersList/__test__/BrokersList.spec.tsx b/frontend/src/components/Brokers/BrokersList/__test__/BrokersList.spec.tsx
index e98f28e52..9dc40591e 100644
--- a/frontend/src/components/Brokers/BrokersList/__test__/BrokersList.spec.tsx
+++ b/frontend/src/components/Brokers/BrokersList/__test__/BrokersList.spec.tsx
@@ -72,11 +72,13 @@ describe('BrokersList Component', () => {
},
}));
renderComponent();
- const onlineWidget = screen.getByText(
+ const onlineWidgets = screen.getAllByText(
clusterStatsPayload.onlinePartitionCount
);
- expect(onlineWidget).toBeInTheDocument();
- expect(onlineWidget).toHaveStyle({ color: '#E51A1A' });
+ onlineWidgets.forEach((widget) => {
+ expect(widget).toBeInTheDocument();
+ expect(widget).toHaveStyle({ color: '#E51A1A' });
+ });
});
it('shows right count when offlinePartitionCount > 0', async () => {
(useClusterStats as jest.Mock).mockImplementation(() => ({
@@ -154,49 +156,24 @@ describe('BrokersList Component', () => {
expect(screen.queryByRole('tooltip')).not.toBeInTheDocument()
);
});
+ });
+ });
- describe('when diskUsage', () => {
- describe('is empty', () => {
- beforeEach(() => {
- (useClusterStats as jest.Mock).mockImplementation(() => ({
- data: { ...clusterStatsPayload, diskUsage: undefined },
- }));
- });
-
- it('renders list of all brokers', async () => {
- renderComponent();
- expect(screen.getByRole('table')).toBeInTheDocument();
- expect(screen.getAllByRole('row').length).toEqual(3);
- });
- });
-
- describe('was NOT set for second broker', () => {
- beforeEach(() => {
- (useClusterStats as jest.Mock).mockImplementation(() => ({
- data: {
- ...clusterStatsPayload,
- diskUsage: [clusterStatsPayload.diskUsage[0]],
- },
- }));
- });
-
- it('renders list of all brokers', async () => {
- renderComponent();
- expect(screen.getByRole('table')).toBeInTheDocument();
- expect(screen.getAllByRole('row').length).toEqual(3);
- });
- });
- });
+ describe('when diskUsage is empty', () => {
+ beforeEach(() => {
+ (useBrokers as jest.Mock).mockImplementation(() => ({
+ data: brokersPayload,
+ }));
+ (useClusterStats as jest.Mock).mockImplementation(() => ({
+ data: { ...clusterStatsPayload, diskUsage: undefined },
+ }));
});
- describe('when the brokers list is empty', () => {
+ describe('when it has no brokers', () => {
beforeEach(() => {
(useBrokers as jest.Mock).mockImplementation(() => ({
data: [],
}));
- (useClusterStats as jest.Mock).mockImplementation(() => ({
- data: clusterStatsPayload,
- }));
});
it('renders empty table', async () => {
@@ -207,6 +184,22 @@ describe('BrokersList Component', () => {
).toBeInTheDocument();
});
});
+
+ it('renders list of all brokers', async () => {
+ renderComponent();
+ expect(screen.getByRole('table')).toBeInTheDocument();
+ expect(screen.getAllByRole('row').length).toEqual(3);
+ });
+ it('opens broker when row clicked', async () => {
+ renderComponent();
+ await userEvent.click(screen.getByRole('cell', { name: '100' }));
+
+ await waitFor(() =>
+ expect(mockedUsedNavigate).toBeCalledWith(
+ clusterBrokerPath(clusterName, '100')
+ )
+ );
+ });
});
});
});
diff --git a/frontend/src/components/Brokers/BrokersList/lib/constants.ts b/frontend/src/components/Brokers/BrokersList/lib/constants.ts
new file mode 100644
index 000000000..48e4e0cb4
--- /dev/null
+++ b/frontend/src/components/Brokers/BrokersList/lib/constants.ts
@@ -0,0 +1,5 @@
+export const NA = 'N/A';
+export const NA_DISK_USAGE = {
+ segmentCount: NA,
+ segmentSize: NA,
+};
diff --git a/frontend/src/components/Brokers/BrokersList/lib/index.ts b/frontend/src/components/Brokers/BrokersList/lib/index.ts
new file mode 100644
index 000000000..7a616f8d2
--- /dev/null
+++ b/frontend/src/components/Brokers/BrokersList/lib/index.ts
@@ -0,0 +1,3 @@
+export * from './utils';
+export * from './constants';
+export * from './types';
diff --git a/frontend/src/components/Brokers/BrokersList/lib/types.ts b/frontend/src/components/Brokers/BrokersList/lib/types.ts
new file mode 100644
index 000000000..7928862a1
--- /dev/null
+++ b/frontend/src/components/Brokers/BrokersList/lib/types.ts
@@ -0,0 +1,13 @@
+export type BrokersTableRow = {
+ brokerId: number;
+ size: number | undefined;
+ count: number | undefined;
+ port: number | undefined;
+ host: string | undefined;
+ partitionsLeader: number | undefined;
+ partitionsSkew: number | undefined;
+ leadersSkew: number | undefined;
+ onlinePartitionCount: number | undefined;
+ offlinePartitionCount: number | undefined;
+ activeControllers: number | undefined;
+};
diff --git a/frontend/src/components/Brokers/BrokersList/lib/utils.ts b/frontend/src/components/Brokers/BrokersList/lib/utils.ts
new file mode 100644
index 000000000..1eb6b2886
--- /dev/null
+++ b/frontend/src/components/Brokers/BrokersList/lib/utils.ts
@@ -0,0 +1,78 @@
+import { Broker, BrokerDiskUsage } from 'generated-sources';
+import * as Cell from 'components/Brokers/BrokersList/TableCells/TableCells';
+import { createColumnHelper } from '@tanstack/react-table';
+import { keyBy } from 'lib/functions/keyBy';
+import SkewHeader from 'components/Brokers/BrokersList/SkewHeader/SkewHeader';
+
+import { BrokersTableRow } from './types';
+import { NA_DISK_USAGE } from './constants';
+
+type GetBrokersTableRowsParams = {
+ brokers: Broker[] | undefined;
+ diskUsage: BrokerDiskUsage[] | undefined;
+ activeControllers: number | undefined;
+ onlinePartitionCount: number | undefined;
+ offlinePartitionCount: number | undefined;
+};
+
+export const getBrokersTableRows = ({
+ brokers = [],
+ diskUsage = [],
+ activeControllers,
+ onlinePartitionCount,
+ offlinePartitionCount,
+}: GetBrokersTableRowsParams): BrokersTableRow[] => {
+ if (!brokers || brokers.length === 0) {
+ return [];
+ }
+
+ const diskUsageByBroker = keyBy(diskUsage, 'brokerId');
+
+ return brokers.map((broker) => {
+ const diskUse = diskUsageByBroker[broker.id] || NA_DISK_USAGE;
+
+ return {
+ brokerId: broker.id,
+ size: diskUse.segmentSize,
+ count: diskUse.segmentCount,
+ port: broker.port,
+ host: broker.host,
+ partitionsLeader: broker.partitionsLeader,
+ partitionsSkew: broker.partitionsSkew,
+ leadersSkew: broker.leadersSkew,
+ onlinePartitionCount,
+ offlinePartitionCount,
+ activeControllers,
+ };
+ });
+};
+
+export const getBrokersTableColumns = () => {
+ const columnHelper = createColumnHelper();
+
+ return [
+ columnHelper.accessor('brokerId', {
+ header: 'Broker ID',
+ cell: Cell.BrokerId,
+ }),
+ columnHelper.accessor('size', {
+ header: 'Disk usage',
+ cell: Cell.DiscUsage,
+ }),
+ columnHelper.accessor('partitionsSkew', {
+ header: SkewHeader,
+ cell: Cell.Skew,
+ }),
+ columnHelper.accessor('partitionsLeader', { header: 'Leaders' }),
+ columnHelper.accessor('leadersSkew', {
+ header: 'Leader skew',
+ cell: Cell.Skew,
+ }),
+ columnHelper.accessor('onlinePartitionCount', {
+ header: 'Online partitions',
+ cell: Cell.OnlinePartitions,
+ }),
+ columnHelper.accessor('port', { header: 'Port' }),
+ columnHelper.accessor('host', { header: 'Host' }),
+ ];
+};
diff --git a/frontend/src/components/NavBar/__tests__/NavBar.spec.tsx b/frontend/src/components/NavBar/__tests__/NavBar.spec.tsx
index 2e37613ba..9b3e4528f 100644
--- a/frontend/src/components/NavBar/__tests__/NavBar.spec.tsx
+++ b/frontend/src/components/NavBar/__tests__/NavBar.spec.tsx
@@ -20,7 +20,7 @@ describe('NavBar', () => {
})),
});
- render();
+ render();
});
it('correctly renders header', () => {
diff --git a/frontend/src/components/PageContainer/__tests__/PageContainer.spec.tsx b/frontend/src/components/PageContainer/__tests__/PageContainer.spec.tsx
index ca91cd207..b6d654ea5 100644
--- a/frontend/src/components/PageContainer/__tests__/PageContainer.spec.tsx
+++ b/frontend/src/components/PageContainer/__tests__/PageContainer.spec.tsx
@@ -9,9 +9,11 @@ import { Cluster, ServerStatus } from 'generated-sources';
const burgerButtonOptions = { name: 'burger' };
jest.mock('components/Version/Version', () => () => Version
);
+
interface DataType {
data: Cluster[] | undefined;
}
+
jest.mock('lib/hooks/api/clusters');
const mockedNavigate = jest.fn();
jest.mock('react-router-dom', () => ({
@@ -30,7 +32,7 @@ describe('Page Container', () => {
})),
});
render(
-
+
child
,
{
diff --git a/frontend/src/components/Topics/Topic/Messages/Filters/Filters.tsx b/frontend/src/components/Topics/Topic/Messages/Filters/Filters.tsx
index 347623d22..99eb6bac4 100644
--- a/frontend/src/components/Topics/Topic/Messages/Filters/Filters.tsx
+++ b/frontend/src/components/Topics/Topic/Messages/Filters/Filters.tsx
@@ -13,7 +13,7 @@ import {
} from 'generated-sources';
import React, { useContext } from 'react';
import omitBy from 'lodash/omitBy';
-import { useNavigate, useLocation, useSearchParams } from 'react-router-dom';
+import { useLocation, useNavigate, useSearchParams } from 'react-router-dom';
import MultiSelect from 'components/common/MultiSelect/MultiSelect.styled';
import { Option } from 'react-multi-select-component';
import BytesFormatted from 'components/common/BytesFormatted/BytesFormatted';
@@ -55,11 +55,17 @@ export interface FiltersProps {
meta: TopicMessageConsuming;
isFetching: boolean;
messageEventType?: string;
+
addMessage(content: { message: TopicMessage; prepend: boolean }): void;
+
resetMessages(): void;
+
updatePhase(phase: string): void;
+
updateMeta(meta: TopicMessageConsuming): void;
+
setIsFetching(status: boolean): void;
+
setMessageType(messageType: string): void;
}
@@ -152,7 +158,7 @@ const Filters: React.FC = ({
const [queryType, setQueryType] = React.useState(
activeFilter.name
- ? MessageFilterType.GROOVY_SCRIPT
+ ? MessageFilterType.CEL_SCRIPT
: MessageFilterType.STRING_CONTAINS
);
const [query, setQuery] = React.useState(searchParams.get('q') || '');
@@ -205,10 +211,7 @@ const Filters: React.FC = ({
const handleFiltersSubmit = (currentOffset: string) => {
const nextAttempt = Number(searchParams.get('attempt') || 0) + 1;
const props: Query = {
- q:
- queryType === MessageFilterType.GROOVY_SCRIPT
- ? activeFilter.code
- : query,
+ q: queryType === MessageFilterType.CEL_SCRIPT ? activeFilter.code : query,
filterQueryType: queryType,
attempt: nextAttempt,
limit: PER_PAGE,
@@ -309,7 +312,7 @@ const Filters: React.FC = ({
JSON.stringify({ index, ...newActiveFilter })
);
setActiveFilter({ index, ...newActiveFilter });
- setQueryType(MessageFilterType.GROOVY_SCRIPT);
+ setQueryType(MessageFilterType.CEL_SCRIPT);
};
const composeMessageFilter = (filter: FilterEdit): ActiveMessageFilter => ({
diff --git a/frontend/src/components/common/NewTable/SizeCell.tsx b/frontend/src/components/common/NewTable/SizeCell.tsx
index 7a230be81..4b472b5bd 100644
--- a/frontend/src/components/common/NewTable/SizeCell.tsx
+++ b/frontend/src/components/common/NewTable/SizeCell.tsx
@@ -2,16 +2,15 @@ import React from 'react';
import { CellContext } from '@tanstack/react-table';
import BytesFormatted from 'components/common/BytesFormatted/BytesFormatted';
-// eslint-disable-next-line @typescript-eslint/no-explicit-any
-type AsAny = any;
-
-const SizeCell: React.FC<
- CellContext & { renderSegments?: boolean; precision?: number }
-> = ({ getValue, row, renderSegments = false, precision = 0 }) => (
- <>
+const SizeCell = ({
+ getValue,
+ precision = 0,
+}: CellContext & {
+ precision?: number;
+}) => {
+ return (
()} precision={precision} />
- {renderSegments ? `, ${row?.original.count} segment(s)` : null}
- >
-);
+ );
+};
export default SizeCell;
diff --git a/frontend/src/components/common/NewTable/SizeCellCount.tsx b/frontend/src/components/common/NewTable/SizeCellCount.tsx
new file mode 100644
index 000000000..80df59b9f
--- /dev/null
+++ b/frontend/src/components/common/NewTable/SizeCellCount.tsx
@@ -0,0 +1,23 @@
+import React from 'react';
+import { CellContext } from '@tanstack/react-table';
+import BytesFormatted from 'components/common/BytesFormatted/BytesFormatted';
+
+const SizeCellCount = ({
+ getValue,
+ row,
+ precision = 0,
+}: CellContext & {
+ precision?: number;
+}) => {
+ return (
+ <>
+ ()}
+ precision={precision}
+ />
+ {`, ${row.original.count} segment(s)`}
+ >
+ );
+};
+
+export default SizeCellCount;
diff --git a/frontend/src/components/common/NewTable/Table.tsx b/frontend/src/components/common/NewTable/Table.tsx
index 42d406b4f..df4421c98 100644
--- a/frontend/src/components/common/NewTable/Table.tsx
+++ b/frontend/src/components/common/NewTable/Table.tsx
@@ -1,20 +1,20 @@
import React from 'react';
+import type {
+ ColumnDef,
+ OnChangeFn,
+ PaginationState,
+ Row,
+ SortingState,
+} from '@tanstack/react-table';
import {
flexRender,
getCoreRowModel,
getExpandedRowModel,
+ getPaginationRowModel,
getSortedRowModel,
useReactTable,
- getPaginationRowModel,
} from '@tanstack/react-table';
-import type {
- Row,
- SortingState,
- OnChangeFn,
- PaginationState,
- ColumnDef,
-} from '@tanstack/react-table';
-import { useSearchParams, useLocation } from 'react-router-dom';
+import { useLocation, useSearchParams } from 'react-router-dom';
import { PER_PAGE } from 'lib/constants';
import { Button } from 'components/common/Button/Button';
import Input from 'components/common/Input/Input';
@@ -26,10 +26,13 @@ import ExpanderCell from './ExpanderCell';
import SelectRowCell from './SelectRowCell';
import SelectRowHeader from './SelectRowHeader';
-export interface TableProps {
+export interface TableProps {
data: TData[];
pageCount?: number;
- columns: ColumnDef[];
+
+ // https://github.com/TanStack/table/issues/4382
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ columns: ColumnDef[];
// Server-side processing: sorting, pagination
serverSideProcessing?: boolean;
@@ -118,7 +121,7 @@ const getSortingFromSearchParams = (searchParams: URLSearchParams) => {
* - use URLSearchParams to get the pagination and sorting state from the url for your server side processing.
*/
-function Table({
+function Table({
data,
pageCount,
columns,
@@ -134,7 +137,7 @@ function Table({
onRowHover,
onMouseLeave,
setRowId,
-}: TableProps) {
+}: TableProps) {
const [searchParams, setSearchParams] = useSearchParams();
const location = useLocation();
const [rowSelection, setRowSelection] = React.useState({});
diff --git a/frontend/src/lib/hooks/api/__tests__/topics.spec.ts b/frontend/src/lib/hooks/api/__tests__/topics.spec.ts
index 34b864fd4..802368495 100644
--- a/frontend/src/lib/hooks/api/__tests__/topics.spec.ts
+++ b/frontend/src/lib/hooks/api/__tests__/topics.spec.ts
@@ -77,7 +77,6 @@ describe('Topics hooks', () => {
minInSyncReplicas: 0,
cleanupPolicy: '',
retentionMs: 0,
- retentionBytes: 0,
maxMessageBytes: 0,
customParams: [],
};
diff --git a/pom.xml b/pom.xml
index 557f35335..84637da9b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -31,7 +31,7 @@
4.12.0
2.12.0
- 3.19.0
+ 3.25.3
1.11.1
1.12.19
7.4.0
@@ -47,16 +47,16 @@
3.1.3
1.0.0
0.1.17
- 0.1.26
+ 0.1.39
20230227
0.3.0
- 31.0.1-jre
+ 33.0.0-jre
5.9.1
5.3.1
4.10.0
- 1.17.5
+ 1.19.5
v18.17.1